Jak napisałem w mojej odpowiedzi na to pytanie, otrzymana ludowa mądrość na ten temat - jak niestety ilustrują to inne odpowiedzi tam (i gdzie indziej w SuperUser) - utknęła w świecie tak jak około 1991 roku, pomimo bogactwa dostępnych technicznych odnośników wyjaśniających jak teraz jest inaczej.
Nie byłbyś tak zdezorientowany, gdybyś przeczytał moją odpowiedź, ponieważ nie zapytałbyś w pierwszej kolejności o „BIOS załadowany z ROM”.
Twój „układ BIOS” nie jest ROMem; między uruchomieniem procesora a pierwszą instrukcją oprogramowania układowego nie ma kodu maszynowego; a „M” zarówno w „RAM”, jak i „ROM” oznacza „pamięć”.
Jak pisałem wcześniej, we współczesnych komputerach oprogramowanie układowe urządzenia jest przechowywane w nieulotnej pamięci RAM . To nie jest ROM, jak kiedyś. Zobacz poprzednią odpowiedź, aby uzyskać szczegółowe informacje na temat układu NVRAM podłączonego do magistrali LPC. (Na przykład: na maszynie siedzącej przy mnie zdemontowanej podczas pisania, NVRAM przechowujący oprogramowanie to Pm49FL004T, układ LPC Flash RAM.)
Procesory 32-bitowe nie uruchamiają się w trybie rzeczywistym i nie zaczynają się od adresu poniżej linii 1MiB. To dziesięciolecia przestarzałych śmieci z czasów 16-bitowych procesorów x86. Zaczynają się w tak zwanym potocznie trybie nierealnym i ponownie w mojej poprzedniej odpowiedzi podałem szczegóły tego, co faktycznie miało miejsce od czasu pojawienia się 80386 . Ładują swoje pierwsze polecenie z adresu, który jest w rzeczywistości na samym szczycie 32-bitowej przestrzeni adresowej FFFFFFF0
.
W mojej poprzedniej odpowiedzi szczegółowo powiedziałem, gdzie oprogramowanie wewnętrzne maszyny jest głównie mapowane do fizycznej przestrzeni adresowej na komputerach 32-bitowych i 64-bitowych x86. Pamiętaj: zarówno RAM, jak i ROM są pamięcią . Adresy fizyczne to adresy pamięci na magistrali systemowej. Mogą adresować pamięć RAM lub ROM. (Mogą nawet zajmować się także innymi rzeczami, ale to tylko komplikuje tę dyskusję.) Adres fizyczny FFFFFFF0
jest 16 bajtów poniżej górnej granicy zakresu 512 kB, przy czym górne 512 kB oprogramowania układowego w nieulotnej pamięci RAM jest zawsze mapowane na magistrala systemowa przez „chipset”.
Nie ma „ładowania” z jakiegoś mitycznego układu ROM, który zachodzi przy inicjalizacji lub resecie procesora. Układ przechowujący oprogramowanie układowe to nieulotna pamięć RAM . Zachowuje swoją zawartość, zapisaną, kiedy jest „flashowana”, w cyklach zasilania. Procesor po prostu odczytuje instrukcje oprogramowania układowego i dane z niego, poprzez magistralę systemową i przez magistralę LPC (i ewentualnie mostek LPC / FWH) podłączoną do magistrali systemowej za pomocą mikroukładu, używając adresu pamięci fizycznej.
Dalsza lektura