【问题标题】:How does CPU access BIOS instructions stored in external memory?CPU 如何访问存储在外部存储器中的 BIOS 指令?
【发布时间】:2016-01-06 22:49:50
【问题描述】:

在启动过程中,CPU 从 Reset Vector 中读取系统 BIOS 的地址,并跳转到存储 BIOS 的位置。我的问题是:

*由于 BIOS 存储在诸如 EEPROM 之类的外部存储器(而不是主存储器)中,CPU 如何访问该外部存储器?

*这个外部存储器是否已经映射到主存储器的某个区域? CPU 是否只是跳转到这个映射区域来访问 BIOS 指令 或者它实际上是从存储 BIOS 的外部存储器访问指令?

【问题讨论】:

  • 我认为在 SuperUser 上问这个问题是个好主意。
  • 感谢您的建议...也会在那里发布

标签: computer-architecture bios firmware


【解决方案1】:

通常CPU通过与SPI接口访问数据和信息,然后与EEEPROM通信以完成请求的任务或传递CPU请求的信息。 不,外部存储器没有映射到任何地方,也没有 CPU 不只是跳转到它。根据机器的使用年限,它通过 SPI 或 I^C 与它或 BIOS 需要的东西进行通信。

【讨论】:

  • 非常确定南桥与 EEPROM 或闪存进行实际的低级通信。 CPU 必须能够从 ROM 中提取指令,所以是的,ROM 被映射到物理地址空间。
【解决方案2】:

首先我可以给你推荐一篇详细的文章:

https://resources.infosecinstitute.com/system-address-map-initialization-x86x64-architecture-part-2-pci-express-based-systems/#gref

但我会在这里总结一下:

  1. 当 CPU “复位”时,将执行复位向量中断(特定内存地址 - 0xFFFFFFF0H) - ROM 内容必须位于该特定地址。

Intel Reset Vector

How is the BIOS ROM mapped into address space on PC?

Who loads the BIOS and the memory map during boot-up

0xffff0 and the BIOS(这里也解释/强调了硬连线地址映射)

  1. 在执行 BIOS 时,它还会初始化 VGA 等硬件,并初始化 DRAM 内存。有时 RAM 内存和 BIOS 可能会重叠,通常操作系统会接管并重新实现 BIOS 的所有功能(具体到每个主板)。

What information does BIOS load into RAM?

https://resources.infosecinstitute.com/system-address-map-initialization-in-x86x64-architecture-part-1-pci-based-systems/

下图说明了主板设计人员如何将不同硬件外围设备可用的地址范围设计为位于特定范围内,然后操作系统负责分配 RAM 范围以位于硬件未使用的区域中。不要忘记每个内核(对于 32 位)只能访问 4GB 内存——但可用的物理内存远不止于此。这就是 pagetable 的用武之地。

  1. 一旦设置了页表,就只能使用 TLB 和页表 - 这是为了提供对 RAM 内存的间接有效访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2015-06-04
    • 2021-03-29
    相关资源
    最近更新 更多