Затенение ROM

В компьютерах с процессорами 386 и последующими обмен данными с памятью осущест вляется по 32 или 64разрядным шинам, а обращение к ROM BIOS — только по 16раз рядным. Более того, адаптеры с собственными BIOS могут обращаться к системной памяти лишь по 8разрядной шине. Очевидно, что 16 или 8разрядный доступ к памяти становится основной причиной снижения производительности быстродействующих компьютеров. Кроме того, скорость работы микросхем ROM значительно ниже быстродействия сущест вующих микросхем RAM.

Установленная и доступная память



Многие пользователи не совсем осознают, что не вся приобретаемая и устанавливаемая в компьютер память (например, модули SIMM) будет доступной. Изза некоторых особенно стей структуры компьютеров обычно приходится жертвовать небольшой областью памяти (до 384 Кбайт), чтобы организовать доступ к верхней памяти

. Например, в компьютерах с объемом установленных микросхем памяти 16 Мбайт (16 384 Кбайт) во время выполнения процедуры POST или программы установки параметров BIOS выводится сообщение только о 16 000 Кбайт, а 384 Кбайт (16 384–16 000=384) памяти кудато пропадает! В других компьютерах с таким же объемом установленной памяти (16 Мбайт) сообщается о наличии 16 256 Кбайт, т.е. исчезает всего 128 Кбайт.

Если запустить программу установки параметров BIOS и проверить основную и дополни тельную память, то можно получить больше информации, чем приводится в кратком сообще нии теста POST. В системах с объемом памяти 4 Мбайт будет обнаружено 640 Кбайт основ ной и 3 072 Кбайт дополнительной памяти. Иногда программа установки параметров BIOS сообщает о 640 Кбайт основной и 3 328 Кбайт дополнительной памяти, что уже несколько лучше. Другими словами, в большинстве компьютеров память оказывается “укороченной” на 384 Кбайт, а в остальных — на 128 Кбайт.

Объяснить это явление довольно трудно, хотя оно наблюдается в каждом компьютере. Предположим, что в компьютере с процессором 486 установлено два 72контактных (36раз рядных) модуля SIMM по 1 Мбайт каждый. При этом общая память (2 Мбайт) разделяется на два отдельных банка, поскольку шина данных процессора 32разрядная, а для каждых восьми разрядов данных необходим один дополнительный контрольный разряд четности (получается 36 разрядов). Каждый модуль SIMM представляет собой один банк. Отметим, что в компьютерах с процессором 486 использовались 30контактные (9разрядные) модули SIMM, т.е. каждый банк состоял из четырех модулей. Первому банку (или модулю SIMM в рассматриваемом случае) присваиваются адреса, начиная с 0000000 (1й мегабайт), а второ му — с 1000000 (17й мегабайт).

Один из основополагающих принципов организации памяти заключается в том, что нель зя присваивать двум физическим устройствам одни и те же адреса. Это означает, что 384 Кбайт в первом банке памяти в нашей ситуации вступают в конфликт с видеопамятью (сегменты A000 и B000), областями ROM различных адаптеров (сегменты C000 и D000) и, естественно, с областью ROM системной платы (сегменты E000 и F000). Поэтому все области RAM модуля SIMM, которые располагаются по этим адресам, необходимо отключить, иначе компьютер не будет работать. Для решения проблемы разработчики системных плат исполь зуют различные методы; три из них приведены ниже.

Быстродействующие области RAM используются для хранения копий содержимого “медленных” областей ROM (т.е. для организации затененной памяти); сами области ROM при этом отключаются.

Отключаются все области RAM, которые не используются для затененной памяти, что предотвращает все возможные конфликты в области верхней памяти.

Области RAM, не используемые для затененной памяти, переадресуются таким обра зом, чтобы их можно было добавить к имеющейся дополнительной памяти.

В большинстве компьютеров организуется затененная память только для ROM системной платы (64 Кбайт) и видеопамяти (32 Кбайт), а остальная область RAM отключается. Для не которых областей ROM системной платы можно выделить дополнительную затененную память в диапазоне адресов С8000–DFFFF (шаг приращения обычно равен 16 Кбайт).