0xFFFFFFF0地址是系统BIOS ROM的硬连线地址吗?

5
我从之前的stackoverflow答案中读到了这个内容:
在初始上电时,BIOS直接从ROM执行。ROM芯片映射到处理器内存空间的固定位置(这通常是芯片组的一个特性)。当x86处理器退出复位状态时,它立即开始从0xFFFFFFF0执行。
后续问题,
这个地址0xFFFFFFF0是硬连线的吗?只用于访问系统BIOS ROM,在系统启动运行后,这个地址0xFFFFFFF0不能被RAM使用吗?
此外,当该地址0xFFFFFFF0被用来访问系统BIOS ROM时,CPU是将其作为IO设备还是存储设备进行访问的?
2个回答

2
在上电时,它是只读存储器(ROM)。必须这样,否则中央处理器将无法启动。一些芯片组具有寄存器位,允许您取消映射BIOS闪存芯片的内存地址空间。当然,在从ROM执行时不应这样做!
PC硬件上有一种常见技术称为“影子化”,其中BIOS将ROM芯片的内容复制到映射到同一地址的RAM中。 RAM通常比ROM快得多,因此可以加速系统。
至于您的第二个问题,它是一种存储设备。必须这样做,原因如下:
1. I/O地址为16位,而不是32位。 2. x86处理器无法从I/O空间执行代码。 您不能将指令指针指向I/O地址。

0

它映射到全局内存空间,并以相同方式寻址。传统上,RAM不应映射到其他设备使用的地址范围。这已经很常见了。你可能还记得几年前,在家用电脑上标准化64位操作系统之前,用户可以安装4 GB物理内存,但由于显卡被映射到512 MB的地址空间,可能只能访问3.5 GB。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接