Базовая система ввода- вывода
Лекция 4 Базовая система ввода- вывода
4.1 Основы BIOS
4.2 Аппаратная и программная части BIOS
4.3 BIOS и CMOS RAM
4.4 Системная BIOS
4.5 Микросхемы ROM
4.6 Затенение ROM
4.7 Обновление BIOS
4.8 Использование Flash BIOS
Рекомендуемые материалы
4.9 Запуск программы Setup B IOS
4.10 Plug and Play BIOS
4.1 Основы BIOS
Пользователи зачастую не видят разницы между программной и аппаратной частями компьютера. Это можно объяснить высокой степенью интеграции компонентов системы. Точное представление о различиях между компонентами компьютера служит ключом к пониманию роли BIOS.
BIOS — это термин, который используется для описания базовой системы ввода-вывода. По существу, BIOS представляет собой “промежуточный слой” между программной и аппаратной частями системы. Большинство пользователей под BIOS подразумевают драйверы устройств. Кроме системной, существует еще BIOS адаптеров, которые загружаются при запуске системы.
Итак, базовая система ввода-вывода — это комбинация всех типов BIOS, а также загружаемые драйверы устройств. Часть BIOS, содержащаяся в микросхеме на системной плате или платах адаптеров, называется firmware (именно из-за наличия этих микросхем пользователи чаще всего относят BIOS к аппаратной части компьютера).
Стандартная PC-совместимая система состоит из нескольких слоев, которые связаны между собой (рис. 5.1).
На этом рисунке показаны два различных компьютера, в которых используется уникальная BIOS в качестве интерфейса между аппаратным обеспечением и операционной системой и ее приложениями. Таким образом, на этих компьютерах может быть установлено разное оборудование (процессоры, жесткие диски, мониторы и др.), на котором можно запускать одинаковое программное обеспечение. Связь между приложениями и операционной системой осуществляется с помощью соответствующего API (Application Programming Interface). Этот интерфейс определяет, например, как выполняется запись и считывание данных на диск, печать и другие функции. Поскольку приложение не зависит от
Рис. 4.1. Условное разделение PC-совместимой системы на несколько слоев
установленного аппаратного обеспечения, то все его вызовы обрабатывает операционная система, которая уже содержит информацию об установленном оборудовании. Операционная система, в свою очередь, через BIOS обращается непосредственно к аппаратному обеспечению. Эта связь реализована в виде драйверов устройств. Причем в каждой операционной системе — DOS, Windows 9x, Windows NT, Windows 2000, OS/2, Linux или другой — для одного и того же устройства необходимы свои драйверы. Как видно из рис. 4.1, приложения и операционная система идентичны в большинстве компьютеров, а BIOS “подстраивается” под определенное аппаратное обеспечение и, независимо от установленного оборудования, обеспечивает стандартный интерфейс для операционной системы. В этой главе речь пойдет об описываемом “слое” — базовой системе ввода-вывода, или BIOS.
4.2 Аппаратная и программная части BIOS
Как уже упоминалось, BIOS представляет собой интерфейс между аппаратным обеспечением и операционной системой. BIOS не похожа на стандартное программное обеспечение, поскольку находится в микросхемах, установленных на системной плате или платах адаптеров.
BIOS в PC-совместимой системе либо находится в микросхеме системной платы или в микросхеме плат адаптеров, например в видеоадаптере, либо загружается с диска (драйверы).
Системная BIOS содержит драйверы основных компонентов (клавиатуры, дисковода, жесткого диска, последовательного и параллельных портов и т.д.), необходимые для начального запуска компьютера. По мере появления новых устройств (видеоадаптеров, накопителей CD-ROM, жестких дисков с интерфейсом SCSI и т.д.) их процедуры инициализации не добавлялись в системную BIOS. Острая необходимость в таких устройствах при запуске компьютера отсутствует, поэтому нужные драйверы загружаются с диска во время запуска операционной системы. Это относится к звуковым адаптерам, сканерам, принтерам, устройствам PC Card (PCMCIA) и т.д.
В то же время существует целый ряд драйверов, которые должны быть активизированы во время начальной загрузки. Например, можно ли загрузиться с жесткого диска, если драйверы, требующиеся для выполнения этой операции, должны быть загружены непосредственно с этого диска? Очевидно, что необходимые драйверы должны быть предварительно загружены в ПЗУ (read-only memory — ROM) системной платы или платы адаптера.
Однако некоторые устройства необходимы при запуске компьютера. Например, для отображения информации на экране монитора требуется активизировать видеоадаптер, но его поддержка не встроена в системную BIOS. Кроме того, существует огромное количество видеоадаптеров, и поместить все их драйверы в системную BIOS невозможно. В таких случаях необходимые драйверы помещаются в микросхему BIOS на плате этого устройства. А системная BIOS при загрузке ищет BIOS видеоадаптера и загружает ее до запуска операционной системы.
Такое расположение BIOS предотвращает необходимость постоянной модернизации системной BIOS при появлении новых моделей устройств, особенно используемых при начальной загрузке компьютера. Собственная BIOS, как правило, устанавливается на следующих платах:
■ видеоадаптеры — всегда имеют собственную микросхему BIOS;
■ SCSI-адаптеры — обратите внимание, что эта BIOS не поддерживает все SCSI-устройства, т.е. с диска необходимо загружать дополнительные драйверы для накопителей CD-ROM, сканеров, устройств Zip и прочих с интерфейсом SCSI;
■ сетевые адаптеры — для начальной инициализации устройства либо нормального функционирования в бездисковых рабочих станциях или терминалах;
■ платы обновления IDE или дисковода — для поддержки функции загрузочного устройства при запуске системы;
■ платы для решения проблемы Y2K — в них содержится корректная процедура перехода в новое тысячелетие.
4.3 BIOS и CMOS RAM
Иногда пользователи путают BIOS и CMOS RAM системы. Причиной путаницы является то, что программа Setup BIOS используется для установки и хранения параметров конфигурации в CMOS RAM. Следует заметить, что это совершенно разные компоненты.
Обычно BIOS находится в отдельной микросхеме системной платы. Кроме того, на системной плате расположена так называемая микросхема RTC/NVRAM, содержащая часы истинного времени и энергонезависимую память. По сути, эта микросхема представляет собой цифровой датчик времени с несколькими дополнительными байтами памяти.
Микросхема Motorola MC146818, использованная впервые в качестве RTC/NVRAM, содержала 64 байт памяти, из которых 10 байт были выделены для функционирования часов. Несмотря на то что она называется энергонезависимой, при выключенном питании параметры времени/даты и данные, находящиеся в памяти, будит уничтожены. Микросхема, созданная на основе технологии Complementary Metal-Oxide Semiconductor (CMOS), имеет пониженное потребление электроэнергии, и для нее вполне достаточно мощности батареи компьютера. Именно поэтому микросхема носит название CMOS RAM, хотя с технической точки зрения ее следовало бы назвать микросхемой RTC/NVRAM. Сила тока, потребляемого большей частью микросхем RTC/NVRAM, не превышает одного микроампера (миллионной доли ампера), поэтому для их работы достаточно одной небольшой батареи. В течение последних пяти лет для этого использовалась литиевая батарея, при выходе из строя которой вся хранимая в микросхеме информация разрушается. В отдельных системах используются микросхемы Dallas Semiconductor RTC/NVRAM (например, DS12885 или DS12887), также содержащие батарею. При загрузке программы BIOS Setup и последующем конфигурировании/сохранении параметров жесткого диска или других устройств установочные параметры системы записываются в соответствующую область памяти RTC/NVRAM (или, говоря иначе, CMOS RAM). При каждом запуске системы для определения ее конфигурации проводится считывание параметров, хранящихся в микросхеме CMOS RAM. Несмотря на наличие определенной связи между базовой системой ввода-вывода (BIOS) и CMOS RAM, это абсолютно разные компоненты.
4.4 Системная BIOS
Во всех системных платах есть микросхема, в которой записано программное обеспечение, называемое BIOS или ROM BIOS. Эта микросхема содержит стартовые программы и драйверы, необходимые для запуска системы и функционирования основного аппаратного обеспечения. В ней также содержится процедура POST (самотестирование при включении питания) и данные системной конфигурации. Все эти параметры записаны в CMOS-память, которая питается от батарейки, установленной на системной плате. Эту CMOS-память часто называют NVRAM (Non-Volatile RAM).
Таким образом, BIOS представляет собой комплект программ, хранящихся в одной или нескольких микросхемах. Эти программы выполняются при запуске компьютера до загрузки операционной системы. BIOS в большинстве PC-совместимых компьютеров выполняет четыре основные функции.
■ POST — самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллеров диска, дисковода, клавиатуры и других жизненно важных компонентов системы.
■ Программа установки параметров BIOS (Setup BIOS) — конфигурирование параметров системы. Эта программа запускается при нажатии определенной клавиши (или комбинации клавиш) во время выполнения процедуры POST. В старых компьютерах на базе процессоров 286 и 386 для запуска этой программы необходима специальная дискета.
■ Загрузчик операционной системы — подпрограмма, выполняющая поиск действующего основного загрузочного сектора на дисковых устройствах. При обнаружении сектора, соответствующего определенному минимальному критерию (его сигнатура должна заканчиваться байтами 55AAh), выполняется код начальной загрузки. Эта программа загружает загрузочный сектор операционной системы, который, в свою очередь, загружает файлы ядра операционной системы.
■ BIOS — набор драйверов, предназначенных для взаимодействия операционной системы и аппаратного обеспечения при загрузке системы. При запуске DOS или Windows в режиме защиты от сбоев используются драйверы устройств только из BIOS.
4.5 Микросхемы ROM
ROM (Read-Only Memory) — тип памяти, которая может постоянно (или практически постоянно) хранить данные. Эти записанные данные хранятся в памяти даже при отключении питания. Таким образом, для хранения стартовых процедур (и BIOS) наиболее подходит память ROM. Аналогичная память используется и в других устройствах с собственной BIOS, например в видеоадаптерах.
Заметьте, что ROM и оперативная память — не противоположные понятия. На самом деле ROM представляет собой часть оперативной памяти системы. Другими словами, часть адресного пространства оперативной памяти отводится для ROM. Это необходимо для хранения программного обеспечения, которое позволяет загрузить операционную систему.
Например, при включении персонального компьютера счетчик команд автоматически принимает значение (адрес) FFFF0h; команды, размещенные по этому адресу, должны обеспечить загрузку операционной системы. Этим командам отводится ровно 16 байт от конца первого мегабайта оперативной памяти и от конца ROM. Если бы эти адреса указывали на ячейки обычной памяти, все хранимые в ней данные, в том числе и команды, исчезли бы при выключении питания, и процессор при следующем включении не нашел бы там никаких команд. Но, если этот адрес указывает на ячейку ROM, программа запуска системы в неизменном виде выполняется каждый раз при включении компьютера.
Обычно первым адресом ROM системы является F0000h, расположенный за 64 или 128 Кбайт от конца первого мегабайта. Поскольку емкость ROM обычно равна 128 Кбайт, программы ROM полностью занимают последние 128 Кбайт первого мегабайта, включая критический адрес FFFF0h первой команды запуска. Емкость современных микросхем ROM может достигать 256 или 512 Кбайт. Такой увеличенный объем позволяет располагать драйверы интегрированных на системной плате устройств.
Кажется странным, что персональный компьютер при запуске начинает выполнять команду, расположенную за 16 байт от конца ROM, но это сделано умышленно. Просто по этому адресу помещается команда перехода JMP, согласно которой процессор переходит к фактическому началу программы; в большинстве случаев оно близко к адресу F0000h, который расположен примерно на 64 Кбайт ранее в карте памяти. Это все равно что начинать чтение книги с 16-й страницы от конца; причем на ней должен быть указан номер страницы, с которой фактически начинается изложение. Зато подобное соглашение позволяет свободно изменять объем ROM.
На платах адаптеров, для которых при запуске требуются драйверы, также размещены микросхемы ROM. Это видеоадаптеры, большинство плат SCSI (Small Computer Systems Interface), платы контроллеров Enhanced IDE и некоторые сетевые платы. Микросхема ROM на этих платах содержит драйверы и программы запуска, которые будут выполнены при начальной загрузке. Например, видеоадаптер может быть инициализирован, несмотря на то, что ROM на системной плате не содержит драйверов для этого устройства. Нельзя загружать начальные драйверы режима VGA с диска, потому что экран будет оставаться темным (и вы не сможете управлять процессом загрузки), пока не загрузятся эти драйверы. Что же происходит при загрузке? Программа, хранящаяся в ROM системной платы, сканирует специальную область адаптера ROM оперативной памяти (адреса C0000–DFFFFh) в поисках пары байтов сигнатуры (55AAh), которая указывает на начало ROM. Базовая система ввода-вывода системной платы автоматически выполняет программы в ROM любого адаптера, который она находит в процессе сканирования. Процесс обнаружения и инициализации видеоадаптера можно наблюдать в большинстве компьютеров при включении питания и во время выполнения POST.
Существует четыре различных типа микросхем памяти ROM.
■ ROM (Read Only Memory).
■ PROM (Programmable ROM) — программируемая ROM.
■ EPROM (Erasable PROM) — стираемая программируемая ROM.
■ EEPROM (Electrically Erasable PROM) — электронностираемая программируемая ROM, также называемая Flash ROM.
Независимо от типа ROM, данные в ней сохраняются до тех пор, пока не будут стерты преднамеренно.
Микросхемы PROM часто называются микросхемами OTP (One Time Programmable — программируемые один раз). Они могут быть запрограммированы только однажды. Большинство микросхем PROM стоят совсем недорого, примерно 3 доллара. Поэтому при замене программы в PROM старая микросхема выбрасывается, а новая прожигается в соответствии с новыми данными.
Процесс программирования PROM занимает от нескольких секунд до нескольких минут, в зависимости от емкости микросхемы и применяемого алгоритма. На рис. 5.3 показано типичное программирующее устройство, которое имеет несколько разъемов. Это устройство может программировать несколько микросхем сразу, сохраняя время при записи тех же данных в нескольких микросхемах. Менее дорогие программирующие устройства имеют только один разъем.
Я рекомендую использовать недорогое программирующее устройство компании Andromeda Research. Несмотря на свою невысокую цену, это устройство может быть подсоединено к параллельному порту персонального компьютера; после подсоединения данные для программирования из файла передаются в программирующее устройство. Кроме того, это устройство переносное. Управление им осуществляется с помощью меню, выводимого прилагаемой к нему программой. Программа содержит несколько функций, одна из них позволяет считывать данные с микросхемы и сохранять их в файле; можно также записать данные в микросхему из файла и проверить, что микросхема записана правильно или что она “пуста” перед началом программирования.
Необходимо отметить, что для изменения BIOS в современных компьютерах подобные устройства не применяются. В них используются микросхемы Flash ROM.
4.6 Затенение ROM
4.7 Микросхемы ROM очень “медленны”: время доступа равно 150 нс при времени доступа запоминающего устройства DRAM 60 нс или меньше. Поэтому во многих системах ROM затеняется, т.е. ее содержимое копируется в микросхемы динамической оперативной памяти при запуске, чтобы сократить время доступа в процессе функционирования. Процедура затенения копирует содержимое ROM в оперативную память, присваивая ей адреса, первоначально использовавшиеся для ROM, которая затем фактически отключается. Это повышает быстродействие системы памяти. Впрочем, в большинстве случаев достаточно затенить только базовую систему ввода-вывода на системной плате и, возможно, на видеоплате. Затенение эффективно главным образом в 16-разрядных операционных системах типа DOS или Windows 3.x. Если компьютер работает под управлением 32-разрядной операционной системы типа Windows 9х или Windows NT/2000, то затенение фактически бесполезно, потому что эти операционные системы не используют 16-разрядный код из ROM. Вместо него они загружают 32-разрядные драйверы в оперативную память, заменяя ими 16-разрядный код базовой системы ввода-вывода, который, таким образом, используется только в течение запуска системы. Средство управления затенением находится в программе Setup BIOS.
4.7 Обновление BIOS
Обновление ROM BIOS может улучшить характеристики системы. Однако иногда процедура обновления BIOS может быть сложной, во всяком случае значительно сложнее подключения микросхем ROM.
ROM BIOS — программа, повышающая “интеллектуальный” уровень компонентов компьютера. Обновление базовой системы ввода-вывода часто может повысить эффективность компьютера и расширить его возможности.
Именно благодаря базовой системе ввода-вывода разные операционные системы могут функционировать на любом PC-совместимом компьютере, несмотря на различие аппаратных средств. Поскольку базовая система ввода-вывода управляет аппаратными средствами, именно она должна учитывать их особенности.
Обновление ROM BIOS может понадобиться в следующих случаях:
■ при установке таких устройств: дисковода LS-120; жестких дисков объемом более 8 Гбайт и Ultra-DMA/33 Ultra-DMA/66 IDE; накопителей CD-ROM с интерфейсом AT API;
■ при добавлении или улучшении поддержки Plug and Play;
■ при исправлении ошибок, связанных с проблемой 2000 года и високосными годами;
■ при исправлении известных ошибок или проблем совместимости с некоторыми аппаратными средствами и программным обеспечением;
■ при замене процессора;
■ при добавлении поддержки для системы управления режимом электропитания (Advanced System Configuration and Power Interface — ACPI).
Если же используются современные операционные системы, удовлетворяющие спецификации Plug and Play (Windows 9x или Windows 2000), при установке нового оборудования зачастую не нужно обновлять BIOS. Достаточно найти соответствующий драйвер, и устройство будет нормально функционировать.
4.8 Использование Flash BIOS
Начиная с 1996 года во всех компьютерах BIOS записывается в микросхему Flash ROM. Информацию в этой микросхеме можно стирать и перепрограммировать непосредственно в компьютере без специального оборудования. Для стирания и перепрограммирования старых микросхем PROM требовались специальный источник ультрафиолетового освещения и устройство программирования, а во Flash ROM данные могут быть удалены и перезаписаны даже без удаления их из системы .Использование Flash ROM позволяет загрузить новую версию BIOS из Internet или, имея ее на дискете, загрузить в микросхему Flash ROM на системной плате без удаления и замены микросхемы. Обычно эти обновления загружаются с Web-сервера изготовителя; затем используется прилагаемая программа для создания самозагружаемой дискеты с новым образом BIOS. Важно выполнить эту процедуру, воспользовавшись дискетой с программой начальной загрузки, так как никакое другое программное обеспечение или драйверы не должны мешать модификации. Этот метод обновления позволяет сэкономить время и деньги как изготовителя системы, так и конечного пользователя.
Иногда микросхема Flash ROM в системе защищена от записи; тогда, прежде чем приступить к модификации, вы должны отключить защиту. Обычно это делается с помощью переключателя, который управляет блокировкой модификации ROM. Без блокировки любая программа может перезаписывать ROM в вашей системе, а это опасно. Без защиты записи прграммы-вирусы могли бы записывать свои копии непосредственно в код ROM BIOS на вашем компьютере. Даже без физической защиты от записи современные BIOS в микросхемах Flash ROM имеют алгоритм защиты, который предотвращает несанкционированные модификации. Эту методику Intel использует на своих системных платах
4.9 Запуск программы Setup BIOS
Для запуска этой программы необходимо во время загрузки системы нажать определенную клавишу или комбинацию клавиш. Ниже представлены клавиши запуска этой программы для BIOS различных производителей, которые необходимо нажимать во время выполнения процедуры POST.
■ AMI BIOS — <Delete>.
■ Phoenix BIOS — <F2>.
■ Award BIOS — <Delete> или комбинация клавиш <Ctrl+Alt+Esc>.
■ Microid Research BIOS — <Esc>.
Если ни одна из этих клавиш не обеспечивает запуска программы Setup BIOS, посмотрите документацию к вашей системной плате или обратитесь к ее производителю.
В некоторых системах для запуска программы Setup BIOS используются перечисленные ниже клавиши.
■ IBM Aptiva/Valuepoint — <F1> (во время выполнения процедуры POST).
■ Старые версии Phoenix BIOS — <Ctrl+Alt+Esc> или <Ctrl+Alt+S> (в режиме командной строки).
■ Compaq — <F10> (во время выполнения процедуры POST).
После запуска программы появится ее основной экран с меню и подменю.
4.10 lug and Play BIOS
Установка и конфигурирование устройств в PC-совместимом компьютере довольно сложный процесс. Пользователь должен назначить устройству прерывание, порты ввода-вывода и каналы DMA, т.е. ресурсы, не используемые в данный момент другими устройствами. Это выполнялось с помощью перемычек и переключателей на плате устанавливаемого устройства. При неверном выборе параметров возникал конфликт устройств, который чаще всего являлся причиной других ошибок: например, система отказывалась загружаться.
Технология Plug and Play значительно упростила процесс установки и конфигурирования новых устройств. Пользователю необходимо лишь вставить плату в свободный разъем, а система автоматически выделит необходимые ресурсы.
Технология Plug and Play состоит из следующих основных компонентов:
■ Plug and Play BIOS;
■ Extended System Configuration Data (ESCD);
■ операционная система Plug and Play.
При загрузке компьютера Plug and Play BIOS инициирует конфигурирование устройств, соответствующих спецификации Plug and Play. Если адаптер был уже установлен в системе, то BIOS считывает конфигурационную информацию из ESCD, инициализирует устройство и продолжает загрузку. Если же устройство впервые появилось в системе, BIOS запрашивает у ESCD свободные ресурсы. Получив их, она конфигурирует новое устройство. Если же с помощью свободных ресурсов нельзя сконфигурировать новое устройство, то BIOS продолжает загрузку компьютера, а конфигурированием занимается операционная система. Параметры всех корректно сконфигурированных устройств записываются в базу данных ESCD.
Контрольные вопросы
1 Что называют базовой системой ввода-вывола?
2 Почему компьютеры с разным оборудованием могут запускать одинаковое программное обеспечение?
3 Где находится BIOS в PC-совместимой системе?
4 Что содержит системная BIOS?
5 Опишите CMOS RAM.
6 Какие основные функции выполняет Системная BIOS?
7 Опишите назначение ROM BIOS.
8 Какая связь между ROM и оперативной памятью?
9 Опишите адресное пространство ROM BIOS.
10 Опишите классификацию стандартной памяти системной BIOS .
Вместе с этой лекцией читают "Печатные процессы".
11 Что означает «Затенение ROM»?
12 Перечислите основные типы памяти ROM.
13 В каких случаях может понадобиться обновление ROM BIOS?
14 Особенность использования микросхемы Flash ROM.
15 Опишите порядок запуска программы Setup BIOS.
16 Опишите технологию Plug and Play.