目录
参照资料
- 第三代增强型内存直接存取控制……视频教程
- TMS320C642x DSP Enhanced Direct Memory Access (EDMA3)
Controller User’s Guide https://www.ti.com/lit/ug/spruem5a/spruem5a.pdf
EDMA3控制器的组成

EDMA3的工作流程(重要)

EDMA3 工作流程 :
-
1. 配置 DMA/QDMA 通道逻辑参数
- 编程者通过软件(如 DSP 程序或 MCU 驱动程序)来配置 PaRAM(参数寄存器集):
- 源地址:数据传输的起始地址。
- 目的地址:数据传输的目标地址。
- 传输类型:一维、二维或三维传输。
- 数据块大小:每次传输的数据量。
- 传输触发条件:可以是外部事件触发、手动触发或链接触发。
- QDMA 特殊逻辑:
- QDMA 通过修改特定的触发字段(通常是 PaRAM 的一部分)实现自动触发,适合小批量传输任务。
- 编程者通过软件(如 DSP 程序或 MCU 驱动程序)来配置 PaRAM(参数寄存器集):
-
2. 参数传递到事件队列
- 配置完成后,DMA/QDMA 通道的 PaRAM 参数 会传递到 事件队列(Event Queue)。事件队列会根据事件优先级或触发条件,管理传输任务的顺序。确保传输任务按计划执行。
-
3. 事件队列获取 PaRAM 参数
- 事件队列从 PaRAM 读取对应任务的参数,包括源地址、目的地址、传输大小、模式等信息。
- 确保任务的时序符合系统要求,例如高优先级任务优先处理。
-
4. 提交传输请求到传输控制器
- 事件队列将传输任务提交到 传输控制器(Transfer Controller, TC)。传输控制器功能负责实际的数据传输操作,根据 PaRAM 配置的信息,执行数据从源地址到目的地址的移动,支持高速传输和低延迟的数据处理。
-
5. 传输控制器完成传输
- 从源地址读取数据块。
- 将数据块写入目的地址。
- 如果是多维传输,按照行偏移或块偏移继续传输下一块。
- 传输完成后,传输控制器会发送信号通知 通道控制器(Channel Controller)。
-
6. 通道控制器检测传输完成
- 检测传输控制器是否完成任务。
- 确保任务正确完成,或在发生错误时发出错误中断。
- 支持多个 DMA 通道并行管理。
- 一旦任务完成,通道控制器会生成传输完成信号。
-
7. 向 CPU 提交传输完成中断
- 通道控制器向 CPU 发送传输完成中断请求:
- CPU 收到中断后,可以执行后续操作,如数据处理或任务调度。
- 编程者可以在中断服务程序(ISR)中处理中断,例如启动新的传输或释放资源。

- EDMA3工作优先级图:



EDMA3与QDMA的触发方式(通道控制器启动传输部分)
- EDMA3 配有 2个传输控制器,每个传输控制器又有各自的DMA和QDMA通道。
触发事件之后进行数据的传输。

DMA的触发方式
- 事件触发
- 触发原理:当一个外部事件(如外设产生的中断或信号)被锁存到 事件寄存器(ER) 中时,EDMA3 通道会被自动启动。
- 触发条件:需要 CPU 通过 事件使能寄存器(EER) 启用特定事件,使其能够触发相关的DMA通道。


-
手动触发
- 触发原理:CPU 通过向 事件设置寄存器(ESR) 写入特定值,手动启动EDMA3通道。
- 触发条件:这种触发方式适用于需要 CPU 主动控制的数据传输。
-
链接触发
- 触发原理:一个EDMA3通道的传输结束会触发另一个EDMA3通道的启动。
- 触发条件:通常用于链式DMA操作,多个通道可以串联起来完成复杂的数据传输任务。
QDMA的触发方式
- QDMA是EDMA3的一种变体,主要用于特定应用的DMA传输。QDMA具有两种触发方式:
-
自动触发
- 触发原理:当QDMA的**PaRAM(参数RAM)**中的特定触发域被写入值时,会自动触发QDMA的传输。
- 触发条件:在 QCHMAPn寄存器 中配置PaRAM的触发域,使得写入触发域的值能够启动DMA传输。
-
链接触发
- 触发原理:与EDMA3类似,一个QDMA通道的结束触发另一个QDMA通道的启动。
- 触发条件:通常用在多个QDMA通道之间的链式操作,类似于EDMA3的链接触发。
EDMA3的数据传输部分




