谁在启动期间加载BIOS和内存映射

时间:2013-12-31 17:27:55

标签: memory operating-system x86 boot bios

对于BIOS,维基百科说:

  

BIOS内存的地址位于首次启动计算机时执行。然后,跳转指令指示处理器开始在BIOS中执行代码。

我知道BIOS存在于非易失性存储器中。但它必须加载到RAM中才能执行。那么谁将BIOS加载到RAM中?

我还读到在启动时加载了内存映射。 BIOS加载此内存映射吗?存储在哪里?

1 个答案:

答案 0 :(得分:10)

初次接通电源时,BIOS直接从ROM执行。 ROM芯片被映射到处理器存储空间中的固定位置(这通常是芯片组的一个特征)。当x86处理器复位时,它立即从0xFFFFFFF0开始执行。

然而,直接从ROM执行是非常慢的,所以通常BIOS的第一件事就是将BIOS代码复制并解压缩到RAM中,然后从那里执行。当然,必须首先初始化内存控制器! BIOS事先处理好了。

内存映射布局因系统而异。在开机时,BIOS将查询连接的PCI / PCIe设备,确定所需的资源,并将它们放在最佳位置的存储器映射中。如果一切正常,内存映射设备不应与RAM重叠。 (请注意,在具有大于3GB RAM的64位系统上,事情变得复杂,因为在32位PCI / PCIe设备的RAM中间需要一个“漏洞”。一些早期的x64 BIOS和芯片组存在问题此。)