一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据传输方法、系统及计算机可读存储介质与流程

2022-06-08 16:47:47 来源:中国专利 TAG:


1.本发明涉及数据传输技术领域,尤其涉及一种数据传输方法、系统及计算机可读存储介质。


背景技术:

2.dma(direct memory access,存储器直接访问)是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过cpu(central processing unit,中央处理器),也不需要cpu干预。整个数据传输操作在一个称为“dma控制器”的控制下进行。cpu除了在数据传输开始和结束时做一点处理外,在传输过程中还可以进行其他的工作。
3.现有的dma普遍应用于大数据传输,无法实现在传输过程中对数据进行运算操作的需求,对数据的运算操作一般在cpu进行,cpu在对数据进行运算时,要不断的在cpu缓存和内存之间进行数据搬移以及相应的缓存表的置位,这样,占用了很长的cpu时间,降低了整个计算机系统的性能。


技术实现要素:

4.有鉴于此,本发明提出了一种数据传输方法、系统及计算机可读存储介质,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
5.基于上述目的,本发明实施例的一方面提供了一种数据传输方法,具体包括如下步骤:
6.将cpu下发的至少一组操作指令存入第一存储器;
7.按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器;
8.响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作;
9.响应于所述读取的操作指令被执行完成,判断所述读取的操作指令是否为所述第一存储器中的最后一组操作指令;
10.若所述读取的操作指令为所述第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知所述cpu全部dma操作完成。
11.在一些实施方式中,方法进一步包括:
12.若所述读取的操作指令不为所述第一存储器中的最后一组操作指令,则返回按照规定顺序依次读取每一组操作指令的步骤以读取下一组操作指令。
13.在一些实施方式中,所述指令信息包括操作指令的源地址、目的地址、操作方式、数据长度中的全部以及操作数和完成标志中的任意一个或多个,其中,所述操作方式包括:只读、读和写、异或、或、加、减、比较并交换中的任意一种。
14.在一些实施方式中,根据所述读取的操作指令的指令信息执行对应的数据传输操作包括:
15.若是所述操作指令的操作方式为只读,则dma从源地址读取数据并保存到第二存储器;
16.若是所述操作指令的操作方式为读和写,则dma从源地址读取数据并写到目的地址;
17.若是所述操作指令的操作方式为异或,则dma从源地址读取数据,并将所述数据与第一操作数进行异或运算,并将异或运算结果写到目的地址;
18.若是所述操作指令的操作方式为或,则dma从源地址读取数据,并将所述数据与第二操作数进行或运算,并将或运算结果写到目的地址;
19.若是所述操作指令的操作方式为加,则dma从源地址读取数据,并将所述数据与第三操作数进行加运算,并将加运算结果写到目的地址;
20.若是所述操作指令的操作方式为减,则dma从源地址读取数据,并将所述数据与第四操作数进行减运算,并将减运算结果写到目的地址;
21.若是所述操作指令的操作方式为比较并交换,则dma从源地址读取数据,并将所述数据与对比数据进行比较,并基于比较结果判断是否将交换数据写到目的地址。
22.在一些实施方式中,基于比较结果判断是否将交换数据写到目的地址包括:
23.若所述数据与对比数据相同,则将交换数据写入目的地址;
24.若所述数据与对比数据不相同,则无需将交换数据写入目的地址。
25.在一些实施方式中,将cpu下发的至少一组操作指令存入第一存储器,包括:
26.在第一存储器划分多个地址空间,将cpu下发的多组操作指令依次存入划分的多个地址空间。
27.在一些实施方式中,按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器包括:
28.按照所述地址空间的先后顺序依次从对应的地址空间读取存入所述对应的地址空间的操作指令;
29.判断读取的操作指令是否有效;
30.若所述读取的操作指令有效,则基于所述读取的操作指令配置dma控制器;
31.若所述读取的操作指令无效,则返回按照所述地址空间的先后顺序依次从对应的地址空间读取存入所述对应的地址空间的操作指令的步骤以读取下一个地址空间中的操作指令。
32.在一些实施方式中,响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作之后,进一步包括:
33.基于所述对应的数据传输操作的执行结果生成对应的标志信息,并将所述标志信息发送给cpu。
34.本发明实施例的另一方面,还提供了一种数据传输系统,包括:
35.存入模块,所述存入模块配置为将cpu下发的至少一组操作指令存入第一存储器;
36.配置模块,所述配置模块配置为按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器;
37.执行模块,所述执行模块配置为响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作;
38.判断模块,所述判断模块配置为响应于所述读取的操作指令被执行完成,判断所述读取的操作指令是否为所述第一存储器中的最后一组操作指令;
39.所述判断模块还配置为若所述读取的操作指令为所述第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知所述cpu全部dma操作完成。
40.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
41.本发明至少具有以下有益技术效果:本发明方案通过将cpu下发的至少一组操作指令存入第一存储器;按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器;响应于dma控制器配置完成,根据读取的操作指令的指令信息执行对应的数据传输操作;在读取的操作指令被执行完成后,判断读取的操作指令是否为第一存储器中的最后一组操作指令;若读取的操作指令为所述第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知cpu全部dma操作完成,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
43.图1为本发明提供的数据传输方法的一实施例的框图;
44.图2为本发明提供的数据传输方法进行数据传输的一实施例的示意图;
45.图3为本发明提供的数据传输系统的一实施例的示意图;
46.图4为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
47.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
48.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
49.基于上述目的,本发明实施例的第一个方面,提出了一种数据传输方法的实施例。如图1所示,其包括如下步骤:
50.步骤s101、将cpu下发的至少一组操作指令存入第一存储器;
51.步骤s103、按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器;
52.步骤s105、响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作;
53.步骤s107、响应于所述读取的操作指令被执行完成,判断所述读取的操作指令是否为所述第一存储器中的最后一组操作指令;
54.步骤s109、若所述读取的操作指令为所述第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知所述cpu全部dma操作完成。
55.如图2所示,为本发明提供的数据传输方法进行数据传输的架构图。
56.cpu用来通过互联总线(interconnect bus)下发操作指令以及获取dma状态;dma控制器(engine)用来配置并启动dma;sram(static random-access memory,静态随机存取存储器)用于暂存cpu下发的操作指令;buffer(缓存)/ddr(double data rate sdram,双倍速率同步动态随机存储器)/dram(dynamic random access memory,动态随机存取存储器)为外部存储设备,包括源地址和目的地址,用于dma来获取、存放数据。
57.结合图1和图2对本实例的数据传输方法进行说明。
58.步骤s101中,cpu通过llpp(low latency peripheral port,低延迟外设接口)接口下发操作指令,操作指令通过互联总线(interconnect bus)及axi(advanced extensible interface,一种总线协议,是一种面向高性能、高带宽、低延迟的片内总线)转到第一存储器,第一存储器用于存放操作指令,包括dram和sram等存储器,但不限于此。本实施例选用sram,sram容量小,读写速度快。
59.步骤s103中,可以按照操作指令存入第一存储器的先后顺序或操作指令存入第一存储器后对应的地址的前后顺序读取操作指令,基于操作指令的内容配置dma控制器,一组操作指令配置一次dma控制器,对应一次dma数据传输操作。
60.步骤s105中,dma控制器配置完成后,读取的操作指令包含指令信息执行对应的数据传输操作,数据传输操作包括只读、读和写、异或、或、加、减、比较并交换中的任意一种。
61.步骤s107和s109中,每执行完一组操作指令对应的操作后,判断当前组操作指令是否为第一存储器中的最后一组操作指令,若读取的操作指令为第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知cpu全部dma操作完成,并且清空第一存储器中的全部操作指令以等待cpu继续下发操作指令。
62.通过上述实施例,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
63.在一些实施方式中,方法进一步包括:
64.若所述读取的操作指令不为所述第一存储器中的最后一组操作指令,则返回按照规定顺序依次读取每一组操作指令的步骤以读取下一组操作指令。
65.具体的,每执行完一组操作指令对应的操作后,判断当前组操作指令是否为第一存储器中的最后一组操作指令,若读取的操作指令不为第一存储器中的最后一组操作指令,继续从第一存储器中读取下一组操作指令以进行下一次的dma数据传输操作。
66.通过上述实施例,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
67.在一些实施方式中,所述指令信息包括操作指令的源地址、目的地址、操作方式、数据长度中的全部以及操作数和完成标志中的任意一个或多个,其中,所述操作方式包括:只读、读和写、异或、或、加、减、比较并交换中的任意一种。
68.具体的,源地址代表存放源数据的位置,目的地址表示获取到源数据后,dma将源数据传输到的位置,操作方式表示dma在进行数据传输时要执行的具体操作,可以是读或读出和写入,也可以对读出的数据进行数据运算后再写入,数据长度表示一次dma操作中包含
数据的数量,操作数表示参加运算的数据及其所在的单元地址,读、读和写操作不包含操作数,其他的操作只读、读和写、异或、或、加、减、比较并交换等运算操作包含操作数,完成标志表示本组操作指令中如果包含完成标志,指令执行完成后要将执行结果返回给cpu,等待cpu回复后,清除该标志。
69.通过上述实施例,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
70.在一些实施方式中,根据所述读取的操作指令的指令信息执行对应的数据传输操作包括:
71.若是所述操作指令的操作方式为只读,则dma从源地址读取数据并保存到第二存储器;
72.若是所述操作指令的操作方式为读和写,则dma从源地址读取数据并写到目的地址;
73.若是所述操作指令的操作方式为异或,则dma从源地址读取数据,并将所述数据与第一操作数进行异或运算,并将异或运算结果写到目的地址;
74.若是所述操作指令的操作方式为或,则dma从源地址读取数据,并将所述数据与第二操作数进行或运算,并将或运算结果写到目的地址;
75.若是所述操作指令的操作方式为加,则dma从源地址读取数据,并将所述数据与第三操作数进行加运算,并将加运算结果写到目的地址;
76.若是所述操作指令的操作方式为减,则dma从源地址读取数据,并将所述数据与第四操作数进行减运算,并将减运算结果写到目的地址;
77.若是所述操作指令的操作方式为比较并交换,则dma从源地址读取数据,并将所述数据与对比数据进行比较,并基于比较结果判断是否将交换数据写到目的地址。
78.具体的,根据指令信息中的操作方式的不同,dma可以在数据传输过程中执行相应的运算操作。
79.例如:若是操作方式为只读,则dma从源地址读取数据并保存到第二存储器,第二存储器为外部存储设备,可以为buffer/ddr/dram等;若是操作方式为读和写,则dma从源地址读取数据并写到目的地址;若是操作方式为异或,则dma从源地址读取数据,将数据与第一操作数进行异或运算之后,将异或运算结果写到目的地址;若是操作方式为或,则dma从源地址读取数据,将数据与第二操作数进行或运算之后,将或运算结果写到目的地址;若是操作方式为加,则dma从源地址读取数据,将读取的数据与第三操作数进行加运算之后,将加运算结果写到目的地址;若是操作方式为减,则dma从源地址读取数据,将读取的数据与第四操作数进行减运算之后,并将减运算结果写到目的地址;若是操作方式为比较并交换,则dma从源地址读取数据,将读取的数据与对比数据进行比较,基于比较结果判断是否将交换数据写到目的地址。
80.通过上述实施例,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
81.在一些实施方式中,基于比较结果判断是否将交换数据写到目的地址包括:
82.若所述数据与对比数据相同,则将交换数据写入目的地址;
83.若所述数据与对比数据不相同,则无需将交换数据写入目的地址。
84.具体的,若所读取的数据与对比数据相同,则将交换数据写入目的地址;若读取的数据与对比数据不相同,则不将交换数据写入目的地址,指令执行结束。
85.通过上述实施例,实现了dma在数据传输过程中对传输数据的运算操作,减少了对cpu资源的占用,提高了计算机系统的运行性能。
86.在一些实施方式中,将cpu下发的至少一组操作指令存入第一存储器,包括:
87.在第一存储器划分多个地址空间,将cpu下发的多组操作指令依次存入划分的多个地址空间。
88.具体的,在第一存储器划分多个地址空间,地址空间的划分可以基于第一存储器的容量划分也可以根据拟最多存放的操作指令的数量来划分,每一个地址空间表示一段地址范围,每一个地址空间用于存放一组操作指令,将cpu下发的多组操作指令依次存入划分的多个地址空间。
89.cpu在下发操作指令时,可以每次下发一组操作指令,也可以同时下发多组操作指令,下发的操作指令的组数小于等于地址空间的个数。操作指令经过互联总线(interconnect bus)及axi总线协议后会转换成规定格式的操作指令存入第一存储器。
90.在一些实施方式中,按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器包括:
91.按照所述地址空间的先后顺序依次从对应的地址空间读取存入所述对应的地址空间的操作指令;
92.判断读取的操作指令是否有效;
93.若所述读取的操作指令有效,则基于所述读取的操作指令配置dma控制器;
94.若所述读取的操作指令无效,则返回按照所述地址空间的先后顺序依次从对应的地址空间读取存入所述对应的地址空间的操作指令的步骤以读取下一个地址空间中的操作指令。
95.具体的,操作指令包含有效位,基于有效位判断当前操作指令是否有效,设置有效位方便cpu批量下发操作指令。
96.例如,当前第一存储器划分了8个地址空间,那么可以最多存放8组操作指令,cpu当前有5组操作指令要下发到第一存储器,cpu可以一组一组的下发,也可以下发5组,可以直接在下发操作指令时下发8条,将其中3组的操作指令设置为无效的。
97.在一些实施方式中,响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作之后,进一步包括:
98.基于所述对应的数据传输操作的执行结果生成对应的标志信息,并将所述标志信息发送给cpu。
99.一次dma操作完成后,根据指令信息中是否包含完成标志,来选择是否记录操作的完成情况、溢位情况(若加运算或减运算下产生溢位,则将该信号拉高)及交换情况(若比较并交换运算下,产生了交换,则将此信号拉高)。
100.基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种数据传输系统,包括:
101.存入模块110,所述存入模块110配置为将cpu下发的至少一组操作指令存入第一存储器;
102.配置模块120,所述配置模块120配置为按照规定顺序依次读取每一组操作指令,并基于读取的操作指令配置dma控制器;
103.执行模块130,所述执行模块130配置为响应于dma控制器配置完成,根据所述读取的操作指令的指令信息执行对应的数据传输操作;
104.判断模块140,所述判断模块140配置为响应于所述读取的操作指令被执行完成,判断所述读取的操作指令是否为所述第一存储器中的最后一组操作指令;
105.所述判断模块140还配置为若所述读取的操作指令为所述第一存储器中的最后一组操作指令,则发送中断信息给cpu以通知所述cpu全部dma操作完成。
106.基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。
107.本发明实施例还可以包括相应的计算机设备。计算机设备包括存储器、至少一个处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时执行上述任意一种方法。
108.其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的所述数据运算方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的数据运算方法。
109.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
110.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
111.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
112.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
113.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非
旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献