CN113157610A - 数据保存方法及装置、存储介质、电子装置 - Google Patents

数据保存方法及装置、存储介质、电子装置 Download PDF

Info

Publication number
CN113157610A
CN113157610A CN202110552666.8A CN202110552666A CN113157610A CN 113157610 A CN113157610 A CN 113157610A CN 202110552666 A CN202110552666 A CN 202110552666A CN 113157610 A CN113157610 A CN 113157610A
Authority
CN
China
Prior art keywords
tag
data
label
completion
group
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
CN202110552666.8A
Other languages
English (en)
Other versions
CN113157610B (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110552666.8A priority Critical patent/CN113157610B/zh
Publication of CN113157610A publication Critical patent/CN113157610A/zh
Application granted granted Critical
Publication of CN113157610B publication Critical patent/CN113157610B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/0026PCI express

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)

Abstract

本发明提供了一种数据保存方法及装置、存储介质、电子装置,其中,上述方法包括:将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,多个标签组中的每个标签组均包括有多个标签;向数据完成方发送多个请求报文,并将多个标签组中的任一标签组的占用状态置位,其中,多个请求报文与任一标签组的多个标签一一对应;接收数据完成方携带在任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;确定多个标签序号对应的多个目标缓存地址,并将多个完成报文保存在多个目标缓存地址对应的存储位置,其中,多个完成报文与多个请求报文对应。

Description

