
EDMA控制器由以下部分组成:
事件和中断处理寄存器
事件编码器
参数RAM
硬件地址产生器
事件寄存器完成对EDMA事件的捕获、控制。若有多个事件同时发生,由事件编码器对它们进行处理(将同时发生的事件进行排队)。
参数RAM存放与事件相关(各通道)的传输参数;这些参数送入硬件地址发生器以产生对EMIF/外设的存取地址。
1 、事件与事件控制寄存器
EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
2、 传输参数与参数RAM
EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
64个EDMA通道对应的入口传输参数.每组参数包括6个字;
用于重加载,链接的传输参数组。每组参数包括24字节;
8字节空余的RAM可以作为“草稿区”(scratchpad area)。
一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
表1给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
可选参数(Option Parameter),32bit,用户可以根据情况选择设置该参数。
SRC/DST地址.32bit,用于存放EDMA访问起始的源地址和目的地址,可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。
数据单元计数(Element Count),16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数。
帧/阵列计数(Frame/Array Count),16bit无符号数.存放的是1-D数据传输中的帧计数,或是2一D数据传输中的阵列计数。
数据单元,帧,阵列索引(Element/Frame/ArrayIndex).16bit无符号数,作为地址修改的索引值。数据单元索引只应用于1-D传输,为下一数据单元的地址偏移值(2一D传输不允许数据单元间隔存放)。帧,阵列索引用于控制下一帧,阵列的地址索引。