joh*_* s. 5 linux linux-kernel dma
如上所述,dma引擎和dma-controller(关注linux)有什么区别?
linux dma引擎什么时候到位?这是一个特殊设备还是所有外围设备的一部分,它们支持dma?
浏览linux源码时,我找到了驱动程序ste_dma40.c.任何驱动程序如何使用此引擎?
DMA - 直接内存访问.驱动程序在没有CPU参与的情况下从/向内存读取或写入的操作(释放它以执行其他操作).
DMA控制器 - 魔法无法完成读写操作.如果CPU没有这样做,我们需要另一台硬件来完成它.许多年前(在ISA/EISA时),通常在主板上使用共享硬件执行此操作.近年来,每个HW都有自己的DMA HW机制.但在所有情况下,此特定HW都会获取源地址和目标地址并传递数据.通常在完成时触发中断.
DMA引擎 - 现在我不知道你的意思.我相信你可能会提到处理DMA的SW端.DMA比通常的I/O稍微复杂一些,因为在DMA操作期间所有存储器SRC和DST必须始终物理存在.如果将DST地址交换到磁盘,则HW将写入错误的地址,系统将崩溃.DMA的这个和其他方面由驱动程序处理,代码部分可能称为"DMA引擎"
*对"DMA引擎"的另一种解释可能是处理HW端的DMA HW控制器的固件(或HW)的代码部分.
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |