发明内容
本发明实施例的目的在于提供一种信息处理方法及装置、信息传输系统,减少链路带宽开销,提高数据传输效率。
本发明实施例提供了一种信息处理方法,包括:
顺次获取至少两个处理层协议包;
将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述第一个处理层协议包中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头,生成读请求处理层协议包;
向完成方发送所述读请求处理层协议包;
接收所述完成方根据所述读请求处理层协议包返回的读完成处理层协议包;
其中,所述将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述第一个处理层协议包中包括:
获取所述至少两个处理层协议包中的第一个处理层协议包中的数据有效负载;将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述数据有效负载中。
本发明实施例还提供了一种信息处理方法,包括:
接收请求方发送的读请求处理层协议包,其中,所述读请求处理层协议包是所述请求方从顺次获取的至少两个处理层协议包中获取第一个处理层协议包中的数据有效负载,将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述数据有效负载中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头所生成的;
根据所述读请求处理层协议包的包头获得所述读请求处理层协议包中的至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包;
根据所述至少两个处理层协议包向所述请求方发送至少两个读完成处理层协议包;
其中,所述根据所述读请求处理层协议包的包头获取所述读请求处理层协议包中的所述至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包包括:
获取所述读请求处理层协议包的包头的配置信息;根据所述配置信息获取所述读请求处理层协议包中的数据有效负载;从所述数据有效负载中获得至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包。
本发明实施例还提供了一种信息发送处理装置,包括:
第一获取模块,用于顺次获取至少两个处理层协议包;
加载模块,用于将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述第一个处理层协议包中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头,生成读请求处理层 协议包;
发送模块,用于向完成方发送所述读请求处理层协议包;
接收模块,用于接收所述完成方根据所述读请求处理层协议包返回的读完成处理层协议包;
其中,所述加载模块包括:获取单元、加载单元和配置单元,其中,
所述获取单元,用于获取所述第一个处理层协议包中的数据有效负载;
所述加载单元,用于将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述数据有效负载中;
所述配置单元,用于根据加载的至少两个处理层协议包配置所述第一个处理层协议包的包头。
本发明实施例还提供了一种信息接收处理装置,包括:
接收模块,用于接收请求方发送的读请求处理层协议包,其中,所述读请求处理层协议包是所述请求方从顺次获取的至少两个处理层协议包中获取第一个处理层协议包中的数据有效负载,将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述数据有效负载中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头所生成的;
第二获取模块,用于根据所述读请求处理层协议包的包头获得所述读请求处理层协议包中的至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包;
发送模块,用于根据所述至少两个处理层协议包向所述请求方发送至少两个读完成处理层协议包;
其中,所述第二获取模块包括:第一获取单元、第二获取单元和第三获取单元,其中,
所述第一获取单元,用于获取所述读请求处理层协议包的包头的配置信息;
所述第二获取单元,用于根据所述配置信息获取所述读请求处理层协议包中的数据有效负载;
所述第三获取单元,用于从所述数据有效负载中获取所述至少两个处理层协议包。
本发明实施例还提供了一种信息传输系统,包括:如权利要求3所述的信息发送处理装置以及如权利要求4所述的信息接收处理装置。
上述信息处理方法及装置、信息传输系统,请求方通过将至少一个处理层协议包加载到第一个处理层协议包中,生成读请求处理层协议包,由于不需分别向完成方发送至少两个处理层协议包,仅向完成方发送加载有至少一个处理层协议包的读请求处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
图1为PCIE协议中分层的设备体系结构示意图,图2为图1所示设备层13的TLP的结构示意图,如图1、图2所示,分层的设备体系结构包括:PCIE设 备A1和PCIE设备B2。PCIE设备A1和PCIE设备B2均包括:物理层11、数据链路层12、设备层13、PCIE核14、设备核15。
其中,物理层11负责接受物理链路上传输的数据包,在物理层上传输的数据包称为物理层数据包(Physical Layer Packet,简称:PLP);数据链路层12保证在各链路上正确地发送和接受数据包,在数据链路层12上传输的数据包称为数据链路层数据包(Data Link Layer Packet,简称:DLLP);设备层13主要负责将作为上层的PCIE核14下发的数据和地址信息,按照PCIE协议的封装形式,装配成TLP下发给数据链路层12。其中,PCIE核14和设备核15为PCIE的上层接口,根据实际应用的不同,可设置不同的功能。
设备层13装配的TLP主要包括三个部分:TLP包头、数据有效负载(PAYLOAD)和一个可选的循环冗余校验(Cyclic Redundancy Check,简称:CRC)字段。如图2所示,TLP包头的大小为4个双字节(DW),主要包括:地址、类型、传输大小等信息;数据有效负载是需要传输的数据,其数据量最大可以达到4KB(字节),当TLP为读事务请求时,数据有效负载为0,即为空;可选的循环冗余校验用于对数据有效负载中的数据进行校验,若使该位置为1,则表示完成方将解析CRC字段,判断接收到的数据负载是否正确。
图3为本发明信息处理方法一个实施例的流程示意图,如图3所示,本实施例包括以下步骤:
步骤301、顺次获取至少两个TLP;
步骤302、将至少两个TLP中的第一个TLP之后的TLP加载到第一个TLP中,并根据加载的至少一个TLP配置第一个TLP的包头,生成读请求TLP;
步骤303、向完成方发送读请求TLP;
步骤304、接收完成方根据读请求TLP返回的读完成TLP。
本发明实施例提供的信息处理方法,通过将至少一个处理层协议包加载到第一个处理层协议包中,生成读请求处理层协议包,发送给完成方,由于不需要分别发送至少两个处理层协议包,仅向完成方发送加载有至少一个处理层协议包的读请求处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
图4为本发明信息处理方法另一个实施例的流程示意图,图5为图4所 示实施例中将n个TLP加载到数据有效负载的TLP结构示意图。如图4所示,本实施例包括以下步骤:
步骤401、请求方顺次获取至少两个TLP;
步骤402、请求方获取至少两个TLP中的第一个TLP中的数据有效负载;
步骤403、将请求方至少两个TLP中的第一个TLP之后的TLP加载到该数据有效负载中;
步骤404、请求方根据加载的至少两个TLP配置第一个TLP的包头,生成读请求TLP;
步骤405、请求方向完成方发送读请求TLP;
步骤406、请求方接收从完成方根据读请求TLP返回的读完成TLP。
上述步骤401和步骤402中,TLP包括:TLP包头,数据有效负载(PAYLOAD)和一个可选的CRC字段。
上述步骤403中,由于数据有效负载(PAYLOAD)为空,因此可以通过将至少两个TLP中的第一个TLP之后的TLP加载到第一个TLP中的数据有效负载(PAYLOAD)中,从而可以将第一个TLP之后的TLP加载到该第一个TLP中的数据有效负载中,而不用将第一个TLP之后的TLP分别发送给完成方,从而减少了链路带宽的开销。
上述步骤404中,由于第一个TLP的报文结构不同于PICE中的TLP的报文架构,为了使完成方能够识别出该第一个TLP,因此需要设置第一个TLP的包头的格式字段。第一个TLP的报文结构如图5所示,第一个TLP处理层协议包(TLP0)之后的至少两个TLP(TLP1、TLP2、...、TLPn)(n为大于等于2的正整数)被顺次嵌入到第一个TLP中的数据有效负载,在修改了第一个TLP的包头的格式字段后,嵌套有多个TLP的第一个TLP生成读请求TLP。配置第一个TLP的包头的格式字段和长度控制位,使接收方在接收到读请求TLP时,能够根据读请求TLP的格式字段以及长度控制位,获取存放在PAYLOAD空间中的至少两个(TLPTLP1、TLP2、...、TLPn)。
本发明实施例提供的信息处理方法,通过利用TLP中的数据有效负载(PAYLOAD),将第一个TLP之后的TLP加载到第一个TLP中的数据有效负载(PAYLOAD)中,从而不用将第一个TLP之后的TLP分别发送给完成方,并配置加载有至少两个TLP第一个TLP的包头,使得完成能能够根据配置的包头信息识别出与普通TLP不相同的读请求TLP,由于不需分别发送至少两个TLP,仅发送加载有至少两个TLP的读请求TLP,从而减少了链路带宽的开销,提高了数据传输效率。
图6为本发明信息处理方法又一个实施例的流程示意图,如图6所示,本实施例包括以下步骤:
步骤601、接收请求方发送的读请求TLP;
步骤602、根据读请求TLP的包头获取读请求TLP中的至少一个TLP,使得读请求TLP恢复成至少两个TLP;
步骤603、根据该至少两个TLP向请求方发送至少两个读完成TLP。
本发明实施例提供的信息处理方法,仅通过接收加载有至少一个处理层协议包的读请求处理层协议包,即可获得至少两个处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
图7为本发明信息处理方法再一个实施例的流程示意图,图8为图7所示实施例中第一个TLP包头的结构示意图,如图7所示,本实施例包括以下步骤:
步骤701、完成方接收请求方发送的读请求TLP;
步骤702、完成方获取读请求TLP中包头的配置信息;
步骤703、完成方根据配置信息获取读请求TLP中的数据有效负载;
步骤704、完成方从数据有效负载中获取至少一个TLP,使得读请求TLP恢复成至少两个TLP;
步骤705、完成方根据至少两个TLP向请求方发送至少两个读完成TLP。
上述步骤701中,完成方接收到的读请求TLP中顺次嵌套了至少两个 TLP。
上述步骤702中,完成方获取到请求方发送的读请求TLP中包头的配置信息,如图8所示,读请求TLP的包头共有4DW,在第0个DW中,“R”表示保留位;“Fmt”表示格式字段信息,表示读请求TLP的包头的大小和数据有效载荷是是否有数据;“类型”与格式字段“Fmt”一起表示读请求TLP中包括的至少两个TLP的操作类型(操作类型具体可以为输入输出请求、存储器请求或者配置请求);“TC”表示流量类别控制,通过该控制位规定的流量级别提供不同的流量服务;“TD”表示读请求TLP是否存在摘要字段,若该位为1,表示该读请求TLP中存在摘要字段;“EP”表示数据标识位,若该位为1,则表示该读请求TLP的数据是无效的;“Attr”表示属性位,占用两个比特位,分别为比特位5和比特位4,其中,比特位5表示是否允许对该读请求TLP灵活顺序操作,若比特位5设置为1,表示对该读请求TLP允许使用灵活顺序操作,若比特位5设置为0,则表示严格按照顺序操作,比特位4表示侦测位,若设置为1,则表示对数据进行侦测,若设置为0则表示对数据不进行侦测;“长度”表示长度控制位,表示读请求TLP的有效数据载荷中的数据量大小。
上述步骤703中,字段信息具体为Fmt,若Fmt设为10b,则表示该包头为3DW的包头,并且数据有效负载有数据,完成方通过该配置的字段信息可以从数据有效负载中获取至少两个TLP;若Fmt设为11b,则表示该包头为4DW的包头,并且有效负载有数据,则完成方可以从数据有效负载中获取至少两个TLP。长度控制位具体可以设置为0~4KB。
上述步骤704中,完成方顺次获取数据有效负载中嵌套的至少一个TLP。
上述步骤705,完成方根据读请求TLP中的至少两个TLP相应会生成至少两个读完成TLP,并向请求方发送至少两个读完成TLP。
本发明实施例提供的信息处理方法,通过获取读请求TLP中的数据有效负载,并从数据有效负载顺次获取读请求TLP中嵌套的至少一个TLP,并根 据至少两个TLP发送相应的至少两个读完成TLP,从而减少了链路带宽的开销,提高了数据传输效率。
图9为本发明信息处理装置一个实施例的结构示意图,如图9所示,本实施例的信息处理装置90包括:第一获取模块91、加载模块92、发送模块93、接收模块94。
其中,第一获取模块91顺次获取至少两个处理层协议包,以及获取初始处理层协议包之后的第二处理层协议包;加载模块92将第一获取模块91获取到的所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述第一个处理层协议包中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头,生成读请求处理层协议包;发送模块93发送加载模块92加载配置后的读请求处理层协议包;接收模块94接收根据发送模块93发送的读请求处理层协议包返回的读完成处理层协议包。
本发明实施例提供的信息处理装置,加载模块92通过将至少一个处理层协议包加载到第一个处理层协议包中,生成读请求处理层协议包,发送给完成方,由于不需要分别发送至少两个处理层协议包,仅向完成方发送加载有至少一个处理层协议包的读请求处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
在上述图9所示实施例的基础上,加载模块92还可以进一步包括:获取单元921、加载单元922、配置单元923;获取单元921获取所述第一个处理层协议包中的数据有效负载;加载单元922将获取单元921获取到的所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述数据有效负载中;配置单元923根据加载单元922加载的至少一个处理层协议包配置所述第一个处理层协议包的包头。通过获取单元921获取第一个处理层协议包中的数据有效负载,加载单元922将至少一个处理层协议包加载到第一个处理层协议包的数据有效负载中,生成读请求处理层协议包,由于不需分别发送至少两个处理层协议包,仅发送加载有至少一个处理层协议 包的读请求处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
图10为本发明信息处理装置另一个实施例的结构示意图,如图10所示,本实施例包括:接收模块101、第二获取模块102、发送模块103。
其中,接收模块101接接收请求方发送的读请求处理层协议包,所述读请求处理层协议包包括至少两个处理层协议包;第二获取模块102根据所述读请求处理层协议包的包头获得所述读请求处理层协议包中的至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包;发送模块103根据所述至少两个处理层协议包向所述请求方发送至少两个读完成处理层协议包。
本发明实施例提供的信息处理装置,第二获取模块102通过检测读请求处理层协议包并获取读请求处理层协议包中包括的至少一个处理层协议包,从而减少了链路带宽的开销,提高了数据传输效率。
在上述图10所示实施例的基础上,第二获取模块102还可以进一步包括:第一获取单元1021、第二获取单元1022、第三获取单元1023;第一获取单元1021获取所述读请求处理层协议包中包头的配置信息;第二获取单元1022根据第一获取单元1021获取到的所述配置信息获取所述读请求处理层协议包中的数据有效负载;第三获取单元1023从第二获取单元1022获取到的所述数据有效负载中获取所述至少一个处理层协议包。
图11为本发明信息传输系统一个实施例的结构示意图,如图11所示,本实施例包括:请求方111和完成方112。
其中,请求方111顺次获取至少两个处理层协议包;将所述至少两个处理层协议包中的第一个处理层协议包之后的处理层协议包加载到所述第一个处理层协议包中,并根据加载的至少一个处理层协议包配置所述第一个处理层协议包的包头,生成读请求处理层协议包;向完成方112发送所述读请求处理层协议包;以及,接收根据所述读请求处理层协议包从完成方112返回 的读完成处理层协议包;
完成方112接收请求方111发送的读请求处理层协议包,所述读请求处理层协议包包括至少两个处理层协议包;根据所述读请求处理层协议包的包头获得所述读请求处理层协议包中的至少一个处理层协议包,使得所述读请求处理层协议包恢复成至少两个处理层协议包;根据至少两个处理层协议包向请求方111发送至少两个读完成处理层协议包。
图12为图11所示实施例请求方和完成方的信息交换流程示意图,如图12所示,请求方111向完成方112发送顺次嵌套了n(n为正整数)个处理层协议包(TLP)的读请求TLP;完成方112接收到读请求TLP后,从该读请求TLP中获得n个TLP,由于该读请求TLP中加载的n个TLP已经被识别出,该读请求TLP又重新恢复成TLP,因此完成方112实际共接收到n+1个TLP,完成方112根据该n+1个TLP向请求方111发送n+1个读完成TLP。
本发明实施例提供的信息处理系统,请求方111通过将至少一个TLP加载到第一个TLP中,并通过设置第一个TLP的包头从而生成读请求TLP,由于不需分别向完成方发送至少两个TLP,仅发送加载有至少一个TLP的读请求TLP,完成方112通过检测接收到的读请求TLP,并获取加载在读请求TLP中的至少一个TLP,因此仅通过接收加载有至少一个TLP的读请求TLP,即可获取至少两个TLP,从而减少了链路带宽的开销,提高了数据传输效率。
上述本发明实施例中,当至少一个TLP具体为256个连续的TLP时,并且至少两个TLP需要发送到同一个完成方时,根据现有技术中的信息交换方法,链路上需要传输256×2=512个TLP。完成方在完全接收到256个TLP并向请求方发送256个读完成TLP,由于此时仅完成方发送的TLP有数据,而请求方发送的TLP只是为了将TLP的包头的数据发送给完成方,因此发送方的TLP中的PAYLOAD为空。若一个TLP包头为4DW,PAYLOAD为4K(1024DW),则现有技术中的信息交换方法传输256个连续的读请求TLP时,512个TLP最多可以包括1024×512DW的有效数据,但实际上有效数据 最多只有256×1024DW,此时PAYLOAD空间利用率只有50%。本发明实施例中,256个连续的读请求TLP可以用一个TLP发送给完成方,完成全部的整个信息交换只需要发送256+1个TLP,PAYLOAD空间利用率达到99.6%,因此充分利用了PAYLOAD数据空间。并且,在本发明实施例的实现过程中,不需缓存或者其它资源,只需改变TLP包头的表示方式即可,因此简单方便。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。