Когда вы впервые включаете компьютер, сначала настраивается цикл выборки / выполнения для получения инструкций из микросхемы BIOS непосредственно в регистр команд в ЦП, или есть автоматическая схема, настроенная таким образом, что при обнаружении включения команды в Чип BIOS автоматически загружается в оперативную память?
Обновить
Я думаю, что нашел свой ответ здесь :
После выключения сигнала сброса ЦПУ начинает работать. Код в ОЗУ не может быть выполнен, так как ОЗУ пусто. Производители ЦП предварительно программируют процессор так, чтобы он всегда начинал выполнять код по адресу «FFFF: 0000» (обычно ПЗУ BIOS) ПЗУ.
Таким образом, центральный процессор физически настроен на загрузку и выполнение адреса памяти FFFF: 0000 в ПЗУ, как только он включен.
Ответы:
У большинства плат в BIOS была опция для настройки этого поведения. Обычно это называлось теневым копированием, и обычно оно было включено по умолчанию. Я не думаю, что многие форумы утруждают себя выбором в эти дни и просто всегда находятся в тени. Причина в том, что ОЗУ быстрее ПЗУ, поэтому оно ускоряет копирование в ОЗУ и запуск его оттуда.
Обратите внимание, что копирование не выполняется какой-то магической схемой, оно просто выполняется самим биосом, когда он первоначально начинает выполнять из ПЗУ, он просто копирует себя в ОЗУ, а затем продолжает выполняться оттуда.
источник
Это еще один случай, когда полученная народная мудрость по этому вопросу, как, к сожалению, подтверждается
psusi
ответом и действительно частью вопроса, застряла в мире примерно в 1991 году, несмотря на множество доступных технических ссылок, объясняющих, как это происходит сейчас. в противном случае.В мире конца 1980-х годов прошивка машины - одна из двух вещей, называемых «BIOS» в мире IBM PC-совместимых - действительно была в микросхеме ПЗУ на шине ISA; и процессоры действительно начали выполнять код по физическому адресу
000FFFF0
, месту в «обычной памяти», доступ к которому осуществляется через указатель реального режима.F000:FFF0
Этот мир давно исчез.(Мир, в котором ошибочно живет автор WWW-страницы С. Эбрагим Шуббар, несмотря на то, что он писал в 2002 году, еще старше. Процессоры не начинали с
CS:IP
комбинацииFFFF:0000
с 8086 года. 80286 изменил это наF000:FFF0
. Но 80286 мир сам по себе является весьма устаревшее мира конца 1980 - х годов , что народная мудрость до сих пор циркулируют.)Ваш "чип BIOS" - это RAM; и ваш процессор не 16-битный.
В современных ПК прошивка машины хранится в энергонезависимой оперативной памяти . Чип NVRAM подключен к шине LPC (или к выделенному интерфейсу «Firmware Wub»), а мост LPC / FWH в «чипсете» обычно отключает циклы записи в него. «Перепрошивка» прошивки включает в себя установку регистров набора микросхем, которые разрешают запись в NVRAM и затем запись в NVRAM. (Например, в Intel ICH10 бит регистра набора микросхем, который позволяет выполнять циклы записи, называется
BIOSWE
«BIOS Write Enable». Есть некоторые дополнительные детали, которые я здесь пропущу, но в этом суть.)Процессоры x86 не начинали выполнение на месте
000FFFF0
со времен 80286. 32-разрядные процессоры запускаются в так называемом нереальном режиме . Даже если начальное значениеCS
регистра после сброса равноF000
, дескриптор сегмента, связанный с этим регистром, изначально хранится вFFFF0000
качестве его базового адреса. Таким образом, физический адрес , который изначально соответствует в CS 16:16: IP - адресF000:FFF0
, на самом деле, и было со времен 80386FFFFFFF0
.И именно здесь микропрограмма машины в основном отображается в физическое адресное пространство на 32-разрядных и 64-разрядных компьютерах x86. В области «обычной памяти» имеется окно для встроенного программного обеспечения объемом 128 КБ, но NVRAM, на котором установлено встроенное программное обеспечение компьютера, может иметь размер до 16 МБ (хотя это зависит от набора микросхем) на современных ПК и, как правило, немедленно сопоставляется с 16 МБ физического адресного пространства. ниже линии 4GiB - то есть физические адреса
FF000000
дляFFFFFFFF
. (Чтобы снова использовать ICH10 в качестве примера: то, какая часть этого адресного пространства отображается на NVRAM, контролируется регистром набора микросхем, известным как регистрFWH_DEC_EN
"Firmware Hub Decode Enable". Регистр. Микропрограмма кодируется для перепрограммированияFWH_DEC_EN
зарегистрироваться в соответствии с размером фактического чипа NVRAM, установленного на материнской плате. Но вершина 512KiB из NVRAM будет всегда отображаться, в физические адресаFFF80000
вFFFFFFF
, и не может быть отключен.) Код сначала выполняется процессором сразу после сброса жизни в верхнем по 64Kb этого диапазона адресов 16MiB.Что касается затенения в ПЗУ BIOS (как его называют - почему он
barlop
считает, что затенение ЦП является загадкой): Да, доступ к NVRAM на шине LPC или концентратору микропрограммного обеспечения все еще не такой быстрый, как доступ к основной системе. (энергозависимая) оперативная память. Но причины, по которым слежка важна, значительно уменьшились с появлением операционных систем, таких как OS / 2 и Windows NT - опять же в конце 1980-х и начале 1990-х годов. Операционные системы реального режима, такие как MS-DOS, PC-DOS, DR-DOS и т. Д., Были наслоены поверх функциональных возможностей ввода-вывода, обеспечиваемых микропрограммой устройства. Таким образом, код прошивки и данные только для чтения в конечном итоге стали доступны во время выполнения. Операционные системы защищенного режима, такие как OS / 2 и Windows NT, полагаются гораздо меньшепосле предоставления услуг встроенного ПО во время выполнения. Таким образом, тот факт, что код, выполняемый из NVRAM, и данные только для чтения в том же самом виде, поступают в процессор медленнее, чем при теневом копировании в системную оперативную память, является меньшей проблемой, чем это было раньше.Кроме того, какие прошивки код и данные , которые они делают полагаться не обязательно жить в той части NVRAM отображается в части физического адресного пространства, вышеупомянутая окно 128KiB «обычной памяти», то есть обязательно даже shadowable в первую очередь. Не все службы встроенного ПО защищенного режима должны располагаться ниже линии 1 МБ в физическом адресном пространстве, как службы встроенного ПО реального режима, а некоторые - нет. (И, конечно , это было бы возможно только сделать тот же трюк с областью физического адресного пространства , которое они делают жить, если есть по крайней мере 4GiB системная память.)
По иронии судьбы, более точным источником информации об этом, чем С. Эбрагим Шуббар в 2002 году, является книга Фила Краучера « BIOS Companion», выпущенная годом ранее в 2001 году. М. Краучер отмечает, что Unices, Linux, Windows NT и «предположительно» (95 / 98) «не получай выгоды от слежки». Это не обязательно совсем бесполезно , но это сравнительно очень мало по сравнению с миром людей, использующих MS-DOS, PC-DOS и DR-DOS в реальном режиме на 16-битных машинах 80286 в 1989 году.
источник