DMA控制器、移动终端以及数据搬运方法.pdf

上传人:GAME****980 文档编号:4033390 上传时间:2018-08-12 格式:PDF 页数:14 大小:2.04MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310430556.X

申请日:

2013.09.18

公开号:

CN104461970A

公开日:

2015.03.25

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 13/32申请日:20130918|||公开

IPC分类号:

G06F13/32; G06F13/14

主分类号:

G06F13/32

申请人:

中兴通讯股份有限公司

发明人:

葛安峰; 于翔

地址:

518057广东省深圳市南山区科技南路55号

优先权:

专利代理机构:

北京康信知识产权代理有限责任公司11240

代理人:

余刚; 梁丽超

PDF下载: PDF下载
内容摘要

本发明提供了一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法,该DMA控制器包括:配置接口,与外部的系统总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序;处理引擎,与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。在本发明中,通过可编程的微程序来配置DMA控制器的执行,从而可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。

权利要求书

权利要求书
1.  一种DMA控制器,其特征在于,包括:
配置接口,与外部的系统总线相连,用于配置所述DMA控制器的指令区地址和数据区地址,其中,所述指令区为存储在系统内存中的一段预先编程的微程序;
处理引擎,与所述配置接口相连,用于根据所述指令区地址和所述数据区地址解释执行所述微程序。

2.  根据权利要求1所述的DMA控制器,其特征在于,还包括:
DMA通道,与所述处理引擎相连,用于所需搬运数据的传输;
中断接口,与所述处理引擎相连,用于向所述主处理器上报中断;
内部总线,与外部的所述系统总线相连,用于所述处理引擎对系统内存和外部设备的访问。

3.  根据权利要求1所述的DMA控制器,其特征在于,所述微程序为可重复编程的指令段,可存储于系统内存的任意位置。

4.  根据权利要求1所述的DMA控制器,其特征在于,所述处理引擎为多个,每个所述处理引擎具有独立的所述配置接口和所述DMA通道。

5.  根据权利要求1所述的DMA控制器,其特征在于,还包括:
源地址寄存器、目的地址寄存器、数据搬运长度寄存器。

6.  一种基于DMA控制器的数据搬运方法,其特征在于,包括:
主处理器配置所述DMA控制器的指令区地址和数据区地址,其中,所述指令区为存储在系统内存中的一段预先编程的微程序;
所述DMA控制器根据所述指令区地址和所述数据区地址解释执行所述微程序,以进行数据的搬运。

7.  根据权利要求6所述的数据搬运方法,其特征在于,所述微程序为可重复编程的指令段,可存储于系统内存的任意位置。

8.  根据权利要求6所述的数据搬运方法,其特征在于,主处理器配置所述DMA控制器的指令区地址和数据区地址之前,还包括:
所述主处理器接收DMA请求,并选择相应的微程序。

9.  根据权利要求8所述的数据搬运方法,其特征在于,主处理器配置所述DMA控制器的指令区地址和数据区地址,包括:
所述主处理器根据所述DMA请求配置所述微程序对应的数据区;
所述主处理器将所述数据区和微程序的内存地址配置给所述DMA控制器的相应通道,并启动DMA控制器。

10.  一种移动终端,其特征在于,包括权利要求1至5中任意一项所述的DMA控制器。

说明书

