gpt4 book ai didi

io - 内存映射 IO 与 DMA?

转载 作者:行者123 更新时间:2023-12-03 08:52:09 26 4
gpt4 key购买 nike

根据我从评论和答案中了解到的信息(谢谢大家!),我编辑了问题以使其更有针对性:

DMA:

在第一次 DMA 之前,CPU 必须设置诸如保留供 DMA 设备使用的 RAM 地址范围之类的内容。一旦设置工作完成,设备是否可以随意启动传输,基本上拥有那部分 RAM,或者在每次单次 DMA 传输之前仍然必须再次获得 CPU 的某种许可?

MMIO:

CPU 通过 mmio 访问设备内存比 CPU 访问 RAM 更昂贵,但我可以在我的桌面上看到,pci 设备为 mmio 保留数百兆字节,有什么例子可以有效地使用它(与使用 DMA 将数据复制回 RAM,然后访问它们)?

最佳答案

从设备的角度来看。该设备可以:

  • 直接访问内存本身(使用DMA本身)

  • 等待CPU向其传输数据(通过提供内存映射IO供CPU使用)

So the question is, if the CPU can access the PCIe memory by memory-maps, why does it have to do DMAs?

CPU 根本不使用 DMA。 DMA 的全部意义在于允许 CPU 在设备执行 DMA 时执行其他操作(或不执行任何操作)。最终结果是整个系统的性能显着提高 - 例如CPU 正在执行许多其他工作,而许多设备(硬盘驱动器 Controller 、显卡、声卡、网卡...)也使用 DMA 来传输数据。

关于io - 内存映射 IO 与 DMA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com