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 (物理地址扩展),它使处理器能够访问 252字节的内存,比任何现代主板上物理安装的内存都要多。

来源BIOS 如何检测完整的扩展内存大小


BIOS 如何确定可用的 RAM 数量,例如 1 GB?

它使用内存控制器数据表中记录的方法(北桥)。

大多数 BIOS 都无法使用任何 RAM,直到它们检测到所安装的 RAM 类型,然后检测每个内存模块的大小,然后配置芯片组以使用检测到的 RAM。

所有这些都取决于芯片组特定的方法,并且通常记录在内存控制器(北桥)的数据表中。

在此过程中,RAM 无法用于运行程序。BIOS 最初从 ROM 运行,因此它可以使用 RAM 芯片玩必要的游戏。但从任何其他程序内部执行此操作是完全不可能的。

来源检测内存(x86)

相关内容