说明书DMA控制器、移动终端以及数据搬运方法
技术领域
本发明涉及IC设计领域,具体而言,涉及一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法。
背景技术
随着移动终端设备技术发展,终端对系统功耗要求越来越严苛,而对数据处理性能要求越来越高。对于处理器技术而言,高性能意味着高功耗。各家处理器设备厂商在功耗和性能间不断进行优化设计,最终选择一种相对平衡的折中方案。这种严格要求,也推动了IC设计技术的发展。
在当前的处理器系统架构中,增加了DMA控制器用来辅助主处理器完成数据搬运和处理工作。在移动设备中,DMA控制器占据了数据处理的很大比重,具有很大的应用需求。DMA控制器主要工作是搬运数据,涉及内存与内存间数据搬运、内存和设备间数据搬运,以及某些控制器提供的设备与设备间的数据搬运。DMA控制器的加入,解放了主处理器的数据搬运束缚。同时DMA控制器专注于数据搬运,与通用处理器相比具有较高的性能,也有很低的功耗表现。
但是,随着移动终端设备越来越丰富,以及对数据处理的需求越来越复杂,对主处理器的性能要求越来越高,而带来的功耗也越来越高。如何降低主处理器的处理时间,尽快让主处理器进入睡眠状态,成为降低系统功耗的有效手段。现在的DMA控制器虽提高了系统性能,但频繁的DMA中断处理仍然需要主处理器响应,对系统的性能和功耗有较大影响。
针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法,以解决上述现有DMA控制需要频繁向主处理器上报中断,影响系统性能和功耗的问题。
根据本发明的一个方面,提供了一种DMA控制器,该DMA控制器包括:配置接口,与外部的系统总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序;处理引擎,与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。
优选地,DMA控制器还包括:DMA通道,与处理引擎相连,用于所需搬运数据的传输;中断接口,与处理引擎相连,用于向主处理器上报中断;内部总线,与外部的系统总线相连,用于处理引擎对系统内存和外部设备的访问。
优选地,微程序为可重复编程的指令段,可存储于系统内存的任意位置。
优选地,处理引擎为多个,每个处理引擎具有独立对应的配置接口和DMA通道。
优选地,DMA控制器还包括:源地址寄存器、目的地址寄存器、数据搬运长度寄存器。
根据本发明的另一方面,提供了一种基于该DMA控制器的数据搬运方法,包括:主处理器配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序;DMA控制器根据指令区地址和数据区地址解释执行微程序,以进行数据的搬运。
优选地,微程序为可重复编程的指令段,可存储于系统内存的任意位置。
优选地,主处理器配置DMA控制器的指令区地址和数据区地址之前,还包括:主处理器接收DMA请求,并选择相应的微程序。
优选地,主处理器配置DMA控制器的指令区地址和数据区地址,包括:主处理器根据DMA请求配置微程序对应的数据区;主处理器将数据区和微程序的内存地址配置给DMA控制器的相应通道,并启动DMA控制器。
根据本发明的再一方面,提供了一种移动终端,包括前文的DMA控制器。
在本发明实施例中,通过可编程的微程序来配置DMA控制器的执行,从而可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的DMA控制器结构示意图;
图2是根据本发明实施例一的DMA控制器内部结构示意图;
图3是根据本发明实施例一的DMA控制器配置流程图;
图4是根据相关技术的DMA接收数据流程图;
图5是根据本发明实施例二的USB缓冲区管理示意图;
图6是根据本发明实施例二的DMA接收数据流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1是根据本发明实施例的DMA控制器结构示意图。如图1所示,该DMA控制器包括:配置接口10和处理引擎20。配置接口10与外部的系统总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序。处理引擎20与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。
在本实施例中,通过可编程的微程序来配置DMA控制器的执行,从而可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。
其中,微程序为可重复编程的指令段,可存储于系统内存的任意位置。
其中,DMA控制器还包括:DMA通道,与处理引擎相连,用于所需搬运数据的传输;中断接口,与处理引擎相连,用于向主处理器上报中断;内部总线,与外部的系统总线相连,用于处理引擎对系统内存和外部设备的访问。
其中,处理引擎为多个,每个处理引擎具有独立的配置接口和DMA。
其中,DMA控制器还包括:源地址寄存器、目的地址寄存器、数据搬运长度寄存器。
实施例一
为了进一步提高DMA控制器的性能和降低系统功耗,需要减少中断产生,降低主处理器的响应时间,为此,本发明实例一提供了一种实际应用的DMA控制器。
本实施例提供的DMA控制器具有如下特征:
1.DMA控制器以每一个通道作为编程单元。各个DMA通道间无相互影响。
2.DMA控制器可读写访问系统内存空间。
3.DMA控制器内部具有计算比较等逻辑运算单元。
4.DMA控制器可解释识别运算指令,有一套自己的指令集。
5.DMA控制器指令的操作寄存器含较少通用寄存器,主要寄存器为DMA相关配置寄存器,如源地址寄存器、目的地址寄存器、搬运长度寄存器、及其他辅助寄存器。
6.系统主处理器可将系统内存中的指令区配置给DMA控制器解释执行。
7.除指令区外,系统主处理器可选择配置输入数据区,用于配置DMA数据搬运信息。
图2是根据本实施例的DMA控制器内部结构示意图。如图2所示:
该DMA控制器包括3个处理引擎(20),每一个处理引擎(20)对应一个DMA通道(40),通过该通道可独立完成本通道数据搬运处理工作。
每个处理引擎(20)还有一个独立的配置通道接口(10),用于配置处理引擎(20)的指令区和数据区在系统内存的地址。
处理引擎(20)接收设备的DMA处理请求,在数据处理完毕后,DMA控制器通过中断接口(30)通知主处理器。
控制器内部有高速数据传输总线(50)与外部系统总线相接,完成处理引擎(20)对外部内存和设备的访问。
除内部数据总线外,配置接口(10)也与外部的系统总线相接,此系统总线接口用于主处理器对配置接口(10)的访问。
在本实施例的系统框架下,处理引擎(20)可根据配置的指令区的指令解释执行,完成用户定制的DMA动作。该指令区的指令简短精炼,在此称为微程序。
图3是根据本发明实施例一的DMA控制器配置流程图。如图3所示,该DMA控制器配置流程包括以下步骤:
步骤S301,主处理器接收上层用户请求。
步骤S302,主处理器根据DMA请求,选择不同的DMA控制器微程序。
步骤S303,主处理器根据DMA请求的内容,配置微程序对应的输入数据区。
步骤S304,主处理器将输入数据区的地址配置给DMA控制器相应通道。
步骤S305,主处理器将微程序的地址配置给DMA控制器相应通道。
步骤S306,以上配置完成后,主处理器启动DMA控制器开始工作。
步骤S307,DMA控制器通过微程序地址,获取微程序并执行。
步骤S308,DMA控制器根据微程序要求,当完成任务后,上报中断通知主处理器。
步骤S309,主处理器接收到DMA控制器中断,完成DMA流程。
在本发明实施例中,DMA控制器需要执行微程序,微程序由DMA控制器可识别的指令组成。DMA控制器的指令使用伪代码的形式可表示如下:


