【发布时间】:2016-07-11 14:22:59
【问题描述】:
如果我理解正确,只要 CPU 开启,它就会跳转到制造商硬连线的默认物理内存地址,并开始执行那里的二进制代码。在 PC 中,默认位置自然会映射到包含 BIOS 的 ROM。
假设我的系统也安装了 RAM,CPU 怎么知道它应该在包含 BIOS 的 ROM 芯片中搜索特定地址而不是 RAM 的地址?
主板和内存的制造商是否有一些标准或合同,他们同意他们的硬件的内存地址永远不会重叠?
【问题讨论】:
-
如果我对此的低级理解有偏差,我深表歉意。非常感谢您的澄清。
-
您在谈论主板和 BIOS 时为什么要标记这个“嵌入式系统”? PC 不是嵌入式系统。
-
CPU 不知道也不关心,cpu 严格按照指令告诉它去做。 cpu 边缘的内存/数据总线会投射这些请求,而除此之外的逻辑决定了与谁交谈。邮递员一点也不在乎一个地址或另一个地址,他们只是对邮件进行分类,然后根据上面写的内容将其投递到正确的地方。 CPU 并不关心它是否将消息传递到总线,内存控制器会对这些请求进行排序并将它们传递到正确的外围设备或内存。
-
就像开发人员明智的做法是不要拥有两个具有相同地址的房子,板/芯片设计人员不会有两个目标响应相同地址,尽管在芯片/板上我们这样做一直都是,但我们以优先方式进行,如果 l1 缓存有答案,它会回答,如果没有,它会询问 l2 等等。有点像让你的邮件在邮局搁置一段时间,直到你以后可以拿到它。
标签: cpu memory-address bios