我正在阅读DMA controller的一些技术参考,但我不了解很多事情,似乎我错过了一些观点,我没有直接处理的实际经验DMA但想要了解至少理论。
在文件中提到:
DMA控制器包含一个指令处理块 使其能够处理控制DMA传输的程序代码。
那么指令处理块的目的是什么?谁加载指令呢?我的意思是,如果我将驱动程序写入我的设备,那么为了将大量数据从/向我的设备传输,我应该将指令加载到DMA来执行此操作? (如果没有DMA,我会向主处理器提供相同的指令吗?
DMAC还包含一个ARM AMBA和AXI主接口单元 将程序代码从系统内存中取出到指令缓存中。 DMA指令执行引擎从其指令高速缓存执行程序代码,并通过相应的指令队列调度读/写AXI指令。
我知道什么是AMBA和AXI但仍然如此。和以前一样吗?什么是程序代码,它的目的是什么?如果DMA控制器本身具有先前的"指令处理块"什么是"指令缓存"?究竟是什么"指令执行引擎"?它就像DMA的CPU一样吗?
这些是主要的东西,我认为在了解它们之后,其他事情也会更清楚。
我很感激任何关于这个领域的好答案和参考,因为我找不到多少。