- столь необычная опция "AMI BIOS" предназначена для управления адресной областью в диапазоне DC000h - DFFFFh. Если установлено значение "Disabled", то любое обращение, запрос к данному пространству направляется основному SCSI-контроллеру (хотя это может быть и сетевое устройство). Если же выбрано "Enabled", доступ к этому региону памяти контролируется одним из PAM (Programmable Attribute Map) регистров, т.е. стандартным способом.
Стоит остановиться на этой теме подробнее.
В состав "северного" (Host-to-PCI Bridge) моста чипсета, среди множества других, входят и семь программируемых PAM-регистров. Через установку различных аттрибутов они позволяют управлять тринадцатью адресными сегментами различного размера в диапазоне от 640 КБ до 1 МБ адресного пространства. С другой стороны, кэширование этими областями осуществляется через MTRR-регистры центрального процессора (о них будет сказано ниже).
Каждый PAM-регистр (см. таблицу) контролирует два региона, обычно по 16 КБ каждый. Каждый из регионов "обслуживается" четырьмя битами, два из которых зарезервированы, а два остальных - это "Read Enable" и "Write Enable". В зависимости от состояния этих бит ("0" или "1") осуществляется либо доступ к основной памяти, либо запросы перенаправляются на PCI-шину. Поэтому, если установлены два "0", доступ к выбранному диапазону памяти невозможен.
В процессе начальной загрузки и выполнения инструкций BIOS при копировании некоторого BIOS в выбранную "затеняемую" область в соответствующем регистре по соответствующему аттрибуту "Write Enable" устанавливается "1". После окончания всех процедур, связанных с затенением, для данного диапазона (регистра) устанавливается режим "только для чтения" (read only), что соответствует аттрибутам "Read Enable", равным "1", и "Write Enable", равным "0". При этом все циклы записи в данную область перенаправляются непосредственно шине расширения.
Понятно, что если речь идет о выделенной RAM-памяти, то оба аттрибута будут равными "1".
PAM-регистр
Сегмент памяти
Назначение
Примечание
PAM0[3:0]
Зарезервировано
PAM0[7:4]
0F0000h - 0FFFFFh
BIOS Area
Область системного BIOS. 64K-байтный сегмент, который может кэшироваться, читаться и перезаписываться. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM1[3:0]
0C0000h - 0C3FFFh
ISA Add-on BIOS*
Expansion Area (C0000h-DFFFFh), или область расширения, - это 128К-байтная область, разделенная на восемь 16K-байтных сегментов. Каждый из сегментов может находиться в одном из четырех состояний: только для чтения, только для записи, чтения/записи или заблокированном. Каждый из сегменов может кэшироваться. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM1[7:4]
0C4000h - 0C7FFFh
ISA Add-on BIOS*
PAM2[3:0]
0C8000h - 0CBFFFh
ISA Add-on BIOS*
PAM2[7:4]
0CC000h - 0CFFFFh
ISA Add-on BIOS*
PAM3[3:0]
0D0000h - 0D3FFFh
ISA Add-on BIOS
PAM3[7:4]
0D4000h - 0D7FFFh
ISA Add-on BIOS
PAM4[3:0]
0D8000h - 0DBFFFh
ISA Add-on BIOS
PAM4[7:4]
0DC000h - 0DFFFFh
ISA Add-on BIOS
PAM5[3:0]
0E0000h - 0E3FFFh
BIOS Extension
Расширенная область системного BIOS (E0000h-EFFFFh) разделена на четыре 16К-байтных сегмента. Каждый сегмент независимо от других может кэшироваться, считываться и быть перезаписываемым. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM5[7:4]
0E4000h - 0E7FFFh
BIOS Extension
PAM6[3:0]
0E8000h - 0EBFFFh
BIOS Extension
PAM6[7:4]
0EC000h - 0EFFFFh
BIOS Extension
Примечание.
* - Сегмент C0000h - CFFFFh может быть использован SMM-пространством, если используется SMRAM-регистр (об SMM см. ниже).