在以上伪代码中,实现了从源地址0x1000搬运大小为200字节的数据到目的地址0x2000的过程。当搬运完成后,DMA控制器产生中断通知主处理器。
DMA控制器在此过程中解释simple_dma微程序,然后执行。simple_dma程序相当于一次函数调用过程,此程序需要用户预先编程,且可重复使用。simple_dma程序的执行流程如伪代码中表述,用户可修改InputData段的内容重新配置DMA启动,从而完成对不同地址数据的搬运工作。
在本实施例中,最大降低DMA控制器的执行环境约束,微程序指令需要具有位置无关特性。主处理器可将微程序存放于任意内存位置,然后将地址配置到DMA控制器,DMA控制器对此位置的代码均可正常解释执行。
图4是根据相关技术的DMA接收数据流程图。如图4所示,描述了USB在进行DMA传输时的数据流程,该流程为相关技术中的DMA控制器的一般过程。首先配置DMA控制器,然后DMA控制器等待PC侧的数据下发。当数据接收完毕后,DMA控制器上报中断通知主处理器。详细步骤如下:
步骤S401:申请DMA空间缓冲块,用于存放USB数据。
步骤S402:将缓冲块的基址和大小配置到DMA控制器。
步骤S403:若在中断中启动DMA后,退出中断服务程序。
步骤S404:DMA控制开始工作接收PC侧数据。
步骤S405:DMA控制器接收当前USB数据包,当检测到数据传输结束,上报中断给主处理器。
步骤S406:主处理器接收到DMA中断,进入USB DMA中断服务程序处理。
步骤S407:中断服务程序确定为USB DMA接收数据完毕。
步骤S408:中断服务程序将已读入数据的DMA缓冲块传递给上层。
步骤S409:DMA控制再次进入接收数据流程,重复到步骤S401。
以上流程需要主处理器辅助完成数据处理。不论主处理器是在工作状态还是睡眠,此中断处理都会打断主处理器的当前状态。若处理器处于睡眠状态,则需要唤醒处理器进行工作,增加了系统功耗。若主处理器已在处理USB数据或高优先级的任务,则仍会打断主处理器执行,影响系统性能。
实施例二
鉴于以上情形,在本发明实施例二中,通过构建微程序可以很好解决这种困境。针对USBDMA传输,可编程的DMA控制器进行编程设计,构建过程如下:
首先,设计USB DMA的优化流程。根据本文的可编程DMA控制器,可将USB DMA流程优化设计为如图5所示,将USB的DMA空间按照循环队列管理,每个存储单元为一个缓冲块。DMA控制器可随时从队列中申请缓冲块,然后将PC侧数据填充到缓冲块中,并更新写指针。而USB驱动则可从循环队列中读取缓冲块,交给上层应用程序,并更新读指针。这样,主处理器和DMA控制器可在循环队列上并发工作。
从此缓冲管理机制上看,只要保证DMA控制器能够自动申请缓冲块并填充,上层应用就可接收到PC侧数据。于是,USB DMA的工作流程可优化为图6所示的流程,步骤为:
步骤S601:配置DMA控制器后,开始启动工作。
步骤S602:DMA控制器判断USB DMA空间循环队列是否有空闲块。
步骤S603:若有空闲块,则DMA控制器申请一块DMA空间。
步骤S604:若无空闲块,则停止DMA操作。
步骤S605:DMA控制器根据DMA空闲块起始地址和大小,配置内部寄存器,启动并搬运数据。
步骤S606:DMA控制器开始接收数据。
步骤S607:搬运完成后,DMA控制器将当前搬运的地址写入指定位置,并更新写指针。
步骤S608:DMA控制器上报中断通知主处理器。USB驱动可屏蔽掉此中断,不响应,不影响DMA控制器正常工作。
步骤S609:DMA控制器再次循环进入步骤S402过程,循环处理,直到队列无空闲缓冲块为止。
上述优化流程中,主处理器和DMA控制器流水并发工作,两者的交互流程很少,提高了系统吞吐量。如图5所示,DMA控制器仅负责从缓冲区申请数据块,然后将读取的数据填入,无需主处理器参与,而主处理器仅从缓冲区读取数据即可。在实施例中,DMA控制器已替代了中断服务程序的动作,从而减少了主处理的中断响应,对于高速数据传输有着极好的优化效果。
然后,根据以上USB DMA优化流程,进行设计微程序。USB驱动可将微程序配置给DMA控制器,DMA控制器执行微程序完成接收流程。微程序的可参考伪代码如下描述:


