专利名称:数据传输的控制方法及装置的制作方法
技术领域:
本发明涉及数字通信技术领域,尤其涉及一种数据传输的控制方法及装置。
背景技术:
USB3.0 (Universal Serial BUS3.0)协议支持双工通信,理论带宽达到双向8Gb/s,要求很高的系统带宽。目前实现方式,存储数据与协议数据,在MCU控制下读入缓存buffer,然后被解析。由于协议数据很短,且读/写频率较高,因此,会造成带宽浪费,降低系统性能,不能最大发挥USB3.0的高速性能。而DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,在DMA控制器的控制下,数据在存储设备与外部设备之间直接传输,极大的提高了数据传输的效率。这样,如果将USB3.0与DMA控制器结合可实现数据更快速的传输,充分发挥USB3.0的最大性能。而目前,DMA控制器需要硬件电路识别存储数据然后向CUP发送指令请求获得系统总线控制权,CPU需要实时监测DMA控制器请求状态并在运行完当前周期后才响应DMA请求,再启动DMA控制数据传输,增加电路成本和硬件复杂度,且不够灵活。发明内容
本发明的主要目的在于提供一种数据传输的控制方法,旨在通过虚地址软硬件结合实现DMA机制自动启动,控制数据在存储设备与外部设备之间快速、高效传输。
为了实现发明目的,本发明提出一种数据传输的控制方法,包括以下步骤:
S01、接收到数据传输指令时,根据数据大小配置虚拟目标地址;
S02、判断配置的虚拟目标地址是否大于第一预值;若是,则执行步骤S03,否则执行步骤S04 ;
S03、启动DMA机制控制数据传输;
S04、由CPU控制数据传输。
优选地,所述在执行步骤S03或S04之后还包括:
S05、将传输的数据存储至虚拟目标地址对应的实际目标地址中。
优选地,所述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
优选地,所述在执行步骤S03或步骤S04之后还包括:
S06、将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
本发明还提供一种数据传输的控制装置,其特征在于,包括:
分析控制模块,用于接收到数据传输指令时,根据数据大小配置虚拟目标地址;
判断模块,用于判断配置的虚拟目标地址是否大于第一预值;
处理模块,用于当虚拟目标地址大于第一预值时,启动DMA机制控制数据传输;当虚拟目标地址小于等于第一预值时,由CPU控制数据传输。
优选地,还包括:
第一存储模块,用于将传输的数据存储至虚拟目标地址对应的实际目标地址中。
优选地,所述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
优选地,还包括:
第二存储模块,用于将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
本发明通过接收到数据传输指令时,根据传输数据的大小配置虚拟目标地址,然后判断该虚拟目标地址是否大于第一预值,当虚拟目标地址大于第一预值时则启动DMA机制控制数据传输,当虚拟目标地址小于等于第一预值时则由CPU控制数据传输。本发明能够实现DMA机制自动启动,控制数据在存储设备与外部设备之间快速、高效传输,减少CPU资源占用,提高系统性能,并且实现简单。
图1是本发明数据传输的控制方法第一实施例的流程图2是本发明数据传输的控制方法第二实施例的流程图3是本发明数据传输的控制装置第一实施例的结构示意图4是本发明数据传输的控制装置第二实施例的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1及图2,图1是本发明数据传输的控制方法第一实施例的流程图;图2是本发明数据传输的控制方法第二实施例的流程图。如图1及图2所示,该方法包括以下步骤:
步骤SO1、接收到数据传输指令时,根据数据大小配置虚拟目标地址;
步骤S02、判断配置的虚拟目标地址是否大于第一预值;若是,则执行步骤S03,否则执行步骤S04 ;
步骤S03、启动DMA机制控制数据传输;
步骤S04、由CPU控制数据传输。
并且,所述在执行步骤S03或步骤S04之后还包括:
步骤S05、将传输的数据存储至虚拟目标地址对应的实际目标地址中。
本实施例中,当CPU接收到数据传输指令时,检测传输数据的大小,然后根据传输数据的大小来确定是否启动DMA机制控制数据传输,这里需要传输多大的数据时用DMA机制控制数据传输,可根据需求具体设置一个中间值来进行范围界定,例如可以设置传输的数据大于1M、10M或者50M时需要启动DMA都可以,一般较小为宜。这样当检测到需要传输的数据大于该设定的值时,就知道需要启动DMA机制控制数据传输,小于等于时则不需要启动DMA机制,由CPU直接控制数据传输。其中,所述第一预值为预先设置且用于与配置的虚拟目标地址进行比较以确定最终是由DMA机制还是CPU控制数据传输,当需要DMA机制控制数据传输时,则配置虚拟目标地址大于第一预值,当由CPU直接控制数据传输时,则配置虚拟目标地址小于等于第一预值,该第一预值一般设置为与上述设定的中间值相同,当然也可以设置为其他数值。这样可针对大小不同的数据采用合适的传输控制方式,以实现系统优化,提升性能。另外,将配置好的虚拟目标地址写入一个寄存器中,用于数据存储时提供存储地址信息,该配置的虚拟目标地址可认为是实际目标地址,存储数据时根据这个配置的虚拟目标地址去存储设备中查找与之对应的实际目标地址,查找到对应的实际目标地址后将传输的数据存储至该实际目标地址中。这样利用虚拟地址,软/硬件结合实现了数据DMA存储,且实现简洁,资源占用少。
上述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
并且,所述在执行步骤S03或步骤S04之后还包括:
步骤S06、将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
本实施例中若需要启动DMA机制传输目标数据时,那么配置的虚拟目标地址将大于第一预值,此时配置的偏移地址不等于零,可根据虚拟目标地址与第一预值的大小关系配置,这样可防止配置的虚拟目标地址过大超出存储设备最大内存时只要将虚拟目标地址减去偏移地址就能得到一个实际的新地址,然后根据这个新地址去存储设备中能够找到一个实际的目标地址。而不需要启动DMA机制时,那么配置的虚拟目标地址将小于等于第一预值,此时偏移地址的值无关紧要,一般配置为零,也是为了防止配置过大使虚拟目标地址减去偏移地址后找不到实际的目标地址。所以这里偏移地址的大小需要根据虚拟目标地址的大小和存储设备的内存大小关系进行配置。
本发明提出的数据传输的控制方法通过接收到数据传输指令时,根据数据的大小配置虚拟目标地址,然后判断该虚拟目标地址是否大于第一预值,当虚拟目标地址大于第一预值时则启动DMA机制控制数据传输,当虚拟目标地址小于等于第一预值时则由CPU控制数据传输。本发明能够实现DMA机制自动启动,控制数据在存储设备与外部设备之间快速、高效传输,减少CPU资源占用,提高系统性能,并且实现简单。
参照图3及图4,图3是本发明数据传输的控制装置第一实施例的结构示意图;图4是本发明数据传输的控制装置第二实施例的结构示意图。如图3及图4所示,本发明还提供一种用于实现上述方法的数据传输的控制装置,该装置包括:
分析控制模块100,用于接收到数据传输指令时,根据数据大小配置虚拟目标地址;
判断模块200,用于判断配置的虚拟目标地址是否大于第一预值;
处理模块300,用于当虚拟目标地址大于第一预值时,启动DMA机制控制数据传输;当虚拟目标地址小于等于第一预值时,由CPU控制数据传输;
并且,还包括:
第一存储模块400,用于将传输的数据存储至虚拟目标地址对应的实际目标地址中。
本实施例中,当CPU接收到数据传输指令时,检测传输数据的大小,然后根据传输数据的大小来确定是否启动DMA机制控制数据传输,这里需要传输多大的数据时用DMA机制控制数据传输,可根据需求具体设置一个中间值来进行范围界定,例如可以设置传输的数据大于1M、10M或者50M时需要启动DMA都可以,一般较小为宜。这样当检测到需要传输的数据大于该设定的值时,就知道需要启动DMA机制控制数据传输,小于等于时则不需要启动DMA机制,由CPU直接控制数据传输。其中,所述第一预值为预先设置且用于与配置的虚拟目标地址进行比较以确定最终是由DMA机制还是CPU控制数据传输,当需要DMA机制控制数据传输时,则配置虚拟目标地址大于第一预值,当由CPU直接控制数据传输时,则配置虚拟目标地址小于等于第一预值,该第一预值一般设置为与上述设定的中间值相同,当然也可以设置为其他数值。这样可针对大小不同的数据采用合适的传输控制方式,以实现系统优化,提升性能。另外,将配置好的虚拟目标地址写入一个寄存器中,用于数据存储时提供存储地址信息,该配置的虚拟目标地址可认为是实际目标地址,存储数据时根据这个配置的虚拟目标地址去存储设备中查找与之对应的实际目标地址,查找到对应的实际目标地址后将传输的数据存储至该实际目标地址中。这样利用虚拟地址,软/硬件结合实现了数据DMA存储,且实现简洁,资源占用少。
上所述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
并且,还包括:
第二存储模块500,用于将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
本实施例中若需要启动DMA机制传输目标数据时,那么配置的虚拟目标地址将大于第一预值,此时配置的偏移地址不等于零,可根据虚拟目标地址与第一预值的大小关系配置,这样可防止配置的虚拟目标地址过大超出存储设备最大内存时只要将虚拟目标地址减去偏移地址就能得到一个实际的新地址,然后根据这个新地址去存储设备中能够找到一个实际的目标地址。而不需要启动DMA机制时,那么配置的虚拟目标地址将小于等于第一预值,此时偏移地址的值无关紧要,一般配置为零,也是为了防止配置过大使虚拟目标地址减去偏移地址后找不到实际的目标地址。所以这里偏移地址的大小需要根据虚拟目标地址的大小和存储设备的内存大小关系进行配置。
本发明提出的数据传输的控制装置通过接收到数据传输指令时,根据数据的大小配置虚拟目标地址,然后判断该虚拟目标地址是否大于第一预值,当虚拟目标地址大于第一预值时则启动DMA机制控制数据传输,当虚拟目标地址小于等于第一预值时则由CPU控制数据传输。本发明能够实现DMA机制自动启动,控制数据在存储设备与外部设备之间快速、高效传输,减少CPU资源占用,提高系统性能,并且实现简单。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种数据传输的控制方法,其特征在于,所述数据传输的控制方法包括以下步骤: 501、接收到数据传输指令时,根据数据大小配置虚拟目标地址; 502、判断配置的虚拟目标地址是否大于第一预值;若是,则执行步骤S03,否则执行步骤 S04 ; 503、启动DMA机制控制数据传输; 504、由CPU控制数据传输。
2.如权利要求1所述的数据传输的控制方法,其特征在于,所述在执行步骤S03或步骤S04之后还包括: 505、将传输的数据存储至虚拟目标地址对应的实际目标地址中。
3.如权利要求1所述的数据传输的控制方法,其特征在于,所述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
4.如权利要求1或3所述的数据传输的控制方法,其特征在于,所述在执行步骤S03或步骤S04之后还包括: 506、将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
5.一种数据传输的控制装置,其特征在于,包括: 分析控制模块,用于接收到数据传输指令时,根据数据大小配置虚拟目标地址; 判断模块,用于判断配置的虚拟目标地址是否大于第一预值; 处理模块,用于当虚拟目标地址大于第一预值时,启动DMA机制控制数据传输;当虚拟目标地址小于等于第一预值时,由CPU控制数据传输。
6.如权利要求5所述的数据传输的控制装置,其特征在于,还包括: 第一存储模块,用于将传输的数据存储至虚拟目标地址对应的实际目标地址中。
7.如权利要求5所述的数据传输的控制装置,其特征在于,所述根据数据配置虚拟目标地址的同时还包括:配置一偏移地址。
8.如权利要求5或7所述的数据传输的控制装置,其特征在于,还包括: 第二存储模块,用于将传输的数据存储至虚拟目标地址减去偏移地址后的新地址所对应的实际目标地址中。
全文摘要
本发明公开了一种数据传输的控制方法及装置,所述方法包括以下步骤接收到数据传输指令时,根据数据大小配置虚拟目标地址;判断配置的虚拟目标地址是否大于第一预值;若是,则启动DMA机制控制数据传输,否则由CPU控制数据传输。本发明能够实现DMA机制自动启动,控制数据在存储设备与外部设备之间快速、高效传输,减少CPU资源占用,提高系统性能,并且实现简单。
文档编号G06F13/28GK103164369SQ20131005768
公开日2013年6月19日 申请日期2013年2月22日 优先权日2013年2月22日
发明者刘京芝 申请人:深圳市硅格半导体有限公司