CN117312201A - 一种数据传输方法、装置及加速器设备、主机和存储介质 - Google Patents

一种数据传输方法、装置及加速器设备、主机和存储介质 Download PDF

Info

Publication number
CN117312201A
CN117312201A CN202311608717.XA CN202311608717A CN117312201A CN 117312201 A CN117312201 A CN 117312201A CN 202311608717 A CN202311608717 A CN 202311608717A CN 117312201 A CN117312201 A CN 117312201A
Authority
CN
China
Prior art keywords
descriptor
data packet
application data
memory
host
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.)
Granted
Application number
CN202311608717.XA
Other languages
English (en)
Other versions
CN117312201B (zh
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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311608717.XA priority Critical patent/CN117312201B/zh
Publication of CN117312201A publication Critical patent/CN117312201A/zh
Application granted granted Critical
Publication of CN117312201B publication Critical patent/CN117312201B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

本申请公开了一种数据传输方法、装置及加速器设备、主机和存储介质,涉及计算机技术领域,该方法包括:加速器设备接收应用数据包,并将应用数据包存储至存储器中;记录应用数据包的存储信息;其中,存储信息包括应用数据包的大小和应用数据包在存储器中的存储地址;将应用数据包的存储信息写入描述符中,以便主机根据描述信息中的存储信息申请内存,并将申请到的内存地址填充至描述符中启动直接内存访问传输;通过直接内存访问传输根据主机填充的描述符中的内存地址将存储器中的应用数据包传输至主机。在本申请中,数据传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,避免了数据传输过程中的资源浪费。

Description

一种数据传输方法、装置及加速器设备、主机和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据传输方法、装置及加速器设备、主机和存储介质。
背景技术
DMA(Direct Memory Access,直接内存访问)因具备传输带宽高、无需CPU(Central Processing Unit,中央处理器)参与等性能优势,成为目前最常见的大批量数据传输方式。通常情况下,主机端(Host)提前申请内存,并配置DMA传输的描述符,描述符包含数据传输长度、源地址、目的地址等信息。DMA控制器根据描述符信息发起数据传输,而无需CPU的参与,解放了CPU。然而,在网络传输、图像传输等应用场景下,由于不能提前预知到数据的传输量,因此只能提前在主机端申请足够大的内存空间以防止数据丢包,造成了资源的浪费,尤其在嵌入式平台下,由于本身内存资源就少,过渡申请内存空间可能引起其他功能的异常。
因此,如何避免直接内存访问传输过程中的资源浪费是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据传输方法、装置及电子设备和存储介质,避免了直接内存访问传输过程中的资源浪费。
为实现上述目的,本申请提供了一种数据传输方法,应用于加速器设备,所述加速器设备与主机连接,所述方法包括:
接收应用数据包,并将所述应用数据包存储至存储器中;
记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
其中,所述接收应用数据包,并将所述应用数据包存储至存储器中,包括:
接收应用数据包;
对所述应用数据包进行预处理;其中,所述预处理包括模数转换、数据滤波、图像解压缩中任一项或任几项的组合;
将预处理后的应用数据包存储至存储器中。
其中,所述接收应用数据包,包括:
通过多个数据通道接收应用数据包;
相应的,对所述应用数据包进行预处理,包括:
通过多个数据预处理模块对多个所述数据通道接收到的所述应用数据包进行并行预处理。
其中,将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输,包括:
在状态为空闲的描述符中确定目标描述符,将所述应用数据包的存储信息写入所述目标描述符中,并将所述目标描述符的状态修改为占用,以便所述主机根据所述目标描述符中所述应用数据包的大小申请内存,并将申请到的内存地址填充至所述目标描述符中启动直接内存访问传输。
其中,在所述应用数据包传输完成之后,所述主机将所述目标描述符的状态修改为空闲。
其中,将所述目标描述符的状态修改为占用之后,还包括:
更新描述符计数,并将所述描述符计数传输至所述主机;其中,所述描述符计数用于描述状态为占用的描述符的数量。
其中,所述主机循环查询所述描述符计数,若所述描述符计数不为零,则读取所述目标描述符,并执行所述根据所述目标描述符中所述应用数据包的大小申请内存的步骤;
所述主机将所述目标描述符的状态修改为空闲之后,根据当前状态为占用的描述符的数量更新所述描述符计数。
其中,将所述应用数据包的存储信息写入描述符中,包括:
在每接收到一个所述应用数据包、每将一个所述应用数据包存储至所述存储器中之后,将所述应用数据包的存储信息写入描述符中。
其中,所述存储器被划分为多个存储块,将所述应用数据包存储至存储器中,包括:
将所述应用数据包依次存储至存储器中的存储块中;
相应的,将所述应用数据包的存储信息写入描述符中,包括:
在每填充完成一个存储块之后,将填充完成的存储块中的应用数据包的存储信息写入描述符中;其中,每个所述应用数据包的存储信息对应一个描述符。
其中,所述加速器设备包括现场可编程逻辑门阵列和存储器,所述现场可编程逻辑门阵列包括数据缓存模块、数据传输控制模块、存储控制器、读写模块、直接内存访问模块;
所述数据缓存模块用于对接收到的应用数据包进行缓存;
所述存储控制器用于将缓存的应用数据包存储至存储器中;
所述数据传输控制模块用于记录所述应用数据包的存储信息,并将所述应用数据包的存储信息通过所述读写模块写入描述符中;
所述读写模块用于与所述主机进行信息传输;
所述直接内存访问模块用于根据所述主机填充的描述符中的内存地址将所述存储器中的所述应用数据包传输至所述主机。
其中,所述现场可编程逻辑门阵列还包括数据预处理模块,所述数据预处理模块用于对接收到的应用数据包进行预处理。
其中,所述加速器设备还包括独立于所述现场可编程逻辑门阵列的数据预处理模块,所述数据预处理模块与所述现场可编程逻辑门阵列连接,所述数据预处理模块用于对接收到的应用数据包进行预处理。
其中,所述存储器为双倍速率同步动态随机存储器。
为实现上述目的,本申请提供了一种数据传输装置,应用于加速器设备,所述加速器设备与主机连接,所述装置包括:
存储模块,用于接收应用数据包,并将所述应用数据包存储至存储器中;
记录模块,用于记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
写入模块,用于将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
传输模块,用于通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
为实现上述目的,本申请提供了一种加速器设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据传输方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据传输方法的步骤。
为实现上述目的,本申请提供了一种数据传输方法,应用于主机,所述主机与加速器设备连接,所述方法包括:
获取描述符,并根据所述描述符中的存储信息申请内存;其中,所述存储信息包括需要传输的应用数据包的大小和所述应用数据包在所述加速器设备的存储器中的存储地址;
将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
接收所述加速器设备发送的所述应用数据包。
其中,所述获取描述符之前,还包括:
查询描述符计数,若所述描述符计数不为零,则执行所述获取描述符,并根据所述描述符中的存储信息申请内存的步骤。
其中,所述获取描述符之前,还包括:
通过直接内存访问一致性内存申请描述符存储空间。
为实现上述目的,本申请提供了一种数据传输装置,应用于主机,所述主机与加速器设备连接,所述装置包括:
第一申请模块,用于获取描述符,并根据所述描述符中的存储信息申请内存;其中,所述存储信息包括需要传输的应用数据包的大小和所述应用数据包在所述加速器设备的存储器中的存储地址;
启动模块,用于将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
接收模块,用于接收所述加速器设备发送的所述应用数据包。
为实现上述目的,本申请提供了一种主机,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据传输方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据传输方法的步骤。
为实现上述目的,本申请提供了一种数据传输系统,包括如上述加速器设备和如上述主机,所述主机与加速器设备连接。
通过以上方案可知,本申请提供的一种数据传输方法,包括:加速器设备接收应用数据包,并将所述应用数据包存储至存储器中;记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;将所述应用数据包的存储信息写入描述符中,以便主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
本申请提供的数据传输方法,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请提供的数据传输方法,避免了直接内存访问传输过程中的资源浪费。本申请还公开了一种数据传输装置及一种加速器设备、主机和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据传输方法的流程图;
图2为根据一示例性实施例示出的一种存储器的分块示意图;
图3为根据一示例性实施例示出的一种数据传输装置的结构图;
图4为根据一示例性实施例示出的一种加速器设备的结构图;
图5为根据一示例性实施例示出的另一种加速器设备的结构图;
图6为根据一示例性实施例示出的又一种加速器设备的结构图;
图7为根据一示例性实施例示出的另一种数据传输方法的流程图;
图8为根据一示例性实施例示出的一种数据传输装置的结构图;
图9为根据一示例性实施例示出的一种主机的结构图;
图10为根据一示例性实施例示出的一种数据传输系统的结构图;
图11为根据一示例性实施例示出的另一种数据传输系统的结构图;
图12为本申请提供的一种应用实施例中数据传输方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种数据传输方法,避免了直接内存访问传输过程中的资源浪费。
参见图1,根据一示例性实施例示出的一种数据传输方法的流程图,如图1所示,包括:
S101:接收应用数据包,并将所述应用数据包存储至存储器中;
本实施例的执行主体为加速器设备,例如FPGA(Field Programmable GateArray,现场可编程门阵列)加速器设备,该加速器设备与主机连接。本实施例可以应用于多路AD(Analog-Digital,模数)转换、多路图像输入等并行应用场景。
在具体实施中,加速器设备接收应用数据包,并将其存储至存储器中,此处的存储器可以为DDR(双倍速率同步动态随机存储器,Double Data Rate),也可以为其他类型的存储器,在此不进行具体限定。
作为一种优选实施方式,所述接收应用数据包,并将所述应用数据包存储至存储器中,包括:接收应用数据包;对所述应用数据包进行预处理;其中,所述预处理包括模数转换、数据滤波、图像解压缩中任一项或任几项的组合;将预处理后的应用数据包存储至存储器中。
在具体实施中,加速器设备接收应用数据包之后,对其进行预处理,可以包括模数转换、数据滤波、图像解压缩等,预处理算法可根据具体应用进行开发,然后将预处理后的应用数据包存储至存储器中。由此可见,将该应用数据包的预处理过程在加速器设备中进行,可有效释放主机CPU的数据处理压力,提高数据传输系统的性能。
作为一种可行的实施方式,所述接收应用数据包,包括:通过多个数据通道接收应用数据包;相应的,对所述应用数据包进行预处理,包括:通过多个数据预处理模块对多个所述数据通道接收到的所述应用数据包进行并行预处理。在具体实施中,加速器设备可以通过多个数据通道并行接收应用数据包,通过多个数据预处理模块对多个数据通道接收到的应用数据包进行并行预处理,以提高数据处理效率。
作为一种可行的实施方式,将所述应用数据包存储至存储器中,包括:对所述应用数据包进行缓存,并将缓存的应用数据包存储至存储器中。在具体实施中,加速器设备将预处理后的应用数据包先进行缓存,然后打包写入存储器中。
S102:记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
在具体实施中,加速器设备记录应用数据包的存储信息,包括应用数据包的大小和其在存储器中的存储地址。
S103:将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
在具体实施中,加速器设备将应用数据包的存储信息写入主机提前准备好的描述符中,描述符为一块固定大小的主机端内存,在数据传输前主机已提前准备好,最多可以存储256个传输信息,描述符为空时为空闲状态,被填充数据时为占用状态,每次传输占用一个,可以循环使用。主机根据描述信息中的存储信息申请内存并将申请到的内存地址填充至描述符中,主机发起数据传输操作,也即启动直接内存访问传输。
作为一种可行的实施方式,将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输,包括:在状态为空闲的描述符中确定目标描述符,将所述应用数据包的存储信息写入所述目标描述符中,并将所述目标描述符的状态修改为占用,以便所述主机根据所述目标描述符中所述应用数据包的大小申请内存,并将申请到的内存地址填充至所述目标描述符中启动直接内存访问传输。在所述应用数据包传输完成之后,所述主机将所述目标描述符的状态修改为空闲。
在具体实施中,在空闲的描述符中确定目标描述符,将应用数据包的存储信息写入目标描述符中,并将目标描述符的状态修改为占用,主机根据标描述符中应用数据包的大小申请内存,并将申请到的内存地址填充至目标描述符中启动直接内存访问传输。在应用数据包传输完成之后,主机将目标描述符的状态修改为空闲。
作为一种可行的实施方式,将所述应用数据包的存储信息写入描述符中,包括:在每个所述应用数据包存储至所述存储器中之后,将所述应用数据包的存储信息写入描述符中。在具体实施中,针对实时性要求较高的应用,在每个应用数据包存储至存储器中之后,立即将其存储信息写入描述符中。
作为另一种可行的实施方式,所述存储器被划分为多个存储块,将所述应用数据包的存储信息写入描述符中,包括:在每个所述存储块填充完成之后,将填充完成的存储块中的应用数据包的存储信息写入描述符中。在具体实施中,针对实时性要求不高的应用,对存储器进行分块,每填充完一个数据块之后,将其中的应用数据包的存储信息填充至描述符中。例如,如图2所示,将内存空间分为8个数据块0-7,从数据块0开始依次填充,每填充完成一个数据块后将其中的应用数据包的存储信息填充至描述符中,告知主机端可以进行数据读取。在实时性要求不高的应用场景中,避免了主机端频繁发起DMA数据读取操作,保证数据传输系统的稳定性。
作为一种优选实施方式,将所述应用数据包的存储信息写入描述符中之后,还包括:更新描述符计数,并将所述描述符计数传输至所述主机;其中,所述描述符计数用于描述状态为占用的描述符的数量。所述主机循环查询所述描述符计数,若所述描述符计数不为零,则读取所述目标描述符,并执行所述根据所述目标描述符中所述应用数据包的大小申请内存的步骤;所述主机将所述目标描述符的状态修改为空闲之后,根据当前状态为占用的描述符的数量更新所述描述符计数。
在具体实施中,加速器设备对存储的应用数据包进行计数,每存储一个应用数据包,其存储信息会占用一个描述符,每填充一个描述符,描述符计数加一,也即通过统计状态为占用的描述符的数量对存储的应用数据包进行计数,将描述符计数上传至主机端,以告知主机端当前可处理的描述符数。主机循环查询描述符计数,若描述符计数不为零,则根据描述信息中的存储信息申请内存。在应用数据包传输完成之后,主机根据当前状态为占用的描述符的数量更新描述符计数,也即将描述符计数减一。需要说明的是,在更新描述符计数的同时,主机端和加速器设备端还需更新描述符的头指针和尾指针。
S104:通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
在具体实施中,加速器设备通过DMA传输根据主机申请的内存地址将应用数据包传输至主机,主机等待接收传输完成中断,结束操作。
本申请实施例提供的数据传输方法,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例提供的数据传输方法,避免了直接内存访问传输过程中的资源浪费。
下面对本申请实施例提供的一种数据传输装置进行介绍,下文描述的一种数据传输装置与上文描述的一种数据传输方法可以相互参照。
参见图3,根据一示例性实施例示出的一种数据传输装置的结构图,如图3所示,包括:
存储模块101,用于接收应用数据包,并将所述应用数据包存储至存储器中;
记录模块102,用于记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
写入模块103,用于将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
传输模块104,用于通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
在本申请实施例提中,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例避免了直接内存访问传输过程中的资源浪费。
在上述实施例的基础上,作为一种优选实施方式,所述存储模块101具体用于:接收应用数据包;对所述应用数据包进行预处理;其中,所述预处理包括模数转换、数据滤波、图像解压缩中任一项或任几项的组合;将预处理后的应用数据包存储至存储器中。
在上述实施例的基础上,作为一种优选实施方式,所述存储模块101具体用于:通过多个数据通道接收应用数据包;通过多个数据预处理模块对多个所述数据通道接收到的所述应用数据包进行并行预处理。
在上述实施例的基础上,作为一种优选实施方式,所述写入模块103具体用于:在状态为空闲的描述符中确定目标描述符,将所述应用数据包的存储信息写入所述目标描述符中,并将所述目标描述符的状态修改为占用,以便所述主机根据所述目标描述符中所述应用数据包的大小申请内存,并将申请到的内存地址填充至所述目标描述符中启动直接内存访问传输。
在上述实施例的基础上,作为一种优选实施方式,在所述应用数据包传输完成之后,所述主机将所述目标描述符的状态修改为空闲。
在上述实施例的基础上,作为一种优选实施方式,所述写入模块103具体用于:在每接收到一个所述应用数据包、每将一个所述应用数据包存储至所述存储器中之后,将所述应用数据包的存储信息写入描述符中。
在上述实施例的基础上,作为一种优选实施方式,所述存储器被划分为多个存储块,所述存储模块101具体用于:将所述应用数据包依次存储至存储器中的存储块中;所述写入模块103具体用于:在每填充完成一个存储块之后,将填充完成的存储块中的应用数据包的存储信息写入描述符中;其中,每个所述应用数据包的存储信息对应一个描述符。
在上述实施例的基础上,作为一种优选实施方式,还包括:
更新描述符计数,并将所述描述符计数传输至所述主机;其中,所述描述符计数用于描述状态为占用的描述符的数量。
在上述实施例的基础上,作为一种优选实施方式,所述主机循环查询所述描述符计数,若所述描述符计数不为零,则读取所述目标描述符,并执行所述根据所述目标描述符中所述应用数据包的大小申请内存的步骤;所述主机将所述目标描述符的状态修改为空闲之后,根据当前状态为占用的描述符的数量更新所述描述符计数。
在上述实施例的基础上,作为一种优选实施方式,所述加速器设备包括现场可编程逻辑门阵列和存储器,所述现场可编程逻辑门阵列包括数据缓存模块、数据传输控制模块、存储控制器、读写模块、直接内存访问模块;
所述数据缓存模块用于对接收到的应用数据包进行缓存;
所述存储控制器用于将缓存的应用数据包存储至存储器中;
所述数据传输控制模块用于记录所述应用数据包的存储信息,并将所述应用数据包的存储信息通过所述读写模块写入描述符中;
所述读写模块用于与所述主机进行信息传输;
所述直接内存访问模块用于根据所述主机填充的描述符中的内存地址将所述存储器中的所述应用数据包传输至所述主机。
在上述实施例的基础上,作为一种优选实施方式,所述现场可编程逻辑门阵列还包括数据预处理模块,所述数据预处理模块用于对接收到的应用数据包进行预处理。
在上述实施例的基础上,作为一种优选实施方式,所述加速器设备还包括独立于所述现场可编程逻辑门阵列的数据预处理模块,所述数据预处理模块与所述现场可编程逻辑门阵列连接,所述数据预处理模块用于对接收到的应用数据包进行预处理。
在上述实施例的基础上,作为一种优选实施方式,所述存储器为双倍速率同步动态随机存储器。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例公开了一种加速器设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据传输方法的步骤。
作为一种优选实施方式,如图4所示,所述加速器设备包括现场可编程逻辑门阵列和存储器,所述现场可编程逻辑门阵列包括数据缓存模块、数据传输控制模块、存储控制器、读写模块、直接内存访问模块;所述数据缓存模块用于对接收到的应用数据包进行缓存;所述存储控制器用于将缓存的应用数据包存储至存储器中;所述数据传输控制模块用于记录所述应用数据包的存储信息,并将所述应用数据包的存储信息写入描述符中;所述读写模块用于与所述主机进行信息传输;所述直接内存访问模块用于根据所述主机填充的描述符中的内存地址将所述存储器中的所述应用数据包传输至所述主机。
在具体实施中,数据缓存模块用于将预处理后的数据包先进行缓存,存储控制器用于将缓存的数据打包写入存储器中。传输控制模块用于记录应用数据包的大小和在存储器中的存储地址,并将该信息写入主机提前准备好的描述符中。传输控制模块还用于对数据包进行计数,并将描述符计数值通过读写模块上传到主机端,以告知主机端当前可处理的描述符数,其中描述符循环使用。读写模块负责读写模块与加速器设备之间的信息传输,如加速器设备可通过读写模块告知主机当前可操作描述符的数量也即描述符计数。直接内存访问模块用于接收加速器设备已填充的描述符,然后主机端申请内存,填充完成描述符,并发起数据传输操作。
本实施例中的存储器可以为DDR,也可以为其他类型的存储器,在此不进行具体限定。
进一步的,加速器设备还包括数据预处理模块,用于对接收到的应用数据包进行预处理。针对多路ADC转换、图像传输等并行应用发送过来的数据进行预处理,如ADC转换、数据滤波、图像解压缩等处理,处理算法可根据具体应用进行开发;将该并行数据处理过程在FPGA加速器中进行,可有效释放CPU的数据处理压力,提高系统的性能。
作为一种可行的实施方式,所述现场可编程逻辑门阵列还包括数据预处理模块,所述数据预处理模块用于对接收到的应用数据包进行预处理。在具体实施中,如图5所示,数据预处理模块位于现场可编程逻辑门阵列中。
作为另一种可行的实施方式,所述加速器设备还包括独立于所述现场可编程逻辑门阵列的数据预处理模块,所述数据预处理模块与所述现场可编程逻辑门阵列连接,所述数据预处理模块用于对接收到的应用数据包进行预处理。在具体实施中,如图6所示,数据预处理模块独立于现场可编程逻辑门阵列中。选择面向场景的专用芯片构建数据接收预处理模块,如RK3399专门进行图像处理,专用的数据预处理模块通过PCIe(PeripheralComponent Interconnect Express,高速串行计算机扩展总线标准)或SDIO(SecureDigital Input and Output,安全数字输入输出)等接口将处理后的结果传递到现场可编程逻辑门阵列,现场可编程逻辑门阵列仅做数据缓存和转发。专用的数据预处理模块可有效提高数据的预处理效率,降低FPGA开发难度,提供系统整体效率。
在本申请实施例提中,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例避免了直接内存访问传输过程中的资源浪费。
本申请实施例公开了一种数据传输方法,避免了直接内存访问传输过程中的资源浪费。
参见图7,根据一示例性实施例示出的另一种数据传输方法的流程图,如图7所示,包括:
S201:获取描述符,并根据所述描述符中的存储信息申请内存;其中,所述存储信息包括需要传输的应用数据包的大小和所述应用数据包在所述加速器设备的存储器中的存储地址;
本实施例的执行主体为主机,该主机与加速器设备与连接。本实施例可以应用于多路AD转换、多路图像输入等并行应用场景。
作为一种可行的实施方式,所述获取描述符之前,还包括:通过直接内存访问一致性内存申请描述符存储空间。在具体实施中,主机首先通过DMA一致性内存申请描述符存储空间并启动系统。
在具体实施中,加速器设备接收应用数据包,并将其存储至存储器中,记录应用数据包的存储信息,将其写入描述符中。主机根据描述信息中的存储信息中需要传输的应用数据包的大小申请内存。
作为一种优选实施方式,所述获取描述符之前,还包括:查询描述符计数,若所述描述符计数不为零,则执行所述获取描述符,并根据所述描述符中的存储信息申请内存的步骤。
在具体实施中,加速器设备对接收到的应用数据包进行计数,也即通过描述符计数对接收到的应用数据包进行计数,将描述符计数上传至主机端,以告知主机端当前可处理的描述符数。主机循环查询描述符计数,若描述符计数不为零,则根据描述信息中的存储信息申请内存。
S202:将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
在具体实施中,主机将申请到的内存地址填充至描述符中,主机发起数据传输操作,也即启动直接内存访问传输。
S203:接收所述加速器设备发送的所述应用数据包。
在具体实施中,主机等待接收应用数据包传输完成中断,结束操作。
在本申请实施例提中,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例避免了直接内存访问传输过程中的资源浪费。
下面对本申请实施例提供的一种数据传输装置进行介绍,下文描述的一种数据传输装置与上文描述的一种数据传输方法可以相互参照。
参见图8,根据一示例性实施例示出的一种数据传输装置的结构图,如图8所示,包括:
第一申请模块201,用于获取描述符,并根据所述描述符中的存储信息申请内存;其中,所述存储信息包括需要传输的应用数据包的大小和所述应用数据包在所述加速器设备的存储器中的存储地址;
启动模块202,用于将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
接收模块203,用于接收所述加速器设备发送的所述应用数据包。
在本申请实施例提中,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例避免了直接内存访问传输过程中的资源浪费。
在上述实施例的基础上,作为一种优选实施方式,还包括:
查询模块,用于查询描述符计数,若所述描述符计数不为零,则启动第一申请模块201的工作流程。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第二申请模块,用于通过直接内存访问一致性内存申请描述符存储空间。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种主机,图9为根据一示例性实施例示出的一种主机的结构图,如图9所示,主机包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据传输方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,主机中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持主机的操作。这些数据的示例包括:用于在主机上操作的任何计算机程序。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器,上述计算机程序可由处理器执行,以完成前述加速器设备侧和主机侧的数据传输方法的步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、CD-ROM等存储器。
本申请实施例公开了一种数据传输系统,包括如上述实施例提供的加速器设备和如上述实施例提供的主机,所述主机与加速器设备连接。加速器设备可以通过PCIe硬核模块连接主机。
作为一种可行的实施方式,数据预处理模块位于现场可编程逻辑门阵列中,数据传输系统如图10所示。
作为另一种可行的实施方式,数据预处理模块独立于现场可编程逻辑门阵列中,数据传输系统如图11所示。选择面向场景的专用芯片构建数据接收预处理模块,如RK3399专门进行图像处理,专用的数据预处理模块通过PCIe或SDIO(Secure Digital Input andOutput,安全数字输入输出)等接口将处理后的结果传递到现场可编程逻辑门阵列,现场可编程逻辑门阵列仅做数据缓存和转发。专用的数据预处理模块可有效提高数据的预处理效率,降低FPGA开发难度,提供系统整体效率。
在本申请实施例提中,加速器设备将需要传输的应用数据包的存储信息写入描述符中,DMA传输由主机发起,根据描述符中的存储信息申请相应的内存空间,无需提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。由此可见,本申请实施例避免了直接内存访问传输过程中的资源浪费。
下面介绍本申请提供的一种应用实施例,基于FPGA加速器的数据处理及传输系统。该系统针对多路ADC转换、多路图像输入等并行应用场景。首先缓存模块接收数据,然后进行数据预处理,如滤波处理、图像解压缩处理等,该数据预处理模块可有效减少CPU的数据处理压力;数据经过预处理后,先暂存在FPGA加速器DDR中,然后通过数据传输控制模块记录数据在DDR中的存储信息,然后将该存储信息配置到DMA的描述符中,最后通知Host端通过DMA进行数据读取操作。与传统处理方式相比,该数据传输的DMA启动由Host发起,避免提前开辟大量的内存空间,降低了对CPU性能的需要,同时可保证数据传输的实时性。如图12所示,具体包括以下步骤:
步骤1:主机首先通过DMA一致性内存申请描述符存储空间并启动系统;
步骤2:FPGA加速器中的数据预处理模块接收多路ADC、图像等并行数据并进行预处理操作,如ADC转换、图像处理等,各应用处理算法可根据具体的应用进行开发。
步骤3:数据缓存模块对预处理后的数据进行缓存和打包,并写入DDR中;
步骤4:数据传输模块对传输信息进行记录和控制。如果没有数据,则数据预处理模块持续监控并行接口的数据;如果有数据,则记录每包数据长度以及每包数据在DDR中的存储地址。
步骤5:针对实时性要求较高的应用,数据传输模块将每包数据长度、在DDR中的存储地址信息填充到描述符中,并通过读写模块更新可用描述符的计数(每填充一个描述符,计数加一);针对实时性要求不高的应用,将DDR进行分块,每填充完一个DDR数据块再填充描述符并通过读写模块更新可用描述符的计数(每填充一个描述符,计数加一);
步骤6:主机循环查询描述符计数器,如果该值不为零则说明已有数据;则将描述符读回,根据描述符中的长度信息申请内存,并将申请到的内存地址填充到描述符中,然后启动DMA传输;
步骤7:FPGA加速器查看并记录数据传输状态,主机等待接收传输完成中断,结束操作。
本实施例设计基于FPGA加速器的数据处理及传输系统,设计数据预处理模块,将适合并行计算的工作卸载到数据预处理模块进行,减小CPU的工作量;设计FPGA端主动发起的数据读取模式,减少了主机端内存的开销;基于读写模块的数据交互通道,保障了数据传输的正确性,避免出现数据丢包的现象;这对应用场景的实时性不同,设计不同的数据存储和传输策略,提高系统的稳定性。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种数据传输方法,其特征在于,应用于加速器设备,所述加速器设备与主机连接,所述方法包括:
接收应用数据包,并将所述应用数据包存储至存储器中;
记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
2.根据权利要求1所述数据传输方法,其特征在于,所述接收应用数据包,并将所述应用数据包存储至存储器中,包括:
接收应用数据包;
对所述应用数据包进行预处理;其中,所述预处理包括模数转换、数据滤波、图像解压缩中任一项或任几项的组合;
将预处理后的应用数据包存储至存储器中。
3.根据权利要求2所述数据传输方法,其特征在于,所述接收应用数据包,包括:
通过多个数据通道接收应用数据包;
相应的,对所述应用数据包进行预处理,包括:
通过多个数据预处理模块对多个所述数据通道接收到的所述应用数据包进行并行预处理。
4.根据权利要求1所述数据传输方法,其特征在于,将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输,包括:
在状态为空闲的描述符中确定目标描述符,将所述应用数据包的存储信息写入所述目标描述符中,并将所述目标描述符的状态修改为占用,以便所述主机根据所述目标描述符中所述应用数据包的大小申请内存,并将申请到的内存地址填充至所述目标描述符中启动直接内存访问传输。
5.根据权利要求4所述数据传输方法,其特征在于,在所述应用数据包传输完成之后,所述主机将所述目标描述符的状态修改为空闲。
6.根据权利要求5所述数据传输方法,其特征在于,将所述目标描述符的状态修改为占用之后,还包括:
更新描述符计数,并将所述描述符计数传输至所述主机;其中,所述描述符计数用于描述状态为占用的描述符的数量。
7.根据权利要求6所述数据传输方法,其特征在于,所述主机循环查询所述描述符计数,若所述描述符计数不为零,则读取所述目标描述符,并执行所述根据所述目标描述符中所述应用数据包的大小申请内存的步骤;
所述主机将所述目标描述符的状态修改为空闲之后,根据当前状态为占用的描述符的数量更新所述描述符计数。
8.根据权利要求1所述数据传输方法,其特征在于,将所述应用数据包的存储信息写入描述符中,包括:
在每接收到一个所述应用数据包、每将一个所述应用数据包存储至所述存储器中之后,将所述应用数据包的存储信息写入描述符中。
9.根据权利要求1所述数据传输方法,其特征在于,所述存储器被划分为多个存储块,将所述应用数据包存储至存储器中,包括:
将所述应用数据包依次存储至存储器中的存储块中;
相应的,将所述应用数据包的存储信息写入描述符中,包括:
在每填充完成一个存储块之后,将填充完成的存储块中的应用数据包的存储信息写入描述符中;其中,每个所述应用数据包的存储信息对应一个描述符。
10.根据权利要求1所述数据传输方法,其特征在于,所述加速器设备包括现场可编程逻辑门阵列和存储器,所述现场可编程逻辑门阵列包括数据缓存模块、数据传输控制模块、存储控制器、读写模块、直接内存访问模块;
所述数据缓存模块用于对接收到的应用数据包进行缓存;
所述存储控制器用于将缓存的应用数据包存储至存储器中;
所述数据传输控制模块用于记录所述应用数据包的存储信息,并将所述应用数据包的存储信息通过所述读写模块写入描述符中;
所述读写模块用于与所述主机进行信息传输;
所述直接内存访问模块用于根据所述主机填充的描述符中的内存地址将所述存储器中的所述应用数据包传输至所述主机。
11.根据权利要求10所述数据传输方法,其特征在于,所述现场可编程逻辑门阵列还包括数据预处理模块,所述数据预处理模块用于对接收到的应用数据包进行预处理。
12.根据权利要求10所述数据传输方法,其特征在于,所述加速器设备还包括独立于所述现场可编程逻辑门阵列的数据预处理模块,所述数据预处理模块与所述现场可编程逻辑门阵列连接,所述数据预处理模块用于对接收到的应用数据包进行预处理。
13.一种数据传输装置,其特征在于,应用于加速器设备,所述加速器设备与主机连接,所述装置包括:
存储模块,用于接收应用数据包,并将所述应用数据包存储至存储器中;
记录模块,用于记录所述应用数据包的存储信息;其中,所述存储信息包括所述应用数据包的大小和所述应用数据包在所述存储器中的存储地址;
写入模块,用于将所述应用数据包的存储信息写入描述符中,以便所述主机根据所述描述符中的存储信息申请内存,并将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
传输模块,用于通过直接内存访问传输根据所述主机填充的描述符中的所述内存地址将所述存储器中的所述应用数据包传输至所述主机。
14.一种加速器设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述数据传输方法的步骤。
15.一种数据传输方法,其特征在于,应用于主机,所述主机与加速器设备连接,所述方法包括:
获取描述符,并根据所述描述符中的存储信息申请内存;其中,所述存储信息包括需要传输的应用数据包的大小和所述应用数据包在所述加速器设备的存储器中的存储地址;
将申请到的内存地址填充至所述描述符中启动直接内存访问传输;
接收所述加速器设备发送的所述应用数据包。
16.根据权利要求15所述数据传输方法,其特征在于,所述获取描述符之前,还包括:
查询描述符计数,若所述描述符计数不为零,则执行所述获取描述符,并根据所述描述符中的存储信息申请内存的步骤。
17.根据权利要求15所述数据传输方法,其特征在于,所述获取描述符之前,还包括:
通过直接内存访问一致性内存申请描述符存储空间。
18.一种主机,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求15至17任一项所述数据传输方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12或如权利要求15至17任一项所述数据传输方法的步骤。
20.一种数据传输系统,其特征在于,包括如权利要求14所述加速器设备和如权利要求18所述主机,所述主机与加速器设备连接。
CN202311608717.XA 2023-11-29 2023-11-29 一种数据传输方法、装置及加速器设备、主机和存储介质 Active CN117312201B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311608717.XA CN117312201B (zh) 2023-11-29 2023-11-29 一种数据传输方法、装置及加速器设备、主机和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311608717.XA CN117312201B (zh) 2023-11-29 2023-11-29 一种数据传输方法、装置及加速器设备、主机和存储介质

Publications (2)

Publication Number Publication Date
CN117312201A true CN117312201A (zh) 2023-12-29
CN117312201B CN117312201B (zh) 2024-02-13

Family

ID=89281490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311608717.XA Active CN117312201B (zh) 2023-11-29 2023-11-29 一种数据传输方法、装置及加速器设备、主机和存储介质

Country Status (1)

Country Link
CN (1) CN117312201B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118138547A (zh) * 2024-05-07 2024-06-04 珠海星云智联科技有限公司 用于发包描述符获取的方法、计算机设备及介质
CN118550857A (zh) * 2024-07-30 2024-08-27 山东遨卓信息技术有限公司 一种数据传输方法、装置、电子设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227235A1 (en) * 2012-02-28 2013-08-29 Standard Microsystems Corporation Extensible hardware device configuration using memory
CN113660351A (zh) * 2021-10-18 2021-11-16 湖南兴天电子科技有限公司 数据通信方法、装置、通信终端及计算机可读存储介质
CN114443529A (zh) * 2022-04-02 2022-05-06 苏州浪潮智能科技有限公司 内存直接访问架构、系统、方法、电子设备和介质
CN115248791A (zh) * 2022-07-26 2022-10-28 苏州盛科通信股份有限公司 基于地址监测实现内存管理的硬件设备和方法
CN115563038A (zh) * 2022-10-24 2023-01-03 苏州雄立科技有限公司 基于dma控制器的数据处理系统、方法和数据处理设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130227235A1 (en) * 2012-02-28 2013-08-29 Standard Microsystems Corporation Extensible hardware device configuration using memory
CN113660351A (zh) * 2021-10-18 2021-11-16 湖南兴天电子科技有限公司 数据通信方法、装置、通信终端及计算机可读存储介质
CN114443529A (zh) * 2022-04-02 2022-05-06 苏州浪潮智能科技有限公司 内存直接访问架构、系统、方法、电子设备和介质
CN115248791A (zh) * 2022-07-26 2022-10-28 苏州盛科通信股份有限公司 基于地址监测实现内存管理的硬件设备和方法
CN115563038A (zh) * 2022-10-24 2023-01-03 苏州雄立科技有限公司 基于dma控制器的数据处理系统、方法和数据处理设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118138547A (zh) * 2024-05-07 2024-06-04 珠海星云智联科技有限公司 用于发包描述符获取的方法、计算机设备及介质
CN118550857A (zh) * 2024-07-30 2024-08-27 山东遨卓信息技术有限公司 一种数据传输方法、装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN117312201B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
US20230011387A1 (en) Data processing method and nvme storage device
CN117312201B (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
CN109478168B (zh) 内存访问技术及计算机系统
CN109564545B (zh) 用于压缩地址的方法和设备
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
US20210034284A1 (en) Nvme-based data read method, apparatus, and system
CN107783727B (zh) 一种内存设备的访问方法、装置和系统
CN109564502B (zh) 应用于存储设备中的访问请求的处理方法和装置
CN112199309B (zh) 基于dma引擎的数据读取方法、装置和数据传输系统
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
CN112214240A (zh) 主机输出输入命令的执行装置及方法及计算机可读取存储介质
CN113986791A (zh) 一种智能网卡快速dma设计方法、系统、设备及终端
US20060236001A1 (en) Direct memory access controller
CN113377288B (zh) 硬件队列管理系统、方法、固态硬盘控制器及固态硬盘
KR20060017816A (ko) 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치
CN115883022B (zh) Dma传输控制方法、装置、电子设备及可读存储介质
CN101599049B (zh) 控制dma访问不连续物理地址的方法及dma控制器
US8898353B1 (en) System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface
CN117349075A (zh) 一种数据处理方法及相关设备
CN112732166B (zh) 访问固态硬盘的方法及装置
US9104637B2 (en) System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
CN117435535A (zh) 一种存储系统、主控芯片、数据存储方法及数据读取方法
CN118860290A (zh) NVMe写数据处理方法、终端及存储介质
CN116610598A (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
GR01 Patent grant
GR01 Patent grant