Надграждане на ROM BIOS
Основни функции. Клавиатурни контролери Проблеми.
BIOS (Basic Input/Output System) - базова входно/изходна система.
Тя се намира на чип, който обикновенно е поставен на дънната платка на компютъра.
BIOS е достъпна всеки път, когато включите компютъра си.
Съдържа всички основни процедури, необходими на PC при комуникацията между хардуера и периферните устройства. Тези процедури включват инструкция за обработване на изхода на екрана, на принтера, шрифтовете, датата и часа. BIOS извършва определени тестове, автоматично определя допълнителния хардуер включен в компютъра, определя съвместимостта му с него.
BIOS може да се нарече и съвкупност от хардуер и софтуер. Като софтуер той представлява съвкупност от определен брой инструкции. Като хардуер се разбира това, че тези инструкции в общия случай са постоянни.
Възможно е разширяване на специфичния BIOS софтуер с допълнителни функции, които се зареждат от диск. Това позволява по-удобно използване на BIOS функциите от потребителските програми.
Във BIOS се съдържат процедури за тестване, данни идентифициращи машината, специални подпрограми които позволяват на потребителския софтуер да поема управлението на хардуера, система която разпознава допълнителните хардуерни разширения включени в компютъра, която следи за разпределението на паметта между отделните устройства, така че да няма конфликти.
BIOS започва работата си веднага след включване на компютъра. Тогава процесорът се превключва автоматично в реален режим на работа и прочита информация с големина 16 байта, намираща се на абсолютен адрес OFFFFOH. На това място е записан преход към адреса, където започва програмния код на BIOS.
След като завърши тестването на компонентите на компютъра - процесор, памет, клавиатура и т.н., и обработването на периферните устройства, започва същинския процес на начално зареждане.
Управлението се предава на определена процедура от BIOS, която зарежда първия сектор от флопи дисковото устройство или твърдия диск. След това управлението се поема от прочетената от там програма, която започва зареждането на операционната система от дисковото устройство.
След като операционната система е поела управлението, BIOS продължава да изпълнява функциите си, като те покриват най-честата работа с хардуера - изписване на символи на екрана или принтера, четене на символи от клавиатура и събития свързани с таймера.
BIOS е контролна система, която работи на възможно най-ниско ниво и осигурява по-високо ниво за потребителските програми. Тя предлага стандартен набор от функции. Независимо от хардуера BIOS функциите са идентични. В чиповете произвеждани от различни компании има разричия, но те изпълняват едни и същи основни задачи. IBM дефинира типови BIOS функции необходими в PC.
BIOS прави връзката между хардуер и софтуер чрез система от софтуерни прекъсвания.
За да получи достъп до основния хардуер програмата изпраща прекъсване, чрез специална инструкция на процесора. Такова прекъсване кара процесора да преустановява работата си по текущата програма и да започне изпълнението на определена процедура обработваща това прекъсване. При това процесорът запазва състоянието на текущата програма, от таблицата на прекъсванията определя адреса на процедурата обработваща това прекъсване и започва изпълнението на програмата намираща се на този адрес.
Таблицата с векторите на прекъсванията се намира в началото на системната памет на адрес 00000Н.
Всеки вектор се състои от 4 байта и всички вектори са разположени в нарастващ ред на адресите. Първите стойности на векторите се зареждат в паметта от EЕPROM, където е записан BIOS, по време на първоначалното зареждане на системата.
- След началното зареждане, други програми могат да променят векторите на прекъсванията, като по този начин се променя смисъла на прекъсванията.
- Има 256 BIOS прекъсвания, които са разделени във функции.
- Тези функции дават възможност за комуникация с хардуера.
Таблица на прекъсванията
N на прекъсването |
Значение |
10Н |
Достъп до видеоконтролера |
11Н |
Проверка на конфигурацията |
12H |
Проверка на RAM |
13H |
Дискови Функции на BIOS |
14H |
Няколко интерфейсни функции |
15H |
Касетни и разширени АТ функции |
16H |
Клавиатурни функции |
17H |
Функции за паралелен интерфейс |
1AH |
Функции за дата/час/часовник за реално време |
BIOS представя някои прекъсвания като променливи - например видео и харддисковите функции.
Архитектура на BIOS
Самата BIOS се намира в EЕPROM, което я прави резидентна дори и след изключване на компютъра. Тя се съхранява много високо в адресното пространство на процесора. ROM чипа, който съдържа кода на BIOS, се намира винаги в най-високата област на сегмента от паметта F000H. Точния начален номер на BIOS се променя в зависимост от BIOS системата и понякога от капацитета на паметта. Началната точка на BIOS ROM варира и в зависимост от нейната големина. Тя завършва обикновено на последната клетка от паметта на сегмента F, която е с отместване FFFFН. Това е последният адрес достъпен за процесор INTEL, работещ в реален режим. При някои контролери има допълнения. Например при VGA контролерите са включени скрита RAM, харддискови параметри, независим SETUP.
Скритата RAM се намира на същите адреси от паметта като ROM BIOS. Тъй като в RAM не е позволено дублиране на клетките от паметта, ROM BIOS държи тази RAM скрита от операционната система и приложните програми. Много BIOS системи копират техния ROM BIOS код в скрита RAM, от която данните са достъпни. Това подобрява скоростта на изпълнение, защото шината за данни на скритата RAM е 16 битова, а тази на ROM BIOS е 8 битова.
Хардискови параметри
BIOS често има проблеми при комуникирането с много хард дискове. Това се дължи на различните характеризиращи числа, присвоени на всеки диск. Преди BIOS да комуникира с един хард диск, тя трябва да знае броя на пътечките, броя на секторите за пътечка и други данни отнасящи се до хард диска. Първоначално проблемът е решен с таблица на хард дисковете, от която чрез програмата SETUP потребителят може да извлече необходимата информация за диска и след това да бъде предадена на ROM BIOS. Възможно е, вместо чрез SETUP, потребителят ръчно да въведе информация за диска. Тази информация се предава на захранвана от батерии RAM за да бъде достъпна за BIOS.
SETUP-позволява на потребителя да конфигурира елементи на ROM BIOS според собствените си нужди. Някои BIOS системи предлагат възможност за конфигуриране на част от RAM като разширена памет, ако РС поддържа ЕМS. Повечето SETUP програми поддържат пригодяване към честотата на таймера на процесора.
Вход чрез парола
ROM BIOS е най-доброто място, където може да се включи защита чрез парола. Тогава може да се изисква достъп чрез парола преди стартирането на системата и преди зареждането на DOS. Много производители препоръчват паролния вход да бъде чрез програмата SETUP. Тогава паролата се съхранява в захранваната от батерия RAM или хард диска.
Целта на BIOS и разделянето на хардуера от софтуера е да може да се променя хардуера без промяна на софтуера. По този начин се гарантира и съвместимостта на различните РС.
Въвеждането на допълнителни BIOS програми за отделните периферни устройства се е наложило понеже всеки компонент може да има специфичен начин на работа, който има нужда от собствена начална инициализация. При промяна на хардуера е възможно стария софтуер да не може да комуникира с него. Затова се въвежда стандартизиран откъм софтуерна страна BIOS. Програмите се обръщат към BIOS за определена операция с хардуерно устройство. След това BIOS се обръща към хардуера. Така стария софтуер може да комуникира с новия хардуер като се налага промяна само в BIOS.
Различните процедури на BIOS са разположени на определени адреси в паметта на РС.
Адреса на който започва определена процедура се нарича входна точка. Входната точка на BIOS функция е нещо различно от прекъсването, което извиква тази функция. Когато BIOS прави начално зареждане на системата в РС, той зарежда адресите на различните входни точки в таблицата на векторите на прекъсванията-входната точка може да се намира навсякъде в паметта.
Когато някои програми извикват BIOS като преход направо към входната точка (те изискват определени BIOS процедури да се намират на фиксирани адреси) е възможно да се получи зависване на системата. Причина за това е че входната точка се различава от това което програмата очаква.
Друг проблем е, че допълнителните стъпки добавени от функциите на BIOS може да забавят изпълнението на програмата-най-често при работа с видео адаптера.
Друго ограничение при работата с BIOS е, че компютъра не може да прави нищо което не може BIOS.
Коментари