相关疑难解决方法(0)

普通的x86或AMD PC是直接从ROM运行启动/ BIOS代码,还是先将它们复制到RAM?

我知道现代计算机已经修改了哈佛架构.

事实上他们可以从他们保存数据的地方读取指令,这样他们可以直接从ROM芯片中获取指令吗?他们首先将BIOS加载到RAM,还是直接从芯片执行?我没有可以在附近打开的计算机,所以...如果我从内存插槽中删除所有RAM,计算机是否能够启动完整的BIOS,运行POST的东西并告诉我需要RAM?这很有趣我从未尝试过......

编辑:我的意图是要了解商业CPU(或至少是intel cpus)是否可以直接从ROM执行代码.它不是出于实际目的,而是为了增加我对计算机体系结构和内容的理解.删除RAM部分不是我的主要疑问,只是一个例子

cpu boot startup bios

12
推荐指数
1
解决办法
3718
查看次数

BIOS ROM如何映射到PC上的地址空间?

x86 CPU在物理地址0xFFFFFFF0处开始执行.BIOS ROM位于地址空间的末尾.CPU从ROM执行的第一条指令是远跳,导致重新加载CS段,因此从物理区0x000F0000 - 0x000FFFFF内执行下一条指令.

什么原因导致ROM在两个区域都做出响应?PC上有一些特殊的地址解码逻辑吗?我在Bochs源代码中发现了一条评论,该代码指出最后128K的BIOS ROM映射到0xE0000 - 0xFFFFF.但是我找不到更多关于此的信息.很明显,这是PC特有的,因为我有x86嵌入式主板,并且这种镜像不会发生在那里.我只能用近跳.

embedded cpu x86 bios

12
推荐指数
2
解决办法
4957
查看次数

软件初始化代码为0xFFFFFFF0H

英特尔表示,复位后处理器处于实模式,软件初始化代码从0xFFFFFFF0H开始.我的问题:

  • 如果处理器处于实模式,它如何访问内存> 1MB(0xFFFFFFF0H)

  • 如何发生这种情况或当RAM <4GB(比如2GB)时会发生什么

  • 如果BIOS映射到0x000FFFFFH,为什么处理器开始在0xFFFFFFF0H执行

请帮我解决这些问题.谢谢.

x86 operating-system bios computer-architecture

6
推荐指数
2
解决办法
2201
查看次数

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

我从以前的堆栈溢出的答案阅读:

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

跟进问题,

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

此外,当该地址0xFFFFFFF0正在我们访问系统BIOS ROM中,在CPU访问它作为IO设备或存储器装置?

memory cpu bios

5
推荐指数
1
解决办法
849
查看次数