[发明专利]一种直接存储器访问控制器及其控制方法无效
申请号: | 01107691.7 | 申请日: | 2001-03-30 |
公开(公告)号: | CN1378148A | 公开(公告)日: | 2002-11-06 |
发明(设计)人: | 王良清;梁松海;朱子宇;官华伯 | 申请(专利权)人: | 深圳市中兴集成电路设计有限责任公司 |
主分类号: | G06F13/16 | 分类号: | G06F13/16 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518058 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 直接 存储器 访问 控制器 及其 控制 方法 | ||
本发明涉及计算机技术中微处理器系统,尤其涉及信号、数据在存储器、输入/输出设备或者中央处理器之间的传送,具体的说,涉及直接存储器访问控制器DMA(Direct Memory Access)及其控制方法。
传统的DMA控制器一般采用两种传输方式。一种是直接方式,即CPU把一个DMA传输命令(包括源地址、目的地址、数据量、控制字)写入DMA控制器的内部寄存器,DMA控制器根据这个DMA传输命令控制总线完成数据传输任务。另一种是链式方式,在链式方式下,CPU把DMA的命令描述符和DMA传输命令放在存储器内,该命令描述符指明了对应DMA命令在存储器中的地址、下一个命令描述符在存储器中的地址以及控制信息。DMA控制器根据CPU写入其内部寄存器中第一个命令描述符从存储器中读入传输命令和下一个描述符,开始数据传输。一个命令传输完成后,DMA控制器读入新的传输命令和新的命令描述符,再执行新的传输命令;直到命令链上所有的传输命令执行完成为止,该过程结束。由上述两种传输方式的比较可知,直接方式控制简单,但是很难处理数据在非连续空间传输的情况,它中断的次数比链式模式要多,从而增加了CPU的时间开销;链式方式虽然方便处理多个命令的情况,但控制复杂,使用不方便。在高速数据传输过程中,为避免丢失数据,要求DMA控制器的命令间隔不能超过实际数据传输需要的最长时间间隔。在直接方式下,因为DMA控制器执行新的命令需要插入CPU中断响应时间,所以在高速数据传输中容易丢失数据;而在链式模式下,虽然可以不插入CPU中断响应时间,但仍然要从存储器中读取描述符和DMA命令,如果考虑到读取存储器的延时在高速传输中仍然面临丢失数据的危险。
本发明的目的在于提出一种DMA控制器及其控制方法,能方便地处理数据在非连续空间传输的情况,并能避免在高速数据传输中丢失数据,既实现链式工作模式的功能,又简化链式工作模式的设计复杂度。
本发明公开的一种直接存储器访问控制器DMA(Direct MemoryAccess),包括传输数据用的DBUS地址总线和数据总线,暂存数据FIFO单元,使DMA控制器可以作为从设备被CPU访问的读写控制逻辑单元和控制DMA命令执行的控制执行部件;还包括可存放两个以上命令的两个以上命令寄存器组,每组命令寄存器包括控制寄存器CR、数据量寄存器WCR、目的地址寄存器DAR和源地址寄存器SAR;所述命令寄存器组顺序相联,且第一命令寄存器组与所述控制执行部件相联,该控制执行部件与暂存数据的数据FIFO相联,该控制执行部件及暂存数据的数据FIFO还连接所述数据总线;最后一个命令寄存器组与所述读写控制逻辑单元相联,该读写控制逻辑单元的地址译码使CPU可以通过数据总线CBUS访问每一个命令寄存器组。
本发明公开的一种直接存储器访问控制器DMA(Direct Memory Access)的控制方法,包括下述步骤:
①CPU把两个以上包括源地址、目的地址、数据量和控制字的DMA传输命令分别写入DMA控制器的两个以上内部寄存器组;
②DMA控制器接收到数据传输请求后,根据第一命令寄存器组中的DMA传输命令控制总线完成数据传输任务,并使第一命令寄存器组中数据量寄存器WCR0的值为0;
③如果此时其它命令寄存器组非空即其相应数据量寄存器WCR1、WCR2、…有一个不为0,则控制执行部件发出一个命令前移信号并完成下述动作:第二命令寄存器组中的命令前移到第一命令寄存器组中;第三命令寄存器组中的命令前移到第二命令寄存器组中,如此顺序前移;
④如果在命令前移时存在CPU写最后一个命令寄存器组的请求,则该命令寄存器组接受CPU写入的新值,否则该命令寄存器组装入一个空命令即相应数据量寄存器WCR装入0;
⑤重复上述步骤①②③④,完成全部命令寄存器组中所有的数据传输,此时命令队列为空,即各个数据量寄存器WCR全为0。
本发明由于采用命令队列方式进行数据传输,把数据传输的DMA命令写在DMA控制器里的多个寄存器组中,因此,可以方便的完成非连续空间的数据传输。同时由于多个DMA命令位于DMA控制器的命令队列中,用户设置命令时不必考虑链式模式中的描述符,也不必把DMA命令放在存储器中,既简化了设计复杂度,又提高了命令切换速度(只需一两个时钟周期就可以完成命令切换),避免了读取命令延时导致的丢失数据的危险。本发明综合了直接方式和链式方式两方面的优点,控制简单。
下面结合附图对本发明作进一步详细说明:
图1是DMA控制器工作原理示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市中兴集成电路设计有限责任公司,未经深圳市中兴集成电路设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/01107691.7/2.html,转载请声明来源钻瓜专利网。