Как процессор выполняет инструкции, хранящиеся в микросхеме флэш-памяти материнской платы?

Я читал, что при запуске регистр счетчика программ ЦП заполняется F000.

Я думал так:

PC registers contain the next instruction address.
This address is send to the address bus and value return to the data bus

Адресная шина работает только с оперативной памятью? Очевидно, что BIOS не хранится в оперативной памяти.

Так как же F000 нацеливает ПЗУ на запуск выполнения BIOS?


person Frederic Nault    schedule 15.03.2014    source источник


Ответы (3)


При включении набор микросхем сопоставляет вектор сброса (0xffff0) с ПЗУ BIOS. ЦП выполняет инструкции непосредственно из части ПЗУ, используя технику, называемую выполнением на месте (XIP). Затем BIOS может использовать кэш L2 процессора, как если бы он был оперативной памятью, используя метод, называемый «режим без удаления» или «кэш-как-ОЗУ». Наконец, основная системная оперативная память инициализируется, и можно загрузить операционную систему. Чтобы получить больше информации:

https://en.wikipedia.org/wiki/Reset_vector
https://en.wikipedia.org/wiki/Execute_in_place

Помимо BIOS
Руководства для разработчиков программного обеспечения для архитектур Intel® 64 и IA-32

person William Leara    schedule 17.03.2014
comment
это именно то, что я хочу знать. Можете ли вы предложить мне хорошую книгу, описывающую этот низкий уровень, пожалуйста? - person Frederic Nault; 18.03.2014
comment
добавил еще несколько ссылок - person William Leara; 18.03.2014

Разные процессоры имеют разный начальный адрес. Многие имеют 0000 в качестве начального адреса. ПЗУ BIOS, ОЗУ и другие периферийные устройства (например, последовательный порт) подключены к шине процессора. ПЗУ BIOS содержит инструкции по запуску, которые ЦП выполняет при запуске. Когда программы были загружены в ОЗУ, BIOS указывает ЦП начать выполнение инструкций из ОЗУ.

person jamihash    schedule 15.03.2014

Адреса используются не только для энергозависимой оперативной памяти.

32-разрядный ЦП может адресовать до 4 миллиардов адресов памяти (4 ГБ). Если вы покупаете 4 ГБ оперативной памяти, ваша ОС может сообщать только о том, что у вас есть 3,5 ГБ, потому что для другого оборудования, такого как BIOS, требуется около 600 миллионов адресов. http://blog.codinghorror.com/dude-wheres-my-4-gigabytes-of-ram/

Когда процессор запускается и получает указание взять следующую инструкцию по адресу x, он не знает и не заботится о том, чтобы x отображался в память BIOS, а не в энергозависимую память. Он будет следовать тому же процессу извлечения, декодирования, выполнения.

person Despertar    schedule 28.02.2016
comment
тратить часть своих денег немного недальновидно, тебе не кажется? - person jiggunjer; 03.10.2016
comment
@jiggunjer Одно определение отходов не используется или не используется. лишнее или лишнее. Это факт, что часть памяти, которую вы приобрели, непригодна для использования. Это не означает, что вся ваша покупка — пустая трата, это не было выгодной сделкой или вы глупы, купив 4 ГБ. Я удалил эту часть, поскольку она не имеет ничего общего с тем, о чем я говорю. - person Despertar; 10.10.2016
comment
Также фактом является то, что неиспользуемая память — это не то же самое, что неиспользуемая память. Это используется. - person jiggunjer; 10.10.2016