校长办公室theOfficeofthePresident第六讲DMA/EDMA1第六讲直接存储器访问DMA/EDMA校长办公室theOfficeofthePresident第六讲DMA/EDMA2DMAEDMA特点、机制如何运用主要内容校长办公室theOfficeofthePresidentDMA—概述DMA(directmemoryaccess)直接存储器访问,可以在没有CPU参与下完成存储器映射空间中的数据传输,这些数据可以是在片内存储器、片内外设或是外部器件之间,而且是在CPU操作后台进行。具有4个相互独立的可编程传输通道,还有一个辅助通道允许DMA控制器相应主机接口的请求。C620x/670x系列第六讲DMA/EDMA3校长办公室theOfficeofthePresident第六讲DMA/EDMA4From:To:外部存储器片内数据存储器片内数据存储器片内程序存储器外部存储器传输的实现:•CPU•DMA校长办公室theOfficeofthePresident第六讲DMA/EDMA5为了建立任何一种方式的传输,我们需要:控制器、缓冲、源地址、目的地址、计数器校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI6C6000DMA校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI7C6000DMA特点后台操作,吞吐率高四个通道,一个辅助通道单通道分割(split-channel)操作支持多帧(frame)传输方式多种地址产生方式32位地址范围,支持8-/16-/32-bit字长传输支持自动初始化可以设定同步事件控制传输过程校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI8控制寄存器DMA通道0/1/2/3:•源地址寄存器(32-bit)•目的地址寄存器(32-bit)•主控寄存器•副控寄存器•传输计数寄存器(16-bit/16-bit))DMA全局地址寄存器A/B/C/DDMA全局计数重装载寄存器A/BDMA全局索引寄存器A/BDMA辅助控制校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI9传输—启动•程序启动–向主控制寄存器START域写入00b,停止当前通道–设定源地址–设定目的地址–设定传输个数–设置其他的有关模式,向START域写入01b,启动传输•自动初始化方式启动–多次传输,只需设置一次校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI10传输—例子(参数)C6201DMADATAMEMORYA/D我们需要知道那些参数?校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI11传输—例子(参数)源地址:A_D_SRC目的地址:DMEM_DST传输计数值:200h源地址的方向:Inc/Dec/None目的地址的方向:Inc/Dec/None中断CPU:Yes/No同步:Yes/No同步事件A/D(RDY)利用:INT4/5/6/7校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI12传输—同步读同步写同步帧同步事件号(二进制)事件缩写同步事件00000NONE没有同步事件00001TINT0定时器0中断00010TINT1定时器1中断00011SD_INTEMIFSDRAM定时器中断00100EXT_INT4外中断400101EXT_INT5外中断500110EXT_INT6外中断600111EXT_INT7外中断701000DMA_INT0DMA通道0中断01001DMA_INT1DMA通道1中断01010DMA_INT2DMA通道2中断01011DMA_INT3DMA通道3中断01100XEVT0串口0发送事件01101REVT0串口0接收事件01110XEVT1串口1发送事件01111REVT1串口1接收事件10000DSPINT主机向DSP发出的中断10001[注]XEVT2串口2发送事件10010[注]REVT2串口2接收事件其它保留校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI13传输—地址产生32-bit地址寄存器地址的基本调整•递增/递减/固定不变索引值调整•16-bit索引值•帧索引和数据单元索引SRC/DSTADDRESS310校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI14传输—几种用法一帧传输个数65536多帧模式传输的数据最多可达65536*65536*4=16GB利用帧索引代替重载地址•例子:每帧从固定的外部地址移动10bytes,在目的处彼此相距一个字节排列•设置•SRCDIR=00b(源固定)•DSTDIR=11b(目的用索引调整)•ELEMENTINDEX=10b(以步幅2递增)•FRAMEINDEX=-(9×2)=-18=FFEEh校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI15传输—几种用法数据整序校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI16传输—分裂通道&辅助通道分裂通道模式•使得一个通道可以提供双向的数据流传输•收发利用同一个计数器•需要利用DMAglobaladdressregister作为分裂地址控制辅助通道•HPI主机口专用校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI17后处理—状态与中断校长办公室theOfficeofthePresidentEDMA—概述EDMA(enhanceddirectmemoryaccess)增强的直接存储器访问控制器,处理片内L2高速缓冲存储器和外设之间的所有数据传输,包括Cache服务、非高速缓冲存储器访问、用户编程的数据传输和主机访问。与DMA有不同的结构。C621x/C671x以及C64x系列所具有第六讲DMA/EDMABIT/TI18校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI19EDMA—概述EDMA控制器基于RAM结构增强之处•提供了64个通道•由事件触发相应通道的传输•通道优先级设置更加灵活•可以实现数据传输的链接•独特的快速DMA(QDMA)校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI20EDMA—框图校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI21EDMA—组成部分事件和中断处理寄存器事件编码器参数RAM地址产生硬件校长办公室theOfficeofthePresidentBIT/TI22EDMA—结构框图第六讲DMA/EDMA校长办公室theOfficeofthePresident基本概念数据单元(element)帧(frame),一组数据单元组成一帧,数据单元可连续也可间隔存放阵列(array),一组连续的数据单元组成一个阵列,不允许间隔存放。块(block),多帧数据或多个阵列的数据组成一个数据块,对于一维传输,一组帧组成一个块,对于二维传输一组阵列组成一个块。一维(1D)传输,多个数据帧组成一维的传输块。二维(2D)传输,多个数据阵列组成一个二维传输块第六讲DMA/EDMABIT/TI23校长办公室theOfficeofthePresident传输单元的大小单元大小由OPT寄存器的ESIZE位段指定,一次传输中可以传输32位的字、16位的半字或8位字节。传输地址须在单元大小边界上排列对齐,字访问必须对齐于一个字(4的倍数),半字访问须对齐于半字(2的倍数)当传输一个单元大小为32位的字到一个64位宽的外设或从之接收时,则以最大可能的带宽被传输第六讲DMA/EDMABIT/TI24校长办公室theOfficeofthePresident一维传输第六讲DMA/EDMA25一个帧内的单元地址可以位于按指定的距离隔开的地址,指定的距离由单元索引(ELEIDX)设定。同时每个帧的第一个单元地址距离前一个帧的指定单元是一个固定的值,由帧索引(FRMIDX)设定校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI26单元同步1D传输(FS=0)每个同步事件传输一个单元,当ELECNT=1时重载单元计数并且帧计数减1在每个单元的传输请求发送后更新参数表中的源和目的地址。如右图示,每帧4个单元(ELECNT=4),总共3帧(帧计数FRMCNT=2)校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI27帧同步1D传输(FS=1)每个同步事件传输一帧,帧索引表示每个帧的起始地址间的区别,单元索引可以用于间隔帧内的单元,帧计数重载不能用于1D帧同步传输。如右图示校长办公室theOfficeofthePresident二维传输第六讲DMA/EDMABIT/TI28当接收到一个同步事件后一组连续的单元必须被传输,即在一个阵列之间没有间隔和索引,故2D传输不能使用单元索引,一个阵列中单元数组成传输的第一维,一组阵列形成第二维,阵列间可以相互偏移固定的距离。左图即为n+1个阵列和m个单元数的2D帧校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI29阵列同步2D传输(FS=0)每个同步事件传输一个阵列,每个阵列的传输请求被发送后更新其源和目的地址寄存器。阵列索引是块中每个阵列的起始地址的距离。帧计数在每个阵列传输完后减计数1.校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI30块同步2D传输(FS=1)每个同步事件传输一个块,应用阵列索引产生地址和传输逻辑。每个单元突发后更新地址,如果一个单元是某个阵列的最后一个,则地址按照阵列索引修改,即地址更新后索引值被加到到地址中。校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI31EDMA—事件控制64个通道,每个通道都有一个事件与之关联,由这些事件触发相应通道的传输由有关的控制寄存器完成对事件的不同处理•ER/EER/ECR/ESR/PQSR/CIPR/CIER/CCER事件编码器校长办公室theOfficeofthePresident事件控制寄存器第六讲DMA/EDMABIT/TI32校长办公室theOfficeofthePresident启动EDMACPU启动/非同步的EDMA:CPU对事件设置寄存器(ESR)写操作来启动一个EDMA传输,当向ESR中的某一位写1时强行触发对应的事件,参数RAM中的传输参数被送入地址发生器完成所需的对EMIF、L2存储器以及外设的读写访问。事件触发EDMA/同步方式:事件编码器捕获到一个触发事件并锁存在ER寄存器中将导致参数RAM中对应的参数被送入地址发生器中,从而执行相关的传输操作。前提是EER(事件使能寄存器)中相关位置1第六讲DMA/EDMABIT/TI33校长办公室theOfficeofthePresidentEDMA的同步所有的EDMA通道均与特定的同步事件相关联。这些事件可以来源于外设、外部器件中断,或是一个EDMA通道传输完成事件。如:假设EER的位4被置为1,当EXT_INT4管脚上的外部中断信号会启动EDMA通道4的传输。即每一个事件指定了一个特定的通道。第六讲DMA/EDMABIT/TI34校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI35校长办公室theOfficeofthePresident第六讲DMA/EDMABIT/TI36EDMA—参数RAM参数RAM(ParameterRAM,PaRAM)的容量为2Kbyte,其中存放EDMA的传输参数,