DSP原理与应用-第5章dMAX.ppt
《DSP原理与应用-第5章dMAX.ppt》由会员分享,可在线阅读,更多相关《DSP原理与应用-第5章dMAX.ppt(74页珍藏版)》请在三一办公上搜索。
1、第四章 双通道数据搬移加速器(dMAX),第四章 双通道数据搬移加速器(dMAX),4.1 dMAX概述4.1.1 简介dMAX 控制器用于处理内部数据存储控制器和C672x DSP外围设备之间用户编程数据的传输,dMAX也允许任何可寻址存储空间之间的数据传输,包括内部存储器、外设和外部存储器。,DSP结构框图,dMAX功能框图,dMAX控制器有如下功能,可以进行高级数据分类的三维数据传输 把一部分存储器作为循环缓冲/FIFO存储器,并有基于读写数据的延迟 可以同时处理两个传输请求(假设它们的源地址或目的地址不同),dMAX控制器的结构框图 事件和中断处理寄存器。事件编码器 高优先级事件参数随
2、机存储器(PaRAM)低优先级事件参数随机存储器PaRAM 用于高优先级事件的地址生成器MAX0(HiMAX)用于低优先级事件的地址生成器MAX1(LoMAX),dMAX的具体工作内容,4.1.2 dMAX术语,dMAX-双通道数据搬移加速器:dMAX由两个相同的模块组成,MAX0和MAX1,两个模块可并行运行。Element transfer-单元传输:从源地址到目的地址的单个数据单元(8位,16位,32位)的传输。如果需要的话,每个单元可以在同步事件的基础上进行传输。单元传输用于一维传输。Frame-帧:一组数据单元组成帧。一个帧可以有交错的或连接的数据单元。帧可以在有同步事件或无同步事件
3、的情况下进行传输。帧用于一维传输。,4.1.2 dMAX术语,Event-事件:由事件标志寄存器(DEFR)触发的事务。例如,McASP接收的数据可以触发一个事件。,4.1.2 dMAX术语,EventEntry-事件入口:如果一个事件用来触发数据传输,应设定事件入口以指定传输类型、传输选项,并应该包括指向传输入口的指针。如果事件是用来触发一个中断,事件入口只需指定使用哪条中断线路。事件入口仅占用dMAX PaRAM存储空间的一个字节,里面是事件和事件入口之间一对一的对应关系。在每个PaRAM里一个特定的事件入口对应一个事件(一个事件在高优先级PaRAM中有一个事件入口,在低优先级PaRAM中
4、有一个事件入口),事件优先级组决定当一个事件到达时哪一个事件入口传输给HiMAX/LoMAX。所有的事件被分进低优先级或高优先级组,事件编码器对所有收到的事件进行优先级划分,并且找出每个组中具有最高优先级别的事件。两个具有最高优先级别的事件(每个组一个)可以被同时处理(HiMAX处理来自高优先级组的最高优先级的请求,LoMAX处理来自低优先级组的最高优先级的请求)。事件入口是可编程的,定义相应的事件到达时如何进行处理。,4.1.2 dMAX术语,EventEntryTable-事件入口表:事件入口表包含所有的事件入口,占据32个字节,它位于PaRAM的开始。有两个事件入口表,一个用于高优先级事
5、件,一个用于低优先级事件。如果一个事件属于高优先级事件组,那么它的事件入口就位于高优先级事件入口表,如果一个事件属于低优先级事件组,那么它的事件入口就位于低优先级事件入口表。EventPriorityGroup-事件优先级组:dMAX事件可以被设定为高优先级或低优先级,这样就把事件分进了两个优先级组:高优先级或低优先级。高优先级事件组由MAX0模块来处理,低优先级事件组由MAX1模块来处理。,4.1.2 dMAX术语,Transfer Entry-传输入口:传输入口表包括一个11字节长的入口,定义如源地址、目的地址、计数以及索引等传输参数。每个PaRAM中有足够的空间来存储8个不同传输的传输入
6、口(一共16个传输入口)。QuantumTransfer-量子传输:为减少系统等待时间,长数据被分为很多短数据传输,称量子传输。dMAX总是以量子传输的方式移动数据。如果在dMAX进行量子传输的时候一个事件到达,那么在量子传输进行完之后再处理这个事件。,4.1.2 dMAX术语,QuantumTransferSizeLimit(QTSL)-量子传输大小限制:可在指定通道的事件入口上编程指定量子传输的大小,可以编程为1个、4个、8个或16个数据单元。量子传输的实际大小是QTSL中比较小的,而且数据单元的个数也被传输。减少QTSL可以降低总体的dMAX延迟,增加QTSL可以提高dMAX的数据吞吐量
7、。PendingEvent-未处理事件:未处理事件是指在DEFR中占据了位置但还没有被dMAX控制器处理的事件。LongDataTransfer-长数据传输:当每个同步事件之后传输的数据单元的个数大于QTSL时发生长数据传输。,4.1.2 dMAX术语,One-Dimensional(1D)Transfer-一维传输:一组数据单元组成一个一维数据块,可以设置数据单元的个数以及数据单元之间的间隔(space),指定的间隔与源地址和目的地址无关,范围是-32768到32767个单元。Two-Dimensional(2D)Transfer-二维传输:一组帧组成2维数据块,第一维是一个帧中的数据单元数
8、,第二维是帧的数量,一个二维数据块中帧的数量可以是1到65535。一次可以传输一帧或整个2维数据块。二维数据块间的间隔与源地址和目的地址无关,(当前值:-32768到32676个单元)。,4.1.2 dMAX术语,Three-Dimensional(3D)Transfer-三维传输:一组二维数据块组成三维数据块,第一维是帧中数据单元的数量,第二维是帧的数量,第三维是二维数据块的数量。二维数据块的数量可以是1到32767。一次可以传输一帧或整个3维数据块。三维数据块间的间隔与源地址和目的地址无关,(当前值:-32768到32676个单元)。One-Dimensional Burst(1DN)Tr
9、ansfer-1维突发传输:1维突发传输是为搬移存储器里一段连续的数据而进行的优化,这一传输不支持不连续的源或目的地址。,4.1.2 dMAX术语,SPI Slave Transfer-SPI从传输:SPI外设要求对于一个给定的SPI事件,一个单元从SPI输入寄存器读出,一个数据单元写入SPI输出移位寄存器。从SPI传输提供了这一功能。FIFO(Circular Buffer)-FIFO/循环缓冲:一个FIFO是由它的基地址、大小、两个容量标记以及两个指针(读指针和写指针)定义的,当从缓冲写入或读出数据时两个指针互相追赶运动。缓冲的读和写是异步的,当FIFO填入数据时,指针循环,新数据覆盖旧数
10、据。FIFO的大小是由数据单元的数量决定的,而不必是2的整次幂。,4.1.2 dMAX术语,Table-based Multi-tap Delay Transfer-基于表格的多级延迟传输:许多语音算法以不连续的方式访问大的延迟缓冲区。基于表格的多级延迟传输按照预先设定好的延迟偏移读写FIFO缓冲区的数据单元。基于表格的多级延迟存储器访问,在连续级间有任意的间隔(由延迟表定义),并且在一级内有可预见的连续间隔(一个级内延迟数据是连续的)。dMAX Channel-dMAX通道:与事件入口和传输入口相联系的用于传输数据的事件信号。,4.1.2 dMAX术语,Reference(Reload)Re
11、gisters in Transfer Entry-传输入口的参考(重载)寄存器:若使能重载,参考寄存器上(Reference Register)的值用于在传输结束的时候装载当前寄存器(Active Register)组,这样可以实现ping-pong 缓冲功能。Active Registers in Transfer Entry-传输入口当前寄存器:这些当前寄存器在传输的过程中被dMAX更新,dMAX在当前寄存器中存放当前传输的状态信息。,4.1.2 dMAX术语,Delay Table-延迟表:在FIFO传输时,传输入口的指针引用延迟表,表中列出了所有多级延迟传输的请求延迟(缓冲指针参考这
12、些延迟偏移)。,FIFO 简答,FIFO:一、先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。1什么是FIFO?FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。,FIFO 简答,2什么情况下用FIFO?FIFO一般用于不同时钟域之间的数据传输,比如F
13、IFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。,FIFO 简答,3FIFO的一些重要参数FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它只的是FIFO一次读写操作的数据位,
14、就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。,FIFO 简答,FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。在一个具体的应用中也不可能由一些参数算数精确的所需FIFO深度为多少,这
15、在写速度大于读速度的理想状态下是可行的,但在实际中用到的FIFO深度往往要大于计算值。一般来说根据电路的具体情况,在兼顾系统性能和FIFO成本的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。,FIFO 简答,满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。
16、读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。读指针:指向下一个读出地址。读完后自动加1。写指针:指向下一个要写入的地址的,写完自动加1。读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。,FIFO 简答,4FIFO的分类根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。,启动dMAX传输,有两条途径可以用dMAX控制器启动数据传输:事件触发的dMAX传输(这是dM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 应用 dMAX
链接地址:https://www.31ppt.com/p-5428126.html