CPU如何访问存储在外部存储器中的BIOS指令?

时间:2015-10-09 05:35:15

标签: computer-architecture bios firmware

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

*由于BIOS存储在某些外部存储器(如EEP​​ROM(而非主存储器)中),CPU如何访问此外部存储器?

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

2 个答案:

答案 0 :(得分: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出现的地方。

enter image description here

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

答案 1 :(得分:-1)

通常,CPU通过与SPI连接来访问数据和信息,然后与EEEPROM进行通信,以完成所请求的任务或提供CPU请求的信息。 不,外部存储器没有映射到任何地方,没有CPU不会跳转到它。它根据机器的使用年限通过SPI或I ^ C与它或BIOS所需的内容进行通信。