我知道现代计算机已经修改了哈佛架构。
它们可以从保存数据的地方以外的地方读取指令,这一事实是否允许它们直接从 ROM 芯片获取指令?他们是先将 BIOS 加载到 RAM,还是直接从芯片执行?我附近没有可以打开的计算机,所以...如果我从内存插槽中取出所有 RAM,计算机是否能够启动完整的 BIOS、运行 POST 内容并告诉我我需要 RAM?有趣的是我从来没有尝试过......
编辑:我提出这个问题的目的是了解商用 CPU(或至少是英特尔 cpu)是否可以直接从 ROM 执行代码。这不是为了实用目的,而是为了增加我对计算机体系结构和其他东西的理解。删除 RAM 部分不是我的主要疑问,只是一个例子
It both直接从ROM执行and将内容复制到 RAM 中。
在现代 x86 处理器上,芯片组内存控制器在初始加电时未初始化,因此没有可用的 RAM。
现代 BIOS 通常分为两部分:
- 引导块(早期 POST)
- 压缩区域(POST中后期)
当处理器退出复位状态时,它开始在内存中的固定地址(称为“复位向量”)处执行指令。 BIOS闪存芯片被映射到内存中的这个地址。处理器只是从该地址开始执行指令。
“引导块”是指从复位向量(加上一些 JMP)开始的 BIOS 代码。这是直接从 ROM 执行的(内存控制器尚未启动),因此速度非常慢。
BIOS 引导块通常执行以下操作:
- 初始化内存控制器。 (如果您从主板上收到“未检测到内存”蜂鸣代码,则此处会发生这种情况。)
- 对压缩区域执行校验和,以确保 BIOS 的其余部分没有损坏。
- 如果检测到任何损坏,则跳转到恢复模式。
- 如果校验和通过,则将 BIOS 的其余部分解压缩到 RAM 中的某个位置(通常低于 1MB 边界)。
- 跳转到RAM中解压后的代码并继续启动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)