【发布时间】:2016-07-14 10:47:12
【问题描述】:
例如,它如何知道:之间的所有地址:
0xXXXXXX 和 0xYYYYYY
映射到内存 / 显卡 / 显示器 / 等等...
在主板上?
【问题讨论】:
-
这就是您需要设备驱动程序的原因。
标签: cpu hardware peripherals motherboard
例如,它如何知道:之间的所有地址:
0xXXXXXX 和 0xYYYYYY
映射到内存 / 显卡 / 显示器 / 等等...
在主板上?
【问题讨论】:
标签: cpu hardware peripherals motherboard
它不知道确切您列出的所有内容。
这一切的关键在于 CPU 在硅芯片中永远不会单独运行。确实有很多专门的硬件电路,称为外围设备,构成每个处理器。
它所知道的是芯片/SoC 内部每个外围设备在其内存空间上的位置。出于显而易见的原因,因为它是由芯片设计师(英特尔、飞思卡尔、AMD ......)以这种方式连接的
通过扩展,外部 RAM 由内部外围设备(DRAM 控制器)控制,它也知道外部 DRAM 的地址。 PCIe 总线上的外围设备也是如此,因为它们是由 PCIe 控制器驱动的。以此类推。
但是,处理器本身并不知道 PCIe 总线上的内容,这是驱动程序和操作系统的工作,以了解这一切。我们的许多计算机设备在某个时候都连接在 PCIe 总线上。通过配套芯片,或直接,...为了准确识别总线上存在什么,以及为每个外围设备加载什么驱动程序,操作系统和外围设备之间交换了标识符的握手。这样操作系统就可以知道 GPU、USB 总线、SATA 总线等驻留在哪个地址。
【讨论】: