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