PaRAM 参数寄存器集


通道与参数映射



事件队列

EDMA3特点
EDMA3(Enhanced Direct Memory Access 3) 是一种高性能的 DMA 控制器,广泛应用于嵌入式系统、数字信号处理器(DSP)、和高性能计算平台。它的设计目标是提供多通道、多线程的数据传输解决方案,并支持大规模数据的高效传输。EDMA3 具有以下显著特点:
-
1. 三维传输
- EDMA3 支持 三维传输(3D transfer),这意味着它能够支持多维数据的传输,通常用于矩阵、图像数据等需要多个维度(如行、列、层)的应用。
- A类传输:即一维数据传输,可以在内存与外设之间进行。
- AB类传输:即二维或多维数据传输,适用于复杂的数据结构,如图像处理、视频流等。
-
2. 32路 DMA 通道
- EDMA3 提供 32路独立的 DMA 通道,每个通道可用于不同的任务或传输任务之间并行工作,从而显著提升系统性能。 每个通道都可以被单独配置,支持不同的传输优先级、传输大小、源和目标地址等配置,灵活性非常高。
-
3. 8路 QDMA 通道
- QDMA(Queue DMA) 是 EDMA3 提供的一个特殊类型的 DMA 通道。与常规 DMA 通道不同,QDMA 通道通过 队列 来管理多个数据传输任务。
- 这种方式可以提高数据传输的效率,适用于需要顺序执行多个小块数据传输的场景。
- 8路 QDMA 通道 使得能够在多个队列之间高效地进行任务调度和传输。
-
4. 128个参数集(PaRAM)
- PaRAM 是 EDMA3 中的重要概念,它代表了传输任务的配置参数集,包括源和目的地地址、传输大小、传输方向等信息。
- EDMA3 支持 128个参数集,每个参数集可以配置不同的数据传输任务。这使得系统能够同时处理多个独立的传输任务,极大地提升了数据传输的并行性。
-
5. 2个事件队列
- 事件队列 是用于处理和调度 DMA 事件的机制。EDMA3 配备了 2个事件队列,用于接收和调度外设或外部信号触发的 DMA 传输请求。
- 通过事件队列,EDMA3 可以根据事件触发的优先级或顺序来安排数据传输任务,确保高优先级事件能够被快速处理。
-
6. 2个传输控制器
- EDMA3 配有 2个传输控制器,每个控制器管理一部分 DMA 通道。这两个控制器使得 EDMA3 能够同时执行多个传输任务并提高效率,特别是在多线程或多任务并行处理的场景中,能够最大程度地减少冲突和瓶颈。
-
7. 5路中断
- EDMA3 支持 5路中断,用于通知系统在 DMA 传输完成、错误发生或其他关键事件时进行响应。
- 每个中断源可以单独配置,允许系统在不同的 DMA 事件发生时采取不同的响应措施。
-
8. 支持多线程/多任务
- 多线程/多任务:EDMA3 支持在不同的通道之间进行并行处理,可以在多个任务之间高效地调度数据传输,优化系统性能。
- 在大多数应用场景中,这种支持使得 EDMA3 可以与其他处理单元(如 CPU 或 DSP)协同工作,减轻 CPU 的负担,优化系统的整体性能。
-
9. 灵活的配置和优化
- EDMA3 提供了丰富的配置选项,可以根据不同的应用需求对各个 DMA 通道、传输任务、参数集、事件队列等进行详细配置。
- 通过动态配置,可以在运行时灵活地调整 DMA 通道的任务分配,以适应不同的应用需求。
-
10. 高效的数据传输
- EDMA3 提供硬件加速的 DMA 数据传输能力,能在不占用 CPU 的情况下高效地进行数据移动,极大地提高了数据传输速度。
- 通过支持突发模式、多维传输和多线程调度,EDMA3 实现了高吞吐量和低延迟的数据传输,尤其在大规模数据处理(如视频处理、音频处理、图像处理等)中表现尤为突出。
CG
- 示例可见User’s Guide Chapter3

- c6678是6核心1ghz性能强,c6748是单核心456mhz。
739

被折叠的 条评论
为什么被折叠?



