CN114328320A - 一种dma数据传输方法、装置及系统 - Google Patents

一种dma数据传输方法、装置及系统 Download PDF

Info

Publication number
CN114328320A
CN114328320A CN202111680524.6A CN202111680524A CN114328320A CN 114328320 A CN114328320 A CN 114328320A CN 202111680524 A CN202111680524 A CN 202111680524A CN 114328320 A CN114328320 A CN 114328320A
Authority
CN
China
Prior art keywords
data
cache region
dma
instruction
dma data
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
Application number
CN202111680524.6A
Other languages
English (en)
Inventor
王红宇
杨立杰
刘家玮
胡志臣
苗学问
张军
许葳稚
赵砚博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Aerospace Measurement and Control Technology Co Ltd
Original Assignee
Beijing Aerospace Measurement and Control Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Aerospace Measurement and Control Technology Co Ltd filed Critical Beijing Aerospace Measurement and Control Technology Co Ltd
Priority to CN202111680524.6A priority Critical patent/CN114328320A/zh
Publication of CN114328320A publication Critical patent/CN114328320A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

本发明实施例涉及一种DMA数据传输方法、装置及系统,DMA数据传输方法包括:接收DMA数据传输指令,DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令;基于DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区和第二缓存区中,以实现将第一设备数据发送至第二设备;基于DMA数据接收指令,交替读取预划分的第一缓存区和第二缓存区所缓存的第二设备数据,以实现第一设备接收所述第二设备数据。由此,在DMA数据传输时,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。

Description

