CN104038450B - 基于pcie总线的报文传输方法与装置 - Google Patents
基于pcie总线的报文传输方法与装置 Download PDFInfo
- Publication number
- CN104038450B CN104038450B CN201310068224.1A CN201310068224A CN104038450B CN 104038450 B CN104038450 B CN 104038450B CN 201310068224 A CN201310068224 A CN 201310068224A CN 104038450 B CN104038450 B CN 104038450B
- Authority
- CN
- China
- Prior art keywords
- transaction layer
- data message
- layer data
- message
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于PCIE总线的报文传输方法与装置,该方法包括:接收数据传输请求,并根据数据传输请求判断数据传输请求所请求的待传输数据是否具备压缩条件;若具备压缩条件,则将待传输数据封装在至少两个数据报文中;其中,所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值;将至少两个数据报文通过PCIE总线传输给对端设备。本发明实施例提供的基于PCIE总线的报文传输方法与装置,在传输过程中实现节约信道资源。
Description
技术领域
本发明涉及通信技术,尤其涉及一种基于PCIE总线的报文传输方法与装置。
背景技术
外围组件互连快递(Peripheral Component Interconnect Express,简称PCIE)总线是一种采用端对端的连接方式的高速差分总线,具有三个层次:物理层、数据链路层和事务层,其中事务层是所有层次中的最高层。PCIE具有多种总线事务,包括:存储器读请求总线事务、存储器写请求总线事务、输入/输出读和写请求总线事务以及配置读和写请求总线事务等。在使用PCIE总线进行数据传输时,在事务层中,需要将待传输数据采用事务层数据报文(Transaction Lay Packet,简称TLP)的格式将所要传输的数据封装成至少一个TLP,再通过PCIE总线的多个层次发送出去。在实际传输数据过程中,将一份数据按照一定字节长度切割成多份数据,并对上述多份数据分别封装成TLP,通常属于一份数据对应的多个TLP都会对一段连续的地址空间进行读或写。
现有技术中,在将所传输的数据封装为多个TLP后,每一个TLP中,除了必要的数据信息外,每个TLP的包头中都包含TLP的长度信息、TLP的类型信息、标识该TLP在传输时的各种特性与支持的传输功能的信息、地址字段信息、以及没有确定含义的保留字段等额外信息。当设备A接到另一个设备B传输的TLP,根据每个TLP的包头就可以将各个TLP还原为待传输数据,执行写入或读取等操作,当对应一份数据的多个TLP全部到达设备A时,即完成一次数据的传输。
在现有技术的使用PCIE总线传输数据的过程中,TLP中包含不必要的冗余信息,额外的冗余信息占用了宝贵的数据信道资源,并且在对应一份数据的多个TLP中,每个TLP中都包含与其他TLP相同或相近的额外的冗余信息,因此在数据传输的过程中,会存在大量的冗余信息,并且传输冗余信息对宝贵的数据信道资源造成很大的浪费。
发明内容
本发明提供一种基于PCIE总线的报文传输方法与装置,用以节约数据信道资源,进而提高数据的传输效率。
第一方面,本发明实施例提供一种基于PCIE总线的报文传输方法,该方法包括:
接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;
若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;与所述完全事务层数据报文相比,所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值;
将所述至少两个数据报文通过PCIE总线传输给对端设备。
在第一方面的第一种可能的实现方式中,所述接收数据传输请求,并根据所述数据传输请求判断待传输数据是否具备压缩条件包括:
接收数据传输请求;
判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件包括:
判断所述数据传输请求的类型是否为DMA数据读写请求;
若是DMA数据读写请求,则判断所述DMA数据读写请求的读写地址是否连续;
若读写地址连续,则所述DMA数据读写请求的待传输数据具备压缩条件。
结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式中任一种可能的实现方式,在第三种可能的实现方式中,所述压缩事务层数据报文的包头缺少的至少一个字段包括:数据报文长度字段和字节使能字段。
结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述压缩事务层数据报文配置压缩信息的字段包括目标地址字段,在该字段配置的压缩信息为地址偏移量;所述地址偏移量为所述压缩事务层数据报文的目标地址相对于完全事务层数据报文的目标地址的地址偏移量。
结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述若具备压缩条件,则将所述待传输数据封装在至少两个数据报文包括:
若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
结合第一方面、第一方面的第一种可能的实现方式或第二种可能的实现方式中任一种可能的实现方式,在第六种可能的实现方式中,所述若具备压缩条件,则将所述待传输数据封装在至少两个数据报文包括:
若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。
第二方面,本发明实施例提供一种基于外围组件互连快递PCIE总线的报文传输方法,该方法包括:接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;
当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;
当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;
拼接各事务层数据报文以获取对端设备数据发送的待传输数据。
在第二方面的第一种可能的实现方式中,所述接收对端设备基于PCIE总线传输的事务层数据报文并进行识别包括:
接收对端设备基于PCIE总线传输的事务层数据报文;
从所述事务层数据报文中解析设定字段的标识;
当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;
当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文,包括:
从所述压缩事务层数据报文的目标地址字段中获得地址偏移量;
从与所述压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;
将地址偏移量与基地址相加,得到所述压缩数据层报文的目标地址信息。
第三方面,本发明实施例提供一种基于外围组件互连快递PCIE总线的报文传输装置,该装置包括:接收判断模块,用于接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;
封装模块,用于若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;与所述完全事务层数据报文相比,所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值;
传输模块,用于将所述至少两个数据报文通过PCIE总线传输给对端设备。
在第三方面的第一种可能的实现方式中,所述接收模块,包括:
第一接收单元,用于接收数据传输请求;
判断单元,用于判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件。
根据第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述判断单元具体用于:
判断所述数据传输请求的类型是否为直接内存存取DMA数据读写请求,所述DMA数据读写请求包含DMA数据写请求和DMA数据读请求;
若是DMA数据读写请求,则判断所述DMA数据读写请求的读写地址是否连续;
若读写地址连续,则所述DMA数据读写请求的待传输数据具备压缩条件。
结合第三方面、第三方面的第一种可能的实现方式及第二种可能的实现方式中任一种可能的实现方式,在第三种可能的实现方式中,所述封装模块,包括:
等长封装单元,用于若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
结合本发明的第三方面、第三方面的第一种可能的实现方式及第二种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,所述封装模块,用于:若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。
第四方面,本发明实施例提供一种基于外围组件互连快递PCIE总线的报文传输装置,该装置包括:接收识别模块,用于接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;
获取模块,用于当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;
修复模块,用于当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;
拼接模块,用于拼接各事务层数据报文以获取对端设备数据发送的待传输数据。
在第四方面的第一种可能的实现方式中,所述接收识别模块包括:
第二接收单元,用于接收对端设备基于PCIE总线传输的事务层数据报文;
标识解析单元,用于从所述事务层数据报文中解析设定字段的标识;
完全报文识别单元,用于当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;
压缩报文识别单元,用于当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述修复模块具体用于:
从所述压缩事务层数据报文的目标地址字段中获得地址偏移量;
从与所述压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;
将地址偏移量与基地址相加,得到所述压缩数据层报文的目标地址信息。
本发明实施例提供的基于PCIE总线的报文传输方法与装置,如果待传输数据具备压缩条件,则将待传输的数据封装成配置有完全事务层数据报文标识信息的一个完全事务层数据报文和至少一个压缩事务层数据报文,其中,压缩事务层数据报文中缺少至少一个字段或者在至少一个字段配置了压缩信息,使得压缩事务层数据报文相对于完全事务层数据报文传输的信息少,在接收端对压缩事务层数据报文进行恢复,在保证传输数据不出错的情况下,压缩后的数据报文去除了部分信息,在传输过程中实现节约信道资源。
附图说明
图1是本发明基于PCIE总线的报文传输方法实施例一的流程图;
图2是本发明基于PCIE总线的报文传输方法实施例二的流程图;
图3是本发明实施例中DMA数据读写请求发起端增加控制逻辑之后的流程图;
图4a是本发明实施例中DMA数据写请求的事务层数据报文中的头事务层数据报文包头格式示意图;
图4b是本发明实施例中数据写请求的事务层数据报文中中间事务层数据报文包头格式示意图;
图4c是本发明实施例中数据写请求的事务层数据报文中尾事务层数据报文包头格式示意图;
图5是本发明实施例中DMA接收端增加控制逻辑之后的流程图;
图6是本发明基于PCIE总线的报文传输装置实施例一的结构示意图;
图7是本发明基于PCIE总线的报文传输装置实施例二的结构示意图;
图8是本发明基于PCIE总线的报文传输发起端设备的结构示意图;
图9是本发明基于PCIE总线的报文传输接收端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明基于PCIE总线的报文传输方法实施例一的流程图,本发明实施例可适用于任意基于PCIE总线交互的设备中,由该设备中的报文传输装置来执行。如图1所示,本实施例提供的基于PCIE总线的报文传输方法包括:
步骤101、接收数据传输请求,并根据数据传输请求判断数据传输请求所请求的待传输数据是否具备压缩条件。
具体地,基于PCIE总线交互的设备接收数据传输请求,该数据传输请求可以是数据写请求,也可以是数据读请求,基于PCIE总线交互的设备可以根据数据传输请求的类型判断数据传输请求是否具备压缩条件。
步骤102、若具备压缩条件,则将待传输数据封装在至少两个数据报文中;其中,至少两个数据报文的第一个数据报文为完全事务层数据报文和至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各数据报文中配置有标识数据报文为完全事务层数据报文或压缩事务层数据报文的信息;所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值。配置压缩信息的字段通常是事务层数据报文中具有某些规律变化的字段,其特点是大部分信息相同而少部分信息不同,或者是字段内信息按照设定规律变化。
属于同一次待传输数据的数据报文的数据标识设置为相同值,以使当前次待传输数据的数据报文区别于其他次待传输数据的数据报文。
在实际应用中,如果确定该数据传输请求具备压缩条件,则将该数据传输请求所指定的待传输的数据按照一定字节数切割成子数据后,将其进行封装后再进行传输。例如,若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。并且由于中间事务层数据报文为压缩事务层数据报文,因此在中间事务层数据报文中删除与完全事务层数据报文相同字段,该与完全事务层数据报文相同字段可以具体为数据报文长度字段和字节使能字段配置的信息,因为即使没有这些字段,对端设备也可以根据完全事务层数据报文和压缩事务层数据报文中的信息获取压缩事务层数据报文的数据以及读取地址或储存地址。另外需要为完全事务层数据报文和压缩事务层数据报文配置相应的标识位,以使对端设备能够识别接收到的数据报文是完全事务层数据报文还是压缩事务层数据报文。在第一个事务层数据报文的各字段配置完整信息,该完整信息是指完全事务层数据报文的包头信息中包含全部字段及其字段信息,且在完全事务层数据报文的包头信息中的保留字段配置完全标识,以将所述事务层数据报文作为完全事务层数据报文;在剩余事务层数据报文与完全事务层数据报文的相近字段中配置压缩信息,或将压缩事务层数据报文中的与完全事务层数据报文相同字段删除,删除的相同字段可以是数据报文长度字段和字节使能字段,且在压缩事务层数据局报文的包头信息中的保留字段配置压缩标识,以将所述事务层数据报文作为压缩事务层数据报文。将待传输数据封装成至少两个数据报文中,在该两个数据报文中都设置有相同的数据标识,该数据标识用于表示数据报文属于一个待传输数据,以使当前次待传输数据的数据报文区别于其他次待传输数据的数据报文。在对端设备接收到数据报文时,可以区分属于不同次传输的数据报文,避免产生乱序的问题,保证接收数据的准确性。
步骤103、将至少两个数据报文通过PCIE总线传输给对端设备。
具体地,基于PCIE总线交互的设备将封装的完全事务层数据报文和压缩事务层数据报文根据PCIE总线的协议传输对端设备。该对端设备可以是PCIE设备。
本发明实施例提供的基于PCIE总线的报文传输方法,在数据传输过程中,通过判断数据传输请求的待传输数据是否具备压缩条件,如果具备压缩条件,则将待传输的数据封装成配置有完全事务层数据报文标识信息的一个完全事务层数据报文和配置压缩事务层数据报文的标识信息的至少一个压缩事务层数据报文,其中,压缩事务层数据报文中缺少与完全事务层数据报文的相同字段或压缩事务层数据报文与完全事务层数据报文相近字段中配置了压缩信息,以使压缩事务层数据报文相对与完全事务层数据报文传输的信息少,待传输数据封装在至少两个数据报文中,该至少两个数据报文中设置了相同值的数据标识,并将封装后的待传输数据通过PCIE总线传输给对端设备,以使对端设备可以根据数据标识接收属于一次待传输数据的至少两个数据报文,在保证传输数据不出错的情况下,压缩后的数据报文去除了部分信息,在传输过程中实现节约信道资源。
在上述实施例的基础上,步骤101可以具体为:接收数据传输请求;判断数据传输请求的是否为设定的可压缩请求,若是,则待传输数据具备压缩条件,否则,待传输数据不具备压缩条件。即可区分不同类型的数据传输请求来判定其是否可压缩。
例如,在数据写请求或数据读请求中,由于待传输数据在封装为多个事务层数据报文之后,大部分字段都相同,所以可作为可压缩请求。
本发明实施例提供的基于PCIE总线的报文传输方法,将事务层数据报文区分为携带完整信息和压缩信息两种,因而在压缩事务层数据报文中减少了与完全事务层数据报文的重复信息,在传输过程中实现节约信道资源。
进一步的,当写地址或读地址连续时,则目标地址字段只会发生顺序且有规律的变化,也可以进行压缩,不用携带完整的地址信息,而仅携带地址偏移量。所以,上述判断的步骤又可以具体是:
判断所述数据传输请求的类型是否为DMA数据写请求;
若是DMA数据写请求,则判断所述DMA数据写请求的写地址是否连续;
若写地址连续,则所述DMA数据写请求的待传输数据具备压缩条件。
或者是:
判断所述数据传输请求的类型是否为DMA数据读请求;
若是DMA数据读请求,则判断所述DMA数据读请求的读地址是否连续;
若读地址连续,则所述DMA数据读请求的待传输数据具备压缩条件。
更进一步地,区分完全事务层数据报文和压缩事务层数据报文的方式可以通过标识来实现,优选是以事务层数据报文中的保留字段携带完全标识或压缩标识来区分事务层数据报文。
在本发明实施例中,通过判断DMA数据的写请求的写地址是否连续或读请求的读地址是否连续,并且如果写地址或读地址连续,则表示具备压缩条件,并将具备压缩条件的中间事务层数据报文,删除重复字段,以及减少部分字段的信息后进行传输。
在上述实施例中,作为一种可选的实施方式,压缩事务层数据报文与完全事务层数据报文的相同字段至少包括:数据报文长度字段和字节使能字段。
具体地,在压缩事务层数据报文中缺少的字段包括:数据报文长度字段和字节使能字段,由于压缩事务层数据报文中相对于完全事务层数据报文缺少两个字段,节约了在传输压缩事务层数据报文过程中的信道资源,同时也提高了信道资源的利用率。
作为另一种可选的实施方式,压缩事务层数据报文配置压缩信息的字段包括目标地址字段,在该字段配置的压缩信息为地址偏移量;地址偏移量为压缩事务层数据报文的目标地址相对于完全事务层数据报文的目标地址的地址偏移量。
在实际应用中,目标地址字段占用数据报文中的8个字节,而如果将压缩事务层数据报文中的目标地址字段配置为地址偏移量,该地址偏移量占用数据报文中的4个字节,地址偏移量为压缩事务层数据报文的目标地址相对于完全事务层数据报文的目标地址的地址偏移量。因此通过将压缩事务层数据报文的目标地址字段配置为地址偏移量,减少了压缩事务层数据报文在传输过程中占用的信道资源。
本发明实施例提供的基于PCIE总线的报文传输方法,通过在完全事务层数据报文配置完整的信息,而压缩事务层数据报文配置的信息并不完整,压缩事务层数据报文中缺少与完全事务层数据报文的相同的数据报文长度字段和字节使能字段或将压缩事务层数据报文中的目标地址信息配置为地址偏移量,从而在数据传输过程中,可以有效节约信道资源。
在上述实施例的基础上,可以采用事务层数据报文中的保留字段携带标识的方式来区别完全事务层数据报文和压缩事务层数据报文。此外,数据报文可以非等长划分,但优选是等长划分,即所述若具备压缩条件,则将所述待传输数据封装在至少一个完全事务层数据报文和至少一个压缩事务层数据报文可包括:
若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
此外的非等长或等长划分方式为,若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。此方式适用于非等长划分方式,尾事务层数据报文的报文长度可以与头、中间事务层数据报文的报文长度不等。
具体地,一份数据切割成多个子数据,在对多个子数据封装成多个事务层数据报文的过程中,在判断当前的一份数据写入地址连续后,将其切割后的子数据封装在等长的至少两个事务层数据报文中,并且在属于同一份数据的第一个子数据封装的事务层数据报文的各字段配置完整信息,并且在第一个子数据的事务层报文的保留字段配置完全标识,表示该事务层数据报文中包含完整的数据报文信息。并在剩余的事务层报文与完全事务层数据报文的相同字段配置压缩信息,且在保留字段配置压缩标识,表示剩余的事务层数据报文属于当前一份数据中的其他子数据封装的事务层数据报文。
进一步地,实际应用中还存在一种情况,就是当前的一份数据不能切割成等分的多个子数据,在按照一定字节切割的过程中,可能尾事务层数据的长度与其他子数据的长度不一致,因此,在封装的过程中,就将待传输的数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,头事务层数据报文作为当前数据的第一个子数据事务层数据报文,包含完整的信息,属于完全事务层数据报文,中间事务层数据报文不需要包含完整的信息,属于压缩事务层数据报文,由于尾事务层数据报文与其他事务层数据报文不等长,因此也需要包含完整的信息,属于完全事务层数据报文。
图2是本发明基于PCIE总线的报文传输方法实施例二的流程图,本发明实施例可适用于任意基于PCIE总线交互的设备中,由该设备中的报文传输装置来执行。如图2所示,本发明实施例提供的基于PCIE总线的报文传输方法包括:
步骤201、接收对端设备通过PCIE总线传输的事务层数据报文并进行识别。
具体地,在接收到基于PCIE总线传输的事务层数据报文后,对事务层数据报文中保留字段的信息进行识别,判断接收到的事务层数据报文是完全事务层数据报文还是压缩事务层数据报文。
步骤202、当识别到事务层数据报文为完全事务层数据报文时,从完全事务层数据报文的各字段中获取完整信息。
具体地,如果识别为完全事务层数据报文,则将完全事务层数据报文中获取完整信息,该完整信息可包括:目标地址字段和数据报文长度字段等,并且目标地址字段作为基地址,而压缩数据报文长度字段作为地址增量的偏移量。
步骤203、当识别到事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的完全事务层数据报文中的完整信息恢复压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文。
具体地,步骤203可以为:当识别到事务层数据报文为压缩事务层数据报文时,从压缩事务层数据报文的目标地址字段中获得地址偏移量;从与压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;将地址偏移量与基地址相加,得到压缩数据层报文的目标地址信息。
如果识别为压缩事务层数据报文,则从压缩事务层数据报文中提取数据标识,该数据标识可以是DMA_ID字段。根据DMA_ID字段就可以判断当前接收到的事务层数据报文属于哪一次数据读请求或数据写请求,不会产生乱序,并且根据属于同一次待传输数据的完全事物层数据报文中的完整信息恢复压缩事务层数据报文中缺少的字段或配置压缩信息的字段。
对于压缩事务层数据报文中缺少的字段,可以从属于当前次待传输数据的完全事务层数据报文中获取,而对于压缩事务层数据报文中配置压缩信息的字段,可以从压缩事务层数据报文的目标地址字段中获得地址偏移量;从与压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;将地址偏移量与基地址相加,得到压缩数据层报文的目标地址信息。
步骤204、拼接各事务层数据报文以获取对端设备数据传输请求的待传输数据。
当接收到所有子数据的事务层数据报文后,可以根据各事务层数据报文拼接出完整的待传输数据。
本发明实施例提供的PCIE总线的报文传输方法,通过接收对端设备发送的事务层数据报文,并对其进行解析识别,判断接收的是事务层数据报文是完全事务层数据报文还是压缩事务层数据报文,在完全事务层报文中提取完整的信息,在压缩事务层数据报文中获取压缩信息,最后就可以将收到的事务层数据报文拼接得到完整的待传输数据。
在上述实施例二的基础上,上述步骤201具体可以包括:
接收对端设备基于PCIE总线传输的事务层数据报文;
从所述事务层数据报文中解析设定字段的标识;
当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;
当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
本实施例通过对事务层数据报文中的设定的字段标识进行解析,可以判断当前收到的事务层数据报文为完全事务层数据报文还是压缩事务层数据报文,具体地,字段标识可以设置在事务层数据报文中保留字段,从而顺利接收并解析得到待传输数据。
在上述实施例的基础上,压缩事务层数据报文中,删除所述数据报文长度字段和字节使能字段,或将目标地址字段配置的压缩信息为地址偏移量。
具体地,所有的压缩事务层数据报文长度相同,因此可以删除数据报文长度字段配置的表征数据报文长度的信息,对端设备接收待压缩事务层数据报文时可以根据完全事务层数据报文的信息获取压缩事务层数据报文的报文长度信息,而对于对端设备而言,压缩事务层数据报文中的字节使能字段也可以删除,以节约数据传输过程中的信道资源。对端设备还可以根据地址字段配置的地址偏移量计算得到压缩事务层数据报文写入或读取地址。
在实际应用中,本发明实施例提供的基于PCIE总线的报文传输过程中,和现有技术中的事务层数据报文不同的是,本发明将事务层数据报文中原有的保留字段赋予了新的意义,可以和现有技术相同的是,本发明实施例中的保留字段与现有技术中的保留字段位置相同。例如,保留字段包括的三个比特位分别位于第二字节中的第7位、第二字节中的第3位以及第字节中的第1位,通过保留字段内容的不同可以区分事务层数据报文的类型,即事务层数据报文是属于普通事务层数据报文还是完全事务层数据报文或具备压缩条件的压缩事务层数据报文。更进一步地,可以根据保留字段的信息判断当前发送的事务层数据报文是头事务层数据报文、中间事务层数据报文或尾事务层数据报文,本发明通过使用保留字段的三个比特位对事务层数据报文进行区分,具体地,如果三个比特位为000,则表示当前的事务层数据报文为普通事务层数据报文;如果三个比特位不是000,则表示当前的事务层数据报文是完全事务层数据报文或具备压缩条件的事务层数据报文。
下面将针对当前的事务层数据报文是具备压缩条件的事务层数据报文,更进一步地,可以通过DMA数据写请求和DMA数据读请求对上述实施例提供的基于PCIE总线的报文传输方法做进一步详细地说明。
本实施例将以DMA数据写请求为例进行说明,首先DMA数据写请求的传输过程涉及DMA数据写请求发起端和DMA数据写请求接收端。
图3是本发明实施例中DMA数据读写请求发起端增加控制逻辑之后的流程图,如图3所示,该方法包括如下步骤:
步骤301、DMA发起端判断DMA数据读写请求的读写地址是否连续,如果是,执行步骤302和步骤303,若否,则执行步骤304;
步骤302、将待传输的数据按照一定字节长度进行切割后封装成多个事务层数据报文;
步骤303、使用具备压缩条件的TLP报文传输模式进行事务层数据报文的传送;
步骤304、按照已有的普通模式传送该DMA数据读写请求。
步骤303中,第一个事务层数据报文为完全事务层数据报文,在此事务层数据报文中的各字段配置完整信息,并且在数据传输过程中,将包含“生成当前报文”的发起端设备的总线号、设备号和功能号的Requester ID字段更改为DMA_ID字段。对于数据写请求报文,由于接收端收到发起端的事务层数据报文后,不需要对发起端做应答,因此Requester ID字段对于写请求报文没有实际意义,因此可以将其更改,因为在PCIE总线上传输数据的过程中,存在后一个存储器的事务层数据报文超越前一个存储器的事务层数据报文提前执行,这样就需要采用DMA_ID字段来对多次DMA数据读写过程进行标识,不同次的DMA读写请求的事务层数据报文中的DMA_ID字段是不同的,从而将当前的DMA数据传输过程与PCIE总线上其他的DMA数据传输过程区别开来。接收端根据DMA_ID字段可以区分当前的压缩后的事务层数据报文属于哪一次DMA数据传输过程。
在实际应用过程中,完全事务层数据报文可以是DMA数据传输过程中的第一个事务层数据报文和/或最后一个事务层数据报文,也就是一个头事务层数据报文和/或一个尾事务层数据报文,在完全事务层数据报文中,配置了完整信息的各字段可以有数据报文长度字段、字节使能字段、特性字段、传输功能字段及目标地址字段等,这些字段通常情况下在各事务层数据报文中内容相同,或者是按照规律变化的,在压缩事务层数据报文中,删除所述数据报文长度字段、字节使能字段、特性字段、传输功能字段,且所述目标地址字段配置的压缩信息为写地址偏移量。
图4a是本发明实施例中数据写请求的事务层数据报文中的头事务层数据报文包头格式示意图、图4b是本发明实施例中数据写请求的事务层数据报文中中间事务层数据报文包头格式示意图、图4c是本发明实施例中数据写请求的事务层数据报文中尾事务层数据报文包头格式示意图,如图4a所示,一个头事务层数据报文包头的长度为4个双字,而如图4b所示,一个中间事务层数据报文包头的长度为1个双字,如图4c所示,一个尾事务层数据报文包头的长度为4个双字。
在DMA接收端,与DMA发起端配合完成一次DMA写数据传输过程。DMA接收端接收到一个事务层数据报文后,对事务层数据报文的类型标识位进行解析和判断,图5是本发明实施例中DMA接收端增加控制逻辑之后的流程图,如图5所示:
步骤501、接收发起端基于PCIE总线传输的事务层数据报文并进行识别;
步骤502a、如果识别事务层数据报文的保留字段的三个字节为000,则识别为按照普通模式传输的事务层数据报文,按照普通的事务层数据报文进行接收;
步骤502b、如果识别相应地事务层数据报文中保留字段的三个字节为100,则识别为头事务层数据报文,然后执行步骤503b;
步骤503b、提取该头事务层数据报文中数据报文长度字段信息,并保存该头事务层数据报文的目标地址字段,作为当前此次DMA写数据传输的基地址,最后执行步骤504b;
步骤504b、保存该头事务层数据报文的DMA_ID字段,以确定当前此次DMA写数据传输的序号;
步骤502c、如果识别相应地事务层数据报文中保留字段的三个字节为101,则识别为中间事务层数据报文,然后执行步骤503c;
步骤503c、提取报文包头中的DMA_ID字段信息,以与接收到此事务层数据报文之前的事务层数据报文进行匹配,以确定当前的中间事务层数据报文属于哪一次DMA写数据传输过程,最后执行步骤504c;
步骤504c、计算偏移量及当前事务层数据报文的写入地址;
步骤502d、如果识别相应地事务层数据报文中保留字段的三个字节为110,则识别为尾事务层数据报文,然后执行步骤503d;
步骤503d、提取尾事务层数据报文中长度字段信息及目标地址信息,进行正常的传输。
另外,在DMA接收端,还包括一个DMA状态表,用来保存每一次DMA写数据传输过程中对应的DMA_ID、基地址信息及地址增量,在头事务层数据报文所携带的信息中就可以获取当前此次DMA写数据传输过程对应的DMA_ID、基地址信息,对于地址增量字段初始值为0,地址增量的大小随着DMA接收端接收到的事务层数据报文个数的增加而增加,本发明各实施例中的DMA_ID字段属于数据标识。
通过上述过程,DMA接收端和DMA发送端配合完成DMA写数据传输的完整过程,在上述报文处理过程中,既存在按照正常模式进行传输的数据报文,还包括按照压缩模式进行传输的数据报文,在使用压缩模式进行传输的过程中,由于中间事务层数据报文删除了原有的冗余信息,使得信道资源占用比例大大减少,节约了信道资源。
本发明的另一实施例将对DMA读数据请求过程做进一步地说明,在本实施例中,与DMA数据写请求过程不同的是保留字段的标识字段是不同的,另外,和DMA数据写请求过程不同的是,在DMA数据读请求过程中事务层数据报文包含中的数据载荷字段是要写入的数据,而DMA数据读请求过程中事务层数据报文是不存在载荷字段的。其他的与DMA数据写请求过程类似,在此不再赘述。
图6是本发明基于PCIE总线的报文传输装置实施例一的结构示意图,如图6所示,本发明实施例提供的基于PCIE总线的报文传输装置包括:接收判断模块11、封装模块12和传输模块13,其中,接收判断模块11,用于接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;封装模块12,用于若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;所述压缩事务层数据报文缺少与完全事务层数据报文的字段或所述压缩事务层数据报文的至少一个字段中配置为压缩信息;属于同一次待传输数据的数据报文的数据标识设置为相同值,以使当前次待传输数据的数据报文区别于其他次待传输数据的数据报文;传输模块13,用于将所述至少两个数据报文通过PCIE总线传输给对端设备。
在上述装置实施例一的基础上,接收判断模块11,包括:第一接收单元111和判断单元112,其中第一接收单元111用于接收数据传输请求;判断单元112,用于判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件。判断单元112具体用于:判断所述数据传输请求的类型是否为DMA数据读写请求,若是DMA数据读写请求,则判断所述DMA数据读写请求的读写地址是否连续,若读写地址连续,则所述DMA数据读写请求的待传输数据具备压缩条件。
在上述实施例的基础上,优选地,封装模块12还可以包括:等长封装单元,其中,等长封装单元用于若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
更进一步地,封装模块12,还可以用于若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。
本实施例的基于PCIE总线的报文传输装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本发明实施例提供的基于PCIE总线的报文传输装置,在数据传输过程中,通常是对目标设备存储器的连续地址进行读或写,通过接收判断模块11判断数据传输请求是否具备压缩条件,如果具备压缩条件,则利用封装模块12将待传输的数据封装成至少一个包含完整信息的完全事务层数据报文和至少一个压缩事务层数据报文,并通过传输模块13将封装后的待传输数据通过PCIE总线传输给对端设备,在保证传输数据不出错的情况下,压缩后的数据报文减少了部分字段信息,在传输过程中实现节约信道资源。
图7是本发明基于PCIE总线的报文传输装置实施例二的结构示意图,如图7所示,本发明提供的一种基于PCIE总线的报文传输装置,该装置包括:接收识别模块21、获取模块22、修复模块23和拼接模块24,其中,接收识别模块21,用于接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;获取模块22,用于当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;修复模块23,用于当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;拼接模块24,用于拼接各事务层数据报文获取对端设备数据发送的待传输数据。
优选地,所述接收识别模块21具体包括:第二接收单元211、标识解析单元212、完全报文识别单元213和压缩报文识别单元214,其中,第二接收单元211,用于接收对端设备基于PCIE总线传输的事务层数据报文;标识解析单元212,用于从所述事务层数据报文中解析设定字段的标识;完全报文识别单元213,用于当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;压缩报文识别单元214,用于当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
更为优选地,所述修复模块23具体用于:从所述压缩事务层数据报文的目标地址字段中获得地址偏移量;从与所述压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;将地址偏移量与基地址相加,得到所述压缩数据层报文的目标地址信息。
本实施例提供的基于PCIE总线的报文传输装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8是本发明基于PCIE总线的报文传输发起端设备的结构示意图,如图8所示,本发明实施例提供的基于PCIE总线的报文传输发起端设备600包括总线610;以及连接到总线610的处理器620和存储器630,其中该存储器630用于存储指令,该处理器620用于执行该指令用于接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;该处理器620执行该指令还用于若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;所述压缩事务层数据报文缺少与完全事务层数据报文的字段或所述压缩事务层数据报文的至少一个字段中配置为压缩信息;属于同一次待传输数据的数据报文的数据标识设置为相同值,以使当前次待传输数据的数据报文区别于其他次待传输数据的数据报文;该处理器620执行该指令还用于将所述至少两个数据报文通过PCIE总线传输给对端设备。
图9是本发明基于PCIE总线的报文传输接收端设备的结构示意图,如图9所示,本发明实施例提供的基于PCIE总线的报文传输接收端设备700包括总线710;以及连接到总线710的处理器720和存储器730,其中该存储器730用于存储指令,该处理器720用于执行该指令用于接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;该处理器720执行该指令还用于当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;该处理器720执行该指令还用于当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;该处理器720执行该指令还用于拼接各事务层数据报文以获取对端设备数据发送的待传输数据。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种基于外围组件互连快递PCIE总线的报文传输方法,其特征在于,包括:
接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;
若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;与所述完全事务层数据报文相比,所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值;
将所述至少两个数据报文通过PCIE总线传输给对端设备。
2.根据权利要求1所述的方法,其特征在于,所述接收数据传输请求,并根据所述数据传输请求判断待传输数据是否具备压缩条件包括:
接收数据传输请求;
判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件。
3.根据权利要求2所述的方法,其特征在于,所述判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件包括:
判断所述数据传输请求的类型是否为直接内存存取DMA数据读写请求,所述DMA数据读写请求包含DMA数据写请求和DMA数据读请求;
若是DMA数据读写请求,则判断所述DMA数据读写请求的读写地址是否连续;
若读写地址连续,则所述DMA数据读写请求的待传输数据具备压缩条件。
4.根据权利要求1-3任一所述的方法,其特征在于,所述压缩事务层数据报文的包头缺少的至少一个字段包括:数据报文长度字段和字节使能字段。
5.根据权利要求1-3任一所述的方法,其特征在于,所述压缩事务层数据报文配置压缩信息的字段包括目标地址字段,在该字段配置的压缩信息为地址偏移量;所述地址偏移量为所述压缩事务层数据报文的目标地址相对于完全事务层数据报文的目标地址的地址偏移量。
6.根据权利要求1-3任一所述的方法,其特征在于,所述若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中包括:
若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
7.根据权利要求1-3任一所述的方法,其特征在于,所述若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中包括:
若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。
8.一种基于外围组件互连快递PCIE总线的报文传输方法,其特征在于,包括:
接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;
当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;
当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;
所述根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文,包括:
从所述压缩事务层数据报文的目标地址字段中获得地址偏移量;
从与所述压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;
将地址偏移量与基地址相加,得到所述压缩数据层报文的目标地址信息;
拼接各事务层数据报文以获取对端设备数据发送的待传输数据。
9.根据权利要求8所述的方法,其特征在于,所述接收对端设备基于PCIE总线传输的事务层数据报文并进行识别包括:
接收对端设备基于PCIE总线传输的事务层数据报文;
从所述事务层数据报文中解析设定字段的标识;
当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;
当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
10.一种基于外围组件互连快递PCIE总线的报文传输装置,其特征在于,包括:
接收判断模块,用于接收数据传输请求,并根据所述数据传输请求判断所述数据传输请求所请求的待传输数据是否具备压缩条件;
封装模块,用于若具备压缩条件,则将所述待传输数据封装在至少两个数据报文中;其中,所述至少两个数据报文的第一个数据报文为完全事务层数据报文和所述至少两个数据报文的其他数据报文中的至少一个为压缩事务层数据报文,各所述数据报文中配置有标识所述数据报文为完全事务层数据报文或压缩事务层数据报文的信息;与所述完全事务层数据报文相比,所述压缩事务层数据报文缺少至少一个字段或所述压缩事务层数据报文的至少一个字段中配置压缩信息;将所述至少两个数据报文的数据标识设置为相同值;
传输模块,用于将所述至少两个数据报文通过PCIE总线传输给对端设备。
11.根据权利要求10所述的装置,其特征在于,所述接收模块,包括:
第一接收单元,用于接收数据传输请求;
判断单元,用于判断所述数据传输请求的类型是否为设定的可压缩请求,若是,则待传输数据具备压缩条件。
12.根据权利要求11所述的装置,其特征在于,所述判断单元具体用于:
判断所述数据传输请求的类型是否为直接内存存取DMA数据读写请求,所述DMA数据读写请求包含DMA数据写请求和DMA数据读请求;
若是DMA数据读写请求,则判断所述DMA数据读写请求的读写地址是否连续;
若读写地址连续,则所述DMA数据读写请求的待传输数据具备压缩条件。
13.根据权利要求10-12任一所述的装置,其特征在于,所述封装模块包括:
等长封装单元,用于若具备压缩条件,则将所述待传输数据封装在至少两个事务层数据报文中;所述至少两个事务层数据报文中的报文长度相等。
14.根据权利要求10-12任一项所述的装置,其特征在于,所述封装模块具体用于:若具备压缩条件,则将所述待传输数据封装在一个头事务层数据报文、至少一个中间事务层数据报文和一个尾事务层数据报文中,其中,所述头事务层数据报文和尾事务层数据报文为完全事务层数据报文,中间事务层数据报文为压缩事务层数据报文。
15.一种基于外围组件互连快递PCIE总线的报文传输装置,其特征在于,包括:
接收识别模块,用于接收对端设备通过PCIE总线传输的事务层数据报文并进行识别;
获取模块,用于当识别到所述事务层数据报文为完全事务层数据报文时,从所述完全事务层数据报文的各字段中获取完整信息;
修复模块,用于当识别到所述事务层数据报文为压缩事务层数据报文时,根据数据标识将属于同一次待传输数据的所述完全事务层数据报文中的完整信息恢复所述压缩事务层数据报文中缺少的字段或配置压缩信息的字段,获得压缩事务层数据报文;
所述修复模块具体用于:从所述压缩事务层数据报文的目标地址字段中获得地址偏移量;从与所述压缩事务层数据报文的数据标识相同的完全事务层数据报文中的目标地址字段中获得基地址;将地址偏移量与基地址相加,得到所述压缩数据层报文的目标地址信息;
拼接模块,用于拼接各事务层数据报文以获取对端设备数据发送的待传输数据。
16.根据权利要求15所述的装置,其特征在于,所述接收识别模块包括:
第二接收单元,用于接收对端设备基于PCIE总线传输的事务层数据报文;
标识解析单元,用于从所述事务层数据报文中解析设定字段的标识;
完全报文识别单元,用于当识别到所述标识为完全标识时,则所述事务层数据报文为完全事务层数据报文;
压缩报文识别单元,用于当识别到所述标识为压缩标识时,则所述事务层数据报文为压缩事务层数据报文。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310068224.1A CN104038450B (zh) | 2013-03-04 | 2013-03-04 | 基于pcie总线的报文传输方法与装置 |
PCT/CN2014/072775 WO2014135038A1 (zh) | 2013-03-04 | 2014-03-03 | 基于pcie总线的报文传输方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310068224.1A CN104038450B (zh) | 2013-03-04 | 2013-03-04 | 基于pcie总线的报文传输方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104038450A CN104038450A (zh) | 2014-09-10 |
CN104038450B true CN104038450B (zh) | 2017-09-19 |
Family
ID=51469042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310068224.1A Active CN104038450B (zh) | 2013-03-04 | 2013-03-04 | 基于pcie总线的报文传输方法与装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104038450B (zh) |
WO (1) | WO2014135038A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294225A (zh) * | 2015-06-29 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法、对端设备及控制器 |
CN106027349B (zh) * | 2016-04-29 | 2019-01-18 | 重庆爱思网安信息技术有限公司 | 一种pci-e总线接口传输卡及基于该传输卡的数据传输方法 |
CN110334086B (zh) * | 2019-05-30 | 2024-07-02 | 平安科技(深圳)有限公司 | 数据去重方法、装置、计算机设备以及存储介质 |
CN111884796B (zh) * | 2020-06-17 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种基于随机数字段携带信息的方法和系统 |
CN114125940A (zh) * | 2020-08-31 | 2022-03-01 | Oppo广东移动通信有限公司 | 数据报文发送方法、处理方法、装置、设备及数据报文 |
CN114579490A (zh) * | 2020-11-30 | 2022-06-03 | 深圳市中兴微电子技术有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
CN113890897B (zh) * | 2021-11-04 | 2023-11-17 | 中国互联网络信息中心 | 一种报文处理方法和相关装置 |
CN115514682B (zh) * | 2022-09-23 | 2024-03-22 | 浪潮商用机器有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN115632976A (zh) * | 2022-10-25 | 2023-01-20 | 深圳市楠菲微电子有限公司 | 一种pcie事务层报文生成方法、装置及存储介质 |
CN115834259B (zh) * | 2023-02-21 | 2023-04-18 | 广东广宇科技发展有限公司 | 一种高危通信线路数据安全传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146025A (zh) * | 2006-09-13 | 2008-03-19 | 华为技术有限公司 | 压缩实时传输协议的报文传输方法和系统以及压缩端单元 |
CN101930418A (zh) * | 2009-06-26 | 2010-12-29 | 英特尔公司 | 用于分组信息的多种压缩技术 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916750B2 (en) * | 2005-12-28 | 2011-03-29 | Intel Corporation | Transaction layer packet compression |
-
2013
- 2013-03-04 CN CN201310068224.1A patent/CN104038450B/zh active Active
-
2014
- 2014-03-03 WO PCT/CN2014/072775 patent/WO2014135038A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146025A (zh) * | 2006-09-13 | 2008-03-19 | 华为技术有限公司 | 压缩实时传输协议的报文传输方法和系统以及压缩端单元 |
CN101930418A (zh) * | 2009-06-26 | 2010-12-29 | 英特尔公司 | 用于分组信息的多种压缩技术 |
Also Published As
Publication number | Publication date |
---|---|
WO2014135038A1 (zh) | 2014-09-12 |
CN104038450A (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104038450B (zh) | 基于pcie总线的报文传输方法与装置 | |
CN105187420B (zh) | 一种基于rs422总线的通讯协议匹配方法 | |
CN106936441A (zh) | 一种数据压缩方法和装置 | |
CN101930418A (zh) | 用于分组信息的多种压缩技术 | |
CN102204183A (zh) | 报文保序处理方法、保序协处理器和网络设备 | |
CN108108394A (zh) | Apfs文件系统的压缩文件恢复方法及存储介质 | |
CN105630424A (zh) | 数据处理方法、装置及系统 | |
CN114442954B (zh) | 一种lz4编码压缩装置 | |
CN102521356A (zh) | 基于确定有限状态自动机的正则表达式匹配设备和方法 | |
JP6929946B2 (ja) | データ伝送方法、装置、送信端、受信端及びシステム | |
CN117632834A (zh) | 一种串口识别及串口数据处理的方法 | |
CN112995337B (zh) | 基于高性能处理器芯片的高性能物联网硬件平台及方法 | |
CN104780123B (zh) | 一种网络包收发处理装置及其设计方法 | |
CN109165177A (zh) | 一种pcie接口的通信方法及相关装置 | |
US6490596B1 (en) | Method of transmitting streamlined data updates by selectively omitting unchanged data parts | |
CN111241016B (zh) | 一种接口转换装置 | |
WO2024108940A1 (zh) | 一种性能监管方法、装置、系统、设备和介质 | |
CN110019347A (zh) | 一种区块链的数据处理方法、装置及终端设备 | |
CN108509642A (zh) | 压缩、解压gzip格式文件的方法、装置及存储介质 | |
CN102055549B (zh) | 一种长期演进系统中的速率匹配装置及方法 | |
WO2022111326A9 (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN110769049B (zh) | 一种配电终端及其soe数据上送方法 | |
CN107196860A (zh) | Sdn网络中网络编码进行组播传输的方法 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及系统 | |
CN102063506A (zh) | 业务系统主机的译码处理方法、业务系统主机及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |