2014-04-15 17 views
5

Ho letto questo da una risposta di overflow stack precedente:L'indirizzo 0xFFFFFFF0 è cablato per la ROM del BIOS di sistema?

All'accensione iniziale, il BIOS viene eseguito direttamente dalla ROM. Il chip ROM viene mappato su una posizione fissa nello spazio di memoria del processore (di solito è una caratteristica del chipset). Quando il processore x86 esce dal reset, inizia immediatamente l'esecuzione da 0xFFFFFFF0.

follow-up domande,

È questo indirizzo 0xFFFFFFF0 cablato solo per accedere alla ROM BIOS del sistema e più tardi, dopo che il sistema è installato e funzionante questo indirizzo 0xFFFFFFF0 non può essere utilizzato da RAM?

Inoltre, quando questo indirizzo 0xFFFFFFF0 ci consente di accedere al BIOS del sistema, la CPU lo sta accedendo come dispositivo IO o dispositivo di memoria?

risposta

2

All'accensione, è ROM. Deve essere o la CPU non sarebbe in grado di avviare. Alcuni chipset hanno bit di registro che consentono di annullare l'associazione del chip flash BIOS dallo spazio degli indirizzi di memoria. Ovviamente non dovresti farlo mentre esegui dalla ROM!

Esiste una tecnica comune su hardware PC denominata "shadowing" in cui il BIOS copierà il contenuto del chip ROM in RAM mappata allo stesso indirizzo. La RAM è generalmente molto più veloce della ROM, quindi può accelerare il sistema.

Per quanto riguarda la seconda domanda, è un dispositivo di memoria. Si deve essere per le seguenti ragioni:

  1. indirizzi I/O sono 16 bit, non 32.
  2. An processori x86 non può eseguire codice da spazio di I/O. Non è possibile puntare il puntatore di istruzioni a un indirizzo I/O.
0

È mappato allo spazio di memoria globale e viene indirizzato allo stesso modo. Convenzionalmente, la RAM non deve essere mappata su qualsiasi intervallo di indirizzi utilizzati da altri dispositivi. Questo è abbastanza comune Potresti ricordare qualche anno fa, prima che i sistemi operativi a 64 bit diventassero più standard sui PC domestici che un utente potesse avere 4 GB di memoria fisica installata ma forse solo 3,5 GB accessibili a causa della mappatura della scheda grafica a 512 MB dello spazio degli indirizzi .