2014-04-15 18 views
5

Przeczytałem to z poprzedniej odpowiedzi przepełnienia stosu:Czy adres jest 0xFFFFFFF0 hardwired dla systemu BIOS ROM?

Przy początkowym włączeniu BIOS jest wykonywany bezpośrednio z pamięci ROM. Układ ROM jest mapowany do stałej lokalizacji w pamięci procesora (zwykle jest to cecha chipsetu). Kiedy procesor x86 wychodzi z resetowania, natychmiast zaczyna wykonywać od 0xFFFFFFF0.

Kontynuacja pytania,

Czy ten adres 0xFFFFFFF0 przewodowych tylko dostęp do systemu BIOS ROM i później, gdy system jest uruchomiony i działa tym adresem 0xFFFFFFF0 nie mogą być stosowane przez RAM?

Ponadto, gdy adres 0xFFFFFFF0 jest dla nas dostęp do systemu BIOS ROM, czy procesor uzyskuje dostęp do niego jako urządzenie IO lub urządzenie pamięci?

Odpowiedz

2

Po włączeniu zasilania jest to ROM. Musi być lub procesor nie mógłby się uruchomić. Niektóre mikroukłady mają bity rejestru, które umożliwiają usunięcie układu pamięci flash BIOS z przestrzeni adresowej pamięci. Oczywiście nie powinieneś tego robić podczas wykonywania z ROM!

Istnieje wspólna technika na sprzęcie komputerowym o nazwie "shadowing", w której system BIOS skopiuje zawartość pamięci ROM do pamięci RAM odwzorowanej pod tym samym adresem. RAM jest na ogół znacznie szybszy niż ROM, więc może przyspieszyć działanie systemu.

Co do drugiego pytania, jest to urządzenie pamięci. To musi być z następujących powodów:

  1. I/O są adresy 16-bitów, a nie 32.
  2. An procesory x86 nie może wykonać kod z przestrzeni I/O. Nie można skierować wskaźnika instrukcji na adres wejścia/wyjścia.
0

Jest odwzorowany na globalną przestrzeń pamięci i jest adresowany w ten sam sposób. Zwykle pamięć RAM nie powinna być mapowana na dowolny zakres adresów używanych przez inne urządzenia. Jest to dość powszechne. Być może pamiętasz kilka lat temu, zanim 64-bitowe systemy operacyjne stały się bardziej standardowe na domowych komputerach osobistych, na których użytkownik mógł mieć 4 GB pamięci fizycznej zainstalowanej, ale może tylko 3,5 GB dostępnej ze względu na mapowanie karty graficznej na 512 MB przestrzeni adresowej .