数据保存方法及装置、存储介质、电子装置
技术领域
本发明涉及通信领域,具体而言,涉及一种数据保存方法及装置、存储介质、电子装置。
背景技术
随着信息技术的发展,采用串行、点对点互联方式的PCIe(Peripheral ComponentInterconnect Express,简称PCI-E)接口凭借其较高的性能、较高的数据传输效率得到快速发展及应用,成为新一代计算机系的标准总线接口。根据PCIe协议,设备间的大数据量传输一般采用主动写、主动读两种模式实现。其中,在主动读模式时,完成方,也即是数据发送方,响应给数据请求方的携带数据的完成报文并不是按照数据请求方发送的请求先后顺序到达,即存在“完成报文乱序”情况。现有技术通过标签来传输完成报文,通过标签携带完成报文待缓存地址来解决上述完成报文乱序的问题,但是标签个数多的情况下,每个标签都需要携带完成报文待缓存地址,上述情况会造成不必要的工作,同时对管理标签也带来了许多问题。由此可见,现有技术在解决上述完成报文乱序的问题时,又引入了其他问题。
针对相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据保存方法及装置、存储介质、电子装置,以解决相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题。
根据本发明的一个实施例,提供了一种数据保存方法,包括:将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
可选的,向所述数据完成方发送多个请求报文之前,所述方法还包括:分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址;将携带有所述多个起始源地址的多个请求报文发送至所述数据完成方,以指示所述数据完成方根据所述多个起始源地址获取所述多个完成报文。
可选的,分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址,包括:根据以下公式确定所述多个起始源地址Sa_X:Sa_X=(Sa+(Cnt*G*N+X*N)*L),其中,Sa是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带数据的长度。
可选的,确定多个标签序号对应的多个目标缓存地址,包括:根据所述多个标签序号中的任一标签序号,确定所述任一标签序号与所述任一标签组的首个标签的差值;根据所述差值确定所述任一标签序号对应的多个目标缓存地址。
可选的,根据所述差值确定所述任一标签序号对应的多个目标缓存地址,包括:通过以下公式确定所述任一标签组在所述数据接收方的目标起始地址Da_X:Da_X=(Da+(Cnt*G*N+X*N)*L),其中,Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带所述完成报文的长度;根据所述目标起始地址Da_X以及所述差值确定所述任一标签序号对应的多个目标缓存地址。
可选的,在所述任一标签组的任一标签携带有多个完成报文的情况下,所述方法还包括:根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b:Da_b=Da_X+(Z-S)*L+(L-Zbcnt),其中,Z是所述任一标签组的任一标签的标签序号,多个标签组的多个标签的标签序号是从零开始的连续自然数,所有标签组的所有标签的标签序号按照自然数顺序依次排序,S是所述任一标签组的首个标签的标签序号,Da_X是所述数据接收方的目标起始地址,L是任一标签所携带所述完成报文的长度,Zbcnt是所述数据请求方已经接受的完成报文的字节数目。
可选的,根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b之前,所述方法还包括:根据所述任一标签携带的ByteCount字段中的Zbcnt确定所述任一标签携带的多个完成报文是否被接收完毕,其中,在Zbcnt等于L的情况下,确定所述任一标签携带的多个完成报文被接收完毕,在Zbcnt不等于L的情况下,确定所述任一标签携带的多个完成报文没有被接收完毕。
根据本发明的另一个实施例,还提供了一种数据保存装置,包括:分组模块,用于将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;发送模块,用于向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;接收模块,用于接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;保存模块,用于确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行以上任一项中所述的方法。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行以上任一项中所述的方法。
通过本发明,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。也就是说,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,通过多个标签组向数据请求方传输数据,根据所述多个标签序号,就可以确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置。采用上述技术方案,解决相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题,从而提高传输数据的工作效率,方便标签的管理。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种数据保存方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种数据保存方法的流程图;
图3是根据本发明实施例的一种数据传输过程的示意图;
图4是根据本发明实施例的一种传输数据的示意图;
图5是根据本发明实施例的一种传输数据的流程图;
图6是根据本发明实施例的一种传输数据结果的示意图;
图7是根据本发明实施例的一种标签携带多个完成报文的数据传输的流程图;
图8是根据本发明实施例的一种标签携带多个完成包报文的示意图;
图9是根据本发明实施例的一种数据保存方法的流程示意图;
图10是根据本发明实施例的一种数据保存装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在计算机终端,或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据保存方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据保存方法的对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据保存方法,应用于上述计算机终端,图2是根据本发明实施例的一种数据保存方法的流程图,该流程包括如下步骤:
步骤S202:将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
步骤S204:向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
步骤S206:接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
步骤S208:确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
通过本发明,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,通过多个标签组向数据请求方传输数据,根据所述多个标签序号,就可以确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置。采用上述技术方案,解决相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题,从而提高传输数据的工作效率,方便标签的管理。
图3是根据本发明实施例的一种数据传输过程的示意图,如图3所示:
请求报文发送单元向数据完成方也即是主机发送MRD,其中,MRD代表请求报文Mrd,也可以写为,同时请求报文发送单元向完成报文管理单元发送TAG信息,其中,TAG代表标签;数据完成方根据请求报文发送单元发送的MRD,向完成报文管理单元发送CPLD,其中,CPLD代表完成报文,也可以写为cpld,CPLD是由TAG携带的;完成报文管理单元在接收到数据完成方完发送的CPLD之后,释放TAG,并将TAG释放信息发送给请求报文发送单元,请求报文发送单元就可以再次向数据完成方也即是主机发送MRD;完成报文管理单元将接收到的CPLD保存到数据存储目的单元。
本发明提出一种基于PCIe协议的数据传输实现方法,主旨是解决PCIe的主动读模式下传输完成报文会遇到的乱序及拆包传输的问题。本发明的主要思想是将TAG标签个数平均分成多组,同一TAG组内的所有标签释放后才能再次使用该组内的标签;按照TAG组进行标签信息管理,在较大程度上减少标签信息管理数量及复杂度;本发明所述实现方法可以使标签顺序发放、乱序回收,达到保证标签周转利用率、数据传输效率的同时降低方案实现复杂度的目的。
在执行步骤S204之前,也就是向所述数据完成方发送多个请求报文之前,所述方法还包括:分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址;将携带有所述多个起始源地址的多个请求报文发送至所述数据完成方,以指示所述数据完成方根据所述多个起始源地址获取所述多个完成报文。
需要说明的是,向所述数据完成方发送的多个请求报文携带所述多个请求报文对应的在所述数据完成方的多个起始源地址,所述数据完成方在接收到所述多个请求报文之后,根据所述多个请求报文携带的多个起始源地址获取数据,通过多个标签组的多个标签向数据请求方传输上述数据。
图4是根据本发明实施例的一种传输数据的示意图,如图4所示:
数据请求方分两组向所述数据完成方发送请求报文,其中,每组可以有四个请求报文,第一组请求报文是Mrd_0、Mrd_1、Mrd_2、Mrd_3,第二组请求报文是Mrd_4、Mrd_5、Mrd_6、Mrd_7。需要说明的是,每个请求报文对应一个标签,请求报文请求的数据由对应标签传输,每组请求报文对应一个标签组。所述数据完成方在接收到八个请求报文后,就可以根据上述请求报文携带所述多个请求报文对应的在所述数据完成方的多个起始源地址获取数据,最后通过两个标签组各自的四个标签向数据请求方传输上述数据。第一个标签组的四个标签传输的完成报文是cpld_0、cpld_1、cpld_2、cpld_3,第二个标签组的四个标签传输的完成报文是cpld_4、cpld_5、cpld_6、cpld_7。
向所述数据完成方发送多个请求报文之前,需要分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址,包括:根据以下公式确定所述多个起始源地址Sa_X:Sa_X=(Sa+(Cnt*G*N+X*N)*L),其中,Sa是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带数据的长度。
需要说明的是,向所述数据完成方发送多个请求报文之前,数据请求方只能得知的是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址Sa,数据请求方需要根据Sa以及其他参数分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址,其中,其他参数包括Sa_X=(Sa+(Cnt*G*N+X*N)*L)中涉及的所有参数。Cnt是所述任一标签组的循环使用次数,比如第一标签组第一次使用,那么Cnt为零,第一标签组第二次使用,那么Cnt为一。数据请求方接收到数据完成方完发送的CPLD之后,释放对应的TAG,释放的TAG就可以用于传输下一轮的MRD,多次使用TAG,直至数据请求方请求的数据完全传输完毕。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。两个标签组第一次传输数据,那么第一个标签组的起始源地址:Sa_1=Sa,那么第二个标签组的起始源地址:Sa_1=Sa+4L。
在步骤S204中,确定多个标签序号对应的多个目标缓存地址,包括:根据所述多个标签序号中的任一标签序号,确定所述任一标签序号与所述任一标签组的首个标签的差值;根据所述差值确定所述任一标签序号对应的多个目标缓存地址。
需要说明的是,数据请求方接收到标签组的多个标签中的多个完成报文,数据请求方可以得知的是Da,其中Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,数据请求方可以根据Da求得所述多个请求报文对应的在所述数据完成方的多个目标缓存地址Da_X,根据Da_X以及所述任一标签序号与所述任一标签组的首个标签的差值确定所述任一标签序号对应的多个目标缓存地址。
图5是根据本发明实施例的一种传输数据的流程图,如图5所示:
将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。图5是用来说明标签组0的数据传输过程,其中,加阴影的标签表示携带数据,没加阴影的标签表示该标签被置位。需要说明的是,本发明的标签组是从零开始排序的。
S502:在t0时刻,数据请求方根据PCIe协议设定每个标签读取的数据长度L(单位是字节,典型值如128字节),数据请求方将SA、DA、TAG组0的第一个TAG标签0共3个变量放在寄存器变量中进行缓存,数据请求方依次发送TAG组0读标签分别为0、1、2、3的读请求报文Mrd_0、Mrd_1、Mrd_2、Mrd_3共四个读请求报文并将四个读标签的占用状态置位(四个读请求报文的长度均为L字节,其中Mrd_0报文的读地址为SA,Mrd_1报文的读地址为SA+L,Mrd_2报文的读地址为SA+2L,Mrd_3报文的读地址为SA+3L);
S504:在t1时刻,TAG组0的携带数据的完成报文cpld_1返回数据请求方,数据请求方将读标签1的占用状态清零。用cpld_1报文中携带的标签序号1减去缓存在寄存器中的TAG组0的第一个TAG标签0,得知这是TAG组0的第1个标签,因此得到其缓存目的地址为DA+L。TAG组0的携带数据的完成报文cpld_2返回,将读标签2的占用状态清零。用cpld_2报文中携带的标签序号2减去缓存在寄存器中的TAG组0的第一个TAG标签0,得知这是TAG组0的第2个标签,因此得到其缓存目的地址为DA+2L。TAG组0的携带数据的完成报文cpld_0返回,将读标签0的占用状态清零。用cpld_0报文中携带的标签序号0减去缓存在寄存器中的TAG组0的第一个TAG标签0,得知这是TAG组0的第0个标签,因此得到其缓存目的地址为DA。TAG组0的携带数据的完成报文cpld_3返回,将标签3的占用状态清零;用cpld_3报文中携带的标签序号0减去缓存在寄存器中的TAG组0的第一个TAG标签0,得知这是TAG组0的第3个标签,因此得到其缓存目的地址为DA+3L。TAG组0的四个读标签全部为可用状态,根据读取长度判断是否继续发起读操作。
S506:在T2时刻,数据请求方第二次发起读操作时,根据TAG组数为2、每组的TAG数为4,更新寄存器中的完成方数据对应的起始源地址为SA+(2*4)L、TAG组0返回报文在所述数据接收方待缓存的完成报文的起始地址为DA+(2*4)L。TAG组0的第一个TAG标签0保持不变。依次发送TAG组0读标签分别为0、1、2、3的读请求报文Mrd_0、Mrd_1、Mrd_2、Mrd_3共四个读请求报文并将四个读标签的占用状态置位(四个读请求报文的长度均为L字节,其中Mrd_0报文的读地址为SA+8L,Mrd_1报文的读地址为SA+9L,Mrd_2报文的读地址为SA+10L,Mrd_3报文的读地址为SA+11L);
S508:在T3时刻,数据请求方等待完成报文返回,并按照步骤S504同样的原理进行得到各个目的报文的缓存目的地址。
根据所述差值确定所述任一标签序号对应的多个目标缓存地址,包括:通过以下公式确定所述任一标签组在所述数据接收方的目标起始地址Da_X:Da_X=(Da+(Cnt*G*N+X*N)*L),其中,Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带所述完成报文的长度;根据所述目标起始地址Da_X以及所述差值确定所述任一标签序号对应的多个目标缓存地址。
需要说明的是,数据请求方接受请求报文对应的数据,数据请求方只能得知的是多个标签组中的首个标签组在所述数据完成方待缓存的完成报文的起始地址Da,数据请求方需要根据Da以及其他参数分别确定所述多个请求报文对应的在所述数据完成方的多个目标缓存地址Da_X,其中,其他参数包括Da_X=(Da+(Cnt*G*N+X*N)*L)中涉及的所有参数。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。两个标签组第一次传输数据,那么第一个标签组的目标起始地址:Da_1=Da,那么第二个标签组的起始源地址:Da_1=Da+4L。
图6是根据本发明实施例的一种传输数据结果的示意图,如图6所示:
将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。那么两个标签组第一次传输数据,数据请求方在目标起始地址Da处,开始缓存数据cpld_0_data、cpld_1_data、cpld_2_data、cpld_3_data,其中,比如cpld_0_data代表cpld_0所代表的完成报文数据;数据请求方在目标起始地址Da+4L处,开始缓存数据cpld_4_data、cpld_5_data、cpld_6_data、cpld_7_data。那么两个标签组第二次传输数据,数据请求方在目标起始地址Da+8L处,开始缓存数据cpld_0_data、cpld_1_data、cpld_2_data、cpld_3_data;数据请求方在目标起始地址Da+12L处,开始缓存数据cpld_4_data、cpld_5_data、cpld_6_data、cpld_7_data。
在一个可选实施例中,在所述任一标签组的任一标签携带有多个完成报文的情况下,所述方法还包括:根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b:Da_b=Da_X+(Z-S)*L+(L-Zbcnt)其中,Z是所述任一标签组的任一标签的标签序号,多个标签组的多个标签的标签序号是从零开始的连续自然数,所有标签组的所有标签的标签序号按照自然数顺序依次排序,S是所述任一标签组的首个标签的标签序号,Da_X是所述数据接收方的目标起始地址,L是任一标签所携带所述完成报文的长度,Zbcnt是所述数据请求方已经接受的完成报文的字节数目。
需要说明的是,一个标签可能携带有多个完成报文,在上述情境下,完成报文具体的缓存地址需要根据标签对应的目标缓存地址进行计算,才可以得出。可以根据公式Da_b=Da_X+(Z-S)*L+(L-Zbcnt)计算各个完成报文具体的缓存地址。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组第一次传输数据请求方请求的数据。假设标签组0的第二个标签携带两个完成报文,那么标签组0的第二个标签携带第二个完成报文的缓存位置:Da_b=Da+1*L+(L-Zbcnt)。需要说明的是,假设标签组0的第二个标签携带三个完成报文,那么标签组0的第二个标签携带第三个完成报文的缓存位置还是:Da_b=Da+1*L+(L-Zbcnt),其中Zbcnt是变量,Zbcnt会根据具体情境表示已经接收到的任一标签的报文的比特数目。
图7是根据本发明实施例的一种标签携带多个完成报文的数据传输的流程图,如图7所示:
将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。图7是在图5的基础上说明标签组0的标签1的携带两个完成报文,标签组0的数据传输过程,其中,加阴影的标签表示携带数据,没加阴影的标签表示该标签被置位。标签组0的标签1的携带两个完成报文,标签组0的标签1需要计算标签组0的标签1携带的第二个完成报文的地址后按照完成报文对应的缓存位置缓存数据。
在一个可选实施例中,根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b之前,所述方法还包括:根据所述任一标签携带的ByteCount字段中的Zbcnt确定所述任一标签携带的多个完成报文是否被接收完毕,其中,在Zbcnt等于L的情况下,确定所述任一标签携带的多个完成报文被接收完毕,在Zbcnt不等于L的情况下,确定所述任一标签携带的多个完成报文没有被接收完毕。
需要说明的是,将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。一个标签可能携带多个完成报文,那么再缓存下一个标签携带完成报文时,需要验证是否已经全部缓存上述携带多个完成报文的标签携带的完成报文。除了上述可选实施例,本发明还通过了一个可选实施例来验证是否已经全部缓存上述携带多个完成报文的标签携带的完成报文:根据所述任一标签数据携带的Length字段中的Zlen判断所述任一标签携带的多个完成报文是否被接收完毕,其中,当4*Zlen等于L时,所述任一标签携带的多个完成报文被接收完毕,当4*Zlen不等于L时,所述任一标签携带的多个完成报文没有被接收完毕,其中,Zlen是一个报文的4个字节的数目。
图8是根据本发明实施例的一种标签携带多个完成包报文的示意图,如图8所示:
cpld_1可以分为cpld_1_0和cpld_1_1,其中,cpld_1_0和cpld_1_1都在标签1上。cpld_1_0和cpld_1_1的Length字段代表的长度是L/8,cpld_1_0和cpld_1_1的ByteCount字段代表的长度是L/2。需要说明的是,Length字段代表的长度由Length字段中的Zlen表示,ByteCount字段代表的长度由ByteCount字段中的Zbcnt表示。
为了更好的理解上述技术方案,本发明还提供了一种可选实施例,用于解释说明上述技术方案。
图9是根据本发明实施例的一种数据保存方法的流程示意图,如图9所示:
S902:主机通过PCIe总线协议建立与设备的通信,建立通信后主机根据PCIe协议确定PCIe传输的报文最大载荷长度L;
S904:设备侧接收到主动读传输命令,同时得到控制端下发的地址Sa和Da,以及报文最大载荷长度L;
S906:设备侧根据参数设置参数:TAG组数G(典型值:2),每组TAG个数N(典型值:4或8),每组TAG起始编号S(默认要求每组TAG编号连续);
S908:按照顺序发送本组的N个Mrd读请求,缓存Sa和Da,将本组的标签都置位;
S910:根据本次读取的计数Cnt(从0开始),计算出本组的地址Sa_X=(Sa+(Cnt*G*N+N*X)*L)、Da_X=(Da+(Cnt*G*N+X)*L),并且缓存完成报文;
S912:判断本组标签是否完全被释放,没释放完毕,继续缓存完成报文,释放完毕,执行S914;
S914:判断所请求的数据是否传输完毕,如果传输完毕,执行步骤S916,如果没有传输完毕,执行步骤S908;
S916:传输数据结束;
S918:标签组X传输数据,执行S908-S914。
通过本发明,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,通过多个标签组向数据请求方传输数据,根据所述多个标签序号,就可以确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置。采用上述技术方案,解决相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题,从而提高传输数据的工作效率,方便标签的管理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据保存装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本发明实施例的一种数据保存装置的结构框图,如图10所示,包括:
分组模块100,用于将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
发送模块102,用于向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
接收模块104,用于接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
保存模块106,用于确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
通过本发明,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,通过多个标签组向数据请求方传输数据,根据所述多个标签序号,就可以确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置。采用上述技术方案,解决相关技术中,在根据PCIe协议主动读数据时,每个标签都需要携带完成报文待缓存地址,进而造成不必要的工作,以及管理标签复杂的问题,从而提高传输数据的工作效率,方便标签的管理。
可选的,分组模块100还用于分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址;将携带有所述多个起始源地址的多个请求报文发送至所述数据完成方,以指示所述数据完成方根据所述多个起始源地址获取所述多个完成报文。
需要说明的是,向所述数据完成方发送的多个请求报文携带所述多个请求报文对应的在所述数据完成方的多个起始源地址,所述数据完成方在接收到所述多个请求报文之后,根据所述多个请求报文携带的多个起始源地址获取数据,通过多个标签组的多个标签向数据请求方传输上述数据。
可选的,分组模块100还用于根据以下公式确定所述多个起始源地址Sa_X:Sa_X=(Sa+(Cnt*G*N+X*N)*L),其中,Sa是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带数据的长度。
需要说明的是,向所述数据完成方发送多个请求报文之前,数据请求方只能得知的是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址Sa,数据请求方需要根据Sa以及其他参数分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址,其中,其他参数包括Sa_X=(Sa+(Cnt*G*N+X*N)*L)中涉及的所有参数。Cnt是所述任一标签组的循环使用次数,比如第一标签组第一次使用,那么Cnt为零,第一标签组第二次使用,那么Cnt为一。数据请求方接收到数据完成方完发送的CPLD之后,释放对应的TAG,释放的TAG就可以用于传输下一轮的MRD,多次使用TAG,直至数据请求方请求的数据完全传输完毕。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。两个标签组第一次传输数据,那么第一个标签组的起始源地址:Sa_1=Sa,那么第二个标签组的起始源地址:Sa_1=Sa+4L。
可选的,发送模块102还用于根据所述多个标签序号中的任一标签序号,确定所述任一标签序号与所述任一标签组的首个标签的差值;根据所述差值确定所述任一标签序号对应的多个目标缓存地址。
需要说明的是,数据请求方接收到标签组的多个标签中的多个完成报文,数据请求方可以得知的是Da,其中Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,数据请求方可以根据Da求得所述多个请求报文对应的在所述数据完成方的多个目标缓存地址Da_X,根据Da_X以及所述任一标签序号与所述任一标签组的首个标签的差值确定所述任一标签序号对应的多个目标缓存地址。
可选的,发送模块102还用于通过以下公式确定所述任一标签组在所述数据接收方的目标起始地址Da_X:Da_X=(Da+(Cnt*G*N+X*N)*L),其中,Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带所述完成报文的长度;根据所述目标起始地址Da_X以及所述差值确定所述任一标签序号对应的多个目标缓存地址。
需要说明的是,数据请求方接受请求报文对应的数据,数据请求方只能得知的是多个标签组中的首个标签组在所述数据完成方待缓存的完成报文的起始地址Da,数据请求方需要根据Da以及其他参数分别确定所述多个请求报文对应的在所述数据完成方的多个目标缓存地址Da_X,其中,其他参数包括Da_X=(Da+(Cnt*G*N+X*N)*L)中涉及的所有参数。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。两个标签组第一次传输数据,那么第一个标签组的目标起始地址:Da_1=Da,那么第二个标签组的起始源地址:Da_1=Da+4L。
可选的,接收模块104还用于根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b:Da_b=Da_X+(Z-S)*L+(L-Zbcnt),其中,Z是所述任一标签组的任一标签的标签序号,多个标签组的多个标签的标签序号是从零开始的连续自然数,所有标签组的所有标签的标签序号按照自然数顺序依次排序,S是所述任一标签组的首个标签的标签序号,Da_X是所述数据接收方的目标起始地址,L是任一标签所携带所述完成报文的长度,Zbcnt是所述数据请求方已经接受的完成报文的字节数目。
需要说明的是,一个标签可能携带有多个完成报文,在上述情境下,完成报文具体的缓存地址需要根据标签对应的目标缓存地址进行计算,才可以得出。可以根据公式Da_b=Da_X+(Z-S)*L+(L-Zbcnt)计算各个完成报文具体的缓存地址。举例说明:将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组第一次传输数据请求方请求的数据。假设标签组0的第二个标签携带两个完成报文,那么标签组0的第二个标签携带第二个完成报文的缓存位置:Da_b=Da+1*L+(L-Zbcnt)。需要说明的是,假设标签组0的第二个标签携带三个完成报文,那么标签组0的第二个标签携带第三个完成报文的缓存位置还是:Da_b=Da+1*L+(L-Zbcnt),其中Zbcnt是变量,Zbcnt会根据具体情境表示已经接收到的任一标签的报文的比特数目。
可选的,接收模块104还用于根据所述任一标签携带的ByteCount字段中的Zbcnt确定所述任一标签携带的多个完成报文是否被接收完毕,其中,在Zbcnt等于L的情况下,确定所述任一标签携带的多个完成报文被接收完毕,在Zbcnt不等于L的情况下,确定所述任一标签携带的多个完成报文没有被接收完毕。
需要说明的是,将八个标签分为两组,其中,一个标签组有四个标签,通过两个标签组多次传输数据请求方请求的数据。一个标签可能携带多个完成报文,那么再缓存下一个标签携带完成报文时,需要验证是否已经全部缓存上述携带多个完成报文的标签携带的完成报文。除了上述可选实施例,本发明还通过了一个可选实施例来验证是否已经全部缓存上述携带多个完成报文的标签携带的完成报文:根据所述任一标签数据携带的Length字段中的Zlen判断所述任一标签携带的多个完成报文是否被接收完毕,其中,当4*Zlen等于L时,所述任一标签携带的多个完成报文被接收完毕,当4*Zlen不等于L时,所述任一标签携带的多个完成报文没有被接收完毕,其中,Zlen是一个报文的4个字节的数目。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
S2,向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
S3,接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
S4,确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
S2,向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
S3,接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
S4,确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
可选地,在本可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据保存方法,其特征在于,包括:
将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
2.根据权利要求1所述的方法,其特征在于,向所述数据完成方发送多个请求报文之前,所述方法还包括:
分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址;
将携带有所述多个起始源地址的多个请求报文发送至所述数据完成方,以指示所述数据完成方根据所述多个起始源地址获取所述多个完成报文。
3.根据权利要求2所述的方法,其特征在于,分别确定所述多个请求报文对应的在所述数据完成方的多个起始源地址,包括:
根据以下公式确定所述多个起始源地址Sa_X:
Sa_X=(Sa+(Cnt*G*N+X*N)*L),其中,Sa是多个标签组中的首个标签组在所述数据完成方待获取的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带数据的长度。
4.根据权利要求1所述的方法,其特征在于,确定多个标签序号对应的多个目标缓存地址,包括:
根据所述多个标签序号中的任一标签序号,确定所述任一标签序号与所述任一标签组的首个标签的差值;
根据所述差值确定所述任一标签序号对应的多个目标缓存地址。
5.根据权利要求4所述的方法,其特征在于,根据所述差值确定所述任一标签序号对应的多个目标缓存地址,包括:
通过以下公式确定所述任一标签组在所述数据接收方的目标起始地址Da_X:
Da_X=(Da+(Cnt*G*N+X*N)*L),其中,Da是所述多个标签组中的首个标签组在所述数据接收方待缓存的完成报文的起始地址,Cnt是所述任一标签组的循环使用次数,Cnt为正整数,G是所述多个标签组的数量,N是所述多个标签的数目,X是标签组的序号,多个标签组的序号是从零开始的连续的自然数,且X的最大值为G-1,L是任一标签所携带所述完成报文的长度;
根据所述目标起始地址Da_X以及所述差值确定所述任一标签序号对应的多个目标缓存地址。
6.根据权利要求1所述的方法,其特征在于,在所述任一标签组的任一标签携带有多个完成报文的情况下,所述方法还包括:
根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b:
Da_b=Da_X+(Z-S)*L+(L-Zbcnt),
其中,Z是所述任一标签组的任一标签的标签序号,多个标签组的多个标签的标签序号是从零开始的连续自然数,所有标签组的所有标签的标签序号按照自然数顺序依次排序,S是所述任一标签组的首个标签的标签序号,Da_X是所述数据接收方的目标起始地址,L是任一标签所携带所述完成报文的长度,Zbcnt是所述数据请求方已经接受的完成报文的字节数目。
7.根据权利要求6所述的方法,其特征在于,根据以下公式确定携带有所述多个完成报文的缓存目的地址Da_b之前,所述方法还包括:
根据所述任一标签携带的ByteCount字段中的Zbcnt确定所述任一标签携带的多个完成报文是否被接收完毕,其中,在Zbcnt等于L的情况下,确定所述任一标签携带的多个完成报文被接收完毕,在Zbcnt不等于L的情况下,确定所述任一标签携带的多个完成报文没有被接收完毕。
8.一种数据保存装置,其特征在于,包括:
分组模块,用于将数据请求方与数据完成方进行数据传输所使用的标签分成多个标签组,其中,所述多个标签组中的每个标签组均包括有多个标签;
发送模块,用于向所述数据完成方发送多个请求报文,并将所述多个标签组中的任一标签组的占用状态置位,其中,所述多个请求报文与所述任一标签组的多个标签一一对应;
接收模块,用于接收所述数据完成方携带在所述任一标签组的多个标签中的多个完成报文,其中,所述完成报文中携带有标签序号;
保存模块,用于确定多个标签序号对应的多个目标缓存地址,并将所述多个完成报文保存在所述多个目标缓存地址对应的存储位置,其中,所述多个完成报文与所述多个请求报文对应。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
CN202110552666.8A 2021-05-20 2021-05-20 数据保存方法及装置、存储介质、电子装置 Active CN113157610B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110552666.8A CN113157610B (zh) 2021-05-20 2021-05-20 数据保存方法及装置、存储介质、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110552666.8A CN113157610B (zh) 2021-05-20 2021-05-20 数据保存方法及装置、存储介质、电子装置