DMA微程序编程完成后,需要在主处理系统版本中增加该微程序。USB驱动首先将usb_ring_dma微程序拷贝到指定位置。然后,USB驱动按照申请的DMA空间,进行组织布局,并对dma_config数据区进行修改配置。在以上伪代码中,给出了一种示例,配置了循环队列基址以及缓冲块大小等。
最后,USB驱动将usb_ring_dma微程序的地址和dma_config数据区的地址配置给DMA控制器的相应通道并启动DMA控制器。DMA控制器启动后,对微程序进行解释执行,最终与USB驱动配合完成USB数据接收流程。
在本实施例中,通过以上USB DMA的具体实施方案和过程,详述了本发明对DMA改进后的实现方式。在本实施例中,通过可编程配置的DMA流程,完成了高效且低功耗的数据搬运处理,具有极好的应用前景。
在另外一个实施例中,还提供了一种移动终端,该移动终端包括前文中描述的DMA控制器。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于光盘、软盘、硬盘、可擦写存储器等。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明的上述实施例提供了一种可编程的DMA控制器方案,可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,大大提高了系统的效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

DMA控制器、移动终端以及数据搬运方法.pdf_第1页
第1页 / 共14页
DMA控制器、移动终端以及数据搬运方法.pdf_第2页
第2页 / 共14页
DMA控制器、移动终端以及数据搬运方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《DMA控制器、移动终端以及数据搬运方法.pdf》由会员分享,可在线阅读,更多相关《DMA控制器、移动终端以及数据搬运方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310430556.X(22)申请日 2013.09.18G06F 13/32(2006.01)G06F 13/14(2006.01)(71)申请人中兴通讯股份有限公司地址 518057 广东省深圳市南山区科技南路55号(72)发明人葛安峰 于翔(74)专利代理机构北京康信知识产权代理有限责任公司 11240代理人余刚 梁丽超(54) 发明名称DMA控制器、移动终端以及数据搬运方法(57) 摘要本发明提供了一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法,该DMA控制器包括:配置接口,与外部的系统。

