gpt4 book ai didi

linux - DMA 引擎和 DMA Controller 有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 01:12:59 43 4
gpt4 key购买 nike

  1. 如上所述,dma 引擎和 dma Controller (重点是 linux)有什么区别?

  2. linux dma 引擎什么时候到位?这是一个特殊的设备还是所有支持 dma 的外围设备的一部分?

  3. 在浏览linux源代码时,我找到了驱动程序ste_dma40.c。任何司机如何使用这个引擎?

最佳答案

DMA - 直接内存访问。驱动程序在不涉及 CPU 的情况下从硬件内存读取或写入硬件内存的操作(释放它来做其他事情)。

DMA Controller - 读写不能靠魔法完成。如果 CPU 不做,我们需要另一个硬件来做。许多年前(在 ISA/EISA 时期),在执行此操作的主板上使用共享硬件是很常见的。近年来,每个HW都有自己的DMA HW机制。但在所有情况下,这个特定的 HW 都会获取源地址和目标地址并传递数据。通常在完成时触发中断。

DMA 引擎 - 现在我不确定你的意思。我相信您可能指的是处理 DMA 的 SW 端。DMA 比通常的 I\O 稍微复杂一些,因为在 DMA 操作期间,所有内存 SRC 和 DST 都必须始终物理存在。如果 DST 地址被交换到磁盘,HW 将写入错误地址,系统将崩溃。DMA 的这一方面和其他方面由驱动程序处理,其代码部分可能称为“DMA 引擎”

*“DMA 引擎”的另一种解释可能是在硬件端处理 DMA 硬件 Controller 的固件(或硬件)的代码部分。

关于linux - DMA 引擎和 DMA Controller 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44195754/

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