Publications (2)

Publication Number Publication Date
CN113157610A true CN113157610A (zh) 2021-07-23
CN113157610B CN113157610B (zh) 2023-03-14

Family

ID=76876772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110552666.8A Active CN113157610B (zh) 2021-05-20 2021-05-20 数据保存方法及装置、存储介质、电子装置

Country Status (1)

Country Link
CN (1) CN113157610B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226718A (zh) * 2012-01-30 2013-07-31 Nxp股份有限公司 用于管理rfid标签的系统和方法
CN103532875A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie应用层接口的重排序技术
CN105260332A (zh) * 2015-09-09 2016-01-20 北京三未信安科技发展有限公司 一种对cpld数据包进行有序存储的方法及系统
CN205263799U (zh) * 2015-12-11 2016-05-25 中国航空工业集团公司西安航空计算技术研究所 一种PCIe链路乱序响应包的处理电路
US20160239422A1 (en) * 2015-02-17 2016-08-18 Gainspan Corporation External memory tagging and stack ordering of memory tags
CN107766270A (zh) * 2017-10-20 2018-03-06 深圳市风云实业有限公司 用于PCIe设备的数据读取管理方法及装置
CN111143421A (zh) * 2019-12-26 2020-05-12 杭州数梦工场科技有限公司 数据共享方法及装置、电子设备、存储介质
CN111371634A (zh) * 2018-12-26 2020-07-03 华为技术有限公司 一种通信方法、装置及系统
CN111581311A (zh) * 2020-04-21 2020-08-25 拉扎斯网络科技(上海)有限公司 一种数据处理的方法、装置、可读存储介质和电子设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226718A (zh) * 2012-01-30 2013-07-31 Nxp股份有限公司 用于管理rfid标签的系统和方法
CN103532875A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种用于pcie应用层接口的重排序技术
US20160239422A1 (en) * 2015-02-17 2016-08-18 Gainspan Corporation External memory tagging and stack ordering of memory tags
CN105260332A (zh) * 2015-09-09 2016-01-20 北京三未信安科技发展有限公司 一种对cpld数据包进行有序存储的方法及系统
CN205263799U (zh) * 2015-12-11 2016-05-25 中国航空工业集团公司西安航空计算技术研究所 一种PCIe链路乱序响应包的处理电路
CN107766270A (zh) * 2017-10-20 2018-03-06 深圳市风云实业有限公司 用于PCIe设备的数据读取管理方法及装置
CN111371634A (zh) * 2018-12-26 2020-07-03 华为技术有限公司 一种通信方法、装置及系统
CN111143421A (zh) * 2019-12-26 2020-05-12 杭州数梦工场科技有限公司 数据共享方法及装置、电子设备、存储介质
CN111581311A (zh) * 2020-04-21 2020-08-25 拉扎斯网络科技(上海)有限公司 一种数据处理的方法、装置、可读存储介质和电子设备

