Лекция
Сразу хочу сказать, что здесь никакой воды про базовая система ввода-вывода, и только нужная информация. Для того чтобы лучше понимать что такое базовая система ввода-вывода, bios, cmos ram, uefi , настоятельно рекомендую прочитать все из категории Информатика.
базовая система ввода-вывода (Basic Input Output System – BIOS) является, с одной стороны, составной частью аппаратных средств, с другой – одним из программных модулей ОС. Возникновение данного названия связано с тем, что BIOS включает в себя набор программ ввода-вывода. С помощью этих программ ОС и прикладные программы могут взаимодействовать как с различными устройствами самого компьютера, так и с периферийными устройствами.
Как составная часть аппаратных средств система BIOS в ПК реализована в виде одной микросхемы, установленной на материнской плате компьютера. Большинство современных видеоадаптеров и контроллеров-накопителей имеют собственную систему BIOS, которая дополняет системную BIOS. Одним из разработчиков BIOS является фирма IBM, создавшая NetBIOS. Данный программный продукт не подлежит копированию, поэтому другие производители компьютеров были вынуждены использовать микросхемы BIOS независимых фирм. Конкретные версии BIOS связаны с набором микросхем (или чипсетом), находящихся на системной плате.
Как программный модуль ОС система BIOS содержит программу тестирования при включении питания компьютера POST (Power On Self Test – самотестирование при включении питания компьютера). При запуске этой программы тестируются основные компоненты компьютера (процессор, память и др.). Если при подаче питания компьютера возникают проблемы, т. е. BIOS не может выполнить начальный тест, то извещение об ошибке будет выглядеть как последовательность звуковых сигналов.
В «неизменяемой» памяти CMOS RAM хранится информация о конфигурации компьютера (количестве памяти, типах накопителей и др.). Именно в этой информации нуждаются программные модули системы BIOS. Данная память выполнена на основе определенного типа CMOS-структур (CMOS – Complementary Metal Oxide Semiconductor), которые характеризуются малым энергопотреблением. Память CMOS энергонезависима, так как питается от аккумулятора, расположенного на системной плате, или батареи гальванических элементов, смонтированной на корпусе системного блока.
Изменение установок в CMOS выполняют через программу SETUP. Ее можно вызвать путем нажатия специальной комбинации клавиш (DEL, ESC, CTRL-ESC, или CRTL-ALT-ESC) во время начальной загрузки (некоторые BIOS позволяют запускать SETUP в любое время нажатием CTRL-ALT-ESC). В AMI BIOS чаще всего это осуществляется нажатием клавиши DEL (и удержанием ее) после нажатия кнопки RESET или включения ЭВМ.
Аббревиатура BIOS означает Basic Input/Output System - базовая система ввода-вывода. Системный BIOS является программой самого нижнего уровня - он действует как интерфейс между аппаратными средствами (особенно чипсетом и процессором) и операционной системой. BIOS обеспечивает доступ к аппаратным средствам РС и позволяет разработать операционные системы более высокого уровня (DOS, Windows 95 и др), с помощью которых пользователь запускает приложения. BIOS также отвечает за управление параметрами аппаратных средств, за загрузку РС при включении питания или нажатии кнопки сброса, а также за другие системные функции.
Примечание: Далее аббревиатура BIOS для удобства считается относящейся к мужскому роду.
В этом разделе дан обзор функций BIOS и приведены некоторые его характеристики. В дополнение к рассмотренным здесь функциям, BIOS отвечает за загрузку системы, а с помощью программы настройки BIOS (BIOS setup program) позволяет изменять свои параметры.
Для функционирования любого компьютера требуется программа, команды которой выполняет процессор. Все обычные программы РС хранятся на жестком диске и для выполнения загружаются в системную память 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 используют больше памяти, чем эта область 64 КБ.
Оказывается, в РС есть несколько различных программ BIOS. Когда говорят о "BIOS", разумеется, имеется в виду основной системный BIOS. Однако имеются программы BIOS, предназначенные для управления периферийными устройствами. Например, видеокарта обычно имеет свой BIOS, содержащий команды для управления отображением видеоинформации. Жесткие диски и другие периферийные устройства также могут иметь свои программы BIOS. Например, многие хост-адаптеры интерфейса SCSI имеют свой BIOS.
Напомним, что беспрецедентная популярность платформы РС объясняется огромным набором аппаратных и программных средств и, в то же время, совместимостью между разными их типами. Особенно важна обратная совместимость (backwards compatibility); никто не захочет выбрасывать старые программы при модернизации аппаратных средств РС. Компании, пытающиеся проигнорировать такую ситуацию, сталкиваются с крупными неприятностями; примером может служить провал фирмы IBM с шиной MCA (MicroChannel Architecture).
Задумывались ли вы над тем, почему большинство приложений для компьютеров, выпущенных еще 1985 г., сейчас работают и на процессоре Pentium? И это несмотря на то, что практически все аппаратные средства РС и операционная система сильно изменились.
|
Ключом к такой универсальности служит использование нескольких программных слоев, или уровней (layer). Рассмотрим, например, работу с программой Word 97 на РС с операционной системой Windows 98. Упрощенно можно считать, что при выполнении программы приложения фактически используются четыре основных уровня: Word 97 является приложением; он выполняется в среде Windows 98; сама Windows 98 работает "поверх" DOS, а DOS работает "поверх" системного BIOS. Программа BIOS взаимодействует с аппаратными средствами. В таблице приведены различные уровни - от низшего к высшему. Отметим, что операционная система и приложение сами часто представлены несколькими уровнями.
Каждый из этих уровней вносит важный вклад в обеспечение совместимости: он взаимодействует с нижележащим уровнем, используя стандартный интерфейс (standard interface). Чтобы Word 6.0 работал в среде Windows 95, он должен подчиняться определенным правилам, установленным разработчиками Windows 95. Сама Windows 95 должна подчиняться правилам, установленным создателями DOS. А DOS должна использовать стандартизованный способ взаимодействия с системным BIOS.
Каждый слой предоставляет абстрактную модель (abstraction model) программам, выполняющимся в нем, обеспечивая вышележащему уровню набор услуг и функций, которые может использовать вышележащий уровень. Word 6.0 совершенно не касается аппаратных средств или DOS; он просто вызывает функции Windows 95, а уж Windows 95 должна "общаться" с DOS. Windows 95 обращается к DOS, используя функции DOS, и т.д. (Отметим, что здесь приведено упрощенное описание, так как иногда невозможно четко выделить уровни.)
Используя эти стандарты, стало возможным смешивать и согласовывать различные уровни, если при этом программисты соблюдают определенные правила. Если требуется обновить версию DOS, то Windows будет по-прежнему работать при условии, что новая DOS обеспечивает такой же стандартный интерфейс, как и старая; новая версия может предоставлять новые функции, но не выбрасывает ни одной из старых. Аналогично Word 6.0 будет работать и с Windows 98, так как Windows 98 предоставляет Word такие же возможности, что и Windows 95. Таким образом поддерживается совместимость при изменении операционной системы.
А как же быть с BIOS? Фактически BIOS является своеобразной "опорой" для всего этого, так как он обеспечивает стандартный интерфейс, который использует DOS (или другая операционная система). Аппаратные средства РС представляются "кучей" внизу опоры, которой мы не хотим касаться. Самое удивительное заключается в том, что сама DOS может работать на множестве различных компьютеров. Вместо "общения" непосредственно с разнообразными аппаратными средствами, она взаимодействует с BIOS, который адаптирован под конкретные аппаратные средства. BIOS скрывает аппаратные средства от операционной системы, предоставляя ей стандартизованные обслуживания.
Однако программы не всегда должны придерживаться рассмотренной модели. DOS-программа может обойти функции DOS и BIOS и взаимодействовать непосредственно с аппаратными средствами. Обычно этот прием используется для повышения производительности системы, особенно часто в играх. Разумеется, при этом нарушается модель совместимости; теперь программа должна знать, какие аппаратные средства она использует. Это делает подобные программы намного менее переносимыми (portable) и совместимыми по сравнению с программами, которые "играют по правилам".
BIOS предоставляет стандартные процедуры (подпрограммы), которые могут вызывать программы более высокого уровня, например DOS, Windows или их приложения, для выполнения разнообразных задач. Почти любая задача, которая обращается к аппаратным средствам, традиционно выполняется с использованием одной или нескольких программ BIOS (хотя многие новые операционные системы обходят BIOS ради повышения производительности). К таким задачам относятся операции считывания и записи жесткого диска, обработка полученных от периферийных устройств данных и т.п.
Обращения к обслуживаниям BIOS реализуются с помощью программных прерываний (software interrupt), которые аналогичны аппаратным прерываниям, но генерируются программами внутри процессора, а не вне процессора периферийными устройствами. Использование прерываний позволяет обращаться к BIOS, не зная, где в памяти находится каждая процедура.
Обычно для вызова процедуры необходимо знать ее адрес. Вместе с прерываниями используется таблица векторов прерываний (Interrupt Vector Table - IVT), которая устраняет необходимость знания адреса. При запуске системы BIOS помещает в эту таблицу адреса, показывающие, где находятся процедуры для каждого прерывания. Когда впоследствии DOS или приложению требуется процедура BIOS, они генерируют программное прерывание. Система обрабатывает прерывание, отыскивает адрес в таблице и автоматически переходит к процедуре BIOS. Разумеется, DOS и приложения могут самостоятельно пользоваться таблицей векторов прерываний.
За последние годы в BIOS введено несколько важных возможностей. Единственный надежный способ определения того, что BIOS в конкретном РС поддерживает их, заключается в анализе руководства на BIOS или материнскую плату или обращения к производителю BIOS. Однако имеется несколько простых правил, относящихся к дате выпуска BIOS, которые можно использовать для определения поддержки конкретным BIOS данной возможности.
Приведем наиболее распространенные возможности BIOS и примерные даты их появления. Можно утверждать, что если BIOS выпущен на год раньше указанной возможности, то она не поддерживается, а если BIOS выпущен на год позже, то поддерживается:
Одной из важных функций BIOS является загрузка системы (boot up). При включении РС его системная память пуста, но ему сразу же нужны команды, указывающие, что делать для запуска РС. Эти команды находятся в BIOS ROM и всегда доступны. В настоящем разделе рассмотрены этапы загрузки системы и самоконтроль при включении питания, который выполняется при каждом запуске системы.
При включении питания компьютер запускается системным BIOS. Далее приведены этапы типичной последовательности загрузки (boot sequence). Конечно, они могут несколько варьироваться в зависимости от производителей аппаратных средств и BIOS и особенно от имеющихся периферийных устройств. Вот что происходит при включении питания РС:
1. Включается и инициализируется внутренний блок питания. Ему требуется некоторое время на стабилизацию выходных напряжений. Поэтому чипсет подает в процессор сигнал сброса до тех пор, пока не получит сигнал Power Good от блока питания.
2. Когда сигнал сброса снят, процессор может начать выполнение команд. НО при запуске в системной памяти нет ничего для выполнения. Процессор запрограммирован обращаться при запуске по одному и тому же адресу в системном BIOS ROM для выполнения программы загрузки BIOS. Обычно этот адрес равен FFFF0h. Поскольку до конца обычной памяти осталось всего 16 байтов, эта ячейка содержит команду перехода JUMP, которая адресует начало программы запуска BIOS.
3. BIOS выполняет самоконтроль при включении питания (Power-On Self-Test - POST). В случае любой фатальной ошибки процесс загрузки прекращается.
4. BIOS обращается к видеокарте. В частности, он отыскивает программу встроенного в видеокарту BIOS и выполняет ее. Обычно этот BIOS находится по адресу C000h. BIOS видеокарты производит инициализацию видеокарты. Обычно при этом на экране отображается информация о видеокарте. (Вот почему информация о видеокарте появляется раньше сообщений от самого системного BIOS.)
5. Затем BIOS проверяет наличие BIOS в ROM других устройств. Обычно по адресу C8000h обнаруживается и выполняется BIOS жесткого диска IDE/ATA. При обнаружении программ BIOS других устройств они также выполняются.
6. BIOS отображает свой экран запуска (startup screen).
7. BIOS продолжает тестирование системы, включая проверку памяти, которая отображается на экране. При обнаружении ошибки BIOS выводит текстовое сообщение об ошибке.
8. BIOS выполняет "инвентаризацию системы", определяя имеющиеся в системе аппаратные средства. Современные BIOS имеют много автоматических параметров и определяет, например, временную диаграмму памяти в зависимости от типа найденной памяти. Многие BIOS могут также автоматически устанавливать параметры жесткого диска и режимы доступа. Некоторые BIOS отображают сообщение на экране для каждого обнаруженного и конфигурированного накопителя. После этого BIOS отыскивает и отмечает логические устройства (порты COM и LPT).
9. Если BIOS поддерживает технологию Plug and Play, он отыскивает и конфигурирует устройства Plug and Play и отображает на экране сообщение для каждого найденного устройства.
10. BIOS отображает сводный экран о конфигурации системы. Анализ этой страницы данных может помочь в диагностике проблем запуска, хотя он обычно появляется на экране лишь на короткое время.
11. BIOS начинает поиск накопителя для загрузки. Большинство BIOS имеет параметр, который управляет, должна ли система попытаться вначале осуществить загрузку с гибкого диска (A:) или с жесткого диска (C:). Некоторые BIOS позволяют также произвести загрузку с накопителя CD-ROM или других устройств в зависимости от настройки последовательности загрузки BIOS.
12. После идентификации целевого загрузочного накопителя BIOS отыскивает загрузочную информацию для запуска процесса загрузки операционной системы. Если определен жесткий диск, BIOS обращается к основной загрузочной записи (Master Boot Record - MBR) в первом секторе диска (цилиндр 0, головка 0, сектор 1); если определен гибкий диск, BIOS обращается по тому же адресу к гибкому диску за загрузочным сектором тома (volume boot sector).
13. Используя информацию из загрузочного сектора BIOS запускает процесс загрузки операционной системы. Управление передается загрузочному сектору. Если первое проверяемое устройство (гибкий диск, жесткий диск или др.) не найдено, BIOS переходит к следующему устройству и продолжает до тех пор, пока не находит загрузочное устройство.
14. Если загрузочное устройство не найдено, система обычно отображает сообщение об ошибке и останавливается. Выводимое сообщение зависит от BIOS и варьируется от простого "Нет загрузочного устройства" до загадочного "NO ROM BASIC - SYSTEM HALTED".
Рассмотренный процесс называется холодной загрузкой (cold boot), так как при запуске РС был выключенным, или холодным. Горячий запуск (warm boot) - это такой же процесс, но он инициируется для перезагрузки системы нажатием клавиш Ctrl+Alt+Del. В этом случае процедура POST пропускается и процесс загрузки продолжается примерно с этапа 8.
При загрузке РС прежде всего BIOS выполняет самоконтроль при включении питания (Power-On Self-Test - POST). POST представляет собой встроенную диагностическую программу, которая проверяет наличие и правильность функционирования аппаратных средств до производства BIOS фактической загрузки. В ходе загрузки производится и дополнительное тестирование, например тест памяти, ход которого отображается на экране.
Программа POST выполняется очень быстро и незаметно, если, конечно, не обнаруживается проблема. При включении РС иногда подает звуковой сигнал и останавливается, не производя загрузку. Таким способом POST сообщает о какой-то неисправности в РС. Для этого привлекается динамик, так как в это время отобразить что-то на экране невозможно. Наборы звуков можно использовать для диагностики многих проблем с аппаратными средствами. Сигналы зависят от производителя BIOS; наиболее известны компании Phoenix, Award и American Megatrends Inc. (AMI).
Примечание: Некоторые ошибки POST считаются фатальными, а другие - нет. Фатальная ошибка немедленно останавливает процесс загрузки; примером может служить ситуация, когда не обнаружено системной памяти. Фактически большинство ошибок POST при загрузке являются фатальными, так как POST тестирует важнейшие компоненты системы.
Программа POST также формирует расширенные коды, которые можно использовать для получения более подробной информации о возникшей проблеме. Можно приобрести специальную отладочную карту, которая вставляется в слот шины ISA и воспринимает отладочные коды, которые BIOS выводит по специальному адресу ввода-вывода - обычно 80h. Карта отображает эти коды и позволяет увидеть, где остановилась программа POST при появлении проблемы. Такие карты очень полезны для специалистов по сервису и ремонту РС.
При запуске системного BIOS после отображения сведений об видеоадаптере появляется запускающий экран, который обычно содержит следующую информацию:
Перед самой загрузкой операционной системы с диска BIOS отображает псевдографический бокс, содержащий сводную информацию о конфигурации системы. Типичное содержание этого бокса:
В современных BIOS имеется несколько стандартных компонентов, которые рассматриваются в настоящем разделе.
Конечно, основным аппаратным компонентом любого BIOS является сам BIOS ROM. Обычно это микросхема электрически стираемого программируемого ROM (EEPROM), что обеспечивает программное обновление BIOS. Такой BIOS называется флэш-BIOS (flash BIOS).
Микросхема BIOS ROM находится в сокете на материнской плате и ее легко узнать по логотипу производителя. Наиболее известны компании Award, American Megatrends Inc. (AMI) и Phoenix. На микросхеме часто указывается номер версии, но фактическая версия может отличаться от указанной из-за возможности обновления BIOS.
Параметры BIOS, используемые для управления работой РС, должны храниться в энергонезависимой памяти, чтобы они сохранялись даже при выключении РС. Для этого применяется специальный тип памяти, называемый CMOS-память (CMOS memory) и небольшая батарея. Емкость CMOS-памяти невелика и обычно составляет 64 байта. Срок службы батареи составляет 10-15 лет. CMOS-технология (Complementary Metal Oxide Semiconductor) широко применяется при производстве интегральных микросхем - процессоров, чипсетов, DRAM-памяти и др. Отличительная особенность CMOS-технологии - ничтожная потребляемая мощность по сравнению с другими полупроводниковыми технологиями. Часто CMOS-память называют просто "CMOS", так как в первых РС для большинства компонентов применялись другие технологии. Отметим, что большинство современных микросхем производятся по CMOS-технологии, но название CMOS обычно употребляется только для CMOS-памяти BIOS.
CMOS-данные необходимо обновлять только при изменении аппаратных средств РС, например установки жесткого диска нового типа или новых модулей системной памяти RAM. Однако предусмотрена запись в CMOS-память и опций пользователя (user options). Например, можно установить новые дату и время, задать сокращенный контроль системы, определить загрузку с жесткого диска С и т.д.
В качестве кода для обнаружения ошибок иногда используется так называемая контрольная сумма CMOS (CMOS checksum). При каждом изменении параметров BIOS все байты CMOS-памяти суммируются и младший байт суммы сохраняется как контрольная сумма в самой CMOS-памяти. При каждой загрузке системы компьютер повторно вычисляет контрольную сумму и сравнивает ее с хранимым значением. Если они различаются, значит, содержание CMOS-памяти искажено и на экран выдается сообщение об ошибке "CMOS Checksum Error".
Для питания CMOS-памяти применяется несколько типов батарей, которые по мере совершенствования технологии изменяются. Обычно пользователь прямо не касается CMOS-памяти, так как она просто хранит параметры, введенные в программе настройки BIOS. Возможно, со временем в CMOS-памяти возникнут проблемы, например РС при загрузке "забывает" параметры. Обычно эти проблемы вызываются разрядом батареи.
В дополнение к стандартной CMOS-памяти для хранения системных параметров BIOS, поддерживающие технологию Plug and Play используют дополнительную энергонезависимую память для хранения расширенных данных о конфигурации системы (Extended System Configuration Data - ESCD). В ней регистрируются конфигурации ресурсов системных устройств, поддерживающих технологию Plug and Play.
BIOS - очень важная программа, качество которой в значительной степени определяет возможности РС. Например, для поддержки жестких дисков IDE/ATA емкостью более 504 МБ потребовался только BIOS, который поддерживает преобразование геометрии накопителей. Многие производители материнских плат предусматривают расширение возможностей плат путем внесения изменений в BIOS; при этом они предоставляют бесплатную загрузку обновлений через Internet или продают обновления BIOS, как это делают программные компании.
В старые времена при необходимости модернизации BIOS нужно было приобрести новую микросхему BIOS ROM, открыть РС, вынуть старую микросхему и вставить новую. Конечно, эта процедура очень неудобна. К счастью, промышленность освоила новейшую технологию, которая позволила выпускать флэш-BIOS (flash BIOS). Теперь модернизация BIOS осуществляется специальной программой и открывать РС не нужно. Для флэш-BIOS применяется микросхема EEPROM, содержание которой можно стереть и записать новое содержание с помощью специальной программы. Данная процедура называется flashing BIOS.
На многих материнских платах имеется средство безопасности (safety feature) для предотвращения случайного или намеренного изменения флэш-BIOS. Это перемычка, состояние которой необходимо изменить перед модернизацией флэш-BIOS. Однако это средство имеет и существенный недостаток - необходимо открывать корпус РС. Из-за появления вирусов, способных изменить код флэш-BIOS, данное средство безопасности вскоре появится на всех материнских платах.
Использование флэш-процесса для модернизации BIOS имеет один серьезный недостаток. В ходе этого процесса BIOS оказывается в очень неустойчивом состоянии. Если в середине процесса произойдет что-то серьезное, например аварийное отключение электросети, содержание микросхемы BIOS будет искажено. Кроме того, программы для обновления BIOS довольно простые и могут записать в микросхему любое, даже неверное, содержание. Однако ситуация изменятся и многие программы становятся "умнее". Например, программа компании Award сравнивает имя файла образа BIOS с моделью материнской платы и при их несоответствии не производит обновления BIOS.
К счастью, искажение содержания BIOS происходит очень редко. Программа BIOS небольшая и обновление продолжается всего несколько секунд. Тем не менее, рекомендуется при возможности в процессе обновления BIOS подключить бесперебойный источник питания (Unineterruptible Power Supply - UPS).
Когда флэш-процесс нарушен, код BIOS оказывается искаженным и система переходит в "незагружаемое" (unbootable) состояние. Во многих новых РС в составе BIOS поставляется небольшая программа около 4 КБ, называемая блоком загрузки (boot block). Она предназначена для того, чтобы справиться с ситуацией, когда код BIOS неверен или искажен.
Когда РС пытается произвести загрузку и обнаруживает, что код BIOS искажен, блок загрузки попытается восстановить код BIOS, обычно считывая его со специально подготовленного гибкого диска. Для разрешения этого средства может потребоваться изменить перемычку на материнской плате, а также установить простейшую видеокарту для шины ISA. Блок загрузки загружает код BIOS и при последующей перезагрузке обычный код BIOS должен находиться на своем месте. Для правильного использования данного средства необходимо следовать указаниям специальной процедуры восстановления (recovery procedure), которую предоставляет производитель материнской платы.
BIOS является одним из трех компонентов системы, взаимодействие которых необходимо для реализации в РС средств Plug and Play (PnP). Здесь аппаратные средства РС, BIOS и операционная система, работая в тесном взаимодействии, автоматически идентифицируют и конфигурируют использование ресурсов аппаратными устройствами. Технология PnP сокращает число конфликтов ресурсов, устраняет использование перемычек и ручную настройку драйверов.
BIOS играет при этом ключевую роль, так как фактически именно он идентифицирует и конфигурирует карты расширения, а также передает информацию о конфигурировании операционной системе.
Несмотря на многочисленные функции BIOS и важную роль, которую он играет в работе
продолжение следует...
Часть 1 2.5. Базовая система ввода-вывода (BIOS),UEFI . Понятие CMOS RAM
Часть 2 Параметры BIOS - 2.5. Базовая система ввода-вывода (BIOS),UEFI . Понятие
Часть 3 UEFI: новая архитектура -BIOS - 2.5. Базовая система ввода-вывода (BIOS),UEFI
Комментарии
Оставить комментарий
Информатика
Термины: Информатика