CN118175166A - 一种有线串行总线数据传输方法、系统及相关装置 - Google Patents
一种有线串行总线数据传输方法、系统及相关装置 Download PDFInfo
- Publication number
- CN118175166A CN118175166A CN202211581602.1A CN202211581602A CN118175166A CN 118175166 A CN118175166 A CN 118175166A CN 202211581602 A CN202211581602 A CN 202211581602A CN 118175166 A CN118175166 A CN 118175166A
- Authority
- CN
- China
- Prior art keywords
- message
- link layer
- block
- data link
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000012634 fragment Substances 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本申请实施例提供了一种有线串行总线数据传输方法、系统及相关装置。其中,该有线串行总线数据传输方法,应用于发送端,所述方法包括:生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;发送所述第一数据链路层报文。实施本申请实施例可以兼顾本地网络和跨IP网络的数据传输。
Description
技术领域
本申请涉及有线通信技术领域,尤其涉及一种有线串行总线数据传输方法、系统及相关装置。
背景技术
为了满足高性能异构计算的要求,当前以数据中心和计算集群为目标场景的设备采用了如外设总线接口(Peripheral Component Interface Express,PCIe)的高速差分总线,实现端到端的传输。其凭借高性能、高扩展性、高可靠性及出色的兼容性,PCIe几乎取代了以往所有的内部总线。随着分布式计算的发展,需要跨互联网协议(Internet Protocol,IP)网络进行计算数据传输的场景也越来越多,因此,新型计算总线的设计需要满足跨IP网络的场景,以实现设备跨IP网络的高性能低延时连接和缓存一致性维护,并在总线网络中,增加对IP网络的支持。但是PCIe高速差分总线原始设计主要针对计算系统内的高速等效互联,并不能实现跨IP网络的PCIe设备互联和内存一致性维护。
因此,如何实现高性能计算场景中同时支持本地和跨IP网络的计算数据高效传输,是亟待解决的问题。
发明内容
本申请实施例提供一种有线串行总线数据传输、系统及相关装置,以兼顾本地和跨IP网络的计算数据高效传输。
第一方面,本申请实施例提供了一种有线串行总线数据传输方法,应用于发送端,所述方法包括:生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;发送所述第一数据链路层报文。
现有技术中有线串行总线的数据传输只能在本地网络中传输,无法实现跨IP网络传输,所以无法满足跨IP网络应用场景的高性能低延时连接和缓存一致性维护。对此,本申请实施例提供一种有线串行总线数据传输方法,应用于发送端,可以兼顾本地网络的数据传输和跨IP网络的数据传输,实现不同端或不同节点设备之间的高性能低延时连接和缓存一致性维护。其中,本申请实施例的有线串行总线数据传输方法可以在有线串行总线中传输分块的数据链路层报文(即,第一数据链路层报文),该分块的数据链路层报文包括至少一个报文块,每个报文块均包括头部Header和载荷Body,其中,该头部中包括有报文类型信息,该报文类型信息可以用于指示对应报文块所属的报文类型,进而可以指示该分块的数据链路层报文对应的报文类型,以使接收端可以基于该报文类型识别该数据链路层报文是控制报文,本地网络的数据链路层报文(即,非跨网络传输数据报文),还是跨IP网络传输的数据链路层报文(即,跨网络传输数据报文)。进而,接收端可以根据识别出的报文类型,对接收到的数据链路层报文做相应的处理,从而实现端对端的跨网络传输或本地网络传输。而且,本申请实施例中针对跨网络传输的数据链路层报文与非跨网络传输的数据链路层报文的报文格式相同,大大降低了有线串行总线数据传输系统的复杂度。另外,由于本申请实施例提供的数据链路层报文是分块的数据链路层报文,所以报文块可以分别发送,以保证数据链路层报文在有线串行总线中传输时的服务质量。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在本申请实施例,数据链路层报文中的每个报文块均包括一个或多个片段,每个报文块中的第一个片段中包括头部和第一校验码,最后一个片段包括第二校验码。其中,接收端可以通过第一校验码和第二校验码针对对应的报文块进行校验,使得在传输过程中若接收端接收到的报文块中出现缺失、重复、错误等质量问题时,重新发送该数据链路层报文或该报文块,以保证传输过程中的服务质量。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在本申请实施例中,每个报文块的头部(也即,第一个片段中的头部)中还包括虚拟通道号,该虚拟通道号用于指示所属报文块对应传输的虚拟通道。该虚拟通道可以是基于发送端与接收端之间的物理链路划分出的一条或多条的虚拟通道。其中,该每条虚拟通道可以用于传输数据链路层报文,且每条虚拟通道对应的报文传输速率和/或报文缓存大小可以不同。因此,识别报文块中的虚拟通道号,将该报文块通过对应的虚拟通道发送至接收端,保证报文块的传输速度和传输时服务质量。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在本申请实施例中,数据链路层报文中第一个报文块的第一个片段还包括第一长度信息和第二长度信息,该第一长度信息和第二长度信息分别用于指示报文块的数量,以及最有一个报文块中的片段数量。通过第一个报文块的第一个片段携带的第一长度信息和第二长度信息可以确保接收的数据链路层报文的完整性和准确性,以保证数据传输的服务质量。另外,该第一长度信息和第二长度信息可以被包含于第一个报文块的第一个片段中的头部。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在本申请实施例中,由于数据链路层报文是分块报文,且每个报文块都包括一个或多个片段,该每个片段的大小都相同,因此,数据链路层报文中第一个报文块的第一个片段还包括第三长度信息,第三长度信息用于指示不同情况下最后一个片段或倒数第二个片段中的有效载荷长度。通过该第三长度信息可以保证接收的数据链路层报文的完整性和准确性,进而可以保证数据传输的服务质量。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
由于每个片段的大小都相同,因此为了保证第二校验码的完整性,所以,在第三长度信息指示的有效载荷长度属于第三阈值与第四阈值之间时,说明该长度的有效载荷被携带在最后一个片段的话,无法保证第二校验码的完整性。所以该长度的有效载荷被携带在倒数第二个片段中,第二校验码被携带在最后一个片段中。相对应的,在本申请实施例中,第三阈值与第四阈值之间的大小可以相当于第二校验码的大小,从而保证第二校验码的完整性。
在一种可能实现的方式中,M大于1;所述方法还包括:生成第二数据链路层报文,其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文;所述发送所述第一数据链路层报文,包括:分别发送所述M个Block和所述第二数据链路层报文;其中,在发送第i个Block之后,且发送第i+1个Block之前,发送所述第二数据链路层报文,i为大于或等于1且小于M的正整数。
在本申请实施例中,由于本申请实施例提供的数据链路层报文是分块的数据链路层报文,所以报文块可以分别发送。因此,在分块发送第一数据链路层报文的过程中,可以根据发送情况,在发送当前报文块后,相较于继续发送下一个报文块可以优先发送控制报文(即,第二数据链路层报文),在发送完上述控制报文后,再继续发送第一数据链路层报文中剩余的报文块。该方式可以使得接收端可以尽快接收到控制报文来维护或管理发送端与接收端之间的传输链路,实现高效的数据传输。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文,所述网络层控制报文用于控制所述有线串行总线的网络层链路,所述数据链路层控制报文用于控制所述有线串行总线的数据链路层链路。
在本申请实施例中,在数据链路层报文为控制报文时,该控制报文可以分为网络层控制报文或数据链路层控制报文两类,使得该控制报文可以对应完成数据链路层链路或网络层链路的状态管理、信用流控、参数交换、电源管理、重传等功能。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文。
在本申请实施例中,跨网络传输数据报文为了可以适用于不同的网络协议,如IPv4协议、IPv6协议或其他网络协议,因此,该分块的跨网络传输数据报文可以包括互联网协议版本IPv4协议报文或Ipv6协议报文中的一种。
第二方面,本申请实施例提供了一种有线串行总线数据传输方法,应用于接收端,所述方法包括:接收第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;基于所述报文类型信息处理所述第一数据链路层报文。
现有技术中有线串行总线的数据传输只能在本地网络中传输,无法实现跨IP网络传输,所以无法满足跨IP网络应用场景的高性能低延时连接和缓存一致性维护。对此,本申请实施例提供的应用于接收端的有线串行总线数据传输方法可以在有线串行总线中传输分块的数据链路层报文(即,第一数据链路层报文),该分块的数据链路层报文包括至少一个报文块,每个报文块均包括头部Header和载荷Body,其中,该头部中包括有报文类型信息,该报文类型信息可以用于指示对应报文块所属的报文类型,进而可以指示该分块的数据链路层报文对应的报文类型,以使接收端可以基于该报文类型识别该数据链路层报文是控制报文,本地网络的数据链路层报文(即,非跨网络传输数据报文),还是跨IP网络传输的数据链路层报文(即,跨网络传输数据报文)。进而,接收端可以根据识别出的报文类型,对接收到的数据链路层报文做相应的处理,从而实现不同端或不同节点设备之间跨网络传输或本地网络传输。而且,本申请实施例中针对跨网络传输的数据链路层报文与非跨网络传输的数据链路层报文的报文格式相同,大大降低了有线串行总线数据传输系统的复杂度。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
在一种可能实现的方式中,M大于1;所述方法还包括:在接收所述第一端发送的第i个Block之后,且接收所述第一端发送的第i+1个Block之前,接收所述第一端发送的第二数据链路层报文;其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文,i为大于或等于1且小于M的正整数。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文;所述基于所述报文类型信息处理所述第一数据链路层报文,包括:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述网络层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的网络层链路;或者,在所述报文类型信息指示的所述报文类型为所述数据链路层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的数据链路层链路。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文;所述基于所述报文类型信息处理所述第一数据链路层报文,包括:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述互联网协议版本IPv4协议报文时,基于IPv4协议转发所述第一数据链路层报文;或者,在所述报文类型信息指示的所述报文类型为所述Ipv6协议报文时,基于IPv6协议转发所述第一数据链路层报文。
应理解,本申请的第二方面提供的有线串行总线数据传输方法与本申请第一方面的技术方案一致,其具体内容以及有益效果可参考上述第一方面中提供的有线串行总线数据传输方法,此处不再进行赘述。
第三方面,本申请实施例提供了一种有线串行总线数据传输系统,所述系统包括发送端和接收端,所述发送端通过有线串行总线与所述接收端进行数据传输;其中,所述发送端用于实现上述第一方面的有线串行总线数据传输方法,所述接收端用于实现上述第二方面的有线串行总线数据传输方法。
应理解,本申请的第三方面提供的有线串行总线数据传输系统与本申请第一方面或第二方面的技术方案一致,其具体内容以及有益效果可参考上述第一方面或第二方面中提供的有线串行总线数据传输方法,此处不再进行赘述。
第四方面,本申请实施例提供了一种有线串行总线数据传输装置,所述装置应用于发送端,所述装置包括:
第一生成单元,用于生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;发送单元,用于发送所述第一数据链路层报文。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
在一种可能实现的方式中,M大于1;所述装置还包括:第二生成单元,用于生成第二数据链路层报文,其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文;所述发送单元,具体用于:分别发送所述M个Block和所述第二数据链路层报文;其中,在发送第i个Block之后,且发送第i+1个Block之前,发送所述第二数据链路层报文,i为大于或等于1且小于M的正整数。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文,所述网络层控制报文用于控制所述有线串行总线的网络层链路,所述数据链路层控制报文用于控制所述有线串行总线的数据链路层链路。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文。
应理解,本申请的第三方面提供的有线串行总线数据传输装置与本申请第一方面的技术方案一致,其具体内容以及有益效果可参考上述第一方面或第二方面中提供的有线串行总线数据传输方法,此处不再进行赘述。
第五方面,本申请实施例提供了一种有线串行总线数据传输装置,所述装置应用于接收端,所述装置包括:接收单元,用于接收第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;处理单元,用于基于所述报文类型信息处理所述第一数据链路层报文。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
在一种可能实现的方式中,M大于1;所述接收单元,还用于:在接收所述第一端发送的第i个Block之后,且接收所述第一端发送的第i+1个Block之前,接收所述第一端发送的第二数据链路层报文;其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文,i为大于或等于1且小于M的正整数。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文;所述处理单元,具体用于:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述网络层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的网络层链路;或者,在所述报文类型信息指示的所述报文类型为所述数据链路层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的数据链路层链路。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文;所述处理单元,具体用于:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述互联网协议版本IPv4协议报文时,基于IPv4协议转发所述第一数据链路层报文;或者,在所述报文类型信息指示的所述报文类型为所述Ipv6协议报文时,基于IPv6协议转发所述第一数据链路层报文。
应理解,本申请的第三方面提供的有线串行总线数据传输装置与本申请第二方面的技术方案一致,其具体内容以及有益效果可参考上述第一方面或第二方面中提供的有线串行总线数据传输方法,此处不再进行赘述。
第六方面,本申请实施例提供一种计算机可读存储介质,用于储存为上述第四方面或第五方面提供的一种有线串行总线数据传输装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第七方面,本申请实施例提供了一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第四方面或第五方面中的有线串行总线数据传输装置所执行的流程。
第八方面,本申请实施例提供一种电子设备,该电子设备中包括处理器,处理器被配置为支持该电子设备实现第四方面或第五方面提供的有线串行总线数据传输方法中相应的功能。该电子设备还可以包括存储器,存储器用于与处理器耦合,其保存该电子设备必要的程序指令和数据。该电子设备还可以包括通信接口,用于该电子设备与其他设备或通信网络通过有线串行总线通信。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的两个现有PCIe设备的示意图。
图2是本申请实施例提供的一种有线网络传输的应用场景示意图。
图3是本申请实施例提供的两个节点设备的示意图。
图4是本申请实施例提供的一种有线串行总线数据传输系统构架示意图。
图5是本申请实施例提供的一种有线串行总线数据传输方法。
图6是本申请实施例提供的一种数据链路层报文的结构示意图。
图7是本申请实施例提供的另一种数据链路层报文的结构示意图。
图8是本申请实施例提供的一种虚拟通道的示意图。
图9是本申请实施例提供的一种不同报文块中第一个片段的结构示意图。
图10是本申请实施例提供的一种尾报文块中最后两个片段的结构示意图。
图11是本申请实施例提供的一种有线串行总线数据传输装置的结构示意图。
图12是本申请实施例提供的另一种有线串行总线数据传输装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
首先,为了便于理解本申请实施例,以下具体分析本申请实施例所需要解决的技术问题以及应用场景。
在现代计算系统中,互联总线负责处理器中的多核与存储子系统,加速器,外设等的高速高效互联,从而满足高性能异构计算的要求。例如,外设总线接口(PeripheralComponent Interface Express,PCIe)总线采用高速差分总线,实现端到端的传输。PCIe凭借高性能、高扩展性、高可靠性及出色的兼容性,几乎取代了以往所有的内部总线。但是,随着数据爆炸式增长,异构计算的发展,为了维护处理器中内存空间和连接设备上的内存之间的内存一致性,加速访问协议(Compute Express Link,CXL)-PCIe的总线成为新的技术趋势。
PCIe支持多种数据路由方式,基于多通路的数据传递方式和基于报文的数据传送方式,并充分考虑了在数据传输中出现服务质量(Quality of Service,QoS)问题。在加入CXL的特性后,也可以扩展支持内存一致性的。但是PCIe原始的设计主要针对计算系统内的高速等效互联,所以PCIe和CXL–PCIe均不能实现跨互联网协议(Internet Protocol,IP)网络的PCIe设备互联和内存一致性维护。
请参考附图1,图1是本申请实施例提供的两个现有PCIe设备的示意图。如图1所示,两个PCIe设备分别为设备A和设备B,其中,设备A和设备B分别包括:PCIe核心软件和硬件接口(PCIe Core Hardware/Software Interface)、事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理链路层(Physical Layer)。设备A和设备B之间通过有线串行总线的互联,但因为设备A和设备B不涉及网络层,没有IP,所以设备A和设备B之间传输的数据链路层报文只需要发送数据报文以及数据链路层本身的控制管理报文,并没有定义针对网络层的管理以及数据的网络层类型信息,因此无法适应在IP网络中传输。
因此,本申请实施例提供一种有线串行总线数据传输方法、系统及相关装置,该通信方法应用于通信技术领域,尤其涉及有线串行总线数据传输方法,该有线串行总线数据传输方法可以使得数据链路层报文实现端对端的跨IP网络传输或本地网络传输。其中,该数据链路层报文包括至少一个报文块,每个报文块都包括头部和载荷,头部中包含报文类型信息,该报文类型信息可以用于指示该报文块所属的报文类型,以使接收端可以基于该报文类型识别该数据链路层报文是本地网络传输的数据链路层报文还是跨IP网络传输的数据链路层报文,从而做不同的处理。其中,具体的实现方式可以参考下述实施例的相关描述,本申请实施例在此暂不赘述。
基于上述提出的技术问题,也为了便于理解本申请实施例,下面先对本申请实施例所基于的其中一种有线网络传输的应用场景进行描述。
该有线网络传输的场景中包括本地网络的计算系统和跨越本地网络的计算系统,其中跨越本地网络的计算系统也就是两个或更多个不同本地网络计算系统协作构成的分布式计算系统。跨越本地网络的计算系统中包括多个不同IP地址的计算系统和/或节点设备,不同IP地址之间的数据传输需要通过IP网络路由,因此,跨越本地网络的计算系统也可以称之为跨IP网络的计算系统。其中,本地网络的计算系统和/或节点设备可以是一台服务器、伺服器等等。该每个本地网络的计算系统和/或节点设备可以包括一个或多个处理单元、加速器、图像处理器、计算节点以及存储节点等等。该本地网络的计算系统和/或节点设备中的不同的节点(如:计算节点与存储节点,计算节点与加速器等)之间可以实现本地网络的数据传输;不同的本地网络的计算系统和节点设备之间可以实现跨IP网络的数据传输。
例如:请参考附图2,图2是本申请实施例提供的一种有线网络传输的应用场景示意图。如图2所示,该跨IP网络的计算系统中包括多个本地网络的计算系统和本地网络的节点设备。如:本地网络的计算系统A和本地网络的节点设备B。本地网络的计算系统A和本地网络的节点设备B内的各个处理单元、加速器等之间的有线串行总线数据传输分别为本地网络的数据传输。本地网络的计算系统A中的处理单元与本地网络的节点设备B中的处理单元之间的有线串行总线数据传输为跨IP网络的数据传输。
而本申请实施例提及的有线串行总线数据传输方法可以应用在如上述图2所示的有线网络传输的场景中,基于上述的应用场景,请参考附图3,图3是本申请实施例提供的两个节点设备的示意图。如图3所示,本申请实施例提供的两个节点设备(如:设备C和设备D),该设备C和设备D可以分别相当于上述跨IP网络的计算系统中的本地网络的计算系统A和本地网络的节点设备B,也可以分别相当于本地网络的计算系统A或本地网络的节点设备B中不同的处理单元、加速器或图像处理器等。该设备C和设备D相较于上述图1所示的两个PCIe设备(如:设备A和设备B)增加了对网络层的支持。设备C和设备D之间传输的数据链路层报文不仅可以包括数据报文以及数据链路层本身的控制管理报文,还可以包括针对网络层的控制管理报文以及数据的网络层类型信息。
因此,本申请实施例中的数据链路层报文不仅可以实现本地的数据传输,也可以支持跨IP网络的数据传输,进而实现节点设备跨IP网络的高性能低延时连接和缓存一致性维护,更高效的提供计算调用、数据访问、资源调度和通信机制。其中,具体的实现方式可以参考下述实施例的相关描述,本申请实施例在此暂不赘述。
需要说明的是,本申请实施例中提及的有线串行总线数据传输方法不仅限于PCIe设备之间的有线串行总线数据传输,还可以适用于其它新型总线上,例如,统一总线,或其他支持本地网络的计算系统和跨IP网络的计算系统,或者是其它异质网络的新型计算总线。
基于上述提出的技术问题以及对应的应用场景,也为了便于理解本申请实施例,下面先对本申请实施例所基于的其中一种有线串行总线数据传输系统架构进行描述。
请参阅图4,图4是本申请实施例提供的一种有线串行总线数据传输系统构架示意图。该有线串行总线数据传输系统可以应用于如上述图2所示的有线网络传输的场景中,如图4所示,该有线串行总线数据传输系统结构包括发送端和接收端。该发送端和接收端可以分别属于同一个本地网络的计算系统中不同的处理单元,或者可以分别属于跨IP网络的计算系统中不同的本地网络的计算系统中不同的处理单元。例如:发送端和接收端可以分别属于不同的高性能计算节点,发送端和接收端可以分别属于计算节点与存储节点,发送端和接收端可以分别属于计算节点与加速器等,在该发送端和接收端之间进行数据传输,实现内存一致性维持。其中,在发送端和接收端均可以包括相对应的输入输出IO控制器、总线和其他装置。
如上述图4所示,该发送端与接收端之间可以通过物理链路实现有线串行总线数据传输。其中,在本申请实施例中,该发送端用于向对端发送数据链路层报文,接收端用于接收对端发送的数据链路层报文。本申请实施例仅描述发送端到接收端的发送方法和系统,实际应用中,两个节点间可以实现单向发送或者是双向发送,即既是发送端,也是接收端,本申请实施例对此并不作具体的限制。其中,具体的实现方式可以参考下述实施例的相关描述,本申请实施例在此暂不赘述。
下面结合本申请中提供的有线串行总线数据传输方法,对本申请中提出的技术问题进行具体分析和解决。请参阅图5,图5是本申请实施例提供的一种有线串行总线数据传输方法,该方法可应用于上述图4中所述通信系统构架中,其中,发送端可以用于支持并执行所述图5中所示的方法流程步骤S101-步骤S102,接收端可以用于支持并执行所述图5中所示的方法流程步骤S103-步骤S104。其中,
步骤S101:生成第一数据链路层报文。
具体的,发送端生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种,其中,跨网络传输数据报文可以是不同本地网络的计算系统中计算节点间或处理单元之间的数据传输报文,非跨网络可以是本地网络的计算系统中不同计算节点间或处理单元之间的数据传输报文。
请参考附图6,图6是本申请实施例提供的一种数据链路层报文的结构示意图。如图6所示,该数据链路层报文可以为第一数据链路层报文,其包括了至少一个报文块Block。该每个报文块Block均包括头部Header和载荷Body。Header信息一般位于报文块的前面部分,会包括报文块的一些描述信息,例如:包括报文类型信息,报文对应的虚拟通道等,有的报文块的头部还可以包括长度信息等。载荷部分一般包含要传递的业务数据。另外,可以在Header部分指示,也可以在Body部分包含扩展信息,该扩展信息用于提供除了header部分之外的更多关于报文的信息,例如:在该链路层之上的网络层信息或者其它信息等。
示例性的,该头部Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种。控制报文可以是管理链路的报文;跨网络传输数据报文是指可以跨越其它IP网络,超出本地网络的计算系统内的数据报文;非跨网络传输数据报文是指在本地网络的计算系统内,不跨越IP网络的数据报文。载荷Body包括有效载荷和无效载荷,有效载荷是计算节点间需要传递的业务数据,无效载荷一般是为了保持传输完整的报文或者是报文块或者是片段结构,对不满足规定长度的有效载荷在尾部进行填充的部分,对此请参考下述图10所示的相关实施例,本申请实施例在此暂不赘述。
另外,在第一数据链路层报文的报文长度小于或等于预设报文块长度时,该第一数据链路层报文可以包括一个报文块,第一数据链路层报文的报文长度即为该一个报文块的长度。在第一数据链路层报文的报文长度大于预设报文块长度时,可以以预设报文块长度为单位,将该第一数据链路层报文进行分块,使得该第一数据链路层报文可以包括多个报文块。其中,上述多个报文块中除最后一个报文块的长度小于或等于预设报文块长度外,其余报文块的长度均一致,且其余报文块中每个报文块的长度均为预设报文块长度。例如:如上述图6所示,报文块M的长度小于预设报文块长度,报文块1至报文块M-1的长度等于预设报文长度。
又例如,在预设报文块长度为640字节(Byte),第一数据链路层报文的报文长度大于640*5字节且小于640*6字节时,第一数据链路层报文可以包括5个报文块,前四个报文块的长度均为640字节,第五个报文块的长度可以小于640字节。本申请实施例对该预设报文块长度并不作具体的限定。如:该预设报文块长度还可以为320字节、1280字节等等。
第一数据链路层报文的报文长度需要小于或等于预设阈值。其中,该预设阈值的大小可以基于有线串行总线数据传输的传输协议确定,对此本申请实施例并不作具体的限定。例如:该预设阈值可以为512*20字节。
还需要说明的是,该第一数据链路层报文中每个报文块所属的报文类型均一致,因此,该报文类型信息也用于指示对应报文块所属的第一数据链路层报文的报文类型。
可选的,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
需要说明的是,本申请实施例中分块的第一数据链路层报文的最小传输单元为片段Flit,其中,1个片段的长度固定为预设字节长度,例如:预设字节长度为20字节时,1Flit的长度固定就为20字节。由于每个报文块(除最后一个报文块外)的长度固定为预设报文长度,所以,除最后一个报文块外,其余的每个报文块包括的片段的数量均相同。例如:在数据链路层可以传输的第一数据链路层报文的最大长度为512个Flit的长度,预设报文长度为32个Flit的长度的情况下,当第一数据链路层报文的长度大于32个Flit时,会将其切分为最多16个报文块分块传输,每个报文块长度为32个Flit(最后一个报文块除外),最后一个报文块传输剩余数量的Flit;当第一数据链路层报文的长度小于或等于32个Flit时,会将其切分为1个报文块传输,该一个报文块长度小于或等于32个Flit。
还需要说明的是,又由于1个片段的长度固定为预设字节长度,当该片段中的数据(有效载荷)不足于填充完预设字节长度时,可以通过补齐数据(Padding,PAD)补齐片段中不足的部分,补齐数据可以为固定特征的数据,例如全0,全1,或者是协议固定的其它具有固定特征的数据。即,该补齐数据可以被理解为无效载荷。
请参考附图7,图7是本申请实施例提供的另一种数据链路层报文的结构示意图。如图7所示,第一数据链路层报文中的每个报文块均包括一个或多个片段,报文块的预设报文长度为S个片段的长度,例如:报文块1至报文块M-1均包括S个片段,报文块M包括第一数据链路层报文中剩余N个片段,该S为大于或等于N整数,N为大于或等于1的整数。
如上述图7所示,每个报文块中的第一个片段中(即,片段1中)均包括头部和第一校验码,还可以包括整个报文块的部分载荷,最后一个片段(即,片段S或片段N中)包括第二校验码,还可以包括整个报文块的部分载荷。其中,每个报文块的第一个片段中的第一校验码用于校验对应第一个Flit中除所述第一校验码之外的信息,例如:报文块1的片段1中的第一校验码用于校验报文块1的片段1中的头部和载荷。每个报文块的最后一个片段中的第二校验码用于校验对应所述报文块中除所述第一个Flit和所述第二校验码之外的信息。例如:报文块1的片段S中的第二校验码用于校验报文块1中片段2至片段S-1的载荷,以及片段S中的载荷。
因此,每个报文块的第一个片段中除了包括携带有报文类型信息的头部外,还包括有用于校验第一个片段的第一校验码。每个报文块中的最后一个片段包括第二校验码用于校验对应报文块中的信息,可以使得接收端通过第一校验码和第二校验码针对对应的报文块进行校验,并在传输过程中若接收端接收到的报文块中出现缺失、重复、错误等服务质量问题时,令发送端重新发送该第一数据链路层报文或该报文块,以保证传输过程中的服务质量。
需要说明的是,本申请实施例对校验方法并不作具体的限定,例如:该第一校验码和第二校验码可以分别为循环冗余校验(Cyclic Redundancy Check,CRC)的校验码。
可选的,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应的传输虚拟通道。
每个报文块的头部(也即,第一个片段中的头部)中还包括虚拟通道号,该虚拟通道号用于指示所属报文块对应的传输虚拟通道。请参阅图8,图8是本申请实施例提供的一种虚拟通道的示意图。如图8所示,该虚拟通道可以是基于发送端与接收端之间的物理链路划分的一条或多条的虚拟通道中一条虚拟通道。其中,每条虚拟通道可以用于传输第一数据链路层报文,而且该每条虚拟通道对应的报文传输速率和/或报文缓存大小可以不同。例如,如上述图8所示,发送端与接收端之间的物理链路划分出两条虚拟通道,即,虚拟通道1和虚拟通道2。其中,虚拟通道1和虚拟通道2在接收端对应的缓存区域不同,和/或缓存大小也可以不同,相应的,其在传输第一数据链路层报文时的报文传输速率也不同。发送端可以基于每个报文块对应的虚拟通道号,选择对应的虚拟通道发送该报文块。因此,识别报文块中的虚拟通道号,将该报文块通过对应的虚拟通道发送至接收端,在保证报文块的传输速度和传输时服务质量。
在另一些实施例中,虚拟通道号可以用域段名VL标识。例如:VL=1时,可以指示虚拟通道1。
可选的,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
其中,由于每个片段的长度固定为预设字节长度,每个报文块(除最后一个报文块外)的长度固定为预设报文长度。因此,第一个报文块的第一个片段还需要包括第一长度信息和第二长度信息,该第一长度信息和第二长度信息分别用于指示第一数据链路层报文中报文块的数量,以及第一数据链路层报文的最后一个报文块中片段的数量。示例性的:第一个报文块的第一个片段中携带的指示报文块数量的第一长度信息为10时,说明该第一数据链路层报文包括10个报文块;第一个报文块的第一个片段中携带的指示最后一个报文块的片段数量的第二长度信息为22时,说明该10个报文块中第10个报文块包括22个片段数量,其余的第一个报文块至第九个报文块包括预设报文长度对应的片段数量(即,大于或等于22个片段数量),如:32个片段数量。本申请实施例通过第一个报文块的第一个片段携带的第一长度信息和第二长度信息可以确保接收的第一数据链路层报文的完整性和准确性,以保证数据传输的服务质量。
在另一些实施例中,第一长度信息(可以用Plength[a:b]标识)Plength[a:b]=0~15时,可以指示报文块的数量M=1~16;第二长度信息(可以用Plength[c:d]标识)Plength[c:d]=0~31时,可以指示最后一个报文块的片段数量N=1~32。其中,Plength为长度信息的域段名,[a:b]和[c:d]分别用于标识第一长度信息和第二长度信息在头部中的存储位置或存储大小。
另外,该第一长度信息和第二长度信息可以被包含于第一个报文块的第一个片段中的头部。需要说明的是,本申请实施例及以下相关实施例中,分块的第一数据链路层报文中第一个报文块可以被称为头报文块,最后一个报文块可以被称为尾报文块,其余的报文块可以被称为中间报文块。
请参阅图9,图9是本申请实施例提供的一种不同报文块中第一个片段的结构示意图。头报文块与其他报文块(中间报文块和尾报文块)的头部携带的信息不同,头报文块的头部除报文类型信息、虚拟通道号外,还包括长度信息,该长度信息包括第一长度信息和第二长度信息。相应的,如图9所示,头报文块的第一个片段的头部在第一片段中的字节长度要大于其他报文块(中间报文块和尾报文块)的第一个片段的头部在该第一片段中的字节长度。
可选的,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
其中,由于每个片段的长度固定为预设字节长度,当该最后一个片段中的数据不足于填充完预设字节长度时,可以通过补齐数据(Padding,PAD)补齐片段中不足的部分,补齐数据可以为固定特征的数据,例如全0,全1,或者是协议固定的其它具有固定特征的数据。相应的,该补齐数据可以被理解为无效载荷。也即最后一个报文块中的载荷可以包括有效载荷和无效载荷。有效载荷包括第一数据链路层报文需要传输的数据(如:音频数据、文本数据、图像数据或其它类型的数据中的一种或多种),接收端可以处理该有效载荷;无效载荷包括补齐数据,用于补齐片段中不足的部分。
如上述图9所示,该第三长度信息也可以被包含于第一个报文块的第一个片段中的头部。该第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;即,第三长度信息用于指示尾报文块的最后一个片段或倒数第二个片段中有效载荷的长度。通过该第三长度信息可以保证接收的第一数据链路层报文的完整性和准确性,进而可以保证数据传输的服务质量。
请参阅图10,图10是本申请实施例提供的一种尾报文块中最后两个片段的结构示意图。由于第二校验码位于尾报文块的最后一个片段中,因此,在当前的最后一个片段的有效载荷的长度与第二校验码的长度之和大于片段的固定长度(即,预设字节长度)且有效载荷的长度小于或等于片段的固定长度(即,有效载荷的长度不足于形成一个完整的片段)时,需要补齐一个新的片段做为新的最后一个片段,原来的最后一个片段做为倒数第二个片段,此时,如图10中(1)所示,该新的最后一个片段包括第二校验码和无效载荷;该倒数第二个片段包括有效载荷和无效载荷。在当前的最后一个片段的有效载荷的长度与第二校验码的长度之和等于片段的固定长度(即,预设字节长度)时,不需要补齐新的片段,此时,如图10中(2)所示,当前的最后一个片段包括有效载荷和第二校验码。在当前的最后一个片段的有效载荷的长度与第二校验码的长度之和小于片段的固定长度(即,预设字节长度)时,不需要补齐新的片段,只需要通过补齐数据(Padding,PAD)补齐当前的最后一个片段中不足的部分,此时,如图10中(3)所示,最后一个片段包括有效载荷、无效载荷和第二校验码。
其中,在L大于或等于第一阈值,且小于或等于第二阈值时,即,有效载荷的长度,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节,即第三长度信息用于指示尾报文块中最后一个片段的有效载荷的长度(如上述图10中(2)和(3)所示的情形)。在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节,即,第三长度信息用于指示尾报文块中倒数第二个片段的有效载荷的长度(如上述图10中(1)所示的情形)。
需要说明的是,第一阈值、第二阈值、第三阈值和第四阈值的大小均不相同,其中,第一阈值小于第二阈值,第二阈值小于第三阈值,且第三阈值小于第四阈值。
可选的,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。其中,第一阈值与第二阈值之间指示的长度大小相当于片段的固定长度(即,预设字节长度)减去第二校验码长度的大小。第三阈值与第四阈值之间指示的长度大小相当于所述第二校验码的长度大小。
由于每个片段的大小都相同,因此为了保证第二校验码的完整性,所以,在第三长度信息指示的有效载荷长度属于第三阈值与第四阈值之间时,说明该长度的有效载荷被携带在最后一个片段的话,无法保证第二校验码的完整性。所以该长度的有效载荷被携带在倒数第二个片段中,第二校验码被携带在最后一个片段中。相对应的,在本申请实施例中,第三阈值与第四阈值之间的大小可以相当于第二校验码的大小,从而保证第二校验码的完整性。
示例性的,片段的固定长度为40字节,第二校验码的长度为4字节时,第一阈值与第二阈值之间对应的长度大小为36字节,第三阈值与第四阈值之间对应的长度大小为4字节。例如,第一阈值可以指示1字节的大小,第二阈值可以指示36字节的大小,第三阈值可以指示37字节的大小,第四阈值可以指示40字节的大小。此时当L的值指示7字节时,说明L在第一阈值与第二阈值之间,因此,第三长度信息用于指示尾报文块中最后一个片段的有效载荷的长度为7字节。当L的值指示37字节时,说明L在第三阈值与第四阈值之间,因此,第三长度信息用于指示尾报文块中倒数第二个片段的有效载荷的长度为37字节。
在另一些实施例中,第三长度信息(可以用Plength[e:f]标识)Plength[e:f]=0~15时,指示尾报文块中最后一个片段的有效载荷的长度L=1~16,此时,第一阈值为0,指示1字节的大小,第二阈值为15,指示16字节的大小;Plength[e:f]=16~19时,指示尾报文块中倒数第二个片段的有效载荷的长度L=17~20,此时,第三阈值为16,指示17字节的大小,第四阈值为19,指示20字节的大小。在其对比L与第一阈值、第二阈值、第三阈值和第四阈值的大小时,其对比的是对应指示字节的大小。其中,Plength为长度信息的域段名,[e:f]用于标识第三长度信息在头部中的存储位置。
步骤S102:发送第一数据链路层报文。
具体的,发送端向接收端发送所述第一数据链路层报文。
可选的,M大于1;所述方法还包括:生成第二数据链路层报文,其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文;所述发送所述第一数据链路层报文,包括:分别发送所述M个Block和所述第二数据链路层报文;其中,在发送第i个Block之后,且发送第i+1个Block之前,发送所述第二数据链路层报文,i为大于或等于1且小于M的正整数。
其中,由于本申请实施例提供的数据链路层报文是分块的数据链路层报文,所以报文块可以分别发送。因此,在分块发送第一数据链路层报文的过程中,可以根据发送情况(例如:第一数据链路层报文的报文块数量很多,或发送完全部第一数据链路层报文的报文块的时间较长时),在发送当前报文块后,相较于继续发送下一个报文块可以优先发送控制报文(即,第二数据链路层报文),在发送完上述控制报文后,再继续发送第一数据链路层报文中剩余的报文块。该方式可以使得接收端可以尽快接收到控制报文来维护或管理发送端与接收端之间的传输链路,实现高效的数据传输。例如:在发送第i个Block之后,优先发送所述第二数据链路层报文,在发送完该第二数据链路层报文后再继续发送第一数据链路层报文中剩余的报文块。
另外,可以理解的是,由于在发送第一数据链路层报文的过程中,又发送了第二数据链路层报文,而不同的数据链路层报文一般对应不同的虚拟通道进行传输,因此,不同的数据链路层报文对应有不同虚拟通道号。所以在另一些可能的实施例中,第一长度信息还可以用于指示对应所述虚拟通道号的Block数量为M。
可选的,所述控制报文包括网络层控制报文或数据链路层控制报文,所述网络层控制报文用于控制所述有线串行总线的网络层链路,所述数据链路层控制报文用于控制所述有线串行总线的数据链路层链路。在第一数据链路层报文为控制报文时,即,报文块中头部携带的报文类型信息指示该报文块属于控制报文时,该第一数据链路层报文可以分为网络层控制报文或数据链路层控制报文两类,使得该控制报文可以对应完成数据链路层链路或网络层链路的状态管理、信用流控、参数交换、电源管理、重传等功能。
例如:当报文块中头部携带的报文类型信息指示该报文块属于网络层控制报文时,接收端可以基于第一数据链路层报文中部分或全部报文块中的载荷管理或控制与发送端之间的网络层链路;当报文块中头部携带的报文类型信息指示该报文块属于数据链路层控制报文时,接收端可以基于第一数据链路层报文中部分或全部报文块中的载荷管理或控制与发送端之间的数据链路层链路。
其中,状态管理,是指数据链路层链路或网络层链路的状态,是否处于连通状态,是否处于可以传输数据的状态等;信用流控,是指接收端用来控制发送端还可以发送多少数据或者还可以发送多大数据的机制,防止接收端溢出或缓存区域的存储空间不足;参数交换,是指发送端与接收端之间数据链路层链路或网络层链路的链路参数交换;电源管理,是指发送端或接收端是否开启省电等操作;重传,是指数据链路层是否需要重新传输等。
可选的,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文或跨IP网络的协议报文。跨网络传输数据报文为可以适用于不同的网络协议,如IPv4协议、IPv6协议或其他网络协议,实现跨越IP网络的计算系统之间传输的数据报文。
因此,该数据链路层的跨网络传输数据报文可以包括互联网协议版本IPv4协议报文或Ipv6协议报文中的一种。示例性的,当报文块中头部携带的报文类型信息指示该报文块属于互联网协议版本IPv4协议报文时,说明该第一数据链路层报文可以在执行互联网协议版本IPv4的网络中传输;当报文块中头部携带的报文类型信息指示该报文块属于互联网协议版本Ipv6协议报文时,说明该第一数据链路层报文可以在执行互联网协议版本IPv6的网络中传输。
另外,需要说明的是,在第一数据链路层报文为跨网络传输数据报文时,互联网协议版本IPv4协议报文或Ipv6协议报文对应的网络信息可以只出现在第一个报文块中,也可以出现在每一个报文块中,对此,本申请实施例并不作具体的限定。
可选的,数据链路层的非跨网络传输数据报文包括数据报文,其中,非跨网络传输数据报文只在本地网络的数据传输,并不涉及IP层的网络传输,因此,相较于跨网络传输数据报文的区别在于是否跨IP网络传输。非跨网络传输报文还可以包括本地网络的计算系统中的协议报文,用于指示该第一数据链路层报文为适用于本地网络的计算系统内部传输的数据链路层报文。
其中,数据报文可以包括音频数据、文本数据、图像数据或其它类型的数据中的一种或多种。
在另一些实施例中,报文类型信息可以用域段名CFG标识,使得接收端通过识别域段名CFG对应的不同值确定接收到的报文块所属的报文类型。例如:在CFG=A时,可以指示该报文块为数据链路层控制报文;在CFG=B时,可以指示该报文块为网络层控制报文;在CFG=C时,可以指示该报文块为IPv4协议报文;在CFG=D时,可以指示该报文块为IPv6协议报文;在CFG=E时,可以指示该报文块为数据报文;在CFG=F时,可以指示该报文块为其他本地或跨IP网络的协议报文等等。
在另一些实施例中,第一数据链路层报文的第一个报文块的头部还可以包括用于指示第一数据链路层报文的其他标识信息,本申请实施例对此并不作具体的限定。例如:第一个报文块的头部还可以包括指示报文是否返回信用证的信用证信息(可以用域段名CRD标识);指示报文是否释放空间的释放信息(可以用域段名ACK标识);指示返还的信用证所对应的虚拟通道号(可以用域段名CRD-VL标识)等等,其中,信用证用于对数据传输的流量进行控制。
步骤S103:接收第一数据链路层报文。
具体的,接收端接收第一数据链路层报文。
步骤S104:基于报文类型信息处理第一数据链路层报文。
具体的,接收端基于所述报文类型信息处理所述第一数据链路层报文。例如:接收端根据第一数据链路层报文中报文性信息进行格式识别和字段解析,对该第一数据链路层报文进行转发、终结或其他处理。
可选的,接收端识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述网络层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的网络层链路。接收端识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述数据链路层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的数据链路层链路。
可选的,接收端识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述互联网协议版本IPv4协议报文时,基于IPv4协议转发所述第一数据链路层报文。接收端识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述Ipv6协议报文时,基于IPv6协议转发所述第一数据链路层报文。
可选的,接收端识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为数据报文时,处理该数据报文。
可选的,M大于1;所述方法还包括:在接收所述第一端发送的第i个Block之后,且接收所述第一端发送的第i+1个Block之前,接收所述第一端发送的第二数据链路层报文;其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文,i为大于或等于1且小于M的正整数。接收端在接收第一数据链路层报文的过程中还可以接收控制报文,以维护或管理发送端与接收端之间的链路。
在本申请实施例中,兼顾本地网络的数据传输和跨IP网络的数据传输,实现不同端或不同节点设备之间的高性能低延时连接和缓存一致性维护。其中,在有线串行总线中传输分块的数据链路层报文(即,第一数据链路层报文),该分块的数据链路层报文包括至少一个报文块,每个报文块均包括头部Header和载荷Body,其中,该头部中包括有报文类型信息,该报文类型信息可以用于指示对应报文块所属的报文类型,进而可以指示该分块的数据链路层报文对应的报文类型,以使接收端可以基于该报文类型识别该数据链路层报文是控制报文,本地网络的数据链路层报文(即,非跨网络传输数据报文),还是跨IP网络传输的数据链路层报文(即,跨网络传输数据报文)。进而,接收端可以根据识别出的报文类型,对接收到的数据链路层报文做相应的处理,从而实现端对端的跨网络传输或本地网络传输,满足各种应用场景的高性能低延时连接和缓存一致性维护。而且,本申请实施例中针对跨网络传输的数据链路层报文与非跨网络传输的数据链路层报文的报文格式相同,大大降低了有线串行总线数据传输系统的复杂度。另外,由于本申请实施例提供的数据链路层报文是分块的数据链路层报文,所以报文块可以分别发送,以保证数据链路层报文在有线串行总线中传输时的服务质量。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的相关装置。
请参见图11,图11是本申请实施例提供的一种有线串行总线数据传输装置的结构示意图。
如图11所示所述有线串行总线数据传输装置10应用于上述图4所示的发送端,上述发送端与接收端通过有线串行总线进行数据传输。该有线串行总线数据传输装置10可以包括:第一生成单元201和发送单元202,还可以包括:第二生成单元203。其中,各个单元的详细描述如下。
第一生成单元201,用于生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种。
发送单元202,用于发送所述第一数据链路层报文。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
在一种可能实现的方式中,M大于1;所述装置还包括:第二生成单元203,用于生成第二数据链路层报文,其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文;所述发送单元202,具体用于:分别发送所述M个Block和所述第二数据链路层报文;其中,在发送第i个Block之后,且发送第i+1个Block之前,发送所述第二数据链路层报文,i为大于或等于1且小于M的正整数。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文,所述网络层控制报文用于控制所述有线串行总线的网络层链路,所述数据链路层控制报文用于控制所述有线串行总线的数据链路层链路。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文。
需要说明的是,本申请实施例中所描述的有线串行总线数据传输装置10中各功能模块的功能还可参见上述图5-图10中所述的方法实施例中的步骤S101-步骤S102相关描述,此处暂不赘述。
请参见图12,图12是本申请实施例提供的另一种有线串行总线数据传输装置的结构示意图。
如图12所示所述有线串行总线数据传输装置20应用于上述图4所示的接收端,上述发送端与接收端通过有线串行总线进行数据传输。该有线串行总线数据传输装置20可以包括接收单元301和处理单元302。其中,各个单元的详细描述如下。
接收单元301,用于接收第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种。
处理单元302,用于基于所述报文类型信息处理所述第一数据链路层报文。
在一种可能实现的方式中,每个所述Block包括一个或多个片段Flit;其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
在一种可能实现的方式中,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所属Block对应传输的虚拟通道。
在一种可能实现的方式中,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
在一种可能实现的方式中,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
在一种可能实现的方式中,第三阈值与第四阈值之间对应的长度大小与所述第二校验码的长度大小一致。
在一种可能实现的方式中,M大于1;所述接收单元301,还用于:在接收所述第一端发送的第i个Block之后,且接收所述第一端发送的第i+1个Block之前,接收所述第一端发送的第二数据链路层报文;其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文,i为大于或等于1且小于M的正整数。
在一种可能实现的方式中,所述控制报文包括网络层控制报文或数据链路层控制报文;所述处理单元302,具体用于:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述网络层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的网络层链路;或者,在所述报文类型信息指示的所述报文类型为所述数据链路层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的数据链路层链路。
在一种可能实现的方式中,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文;所述处理单元302,具体用于:识别所述报文类型信息指示的所述报文类型;在所述报文类型信息指示的所述报文类型为所述互联网协议版本IPv4协议报文时,基于IPv4协议转发所述第一数据链路层报文;或者,在所述报文类型信息指示的所述报文类型为所述Ipv6协议报文时,基于IPv6协议转发所述第一数据链路层报文。
应理解,本申请的第三方面提供的有线串行总线数据传输装置与本申请第二方面的技术方案一致,其具体内容以及有益效果可参考上述第一方面或第二方面中提供的有线串行总线数据传输方法,此处不再进行赘述。
需要说明的是,本申请实施例中所描述的有线串行总线数据传输装置20中各功能模块的功能还可参见上述图5-图10中所述的方法实施例中的步骤S103-步骤S104相关描述,此处暂不赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务端或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(Read-Only Memory,缩写:ROM)或者随机存取存储器(Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (16)
1.一种有线串行总线数据传输方法,其特征在于,应用于发送端,所述方法包括:
生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;
发送所述第一数据链路层报文。
2.根据权利要求1所述方法,其特征在于,每个所述Block包括一个或多个片段Flit;
其中,每个所述Block的第一个Flit中包括所述Header和第一校验码,每个所述Block的最后一个Flit中包括第二校验码,所述第一校验码用于校验对应所述第一个Flit中除所述第一校验码之外的信息,所述第二校验码用于校验对应所述Block中除所述第一个Flit和所述第二校验码之外的信息。
3.根据权利要求2所述方法,其特征在于,每个所述Block的所述Header中还包括虚拟通道号,所述虚拟通道号用于指示所述Block对应传输的虚拟通道。
4.根据权利要求3所述方法,其特征在于,所述至少一个Block中第一个Block的第一个Flit还包括第一长度信息和第二长度信息,所述第一长度信息用于指示所述至少一个Block的Block数量为M,所述第二长度信息用于指示最后一个Block中的Flit数量为N,M为正整数,N为正整数。
5.根据权利要求4所述方法,其特征在于,所述第一个Block的第一个Flit还包括第三长度信息,所述第三长度信息用于指示所述最后一个Block中第N个Flit或第N-1个Flit的有效载荷的长度为L字节,L为正整数;
其中,在L大于或等于第一阈值,且小于或等于第二阈值时,所述第三长度信息用于指示第M个Block中第N个Flit的有效载荷的长度为L字节;在L大于或等于第三阈值,且小于或等于第四阈值时,所述第三长度信息用于指示第M个Block中第N-1个Flit的有效载荷的长度为L字节。
6.根据权利要求4所述方法,其特征在于,M大于1;所述方法还包括:
生成第二数据链路层报文,其中,所述第二数据链路层报文中的报文类型信息指示所述第二数据链路层报文为所述控制报文;
所述发送所述第一数据链路层报文,包括:
分别发送所述M个Block和所述第二数据链路层报文;
其中,在发送第i个Block之后,且发送第i+1个Block之前,发送所述第二数据链路层报文,i为大于或等于1且小于M的正整数。
7.根据权利要求1-6任意一项所述方法,其特征在于,所述控制报文包括网络层控制报文或数据链路层控制报文,所述网络层控制报文用于控制所述有线串行总线的网络层链路,所述数据链路层控制报文用于控制所述有线串行总线的数据链路层链路。
8.根据权利要求7所述方法,其特征在于,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文。
9.一种有线串行总线数据传输方法,其特征在于,应用于接收端,所述方法包括:
接收第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;
基于所述报文类型信息处理所述第一数据链路层报文。
10.根据权利要求9所述方法,其特征在于,所述控制报文包括网络层控制报文或数据链路层控制报文;
所述基于所述报文类型信息处理所述第一数据链路层报文,包括:
识别所述报文类型信息指示的所述报文类型;
在所述报文类型信息指示的所述报文类型为所述网络层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的网络层链路;或者,
在所述报文类型信息指示的所述报文类型为所述数据链路层控制报文时,基于所述第一数据链路层报文控制所述有线串行总线的数据链路层链路。
11.根据权利要求9或10所述方法,其特征在于,所述跨网络传输数据报文包括互联网协议版本IPv4协议报文或Ipv6协议报文;
所述基于所述报文类型信息处理所述第一数据链路层报文,包括:
识别所述报文类型信息指示的所述报文类型;
在所述报文类型信息指示的所述报文类型为所述互联网协议版本IPv4协议报文时,基于IPv4协议转发所述第一数据链路层报文;或者,
在所述报文类型信息指示的所述报文类型为所述Ipv6协议报文时,基于IPv6协议转发所述第一数据链路层报文。
12.一种有线串行总线数据传输系统,其特征在于,所述系统包括发送端和接收端,所述发送端通过有线串行总线与所述接收端进行数据传输;其中,所述发送端用于执行如权利要求1-8中任意一项所述的方法,所述接收端用于执行如权利要求9-11中任意一项所述的方法。
13.一种有线串行总线数据传输装置,其特征在于,所述装置应用于发送端,所述装置包括:
第一生成单元,用于生成第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;
发送单元,用于发送所述第一数据链路层报文。
14.一种有线串行总线数据传输装置,其特征在于,所述装置应用于接收端,所述装置包括:
接收单元,用于接收第一数据链路层报文,所述第一数据链路层报文包括至少一个报文块Block,每个所述Block包括头部Header和载荷Body,所述Header包括报文类型信息,所述报文类型信息用于指示所述Block所属的报文类型,所述报文类型为控制报文、跨网络传输数据报文和非跨网络传输数据报文中的一种;
处理单元,用于基于所述报文类型信息处理所述第一数据链路层报文。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,当所述计算机程序被计算机或处理器执行时,使得所述计算机或所述处理器执行如权利要求1-8或9-11中任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机或处理器执行时实现上述权利要求1-8或9-11任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211581602.1A CN118175166A (zh) | 2022-12-09 | 2022-12-09 | 一种有线串行总线数据传输方法、系统及相关装置 |
PCT/CN2023/136181 WO2024120344A1 (zh) | 2022-12-09 | 2023-12-04 | 一种有线串行总线数据传输方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211581602.1A CN118175166A (zh) | 2022-12-09 | 2022-12-09 | 一种有线串行总线数据传输方法、系统及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118175166A true CN118175166A (zh) | 2024-06-11 |
Family
ID=91349286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211581602.1A Pending CN118175166A (zh) | 2022-12-09 | 2022-12-09 | 一种有线串行总线数据传输方法、系统及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118175166A (zh) |
WO (1) | WO2024120344A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100454283C (zh) * | 2006-04-21 | 2009-01-21 | 英业达股份有限公司 | 虚拟通用串行总线设备系统及其数据传输方法 |
US9628382B2 (en) * | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US11216396B2 (en) * | 2016-09-29 | 2022-01-04 | Intel Corporation | Persistent memory write semantics on PCIe with existing TLP definition |
US11929925B2 (en) * | 2020-12-16 | 2024-03-12 | Nokia Solutions And Networks Oy | Reliable generic routing encapsulation tunnels |
-
2022
- 2022-12-09 CN CN202211581602.1A patent/CN118175166A/zh active Pending
-
2023
- 2023-12-04 WO PCT/CN2023/136181 patent/WO2024120344A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024120344A1 (zh) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
CN1633647B (zh) | 用于管理网络中的数据传送的系统、方法 | |
KR100883405B1 (ko) | 공유된 속성들에 근거하여 압축된 큐 쌍으로부터 다중의가상 큐 쌍들을 생성하는 장치 | |
US6697366B1 (en) | Ethernet memory management system and methods for operation thereof | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
JP2006236391A (ja) | パケットベースの通信ネットワークにおけるメッセージ受信の肯定応答システム及び方法 | |
CN103905300A (zh) | 一种数据报文发送方法、设备及系统 | |
CN104753980A (zh) | 数据传输方法及相关装置和通信系统 | |
US10079782B2 (en) | Facilitating communication of data packets using credit-based flow control | |
CN108199976B (zh) | RapidIO网络的交换设备、交换系统和数据发送方法 | |
KR100464195B1 (ko) | 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치 | |
CN113452591B (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN111026324B (zh) | 转发表项的更新方法及装置 | |
WO2023077968A1 (zh) | 一种车载通信方法、装置、设备及存储介质 | |
CN116760911A (zh) | 一种异构协议转换系统和方法 | |
EP4131817A1 (en) | Data transmission method and network device | |
WO2020063501A1 (zh) | 传输确认报文的方法和通信设备 | |
CN1917519B (zh) | 高级数据链路控制协议串行数据的并行传输方法及其系统 | |
CN118175166A (zh) | 一种有线串行总线数据传输方法、系统及相关装置 | |
US10609188B2 (en) | Information processing apparatus, information processing system and method of controlling information processing system | |
US20130051406A1 (en) | Method and system for requester virtual cut through | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN111385069A (zh) | 数据传输方法及计算机设备 | |
CN113572629B (zh) | 消息传输的方法、终端及存储介质 | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |