gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-28 23:37:24 24 4
gpt4 key购买 nike

对于 BIOS,维基百科指出:

The address of the BIOS's memory is located such that it will be executed when the computer is first started up. A jump instruction then directs the processor to start executing code in the BIOS.

我知道 BIOS 存在于非 volatile 内存中。但它必须加载到 RAM 中才能执行。那么谁将 BIOS 加载到 RAM 中呢?

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

最佳答案

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

但是,直接从 ROM 执行非常慢,因此 BIOS 所做的第一件事通常是将 BIOS 代码复制并解压缩到 RAM 中,然后从那里执行。当然,必须先初始化内存 Controller ! BIOS 会事先处理好这些。

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

关于memory - 谁在启动期间加载 BIOS 和内存映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com