一种DMA数据传输方法、装置及系统
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种DMA数据传输方法、装置及系统。
背景技术
目前,数据采集处理芯片的性能逐渐提高,对数据传输速度提出来更高的要求,具备足够高的数据传输速度,才能满足对高性能测试对象的测试要求。
相关技术中,为了提高数据传输速度,通常采用DMA数据传输方式。在DMA正常工作中,当需接收数据时,外部设备数据准备好后,将数据写入至内存中,DMA控制器获取CPU的控制权,以读取到内存中的数据;当需发送数据时,DMA控制器获取CPU的控制权,将数据写入至内存中,以使外部设备读取到内存中的数据,数据传输完成后,CPU获取控制权,至此完成一次的数据接收和发送。
上述的DMA数据传输方式,虽然一定程度上提高了系统总体数据传输速度,但当DMA控制器数据传输速度固定时,为了进一步提高系统总体的数据传输速度,会采取增大DMA控制器单次传输的数据量的方法,以减少DMA控制器与CPU控制指令交互的时间。但由于随着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数据传输装置。
本发明实施例提供的一种DMA数据传输方法,包括接收DMA数据发送指令和DMA数据接收指令,基于DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区和第二缓存区,以实现将第一设备数据发送至第二设备;基于DMA数据接收指令,交替读取第一缓存区和第二缓存区所缓存的第二设备数据,以实现第一设备接收第二设备数据。通过上述方式,本发明在DMA数据传输时,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。
附图说明
图1为本发明实施例所提供的一个DMA数据传输装置的结构示意图;
图2为本发明实施例所提供的一个DMA数据发送过程的流程示意图;
图3为本发明实施例所提供的一个DMA数据接收过程的流程示意图;
图4为本发明实施例所提供的一个DMA数据传输方法的流程示意图;
图5为本发明实施例所提供的另一个DMA数据传输方法的流程示意图;
图6为本发明实施例所提供的一个数据传输系统的结构示意图;
图7为本发明实施例所提供的一个电子设备的结构示意图;
以上附图中:
100、DMA数据传输装置;10、缓存单元;101、第一缓存区;102、第二缓存区;20、DMA控制单元;30、AXI接口单元;40、缓存控制单元;
200、第一设备;300、第二设备;
400、电子设备;401、处理器;402、存储器;4021、操作系统;4022、应用程序;403、用户接口;404、网络接口;405、总线系统。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
参考图1,图1为本发明实施例所提供的一个DMA数据传输装置的结构示意图。本发明实施例提供的一个DMA数据传输装置100包括:缓存单元10、DMA控制单元20和缓存控制单元40。
缓存单元10包括预划分的第一缓存区101和第二缓存区102,第一缓存区101和第二缓存区102用于缓存第一设备200的第一设备数据和第二设备300的第二设备数据。
本实施例中,需要说明的是,DMA数据传输装置100为第一设备200和第二设备300之间的数据传输桥梁。本实施例中第一设备200可为下位机,第二设备300可为上位机,DMA数据传输装置100可设置于第一设备200中。第一设备数据为第一设备200的内存中的数据,第二设备数据为第二设备300的内存中的数据。本实施例中的缓存单元10可为片内RAM缓存单元。本实施例中通过将缓存单元10划分为第一缓存区101和第二缓存区102,以能够实现DMA控制器与第一设备200的CPU进行数据交互的同时,还可以进行第二设备300中第二设备数据的传输。
DMA控制单元20,用于接收DMA数据传输指令,DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令;
基于DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区101和第二缓存区102中,以实现将第一设备数据发送至第二设备300;
基于DMA数据接收指令,交替读取预划分的第一缓存区101和第二缓存区102所缓存的第二设备数据,以实现第一设备200接收第二设备数据。
本实施例中,需要说明的是,DMA控制单元20接收到DMA数据发送指令时,其目的是将第一设备200的内存中的第一设备数据写入至第一缓存区101和第二缓存区102中;DMA控制单元20接收到DMA数据接收指令时,其目的是读取第一缓存区101和第二缓存区102所缓存的第二设备300的内存中的第二设备数据。基于此,实现第一设备200和第二设备300之间的数据搬移。
本实施例中,DMA控制单元20集成于XDMA模块中,XDMA模块为一个集成PCIE和DMA功能的IP核,其具备PCIE总线协议控制以及DMA控制,封装了PCIE与DMA的控制逻辑,并开放了用户需要使用的功能接收,通过对PCIE总线和DMA控制单元20进行控制,以实现第一设备200的内存和第二设备300的内存之间的数据搬移。
本实施例的DMA数据传输装置100还包括AXI接口单元30,AXI接口单元30用于建立DMA控制单元20与第一缓存区101和第二缓存区102的连接关系,形成DMA控制单元20与第一缓存区101之间数据传输链路和DMA控制单元20与第二缓存区102之间数据传输链路。具体地说,当DMA控制单元20接收到数据发送指令时,根据AXI接口单元30切换至相应的缓存区,将第一设备数据交替写入至预划分的第一缓存区101和第二缓存区102,以实现第一设备数据发送至第二设备300;当DMA控制单元20接收到数据接收指令时,根据AXI接口单元30切换至相应的缓存区,交替读取第一缓存区101和第二缓存区102所缓存的第二设备数据,以实现第一设备200接收第二设备数据。
本实施例的DMA数据传输装置100还包括缓存控制单元40。其中,缓存控制单元40用于控制第二设备300的内存中的第二设备数据与第一缓存区101和第二缓存区102之间的数据传输,即缓存控制单元40既可以控制第二设备300的内存中的第二设备数据与第一缓存区101之间的数据传输,还可以控制第二设备300的内存中的第二设备数据与第二缓存区102之间的数据传输。
具体地说,缓存控制单元40用于接收DMA数据发送指令和DMA数据接收指令;
基于DMA数据发送指令,交替读取第一缓存区101和第二缓存区102所缓存的所第一设备数据,以实现将第一设备数据发送至第二设备300;
基于DMA数据接收指令,将第二设备数据交替写入至第一缓存区101和第二缓存区102中,以实现第一设备200接收第二设备数据。
本实施例中,需要说明的是,缓存控制单元40接收到DMA数据发送指令时,其目的是读取第一缓存区101和第二缓存区102所缓存的第一设备200的内存中的第一设备数据;缓存控制单元40接收到DMA数据接收指令时,其目的是将第二设备300的内存中的第二设备数据写入至第一缓存区101和第二缓存区102。基于此,实现第一设备200和第二设备300之间的数据搬移。
本实施例中,DMA控制单元20还用于:
将第一设备数据写入至第一缓存区101;
当第一缓存区101满足第一预设条件时,则切换至第一缓存区101,将第一设备数据写入至第一缓存区101;
当第二缓存区102满足第二预设条件时,则切换至第二缓存区102,将第二设备数据写入至第二缓存区102。
其中,本实施例中第一预设条件包括:第一缓存区101空闲且第二缓存区102完成第一设备数据写入;第二预设条件为:第二缓存区102空闲且第一缓存区101完成第一设备数据写入。
本实施例中,第一缓存区101空闲可指缓存控制单元40已成功读取到第一缓存区101所缓存的第一设备数据;第二缓存区102空闲可指第二缓存区102未被写入第一设备数据或缓存控制单元40已成功读取到第二缓存区102所缓存的第一设备数据。具体地说,当第一缓存区101完成第一设备数据写入且第二缓存区102未被写入第一设备数据时,切换至第二缓存区102,将第一设备数据写入至第二缓存区102;或当第一缓存区101完成第一设备数据写入且缓存控制单元40已成功读取到第二缓存区102所缓存的第一设备数据,将第一设备数据写入至第二缓存区102。
本实施例中,更具体地说,当第一缓存区101空闲且第二缓存区102完成第一设备数据写入时,则AXI接口单元30将DMA控制单元20与第二缓存区102的通信连接切换至DMA控制单元20与第一缓存区101的通信连接;同样的,若第二缓存区102空闲且第一缓存区101完成第一设备数据写入,则AXI接口单元30将DMA控制单元20与第一缓存区101的通信连接切换至DMA控制单元20与第二缓存区102的通信连接。
本实施例中,缓存控制单元40还用于:第一缓存区101已被写入第一设备数据后,当第一缓存区101满足第一预设条件时,则控制读取第二缓存区102中所缓存的第二设备数据;当第二缓存区102满足第二预设条件时,则控制读取第一缓存区101中所缓存的第二设备数据。
本实施例中,第一预设条件和第二预设条件与上述一致,本实施例在此不做赘述。
一个示例,参考图2,介绍一下DMA数据发送的过程,具体如下:
DMA控制单元20接收到DMA数据发送指令时,将第一个的第一设备数据写入至第一缓存区101中,当第一缓存区101完成第一个的第一设备数据写入且第二缓存区102未被写入数据时,AXI接口单元30切换至第二缓存区102,将第二个的第一设备数据写入至第二缓存区102中;
在将第二个的第一设备数据写入至第二缓存区102的过程中,缓存控制单元40根据接收到的DMA数据发送指令读取第一缓存区101所缓存的第一个的第一设备数据;
当第二缓存区102完成第二个的第一设备数据写入且缓存控制单元40已成功读取第一缓存区101中所缓存的第一个的第一设备数据时,AXI接口单元30切换至第一缓存区101,将第三个的第一设备数据写入至第一缓存区101中;
在将第三个的第一设备数据写入至第一缓存区101的过程中,缓存控制单元40读取第二缓存区102中所缓存的第二个的第一设备数据;
当第一缓存区101完成第三个的第一设备数据写入且缓存控制单元40已成功读取第二缓存区102中所缓存的第三个的第一设备数据时,AXI接口单元30切换至第二缓存区102,将第四个的第一设备数据写入至第二缓存区102中,以此类推,将所有第一设备数据交替写入至第一缓存区101和第二缓存区102中,以实现将第一设备200的第一设备数据发送至第二设备300。
本实施例中,DMA控制单元20还用于:
第一缓存区101已被写入第二设备数据后,当第一缓存区101满足第三预设条件时,则切换至第一缓存区101,读取第一缓存区101中的第二设备数据;当第二缓存区102满足第四预设条件时,则切换至第二缓存区102,读取第二缓存区102中的第二设备数据。
其中,本实施例中,第三预设条件为:第二缓存区102空闲且第一缓存区101完成第二设备数据写入;第四预设条件包括:第一缓存区101空闲且第二缓存区102完成第二设备数据写入。
本实施例中,第一缓存区101空闲可指DMA控制单元20已成功读取到第一缓存区101所缓存的第二设备数据;第二缓存区102空闲可指第二缓存区102未被写入第二设备数据或DMA控制单元20已成功读取到第二缓存区102所缓存的第二设备数据。具体地说,当第一缓存区101完成第二设备数据写入且第二缓存区102未被写入第二设备数据时,DMA控制单元20读取第一缓存区101中所缓存的第二设备数据;或当第一缓存区101完成第二设备数据写入且DMA控制单元20已成功读取到第二缓存区102所缓存的第二设备数据,DMA控制单元20读取第一缓存区101中所缓存的第二设备数据。
本实施例中,更具体地说,当第二缓存区102空闲且第一缓存区101完成第二设备数据写入,则AXI接口单元30将DMA控制单元20与第二缓存区102的通信连接切换至DMA控制单元20与第一缓存区101的通信连接;同样的,当第一缓存区101空闲且第二缓存区102完成第二设备数据写入,则AXI接口单元30将DMA控制单元20与第一缓存区101的通信连接切换至DMA控制单元20与第二缓存区102的通信连接。
本实施例中,缓存控制单元40还用于:
将第二设备数据写入至第一缓存区101中;
当第一缓存区101满足第三预设条件时,则切换至所述第二缓存区102,将第二设备数据写入至第一缓存区102;
当所述第二缓存区102满足第四预设条件时,则切换至第一缓存区101,将第二设备数据写入至第一缓存区101。
本实施例中,第三预设条件和第四预设条件与上述一致,本实施例中在此不做赘述。
一个示例,参考图3,介绍一下DMA数据接收的过程,具体如下:
缓存控制单元40接收到DMA数据接收指令时,将第一个的第二设备数据写入至第一缓存区101中,当第一缓存区101完成第一个的第二设备数据写入且第二缓存区102未被写入数据时,AXI接口单元30切换至第一缓存区101,DMA控制单元20根据接收到的DMA数据接收指令,读取第一缓存区101中所缓存的第一个的第二设备数据;
在DMA控制单元20读取第一缓存区101所缓存的第一个的第二设备数据的过程中,缓存控制单元40将第二个的第二设备数据写入至第二缓存区102;
当DMA控制单元20已成功读取第一缓存区101所缓存的第一个的第二设备数据且第二缓存区102完成第二个的第二设备数据写入时,AXI接口单元30切换至第二缓存区102,DMA控制单元20读取第二缓存区102中所缓存的第二个的第二设备数据;
在DMA控制单元20读取第二缓存区102中所缓存的第二个的第二设备数据过程中,缓存控制单元40将第三个的第二设备数据写入至第一缓存区101;
当第一缓存区101完成第三个的第二设备数据写入且DMA控制单元20已成功读取第二个缓存区所缓存的第二个的第二设备数据时,AXI接口单元30切换至第一缓存区101,DMA控制单元20读取第一缓存区101所缓存的第三个的第二设备数据,以此类推,交替读取第一缓存区101和第二缓存区102中所有第一设备数据,以实现第一设备200接收第二设备300的第二设备数据。
本发明实施例提供的一种DMA数据传输装置100,DMA控制单元20还用于:当读取到第一缓存区101或第二缓存区102的第二设备数据时,依据预设规则校验第二设备数据;
根据校验结果,交替读取第一缓存区101和第二缓存区102所缓存的第二设备数据。
本实施例中,预设规则为预设的校验规则,以校验所读取到的第二设备数据是否准确,从而提高数据传输的准确性。
本实施例中DMA控制单元20还用于:当校验第二设备数据成功后,继续交替读取第一缓存区101和第二缓存区102所缓存的第二设备数据;
当校验第二设备数据失败后,重新读取与校验失败对应的缓存区中的第二设备数据;
当重新读取次数小于预设次数阈值时,继续重新读取与校验失败对应的缓存区中的第二设备数据;
当重新读取次数大于等于预设次数阈值时,触发报警提示。
本实施例中,需要说明的是,预设次数阈值可根据实际需要进行设置,本实施例在此不做赘述。
本实施例中,还需要说明的是,当需将第一设备200的第一设备数据发送至第二设备300时,缓存控制单元40在读取到第一设备数据时对读取到的第一设备数据进行校验,缓存控制单元40的校验方法与DMA控制单元20校验所读取的第二设备数据的方法一致,本实施例在此不做赘述。
本实施例提供的一种DMA数据传输装置100,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。
参考图4,图4为本发明实施例提供的一个DMA数据传输方法的流程示意图。图4中所示的DMA数据传输方法应用于DMA控制单元20侧的数据发送和数据接收,具体如下:
S10:接收DMA数据传输指令,DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令。
S30:基于DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区101和第二缓存区102中,以实现将第一设备数据发送至第二设备300。
S50:基于DMA数据接收指令,交替读取预划分的第一缓存区101和第二缓存区102所缓存的第二设备数据,以实现第一设备200接收第二设备数据。
本实施例中,S10步骤、S30步骤和S50步骤均由DMA控制单元20执行,具体可参见上述描述,本实施例在此不做赘述。
本实施例中,S30步骤中将第一设备数据交替写入至预划分的第一缓存区101和第二缓存区102中包括:
将第一设备数据写入至第一缓存区101;
当第一缓存区101满足第一预设条件时,则切换至第一缓存区101,将第一设备数据写入至第一缓存区101;
当第二缓存区102满足第二预设条件时,则切换至第二缓存区102,将第一设备数据写入至第二缓存区102。
本实施例中,第一预设条件包括:第一缓存区101空闲且第二缓存区102完成第一设备数据写入;
第二预设条件为:第二缓存区102空闲且第一缓存区101完成第一设备数据写入。
本实施例中需要说明的是,第一缓存区101和第二缓存区102之间的切换由AXI接口单元30执行。
本实施例中,S50步骤中交替读取预划分的第一缓存区101和第二缓存区102所缓存的第二设备数据包括:
第一缓存区101已被写入第二设备数据后,当第一缓存区101满足第三预设条件时,则切换至第一缓存区101,读取第一缓存区101中的第二设备数据;当第二缓存区102满足第四预设条件时,则切换至第二缓存区102,读取第二缓存区102中的第二设备数据。
本实施例中,第三预设条件为:第二缓存区102空闲且第一缓存区101完成第二设备数据写入;
第四预设条件包括:第一缓存区101空闲且第二缓存区102完成第二设备数据写入。
S70:当读取到第一缓存区101或第二缓存区102的第二设备数据时,依据预设规则校验第二设备数据;
根据校验结果,交替读取第一缓存区101和第二缓存区102所缓存的第二设备数据。
本实施例中,预设规则为预设的校验规则,以校验所读取到的第二设备数据是否准确,从而提高数据传输的准确性。
本实施例中,S70步骤中根据校验结果,交替读取第一缓存区101和第二缓存区102所缓存的第二设备数据包括:
当校验第二设备数据成功后,执行交替读取第二设备数据步骤;
当校验第二设备数据失败后,重新读取与校验失败对应的缓存区中的第二设备数据;
当重新读取次数小于预设次数阈值时,继续重新读取与校验失败对应的缓存区中的第二设备数据;
当重新读取次数大于等于预设次数阈值时,触发报警提示。
本实施例中,需要说明的是,预设次数阈值可根据实际需要进行设置,本实施例在此不做赘述。
本发明实施例提供的一种DMA数据传输方法,在DMA数据传输时,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。
参考图5,图5为本发明实施例提供的另一个DMA数据传输方法的流程是示意图。图5中所示的DMA数据传输方法应用于缓存控制单元40侧的数据发送和数据接收,具体如下:
S20:接收DMA数据传输指令,DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令。
S40:基于DMA数据发送指令,交替读取预划分的第一缓存区101和第二缓存区102所缓存的第一设备数据,以实现将第一设备数据发送至第二设备数据。
S60:基于DMA数据接收指令,将第二设备数据交替写入至预划分的第一缓存区101和第二缓存区102中,以实现第一设备200接收第二设备数据。
本实施例中,S20步骤、S40步骤和S60步骤均由缓存控制单元40执行。
本实施例中,S40步骤中交替读取预划分的第一缓存区101和第二缓存区102所缓存的第一设备数据包括:
第一缓存区101已被写入第一设备数据后,当第一缓存区101满足第一预设条件时,则控制读取第二缓存区102中所缓存的第二设备数据;当第二缓存区102满足第二预设条件时,则控制读取第一缓存区101中所缓存的第二设备数据。
本实施例中,第一预设条件包括:第一缓存区101空闲且第二缓存区102完成第一设备数据写入;
第二预设条件为:第二缓存区102空闲且第一缓存区101完成第一设备数据写入。
本实施例中,S60步骤中将第二设备数据交替写入至预划分的第一缓存区101和第二缓存区102中包括:
将第二设备数据写入至第一缓存区101中;
当第一缓存区101满足第三预设条件时,则切换至所述第二缓存区102,将第二设备数据写入至第二缓存区102;
当所述第二缓存区102满足第四预设条件时,则切换至第一缓存区101,将第二设备数据写入至第一缓存区101。
本实施例中,第三预设条件为:第二缓存区102空闲且第一缓存区101完成第二设备数据写入;
第四预设条件包括:第一缓存区101空闲且第二缓存区102完成第二设备数据写入。
S80:当读取到第一缓存区101或第二缓存区102的第一设备数据时,依据预设规则校验第一设备数据;
根据校验结果,交替读取第一缓存区101和第二缓存区102所缓存的第一设备数据。
本实施例中,预设规则为预设的校验规则,以校验所读取到的第一设备数据是否准确,从而提高数据传输的准确性。
本实施例中,需要说明的是,缓存控制单元40侧校验所读取的第一设备数据的方法与DMA控制单元20校验所读取的第二设备数据的方法一致,本实施例中在此不做赘述。
本发明实施例提供的一种DMA数据传输方法,在DMA数据传输时,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。
参考图6,图6本发明实施例所提供的一个数据传输系统的结构示意图。本发明实施例提供的一种数据传输系统,包括第一设备200、第二设备300和DMA数据传输装置100,其中,DMA数据传输装置100设于第一设备200中。DMA数据传输装置100已在上述阐述,本实施例在此不做赘述。本实施例中,第一设备200可为下位机,第二设备300可为上位机。
本实施例提供的一种数据传输系统,在DMA数据传输时,减少了与外部设备数据的交互时间,从而提高系统总体的数据传输速度。
图7为本发明实施例提供的一种的电子设备的结构示意图,图7所示的电子设备400包括:至少一个处理器401、存储器402、至少一个网络接口404和其他用户接口403。电子设备400中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统405。
其中,用户接口403可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器402存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统4021和应用程序4022。
其中,操作系统4021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。
在本发明实施例中,通过调用存储器402存储的程序或指令,具体的,可以是应用程序4022中存储的程序或指令,处理器401用于执行各方法实施例所提供的方法步骤,例如包括:接收DMA数据传输指令,所述DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令;基于所述DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区和第二缓存区中,以实现将所述第一设备数据发送至所述第二设备;基于所述DMA数据接收指令,交替读取预划分的第一缓存区和第二缓存区所缓存的第二设备数据,以实现第一设备接收所述第二设备数据。
上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图7中所示的电子设备,可执行如图2-5中DMA数据传输方法的所有步骤,进而实现图2-5所示DMA数据传输方法的技术效果,具体请参照图2-5相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在DMA数据传输设备侧执行的DMA数据传输方法。
所述处理器用于执行存储器中存储的DMA数据传输程序,以实现以下在DMA数据传输设备侧执行的DMA数据传输方法的步骤:基于所述DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区和第二缓存区中,以实现将所述第一设备数据发送至所述第二设备;基于所述DMA数据接收指令,交替读取预划分的第一缓存区和第二缓存区所缓存的第二设备数据,以实现第一设备接收所述第二设备数据。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、电路、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、电路、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、电路、物品或者设备中还存在另外的相同要素。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种DMA数据传输方法,其特征在于,应用于第一设备侧,包括:
接收DMA数据传输指令,所述DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令;
基于所述DMA数据发送指令,将第一设备数据交替写入至预划分的第一缓存区和第二缓存区中,以实现将所述第一设备数据发送至所述第二设备;
基于所述DMA数据接收指令,交替读取预划分的第一缓存区和第二缓存区所缓存的第二设备数据,以实现所述第一设备接收所述第二设备数据。
2.根据权利要求1所述的DMA数据传输方法,其特征在于,所述将第一设备数据交替写入至预划分的第一缓存区和第二缓存区中,包括:
将所述第一设备数据写入至所述第一缓存区;
当所述第一缓存区满足第一预设条件时,则切换至所述第一缓存区,将所述第一设备数据写入至所述第一缓存区;
当所述第二缓存区满足第二预设条件时,则切换至所述第二缓存区,将所述第一设备数据写入至所述第二缓存区。
3.根据权利要求2所述的DMA数据传输方法,其特征在于,所述第一预设条件包括:所述第一缓存区空闲且所述第二缓存区完成所述第一设备数据写入;
所述第二预设条件为:所述第二缓存区空闲且所述第一缓存区完成所述第一设备数据写入。
4.根据权利要求1所述的DMA数据传输方法,其特征在于,所述交替读取预划分的第一缓存区和第二缓存区所缓存的第二设备数据包括:
所述第一缓存区已被写入所述第二设备数据后,当所述第一缓存区满足第三预设条件时,则切换至所述第一缓存区,读取所述第一缓存区中的所述第二设备数据;当所述第二缓存区满足第四预设条件时,则切换至所述第二缓存区,读取所述第二缓存区中的所述第二设备数据。
5.根据权利要求4所述的DMA数据传输方法,其特征在于,所述第三预设条件为:所述第二缓存区空闲且所述第一缓存区完成所述第二设备数据写入;
所述第四预设条件包括:所述第一缓存区空闲且所述第二缓存区完成所述第二设备数据写入。
6.根据权利要求1所述的DMA数据传输方法,其特征在于,所述方法还包括:
当读取到所述第一缓存区或所述第二缓存区的所述第二设备数据时,依据预设规则校验所述第二设备数据;
根据校验结果,交替读取所述第一缓存区和所述第二缓存区所缓存的所述第二设备数据。
7.根据权利要求6所述的DMA数据传输方法,其特征在于,所述根据校验结果,交替读取所述第一缓存区和所述第二缓存区所缓存的所述第二设备数据包括:
当校验所述第二设备数据成功后,执行交替读取所述第二设备数据步骤;
当校验所述第二设备数据失败后,重新读取与校验失败对应的缓存区中的所述第二设备数据;
当重新读取次数小于预设次数阈值时,继续重新读取与校验失败对应的缓存区中的所述第二设备数据;
当重新读取次数大于等于所述预设次数阈值时,触发报警提示。
8.一种DMA数据传输方法,其特征在于,应用于第二设备侧,包括:
接收DMA数据传输指令,所述DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令。
基于所述DMA数据发送指令,交替读取预划分的第一缓存区和第二缓存区所缓存的第一设备数据,以实现将所述第一设备数据发送至所述第二设备;
基于所述DMA数据接收指令,将第二设备数据交替写入至预划分的第一缓存区和第二缓存区中,以实现第一设备接收所述第二设备数据。
9.一种DMA数据传输装置,其特征在于,包括:
缓存单元,所述缓存单元包括预划分的第一缓存区和第二缓存区,所述第一缓存区和所述第二缓存区用于缓存第一设备数据或第二设备数据;
DMA控制单元,用于接收DMA数据传输指令,所述DMA数据传输指令包括DMA数据发送指令和DMA数据接收指令;
基于所述DMA数据发送指令,将所述第一设备数据交替写入至所述第一缓存区和所述第二缓存区中;
基于所述DMA数据接收指令,交替读取所述第一缓存区和所述第二缓存区所缓存的所述第二设备数据;
缓存控制单元,用于接收所述DMA数据发送指令和所述DMA数据接收指令;
基于所述DMA数据发送指令,交替读取所述第一缓存区和所述第二缓存区所缓存的所述第一设备数据;
基于所述DMA数据接收指令,将所述第二设备数据交替写入至所述第一缓存区和所述第二缓存区中。
10.一种数据传输系统,其特征在于,包括:第一设备、第二设备和如权利要求9所述的DMA数据传输装置。
CN202111680524.6A 2021-12-30 2021-12-30 一种dma数据传输方法、装置及系统 Pending CN114328320A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111680524.6A CN114328320A (zh) 2021-12-30 2021-12-30 一种dma数据传输方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111680524.6A CN114328320A (zh) 2021-12-30 2021-12-30 一种dma数据传输方法、装置及系统

