CPU如何知道外围设备的物理地址范围?

时间:2016-03-26 21:11:01

标签: cpu hardware peripherals motherboard

例如,它如何知道以下所有地址:

0xXXXXXX和0xYYYYYY

映射到RAM /图形卡/监视器/等...

在主板上?

1 个答案:

答案 0 :(得分:1)

它不知道完全您列出的所有内容。

所有这一切的关键在于CPU永远不会单独进入硅芯片。确实有许多称为外设的专用硬件电路组成了每个处理器。

它所知道的是芯片/ SoC内部每个外设的存储空间位置。出于显而易见的原因,它由芯片设计师(英特尔,飞思卡尔,AMD,......)以这种方式接线。

通过扩展,外部RAM由内部外围设备(DRAM控制器)控制,它也知道外部DRAM的地址。 PCIe总线上的外围设备也是如此,因为它们由PCIe控制器驱动。等等。

然而,处理器本身并不知道PCIe总线上的内容,驱动程序和操作系统的工作是了解所有这些。很多我们的计算机都在某些时候连接在PCIe总线上。通过配套芯片或直接,......为了准确识别此总线上存在的内容,以及为每个外设加载的驱动程序,在OS和外设之间交换标识符的握手。这样操作系统就可以知道GPU,USB总线,SATA总线等地址是什么