- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Crossbar的多通道DMA控制器设计
1简介
在DMA控制器加入仲裁模块,对多个传输请求进行排序,通过存储器配置模式减少CPU的配置时间和中断次数,但还不能保证对多任务传输的宽带需求;也有把传输任务分为实时任务和非实时任务的,按实时优先级实现系统的实时传输,但是仍需系统对任务进行优先级排序,占用系统处理时间;分别通过预存取和写循环、加入重排列单元、链模式和双缓冲器以及采用不同大小的缓存等方法提高DMA控制器的传输效率。但这些改进方法均只能保证DMA控制器在同一时间传输单一任务,为了实现系统多任务实时传输,本文拟引入Crossbar交换结构,并设计相应的多通道传输DMA控制器,保证系统多任务传输的同时提高系统响应的实时性
为了具体介绍本多通道DMA控制器的设计方案,下面首先对基于Crossbar的多通道DMA控制器的工作原理进行详细分析,接着具体说明各个模块的设计实现,然后对设计进行验证和分析比较实验结果,并进行总结。
2多通道DMA控制器
传统DMA控制器是采用共享总线方式来实现数据传输的,系统实现数据传输的过程为:(1)首先设备向DMAC发出DMA请求。(2)DMAC接到设备请求后,向CPU发出总线请求,请求接管系统总线。(3)CPU在执行完当前指令周期后,向DMAC发出总线响应信号。(4)CPU脱离对系统总线的控制,DMAC接管控制系统总线。(5)DMAC向设备发出应答信号。(6)DMAC在存储器与设备之间进行数据传输。(7)当设定的数据传输完后,DMAC撤销总线请求信号,同时脱离对总线的控制,CPU检测到总线请求信号变为无效后,撤销总线响应信号,恢复对系统总线的控制,同时跳回到中断前的状态。
但对于如图1所示的典型多媒体应用系统,内部有哈夫曼解码模块(HuffmanDecoder)、图像解码模块(MPEGDecoder)、USB模块、SPI模块、SD卡控制模(SDC)和数模转换模块(DAC)等,哈夫曼解码模块和图像解码模块需要跟USB模块、SD卡控制模块或SPI模块通信,即同时存在几路数据传输并且传输数据的模块是变化的,采用共享总线的DMA控制器无法同时处理多个通道任务,现有的多通道DMA控制器交换数据的设备只能是固定的,因而无法胜任这种系统需求。对于这类应用需要,本文引入了Crossbar互联结构,用Crossbar总线来代替共享总线。Crossbar被称为交叉开关矩阵或纵横式交换矩阵,不会因为带宽资源不够而产生阻塞[8]。图2所示是全Crossbar总线拓扑结构的原理图。由于全Crossbar总线所需连接线数量较多,在实际中经常简化为部分Crossbar总线拓扑结构,即将不需要通信的模块间的连接去掉,以节省面积。
Crossbar的互联结构实现在MDMAC的接口模块中,作为DMA传输的局部总线,DMA传输不再占用系统总线,因此可以和CPU并行工作。所有需要采用DMA式传输数据的设备都直接挂接在该接口模块上,而由于这些设备也需要同系统总线通信,所以每个设备需要附加一个多路选择单元,以选择来自系统总线的信号或是来自MDMAC的信号。MDMAC的接口模块实现了全Crossbar的互联结构,其和设备的连接及系统总线的连接方式如图3所示,处于图中左边的任意设备可以和图中右边的任意设备进行DMA方式的数据传输。由于可以根据具体的应用来设计接口模块中设备端口的个数,所以可以保证系统中所有的DMA传输都能并行进行,而不需要像传统DMA控制器,要通过一定的仲裁算法来对多个传输请求进行排序,使得传输时间不能保证,并且仲裁模块会引入较大的延时,使得传输响应变慢。
3设计与实现方案
根据上述多通道DMA控制器的基本原理,可以按如图4结构来设计实现该多通道DMA控制器,其组成模块可以分为4部分:寄存器模块Registers,控制模块Controlunit,地址产生模块Addressgen和接口模块Interface。下面详细介绍各模块的具体设计与实现方案。
3.1寄存器模块
Registers寄存器模块集合了控制器的各种寄存器,包括全局寄存器和各个通道的专用寄存器,控制器和系统微处理器的交互主要靠这些寄存器来完成。全局寄存器对所有的通道都有效,包括配置寄取,不需要CPU的参与,直到整个描述符链表执行完再产生中断通知CPU,而传统的CPU配置模式每执行完一个任务都要产生中断,让CPU对下一个任务进行配置。每次传输的发起可以有两种模式,一种是软件使能方式,即只要将寄存
文档评论(0)