DW_axi_dmac控制器(术语)

Source peripheral

        源设备。DMA通过AXI总线读取该设备的数据,并将数据保存到通道FIFO中。

Destination peripheral

        目的设备。DMA将通道FIFO的数据写入该设备。数据是先前从Source peripheral读取的。

Memory

        内存设备。用于DMA传输的一类源/目的设备,但是DMA不需要通过握手接口和这类设备进行交互。(我理解这类设备为系统内存)

Channel

        通道。在源设备和目的设备之间的、经过通道FIFO的读写数据通路,源设备和目的设备可以在相同的AXI总线上,也可以不在相同的AXI总线上。

        如果源设备不是内存设备,那么该通道需要源握手接口;如果目的设备不是内存设备,那么该通过需要目的握手接口。

        通过可编程通道寄存器,源和目的的握手接口可以动态分配。

Master interface

        主设备接口。在AXI总线上,DMA控制器作为主设备,从源设备中读取数据,并将该数据写入目的设备。最大支持两个主设备接口,因此最大支持两个独立的源/目的通道同时工作。每个通道使用主设备接口必须要通过仲裁。如果源设备和目的设备在不同的AXI总线上,那就需要多个主设备接口。

Slave interface

        从设备接口。DMA控制器编程接口。从设备接口可以和主设备接口在相同的AXI总线上,或者和主设备连接的AXI总线不一样。

Handshaking interface

        握手接口。用于实现DMA控制器和源/目的设备之间的握手协议,可以是一组硬件信号或者软件寄存器。握手协议用于*协助*DMA和源/目的设备之间的一次操作(该操作可能是single类型,也可能是突发类型)控制。

        DMA的通道可以接收来自源/目的设备的请求,并在完成请求之后,给源/目的设备发送确认。握手接口有两种类型:硬件和软件。

        注意:QSPI使用硬件握手信号方式。

Flow controller

        流量控制器。用于计算DMA块传输长度,并控制何时终止块传输。如果在通道使能之前就确定了块长度,那么DMA控制器这边负责流控;否则,由源/目的设备负责流控。

        注意:QSPI负责流控,因此DMA控制器可以不需要流控。

Transfer hierarchy

        数据传输层次结构。传输被分为四个层级:DMA传输级、块传输级、操作级和AXI总线级。这种技术主要是为了能充分提升DMA的数据传输性能;当某个源/目的设备速率比较慢时,DMA可以在多个源/目的设备之间进行分时复用。

        如果源/目的设备不是内存设备,包含了全部的四层结构。(QSPI用的这种方式)

         如果源/目的设备是内存设备,只包含了DMA传输级、块传输级和AXI总线级三层结构。

Transcation

        针对源/目的设备不是内存设备的情况,DMA基本传输操作,由硬件或软件握手接口来定义。这种基本传输操作具有两种类型:

        单个类型的传输操作,长度总是为1,对应突发长度为1的INCR AXI总线传输。

        突发类型的传输操作,长度可编程,对应AXI突发传输的序列。这种传输操作的长度一般与DMA和源/目的设备的FIFO长度有关。

Block

        DMA数据块,一个数据块长度由流量控制器来计算。

        当源/目的设备是内存设备时,数据块直接分成突发传输序列;

        当源/目的设备不是内存设备时,数据块先被分成基本操作序列,继而分为AXI总线传输序列。

DMA transfer

        软件控制的DMA块序列。一旦DMA传输完成,硬件就会关闭通道并触发中断。

        单块的DMA传输,只有一个DMA数据块。

        多块的DMA传输,多个DMA数据块组成。主要组件包括块链表block chaining(linked list pointers),通道寄存器的自装载,影子寄存器和连续的DMA数据块。源/目的可以独立配置。

        Linked lists pointer(block chaining)

         LLP指向一块系统主存区域,该系统主存区域存放下一个linked list item LLI。 LLI包括了一组寄存器,描述了下一个DMA块描述和LLP寄存器。

         当block chaining使能时,在每个DMA块传输开始时,DMA控制器会先读取LLI。

        Auto-reloading

        在每次块传输结束后,DMA控制器自动将通道寄存器复位到通道第一使能的状态。

        Contiguous block

        两个相邻的DMA数据块,前一个数据块的结束地址和后一个数据块的起始地址被认为是连续。

        Shadow register

        在每次DMA块传输结束,DMA控制器自动将影子寄存器内容加载到通道寄存器。软件可以对影子寄存器编程,哪怕当前还由DMA块在传输。

Channel locking

        在DMA传输、块传输、或者操作(单模式或突发模式)过程中,软件通过主设备总线接口仲裁器的锁机制,从而占用AXI总线接口。

你可能感兴趣的:(linux)