2、总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序;处理引擎,与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。在本发明中,通过可编程的微程序来配置DMA控制器的执行,从而可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书7页 附图5页(10)申请公布号 CN 104461970 A(43)申请公布日 2015.03.25CN 104461970 A1/1页21.一种DMA控制器,其特征。

3、在于,包括:配置接口,与外部的系统总线相连,用于配置所述DMA控制器的指令区地址和数据区地址,其中,所述指令区为存储在系统内存中的一段预先编程的微程序;处理引擎,与所述配置接口相连,用于根据所述指令区地址和所述数据区地址解释执行所述微程序。2.根据权利要求1所述的DMA控制器,其特征在于,还包括:DMA通道,与所述处理引擎相连,用于所需搬运数据的传输;中断接口,与所述处理引擎相连,用于向所述主处理器上报中断;内部总线,与外部的所述系统总线相连,用于所述处理引擎对系统内存和外部设备的访问。3.根据权利要求1所述的DMA控制器,其特征在于,所述微程序为可重复编程的指令段,可存储于系统内存的任意位置。

4、。4.根据权利要求1所述的DMA控制器,其特征在于,所述处理引擎为多个,每个所述处理引擎具有独立的所述配置接口和所述DMA通道。5.根据权利要求1所述的DMA控制器,其特征在于,还包括:源地址寄存器、目的地址寄存器、数据搬运长度寄存器。6.一种基于DMA控制器的数据搬运方法,其特征在于,包括:主处理器配置所述DMA控制器的指令区地址和数据区地址,其中,所述指令区为存储在系统内存中的一段预先编程的微程序;所述DMA控制器根据所述指令区地址和所述数据区地址解释执行所述微程序,以进行数据的搬运。7.根据权利要求6所述的数据搬运方法,其特征在于,所述微程序为可重复编程的指令段,可存储于系统内存的任意位。

5、置。8.根据权利要求6所述的数据搬运方法,其特征在于,主处理器配置所述DMA控制器的指令区地址和数据区地址之前,还包括:所述主处理器接收DMA请求,并选择相应的微程序。9.根据权利要求8所述的数据搬运方法,其特征在于,主处理器配置所述DMA控制器的指令区地址和数据区地址,包括:所述主处理器根据所述DMA请求配置所述微程序对应的数据区;所述主处理器将所述数据区和微程序的内存地址配置给所述DMA控制器的相应通道,并启动DMA控制器。10.一种移动终端,其特征在于,包括权利要求1至5中任意一项所述的DMA控制器。权 利 要 求 书CN 104461970 A1/7页3DMA 控制器、 移动终端以及数。

6、据搬运方法技术领域0001 本发明涉及IC设计领域,具体而言,涉及一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法。背景技术0002 随着移动终端设备技术发展,终端对系统功耗要求越来越严苛,而对数据处理性能要求越来越高。对于处理器技术而言,高性能意味着高功耗。各家处理器设备厂商在功耗和性能间不断进行优化设计,最终选择一种相对平衡的折中方案。这种严格要求,也推动了IC设计技术的发展。0003 在当前的处理器系统架构中,增加了DMA控制器用来辅助主处理器完成数据搬运和处理工作。在移动设备中,DMA控制器占据了数据处理的很大比重,具有很大的应用需求。DMA控制器主。

7、要工作是搬运数据,涉及内存与内存间数据搬运、内存和设备间数据搬运,以及某些控制器提供的设备与设备间的数据搬运。DMA控制器的加入,解放了主处理器的数据搬运束缚。同时DMA控制器专注于数据搬运,与通用处理器相比具有较高的性能,也有很低的功耗表现。0004 但是,随着移动终端设备越来越丰富,以及对数据处理的需求越来越复杂,对主处理器的性能要求越来越高,而带来的功耗也越来越高。如何降低主处理器的处理时间,尽快让主处理器进入睡眠状态,成为降低系统功耗的有效手段。现在的DMA控制器虽提高了系统性能,但频繁的DMA中断处理仍然需要主处理器响应,对系统的性能和功耗有较大影响。0005 针对相关技术中所存在的。

8、上述问题,目前尚未提出有效的解决方案。发明内容0006 本发明提供了一种DMA控制器、配置有该DMA控制器的移动终端以及基于该DMA控制器的数据搬运方法,以解决上述现有DMA控制需要频繁向主处理器上报中断,影响系统性能和功耗的问题。0007 根据本发明的一个方面,提供了一种DMA控制器,该DMA控制器包括:配置接口,与外部的系统总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序;处理引擎,与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。0008 优选地,DMA控制器还包括:DMA通道,与处理引擎相连,用于所需搬运数据的传输。

