Память ПЗУ для ROM BIOS представлена двумя частями:
- первая, системная, расположена на SB в двух чипах ПЗУМ 27565, по 32 Кбайт каждый, или в одном - на 64 Кбайт. Доступ к ROM BIOS осуществляется по целым словам, т.е. разряды адресной шины XA[1/0] всегда = 0 и обычно на SB есть перемычки (jampers) для возможности расширения адресов ROM до 128 Кбайт;
- вторая - ROM-ловушки. Здесь размещаются программы-драйверы дополнения базовой версии BIOS новыми возможностями, при расширении или модификации аппаратных средств (HDD, дисплей и др.). Расположены эти ROM на картах контроллеров расширения соответствующих подсистем.
Обе части BIOS при загрузке системы транслируются в теневую RAM (см. Карту стандартного распределения памяти под MS DOS, таблица 1.4.). Доступ к чипам ROM происходит через дешифратор адреса второй ступени (выход HIROM) в контроллере 303, активизацией сигнала ROMCS = L в контроллере 82С302.
BIOS - это программное средство (Firm Ware), низший уровень ОС, реализующий интерфейс между аппаратной частью (Hard Ware) и операционной системой (DOS-Ware). Программы BIOS, написанные разными производителями (AWARD, AMI, PHOENIX и т. д.) и даже одной фирмой, но для разных моделей РС, отличаются. Более того, BIOS, написанная для той же модели РС той же фирмы, но разного времени выпуска также могут отличаться. Все эти варианты, как правило, между собой несовместимы.
Содержимое ИМС ROM BIOS разделено на 3 части:
1) программа самотестирования РС (POST) и инициализации (загрузки) портов ВВ для всех устройств, поддерживаемых этой BIOS. Но некоторые программы BIOS расположены на картах расширения УВВ - это дополнение BIOS для тех УВВ, описаний которых нет в ПЗУ на SB. Выполнение POST-программы завершается прерыванием 13h (BootsTrup), которое инициирует загрузчик системных модулей (ядра DOS) с системного носителя - в ОЗУ.
2) программы обработки прерываний от УВВ, поддерживаемых системной ROM BIOS на SB или на картах расширения.
3) система подпрограмм обслуживания функций УВВ.
Вторая и третья части тесно связаны между собой. Так, вызов программы взаимодействия с портами УВВ происходит через программные прерывания, а функция обслуживания вызывается из третьей части, по коду, хранящемуся в регистре AH CPU.
Информация в ROM BIOS защищается от информационных ошибок с помощью циклической контрольной суммы (код CRC).
Если какие-то функции УВВ требуются, но в BIOS не прописаны, можно либо заменить сам чип ROM BIOS (для этого он и смонтирован в ChipSocket), либо ввести специальные утилиты обслуживания, например, Disk Manager и т. п. Современные РС типа Pentium часто оснащаются другим типом ПЗУ для хранения ROM BIOS, так называемой Flash-памятью. Этот тип ППЗУ предоставляет возможность электрической перезаписи информации (EPROM) даже без извлечения модуля из РС. Это, с одной стороны, очень удобно, - можно внести изменения, добавить недостающие функции обслуживания, но имеется и отрицательная сторона дела:
- прежде всего, нужно хорошо понимать зачем, что и как следует делать с Flash-памятью;
- помнить, что EPROM имеет, хотя и достаточно большое (до 50), но все-таки ограниченное допустимое количество перезаписей, после чего характеристики хранения информации этой EPROM не гарантируются;
- наконец, при штатной эксплуатации, имеющаяся на системной плате в районе Flash-памяти перемычка перепрограммирования должна быть установлена в положение запрет программирования. Иначе, при некоторых видах сбоев электроники или программ, информация в ROM BIOS, выполненной на
флешь-памяти, может быть разрушена. И самое худшее, что может случиться, - это повреждение информации в подобной ROM BIOS, вследствие деструктивных действий некоторых компьютерных вирусов. При этом нормальное функционирование компьютера становится невозможным.
Таблица функций УВВ сохраняется в ОЗУ, в 256-байтной области (BIOS DATA AREA), сразу за векторами прерываний, впрочем, программы-менеджеры памяти могут ее перемещать в область верхней памяти (UpperMemory).
Доступ к ROM BIOS со стороны CPU по адресам, обеспечивается через шину расширения адреса ХА [23/00], а по данным - через буфер данных 82А305 (рисунок 1.3).
Теневые области оперативной памяти.
В компьютерах с микропроцессорами 386 и выше, обмен данными с памятью осуществляется по 32- или 64-разрядным шинам, а обращение к ПЗУ ROM BIOS - только по 16-разрядному тракту. Контроллеры с собственными ROM BIOS могут обращаться к системной плате лишь по 8-разрядному тракту, что существенно снижает общую производительность машины. Кроме того, быстродействие ПЗУ значительно ниже, чем у существующих микросхем динамического ОЗУ. Например, задержка выборки из лучших ИМС ПЗУ составляет 150-200 нсек, тогда как для современных ИМС ОЗУ - всего десятки и даже единицы наносекунд. Для преодоления этого недостатка, применяется копирование содержимого ROM BIOS в 32-разрядную основную память. Этот прием называется созданием теневой памяти (shadowing).
Теневая память создается внутренним устройством управления памятью MMU микропроцессора. MMU копирует код ПЗУ в определенную область ОЗУ и присваивает ей те же адреса, по которым она исходно располагалась в ПЗУ, после чего доступ к самим ИМС ПЗУ отключается. Эта часть ОЗУ теперь рассматривается тоже как ПЗУ и защищается от записи. Применение, для организации теневой памяти, менеджера верхней памяти, стоит потери участка расширенной памяти, объемом, равным объему ПЗУ, для которого эта теневая память создавалась. Иногда области ОЗУ, не используемые под теневую память, переадресуются так, чтобы не получалось разрывов в адресном пространстве памяти. Но переадресация возможна только по целым сегментам, с точностью до 16 Кбайт, так что приходится "выбрасывать" иногда вплоть до 384 Кбайт памяти, чтобы можно было организовать доступ к верхней памяти РС. Это особенно заметно, когда при выполнении процедуры POST для РС, с установленными физически 4 Мбайт памяти (4096 Кбайт), выводится сообщение о наличии всего 3712 Кбайт ОЗУ. Это значит: 4096 Кбайт - 3712 Кбайт = 384Кбайт "потерялись". Это и есть созданная теневая память, которая физически существует, но исключена из нормальной работы ОЗУ, т. к. в ней хранятся копии системного, видео, жестких дисков и проч. ROM BIOS.
Контрольные вопросы.
1. На каких типах ПЗУ может быть организована подсистема ROM BIOS?
2. Для чего, главным образом, используется ROM BIOS?
3. Зачем ROM BIOS копируется в DRAM?
4. Что делается для защиты копии ROM BIOS в DRAM?
5. Как защищается от ошибок сама ROM BIOS?
6. В чем достоинства и недостатки flash-ROM BIOS?
7. Как ускоряется работа с ПЗУ ROM BIOS в РС?
Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.
Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.
Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование "моря" двух компенсирующих друг друга энергий в вакууме - положительной и отрицательной, а также "моря" компенсирующих друг друга частиц - виртуальных (то есть кажущихся) электронов и позитронов в вакууме.
Однако такая постановка является внутренне противоречивой (виртуальные частицы ненаблюдаемы и их по произволу можно считать в одном случае отсутствующими, а в другом - присутствующими) и противоречащей релятивизму (то есть отрицанию эфира, так как при наличии таких частиц в вакууме релятивизм уже просто невозможен). Подробнее читайте в FAQ по эфирной физике.