Системный BIOS
Аббревиатура BIOS означает Basic Input/Output System - базовая система ввода-вывода. Системный BIOS является программой самого нижнего уровня - он действует как интерфейс между аппаратными средствами и операционной системой. BIOS обеспечивает доступ к аппаратным средствам РС и позволяет работать операционным системам (DOS, Windows и др), с помощью которых пользователь запускает приложения. BIOS также отвечает за управление параметрами аппаратных средств, за загрузку РС при включении питания или нажатии кнопки сброса, а также за другие системные функции.
Программа BIOS
Для функционирования любого компьютера требуется программа, команды которой выполняет процессор. Программы хранятся на жестком диске и для выполнения загружаются в память RAM.
При включении РС процессору также необходимы команды для выполнения. Однако при включении память РС не содержит никаких программ. Чтобы программа BIOS была доступна процессору всегда, даже при первом включении, она помещается в микросхему постоянного запоминающего устройства (Read-Only-Memory - ROM), которая находится на материнской плате. Крупнейшими поставщиками BIOS являются американские компании Phoenix, AMI (American Megatrends Incorporated) и Award.
Благодаря соглашению между производителями процессоров и программ BIOS процессор должен всегда обращаться по конкретному адресу памяти, где начинается программа BIOS. Процессор считывает оттуда первые команды и программа BIOS начинает выполняться. После этого программа BIOS начинает последовательность загрузки системы (system boot sequence), которая вызывает другие программы, загружает операционную систему и РС начинает работать.
Программа BIOS всегда находится в зарезервированной области памяти - верхних 64 КБ первого мегабайта памяти (адреса F000h - FFFFh).
BIOS и модель программных уровней
Большинство приложений для компьютеров, выпущенных еще в 1985 г., сейчас работают и на процессоре Pentium. И это несмотря на то, что практически все аппаратные средства РС и операционная система сильно изменились. Ключом к такой универсальности служит использование нескольких программных слоев, или уровней (layer). Упрощенно можно считать, что при выполнении программы приложения фактически используются четыре основных уровня: например Word 97 является приложением; он выполняется в среде Windows 98; сама Windows 98 работает "поверх" DOS, а DOS работает "поверх" BIOS. Программа BIOS взаимодействует с аппаратными средствами.
Каждый из этих уровней вносит важный вклад в обеспечение совместимости: он взаимодействует с нижележащим уровнем, используя стандартный интерфейс (standard interface). Чтобы Word работал в среде Windows, он должен подчиняться определенным правилам, установленным разработчиками Windows. Сама Windows должна подчиняться правилам, установленным создателями DOS. А DOS должна использовать стандартизованный способ взаимодействия с системным BIOS.
Каждый слой обеспечивает вышележащему уровню набор услуг и функций, которые может использовать вышележащий уровень. Word совершенно не касается аппаратных средств или DOS; он просто вызывает функции Windows, а уж Windows должна "общаться" с DOS. Windows обращается к DOS, используя функции DOS, и т.д.
Используя эти стандарты, стало возможным смешивать и согласовывать различные уровни, если при этом программисты соблюдают определенные правила. Если требуется обновить версию DOS, то Windows будет по-прежнему работать при условии, что новая DOS обеспечивает такой же стандартный интерфейс, как и старая; новая версия может предоставлять новые функции, но не выбрасывает ни одной из старых. Аналогично Word будет работать и с Windows 98, так как Windows 98 предоставляет Word такие же возможности, что и Windows 95. Таким образом поддерживается совместимость при изменении операционной системы.
А как же быть с BIOS? Фактически BIOS является своеобразной "опорой" для всего этого, так как он обеспечивает стандартный интерфейс, который использует DOS (или другая операционная система). BIOS адаптирован под конкретные аппаратные средства. BIOS скрывает аппаратные средства от операционной системы, предоставляя ей стандартизованные обслуживания.
Однако программы не всегда должны придерживаться рассмотренной модели. DOS-программа может обойти функции DOS и BIOS и взаимодействовать непосредственно с аппаратными средствами. Обычно этот прием используется для повышения производительности системы, особенно часто в играх. Разумеется, при этом нарушается модель совместимости; теперь программа должна знать, какие аппаратные средства она использует. Это делает подобные программы намного менее переносимыми (portable) и совместимыми по сравнению с программами, которые "играют по правилам".
Обслуживания BIOS и программные прерывания
BIOS предоставляет стандартные процедуры (подпрограммы), которые могут вызывать программы более высокого уровня, например DOS, Windows или их приложения, для выполнения разнообразных задач. Почти любая задача, которая обращается к аппаратным средствам, традиционно выполняется с использованием одной или нескольких программ BIOS. К таким задачам относятся операции считывания и записи жесткого диска, обработка полученных от периферийных устройств данных и т.п.
Обращения к обслуживаниям BIOS реализуются с помощью программных прерываний (software interrupt), которые аналогичны аппаратным прерываниям, но генерируются программами внутри процессора, а не вне процессора периферийными устройствами. Использование прерываний позволяет обращаться к BIOS, не зная, где в памяти находится каждая процедура.
Обычно для вызова процедуры необходимо знать ее адрес. Вместе с прерываниями используется таблица векторов прерываний (Interrupt Vector Table - IVT), которая устраняет необходимость знания адреса. При запуске системы BIOS помещает в эту таблицу адреса, показывающие, где находятся процедуры для каждого прерывания. Когда впоследствии DOS или приложению требуется процедура BIOS, они генерируют программное прерывание. Система обрабатывает прерывание, отыскивает адрес в таблице и автоматически переходит к процедуре BIOS.
Операции BIOS при загрузке системы
Одной из важных функций BIOS является загрузка системы (boot up). При включении РС его системная память пуста, но ему сразу же нужны команды, указывающие, что делать для запуска РС. Эти команды находятся в BIOS ROM и всегда доступны. В настоящем разделе рассмотрены этапы загрузки системы и самоконтроль при включении питания, который выполняется при каждом запуске системы.
Последовательность загрузки системы
Типичная последовательности загрузки (boot sequence) состоит из следующих этапов:
1. Включается и инициализируется внутренний блок питания. Ему требуется некоторое время на стабилизацию выходных напряжений. Поэтому чипсет подает в процессор сигнал сброса до тех пор, пока не получит сигнал Power Good от блока питания.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.