CN116225999B - 一种dma数据传输方法及系统 - Google Patents

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

Info

Publication number
CN116225999B
CN116225999B CN202310485525.8A CN202310485525A CN116225999B CN 116225999 B CN116225999 B CN 116225999B CN 202310485525 A CN202310485525 A CN 202310485525A CN 116225999 B CN116225999 B CN 116225999B
Authority
CN
China
Prior art keywords
packet
descriptor
long
short
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.)
Active
Application number
CN202310485525.8A
Other languages
English (en)
Other versions
CN116225999A (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.)
Taichu Wuxi Electronic Technology Co ltd
Original Assignee
Taichu Wuxi Electronic 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 Taichu Wuxi Electronic Technology Co ltd filed Critical Taichu Wuxi Electronic Technology Co ltd
Priority to CN202310485525.8A priority Critical patent/CN116225999B/zh
Publication of CN116225999A publication Critical patent/CN116225999A/zh
Application granted granted Critical
Publication of CN116225999B publication Critical patent/CN116225999B/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种DMA数据传输方法及系统,传输方法包括:获取数据包描述符;于存储空间内存储数据包描述符;根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求;根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息;根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。本发明提出了DMA数据传输方法,通过短包优先级逻辑使原先的描述符发送队列由顺序执行改为乱序执行,提高了数据传输的效率及灵活性。

Description

