Как процесорът изпълнява инструкции, съхранени в чипа с флаш памет на дънната платка?

Четох, че при стартиране регистърът на брояча на програмата на процесора се попълва с F000.

Мислех, че:

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

Адресната шина работи ли само с RAM? Очевидно BIOS не се съхранява в RAM.

И така, как F000 насочва ROM, за да стартира изпълнението на BIOS?


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


Отговори (3)


При включване, чипсетът картографира вектора за нулиране (0xffff0) към BIOS ROM. Централният процесор изпълнява инструкции директно от ROM частта, използвайки техника, наречена Изпълнение на място (XIP). След това BIOS може да използва L2 кеша на процесора, сякаш е RAM, използвайки техника, наречена "No Evict Mode" или "Cache-as-RAM". Накрая основната системна RAM се инициализира и може да се зареди операционна система. За повече информация:

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

Отвъд BIOS
Ръководства за разработчици на софтуер за Intel® 64 и IA-32 Architectures

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

Различните процесори имат различен начален адрес. Много имат 0000 като начален адрес. BIOS ROM, RAM и други периферни устройства (напр. сериен порт) са свързани към шината на процесора. BIOS ROM съдържа инструкциите за стартиране, които процесорът изпълнява при стартиране. Когато програмите са заредени в RAM, BIOS насочва процесора да започне да изпълнява инструкции от RAM.

person jamihash    schedule 15.03.2014

Адресите се използват за нещо повече от енергонезависима RAM.

32-битов процесор може да адресира до 4 милиарда адреса на паметта (4 GB). Ако закупите 4 GB RAM, вашата операционна система може да съобщи само, че имате 3,5 GB, защото ~600 милиона адреса са необходими за друг хардуер като BIOS. 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 GB. Премахнах тази част, тъй като няма нищо общо с това, което излагам. - person Despertar; 10.10.2016
comment
Също така е факт, че неизползваемата памет не е същата като неизползваната памет. Използвано е. - person jiggunjer; 10.10.2016