9、;中断接口,与处理引擎相连,用于向主处理器上报中断;内部总线,与外部的系统总线相连,用于处理引擎对系统内存和外部设备的访问。0009 优选地,微程序为可重复编程的指令段,可存储于系统内存的任意位置。0010 优选地,处理引擎为多个,每个处理引擎具有独立对应的配置接口和DMA通道。0011 优选地,DMA控制器还包括:源地址寄存器、目的地址寄存器、数据搬运长度寄存器。说 明 书CN 104461970 A2/7页40012 根据本发明的另一方面,提供了一种基于该DMA控制器的数据搬运方法,包括:主处理器配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序。

10、;DMA控制器根据指令区地址和数据区地址解释执行微程序,以进行数据的搬运。0013 优选地,微程序为可重复编程的指令段,可存储于系统内存的任意位置。0014 优选地,主处理器配置DMA控制器的指令区地址和数据区地址之前,还包括:主处理器接收DMA请求,并选择相应的微程序。0015 优选地,主处理器配置DMA控制器的指令区地址和数据区地址,包括:主处理器根据DMA请求配置微程序对应的数据区;主处理器将数据区和微程序的内存地址配置给DMA控制器的相应通道,并启动DMA控制器。0016 根据本发明的再一方面,提供了一种移动终端,包括前文的DMA控制器。0017 在本发明实施例中,通过可编程的微程序来。

11、配置DMA控制器的执行,从而可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。附图说明0018 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:0019 图1是根据本发明实施例的DMA控制器结构示意图;0020 图2是根据本发明实施例一的DMA控制器内部结构示意图;0021 图3是根据本发明实施例一的DMA控制器配置流程图;0022 图4是根据相关技术的DMA接收数据流程图;0023 图5是根据本发明实施例二的USB缓冲区管理示意图;0024 图6是根据本。

12、发明实施例二的DMA接收数据流程图。具体实施方式0025 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。0026 图1是根据本发明实施例的DMA控制器结构示意图。如图1所示,该DMA控制器包括:配置接口10和处理引擎20。配置接口10与外部的系统总线相连,用于配置DMA控制器的指令区地址和数据区地址,其中,指令区为存储在系统内存中的一段预先编程的微程序。处理引擎20与配置接口相连,用于根据指令区地址和数据区地址解释执行微程序。0027 在本实施例中,通过可编程的微程序来配置DMA控制器的执行,从而可实现复杂的数据搬运。

13、,同时降低DMA控制器中断对主处理器的影响,达到了提高系统效率的效果。0028 其中,微程序为可重复编程的指令段,可存储于系统内存的任意位置。0029 其中,DMA控制器还包括:DMA通道,与处理引擎相连,用于所需搬运数据的传输;中断接口,与处理引擎相连,用于向主处理器上报中断;内部总线,与外部的系统总线相连,用于处理引擎对系统内存和外部设备的访问。0030 其中,处理引擎为多个,每个处理引擎具有独立的配置接口和DMA。说 明 书CN 104461970 A3/7页50031 其中,DMA控制器还包括:源地址寄存器、目的地址寄存器、数据搬运长度寄存器。0032 实施例一0033 为了进一步提高。

14、DMA控制器的性能和降低系统功耗,需要减少中断产生,降低主处理器的响应时间,为此,本发明实例一提供了一种实际应用的DMA控制器。0034 本实施例提供的DMA控制器具有如下特征:0035 1.DMA控制器以每一个通道作为编程单元。各个DMA通道间无相互影响。0036 2.DMA控制器可读写访问系统内存空间。0037 3.DMA控制器内部具有计算比较等逻辑运算单元。0038 4.DMA控制器可解释识别运算指令,有一套自己的指令集。0039 5.DMA控制器指令的操作寄存器含较少通用寄存器,主要寄存器为DMA相关配置寄存器,如源地址寄存器、目的地址寄存器、搬运长度寄存器、及其他辅助寄存器。0040。