一种DMA数据传输方法及系统
技术领域
本发明涉及计算机技术领域,具体涉及一种DMA数据传输方法及系统。
背景技术
直接存储器存取(Direct Memory Access,DMA)是指在DMA控制器的控制下,高速地将数据从一个地址空间直接复制到另外一个地址空间,期间不需要通过CPU控制,从而可以让CPU的资源来做其它操作。
在DMA传输数据的过程中,由于网络包长、访存粒度要求、缓冲限制等原因,DMA传输要分成多次完成,即拆包。而采用基于描述符的DMA,需要通过把若干个带有源地址、目标地址、传输数据大小等信息的描述符,写入缓冲区组成描述符队列,把多个DMA操作序列串联在一起,在当前的操作序列完成后,硬件自动设置并启动下一次DMA传输,来提高数据传输的效率。基于描述符的DMA使得DMA和CPU直接能够较好的实现通信和计算的并行。
传统基于描述符的DMA,在实际使用中,通常会进行两种类型的DMA传输:一种是带有系统信息的系统包,其大小比较小,通常被称为系统级消息,长度不超过128B;一种是由实际需要传输数据组成的DMA传输,其大小比较大,通常被称为传输消息传输,长度最长可达1GB以上。DMA在执行时,是按照描述符队列里相应描述符的顺序来执行的,当遇到长消息对应的描述符,就执行发送长消息操作,当遇到短消息对应的描述符,就执行发送短消息操作。
此时,会出现一般长消息大小会达到GB级,而短消息一般在1KB以下,因为描述符是顺序拆分的,当拆长消息时,必须等待长消息拆分完毕,才会执行后面的短消息拆分,这样,当拆分的长消息很大时,会长时间阻塞后续系统级的短消息拆分,严重影响整个系统的运行,存在当长消息和短消息共存时,传输效率低及灵活性差的缺陷。
发明内容
因此,本发明提供的一种DMA数据传输方法及系统,克服了现有技术中当长消息和短消息共存时,传输效率低及灵活性差的缺陷。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种DMA数据传输方法,所述传输方法包括:
获取数据包描述符;
于存储空间内存储数据包描述符;
根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求;
根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数;
根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
可选地,所述根据长消息请求、短消息请求,读取存储空间内的描述符信息的内容包括:
当长消息描述符地址模块和短消息描述符地址模块分别接收到长消息请求、短消息请求后,将长消息描述符地址、短消息描述符地址发送至存储模块;
存储模块把对应地址存储的描述符发送至长消息描述符预取模块、短消息描述符预取模块。
可选地,读队列信息包括:子包中读地址和读长度,写队列信息包括:待写地址和待写长度。
第二方面,本发明实施例提供一种DMA数据传输系统,包括:
获取模块,用于获取数据包描述符;
存储模块,用于于存储空间内存储数据包描述符;
描述符控制管理模块,用于根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求;
拆分模块,用于根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数;
数据传输模块,用于根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
可选地,所述获取模块还包括:存储模块,用于存储存储空间内所述数据包。
第三方面,本发明实施例提供一种终端,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例第一方面所述的DMA数据传输方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明实施例第一方面所述的DMA数据传输方法。
本发明技术方案,具有如下优点:
本发明提供的DMA数据传输方法及系统,通过对长包和短包描述符的按比例拆分,从而减少了下一个数据包的等待时间,提高了短包优先级及传输效率。同时交替拆取的方式,使原先的描述符发送队列由顺序执行改为基于短包优先级执行,提高了系统性能和灵活性,从而提高了通信效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DMA数据传输方法的一个具体示例的流程图;
图2为本发明实施例提供的一种DMA数据传输方法的一个具体示例的拆分逻辑的状态机图;
图3为本发明实施例提供的一种DMA数据传输系统的模块组成图;
图4为本发明实施例提供的一种DMA数据传输系统的另一个具体示例的模块组成图;
图5为本发明实施例提供的一种终端一个具体示例的组成图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供的一种DMA数据传输方法,如图1所示,包括如下步骤:
步骤S1:获取数据包描述符。
在本发明实施例中,获取数据包描述符,数据包描述符包括数据包的大小、数据包的长度、数据包的地址,内容在此不作限制,在实际应用中根据实际情况获取相应数据包的内容。
步骤S2:于存储空间内存储数据包描述符。
将描述符存储于存储器内,例如可以存储在SDRM存储器中,存储器的类型在此不作限制,根据实际情况进行相应选取。
步骤S3:根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求。
在本发明实施例中,数据包描述符中包含了描述数据包大小的片段,读取该片段,当该片段数值大于预设数值时为长包,当该片段数值小于预设数值时为短包,预设数值在此不做限制,根据实际情况进行相应设置。如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求。
步骤S4:根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数。
在本发明实施例中,当长消息描述符地址模块和短消息描述符地址模块分别接收到长消息请求、短消息请求后,将长消息描述符地址、短消息描述符地址发送至存储模块,存储模块把对应地址存储的描述符发送至长消息描述符预取模块、短消息描述符预取模块。
在本发明实施例中,长消息请求、短消息请求相当于两个使能信号,拆分模块收到使能信号后,会把长消息描述符地址模块和短消息描述符地址模块的地址发送至存储模块,存储模块把对应地址存储的描述符发送至长消息描述符预取模块、短消息描述符预取模块。其中,地址是自动分配的,根据长消息描述符地址、短消息描述符地址分别提取存储空间内对应数据包的长消息描述符预取、短消息描述符预取。
在一具体实施例中,长消息请求和短消息请求分别为长消息描述符地址模块和短消息描述符地址模块的使能信号,当接收到使能信号后,将长消息描述符地址和短消息描述符地址分别写入长包描述符地址FIFO和短包描述符地址FIFO。根据长包描述符地址FIFO和短包描述符地址FIFO,对描述符存储SDAM进行寻址,读取长包描述符和短包描述符,并且将其分别存入长包描述符预取FIFO和短包描述符预取FIFO,完成预取操作。
在本发明实施例中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,使用交替拆取的方式,使原先的描述符发送队列由顺序执行改为乱序执行,提高了系统性能和灵活性。
在本发明实施例中,交替拆取的步骤,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数。m和n的数值根据实际情况进行相应的设定,在此不作限制,每个包的大小是也可以配置的。交替拆取使短包具有更高的优先级,更容易先执行,即使长包需要搬运上GB的数据,也不影响短包的通行,避免了现有技术不足造成的性能下降。
在本发明实施例中,如图2所示,拆分逻辑的状态图,下表为状态图的描述。
步骤S5:根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
在本发明实施例中,读队列信息包括:子包中读地址和读长度,写队列信息包括:待写地址和待写长度。
在一具体实施例中,根据子包中读地址和读长度,把此段的数据信息描述出来,然后根据目标地址即写队列信息中的待写地址和待写长度,把描述出来的数据信息写入目标地址中,完成DMA数据的传输。
本发明实施例中提供的DMA数据传输方法,通过对长包和短包描述符的按比例拆分,从而减少了下一个数据包的等待时间,提高了短包优先级。同时交替拆取的方式,使原先的描述符发送队列由顺序执行改为基于短包优先级执行,提高了系统性能和灵活性,从而提高了通信效率。
实施例2
本发明实施例提供一种DMA数据传输系统,如图3所示,包括:
获取模块1,用于获取数据包描述符,此模块执行实施例1中的步骤S1所描述的方法,在此不再赘述。
存储模块2,用于于存储空间内存储数据包描述符,此模块执行实施例1中的步骤S2所描述的方法,在此不再赘述。
描述符控制管理模块3,用于根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求,此模块执行实施例1中的步骤S3所描述的方法,在此不再赘述。
拆分模块4,用于根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数,此模块执行实施例1中的步骤S4所描述的方法,在此不再赘述。
数据传输模块5,用于根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输,此模块执行实施例1中的步骤S5所描述的方法,在此不再赘述。
在一具体实施例中,如图4所示,描述符控制管理模块根据数据包描述符区分长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求。
进一步的,当长消息描述符地址模块和短消息描述符地址模块分别接收到长消息请求、短消息请求后,将长消息描述符地址、短消息描述符地址发送至存储模块。存储模块把对应地址存储的描述符发送至长消息描述符预取模块、短消息描述符预取模块。
短包优先级逻辑模块采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,使用交替拆取的方式,生成DMA数据的读队列信息及写队列信息,使原先的描述符发送队列由顺序执行改为乱序执行,提高了系统性能和灵活性。
数据传输模块根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
本发明实施例提供一种DMA数据传输系统,通过短包优先级逻辑模块按比例拆分长包和短包,从而减少了下一个数据包的等待时间,提高了通信效率。
实施例3
本发明实施例提供一种终端,如图5所示,包括:至少一个处理器401,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口403,存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,通信接口403可以包括显示屏(Display)、键盘(Keyboard),可选通信接口403还可以包括标准的有线接口、无线接口。存储器404可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。其中处理器401可以执行实施例1中的DMA数据传输方法。存储器404中存储一组程序代码,且处理器401调用存储器404中存储的程序代码,以用于执行实施例1中的DMA数据传输方法。其中,通信总线402可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固降硬盘(英文:solid-statedrive,缩写:SSD);存储器404还可以包括上述种类的存储器的组合。其中,处理器401可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:networkprocessor,缩写:NP)或者CPU和NP的组合。
其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器404还可以包括上述种类的存储器的组合。
其中,处理器401可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本申请执行实施例1中的DMA数据传输方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例1中的DMA数据传输方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (6)

