Как современный процессор x86 получает доступ к ПЗУ BIOS
Я знаю, что современные чипы x86 запускаются в 32-битном режиме и начинают выполнять код с 0xFFFFFFF0 (последние 16 байтов 32-битного адресного пространства). Обычно содержимое прошивки BIOS сопоставляется с памятью в этом месте, подобно тому, как более старый чип 8086 получал доступ к системным ПЗУ.
Однако современные ПК больше не имеют микросхем ПЗУ, подключенных непосредственно к памяти процессора и шинам данных. Скорее, обычно есть небольшая флеш-микросхема, подключенная через SPI, LPC, i2c или аналогичную шину к чипсету.
Мой вопрос Как процессор может получить доступ к ПЗУ, если это была физическая память? Посылает ли чипсет команды чтения SPI/LPC каждый раз, когда обнаруживает доступ памяти к отображаемой области? По этой причине чипсет запускается и загружает собственную прошивку перед запуском процессора?
0 ответов
Я в основном работаю только с одним процессором x86 - Xeon D 1500. Его даташит состоит из 4 частей. Если вы откроете часть 1 и перейдете к разделу 4.4 Карта памяти, там будет таблица, в которой указано, что указанный вами адрес нацелен на внутренний контроллер LPC/SPI сразу после запуска системы (тот, который говорит, что всегда включен). В разделе 4.4.1 упоминается небольшое исключение для случаев, когда вы хотите загрузить основной BIOS перед загрузкой.