15、 6.系统主处理器可将系统内存中的指令区配置给DMA控制器解释执行。0041 7.除指令区外,系统主处理器可选择配置输入数据区,用于配置DMA数据搬运信息。0042 图2是根据本实施例的DMA控制器内部结构示意图。如图2所示:0043 该DMA控制器包括3个处理引擎(20),每一个处理引擎(20)对应一个DMA通道(40),通过该通道可独立完成本通道数据搬运处理工作。0044 每个处理引擎(20)还有一个独立的配置通道接口(10),用于配置处理引擎(20)的指令区和数据区在系统内存的地址。0045 处理引擎(20)接收设备的DMA处理请求,在数据处理完毕后,DMA控制器通过中断接口(30)通知。

16、主处理器。0046 控制器内部有高速数据传输总线(50)与外部系统总线相接,完成处理引擎(20)对外部内存和设备的访问。0047 除内部数据总线外,配置接口(10)也与外部的系统总线相接,此系统总线接口用于主处理器对配置接口(10)的访问。0048 在本实施例的系统框架下,处理引擎(20)可根据配置的指令区的指令解释执行,完成用户定制的DMA动作。该指令区的指令简短精炼,在此称为微程序。0049 图3是根据本发明实施例一的DMA控制器配置流程图。如图3所示,该DMA控制器配置流程包括以下步骤:0050 步骤S301,主处理器接收上层用户请求。0051 步骤S302,主处理器根据DMA请求,选择。

17、不同的DMA控制器微程序。0052 步骤S303,主处理器根据DMA请求的内容,配置微程序对应的输入数据区。0053 步骤S304,主处理器将输入数据区的地址配置给DMA控制器相应通道。0054 步骤S305,主处理器将微程序的地址配置给DMA控制器相应通道。0055 步骤S306,以上配置完成后,主处理器启动DMA控制器开始工作。0056 步骤S307,DMA控制器通过微程序地址,获取微程序并执行。0057 步骤S308,DMA控制器根据微程序要求,当完成任务后,上报中断通知主处理器。0058 步骤S309,主处理器接收到DMA控制器中断,完成DMA流程。0059 在本发明实施例中,DMA控。

18、制器需要执行微程序,微程序由DMA控制器可识别的指说 明 书CN 104461970 A4/7页6令组成。DMA控制器的指令使用伪代码的形式可表示如下:0060 0061 0062 在以上伪代码中,实现了从源地址0x1000搬运大小为200字节的数据到目的地址0x2000的过程。当搬运完成后,DMA控制器产生中断通知主处理器。0063 DMA控制器在此过程中解释simple_dma微程序,然后执行。simple_dma程序相当于一次函数调用过程,此程序需要用户预先编程,且可重复使用。simple_dma程序的执行流程如伪代码中表述,用户可修改InputData段的内容重新配置DMA启动,从而完。

19、成对不同地址数据的搬运工作。0064 在本实施例中,最大降低DMA控制器的执行环境约束,微程序指令需要具有位置无关特性。主处理器可将微程序存放于任意内存位置,然后将地址配置到DMA控制器,DMA控制器对此位置的代码均可正常解释执行。0065 图4是根据相关技术的DMA接收数据流程图。如图4所示,描述了USB在进行DMA传输时的数据流程,该流程为相关技术中的DMA控制器的一般过程。首先配置DMA控制器,然后DMA控制器等待PC侧的数据下发。当数据接收完毕后,DMA控制器上报中断通知主处理器。详细步骤如下:0066 步骤S401:申请DMA空间缓冲块,用于存放USB数据。0067 步骤S402:将。

20、缓冲块的基址和大小配置到DMA控制器。0068 步骤S403:若在中断中启动DMA后,退出中断服务程序。0069 步骤S404:DMA控制开始工作接收PC侧数据。0070 步骤S405:DMA控制器接收当前USB数据包,当检测到数据传输结束,上报中断给说 明 书CN 104461970 A5/7页7主处理器。0071 步骤S406:主处理器接收到DMA中断,进入USB DMA中断服务程序处理。0072 步骤S407:中断服务程序确定为USB DMA接收数据完毕。0073 步骤S408:中断服务程序将已读入数据的DMA缓冲块传递给上层。0074 步骤S409:DMA控制再次进入接收数据流程,重复。

