Спецификации PCI требуют, чтобы код из ROM-памяти

Необходимость использования теневой ROM-памяти.

Спецификации PCIтребуют, чтобы код из ROM-памяти не выполнялся на места (т.е., непосредственно из ROM). Он должен был скопирован в основную память. В дальнейшем это будет называться «затенением» кода ROM. Это требование вызвано двумя причинами:

Скорость доступа к ROM-памяти обычно весьма мала, что приводит к плохой производительности каждый раз при выборке исполняемого кода.

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

Как только определено наличие ROM-памяти устройства (см. предыдущую секцию), программа должна скопировать образ кода в основную память и затем выключить дешифратор адресов ROM-памяти (очищением нулевого бита регистра базового адреса в расширенной ROM-памяти). В не-ПК среде область памяти, куда копируется образ кода, может находиться где угодно. Спецификации среды должны определять  конкретную область.

В ПК среде, образ кода должен быть скопирован в область основной памяти с адресом, исторически связанными с ROM-памятью устройств: с 000C0000h по 00DFFFFh. Если класс кода сигнализирует о том, что это ROM-память VGA-устройства, то образ кода должен быть скопирован в память с начальным адресом 00C0000h.

Следующий раздел определяет формат информации в ROM и как программа определяет, какой образ кода (да, может быть несколько драйверов устройства) должен быть загружен в основную память.

 

Ссылка на основную публикацию
Adblock detector