Как работает BIOS

Как работает BIOS

BIOS реализует свои функции через систему прерываний программного обеспечения. Для запуска подпрограммы, содержащей специальную инструкцию микропроцессору по обработке какой-либо конкретной ситуации, выполняемая программа устанавливает соответствующий флажок прерывания.

Прерывания программного обеспечения приводят к тому, что микропроцессор приостанавливает выполнение текущей работы и начинает выполнять подпрограмму по обработке прерывания. Для реализации этого механизма микропроцессор, выполнив какую-либо элементарную операцию, исследует векторы прерываний. Если прерывание выставлено, коды выполняемой программы запоминаются, чтобы после обработки прерывания выполнение прерванной программы могло быть продолжено. Каждый вектор прерывания является указателем, говорящим микропроцессору, где находятся коды по обработке данного прерывания. Микропроцессор читает значение вектора и начинает выполнять программы по указанному вектором адресу.

Список векторов прерываний начинается с самого начала памяти микропроцессора по адресу 00000(Hex). Каждый вектор занимает 4 байта памяти, и все они располагаются в памяти по возрастающей. Недостающие значения для каждого вектора загружаются в оперативную память с ПЗУ, содержащих BIOS при загрузке компьютера. Программы могут изменять вектора прерываний для изменения значений прерываний программного обеспечения. Обычно завершающиеся и остающиеся резидентными программы реализуют подобные корректировки векторов для своих собственных целей.

Так как число имеющихся прерываний может оказаться намного меньше того числа функций, которое вы хотели бы использовать в своих программах, некоторые прерывания BIOS используются для реализации нескольких функций. Эти функции реализуются при помощи передачи параметров. Параметры обрабатываются подпрограммами BIOS. Их значения заносятся в один или более регистров при установке флажка прерываний. В свою очередь, подпрограммы BIOS могут передавать результаты назад в выполняемую программу.

В BIOS постоянно вносятся изменения. Это происходит каждый раз для совершенствования системы при разработке новых компьютеров или новых системных плат в рамках уже существующих моделей. Наиболее радикальные изменения претерпела BIOS PS/2, когда был представлен микроканал. Улучшенная BIOS реализовывала возможности нового защищенного режима. Каждая BIOS после PC-1 является расширяемой. Вовремя загрузки компьютера читается дополнительная секция кодов, содержащихся в дополнительных платах и их инструкции прибавляются к существующему диапазону. Например новые подпрограммы прерываний могут быть добавлены либо в функции существующих подпрограмм, либо могут быть изменены.

Во время самотестирования, после загрузки векторов прерываний ОЗУ, резидентный код BIOS заставляет компьютер проверить байты своего ПЗУ в соответствующем адресном диапазоне. Если найден значащий байт, процессор проверяет последующую секцию кодов, разрешая расширению BIOS после проведения циклической проверки блоков по 512 байт. Значения каждого байта в блоке суммируются по модулю, результат делится на 4096. Нулевой остаток говорит о том, что расширение BIOS имеет правильное значение.

Дополнительные секции кодов маркируются специальным значением, помещаемым перед ним. Затем после этих двух байтов - третий байт указывает дополнительную длину секции BIOS. Значение третьего байта указывает на количество блоков по 512 байт, необходимых для дополнительных кодов.

Если система распознала соответствующую секцию кодов, выполняемая программа BIOS переходит к четвертому байту расширяемой BIOS и выполняет любые функции, описанные здесь в машинных кодах. После выполнения инструкции расширенной BIOS управление передается резидентной BIOS. Затем система продолжает поиск дополнительных блоков расширенной BIOS. После завершения этой процедуры начинается процесс загрузки компьютера с диска.



Ресурс: Виртуальная школа БАКАЙ
Статья: Как работает BIOS
Опубликовано:
Автор:
Читателей:1817

Оценка статьи:
ОтвратительноУжасноПлохоСреднеХорошоПохвальноОтличноПревосходноПрекрасноВеликолепно!
[Голосов: 1]



 
Хочу все знать Земля
Земля
- это огромный шар, состоящий из горных пород и металлов и покрытый водой и почтой. Земля - одна из девяти планет, которые вращаются вокруг звезды по имени Солнце. Земля движется по своей орбите со
Личность в истории Токугава, Иэясу (1542-1616)
Токугава,
Полководец и государственный деятель Японии, основатель династии сегунов - Токугава (1603-1867). Был одним из ближайших сподвижников полководцев Нобунага Ода и Хидэёси Тоётоми, положивших начало
БиоМозаика Морские свинки, каких еще не знали
Морские
Домашних морских свинок, этих непременных постояльцев детских живых уголков и безропотных мучеников науки знают все. Многим известно и то, что дикие морские свинки, которых, кстати, насчитывается
Биологический справочник Популяция
Популяция
Популяция (лат. "народ", "население") - все особи одного вида, обитающие в определенной местности и воспроизводящие себя на протяжении ряда поколений. Под влиянием естественного отбора отдельные
Химическая энциклопедия 1768
1768
А. Боме изобрел прибор для определения плотности жидкости - ареометр.
Хочу все знать Загрязнение окружающей среды
Загрязнение
Загрязнение окружающей среды наносит вред здоровью всех живых существ. Встречаются и некоторые виды природных загрязнений, например дым от лесных пожаров и вулканов или цветочная пыльца. Однако от