Also Published As

Publication number Publication date
CN113157610B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
KR100775406B1 (ko) Dma 데이터 전송 장치 및 dma 데이터 전송 방법
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN110149374B (zh) 一种文件传输方法、终端设备及计算机可读存储介质
CN114556881B (zh) 一种地址翻译方法及装置
CN112422485B (zh) 一种传输控制协议的通信方法及装置
CN112181887B (zh) 数据传输方法及装置
CN113177015B (zh) 基于帧头的串口通讯方法和串口芯片
CN113037649B (zh) 网络中断数据包的收发方法和装置、电子设备和存储介质
CN113986969A (zh) 数据处理方法、装置、电子设备和存储介质
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN113157610B (zh) 数据保存方法及装置、存储介质、电子装置
CN113238856A (zh) 一种基于rdma的内存管理方法及装置
CN110659143B (zh) 一种容器间的通讯方法、装置及电子设备
CN114003525B (zh) 数据传输的方法、模块、装置、设备及存储介质
CN111045817A (zh) 一种PCIe传输管理方法、系统和装置
CN112688870B (zh) 一种路由方法、路由装置及节点设备
CN114637574A (zh) 基于半虚拟化设备的数据处理方法、装置和系统
CN113609041A (zh) 一种数据传输方法及系统
CN115904488A (zh) 数据传输方法、系统、装置及设备
CN112511441A (zh) 报文的处理方法及装置
EP1752877A2 (en) A processing module
CN113422792A (zh) 数据传输方法、装置、电子设备及计算机存储介质
CN104850517A (zh) 一种dma传输报文数据的方法及装置
CN116226027B (zh) 数据传输系统、方法、装置、通信设备及存储介质
CN111614794B (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