1.一种DMA数据传输方法,其特征在于,所述传输方法包括:
获取数据包描述符;
于存储空间内存储数据包描述符;
根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求;
根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数;
根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
2.根据权利要求1所述的DMA数据传输方法,其特征在于,所述根据长消息请求、短消息请求,读取存储空间内的描述符信息的内容包括:
当长消息描述符地址模块和短消息描述符地址模块分别接收到长消息请求、短消息请求后,将长消息描述符地址、短消息描述符地址发送至存储模块;
存储模块把对应地址存储的描述符发送至长消息描述符预取模块、短消息描述符预取模块。
3.根据权利要求2所述的DMA数据传输方法,其特征在于,读队列信息包括:子包中读地址和读长度,写队列信息包括:待写地址和待写长度。
4.一种DMA数据传输系统,其特征在于,包括:
获取模块,用于获取数据包描述符;
存储模块,用于于存储空间内存储数据包描述符;
描述符控制管理模块,用于根据数据包描述符区分数据包的类型,所述数据包的类型包括长包和短包,如果该数据包为长包则生成长消息请求,如果该数据包为短包则生成短消息请求;
拆分模块,用于根据长消息请求、短消息请求,读取存储空间内的描述符信息,利用短包优先级逻辑,生成DMA数据的读队列信息及写队列信息,其中,短包优先级逻辑采用交替拆取的方式对长消息描述符预取、短消息描述符预取分别进行拆包,包括:按照预设比例拆出m个长消息的子包,暂停处理长消息描述符,保留其当前信息,跳转到拆取n个短消息的子包,然后再暂停处理短消息描述符,保留其当前信息,再跳回,根据处理长消息描述符保留的信息,继续拆取长消息的子包,循环上述拆包操作,其中,m和n均为正整数;
数据传输模块,用于根据写队列信息、读队列信息及队列对应的数据信息进行打包,完成DMA数据的传输。
5.一种终端,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-3任一所述的DMA数据传输方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-3任一所述的DMA数据传输方法。
CN202310485525.8A 2023-05-04 2023-05-04 一种dma数据传输方法及系统 Active CN116225999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310485525.8A CN116225999B (zh) 2023-05-04 2023-05-04 一种dma数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310485525.8A CN116225999B (zh) 2023-05-04 2023-05-04 一种dma数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN116225999A CN116225999A (zh) 2023-06-06
CN116225999B true CN116225999B (zh) 2023-07-21