21、到步骤S401。0075 以上流程需要主处理器辅助完成数据处理。不论主处理器是在工作状态还是睡眠,此中断处理都会打断主处理器的当前状态。若处理器处于睡眠状态,则需要唤醒处理器进行工作,增加了系统功耗。若主处理器已在处理USB数据或高优先级的任务,则仍会打断主处理器执行,影响系统性能。0076 实施例二0077 鉴于以上情形,在本发明实施例二中,通过构建微程序可以很好解决这种困境。针对USBDMA传输,可编程的DMA控制器进行编程设计,构建过程如下:0078 首先,设计USB DMA的优化流程。根据本文的可编程DMA控制器,可将USB DMA流程优化设计为如图5所示,将USB的DMA空间按照循环。

22、队列管理,每个存储单元为一个缓冲块。DMA控制器可随时从队列中申请缓冲块,然后将PC侧数据填充到缓冲块中,并更新写指针。而USB驱动则可从循环队列中读取缓冲块,交给上层应用程序,并更新读指针。这样,主处理器和DMA控制器可在循环队列上并发工作。0079 从此缓冲管理机制上看,只要保证DMA控制器能够自动申请缓冲块并填充,上层应用就可接收到PC侧数据。于是,USB DMA的工作流程可优化为图6所示的流程,步骤为:0080 步骤S601:配置DMA控制器后,开始启动工作。0081 步骤S602:DMA控制器判断USB DMA空间循环队列是否有空闲块。0082 步骤S603:若有空闲块,则DMA控制。

23、器申请一块DMA空间。0083 步骤S604:若无空闲块,则停止DMA操作。0084 步骤S605:DMA控制器根据DMA空闲块起始地址和大小,配置内部寄存器,启动并搬运数据。0085 步骤S606:DMA控制器开始接收数据。0086 步骤S607:搬运完成后,DMA控制器将当前搬运的地址写入指定位置,并更新写指针。0087 步骤S608:DMA控制器上报中断通知主处理器。USB驱动可屏蔽掉此中断,不响应,不影响DMA控制器正常工作。0088 步骤S609:DMA控制器再次循环进入步骤S402过程,循环处理,直到队列无空闲缓冲块为止。0089 上述优化流程中,主处理器和DMA控制器流水并发工作。

24、,两者的交互流程很少,提高了系统吞吐量。如图5所示,DMA控制器仅负责从缓冲区申请数据块,然后将读取的数据填入,无需主处理器参与,而主处理器仅从缓冲区读取数据即可。在实施例中,DMA控制器已替代了中断服务程序的动作,从而减少了主处理的中断响应,对于高速数据传输有着极好的优化效果。0090 然后,根据以上USB DMA优化流程,进行设计微程序。USB驱动可将微程序配置给DMA控制器,DMA控制器执行微程序完成接收流程。微程序的可参考伪代码如下描述:说 明 书CN 104461970 A6/7页80091 0092 0093 DMA微程序编程完成后,需要在主处理系统版本中增加该微程序。USB驱动首。

25、先将usb_ring_dma微程序拷贝到指定位置。然后,USB驱动按照申请的DMA空间,进行组织布局,并对dma_config数据区进行修改配置。在以上伪代码中,给出了一种示例,配置了循环队列基址以及缓冲块大小等。0094 最后,USB驱动将usb_ring_dma微程序的地址和dma_config数据区的地址配置给DMA控制器的相应通道并启动DMA控制器。DMA控制器启动后,对微程序进行解释执行,最终与USB驱动配合完成USB数据接收流程。说 明 书CN 104461970 A7/7页90095 在本实施例中,通过以上USB DMA的具体实施方案和过程,详述了本发明对DMA改进后的实现方式。。

26、在本实施例中,通过可编程配置的DMA流程,完成了高效且低功耗的数据搬运处理,具有极好的应用前景。0096 在另外一个实施例中,还提供了一种移动终端,该移动终端包括前文中描述的DMA控制器。0097 在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例中描述的技术方案。0098 在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于光盘、软盘、硬盘、可擦写存储器等。0099 从以上的描述中,可以看出,本发明实现了如下技术效果:0100 本发明的上述实施例提供了一种可编程的DMA控制器方案,可实现复杂的数据搬运,同时降低DMA控制器中断对主处理器的影。

27、响,大大提高了系统的效率。0101 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。0102 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 104461970 A1/5页10图1图2说 明 书 附 图CN 104461970 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1