Zynq-7000系列DMA控制器框图简介

本文将详细介绍DMA控制器内部结构,指令操作等等。

框图

DMA 控制器的框图如图所示

DMA 指令执行引擎

DMAC 包含一个指令处理块,使其能够处理控制 DMA 传输的程序代码。DMAC 为每个线程维护一个单独的状态机。

通道仲裁

  • 为活动 DMA 通道提供服务的循环方案
  • 在为下一个 DMA 通道提供服务之前为 DMA 管理器提供服务
  • 不支持更改仲裁过程

渠道优先级

  • 以相同的优先级响应所有活动的 DMA 通道
  • 不支持更改 DMA 通道相对于任何其他 DMA 通道的优先级

指令缓存

控制器将指令临时存储在缓存中,当线程从地址请求指令时,缓存执行查找。如果发生高速缓存命中,则高速缓存立即提供数据,否则当控制器使用 AXI 接口从系统内存执行高速缓存行填充时,线程将停止;如果指令大于四个字节,或跨越高速缓存行的末尾,则它执行多次高速缓存访问以获取指令。

注意:

当缓存行填充正在进行时,控制器允许其他线程访问缓存,但如果发生另一个缓存未命中,管道将停止,直到第一个行填充完成。

填充操作的指令缓存延迟取决于写入 DMA 引擎指令的系统内存的读取延迟, DMAC 的性能高度依赖于 64 位 AXI 主接口(CPU_2x 时钟)的带宽。

读/写指令队列

当通道线程执行加载或存储指令时,控制器将指令添加到相关的读取队列或写入队列,在 AXI 互连上发出事务之前,控制器将这些队列用作指令存储缓冲区。

多通道数据FIFO

DMAC 使用多通道先进先出 (MFIFO) 数据缓冲区来存储它在 DMA 传输期间读取或写入的数据。

用于指令获取和 DMA 传输的 AXI 主接口

程序代码存储在控制器使用 64 位 AXI 主接口访问的系统内存区域中, AXI 主接口还使 DMA 能够将数据从源 AXI 从设备传输到目标 AXI 从设备。

用于寄存器访问的 APB 从接口

控制器响应软件使用的两个地址范围,通过 32 位 APB 从接口读写控制和状态寄存器。

  • 非安全寄存器访问
  • 安全寄存器访问

中断接口

中断接口可实现与中断控制器的有效事件通信。

PL 外设 DMA 请求接口

PL 外设请求接口支持连接驻留在 PL 中的具有 DMA 功能的外设。每个 PL 外设请求接口彼此异步并且与 DMA 本身异步。

重置初始化接口

该接口使软件能够在 DMAC 从复位退出时初始化它的操作状态。

下一篇
« Prev Post
上一篇
Next Post »