BIOS 如何決定可用的 RAM 數量?

BIOS 如何決定可用的 RAM 數量?

如果 BIOS 是在實模式下運行的 16 位元程序,並且在該模式下只能尋址 1MB,那麼 BIOS 如何確定可用 RAM 的大小,例如 1 GB?

答案1

BIOS 是一個運行在實模式下的 16 位元程序,在該模式下只能尋址 1MB。

這是不正確的。

16 位元實模式不會將處理器限制為 1MB 記憶體。

雖然 x86 處理器確實以實模式啟動,並且預設為 16 位元 8086 指令集,但 80286 指令集中還有擴充。如果為 8086 指令新增位元組 0x67 前綴,則該指令將允許存取 32 位元暫存器,該暫存器可以存取 2 32位元組或 4GiB 記憶體。

如果您使用的是 64 位元處理器,則該處理器可以使用 PAE(實體位址擴展),這使處理器能夠存取 2 52位元組內存,這比任何現代主機板上物理安裝的內存都要多。

來源BIOS 如何偵測完整擴充記憶體大小


BIOS 如何決定可用 RAM 的大小,例如 1 GB?

它使用記憶體控制器資料表中記錄的方法(北橋)。

大多數 BIOS 無法使用任何 RAM,直到檢測到安裝的 RAM 類型,然後檢測每個記憶體模組的大小,然後配置晶片組以使用檢測到的 RAM。

所有這些都取決於晶片組特定的方法,並且通常記錄在記憶體控制器(北橋)的資料表中。

在此過程中,RAM 無法用於運行程式。 BIOS 最初是從 ROM 運行的,因此它可以使用 RAM 晶片玩必要的遊戲。但從任何其他程式內部做到這一點是完全不可能的。

來源檢測記憶體 (x86)

相關內容