地址0xFFFFFFF0是否为系统BIOS ROM硬连线?

时间:2014-04-15 05:50:24

标签: memory cpu bios

我从之前的堆栈溢出答案中读到了这个:

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

跟进问题,

这个地址0xFFFFFFF0是否只是为了访问系统BIOS ROM而硬连接,之后系统启动并运行此地址0xFFFFFFF0不能被RAM使用?

另外,当这个地址0xFFFFFFF0用于访问系统BIOS ROM时,CPU是将其作为IO设备还是内存设备访问?

2 个答案:

答案 0 :(得分:2)

上电时,它是ROM。必须或CPU将无法启动。某些芯片组具有寄存器位,允许您从内存地址空间取消映射BIOS闪存芯片。当然,从ROM执行时不应该这样做!

PC硬件上有一种称为"shadowing"的常用技术,BIOS会将ROM芯片的内容复制到映射到同一地址的RAM中。 RAM通常比ROM快得多,因此它可以加速系统。

至于你的第二个问题,它是一个存储设备。 必须是出于以下原因:

  1. I / O地址是16位,而不是32位。
  2. x86处理器无法从I / O空间执行代码。您不能将指令指针指向I / O地址。

答案 1 :(得分:0)

它映射到全局内存空间并以相同方式寻址。通常,RAM不应映射到其他设备使用的任何地址范围。这很常见。您可能还记得几年前,64位操作系统在家用PC上变得更加标准,用户可以安装4 GB的物理内存,但由于显卡映射到512 MB的地址空间,可能只有3.5 GB的可访问性