CN113498596B - 一种基于PCIe的数据传输方法及装置 - Google Patents
一种基于PCIe的数据传输方法及装置 Download PDFInfo
- Publication number
- CN113498596B CN113498596B CN202080003143.1A CN202080003143A CN113498596B CN 113498596 B CN113498596 B CN 113498596B CN 202080003143 A CN202080003143 A CN 202080003143A CN 113498596 B CN113498596 B CN 113498596B
- Authority
- CN
- China
- Prior art keywords
- field
- encapsulation
- data
- tlp
- node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种基于PCIe的数据传输方法及装置,可以使PCIe系统中的Endpoint无需经过根节点(Root)进行通信,从而用于降低车内网复杂度。该方法包括:第一节点将数据封装成TLP后向第二节点进行发送,TLP包括包头以及扩展头,其中,包头包括第一字段和第二字段,第一字段、第二字段和扩展头用于指示第一封装信息,第一封装信息包括数据的数据类型以及数据类型对应的至少一个封装参数。本申请实施例通过利用第一字段、第二字段和扩展头指示传输数据所需要的信息,如数据类型、数据类型对应的封装参数等,使端节点之间即使不经过Root,也可以进行通信,从而可以降低车内网复杂度。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于外围组件互连传递(peripheralcomponent interconnect express,PCIe)的数据传输方法及装置。
背景技术
PCIe是一种高速短距离通信接口,广泛应用在计算机、测试仪器等设备中。PCIe系统的主要组成单元有根节点(Root)、交换节点(Switch)和端节点(Endpoint)。Root负责管理PCIe系统中所有总线和节点,是中央处理单元(central processing unit,CPU)和PCIe系统中Endpoint通信的桥梁;Switch作为数据转发节点,连接Switch和EndPoint;EndPoint为端设备,如外设(Peripheral)。PCIe系统中EndPoint与EndPoint之间不能直接通信,必须经过Root。
PCIe系统中EndPoint之间通信必须通过Root的机制,导致车内网中存在多种传输接口,各种接口之间进行信息交互需要接口转换,不同接口之间的转换导致车内网复杂度大幅提升,尤其是在高速通信场景中。
发明内容
本申请提供一种基于PCIe的数据传输方法及装置,可以使得PCIe系统中的Endpoint之间可以不通过Root进行通信,从而降低车内网复杂度。
第一方面,本申请实施例提供了一种基于PCIe的数据传输方法,包括:第一节点将数据封装成事务层包(transaction layer packet,TLP)后向第二节点进行发送,TLP包括包头以及扩展头,其中,包头包括第一字段和第二字段,第一字段、第二字段和扩展头用于指示第一封装信息,第一封装信息包括数据的数据类型以及数据类型对应的至少一个封装参数。本申请实施例通过利用第一字段、第二字段和扩展头指示传输数据所需要的信息,如数据类型、数据类型对应的封装参数等,使端节点之间即使不经过Root,也可以进行通信,从而可以降低车内网复杂度。
在一种可能的设计中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。上述设计中通过将第一字段和第二字段联合编码的方式,使得TLP可以指示传输数据做需要的信息而使得端节点之间即使不经过Root,也可以进行通信。
在一种可能的设计中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。上述设计中通过将第一字段和第二字段分开指示的方式,使得目的端节点在解析在其中一个字段时可以判断是否采用本申请提供的方案。
在一种可能的设计中,第一字段为类型(Type)字段,第二字段为预留比特位。上述设计中,通过复用Type字段和预留比特位,使得TLP结构的改动较小。
在一种可能的设计中,包头还包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。通过上述设计,使得TLP可以指示更多的封装信息。
在一种可能的设计中,第三字段为包头的字节4~字节15或字节4~字节11。由于包头的字节4~字节15或字节4~字节11根据Type字段不同指示的内容不同,在通过Type字段和预留比特位指示第一封装信息时,可以使用第三字段携带一部分或者全部的封装参数。
在一种可能的设计中,数据类型包括如下至少一项:图像、音频、控制类信息、流写(stream write,SWRITE)、安全。
在一种可能的设计中,图像对应的封装参数可以包括:图像数据类型、像素比特量化深度、分辨率、分段指示信息。
在一种可能的设计中,音频对应的封装参数可以包括:采样量化格式、采样频率、量化深度、道数/通道数。
在一种可能的设计中,控制类信息对应的封装参数可以包括:控制类信息类型、每类控制信息数量。
在一种可能的设计中,安全对应的封装参数可以包括:消息类型、格式指示、加密与否。
在一种可能的设计中,SWRITE对应的封装参数可以包括:对齐方式。
在一种可能的设计中,第一字段为预留值。上述设计中,通过使用预留值,使得PCIe系统可以兼容原有数据传输方法和本申请提供的数据传输方法。
在一种可能的设计中,TLP中可以携带目的端节点的信息,如目的端节点的地址、目的端节点的身份标识(identification,ID)等。通过上述设计,第二节点可以根据目的端节点的信息确定路由路径,从而可以根据路由路径向目的端节点进行发送,而不需要经过Root。
第二方面,本申请实施例提供了一种基于PCIe的数据传输方法,包括:第二节点接收第一节点发送的第一TLP;第二节点向第三节点发送第二TLP;其中,TLP包括包头以及扩展头,其中,包头的第一字段、包头的第二字段以及扩展头用于指示第一封装信息,第一封装信息包括TLP所携带数据的数据类型以及数据类型对应的至少一个封装参数,TLP包括第一TLP和/或第二TLP。本申请实施例通过利用包头的第一字段、包头的第二字段以及扩展头指示传输数据所需要的信息,如数据类型、数据类型对应的封装信息等,使端节点之间即使不经过Root,也可以进行通信,从而可以降低车内网复杂度。
在一种可能的设计中,第一TLP和第二TLP可以为同一个TLP,或者,第一TLP和第二TLP也可以为不同的TLP。
在一种可能的设计中,第一TLP第二TLP包含的数据相同,或者数据的内容相同。
在一种可能的设计中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。上述设计中通过将第一字段和第二字段联合编码的方式,使得TLP可以指示传输数据做需要的信息而使得端节点之间即使不经过Root,也可以进行通信。
在一种可能的设计中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。上述设计中通过将第一字段和第二字段分开指示的方式,使得第三节点在解析在其中一个字段时可以判断是否采用本申请提供的方案。
在一种可能的设计中,第一字段为Type字段,第二字段为预留比特位。上述设计中,通过复用Type字段和预留比特位,使得TLP结构的改动较小。
在一种可能的设计中,包头还包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。通过上述设计,使得TLP可以指示更多的封装信息。
在一种可能的设计中,第三字段为包头的字节4~字节15或字节4~字节11。由于包头的字节4~字节15或字节4~字节11根据Type字段不同指示的内容不同,在通过Type字段和预留比特位指示第一封装信息时,可以使用第三字段携带一部分或者全部的封装参数。
在一种可能的设计中,数据类型包括如下至少一项:图像、音频、控制类信息、SWRITE、安全。
在一种可能的设计中,图像对应的封装参数可以包括:图像数据类型、像素比特量化深度、分辨率、分段指示信息。
在一种可能的设计中,音频对应的封装参数可以包括:采样量化格式、采样频率、量化深度、道数/通道数。
在一种可能的设计中,控制类信息对应的封装参数可以包括:控制类信息类型、每类控制信息数量。
在一种可能的设计中,安全对应的封装参数可以包括:消息类型、格式指示、加密与否。
在一种可能的设计中,SWRITE对应的封装参数可以包括:对齐方式。
在一种可能的设计中,第一字段为预留值。上述设计中,通过使用预留值,使得PCIe系统可以兼容原有数据传输方法和本申请提供的数据传输方法。
在一种可能的设计中,第一TLP中可以携带第三节点的身份信息,如第三节点的地址、第三节点的ID等。通过上述设计,第二节点可以根据第三节点的信息确定路由路径,从而可以根据路由路径向第三节点进行发送,而不需要经过Root。
在一种可能的设计中,在第二节点向第三节点发送第二TLP之前,第二节点可以基于第三节点的身份信息选择路由路径。第二节点向第三节点发送第二TLP,包括:第二节点按照路由路径向第三节点发送第二TLP。通过上述设计,第二节点可以根据第三节点的信息确定路由路径,从而可以根据路由路径向第三节点进行发送,而不需要经过Root。
第三方面,本申请实施例提供了一种基于PCIe的数据接收方法,包括:第三节点接收第二节点发送的TLP,TLP包括包头以及扩展头,其中,包头包括第一字段和第二字段,第一字段、第二字段和扩展头用于指示第一封装信息,第一封装信息包括TLP所携带数据的数据类型以及数据类型对应的至少一个封装参数;第三节点基于第一封装信息对TLP获得数据。本申请实施例通过利用第一字段、第二字段和扩展头指示传输数据所需要的信息,如数据类型、数据类型对应的封装信息等,使端节点之间即使不经过Root,也可以进行通信,从而可以降低车内网复杂度。
在一种可能的设计中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。上述设计中通过将第一字段和第二字段联合编码的方式,使得TLP可以指示传输数据做需要的信息而使得端节点之间即使不经过Root,也可以进行通信。
在一种可能的设计中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。上述设计中通过将第一字段和第二字段分开指示的方式,使得第三节点在解析在其中一个字段时可以判断是否采用本申请提供的方案。
在一种可能的设计中,第一字段为Type字段,第二字段为预留比特位。上述设计中,通过复用Type字段和预留比特位,使得TLP结构的改动较小。
在一种可能的设计中,数据类型包括如下至少一项:图像、音频、控制类信息、SWRITE、安全。
在一种可能的设计中,图像对应的封装参数可以包括:图像数据类型、像素比特量化深度、分辨率、分段指示信息。
在一种可能的设计中,音频对应的封装参数可以包括:采样量化格式、采样频率、量化深度、道数/通道数。
在一种可能的设计中,控制类信息对应的封装参数可以包括:控制类信息类型、每类控制信息数量。
在一种可能的设计中,安全对应的封装参数可以包括:消息类型、格式指示、加密与否。
在一种可能的设计中,SWRITE对应的封装参数可以包括:对齐方式。
在一种可能的设计中,第一字段为预留值。上述设计中,通过使用预留值,使得PCIe系统可以兼容原有数据传输方法和本申请提供的数据传输方法。
在一种可能的设计中,第三节点基于第一封装信息对TLP获得数据时,可以基于第一封装信息确定数据的格式,并基于格式获得数据。通过上述设计,第三节点可以解析TLPHeader,获取图像的类型和格式,从而得到数据。
在一种可能的设计中,包头还包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。通过上述设计,使得TLP可以指示更多的封装信息。
在一种可能的设计中,第三字段为包头的字节4~字节15或字节4~字节11。由于包头的字节4~字节15或字节4~字节11根据Type字段不同指示的内容不同,在通过Type字段和预留比特位指示第一封装信息时,可以使用第三字段携带一部分或者全部的封装参数。
在一种可能的设计中,第三节点基于第一封装信息获得数据时,可以基于第一封装信息以及第二封装信息确定数据的格式,并基于格式获得数据。通过上述设计,第三节点可以解析TLP Header,获取图像的类型和格式,从而得到数据。
第四方面,本申请提供一种基于PCIe的数据传输装置,该装置可以是通信设备,也可以是通信设备内的芯片或芯片组,其中,通信设备可以为第一节点也可以是第二节点也可以是第三节点。该装置可以包括处理单元和收发单元。当该装置是通信设备时,该处理单元可以是处理器,该收发单元可以是收发器;该装置还可以包括存储模块,该存储模块可以是存储器;该存储模块用于存储指令,该处理单元执行该存储模块所存储的指令,以使第一节点执行上述第一方面中相应的功能,或者,该处理单元执行该存储模块所存储的指令,以使第二节点执行上述第二方面中相应的功能,或者,该处理单元执行该存储模块所存储的指令,以使第三节点执行上述第三方面中相应的功能。当该装置是通信设备内的芯片或芯片组时,该处理单元可以是处理器,该收发单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储模块所存储的指令,以使第一节点执行上述第一方面中相应的功能,或者,该处理单元执行存储模块所存储的指令,以使第二节点执行上述第二方面中相应的功能,或者,该处理单元执行存储模块所存储的指令,以使第三节点执行上述第三方面中相应的功能。该存储模块可以是该芯片或芯片组内的存储模块(例如,寄存器、缓存等),也可以是该网络设备内的位于该芯片或芯片组外部的存储模块(例如,只读存储器、随机存取存储器等)。
第五方面,提供了一种基于PCIe的数据传输装置,包括:处理器,还可以包括通信接口和存储器。通信接口用于该装置与其它装置之间传输信息、和/或消息、和/或数据。该存储器用于存储计算机执行指令,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行如上述第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第六方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第七方面,本申请还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第八方面,本申请还提供一种PCIe系统,该系统包括第一节点、第二节点、第三节点,其中,第一节点可以执行上述第一方面中相应的功能,第二节点可以执行上述第二方面中相应的功能,第三节点可以执行上述第三方面中相应的功能。
第九方面,本申请实施例提供的一种芯片,芯片包括至少一个处理器和通信接口,处理器与存储器耦合,用于读取存储器中存储的计算机程序以执行本申请实施例第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第十方面,本申请实施例提供一种芯片,包括通信接口和至少一个处理器,所述处理器运行以执行本申请实施例第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
需要说明的是,本申请实施例中“耦合”是指两个部件彼此直接或间接地结合。
附图说明
图1为本申请实施例提供的一种PCIe系统的架构示意图;
图2为本申请实施例提供的另一种PCIe系统的架构示意图;
图3为本申请实施例提供的一种TLP的结构示意图;
图4为本申请实施例提供的一种TLP头的结构示意图;
图5为本申请实施例提供的一种基于PCIe系统的数据传输系统的流程示意图;
图6为本申请实施例提供的一种摄像头的结构示意图;
图7为本申请实施例提供的一种指示第一封装信息的示意图;
图8为本申请实施例提供的一种图像业务的示意图;
图9为本申请实施例提供的另一种图像业务的示意图;
图10为本申请实施例提供的另一种指示第一封装信息的示意图;
图11为本申请实施例提供的一种图像业务的示意图;
图12为本申请实施例提供的另一种图像业务的示意图;
图13为本申请实施例提供的一种PCIe系统的架构示意图;
图14为本申请实施例提供的一种数据传输装置的结构示意图;
图15为本申请实施例提供的另一种数据传输装置的结构示意图;
图16为本申请实施例提供的另一种数据传输装置的结构示意图;
图17为本申请实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
PCIe是一种高速短距离通信接口,广泛应用在计算机、测试仪器等设备中。目前,由于PCIe可以快速直接读写内存,提供大带宽通信,一些车企将其传输距离加长,作为车内网大数据量通信端口。但是由于PCIe工作机制的限制,不能完全适用于车内网所有场景。
如图1所示为一个PCIe系统,系统的主要组成单元有Root(图1中示出为根节点)、Switch(图1中示出为交换节点)和Endpoint(图1中示出为端节点)。Root负责管理PCIe系统中所有总线(图1中以黑色连线示出)和节点,是CPU和系统中其它设备通信的桥梁,CPU同所有的设备通信经过Root。Switch作为桥梁连接Root、其它Switch、以及Endpoint,作为数据转发的节点。Endpoint为端设备,如外设(peripheral),负责发送或者接收数据。
如图2所示为包括两个PCIe系统的通信系统,两个PCIe系统可以通过非透明桥(non-transparent bridge,NTB)进行通信。NTB可以部署在Switch上。由于一个PCIe系统中的设备都有各自的Root独立管理,因此不同的PCIe系统中的设备的地址和ID会有冲突,为了能让两个系统连接并且正常通信,需要在两个系统之间进行桥接转换,进行地址,或ID的翻译,NTB可以负责地址或者ID转换,使两个PCIe系统相互通信。
PCIe系统中Endpoint与Endpoint之间不能直接通信,必须经过Root,因为只有Root知道Endpoint中有哪些功能,支持什么类型的数据。PCIe系统中的Endpoint的功能,如支持的数据类型、格式等信息都存放在Endpoint的配置空间中,且只有Root有权限去读取Endpoint的配置空间,其它Endpoint和Switch均无权限读取。因此Endpoint支持的数据类型、格式信息只有Root知道,其它节点无法获取。而PCIe系统中Endpoint不知道其它Endpoint支持的数据类型、格式,不经过Root无法进行通信。
如图1中,虽然Endpoint1与Endpoint2连接在一个Switch上,但两者是不能直接通过Switch通信的,Endpoint1/2必须先同Root通信,经Root才能找到Endpoint2/1,例如,Endpoint1向Endpoint2发送数据的过程为,Endpoint1将数据发送给Switch1,Switch1将该数据发送给Root,Root根据各个Endpoint的功能确定数据接收方为Endpoint2,Root将数据发送给Switch1,Switch1将数据发送给Endpoint2。
PCIe系统中Endpoint之间通过Root通信的机制导致其不能适用于车内网很多场景,如环形车内网要求传感器直接连接在网关上,传感器的数据经环网上的网关/交换机进行交换转发传输到不同的计算/显示单元,这种车内网架构要求传感器数据可以经网关/交换机向任意方向转发,以提供通信链路冗余,从而保证车内通信安全,因此车内环网需使用其它接口。这种情况导致车内网中存在多种传输接口,各种接口之间进行信息交互需要接口转换,不同接口之间的转换导致车内网复杂度大幅提升。
基于此,本申请实施例提供一种基于PCIe的数据传输方法及装置,用于解决现有技术中Endpoint之间通过Root通信的机制导致车内网中存在多种传输接口,车内网复杂度较大的问题。其中,方法和装置是基于同一技术构思的,由于方法及设备解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例提供一种基于PCIe的数据传输方法及装置,可以应用于车内网,特别是自动驾驶汽车车内网,也可以应用于其它设备的PCIe系统。
为了方便理解本申请实施例,下面对PCIe基础规范修订5.0版本1.0(PCI ExpressBase Specification Revision 5.0Version 1.0)中TLP的结构进行说明。
TLP的结构可以如图3所示,可以包括TLP前缀(TLP Prefixes)、TLP头(TLPHeader)、数据负荷(Data Payload)、TLP摘要(TLP Digest)。其中,TLP Prefixes长度可以为H字节(Byte),H为大于0的整数;TLP Header长度可以为12/16个字节组成,用于指示PCIe业务类型;Data Payload为数据部分,长度可以为0-4K Byte;TLP Digest长度可以为4字节,指示的内容可以为循环冗余校验码(end-to-end 32bit cyclic redundancy check,ECRC),例如,ECRC可以为循环冗余校验(cyclic redundancy check,CRC)校验码,用于校验数据包传输正确与否。
其中,以16Byte的TLP Header为例,TLP Header的结构可以如图4所示,包括:
格式(format,Fmt)字段:该字段的长度可以为3比特(bit),用于指示TLP Header长度以及TLP是否有Data Payload部分,TLP Header长度有2种,TLP是否包含Data Payload有是和否2种情况,因此,Fmt字段可以指示4种信息,分别为:TLP Header长度为第一种长度且TLP包含Data Payload、TLP Header长度为第一种长度且TLP不包含Data Payload、TLPHeader长度为第二种长度且TLP包含Data Payload、TLP Header长度为第二种长度且TLP不包含Data Payload,此外,Fmt字段还可以指示TLP前缀(Prefix)。Fmt字段包括3bit,共8个状态值,其中,8个状态值中的5个状态值可以用来指示上述5种信息,剩下3个状态值为保留(reserve)。例如,000、001、010、011、100这5个状态值可以用于指示上述5种信息,剩下101、110、111这3个状态值为保留(reserve)。
类型(Type)字段:5bit,用于指示TLP的业务类型。PCIe业务类型有6大类,分别为:存储器(Memory)读/写、输入/输出(input/output,I/O)读/写、配置(Configuration)读/写、消息(Message)请求、结束(Completion)、原子操作。Type字段包括5bit,共32个状态值,PCI Express Base Specification Revision 5.0Version 1.0中使用其中的19个状态值指示TLP的业务类型,剩下13个状态值为reserve。例如,可以使用00000、00001、00010、00100、00101、11011、10000~10111、01010、01011,01100、01101、01110来指示TLP的业务类型,剩下的13个状态值00011、00110、00111、01000、01001、01111、11000~11010、11100~11111为reserve。
T9/T8:预留bit。
优先级(traffic class,TC)字段:用于指示调度优先级。
属性(attributes,Attr)字段:用于指示TLP属性。其中,TLP属性可以指TLP处理方式,例如订购处理(Ordering)、硬件一致性管理(Hardware coherency management(snoop))等等。
轻量级指示(lightweight notification,LN)字段:轻量级指示,PCIe定义的一种简单读写方式。
TLP处理提示(TLP processing hints,TH)字段:用于指示TLP Header尾部是否有PH(Processing Hints)。
TLP摘要指示(indicates presence of TLP Digest,TD)字段:用于指示TLP尾部是否包含TLP摘要。
中毒数据(poisoned data,EP):用于指示是否为中毒数据。
地址类型(address type,AT):用于指示地址是否需要翻译。
长度(Length):用于指示Data Payload长度,可以以4字节为最小单位。
Byte4-Byte7:根据业务类型定义,即根据Type字段指示的业务类型,Byte4-Byte7可以指示该业务类型相应的内容。
Byte8-Byte15:根据路由方式不同内容不同,填充地址或者ID。其中,Byte8-Byte11可以填充目的节点的地址或者目的节点的ID,Byte12-Byte15可以填充源节点的地址或者源节点的ID。或者,Byte8-Byte11可以填充源节点的地址或者源节点的ID,Byte12-Byte15可以填充目的节点的地址或者目的节点的ID。
可以理解的,12Byte的TLP Header的结构与16Byte的TLP Header的结构类型类似,区别在于16Byte的TLP Header中Byte4-Byte7根据业务类型定义,Byte8-Byte15填充地址信息,而12Byte的TLP Header中Byte4-Byte7根据业务类型定义,Byte8-Byte11填充地址信息。
本申请实施例提供的方法基于该PCI Express Base Specification Revision5.0Version 1.0公开的TLP结构。本申请实施例中涉及的“预留值”可以指PCI ExpressBase Specification Revision 5.0Version 1.0中未被使用的状态值,例如,Fmt字段的101、110、111这3个状态值,“预留值”也可以称为“reserve值”。本申请实施例中涉及的“预留bit”可以指PCI Express Base Specification Revision 5.0Version 1.0中TLP未被使用的比特位,例如,TLP Header的T8/T9,“预留比特”也可以称为“保留比特位”、“预留比特位”等。
可以理解的,在后续演进版本中,本申请实施例中涉及的“预留值”也可以指对应演进版本中TLP未被使用的比特位,本申请实施例不作限制。
下面介绍与本申请实施例相关的术语:
数据类型可以但不限于包括:图像、音频、控制类信息、SWRITE、安全等。
数据类型对应的封装参数可以用于表征数据类型的属性。例如,若数据类型为图像,则封装参数可以但不限于包括如下4种参数:
图像数据类型:RAW、RGB、YUV、嵌入式数据(embedded data)、压缩图像、图像中目标轮廓(Object)等;
像素量化深度:如12、20、24等;
分辨率:如1080P、2K、4K等;
分段指示信息:图像感光(sensor)一次输出一行图像,对于分辨率高的图像TLP无法一次传输一行图像,需将一行图像分成若干个TLP传输。分段指示信息用于指示当前TLP是当前行的第几段。
若数据类型为音频,则封装参数可以但不限于包括如下4种参数:
采样量化格式:如浮点量化,整数量化等;
采样频率:如24KHz,48KHz等;
量化深度:如每个采样8bit,12bit等;
声道数/通道数:用于指示当前数据包包含几个声道/通道。
若数据类型为控制类信息,则封装参数可以但不限于包括如下2种参数:
控制类信息类型:如集成电路总线(inter-integrated circuit,I2C)、通用输入/输出(general-purpose input/output,GPIO)、串行外设接口(serial peripheralinterface,SPI)等;
每类控制信息数量:例如当前数据包包含3路I2C,8路GPIO。
若数据类型为安全,则封装参数可以但不限于包括如下3种参数:
消息类型:建立安全需要多条消息交互,每条交互消息的类型不同,如鉴权消息、加密消息等;
格式指示:消息中的bit如何分组,每个组表示什么意思;
加密与否:当前数据包是否加密。
若数据类型为SWRITE,则封装参数可以但不限于包括如下1种参数:
对齐方式:以4字节为最小单位对齐,还是8字节为最小单位对齐。
上述数据类型仅是一种示例性说明,在具体实施中并不限于本申请实施例列举的数据类型。上述各个数据类型对应的封装参数仅是一种示例性说明,在具体实施中,上述各数据类型也可以对应其它的封装参数,这里不做具体限定。
可以理解的,本申请实施例中,“数据类型”仅是一种示例性命名,在具体实施中也可以命名为其它,如也可以称为数据业务类型等,或者,数据类型也可以称为A,只要A与本申请实施例中数据类型具有相同或相似的含义可以将A理解为本申请实施例中的数据类型。“封装参数”仅是一种示例性命名,在具体实施中也可以命名为其它,如也可以称为属性、属性参数等,或者,也可以称为B,只要B与本申请实施例中封装参数具有相同或相似的含义可以将B理解为本申请实施例中的封装参数。
应理解,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c可以是单个,也可以是多个。
需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面将结合附图,对本申请实施例进行详细描述。
本申请提供一种基于PCIe的数据传输方法,该方法可以应用于PCIe系统,例如,如图1所示的PCIe系统,或者如图2所示的PCIe系统等等。如图5所示,该方法包括:
S501,第一节点将数据封装成TLP,其中,TLP包括TLP Header与扩展头。TLPHeader的第一字段、TLP Header的第二字段以及扩展头用于指示第一封装信息,第一封装信息包括该数据的数据类型以及数据类型对应的至少一个封装参数。其中,第一节点可以为PCIe系统中的端节点,也可以为PCIe系统中的交换节点。
一种示例性说明中,扩展头可以包括TLP Header与Data Payload之间的4×n个字节,n为大于或等于1的整数。
一种实现方式中,若扩展头包括的比特位未填充完,则可以预留未使用的比特位。
应理解,“扩展头”仅是一种示例性命名,在后续演进版本中,也可以命名为其它,如A,若A能实现“扩展头”的功能,也可以将A理解为本申请实施例中的“扩展头”。
TLP还可以包括Data Payload,数据可以携带在TLP的Data Payload部分。
在一些实施例中,第一节点可以是端节点也可以是端节点中的芯片,例如第一节点可以是端节点中传输节点(如TX/RX)等。以摄像机(Camera)为例,Camera的结构可以如图6所示,包括镜头(lens)、感光元件(complementary metal oxide semiconductor,COMS)以及TX/RX等等,其中,COMS用于通过镜头采集图像数据,并通过TX/RX发送出去。第一节点可以是Camera,也可以是Camera中TX/RX。若第一节点是端节点,第一节点进行封装的数据可以是自身采集的数据,例如,第一节点是Camera,进行封装的数据可以是Camera采集的图像数据等等,第一节点是麦克风,进行封装的数据可以是麦克风采集的音频数据等等。若第一节点是端节点中的传输节点,第一节点进行封装的数据可以是端节点中传感芯片采集的数据,以图6为例,第一节点进行封装的数据可以是COMS采集的图像数据。
在一种可能的实施方式中,在步骤S501之前,第一节点可以提取数据的封装参数。以图6为例,若第一节点为Camera,第一节点可以确定所采集图像数据的图像数据类型、像素量化深度、分辨率等,并根据图像数据类型、像素量化深度、分辨率等可以计算出图像每一行数据量,结合PCIe每个TLP最大的数据承载量可得出传输一行图像需要TLP的数量,进而决定图像的分段方式,从而可以根据分段方式确定分段指示信息。若第一节点为Camera中的TX/RX,第一节点可以接收COMS采集的图像数据,该图像数据显示携带图像数据类型、像素量化深度、分辨率等封装参数,第一节点可以根据该图像数据携带的图像数据类型、像素量化深度、分辨率等计算出图像每一行数据量,结合PCIe每个TLP最大的数据承载量可得出传输一行图像需要TLP的数量,进而决定图像的分段方式,从而可以根据分段方式确定分段指示信息。
示例性的,第一字段可以为Type字段,第二字段可以为预留比特位,例如,第二字段为图4中的T8字段,又例如第二字段为图4中的T9字段,再例如第二字段包括图4中的T8字段和T9字段。当然,第一字段、第二字段也可以为其它字段,这里不做具体限定。为了描述上的方便,下面以第一字段为Type字段,第二字段为T9字段为例进行说明。
一种示例性说明中,可以使用Type字段的预留值和T9字段的所有状态值指示封装信息,例如,使用Type字段的00011、00110、00111、01000、01001、01111、11000~11010、11100~11111这13个状态值,以及T9字段的0和1共2个状态值,因此,共2×13个状态值可以指示封装信息。
一种实现方式中,TLP Header的第一字段、TLP Header的第二字段以及扩展头指示第一封装信息时,可以使用TLP Header的第一字段、TLP Header的第二字段指示数据类型,使用扩展头携带第一封装信息中的封装参数,如图7所示。
在一些实施例中,可以将Type字段和T9字段进行统一编码(或者联合编码)后指示数据类型,即通过比特集合的取值指示数据类型,比特集合包括Type字段的5个比特以及T9字段的1个比特,从而可以通过这6个比特的状态值(如000010等)指示数据类型,使用扩展头携带第一封装信息中的封装参数。以图像数据为例,可以将Type字段和T9字段进行统一编码后指示图像业务,扩展头携带图像数据类型、像素量化深度、分辨率、分段指示信息,如图8所示。
在另一些实施例中,可以使用Type字段的预留值或者T9字段的状态值可以指示数据类型,使用扩展头携带第一封装信息中的封装参数。以图像数据为例,可以使用Type字段的预留值指示图像业务,扩展头携带图像数据类型、像素量化深度、分辨率、分段指示信息,如图9所示。
另一种实现方式中,TLP Header的第一字段、TLP Header的第二字段以及扩展头指示第一封装信息时,可以使用TLP Header的第一字段、TLP Header的第二字段指示数据类型以及第一封装信息的一部分封装参数,使用扩展头携带第一封装信息的另一部分封装参数,如图10所示。
在一些实施例中,可以将Type字段和T9字段进行统一编码(或者联合编码)后指示数据类型以及一部分封装参数,即通过比特集合的取值指示数据类型以及第一封装信息的一部分封装参数,比特集合包括Type字段的5个比特以及T9字段的1个比特,从而可以通过这6个比特的状态值(如000010等)指示数据类型以及第一封装信息的一部分封装参数,使用扩展头携带第一封装信息的另一部分封装参数。以图像数据为例,可以将Type字段和T9字段进行统一编码后指示图像业务以及图像数据类型,扩展头携带像素量化深度、分辨率、分段指示信息,如图11所示。
在另一些实施例中,可以使用Type字段与T9字段分开指示的方式,也可以理解为Type字段与T9字段指示内容不同,例如,可以使用Type字段指示数据类型,使用T9字段指示第一封装信息的一部分封装参数,使用扩展头携带第一封装信息的另一部分封装参数。又例如,可以使用Type字段指示第一封装信息的一部分封装参数,使用T9字段指示数据类型,使用扩展头携带第一封装信息的另一部分封装参数。以图像业务为例,可以使用Type字段的预留值指示图像业务,可以使用T9字段指示图像数据类型,扩展头携带像素量化深度、分辨率、分段指示信息,如图12所示。
一种示例性说明中,TLP还可以携带指示TLP是否加密的指示信息,或者,也可以理解为,是否加密为数据类型对应的一个封装参数。其中,TLP指示TLP是否加密时,Type字段指示的类型可以为PCIe原有类型,也可以是本申请实施例中涉及的数据类型。
第一封装信息可以包括数据类型对应的所有封装参数,也可以包括数据类型对应的一部分封装参数。
在一些实施例中,TLP Header还可以包括第三字段,示例性的,第三字段可以是16Byte的TLP Header的Byte4-Byte15,也可以是12Byte的TLP Header的Byte4-Byte11。第三字段可以携带数据类型对应的另一部分封装参数。也可以理解为,第三字段可以携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。
通过上述方式可以指示图像、音频、控制类信息、SWRITE、安全中的一种业务的一种格式。或者,也可以指示图像、音频、控制类信息、SWRITE、安全中的一种业务的多种格式。或者,也可以指示图像、音频、控制类信息、SWRITE、安全中的多种业务的多种格式。或者,还可以指示图像、音频、控制类信息、SWRITE、安全中的多种业务混合(如带安全保护的图像等等)。或是其它业务类型及格式,这里不再一一列举。
此外,TLP中还可以携带目的节点(下面统一称为第三节点)的身份信息,例如第三节点的地址、ID等。TLP中还可以携带第一节点的身份信息,例如第一节点的地址、ID等。一种示例为,若TLP Header的长度为16Byte,则TLP Header的Byte8-Byte15可以携带第一节点、第三节点的身份信息。若TLP Header的长度为12Byte,则TLP Header的Byte8-Byte11可以携带第一节点、第三节点的身份信息。其中,第三节点可以为PCIe系统中的端节点,也可以为PCIe系统中的交换节点。
S502,第一节点向第二节点发送TLP。相应的,第二节点接收第一节点发送的该TLP。其中,第二节点可以为PCIe系统中的端节点,也可以为PCIe系统中的交换节点。一种示例性说明中,第二节点可以为PCIe系统中第一节点连接的交换节点。
S503,第二节点向第三节点发送TLP。相应的,第三节点接收第二节点发送的TLP。
一种实现方式中,第二节点发送的TLP与第一节点发送的TLP为同一个TLP,即,第二节点在接收到第一节点发送的TLP后,将该TLP转发给第三节点。
另一种实现方式中,第二节点发送的TLP与第一节点发送的TLP为不同TLP,即,第二节点在接收到第一节点发送的TLP后,对该TLP进行处理,例如将该TLP的源节点信息由第一节点的身份信息修改为第二节点的身份信息等等,然后将经过处理后的TLP发送给第三节点,其中,第二节点发送的TLP与第一节点发送的TLP所携带的数据、封装信息相同。第二节点发送的TLP携带数据、封装信息的方式可以参阅上述步骤S501的相关描述,这里不再赘述。
在一些实施例中,在步骤S503之前,第二节点可以基于第三节点的身份信息确定路由路径。从而,第二节点可以按照该路由路径向第三节点发送TLP。
S504,第三节点基于第一封装信息对第二节点发送的TLP获得数据。
具体的,第三节点基于第一封装信息对第二节点发送的TLP进行解封装,获得数据。
在一种可能的实施方式中,第三节点可以从接收到TLP中获取数据类型以及数据类型对应的封装参数,根据数据类型以及数据类型对应的封装参数确定TLP所携带数据的格式,并基于该格式对TLP进行解封装。
一种实现方式中,第三节点可以根据TLP Header的Type字段、预留比特位和扩展头确定数据类型以及数据类型对应的封装参数。例如,如图8所示,第三节点可以根据TLPHeader的Type字段和T9字段确定TLP所携带数据为图像业务,并根据扩展头获取TLP所携带图像数据的图像数据类型、像素量化深度、分辨率、分段指示信息。
另一种实现方式中,第三节点可以根据TLP Header的Type字段、预留比特位和扩展头确定数据类型以及数据类型对应的部分封装参数,根据TLP Header的第三字段确定数据类型对应的剩余封装参数。例如,第三节点可以根据TLP Header的Type字段、预留比特位确定TLP所携带数据为图像业务,根据TLP Header的第三字段获取TLP所携带图像数据的图像数据类型,并根据扩展头获取TLP所携带图像数据的像素量化深度、分辨率、分段指示信息。
为了更好的理解本申请实施例提供的方案,下面结合图13所示的PCIe系统,对数据传输过程进行具体描述。如图13所示,Camera 1(图13示出为摄像头1,其它Camera类似)或Camera 2拍摄的内容要显示到显示器(Display)上。Camera1/Camera2可以通过上述实施例中第一节点执行的数据传输方法将数据传输到Switch1和Switch2,Switch1可以通过上述实施例中第二节点执行的数据传输方法将数据传输到Switch2,Switch2可以通过上述实施例中第二节点执行的数据传输方法将数据传输到Display,Display可以通过上述实施例中第三节点执行的数据传输方法获取数据。下面以TLP Header的长度为16Byte、预留比特位为T9字段为例,Camera1向Display传输数据的过程如下:
A1,Camera1根据输出的图像类型(如RGB、YUV等),每像素量化bit数,图像分辨率(如2K、4K等),计算出图像每一行数据量,结合PCIe每个TLP最大的数据承载量确定传输一行图像需要TLP的数量,进而决定图像的分段方式。
A2,Camera1将采集的图像数据封装成TLP。
示例性的,Camera1可以按照如下八种方式中任一种方式封装数据:
方式一:Camera1可以使用TLP Header的Type字段与T9字段统一编码后的一个状态值(如000010)指示数据类型为图像业务,使用扩展头指示图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息,如图8所示。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式二:Camera1可以使用TLP Header的Type字段的一个预留值(如00011)或者T9字段的一个状态值指示数据类型为图像业务,使用扩展头指示图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。以Type字段的一个预留值指示数据类型为图像业务为例,如图9所示。Camera1将数据填充到TLP的DataPayload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLPHeader的Byte 8~Byte 15。
方式三:Camera1可以使用TLP Header的Type字段与T9统一编码后的一个状态值(如000010)指示:数据类型为图像业务、图像数据的图像数据类型,使用扩展头指示图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息,如图11所示。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式四:Camera1可以使用TLP Header的Type字段一个预留值(如00011)指示数据类型为图像业务,T9字段指示图像数据的图像数据类型,使用扩展头指示图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息,如图12所示。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式五:Camera1可以使用TLP Header的Type字段与T9字段统一编码后的一个状态值(如000010)指示数据类型为图像业务,TLP Header的Byte 4~Byte 15指示图像数据的图像数据类型,使用扩展头指示图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式六:Camera1可以使用TLP Header的Type字段的一个预留值(如00011)或者T9字段的一个状态值指示数据类型为图像业务,TLP Header的Byte 4~Byte 15指示图像数据的图像数据类型,使用扩展头指示图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。以Type字段的一个预留值指示数据类型为图像业务为例。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式七:Camera1可以使用TLP Header的Type字段与T9统一编码后的一个状态值(如000010)指示:数据类型为图像业务、图像数据的图像数据类型,TLP Header的Byte 4~Byte15指示图像数据的像素量化深度,使用扩展头指示图像数据的分辨率、图像数据的分段指示信息。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
方式八:Camera1可以使用TLP Header的Type字段一个预留值(如00011)指示数据类型为图像业务,T9字段指示图像数据的图像数据类型,TLP Header的Byte 4~Byte 15指示图像数据的像素量化深度,使用扩展头指示图像数据的分辨率、图像数据的分段指示信息。Camera1将数据填充到TLP的Data Payload。Camera1把表示自己的身份信息(如ID,地址)和Display的身份信息填充到TLP Header的Byte 8~Byte 15。
上述八种方式中,Type字段可以使用预留值。下面以上述八种方式中Type字段使用预留值为例进行说明。
A3,Camera1将TLP发给Switch1。
A4,Switch1收到TLP后,检测TLP Header,解析Type字段,如果Type字段的状态值为是PCI Express Base Specification Revision 5.0Version 1.0中使用的状态值,则按照原PCIe机制处理,即将TLP发送给Root,然后由Root根据访问各个端节点的配置空间确定接收侧节点,然后将TLP发送给接收侧节点。如果Type字段为本申请实施例定义的内容,则根据TLP中的第二节点的身份信息去搜索Switch1中的路由信息,按照对应的路由路径把TLP转发到Switch2。
A5,Switch2收到数据后,检测TLP Header,解析Type字段,如果Type字段的状态值为是PCI Express Base Specification Revision 5.0Version 1.0中使用的状态值,则按照原PCIe机制处理,即将TLP发送给Root,然后由Root根据访问各个端节点的配置空间确定接收侧节点,然后将TLP发送给接收侧节点。如果Type字段为本申请实施例定义的内容,则根据TLP中的第二节点的身份信息去搜索Switch2中的路由信息,按照对应的路由路径把TLP发送给Display。
A6,Display收到TLP后,解析TLP Header以及Data Payload,获取图像的类型和格式,并根据分段指示信息恢复一幅完整的图像,将数据传到显示屏上显示。
对应步骤A2中的方式一,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段与T9字段,根据这6比特的状态值(如000010)确定数据类型为图像,解析扩展头确定图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式二,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段,根据这5比特的状态值(如00011)确定数据类型为图像,解析扩展头确定图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式三,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段与T9字段,根据这6比特的状态值(如000010)确定数据类型为图像以及图像数据的图像数据类型,解析扩展头确定图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式四,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段,根据这5比特的状态值(如00011)确定数据类型为图像,或者,Display解析TLP Header的T9字段,根据T9字段确定数据类型为图像。解析TLPHeader的T9字段,根据T9字段确定图像数据的图像数据类型。解析扩展头确定图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式五,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段与T9字段,根据这6比特的状态值(如000010)确定数据类型为图像。解析TLP Header的Byte 8~Byte 15,根据Byte 8~Byte 15确定图像数据的图像数据类型。解析扩展头确定图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式六,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段,根据这5比特的状态值(如00011)确定数据类型为图像。解析TLP Header的Byte 8~Byte 15,根据Byte 8~Byte 15确定图像数据的图像数据类型。解析扩展头确定图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式七,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段与T9字段,根据这6比特的状态值(如000010)确定数据类型为图像以及图像数据的图像数据类型。解析TLP Header的Byte 8~Byte 15,根据Byte8~Byte 15确定图像数据的像素量化深度。解析扩展头确定图像数据的分辨率、图像数据的分段指示信息。
对应步骤A2中的方式八,Display可以通过如下方式获取图像的类型和格式:Display解析TLP Header的Type字段,根据这5比特的状态值(如00011)确定数据类型为图像。解析TLP Header的T9字段,根据T9字段确定图像数据的图像数据类型。解析TLP Header的Byte 8~Byte 15,根据Byte 8~Byte 15确定图像数据的像素量化深度。解析扩展头确定图像数据的分辨率、图像数据的分段指示信息。
本申请实施例通过利用Type字段与T9字段、扩展头指示传输数据所需要的信息,如数据类型、数据类型对应的封装信息等,使得Endpoint之间即使不经过Root,也可以进行通信,从而可以降低车内网复杂度。
并且,通过使用Type字段的预留值使得PCIe系统可以兼容PCIe原有数据传输方法以及本申请实施例提供的数据传输方法。
基于与方法实施例的同一技术构思,本申请实施例提供一种数据传输装置。该装置的结构可以如图14所示,包括处理单元1401以及通信单元1402。
一种实现方式中,数据传输装置具体可以用于实现图5至图12的实施例中第一节点执行的方法,该装置可以是第一节点本身,也可以是第一节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,处理单元1401,用于将数据封装成TLP,TLP包括包头以及扩展头,其中,包头包括第一字段和第二字段,第一字段、第二字段和扩展头用于指示第一封装信息,第一封装信息包括数据的数据类型以及数据类型对应的至少一个封装参数;通信单元1402,用于向第二节点发送TLP。
一种示例性说明中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。
另一种示例性说明中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;
其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。
第一字段可以为Type字段,第二字段为预留比特位。
包头还可以包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。
一种实施方式中,第三字段可以为包头的字节4~字节15或字节4~字节11。
数据类型可以包括如下至少一项:图像、音频、控制类信息、SWRITE、安全。
示例性的,第一字段为预留值。
另一种实现方式中,数据传输装置具体可以用于实现图5至图12的实施例中第三节点执行的方法,该装置可以是第三节点本身,也可以是第三节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,通信单元1402,用于接收第二节点发送的TLP,TLP包括包头以及扩展头,其中,包头包括第一字段和第二字段,第一字段、第二字段和扩展头用于指示第一封装信息,第一封装信息包括TLP所携带数据的数据类型以及数据类型对应的至少一个封装参数;处理单元1401,用于基于第一封装信息对TLP获得数据。
一种示例性说明中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。
另一种示例性说明中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。
第一字段可以为Type字段,第二字段为预留比特位。
数据类型可以包括如下至少一项:图像、音频、控制类信息、SWRITE、安全。
示例性的,第一字段为预留值。
一种可能的实施方式中,处理单元1401,在基于第一封装信息获得数据时,具体用于:基于第一封装信息确定数据的格式;基于格式获得数据。
包头还可以包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。
示例性的,第三字段可以为包头的字节4~字节15或字节4~字节11。
一种可能的实施方式中,处理单元1401,在基于第一封装信息获得数据时,具体用于:根据第一封装信息以及第二封装信息确定数据的格式;基于格式获得数据。
本申请实施例还提供一种数据传输装置。该装置的结构可以如图15所示,包括处理单元1501以及第一通信单元1502、第二通信单元1503。一种实现方式中,数据传输装置具体可以用于实现图5至图12的实施例中第二节点执行的方法,该装置可以是第二节点本身,也可以是第二节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,第一通信单元1502,用于与第一节点之间传输数据;第二通信单元1503,用于与第三节点之间传输数据;处理单元1501,用于通过第一通信单元1502接收第一节点发送的第一TLP;并通过第二通信单元1503向第三节点发送第二TLP;其中,TLP包括包头以及扩展头,其中,包头的第一字段、包头的第二字段以及扩展头用于指示第一封装信息,第一封装信息包括TLP所携带数据的数据类型以及数据类型对应的至少一个封装参数,TLP包括第一TLP以及第二TLP。
一种示例性说明中,比特集合的取值指示数据类型,比特集合包括第一字段的比特以及第二字段的比特;扩展头携带至少一个封装参数。
另一种示例性说明中,第一字段指示数据类型,第二字段指示第一参数集合;数据包的扩展头携带第二参数集合;其中,第一参数集合包括至少一个封装参数中的部分封装参数,第二参数集合包括至少一个封装参数中除部分封装参数以外的其它封装参数。
第一字段可以为Type字段,第二字段为预留比特位。
包头还可以包括第三字段,第三字段携带第二封装信息,第二封装信息包括数据类型对应的封装参数中除第一封装信息所包括封装参数以外的其它封装参数。
第三字段可以为包头的字节4~字节42或字节4~字节38。
数据类型可以包括:图像、音频、控制类信息、SWRITE、安全。
示例性的,第一字段可以为预留值。
一种实施方式中,第一TLP携带第三节点的身份信息;处理单元1501,还用于:在通过第二通信单元1503向第三节点发送第二TLP之前,基于第三节点的身份信息选择路由路径;处理单元1501,在通过第二通信单元1503向第三节点发送第二TLP时,具体用于:按照路由路径向第三节点发送第二TLP。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可以理解的是,本申请实施例中各个模块的功能或者实现可以进一步参考方法实施例的相关描述。
一种可能的方式中,数据传输装置可以如图16所示,该装置可以是端节点或者端节点中的芯片。该装置可以包括处理器1601,通信接口1602,存储器1603。其中,处理单元1401可以为处理器1601。通信单元1402可以为通信接口1602。
处理器1601,可以是一个CPU,或者为数字处理单元等等。通信接口1602可以是收发器、也可以为接口电路如收发电路等、也可以为收发芯片等等。该装置还包括:存储器1603,用于存储处理器1601执行的程序。存储器1603可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1603是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。
处理器1601用于执行存储器1603存储的程序代码,具体用于执行上述处理单元1401的动作,本申请在此不再赘述。通信接口1602具体用于执行上述通信单元1402的动作,本申请在此不再赘述。
本申请实施例中不限定上述通信接口1602、处理器1601以及存储器1603之间的具体连接介质。本申请实施例在图16中以存储器1603、处理器1601以及通信接口1602之间通过总线1604连接,总线在图16中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
一种可能的方式中,数据传输装置可以如图17所示,该装置可以是交换节点或者交换节点中的芯片。该装置可以包括处理器1701,通信接口1702a,通信接口1702b,存储器1703。其中,处理单元1501可以为处理器1701。第一通信单元1502可以为通信接口1702a。第二通信单元1503可以为通信接口1702b。
处理器1701,可以是一个CPU,或者为数字处理单元等等。通信接口1702a,通信接口1702b可以是收发器、也可以为接口电路如收发电路等、也可以为收发芯片等等。该装置还包括:存储器1703,用于存储处理器1701执行的程序。存储器1703可以是非易失性存储器,比如HDD或SS)等,还可以是volatile memory,例如RAM。存储器1703是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。
处理器1701用于执行存储器1703存储的程序代码,具体用于执行上述处理单元1501的动作,本申请在此不再赘述。通信接口1702a具体用于执行上述第一通信单元1502的动作,本申请在此不再赘述。通信接口1702b具体用于执行上述第二通信单元1503的动作,本申请在此不再赘述。
本申请实施例中不限定上述通信接口1702a、通信接口1702b、处理器1701以及存储器1703之间的具体连接介质。本申请实施例在图17中以存储器1703、处理器1701以及通信接口1702a、通信接口1702b之间通过总线1704连接,总线在图17中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例还提供了一种计算机可读存储介质,用于存储为执行上述处理器所需执行的计算机软件指令,其包含用于执行上述处理器所需执行的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (55)
1.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第一节点将数据封装成事务层包TLP,所述TLP包括包头以及扩展头,其中,所述包头包括第一字段和第二字段,所述第一字段、所述第二字段和所述扩展头用于指示第一封装信息,所述第一封装信息包括所述数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性;
所述第一节点向第二节点发送所述TLP。
2.如权利要求1所述的方法,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
3.如权利要求1所述的方法,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
4.如权利要求1至3任一项所述的方法,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
5.如权利要求1至3任一项所述的方法,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
6.如权利要求5所述的方法,其特征在于,所述第三字段为所述包头的字节4~字节15或字节4~字节11。
7.如权利要求1或2或3或6所述的方法,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
8.如权利要求1或2或3或6所述的方法,其特征在于,所述第一字段为预留值。
9.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第二节点接收第一节点发送的第一事务层包TLP;
所述第二节点向第三节点发送第二TLP;
其中,TLP包括包头以及扩展头,其中,所述包头的第一字段、所述包头的第二字段以及所述扩展头用于指示第一封装信息,所述第一封装信息包括所述TLP所携带数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性,所述TLP包括所述第一TLP和/或所述第二TLP。
10.如权利要求9所述的方法,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
11.如权利要求9所述的方法,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
12.如权利要求9至11任一项所述的方法,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
13.如权利要求9至11任一项所述的方法,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
14.如权利要求13所述的方法,其特征在于,所述第三字段为所述包头的字节4~字节15或字节4~字节11。
15.如权利要求9或10或11或14所述的方法,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
16.如权利要求9或10或11或14所述的方法,其特征在于,所述第一字段为预留值。
17.如权利要求9或10或11或14所述的方法,其特征在于,在所述第二节点向第三节点发送所述第二TLP之前,还包括:
所述第一TLP携带所述第三节点的身份信息,所述第二节点基于所述第三节点的身份信息选择路由路径;
所述第二节点向第三节点发送所述第二TLP,包括:
所述第二节点按照所述路由路径向所述第三节点发送所述第二TLP。
18.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第三节点接收第二节点发送的事务层包TLP,所述TLP包括包头以及扩展头,其中,所述包头包括第一字段和第二字段,所述第一字段、所述第二字段和所述扩展头用于指示第一封装信息,所述第一封装信息包括所述TLP所携带数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性;
所述第三节点基于所述第一封装信息对所述TLP获得所述数据。
19.如权利要求18所述的方法,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
20.如权利要求18所述的方法,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
21.如权利要求18至20任一项所述的方法,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
22.如权利要求18至20任一项所述的方法,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
23.如权利要求18至20任一项所述的方法,其特征在于,所述第一字段为预留值。
24.如权利要求18至20任一项所述的方法,其特征在于,所述第三节点基于所述第一封装信息获得所述数据,包括:
所述第三节点基于所述第一封装信息确定所述数据的格式;
所述第三节点基于所述格式获得所述数据。
25.如权利要求18至20任一项所述的方法,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
26.如权利要求25所述的方法,其特征在于,所述第三字段为所述包头的字节4~字节15或字节4~字节11。
27.如权利要求25所述的方法,其特征在于,所述第三节点基于所述第一封装信息获得所述数据,包括:
所述第三节点根据所述第一封装信息以及所述第二封装信息确定所述数据的格式;
所述第三节点基于所述格式获得所述数据。
28.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
处理单元,用于将数据封装成事务层包TLP,所述TLP包括包头以及扩展头,其中,所述包头包括第一字段和第二字段,所述第一字段、所述第二字段和所述扩展头用于指示第一封装信息,所述第一封装信息包括所述数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性;
通信单元,用于向第二节点发送所述TLP。
29.如权利要求28所述的装置,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
30.如权利要求28所述的装置,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
31.如权利要求28至30任一项所述的装置,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
32.如权利要求28至30任一项所述的装置,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
33.如权利要求32所述的装置,其特征在于,所述第三字段为所述包头的字节4~字节15或字节4~字节11。
34.如权利要求28或29或30或33任一项所述的装置,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
35.如权利要求28或29或30或33所述的装置,其特征在于,所述第一字段为预留值。
36.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
第一通信单元,用于与第一节点之间传输数据;
第二通信单元,用于与第三节点之间传输数据;
处理单元,用于通过所述第一通信单元接收所述第一节点发送的第一事务层包TLP;并通过所述第二通信单元向所述第三节点发送第二TLP;
其中,TLP包括包头以及扩展头,其中,所述包头的第一字段、所述包头的第二字段以及所述扩展头用于指示第一封装信息,所述第一封装信息包括所述TLP所携带数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性,所述TLP包括所述第一TLP和/或所述第二TLP。
37.如权利要求36所述的装置,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
38.如权利要求36所述的装置,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
39.如权利要求36至38任一项所述的装置,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
40.如权利要求36至30任一项所述的装置,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
41.如权利要求40所述的装置,其特征在于,所述第三字段为所述包头的字节4~字节42或字节4~字节38。
42.如权利要求36或37或38或41所述的装置,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
43.如权利要求36或37或38或41所述的装置,其特征在于,所述第一字段为预留值。
44.如权利要求36或37或38或41所述的装置,其特征在于,所述第一TLP携带所述第三节点的身份信息;
所述处理单元,还用于:在通过所述第二通信单元向第三节点发送所述第二TLP之前,基于所述第三节点的身份信息选择路由路径;
所述处理单元,在通过所述第二通信单元向第三节点发送所述第二TLP时,具体用于:按照所述路由路径向所述第三节点发送所述第二TLP。
45.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
通信单元,用于接收第二节点发送的事务层包TLP,所述TLP包括包头以及扩展头,其中,所述包头包括第一字段和第二字段,所述第一字段、所述第二字段和所述扩展头用于指示第一封装信息,所述第一封装信息包括所述TLP所携带数据的数据类型以及所述数据类型对应的至少一个封装参数,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写、或者安全,所述封装参数用于表征所述数据类型的属性;
处理单元,用于基于所述第一封装信息获得所述数据。
46.如权利要求45所述的装置,其特征在于,比特集合的取值指示所述数据类型,所述比特集合包括所述第一字段的比特以及所述第二字段的比特;
所述扩展头携带所述至少一个封装参数。
47.如权利要求45所述的装置,其特征在于,所述第一字段指示所述数据类型,所述第二字段指示第一参数集合;
所述数据包的扩展头携带第二参数集合;
其中,所述第一参数集合包括所述至少一个封装参数中的部分封装参数,所述第二参数集合包括所述至少一个封装参数中除所述部分封装参数以外的其它封装参数。
48.如权利要求45至47任一项所述的装置,其特征在于,所述第一字段为类型Type字段,所述第二字段为预留比特位。
49.如权利要求45至47任一项所述的装置,其特征在于,所述数据类型包括如下至少一项:图像、音频、控制类信息、流写SWRITE、安全。
50.如权利要求45至47任一项所述的装置,其特征在于,所述第一字段为预留值。
51.如权利要求45至47任一项所述的装置,其特征在于,所述处理单元,在基于所述第一封装信息获得所述数据,具体用于:
基于所述第一封装信息确定所述数据的格式;
基于所述格式获得所述数据。
52.如权利要求45至47任一项所述的装置,其特征在于,所述包头还包括第三字段,所述第三字段携带第二封装信息,所述第二封装信息包括所述数据类型对应的封装参数中除所述第一封装信息所包括封装参数以外的其它封装参数。
53.如权利要求52所述的装置,其特征在于,所述第三字段为所述包头的字节4~字节15或字节4~字节11。
54.如权利要求52所述的装置,其特征在于,处理单元,在基于所述第一封装信息获得所述数据时,具体用于:
根据所述第一封装信息以及所述第二封装信息确定所述数据的格式;
基于所述格式获得所述数据。
55.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储程序或指令,所述程序或所述指令在被一个或多个处理器读取并执行时可实现权利要求1至27任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/073925 WO2021147050A1 (zh) | 2020-01-22 | 2020-01-22 | 一种基于PCIe的数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113498596A CN113498596A (zh) | 2021-10-12 |
CN113498596B true CN113498596B (zh) | 2022-10-11 |
Family
ID=76992012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080003143.1A Active CN113498596B (zh) | 2020-01-22 | 2020-01-22 | 一种基于PCIe的数据传输方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220358075A1 (zh) |
EP (1) | EP4080839B1 (zh) |
CN (1) | CN113498596B (zh) |
WO (1) | WO2021147050A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4099637A4 (en) * | 2020-02-27 | 2023-04-12 | Huawei Technologies Co., Ltd. | PCIE BASED COMMUNICATION METHOD AND DEVICE |
CN114285917B (zh) * | 2021-12-29 | 2023-03-10 | 无锡众星微系统技术有限公司 | 一种基于PCIe NTB的多主机通讯方法和装置 |
CN115102780B (zh) * | 2022-07-15 | 2022-12-06 | 飞腾信息技术有限公司 | 数据传输方法、相关装置、系统及计算机可读存储介质 |
CN115297198B (zh) * | 2022-09-21 | 2023-01-13 | 中昊芯英(杭州)科技有限公司 | 数据处理方法、电路、介质和计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473691A (en) * | 1993-11-05 | 1995-12-05 | Microsoft Corporation | System and method for computer data transmission |
CN1608255A (zh) * | 2001-12-28 | 2005-04-20 | 英特尔公司 | 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN105335227A (zh) * | 2014-06-19 | 2016-02-17 | 华为技术有限公司 | 一种节点内的数据处理方法、装置和系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917915B2 (en) * | 2001-05-30 | 2005-07-12 | Sony Corporation | Memory sharing scheme in audio post-processing |
US7702827B2 (en) * | 2007-06-29 | 2010-04-20 | International Business Machines Corporation | System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data |
US8139575B2 (en) * | 2007-06-29 | 2012-03-20 | International Business Machines Corporation | Device, system and method of modification of PCI express packet digest |
US7849252B2 (en) * | 2008-05-30 | 2010-12-07 | Intel Corporation | Providing a prefix for a packet header |
US8441955B2 (en) * | 2011-01-24 | 2013-05-14 | Tektronix, Inc. | Determining mobile video quality of experience and impact of video transcoding |
CN102821082A (zh) * | 2011-06-10 | 2012-12-12 | 成都市华为赛门铁克科技有限公司 | 一种数据传输方法、装置和系统 |
US10089275B2 (en) * | 2015-06-22 | 2018-10-02 | Qualcomm Incorporated | Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system |
US10445280B2 (en) * | 2016-10-12 | 2019-10-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | PCIe switch for aggregating a large number of endpoint devices |
US10261936B2 (en) * | 2017-04-24 | 2019-04-16 | Exten Technologies, Inc. | PCIe switch with data and control path systolic array |
US11775470B2 (en) * | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
-
2020
- 2020-01-22 EP EP20915035.8A patent/EP4080839B1/en active Active
- 2020-01-22 WO PCT/CN2020/073925 patent/WO2021147050A1/zh unknown
- 2020-01-22 CN CN202080003143.1A patent/CN113498596B/zh active Active
-
2022
- 2022-07-21 US US17/870,535 patent/US20220358075A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5473691A (en) * | 1993-11-05 | 1995-12-05 | Microsoft Corporation | System and method for computer data transmission |
CN1608255A (zh) * | 2001-12-28 | 2005-04-20 | 英特尔公司 | 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN105335227A (zh) * | 2014-06-19 | 2016-02-17 | 华为技术有限公司 | 一种节点内的数据处理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220358075A1 (en) | 2022-11-10 |
EP4080839B1 (en) | 2024-01-03 |
CN113498596A (zh) | 2021-10-12 |
EP4080839A1 (en) | 2022-10-26 |
WO2021147050A1 (zh) | 2021-07-29 |
EP4080839A4 (en) | 2023-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113498596B (zh) | 一种基于PCIe的数据传输方法及装置 | |
US20220368564A1 (en) | PCIe-Based Data Transmission Method and Apparatus | |
US11995020B2 (en) | PCIe data transmission method and apparatus | |
US20220368781A1 (en) | PCIe-Based Data Transmission Method and Apparatus | |
CN115102780B (zh) | 数据传输方法、相关装置、系统及计算机可读存储介质 | |
US20220358074A1 (en) | PCIe-Based Data Transmission Method, Apparatus, and System | |
US20220365899A1 (en) | PCIe-Based Data Transmission Method, Apparatus, and System | |
US20220358070A1 (en) | Pcie-based data transmission method and apparatus | |
CN114915499B (zh) | 数据传输方法、相关装置、系统及计算机可读存储介质 | |
EP3231143B1 (en) | A method, apparatus and system for encoding command information in a packet-based network | |
CN113489607B (zh) | 一种业务处理系统、采集设备和汇聚设备 | |
CN113196720B (zh) | 数据处理方法及传输设备、数据处理系统 | |
CN113051212A (zh) | 图形处理器、数据传输方法、装置、电子设备和存储介质 | |
US20220365895A1 (en) | Pcie-based data transmission method and apparatus | |
CN117193706A (zh) | 数据传输模块、片上信息输出装置及方法、芯片 | |
CN115086192A (zh) | 一种数据处理方法、装置、系统及监控卡 | |
CN118210749A (zh) | 基于SerDes的AXI3总线片间桥接方法及系统 | |
JP2023539315A (ja) | 画像伝送方法および装置 |
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 |