1

Я знаю, что заголовок пахнет растерянностью, и некоторые из вас могут подумать, что мне просто интересно, как компьютер загружается в целом, но это не так. Но я разберусь с этим для вас, люди:

1.Встроенная прошивка - это то, как в основном работают все современные компьютерные устройства, независимо от того, используются ли EFI/UEFI(даже без "встроенной прошивки", на старых компьютерах по-прежнему используется переключение банков или аналогичные методы с встроенными программами, картриджами и т.д.)

2.При запуске нет никаких "программ", работающих в традиционном смысле, то есть нет ядра, ОС, пользовательских приложений; я полагаю, что все инструкции, особенно самая первая инструкция, указываются указателем инструкций . Как это IP/ ПК / и т.д. установить в первую очередь адрес для BIOS / прошивки / и т.д. инструкция, и как инструкции BIOS отображаются в памяти перед запуском?

3.Помимо MMIO, BIOS использует определенные адреса RAM для получения инструкций. Большой ? приходит, когда я спрашиваю это ... как BIOS это делает?

Заключение:

Я предполагаю, что с самой первой инструкцией есть начальная настройка оборудования для BIOS до полной загрузки ОС. Что я хочу знать, так это то, что это аппаратно спроектировано так, чтобы всегда работать таким образом, есть ли еще один шаг в этом методе загрузки, который мне не хватает, пробел в информации, о котором я не знаю, или как все это работает с самой первой инструкции, и Сами данные ОЗУ.

1 ответ1

3

Физическое адресное пространство не обязательно должно указывать на ОЗУ. Большинство устройств, включая микропрограммное обеспечение, также занимают часть физического адресного пространства. Они открывают управляющие регистры и буферы данных, такие как обычные области памяти, для ЦПУ, которое будет обмениваться командами и данными с устройством, как будто оно читает / записывает ОЗУ. Это означает, что один и тот же набор адресов и шин данных может использоваться как для доступа к памяти, так и для ввода-вывода устройства, а драйверы аналогичны любым другим программам, управляющим памятью.

Карта адресов памяти, показанная диспетчером устройств Windows, лучше всего демонстрирует это.

Диспетчер устройств

Теперь, когда процессор запускается, указатель инструкций будет указывать на известный специальный адрес, скажем, 0x0, и начнет выполнять оттуда. Затем разработчик печатной платы должен убедиться, что микропрограмма встроена в физическое адресное пространство, начиная с 0x0.

Однако в действительности процессор может работать в совершенно другом режиме (например, с использованием другого набора команд или встроенных встроенных инструкций) до завершения инициализации прошивки. Это будет поведение, похожее на драйвер устройства, которое требуется для работы таких устройств, как последовательная флэш-память (в большинстве устройств) или даже SD-карта (как в Raspberry Pi). Однако этот доступ по-прежнему осуществляется через память подключенного устройства.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .