CN111615692A - 数据搬运方法、计算处理装置、设备及存储介质 - Google Patents
数据搬运方法、计算处理装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111615692A CN111615692A CN201980008842.2A CN201980008842A CN111615692A CN 111615692 A CN111615692 A CN 111615692A CN 201980008842 A CN201980008842 A CN 201980008842A CN 111615692 A CN111615692 A CN 111615692A
- Authority
- CN
- China
- Prior art keywords
- data
- carrying
- dma controller
- cache unit
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004364 calculation method Methods 0.000 title abstract description 3
- 239000000872 buffer Substances 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 230000032258 transport Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 18
- 230000001419 dependent effect Effects 0.000 abstract description 2
- 230000001960 triggered effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
本申请公开了一种数据搬运方法、计算处理装置、设备和存储介质。所述方法包括:获取搬运配置信息,搬运配置信息包括目标搬运次数(101),触发DMA控制器进行多次数据搬运(102),确定DMA控制器的已完成搬运次数(103),根据已完成搬运次数达到了目标搬运次数,通知处理器数据搬运完成(104),使得数据搬运不再依赖处理器响应中断的方式,外部设备可以直接触发DMA控制器进行多次数据搬运,避免每次数据搬运都需等待处理器响应的问题,实现了持续不间断的数据搬运的目的,解决了处理器响应不及时导致数据丢失的问题。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据搬运方法、一种计算处理装置、一种计算处理设备、一种计算机可读存储介质。
背景技术
嵌入式技术发展迅速,但是嵌入式***中的运算资源却比较稀缺。嵌入式***中不仅对于CPU(Central Processing Unit,中央处理器)资源的利用越来越多,而且对于数据实时性的需求也越来越高。
在嵌入式***针对数据搬运的处理方案中,大批量数据搬运一般不再使用CPU进行操作,而是使用DMA(Direct Memory Access,直接存储器存取)控制器进行数据搬运。
在嵌入式***的数据搬运过程中,CPU配置好一段DMA数据后启动DMA搬运,DMA搬运成功后通常会产生中断给CPU,由CPU再次配置DMA数据进行下一次数据搬运。这样的方式带来的CPU开销较大,而且当中断比较频繁时CPU响应也很可能不及时,继而导致数据可能丢失。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的数据搬运方法、计算处理装置、计算处理设备、计算机可读存储介质。
依据本申请的一个方面,提供了一种数据搬运方法,应用于外部设备,包括:
获取搬运配置信息,所述搬运配置信息包括目标搬运次数;
触发所述DMA控制器进行多次数据搬运;
确定所述DMA控制器的已完成搬运次数;
根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
依据本申请的另一个方面,提供了一种计算处理装置,用于实现数据搬运,所述计算处理装置包括外部设备、DMA控制器、处理器;
所述外部设备用于:获取搬运配置信息,所述搬运配置信息包括目标搬运次数;触发所述DMA控制器进行多次数据搬运;确定所述DMA控制器的已完成搬运次数;根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
依据本申请的另一个方面,提供了一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行上述的数据搬运方法。
依据本申请的另一个方面,提供了一种计算机可读介质,其中存储了如上所述的计算机程序。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例一的一种数据搬运方法的步骤流程图;
图2示出了外部设备与DMA控制器之间握手的示意图;
图3示出了本发明实施例二的一种数据搬运方法的步骤流程图;
图4示出了数据搬运过程的示意图;
图5示意性地示出了用于执行根据本发明的方法的计算处理设备的框图;以及
图6示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施例
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本领域技术人员更好地理解本发明,以下对本发明涉及的概念进行说明:
DMA控制器是一种在***内部转移数据的外部设备,DMA控制器的作用是在处理器的编程控制下来执行传输,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外部设备连接起来的控制器。
外部设备可以产生或获取数据,当外部设备产生或获取数据后,为了将数据搬移,通常会产生中断信号给处理器,由处理器将数据直接搬运走或者处理器配置DMA控制器来将数据搬运走。如果外部设备产生或获取数据比较频繁或者数据量比较大,可能出现处理器搬运不及时或者处理器配置DMA控制器不及时导致数据丢失的情况。
根据本发明的一种实施例,在数据搬运过程中,针对外部设备提供的数据输入是周期性的、或频繁的、或持续的数据,为了避免处理器响应不及时导致数据丢失的问题。本发明提供了一种数据搬运机制,应用于外部设备,通过获取搬运配置信息,触发DMA控制器进行多次数据搬运,确定DMA控制器的已完成搬运次数,根据已完成搬运次数达到了目标搬运次数,通知处理器数据搬运完成,使得数据搬运不再依赖处理器响应中断的方式,外部设备可以直接触发DMA控制器进行多次数据搬运,避免每次数据搬运都需等待处理器响应的问题,实现了持续不间断的数据搬运的目的,解决了处理器响应不及时导致数据丢失的问题。本发明适用但不局限于上述应用场景。
实施例1
参照图1,示出了本发明实施例一的一种数据搬运方法的步骤流程图,应用于外部设备,具体可以包括如下步骤:
步骤101,获取搬运配置信息,所述搬运配置信息包括目标搬运次数。
在本发明实施例中,在数据搬运过程中,为了避免每次数据搬运都需等待处理器响应,可以预先针对外部设备进行配置,得到搬运配置信息,其中包括配置数据搬运的次数,记为目标搬运次数。搬运配置信息可以根据外部设备的特性以及实际需要进行配置,本发明实施例对此不做限制。
例如,软件预先针对带宽采集设备进行配置,得到搬运配置信息,将搬运配置信息发送给带宽采集设备。其中,根据带宽采集设备的特性,配置目标搬运次数为1024次。带宽采集设备可以设置专门的寄存器存储目标搬运次数。
步骤102,触发所述DMA控制器进行多次数据搬运。
在本发明实施例中,外部设备产生或获取数据后,不再产生中断给处理器,而是直接触发DMA控制器进行数据搬运,并且在完成每一次数据搬运后,DMA控制器不再产生中断给处理器,而是让DMA控制器等待外部设备触发下一次数据搬运,也就是说,由外部设备触发DMA控制器进行多次数据搬运,期间完成每次数据搬运不会通知处理器,也不会等待处理器的响应来配置下一次数据搬运。
可选地,触发所述DMA控制器进行多次数据搬运的一种实现方式可以包括:向DMA控制器发送每次数据搬运的请求信号;接收DMA控制器完成每次搬运的反馈信号。
例如,如图2所示的外部设备与DMA控制器之间握手的示意图,外部设备与DMA控制器之间通过硬件方式实现的握手信号进行同步,当外部设备有数据要搬运时,通过dma_req信号(即请求信号)直接发送给DMA控制器,DMA控制器根据搬运配置信息进行数据搬运,搬运完成后发送dma_ack信号(即反馈信号)给外部设备,外部设备接收到dma_ack信号之后才会产生下一次的dma_req信号,在完成目标搬运次数的数据搬运过程中,不再穿插软件处理,只有在目标搬运次数的数据搬运都完成之后,才会通知处理器。
步骤103,确定所述DMA控制器的已完成搬运次数。
在本发明实施例中,外部设备可以在每次完成数据搬运后,确定当前已经完成的搬运次数,记为已完成搬运次数。
可选地,确定所述DMA控制器的已完成搬运次数的一种实现方式可以包括:根据反馈信号,确定已完成搬运次数。外部设备每收到一次反馈信号,意味着完成了一次数据搬运,就可以将已完成搬运次数增加一次,即根据反馈信号进行计数,得到当前的已完成搬运次数。
例如,外部设备可以设置专门的寄存器存储已完成搬运次数,默认将该寄存器中的值置为0,每次收到反馈信号后,将此寄存器中的值进行加1,即可确定已完成搬运次数。
步骤104,根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
在本发明实施例中,当已完成搬运次数未达到目标搬运次数时,不必通知处理器,继续由外部设备触发DMA控制器进行数据搬运;当已完成搬运次数达到目标搬运次数时,通知处理器数据搬运完成,由处理器进行后续数据的处理。
依据本发明实施例,通过外部设备获取搬运配置信息,搬运配置信息包括目标搬运次数,触发DMA控制器进行多次数据搬运,确定DMA控制器的已完成搬运次数,根据已完成搬运次数达到了目标搬运次数,通知处理器数据搬运完成,使得数据搬运不再依赖处理器响应中断的方式,外部设备可以直接触发DMA控制器进行多次数据搬运,避免每次数据搬运都需等待处理器响应的问题,实现了持续不间断的数据搬运的目的,解决了处理器响应不及时导致数据丢失的问题。
实施例2
参照图3,示出了本发明实施例二的一种数据搬运方法的步骤流程图,应用于外部设备,具体可以包括如下步骤:
步骤201,获取搬运配置信息,所述搬运配置信息包括目标搬运次数。
步骤202,向DMA控制器发送每次数据搬运的请求信号。
步骤203,经所述DMA控制器搬运数据到至少两个缓存单元,其中,所述至少两个缓存单元中第一缓存单元写满数据后切换到第二缓存单元继续写入,所述第一缓存单元写满数据后通知处理器进行处理,以清空写满数据的第一缓存单元。
上述实施例中实现了持续不间断的进行数据搬运的目的,但当***缓存比较少时,缓存的大小决定了目标搬运次数的上限,缓存被写满后,继续搬运会丢失数据,继而导致无法长时间获取外部设备的数据。
在本发明实施例中,为了长时间的获取外部设备的数据,可以采用至少两个缓存单元作为数据搬运的缓存。外部设备的数据经过DMA控制器可以搬运到至少两个缓存单元。
其中,至少两个缓存单元中第一缓存单元写满数据后切换到第二缓存单元继续写入,并且第一缓存单元写满数据后通知处理器进行处理,以清空写满数据的第一缓存单元。依此规律,还可以有第三缓存单元、第四缓存单元等等,本发明实施例对此不做限制。处理器对第一缓存单元中数据的处理包括但不限于:通过处理器将第一缓存单元中的数据搬运至其他存储空间,或者由处理器将第一缓存单元中的数据提取走,并对数据进行设定的运算,本发明实施例对此不做限制。
缓存单元的切换可以由软件实现,也可以由硬件实现。其中软件实现的方式是,当一个缓存单元写满数据后,DMA控制器产生中断信号给处理器,由处理器触发下一个缓存单元的数据搬运,同时把已经写满数据的缓存单元中的数据进行处理,以便下一次继续可以使用该缓存单元,循环使用至少两个缓存单元,就可以一直有足够的缓存使用。
为了进一步降低数据丢失的风险,除了软件实现缓存单元切换的方式之外,还可以采用硬件切换的方式。
在一可选实施例中,采用硬件切换的方式下,搬运配置信息还包括每次搬运的数据量以及所述至少两个缓存单元的地址和长度,经所述DMA控制器搬运数据到至少两个缓存单元的一种实现方式可以包括:根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运。
外部设备获取的搬运配置信息不仅包括目标搬运次数,还可以包括每次搬运的数据量以及至少两个缓存单元的地址和长度。外部设备根据缓存单元的地址,就可以确定缓存单元在存储器中的空间位置,从而可以配置DMA控制器进行数据搬运的目的地址。外部设备根据缓存单元的长度、已完成搬运次数和每次搬运的数据量,就可以确定缓存单元是否写满数据,决定是否需要切换缓存单元。因此,外部设备就可以直接确定用于写入数据的缓存单元进行数据搬运,无需等待处理器响应中断配置DMA控制器,也就是说,由硬件实现缓存单元的自动切换,实现持续不间断的数据搬运,保证周期性的、或频繁的、或持续的数据不会丢失。
可选地,根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运的一种实现方式可以包括:根据第一缓存单元的长度、已完成搬运次数和每次搬运的数据量,确定第一缓存单元未写满数据,经DMA控制器搬运数据到第一缓存单元。
可选地,在数据搬运的过程中,软件可以主动停止数据搬运。其中一种实现方式可以包括:在根据第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定第一缓存单元未写满数据之后,接收数据搬运的结束请求;控制DMA控制器停止搬运数据到第一缓存单元。如果没有接收到数据搬运的结束请求,则继续进行数据搬运。
另外,对于已经搬运到第一缓存单元的数据,软件需要将第一缓存单元中的数据搬运走进行处理,这样才可以结束整个数据搬运过程。
可选地,根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运的一种实现方式可以包括:根据第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定第一缓存单元已写满数据,根据第二缓存单元的地址,经DMA控制器搬运数据到第二缓存单元。同时,通知处理器将第一缓存单元中的数据搬运走进行处理。
可选地,在通知处理器将第一缓存单元中的数据搬运走进行处理之后,决定是否停止数据搬运的另一种实现方式可以包括:由软件检查已完成搬运次数是否已经达到配置的目标搬运次数,若达到,则数据搬运过程结束,否则继续数据搬运到第二缓存单元。
例如,如图4所示的数据搬运过程的示意图,由软件配置双Buffer(即两个缓存单元)的地址、长度以及目标搬运次数。软件触发数据搬运过程后,外部设备通过与DMA控制器之间的硬件握手信号触发开始数据搬运。判断当前Buffer是否已经写满,若已经写满,则硬件产生中断信号给处理器,并自动切换到另外一个Buffer,软件收到中断后把当前Buffer中的数据搬运走。然后判断已完成搬运次数是否达到目标搬运次数,若达到目标搬运次数,则结束数据搬运过程,若未达到目标搬运次数,则继续进行数据搬运。若当前Buffer未写满,则判断软件是否触发了数据搬运的结束请求,若没有触发数据搬运的结束请求,则继续进行数据搬运,若已经触发数据搬运的结束请求,则软件将当前Buffer中的数据搬运走,并结束整个数据搬运过程。
步骤204,接收所述DMA控制器完成每次搬运的反馈信号。
步骤205,根据所述反馈信号,确定所述已完成搬运次数。
步骤206,根据所述已完成搬运次数达到了所述目标搬运次数,控制所述DMA控制器产生中断信号发送给所述处理器。
依据本发明实施例,通过获取搬运配置信息,搬运配置信息包括目标搬运次数,向DMA控制器发送每次数据搬运的请求信号,经所述DMA控制器搬运数据到至少两个缓存单元,接收所述DMA控制器完成每次搬运的反馈信号,根据所述反馈信号,确定所述已完成搬运次数,根据所述已完成搬运次数达到了所述目标搬运次数,控制所述DMA控制器产生中断信号发送给所述处理器,使得数据搬运不再依赖处理器响应中断的方式,外部设备可以直接触发DMA控制器进行多次数据搬运,避免每次数据搬运都需等待处理器响应的问题,实现了持续不间断的数据搬运的目的,解决了处理器响应不及时导致数据丢失的问题。
进一步,通过至少两个缓存单元中第一缓存单元写满数据后切换到第二缓存单元继续写入,第一缓存单元写满数据后通知处理器进行处理,以清空写满数据的第一缓存单元,由硬件实现缓存单元的自动切换,实现持续不间断的数据搬运,保证周期性的、或频繁的、或持续的数据不会丢失。
实施例3
本发明实施例三提供了一种计算处理装置,用于实现数据搬运,所述计算处理装置包括外部设备、DMA控制器、处理器;所述外部设备用于:获取搬运配置信息,所述搬运配置信息包括目标搬运次数,触发所述DMA控制器进行多次数据搬运,确定所述DMA控制器的已完成搬运次数,根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
所述外部设备在触发所述DMA控制器进行多次数据搬运时具体用于:向DMA控制器发送每次数据搬运的请求信号;接收所述DMA控制器完成每次搬运的反馈信号。
所述外部设备在确定所述DMA控制器的已完成搬运次数时具体用于:根据所述反馈信号,确定所述已完成搬运次数。
所述外部设备在触发所述DMA控制器进行多次数据搬运时具体用于:经所述DMA控制器搬运数据到至少两个缓存单元,其中,所述至少两个缓存单元中第一缓存单元写满数据后切换到第二缓存单元继续写入,所述第一缓存单元写满数据后通知处理器进行处理,以清空写满数据的第一缓存单元。
所述搬运配置信息还包括每次搬运的数据量以及所述至少两个缓存单元的地址和长度,所述外部设备在经所述DMA控制器搬运数据到至少两个缓存单元时具体用于:根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运。
所述外部设备在根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运时具体用于:根据所述第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元未写满数据;经所述DMA控制器搬运数据到所述第一缓存单元。
所述外部设备还用于:在根据所述第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元未写满数据之后,接收数据搬运的结束请求;控制所述DMA控制器停止搬运数据到所述第一缓存单元。
所述外部设备在根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运时具体用于:根据所述第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元已写满数据;根据所述第二缓存单元的地址,经所述DMA控制器搬运数据到所述第二缓存单元。
所述外部设备在通知处理器数据搬运完成时具体用于:控制所述DMA控制器产生中断信号发送给所述处理器。
依据本发明实施例,通过外部设备获取搬运配置信息,搬运配置信息包括目标搬运次数,触发DMA控制器进行多次数据搬运,确定DMA控制器的已完成搬运次数,根据已完成搬运次数达到了目标搬运次数,通知处理器数据搬运完成,使得数据搬运不再依赖处理器响应中断的方式,外部设备可以直接触发DMA控制器进行多次数据搬运,避免每次数据搬运都需等待处理器响应的问题,实现了持续不间断的数据搬运的目的,解决了处理器响应不及时导致数据丢失的问题。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图5示出了可以实现根据本发明的方法的计算处理设备。该计算处理设备传统上包括处理器1010和以存储器1020形式的计算机程序产品或者计算机可读介质。存储器1020可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器1020具有用于执行上述方法中的任何方法步骤的程序代码1031的存储空间1030。例如,用于程序代码的存储空间1030可以包括分别用于实现上面的方法中的各种步骤的各个程序代码1031。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图6所述的便携式或者固定存储单元。该存储单元可以具有与图5的计算处理设备中的存储器1020类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码1031’,即可以由例如诸如1010之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本发明的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种数据搬运方法,其特征在于,应用于外部设备,包括:
获取搬运配置信息,所述搬运配置信息包括目标搬运次数;
触发所述DMA控制器进行多次数据搬运;
确定所述DMA控制器的已完成搬运次数;
根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
2.根据权利要求1所述的方法,其特征在于,所述触发所述DMA控制器进行多次数据搬运包括:
向所述DMA控制器发送每次数据搬运的请求信号;
接收所述DMA控制器完成每次搬运的反馈信号。
3.根据权利要求2所述的方法,其特征在于,所述确定所述DMA控制器的已完成搬运次数包括:
根据所述反馈信号,确定所述已完成搬运次数。
4.根据权利要求1所述的方法,其特征在于,所述触发所述DMA控制器进行多次数据搬运包括:
经所述DMA控制器搬运数据到至少两个缓存单元,其中,所述至少两个缓存单元中第一缓存单元写满数据后切换到第二缓存单元继续写入,所述第一缓存单元写满数据后通知处理器进行处理,以清空写满数据的第一缓存单元。
5.根据权利要求4所述的方法,其特征在于,所述搬运配置信息还包括每次搬运的数据量以及所述至少两个缓存单元的地址和长度,所述经所述DMA控制器搬运数据到至少两个缓存单元包括:
根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运。
6.根据权利要求5所述的方法,其特征在于,所述根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运包括:
根据所述第一缓存单元的长度、已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元未写满数据;
经所述DMA控制器搬运数据到所述第一缓存单元。
7.根据权利要求6所述的方法,其特征在于,在所述根据所述第一缓存单元的长度、已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元未写满数据之后,所述方法还包括:
接收数据搬运的结束请求;
控制所述DMA控制器停止搬运数据到所述第一缓存单元。
8.根据权利要求5所述的方法,其特征在于,所述根据所述已完成搬运次数、每次搬运的数据量以及所述至少两个缓存单元的地址和长度,确定用于写入数据的缓存单元进行数据搬运包括:
根据所述第一缓存单元的长度、所述已完成搬运次数和每次搬运的数据量,确定所述第一缓存单元已写满数据;
根据所述第二缓存单元的地址,经所述DMA控制器搬运数据到所述第二缓存单元。
9.根据权利要求1所述的方法,其特征在于,所述通知处理器数据搬运完成包括:
控制所述DMA控制器产生中断信号发送给所述处理器。
10.一种计算处理装置,用于实现数据搬运,其特征在于,所述计算处理装置包括外部设备、DMA控制器、处理器;
所述外部设备用于:获取搬运配置信息,所述搬运配置信息包括目标搬运次数;触发所述DMA控制器进行多次数据搬运;确定所述DMA控制器的已完成搬运次数;根据所述已完成搬运次数达到了所述目标搬运次数,通知处理器数据搬运完成。
11.一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行根据权利要求1-9中的任一个所述的数据搬运方法。
12.一种计算机可读介质,其中存储了如权利要求11所述的计算机程序。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/088163 WO2020232705A1 (zh) | 2019-05-23 | 2019-05-23 | 数据搬运方法、计算处理装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111615692A true CN111615692A (zh) | 2020-09-01 |
Family
ID=72202674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980008842.2A Pending CN111615692A (zh) | 2019-05-23 | 2019-05-23 | 数据搬运方法、计算处理装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111615692A (zh) |
WO (1) | WO2020232705A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112601123A (zh) * | 2020-11-11 | 2021-04-02 | 博流智能科技(南京)有限公司 | 嵌入式播放***及方法 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器***的预存储dma装置 |
CN114880259A (zh) * | 2022-07-12 | 2022-08-09 | 北京象帝先计算技术有限公司 | 数据处理方法、装置、***、电子设备及存储介质 |
CN114968863A (zh) * | 2022-05-26 | 2022-08-30 | 无锡华大国奇科技有限公司 | 一种基于dma控制器的数据传输方法 |
WO2023123914A1 (zh) * | 2021-12-31 | 2023-07-06 | 深圳云天励飞技术股份有限公司 | 三维卷积神经网络的握手***、方法及相关设备 |
WO2023178859A1 (zh) * | 2022-03-21 | 2023-09-28 | 奥比中光科技集团股份有限公司 | 一种dma数据搬运方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240688A1 (en) * | 2004-04-27 | 2005-10-27 | Filip Moerman | Efficient data transfer from an ASIC to a host using DMA |
CN101170382A (zh) * | 2007-12-03 | 2008-04-30 | 北京中星微电子有限公司 | 一种数据传输的方法和*** |
CN101452427A (zh) * | 2008-11-19 | 2009-06-10 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输***及方法和一种中央处理器 |
CN101645052A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种快速dma乒乓缓存方法 |
JP2012137844A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Semiconductor Ltd | 半導体装置及び制御方法 |
CN103034599A (zh) * | 2012-12-12 | 2013-04-10 | 深圳国微技术有限公司 | 安全dma控制器、soc***及其数据搬运方法 |
CN104461970A (zh) * | 2013-09-18 | 2015-03-25 | 中兴通讯股份有限公司 | Dma控制器、移动终端以及数据搬运方法 |
CN106155960A (zh) * | 2016-06-29 | 2016-11-23 | 广州慧睿思通信息科技有限公司 | 基于gpio握手和edma的uart串口通信方法 |
CN106339338A (zh) * | 2016-08-31 | 2017-01-18 | 天津国芯科技有限公司 | 一种可提高***性能的数据传输方法及装置 |
CN107562659A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 一种数据搬移装置及方法 |
CN109074335A (zh) * | 2017-12-29 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
CN109558348A (zh) * | 2018-12-19 | 2019-04-02 | 深圳开立生物医疗科技股份有限公司 | 数据搬移方法、装置及*** |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***和dma控制器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835788A (en) * | 1996-09-18 | 1998-11-10 | Electronics For Imaging | System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
-
2019
- 2019-05-23 CN CN201980008842.2A patent/CN111615692A/zh active Pending
- 2019-05-23 WO PCT/CN2019/088163 patent/WO2020232705A1/zh active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050240688A1 (en) * | 2004-04-27 | 2005-10-27 | Filip Moerman | Efficient data transfer from an ASIC to a host using DMA |
CN101170382A (zh) * | 2007-12-03 | 2008-04-30 | 北京中星微电子有限公司 | 一种数据传输的方法和*** |
CN101645052A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种快速dma乒乓缓存方法 |
CN101452427A (zh) * | 2008-11-19 | 2009-06-10 | 北京红旗胜利科技发展有限责任公司 | 一种dma数据传输***及方法和一种中央处理器 |
JP2012137844A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Semiconductor Ltd | 半導体装置及び制御方法 |
CN103034599A (zh) * | 2012-12-12 | 2013-04-10 | 深圳国微技术有限公司 | 安全dma控制器、soc***及其数据搬运方法 |
CN104461970A (zh) * | 2013-09-18 | 2015-03-25 | 中兴通讯股份有限公司 | Dma控制器、移动终端以及数据搬运方法 |
CN106155960A (zh) * | 2016-06-29 | 2016-11-23 | 广州慧睿思通信息科技有限公司 | 基于gpio握手和edma的uart串口通信方法 |
CN107562659A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 一种数据搬移装置及方法 |
CN106339338A (zh) * | 2016-08-31 | 2017-01-18 | 天津国芯科技有限公司 | 一种可提高***性能的数据传输方法及装置 |
CN109074335A (zh) * | 2017-12-29 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
CN109558348A (zh) * | 2018-12-19 | 2019-04-02 | 深圳开立生物医疗科技股份有限公司 | 数据搬移方法、装置及*** |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***和dma控制器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112601123A (zh) * | 2020-11-11 | 2021-04-02 | 博流智能科技(南京)有限公司 | 嵌入式播放***及方法 |
WO2023123914A1 (zh) * | 2021-12-31 | 2023-07-06 | 深圳云天励飞技术股份有限公司 | 三维卷积神经网络的握手***、方法及相关设备 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器***的预存储dma装置 |
CN114661644B (zh) * | 2022-02-17 | 2024-04-09 | 之江实验室 | 辅助3d架构近存计算加速器***的预存储dma装置 |
WO2023178859A1 (zh) * | 2022-03-21 | 2023-09-28 | 奥比中光科技集团股份有限公司 | 一种dma数据搬运方法及装置 |
CN114968863A (zh) * | 2022-05-26 | 2022-08-30 | 无锡华大国奇科技有限公司 | 一种基于dma控制器的数据传输方法 |
CN114880259A (zh) * | 2022-07-12 | 2022-08-09 | 北京象帝先计算技术有限公司 | 数据处理方法、装置、***、电子设备及存储介质 |
CN114880259B (zh) * | 2022-07-12 | 2022-09-16 | 北京象帝先计算技术有限公司 | 数据处理方法、装置、***、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020232705A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111615692A (zh) | 数据搬运方法、计算处理装置、设备及存储介质 | |
US10334047B2 (en) | Remote direct memory access with reduced latency | |
US9043498B2 (en) | Automatic pinning and unpinning of virtual pages for remote direct memory access | |
CN110741342A (zh) | 区块链交易提交排序 | |
JP6408514B2 (ja) | 複数のメモリ領域にわたる強順序付けされたデバイス、および排他的トランザクションの自動順序付け | |
CN111475483B (zh) | 数据库迁移方法、装置及计算设备 | |
WO2018232736A1 (zh) | 内存访问技术及计算机*** | |
US20160274820A1 (en) | Signal transfer device, information processing apparatus, signal transfer method, and non-transitory recording medium | |
US11074203B2 (en) | Handling an input/output store instruction | |
JP2018531471A6 (ja) | 分散キャッシュライブマイグレーション | |
US20110246667A1 (en) | Processing unit, chip, computing device and method for accelerating data transmission | |
US9490988B2 (en) | Continuous information transfer with reduced latency | |
US9619336B2 (en) | Managing production data | |
CN104683486A (zh) | 分布式***中处理同步消息的方法、装置、分布式*** | |
CN109034668B (zh) | Etl任务调度方法、装置、计算机设备及存储介质 | |
US20140310458A1 (en) | Data transferring method and apparatus and storage system | |
CN109995863A (zh) | 一种动态资源下载方法、装置、电子设备及存储介质 | |
CN110764710A (zh) | 低延迟高iops的数据访问方法与存储*** | |
CN117201518B (zh) | 数据的传输方法、***、装置、存储介质和电子设备 | |
JP6940283B2 (ja) | Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム | |
CN110489359B (zh) | 一种数据传输控制方法及*** | |
JP2000040057A (ja) | 計算機システム、バッファ制御装置及び転送方法 | |
JP6384359B2 (ja) | 分散共有メモリを有する情報処理装置、方法、および、プログラム | |
CN117632794A (zh) | 调用待决高速缓存行逐出 | |
CN113934677A (zh) | 数据处理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200901 |