Ответ 1
Он и выполняет прямо из ROM и копирует материал в оперативную память.
На современном процессоре x86 контроллер памяти чипсета не инициализируется при первоначальном включении питания, поэтому нет доступной оперативной памяти.
Современный BIOS обычно делится на две части:
- Загрузочный блок (ранний POST)
- Сжатая область (от среднего до позднего POST)
Когда процессор выходит из reset, он начинает выполнять инструкции по фиксированному адресу в памяти, называемому "reset vector". Микросхема флэш-памяти BIOS отображается на этот адрес в памяти. Процессор просто начинает выполнять инструкции с этого адреса.
"Загрузочный блок" относится к коду BIOS, начинающемуся с вектора reset (плюс несколько JMP). Это выполняется непосредственно из ПЗУ (контроллер памяти еще не встал), поэтому он очень медленный.
Загрузочный блок BIOS обычно выполняет следующие действия:
- Инициализировать контроллер памяти. (Если вы получаете "звуковой сигнал с памятью не обнаружен" с материнской платы, это происходит здесь.)
- Выполните контрольную сумму в сжатой области, чтобы убедиться, что в остальной части BIOS нет коррупции.
- Перейдите в режим восстановления, если обнаружено какое-либо повреждение.
- Если контрольная сумма проходит, распакуйте остальную часть BIOS в ОЗУ где-нибудь (обычно ниже границы 1 МБ).
- Перейдите в распакованный код в ОЗУ и продолжайте загрузку.