我从之前的堆栈溢出答案中读到了这个:
初次接通电源时,BIOS直接从ROM执行。 ROM芯片被映射到处理器存储空间中的固定位置(这通常是芯片组的一个特征)。当x86处理器复位时,它立即从0xFFFFFFF0开始执行。
跟进问题,
这个地址0xFFFFFFF0是否只是为了访问系统BIOS ROM而硬连接,之后系统启动并运行此地址0xFFFFFFF0不能被RAM使用?
另外,当这个地址0xFFFFFFF0用于访问系统BIOS ROM时,CPU是将其作为IO设备还是内存设备访问?
答案 0 :(得分:2)
上电时,它是ROM。必须或CPU将无法启动。某些芯片组具有寄存器位,允许您从内存地址空间取消映射BIOS闪存芯片。当然,从ROM执行时不应该这样做!
PC硬件上有一种称为"shadowing"的常用技术,BIOS会将ROM芯片的内容复制到映射到同一地址的RAM中。 RAM通常比ROM快得多,因此它可以加速系统。
至于你的第二个问题,它是一个存储设备。 必须是出于以下原因:
答案 1 :(得分:0)
它映射到全局内存空间并以相同方式寻址。通常,RAM不应映射到其他设备使用的任何地址范围。这很常见。您可能还记得几年前,64位操作系统在家用PC上变得更加标准,用户可以安装4 GB的物理内存,但由于显卡映射到512 MB的地址空间,可能只有3.5 GB的可访问性