Нормальные компьютеры x86 или AMD запускают код запуска /BIOS прямо из ПЗУ или копируют его сначала в ОЗУ?

Я понимаю, что современные компьютеры изменили архитектуру Гарварда.

Может ли тот факт, что они могут читать инструкции откуда-то, кроме того, где хранятся данные, позволяет им получать инструкции непосредственно из чипов ROM? Они сначала загружают BIOS в ОЗУ или выполняют его непосредственно с чипа? У меня нет компьютера, который я могу открыть поблизости, поэтому... Если я удалю ВСЕ ОЗУ из слотов памяти, сможет ли компьютер запустить полный BIOS, запустить POST-материал и сказать мне, что мне нужна оперативная память? Это смешно, что я никогда не пробовал...

EDIT: мое намерение с этим вопросом состоит в том, чтобы узнать, могут ли коммерческие процессоры (или, по крайней мере, Intel cpus) выполнять код непосредственно из ПЗУ. Это не для практических целей, это должно увеличить мое понимание компьютерных архитектур и прочее. Удаление-RAM-часть - это не мое главное сомнение, просто пример

Ответ 1

Он и выполняет прямо из ROM и копирует материал в оперативную память.

На современном процессоре x86 контроллер памяти чипсета не инициализируется при первоначальном включении питания, поэтому нет доступной оперативной памяти.

Современный BIOS обычно делится на две части:

  • Загрузочный блок (ранний POST)
  • Сжатая область (от среднего до позднего POST)

Когда процессор выходит из reset, он начинает выполнять инструкции по фиксированному адресу в памяти, называемому "reset vector". Микросхема флэш-памяти BIOS отображается на этот адрес в памяти. Процессор просто начинает выполнять инструкции с этого адреса.

"Загрузочный блок" относится к коду BIOS, начинающемуся с вектора reset (плюс несколько JMP). Это выполняется непосредственно из ПЗУ (контроллер памяти еще не встал), поэтому он очень медленный.

Загрузочный блок BIOS обычно выполняет следующие действия:

  • Инициализировать контроллер памяти. (Если вы получаете "звуковой сигнал с памятью не обнаружен" с материнской платы, это происходит здесь.)
  • Выполните контрольную сумму в сжатой области, чтобы убедиться, что в остальной части BIOS нет коррупции.
  • Перейдите в режим восстановления, если обнаружено какое-либо повреждение.
  • Если контрольная сумма проходит, распакуйте остальную часть BIOS в ОЗУ где-нибудь (обычно ниже границы 1 МБ).
  • Перейдите в распакованный код в ОЗУ и продолжайте загрузку.

Ответ 2

Если вы полностью удаляете ОЗУ, ПК должен постоянно издавать звуковой сигнал, когда вы включаете его.

Вот хорошее описание того, что происходит: http://www.pcguide.com/ref/mbsys/bios/boot.htm

Там также Ханс-Петер Мессмер "Неподдерживаемая аппаратная книга ПК", которая также описывает этот процесс.