CD Hole
- столь необычная опция "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 |
PAM1[3:0] |
0C0000h - 0C3FFFh |
ISA Add-on BIOS* |
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 |
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 см. ниже).