Family

ID=86585790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310485525.8A Active CN116225999B (zh) 2023-05-04 2023-05-04 一种dma数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN116225999B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117033270B (zh) * 2023-10-08 2024-01-26 腾讯科技(深圳)有限公司 一种芯片、设备以及数据处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267361A (zh) * 2008-05-09 2008-09-17 武汉飞思科技有限公司 一种基于零拷贝技术的高速网络数据包捕获方法
CN104065588A (zh) * 2013-03-21 2014-09-24 中兴通讯股份有限公司 一种数据包调度和缓存的装置及方法
CN113986791A (zh) * 2021-09-13 2022-01-28 西安电子科技大学 一种智能网卡快速dma设计方法、系统、设备及终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267361A (zh) * 2008-05-09 2008-09-17 武汉飞思科技有限公司 一种基于零拷贝技术的高速网络数据包捕获方法
CN104065588A (zh) * 2013-03-21 2014-09-24 中兴通讯股份有限公司 一种数据包调度和缓存的装置及方法
CN113986791A (zh) * 2021-09-13 2022-01-28 西安电子科技大学 一种智能网卡快速dma设计方法、系统、设备及终端

Also Published As

Publication number Publication date
CN116225999A (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
US20190163364A1 (en) System and method for tcp offload for nvme over tcp-ip
US6954806B2 (en) Data transfer apparatus and method
EP3493084A1 (en) Method for processing data in bloom filter and bloom filter
KR102173089B1 (ko) 인터페이스 회로 및 그것의 패킷 전송 방법
CN116225999B (zh) 一种dma数据传输方法及系统
JP5292978B2 (ja) 制御装置、情報処理装置、及びメモリモジュール認識方法
EP3660686A1 (en) Method and device for transmitting data processing request
US9846657B2 (en) Electronic device for packing multiple commands in one compound command frame and electronic device for decoding and executing multiple commands packed in one compound command frame
CN108052750B (zh) 基于fpga的spi flash控制器及其设计方法
TWI685744B (zh) 指令處理方法及使用所述方法的儲存控制器
US8615609B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US20240275740A1 (en) RDMA Data Transmission System, RDMA Data Transmission Method, and Network Device
CN115934625A (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
EP3866031A1 (en) Webpage loading method, intermediate server, and webpage loading system
US10970206B2 (en) Flash data compression decompression method and apparatus
CN113079219A (zh) 一种大文件分片上传方法和系统
CN112799723A (zh) 一种数据读取方法、装置及电子设备
CN116467235A (zh) 一种基于dma的数据处理方法、装置、电子设备及介质
CN113973091A (zh) 一种报文处理方法、网络设备以及相关设备
EP3764238A1 (en) Processing circuit, information processing apparatus, and information processing method
CN113609041A (zh) 一种数据传输方法及系统
CN118363901B (zh) PCIe设备、电子组件及电子设备
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
CN116112456B (zh) 一种基于bap协议的数据缓存方法、装置、设备及介质
US20210271515A1 (en) Data transferring apparatus and method for transferring data with overlap

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