Память ПЗУ для 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 в РС?
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.