Publications (1)

Publication Number Publication Date
CN114328320A true CN114328320A (zh) 2022-04-12

Family

ID=81023594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111680524.6A Pending CN114328320A (zh) 2021-12-30 2021-12-30 一种dma数据传输方法、装置及系统

Country Status (1)

Country Link
CN (1) CN114328320A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256203A (zh) * 2020-10-26 2021-01-22 山东盖特航空科技有限公司 Flash存储器的写入方法、装置、设备、介质及系统
CN113238977A (zh) * 2021-07-12 2021-08-10 深之蓝(天津)水下智能科技有限公司 数据传输方法、装置、系统、电子设备及存储介质
CN113835671A (zh) * 2021-09-23 2021-12-24 远峰科技股份有限公司 音频数据快速播放方法、系统、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256203A (zh) * 2020-10-26 2021-01-22 山东盖特航空科技有限公司 Flash存储器的写入方法、装置、设备、介质及系统
CN113238977A (zh) * 2021-07-12 2021-08-10 深之蓝(天津)水下智能科技有限公司 数据传输方法、装置、系统、电子设备及存储介质
CN113835671A (zh) * 2021-09-23 2021-12-24 远峰科技股份有限公司 音频数据快速播放方法、系统、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李正军、李潇然: "新工科卓越工程师教育培养计划电子信息类专业系列教材 现场总线与工业以太网", 1 April 2021, pages: 321 - 322 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质
CN116701284B (zh) * 2023-06-26 2024-02-09 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
KR102447493B1 (ko) 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
JP6045567B2 (ja) 不揮発性記憶のための可変オーバープロビジョニング
US10114578B2 (en) Solid state disk and data moving method
US10866736B2 (en) Memory controller and data processing circuit with improved system efficiency
CN110069426B (zh) 存储器控制器及具有存储器控制器的存储器系统
JP2012529102A (ja) ソリッドステートデバイス内のオブジェクト指向メモリ
CN109543376B (zh) 登陆认证方法、计算机存储介质及电子设备
US20190278516A1 (en) Hardware-Based Power Management Integrated Circuit Register File Write Protection
KR20190088734A (ko) 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20190026220A1 (en) Storage device that stores latency information, processor and computing system
US20190114284A1 (en) Memory access broker system with application-controlled early write acknowledgment support
WO2017062131A1 (en) System and method for providing operating system independent error control in a computing device
KR20190042970A (ko) 메모리 시스템 및 그의 동작방법
JP7308025B2 (ja) 集積回路装置及びストレージ装置
CN114328320A (zh) 一种dma数据传输方法、装置及系统
US10310983B2 (en) Data storage device and operating method thereof
KR20220127076A (ko) 컨트롤러 및 컨트롤러의 동작 방법
US11188239B2 (en) Host-trusted module in data storage device
CN114138683A (zh) 主机内存访问方法、装置、电子设备及存储介质
CN110413549B (zh) 数据传输方法、装置、计算机设备及存储介质
CN114168073A (zh) 固态硬盘调试空间的访问方法及装置
KR20150096177A (ko) 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
KR100874169B1 (ko) 프로세서간 커맨드를 직접 전달하는 듀얼 포트 메모리 및이를 수행하기 위한 방법
KR20110019491A (ko) 데이터 처리 방법 및 데이터 처리 시스템
US11989448B2 (en) Memory controller and memory system including the same

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Hongyu

Inventor after: Yang Lijie

Inventor after: Liu Jiawei

Inventor after: Hu Zhichen

Inventor after: Xu Weizhi

Inventor after: Zhao Yanbo

Inventor before: Wang Hongyu

Inventor before: Yang Lijie

Inventor before: Liu Jiawei

Inventor before: Hu Zhichen

Inventor before: Miao Xuewen

Inventor before: Zhang Jun

Inventor before: Xu Weizhi

Inventor before: Zhao Yanbo