【问题标题】:How does the a CPU know the physical address range of a peripheral device?CPU如何知道外围设备的物理地址范围?
【发布时间】:2016-07-14 10:47:12
【问题描述】:

例如,它如何知道:之间的所有地址:

0xXXXXXX 和 0xYYYYYY

映射到内存 / 显卡 / 显示器 / 等等...

在主板上?

【问题讨论】:

  • 这就是您需要设备驱动程序的原因。

标签: cpu hardware peripherals motherboard


【解决方案1】:

它不知道确切您列出的所有内容。

这一切的关键在于 CPU 在硅芯片中永远不会单独运行。确实有很多专门的硬件电路,称为外围设备,构成每个处理器。

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

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

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

【讨论】:

    猜你喜欢
    • 2014-01-31
    • 2018-01-26
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2012-06-02
    • 2019-06-09
    相关资源
    最近更新 更多