CN113439268B - 一种基于PCIe的数据传输方法、装置及*** - Google Patents
一种基于PCIe的数据传输方法、装置及*** Download PDFInfo
- Publication number
- CN113439268B CN113439268B CN202080009205.XA CN202080009205A CN113439268B CN 113439268 B CN113439268 B CN 113439268B CN 202080009205 A CN202080009205 A CN 202080009205A CN 113439268 B CN113439268 B CN 113439268B
- Authority
- CN
- China
- Prior art keywords
- node
- tlp
- type field
- data
- reserved bit
- 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
-
- 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
-
- 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
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
一种基于PCIe的数据传输方法、装置及***,该方法包括:第一节点获得TLP;TLP包括TLP头和数据载荷,TLP头包括类型字段和至少一个预留比特,其中,类型字段和至少一个预留比特指示第一参数集合;第一参数集合包括数据载荷的数据类型;第一节点向第二节点发送TLP。采用上述方法,通过类型字段和至少一个预留比特指示第一参数集合,能够实现PCIe***中EndPoint之间不通过Root进行通信,可以增加PCIe***的冗余度,提升PCIe***的安全性和可靠性。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种基于PCIe的数据传输方法、装置及***。
背景技术
外设部件互连高速(peripheral component interconnect express,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与EndPoint之间的通信依赖Root的问题。
第一方面,本申请提供一种基于PCIe的数据传输方法,该方法包括:第一节点获得TLP,第一节点向第二节点发送上述TLP。上述TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型。
采用上述方法,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型,进一步能够实现PCIe***中EndPoint之间不通过Root进行通信,可以增加PCIe***的冗余度,提升PCIe***的安全性和可靠性。
在一种可能的设计中,第一参数集合还包括数据类型对应的一个或多个第一属性参数。
采用上述设计,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型对应的一个或多个第一属性参数。
在一种可能的设计中,Type字段和至少一个预留比特联合编码,Type字段和至少一个预留比特联合指示第一参数集合。
采用上述设计,Type字段和至少一个预留比特可以采用联合编码的方式进行指示。
在一种可能的设计中,Type字段和至少一个预留比特分别独立编码,Type字段指示的参数与至少一个预留比特指示的参数不同。
示例性地,Type字段指示的参数与至少一个预留比特指示的参数不同具体可以包括以下几种可能形式:1、Type字段指示数据载荷的数据类型,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。2、至少一个预留比特指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。3、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。4、至少一个预留比特指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。
采用上述设计,Type字段和至少一个预留比特可以采用独立编码的方式进行指示。
在一种可能的设计中,Type字段的值为预留值。
采用上述设计,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
在一种可能的设计中,上述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,第二参数集合包括数据类型对应的一个或多个第二属性参数。
应理解的是,第二属性参数与第一属性参数不同,示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和至少一个预留比特指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
采用上述设计,TLP头中的字节4至11中的部分字节或字节4至15中的部分字节可以指示数据类型对应的一个或多个第二属性参数,实现充分利用TLP头中的空闲比特。
在一种可能的设计中,数据类型为图像、音频、控制类信息、写数据流SWRITE、安全中一个或多个。
在一种可能的设计中,第一节点为第一端节点,第二节点为第二端节点;或第一节点为第一端节点,第二节点为第一交换节点;或第一节点为第一交换节点,第二节点为第一端节点;或第一节点为第一交换节点,第二节点为第二交换节点。
采用上述设计,本申请提供的方法可以应用于多种可能的通信场景。
第二方面,本申请提供一种基于PCIe的数据传输方法,该方法包括:交换节点接收第一TLP,交换节点基于第一TLP向第一TLP的目标节点发送第二TLP。第一TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型。
采用上述方法,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型,进一步能够实现PCIe***中EndPoint之间不通过Root进行通信,可以增加PCIe***的冗余度,提升PCIe***的安全性和可靠性。
在一种可能的设计中,第二TLP包括上述数据载荷的内容或包括上述数据载荷。
在一种可能的设计中,第一参数集合还包括数据类型对应的一个或多个第一属性参数。
采用上述设计,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型对应的一个或多个第一属性参数。
在一种可能的设计中,Type字段和至少一个预留比特联合编码,Type字段和至少一个预留比特联合指示第一参数集合。
采用上述设计,Type字段和至少一个预留比特可以采用联合编码的方式进行指示。
在一种可能的设计中,Type字段和至少一个预留比特分别独立编码,Type字段指示的参数与至少一个预留比特指示的参数不同。
示例性地,Type字段指示的参数与至少一个预留比特指示的参数不同具体可以包括以下几种可能形式:1、Type字段指示数据载荷的数据类型,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。2、至少一个预留比特指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。3、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。4、至少一个预留比特指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。
采用上述设计,Type字段和至少一个预留比特可以采用独立编码的方式进行指示。
在一种可能的设计中,Type字段的值为预留值。
采用上述设计,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
在一种可能的设计中,上述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,第二参数集合包括数据类型对应的一个或多个第二属性参数。
应理解的是,第二属性参数与第一属性参数不同,示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和至少一个预留比特指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
采用上述设计,TLP头中的字节4至11中的部分字节或字节4至15中的部分字节可以指示数据类型对应的一个或多个第二属性参数,实现充分利用TLP头中的空闲比特。
在一种可能的设计中,数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
第三方面,本申请提供一种基于PCIe的数据传输方法,该方法包括:第二节点接收来自于第一节点的TLP,TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型。第二节点基于第一参数集合获得上述TLP中的数据载荷。
采用上述方法,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型,进一步能够实现PCIe***中EndPoint之间不通过Root进行通信,可以增加PCIe***的冗余度,提升PCIe***的安全性和可靠性。
在一种可能的设计中,第一参数集合还包括数据类型对应的一个或多个第一属性参数。
采用上述设计,通过Type字段和至少一个预留比特指示第一参数集合,实现TLPHeader支持数据类型对应的一个或多个第一属性参数。
在一种可能的设计中,Type字段和至少一个预留比特联合编码,Type字段和至少一个预留比特联合指示第一参数集合。
采用上述设计,Type字段和至少一个预留比特可以采用联合编码的方式进行指示。
在一种可能的设计中,Type字段和至少一个预留比特分别独立编码,Type字段指示的参数与至少一个预留比特指示的参数不同。
示例性地,Type字段指示的参数与至少一个预留比特指示的参数不同具体可以包括以下几种可能形式:1、Type字段指示数据载荷的数据类型,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。2、至少一个预留比特指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。3、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。4、至少一个预留比特指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。
采用上述设计,Type字段和至少一个预留比特可以采用独立编码的方式进行指示。
在一种可能的设计中,Type字段的值为预留值。
采用上述设计,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
在一种可能的设计中,TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,第二参数集合包括数据类型对应的一个或多个第二属性参数。第二节点基于第一参数集合和第二参数集合获得上述TLP中的数据载荷。
应理解的是,第二属性参数与第一属性参数不同,示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和至少一个预留比特指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
采用上述设计,TLP头中的字节4至11中的部分字节或字节4至15中的部分字节可以指示数据类型对应的一个或多个第二属性参数,实现充分利用TLP头中的空闲比特。
在一种可能的设计中,数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
在一种可能的设计中,第一节点为第一端节点,第二节点为第二端节点;或第一节点为第一端节点,第二节点为第一交换节点;或第一节点为第一交换节点,第二节点为第一端节点;或第一节点为第一交换节点,第二节点为第二交换节点。
采用上述设计,本申请提供的方法可以应用于多种可能的通信场景。
第四方面,本申请实施例提供一种通信装置,该装置可以是第一节点,也可以是第一节点内的芯片。该装置可以包括处理单元、发送单元和接收单元。应理解的是,这里发送单元和接收单元还可以为收发单元。当该装置是第一节点时,该处理单元可以是处理器,该发送单元和接收单元可以是收发器;该第一节点还可以包括存储单元,该存储单元可以是存储器;该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该第一节点执行第一方面或第一方面任意一种可能的设计中的方法。当该装置是第一节点内的芯片时,该处理单元可以是处理器,该发送单元和接收单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储单元所存储的指令,以使该芯片执行第一方面或第一方面任意一种可能的设计中的方法。该存储单元用于存储指令,该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该第一节点内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第五方面,本申请实施例提供一种通信装置,该装置可以是交换节点,也可以是交换节点内的芯片。该装置可以包括处理单元、发送单元和接收单元。应理解的是,这里发送单元和接收单元还可以为收发单元。当该装置是交换节点时,该处理单元可以是处理器,该发送单元和接收单元可以是收发器;该终端设备还可以包括存储单元,该存储单元可以是存储器;该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备执行第二方面或第二方面任意一种可能的设计中的方法。当该装置是交换节点内的芯片时,该处理单元可以是处理器,该发送单元和接收单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储单元所存储的指令,以使该芯片执行第二方面或第二方面任意一种可能的设计中的方法。该存储单元用于存储指令,该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第六方面,本申请实施例提供一种通信装置,该装置可以是第二节点,也可以是第二节点内的芯片。该装置可以包括处理单元、发送单元和接收单元。应理解的是,这里发送单元和接收单元还可以为收发单元。当该装置是第二节点时,该处理单元可以是处理器,该发送单元和接收单元可以是收发器;该终端设备还可以包括存储单元,该存储单元可以是存储器;该存储单元用于存储指令,该处理单元执行该存储单元所存储的指令,以使该终端设备执行第三方面或第三方面任意一种可能的设计中的方法。当该装置是第二节点内的芯片时,该处理单元可以是处理器,该发送单元和接收单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储单元所存储的指令,以使该芯片执行第三方面或第三方面任意一种可能的设计中的方法。该存储单元用于存储指令,该存储单元可以是该芯片内的存储单元(例如,寄存器、缓存等),也可以是该终端设备内的位于该芯片外部的存储单元(例如,只读存储器、随机存取存储器等)。
第七方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得计算机执行上述第一方面至第三方面的方法。
第八方面,本申请实施例还提供一种包含程序的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第三方面的方法。
第九方面,本申请实施例还提供一种通信装置,包括处理器,处理器和存储器耦合;存储器用于存储计算机执行指令;处理器用于执行存储器所存储的计算机执行指令,以使该通信装置执行上述第一方面至第三方面的方法。
第十方面,本申请实施例还提供一种通信装置,包括处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器运行代码指令以执行上述第一方面至第三方面的方法。
第十一方面,本申请实施例还提供一种通信***,包括至少一个第一节点、至少一个交换节点和至少一个第二节点,第一节点执行上述第一方面的方法,交换节点执行上述第二方面的方法,第二节点执行上述第三方面的方法。
第十二方面,本申请实施例还提供一种通信***,包括至少一个第一节点和至少一个第二节点,第一节点执行上述第一方面的方法,第二节点执行上述第三方面的方法。
附图说明
图1为本申请中典型的PCIe***架构的示意图之一;
图2为本申请中典型的PCIe***架构的示意图之二;
图3为本申请中TLP的结构示意图;
图4为本申请中TLP 头部的结构示意图;
图5为本申请中一种基于PCIe的数据传输方法的概述流程图之一;
图6为本申请中Type字段和T9指示第一参数集合的示意图;
图7为本申请中TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合的示意图;
图8为本申请中一种基于PCIe的数据传输方法的概述流程图之二;
图9为本申请中一种基于PCIe的数据传输方法的概述流程图之二;
图10为本申请中一种PCIe***的示意图;
图11为本申请中camera1拍摄的图像在display上显示的具体流程图;
图12为本申请中Type字段和T8指示第一参数集合的示意图;
图13为本申请中一种装置结构示意图之一;
图14为本申请中一种装置结构示意图之二。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
本申请实施例可以适用于PCIe***,其中,PCIe***可以应用于车内网、自动化生产线,数据中心等场景。应理解的是,以下应用场景举例不作为本申请的限定。
在一种可能的应用场景中,如图1所示为一个典型的PCIe***架构。如图1所示的PCIe***包括Root, Switch1, Switch2, EndPoint1, EndPoint2,EndPoint3。其中,EndPoint1与EndPoint2连接在Switch1上,EndPoint3连接在Switch2上。其中,需要注意的是CPU不属于PCIe***,CPU与Root的接口不是PCIe接口。
在另一种可能的应用场景中,如图2所示,两个PCIe***通过带有非透明桥(non-transparent bridge,NTB)的Switch相连,EndPoint1、EndPoint2、EndPoint3、Switch1、Switch2属于Root1管理,EndPoint4和Switch3属于Root2管理,Root1及其管理的Switch、EndPoint属于一个PCIe***,Root2及其管理的Switch、EndPoint属于一个PCIe***,由于两个PCIe***独立的分配地址和ID,因此需要使用NTB相连。具体的,NTB用于连接两个PCIe***。由于每个PCIe***中的设备都有各自的Root独立管理,因此不同的PCIe***中的设备的地址和ID会有冲突,为了能让两个PCIe***连接并且正常通信,需要在两个PCIe***之间进行桥接转换,进行地址,或ID的翻译。
在又一种可能的应用场景中,环形车内网要求传感器直接连接在网关上,传感器的数据经环形车内网上的网关或交换机进行交换转发传输到不同的计算单元或显示单元。上述环形车内网架构要求传感器的数据可以经网关或交换机向任意方向转发,以提供通信链路冗余,从而保证车载功能安全。但是,若环形车内网采用PCIe***组网,由于PCIe***中的EndPoint之间通信必须通过Root的机制,将导致环形车内网存在多种传输接口,各种传输接口之间进行信息交互需要接口转换,尤其是在高速通信场景中,多种传输接口之间的信息转换将导致环形车内网的复杂度大幅提升,且导致增加了数据传输的时延。因此,为了将PCIe***应用到上述环形车内网场景中,需要PCIe***支持EndPoint之间不经过Root进行通信。
现有PCIe协议中用于传输数据的数据包称为事务层数据包(Transmission LayerPacket,TLP),其结构如图3所示,由TLP前缀(TLP Prefix)、TLP头部(TLP Header)、数据载荷(Data Payload)、TLP摘要(TLP Digest),共4部分组成。其中,TLP Prefix为可选的部分,长度为H字节,H为大于0的整数。TLP Header的长度为12个字节或16个字节,用于指示PCIe业务类型等信息。Data Payload的长度为0-4K字节。TLP Digest为可选的部分,其内容可以为端到端循环冗余校验(end-to-end cyclic redundancy check,ECRC),用于校验TLP传输正确与否,长度为4字节。
TLP Header的结构如图4所示,以下对TLP Header中的各个字段进行简要介绍:
格式(format,Fmt)字段:占用3bit,支持指示8种类型,用于指示TLP Header的长度以及TLP是否有Data Payload。现有PCIe协议共使用该字段的5种类型,预留3种类型。其中,TLP Header长度有12个字节或16个字节2种情况,TLP是否包含Data Payload包括2种情况,因此共使用该字段的4种类型指示上述情况的组合,另外使用一种类型指示是否包含TLP Prefix,其中,当TLP包括TLP Prefix时,Fmt字段指示TLP包括TLP Prefix,当TLP不包括TLP Prefix时,Fmt字段指示TLP不包括TLP Prefix。
类型(type)字段:占用5bit,支持指示32种类型。现有PCIe协议使用其中的19种类型用于指示TLP的业务类型。其中,PCIe业务类型有6大类,分别为:内存(memory)读/写、I/O读/写、配置(configuration)读/写、消息(message)请求、完成(completion)、原子操作。
T9和T8:各占用1bit,为预留bit。
优先级(traffic class,TC)字段:用于指示调度优先级。
属性(attributes,Attr)字段:用于指示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(字节4至字节7):根据业务类型定义。
Byte8-Byte15(字节8至字节15):根据路由方式不同填充的内容不同,例如,填充Endpoint映射到CPU的内存地址或者Endpoint ID。
在PCIe***中,Root能够读取EndPoint的配置空间,进而获知EndPoint的功能,以及EndPoint发送的数据载荷的数据类型和数据格式,而其他EndPoint和Switch均无权限读取配置空间。因此,EndPoint与EndPoint之间不能直接通信,必须经过Root才能实现EndPoint与EndPoint之间的通信。例如,在图1中,虽然EndPoint1与EndPoint2连接在Switch1上,但两者是不能直接通过Switch1进行通信,EndPoint1必须先与Root进行通信,通过Root才能找到EndPoint2。因此,现有的PCIe***的工作机制具有较大的局限性,EndPoint与EndPoint之间的通信依赖于Root。
基于此,为了解决EndPoint与EndPoint之间的通信依赖Root的问题,本申请实施例提供一种基于PCIe的数据传输方法,如图5所示,该方法包括:
步骤501:第一节点获得TLP。其中,TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型。
其中,数据载荷的数据类型可以为图像、音频、控制类信息、写数据流(streamwrite,SWRITE)、安全中一个或多个。例如,第一节点为摄像机,则第一节点所需传输的数据载荷的数据类型可以为图像,或者图像和音频。又例如,第一节点为传感器,则第一节点所需传输的数据载荷的数据类型可以为安全。
在一种可能的设计中,第一参数集合还包括数据类型对应的一个或多个第一属性参数。应理解的是,数据类型对应的第一属性参数可以用于指示数据载荷的数据格式。不同数据类型对应的第一属性参数一般不同。
数据类型为图像,则数据类型为图像对应的属性参数可以包括图像数据类型,像素量化深度,分辨率、分段指示信息等参数,数据类型为图像对应的第一属性参数可以包括上述参数中的一个或多个。其中,图像数据类型包括RAW、RGB、YUV、嵌入式数据(embeddeddata)等。像素量化深度包括12bit、20bit、24bit等。分辨率包括1080P、2K、4K等。图像传感器(sensor)一次输出一行图像,对于分辨率较高的图像,TLP无法一次传输一行图像,需将一行图像分成若干个TLP包进行传输。示例性地,分段指示信息可以指示当前TLP是当前行的第几段,还可以包括将图像分段的具体规则,例如,平均分段,3个TLP传输一行图像。
数据类型为音频,则数据类型为音频对应的属性参数可以包括采样量化格式、采样频率、量化深度、声道数(或通道数)等参数,数据类型为音频对应的第一属性参数可以包括上述参数中的一个或多个。其中,采样量化格式包括浮点量化,整数量化等,采样频率包括24KHz,48KHz等,量化深度包括8bit,12bit等,声道数(或通道数)是指当前数据载荷包含几个声道(或通道)。
数据类型为控制类信息,则数据类型为控制类信息对应的属性参数可以包括控制类信息类型、每类控制类信息的数量等参数,数据类型为控制类信息对应的第一属性参数可以包括上述参数中的一个或多个。其中,控制类信息类型包括两线式串行总(inter-integrated circuit,I2C)、通用输入或输出口(General Purpose Input Output,GPIO)、串行外设接口(serial peripheral interface,SPI)等。示例性地,每类控制类信息的数量可以指示当前数据包包含3路I2C或8路GPIO。
数据类型为安全,则数据类型为安全对应的属性参数可以包括消息类型和格式指示等参数,数据类型为安全对应的第一属性参数可以包括上述参数中的一个或多个。其中,消息类型是指建立安全通道所需交互的消息的类型,格式指示可以指示数据载荷中bit如何分组,以及每个bit组的含义等。
数据类型为SWRITE,则数据类型为SWRITE对应的属性参数可以包括对齐方式等参数,数据类型为SWRITE对应的第一属性参数可以包括上述参数中的一个或多个。示例性地,对齐方式可以为以4字节为最小单位对齐,或以8字节为最小单位对齐。
其中,Type字段和至少一个预留比特指示第一参数集合可以采用但不限于以下方式:
方式1:Type字段和至少一个预留比特联合编码;Type字段和至少一个预留比特联合指示第一参数集合。
例如,以使用两个预留比特为例,Type字段和两个预留比特联合编码结果为0000100,0000100表示分辨率为2K,像素量化深度为24bit,图像数据类型为RGB图像,分段指示信息包括平均分段,3个TLP传输一行图像,其中,前5个比特对应Type字段,后2个比特对应两个预留比特。此外,上述联合编码结果还同时指示了TLP包括的数据载荷的数据类型为图像。
因此,在上述方式1中,每个联合编码结果对应一组预定义的参数(即第一参数集合),发端节点和收端节点可以提前约定联合编码方式。具体的,发端节点基于所需发送的TLP中的数据载荷的数据类型,以及该数据类型对应的一个或多个第一属性参数(即第一参数集合),确定该第一参数集合对应的Type字段和至少一个预留比特的联合编码结果;收端节点在解析出Type字段和至少一个预留比特的联合编码结果后,基于该联合编码结果获得该第一参数集合。
方式2:Type字段和至少一个预留比特分别独立编码;Type字段指示的参数与至少一个预留比特指示的参数不同。
其中,方式2具体可以包括以下几种可能形式:
1、Type字段指示数据载荷的数据类型,至少一个预留比特指示数据类型对应的一个或多个第一属性参数;
2、至少一个预留比特指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数;
3、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,至少一个预留比特指示数据类型对应的一个或多个第一属性参数。
其中,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同,例如,Type字段指示数据类型为图像以及图像数据类型,两个预留比特分别指示像素量化深度和分辨率。
4、至少一个预留比特指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。
同理,Type字段指示的第一属性参数与至少一个预留比特指示的第一属性参数不同。
例如,Type字段指示像素量化深度,图像数据类型,至少一个预留比特指示数据类型为图像,以及分段指示信息(如平均分段,3个TLP传输一行图像)。
在一种可能的设计中,在上述方式1和方式2中,Type字段的值为预留值。因此,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
如图6所示,采用上述方式1或方式2的方法,Type字段和T9指示第一参数集合。
此外,在一种可能的设计中,TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,第二参数集合包括数据类型对应的一个或多个第二属性参数,如图7所示。
应理解的是,一般地,第二属性参数与第一属性参数不同。示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和至少一个预留比特指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
示例性地,数据类型为音频,则数据类型为音频对应的两个第一属性参数可以包括采样量化格式、采样频率,数据类型为音频对应的两个第二属性参数可以包括量化深度、声道数(或通道数)。
在一种可能的设计中,TLP还包括TLP的源节点的标识信息和TLP的目标节点的标识信息,即第一节点的标识信息和第二节点的标识信息。其中,第一节点的标识信息可以为第一节点的标识或地址,第二节点的标识信息可以为第二节点的标识或地址。
应理解的是,TLP的源节点的标识信息和TLP的目标节点的标识信息占用字节8至字节11或字节8至字节15中的部分字节,除上述TLP的源节点的标识信息和TLP的目标节点的标识信息外,字节8至字节11或字节8至字节15中的剩余字节可以用于指示第二参数集合中的一个或多个第二属性参数。
步骤502:第一节点向第二节点发送TLP。
第一节点和第二节点可以为以下几种可能的组合情况:
第一节点为第一端节点,第二节点为第二端节点,即端节点之间的通信;或第一节点为第一端节点,第二节点为第一交换节点;或第一节点为第一交换节点,第二节点为第一端节点;或第一节点为第一交换节点,第二节点为第二交换节点,即交换节点之间的通信。
示例性地,如图1所示,第一节点可以Endpoint1,第二节点可以为Switch1。或者,第一节点可以为Switch1,第二节点可以为Endpoint1。或者,第一节点可以为Switch1,第二节点可以为Switch2。
综上,采用本申请实施例提供的方法,通过Type字段和至少一个预留比特指示第一参数集合,实现TLP Header支持数据类型及数据类型对应的属性参数的指示,进一步能够实现PCIe***中EndPoint之间不通过Root进行通信,可以增加PCIe***的冗余度,提升PCIe***的安全性和可靠性。
本申请实施例提供一种基于PCIe的数据传输方法,如图8所示,该方法包括:
步骤801:交换节点接收第一TLP;第一TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合;第一参数集合包括数据载荷的数据类型。
示例性地,这里的第一TLP可以是指一个端节点发送至当前交换节点的TLP,或者,另一个交换节点发往当前交换节点的TLP。
应理解的是,针对第一TLP中Type字段和至少一个预留比特指示第一参数集合的具体指示方法,数据类型和数据类型对应的一个或多个第一属性参数的具体内容、以及第二参集合的具体指示方法可以参考步骤501中的具体内容,重复之处不再赘述。
步骤802:交换节点基于第一TLP向第一TLP的目标节点发送第二TLP。
示例性地,在接收到第一TLP后,交换节点解析第一TLP中的Type字段,确定Type的值为预留值,则交换节点解析字节8至字节11或字节8至字节15,确定第一TLP的目标节点标识,基于第一TLP的目标节点的标识确定路由路径,并根据该路由路径发送第二TLP。
应理解的是,第二TLP可以与第一TLP相同;或者,第二TLP与第一TLP不同。第二TLP包括第一TLP中的数据载荷或第一TLP中的数据载荷的内容。
示例性地,交换节点可以将第一TLP中的第一TLP的源节点的标识信息修改为交换节点的标识信息,即第二TLP包括交换节点的标识信息和第一TLP的目标节点的标识信息。例如,如图1所示,Endpoint1向Switch1发送第一TLP,第一TLP包括Endpoint1的标识信息和Endpoint2的标识信息,Switch1向Endpoint2发送第二TLP,第二TLP包括Switch1的标识信息和Endpoint2的标识信息,除此以外,第二TLP包括的其他内容可以与第一TLP中相应部分的内容相同。
本申请实施例的好处与前面实施例好处类似,不再赘述。
本申请实施例提供一种基于PCIe的数据传输方法,如图9所示,该方法包括:
步骤901:第二节点接收来自于第一节点的TLP;TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合;第一参数集合包括数据载荷的数据类型。
应理解的是,针对TLP中Type字段和至少一个预留比特指示第一参数集合的具体指示方法,数据类型和数据类型对应的一个或多个第一属性参数的具体内容、以及第二参集合的具体指示方法可以参考步骤501中的具体内容,重复之处不再赘述。
步骤902:第二节点基于第一参数集合获得数据载荷。
此外,当TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合时,第二节点基于第一参数集合和第二参数集合获得数据载荷。
本申请实施例的好处与前面实施例好处类似,不再赘述。
以下结合具体示例说明上述实施例。
示例1:
如图10所示,摄像头(camera)1或camera 2连接在Switch1上,显示屏(display)连接在Switch2上。camera1或camera2拍摄的图像需要显示到display上。以下以camera1拍摄的图像在display上显示为例,说明书本申请提供的基于PCIe的数据传输方法,如图11所示。
S1101:camera1向Switch1发送第一TLP。
其中,第一TLP中的Type字段和两个预留比特填充0000100,0000100指示第一参数集合,第一参数集合包括分辨率为2K,像素量化深度为24bit,图像数据类型为RGB,分段指示信息包括平均分段,3个TLP传输一行图像,其中,Type字段和两个预留比特联合编码,前5个比特对应Type字段,Type字段的值为预留值,后2个比特对应两个预留比特,数据类型为图像。
此外,第一TLP中的字节8至字节11或字节8至字节15填充camera1的标识信息和display的标识信息。
S1102:Switch1在接收到来自于camera1的第一TLP后,Switch1解析第一TLP中的Type字段,确定Type的值为预留值,解析字节8至字节11或字节8至字节15,确定display的标识信息,基于display的标识信息确定路由路径。
应理解的是,若交换节点解析Type字段,如果Type的值不是预留值,即Type字段指示原有PCIe类型,则按照原PCIe机制处理。
S1103:Switch1根据该路由路径将第一TLP转发到Switch2。
这里假设Switch1转发到Switch2的TLP与camera1向Switch1发送的TLP相同,此外,Switch1转发到Switch2的TLP与camera1向Switch1发送的TLP也可以不同,即Switch1可以将第一TLP中的camera1的标识信息修改为Switch1的标识信息,本示例中假设Switch1和Switch2均不修改第一TLP。
S1104:Switch2在接收到来自于Switch1的第一TLP后,Switch2解析第一TLP中的Type字段,确定Type的值为预留值,解析字节8至字节11或字节8至字节15,确定display的标识信息,基于display的标识信息确定路由路径。
S1105:Switch2根据该路由路径将第一TLP转发到display。
S1106:display在接收到来自于Switch2的第一TLP后,display解析Type字段和两个预留比特,确定第一参数集合,即按照约定得知0000100表示分辨率为2K,像素量化深度为24bit,图像数据类型为RGB,分段指示信息包括平均分段,3个TLP传输一行图像,display根据第一参数集合获得第一TLP中的数据载荷,并将数据载荷进行显示。
因此,示例1利用Type字段与两个预留比特统一编码指示数据类型为图像和数据类型为图像对应的属性参数,使PCIe***中的camera1和display无需经过Root进行通信。
示例2:
如图12所示,Type字段型指示数据类型为安全,预留比特指示消息类型,示例性地,消息类型可以为鉴权消息或加密消息。
上述本申请提供的实施例中,分别从各个节点本身、以及从各个节点之间交互的角度对本申请实施例提供的通信方法的各方案进行了介绍。可以理解的是,各个节点,例如端节点和交换节点,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
与上述构思相同,如图13所示,本申请实施例还提供一种装置1300,该装置1300包括收发单元1302和处理单元1301。
一示例中,装置1300用于实现上述方法中第一节点的功能。该装置可以是第一节点,也可以是第一节点中的装置,例如芯片***。
处理单元1301,用于获得TLP;上述TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型;
收发单元1302,用于向第二节点发送上述TLP。
一示例中,装置1300用于实现上述方法中交换节点的功能。该装置可以是交换节点,也可以是交换节点中的装置,例如芯片***。
收发单元1302,用于接收第一TLP;第一TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合,第一参数集合包括数据载荷的数据类型;
处理单元1301,用于基于第一TLP向第一TLP的目标节点发送第二TLP,第二TLP包括上述数据载荷的内容或包括上述数据载荷。
一示例中,装置1300用于实现上述方法中第二节点的功能。该装置可以是第二节点,也可以是第二节点中的装置,例如芯片***。
收发单元1302,用于接收来自于第一节点的TLP;上述TLP包括TLP头和数据载荷,TLP头包括Type字段和至少一个预留比特,其中,Type字段和至少一个预留比特指示第一参数集合;第一参数集合包括数据载荷的数据类型;
处理单元1301,用于基于第一参数集合获得上述TLP中的数据载荷。
关于处理单元1301、收发单元1302的具体执行过程,可参见上方法实施例中的记载。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
作为另一种可选的变形,该装置可以为芯片***。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。示例性地,该装置包括处理器和接口电路,接口电路,用于接收代码指令并传输至处理器;处理器运行代码指令以执行上述各个实施例的方法。其中,处理器完成上述处理单元1301的功能,接口电路完成上述收发单元1302的功能。
与上述构思相同,如图14所示,本申请实施例还提供一种装置1400。该装置1400中包括:通信接口1401、至少一个处理器1402、至少一个存储器1403。通信接口1401,用于通过传输介质和其它设备进行通信,从而用于装置1400中的装置可以和其它设备进行通信。存储器1403,用于存储计算机程序。处理器1402调用存储器1403存储的计算机程序,通过通信接口1401收发数据实现上述实施例中的方法。
示例性地,当该装置为第一节点时,存储器1403用于存储计算机程序;处理器1402调用存储器1403存储的计算机程序,通过通信接口1401执行上述实施例中第一节点执行的方法。当该装置为交换节点时,存储器1403用于存储计算机程序;处理器1402调用存储器1403存储的计算机程序,通过通信接口1401执行上述实施例中交换节点执行的方法。当该装置为第二节点时,存储器1403用于存储计算机程序;处理器1402调用存储器1403存储的计算机程序,通过通信接口1401执行上述实施例中第二节点执行的方法。
在本申请实施例中,通信接口1401可以是收发器、电路、总线、模块或其它类型的通信接口。处理器1402可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器1403可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive, SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置。存储器1403和处理器1402耦合。本申请实施例中的耦合是装置、单元或模块之间的间隔耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。作为另一种实现,存储器1403还可以位于装置1400之外。处理器1402可以和存储器1403协同操作。处理器1402可以执行存储器1403中存储的程序指令。至少一个存储器1403中的至少一个也可以包括于处理器1402中。本申请实施例中不限定上述通信接口1401、处理器1402以及存储器1403之间的连接介质。例如,本申请实施例在图14中以存储器1403、处理器1402以及通信接口1401之间可以通过总线连接,总线可以分为地址总线、数据总线、控制总线等。
可以理解的,上述图13所示实施例中的装置可以以图14所示的装置1400实现。具体的,处理单元1301可以由处理器1402实现,收发单元1302可以由通信接口1401实现。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得计算机执行上述各个实施例所示的方法。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质 (例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如, 固态硬盘Solid StateDisk SSD)等。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请实施例的方法,不应理解为对本申请实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (31)
1.一种基于外设部件互连高速PCIe的数据传输方法,其特征在于,该方法包括:
第一节点获得事务层数据包TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
所述第一节点向第二节点发送所述TLP。
2.如权利要求1所述的方法,其特征在于,所述第一参数集合还包括所述数据类型对应的一个或多个第一属性参数。
3.如权利要求1或2所述的方法,其特征在于,所述Type字段和所述至少一个预留比特联合编码,所述Type字段和所述至少一个预留比特联合指示所述第一参数集合。
4.如权利要求2所述的方法,其特征在于,所述Type字段和所述至少一个预留比特分别独立编码,所述Type字段指示的参数与所述至少一个预留比特指示的参数不同。
5.如权利要求1或2所述的方法,其特征在于,所述Type字段的值为预留值。
6.如权利要求1或2所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,所述第二参数集合包括所述数据类型对应的一个或多个第二属性参数。
7.如权利要求1或2所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、写数据流SWRITE、安全中一个或多个。
8.如权利要求1或2所述的方法,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
9.一种基于外设部件互连高速PCIe的数据传输方法,其特征在于,该方法包括:
交换节点接收第一TLP;所述第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
所述交换节点基于所述第一TLP向所述第一TLP的目标节点发送第二TLP,所述第二TLP包括所述数据载荷的内容或所述数据载荷。
10.如权利要求9所述的方法,其特征在于,所述第一参数集合还包括所述数据类型对应的一个或多个第一属性参数。
11.如权利要求9或10所述的方法,其特征在于,所述Type字段和所述至少一个预留比特联合编码,所述Type字段和所述至少一个预留比特联合指示所述第一参数集合。
12.如权利要求10所述的方法,其特征在于,所述Type字段和所述至少一个预留比特分别独立编码,所述Type字段指示的参数与所述至少一个预留比特指示的参数不同。
13.如权利要求9或10所述的方法,其特征在于,所述Type字段的值为预留值。
14.如权利要求9或10所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,所述第二参数集合包括所述数据类型对应的一个或多个第二属性参数。
15.如权利要求9或10所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、写数据流SWRITE、安全中一个或多个。
16.一种基于外设部件互连高速PCIe的数据传输方法,其特征在于,该方法包括:
第二节点接收来自于第一节点的TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
所述第二节点基于所述第一参数集合获得所述数据载荷。
17.如权利要求16所述的方法,其特征在于,所述第一参数集合还包括所述数据类型对应的一个或多个第一属性参数。
18.如权利要求16或17所述的方法,其特征在于,所述Type字段和所述至少一个预留比特联合编码,所述Type字段和所述至少一个预留比特联合指示所述第一参数集合。
19.如权利要求17所述的方法,其特征在于,所述Type字段和所述至少一个预留比特分别独立编码,所述Type字段指示的参数与所述至少一个预留比特指示的参数不同。
20.如权利要求16或17所述的方法,其特征在于,所述Type字段的值为预留值。
21.如权利要求16或17所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合,所述第二参数集合包括所述数据类型对应的一个或多个第二属性参数;
所述第二节点基于所述第一参数集合获得所述数据载荷,包括:
所述第二节点基于所述第一参数集合和所述第二参数集合获得所述数据载荷。
22.如权利要求16或17所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
23.如权利要求16或17所述的方法,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
24.一种通信装置,其特征在于,包括:
处理单元,用于获得TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
收发单元,用于向第二节点发送所述TLP。
25.一种通信装置,其特征在于,包括:
收发单元,用于接收第一TLP;所述第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
处理单元,用于基于所述第一TLP向所述第一TLP的目标节点发送第二TLP。
26.一种通信装置,其特征在于,包括:
收发单元,用于接收来自于第一节点的TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和至少一个预留比特,其中,所述Type字段和所述至少一个预留比特指示第一参数集合;所述第一参数集合包括所述数据载荷的数据类型;
处理单元,用于基于所述第一参数集合获得所述数据载荷。
27.一种通信装置,其特征在于,包括处理器,所述处理器和存储器耦合;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述通信装置执行如权利要求1至23任一项所述的方法。
28.一种通信装置,其特征在于,包括处理器和接口电路;
所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如权利要求1至23任一项所述的方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序或指令,当所述计算机程序或所述指令被执行时,使如权利要求1-23中任一项所述的方法被实现。
30.一种通信***,其特征在于,包括至少一个第一节点、至少一个交换节点和至少一个第二节点,所述第一节点执行如权利要求1至8任一项所述的方法,所述交换节点执行如权利要求9至15任一项所述的方法,所述第二节点执行如权利要求16至23任一项所述的方法。
31.一种通信***,其特征在于,包括至少一个第一节点和至少一个第二节点,所述第一节点执行如权利要求1至8任一项所述的方法,所述第二节点执行如权利要求16至23任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/073922 WO2021147047A1 (zh) | 2020-01-22 | 2020-01-22 | 一种基于PCIe的数据传输方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113439268A CN113439268A (zh) | 2021-09-24 |
CN113439268B true CN113439268B (zh) | 2023-01-06 |
Family
ID=76992005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080009205.XA Active CN113439268B (zh) | 2020-01-22 | 2020-01-22 | 一种基于PCIe的数据传输方法、装置及*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220365899A1 (zh) |
EP (1) | EP4086778A4 (zh) |
CN (1) | CN113439268B (zh) |
WO (1) | WO2021147047A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925386B (zh) * | 2022-07-15 | 2022-10-25 | 飞腾信息技术有限公司 | 数据处理方法、计算机设备、数据处理***及存储介质 |
CN114915499B (zh) * | 2022-07-15 | 2022-10-28 | 飞腾信息技术有限公司 | 数据传输方法、相关装置、***及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681325A (zh) * | 2007-06-29 | 2010-03-24 | 国际商业机器公司 | 修改PCI Express封包摘要的设备、***和方法 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输***及方法 |
CN105185414A (zh) * | 2015-09-15 | 2015-12-23 | 北京京存技术有限公司 | 一种测试方法和装置 |
Family Cites Families (8)
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 |
US7849252B2 (en) * | 2008-05-30 | 2010-12-07 | Intel Corporation | Providing a prefix for a packet header |
US8111704B2 (en) * | 2009-06-26 | 2012-02-07 | Intel Corporation | Multiple compression techniques for packetized information |
US9280290B2 (en) * | 2014-02-12 | 2016-03-08 | Oracle International Corporation | Method for steering DMA write requests to cache memory |
KR102173089B1 (ko) * | 2014-08-08 | 2020-11-04 | 삼성전자주식회사 | 인터페이스 회로 및 그것의 패킷 전송 방법 |
TWI631852B (zh) * | 2016-02-23 | 2018-08-01 | 夏普股份有限公司 | 用於上層資訊之鏈結層傳訊之系統及方法 |
US10558367B2 (en) * | 2018-03-08 | 2020-02-11 | Western Digital Technologies, Inc. | Adaptive transaction layer packet for latency balancing |
US11775470B2 (en) * | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
-
2020
- 2020-01-22 WO PCT/CN2020/073922 patent/WO2021147047A1/zh unknown
- 2020-01-22 EP EP20915535.7A patent/EP4086778A4/en active Pending
- 2020-01-22 CN CN202080009205.XA patent/CN113439268B/zh active Active
-
2022
- 2022-07-21 US US17/870,485 patent/US20220365899A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681325A (zh) * | 2007-06-29 | 2010-03-24 | 国际商业机器公司 | 修改PCI Express封包摘要的设备、***和方法 |
CN103023824A (zh) * | 2012-12-11 | 2013-04-03 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输***及方法 |
CN105185414A (zh) * | 2015-09-15 | 2015-12-23 | 北京京存技术有限公司 | 一种测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113439268A (zh) | 2021-09-24 |
WO2021147047A1 (zh) | 2021-07-29 |
EP4086778A4 (en) | 2023-01-18 |
US20220365899A1 (en) | 2022-11-17 |
EP4086778A1 (en) | 2022-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200042482A1 (en) | Pci express tunneling over a multi-protocol i/o interconnect | |
CN113439419B (zh) | 一种基于PCIe的数据传输方法、装置及*** | |
WO2021147050A1 (zh) | 一种基于PCIe的数据传输方法及装置 | |
US20220365899A1 (en) | PCIe-Based Data Transmission Method, Apparatus, and System | |
US20220368564A1 (en) | PCIe-Based Data Transmission Method and Apparatus | |
US20220358070A1 (en) | Pcie-based data transmission method and apparatus | |
KR20010090768A (ko) | 전자 장치, 및 인터페이스 유닛의 버스 초기화 위상에서디지털 시리얼 데이터를 처리하는 방법 | |
KR100405250B1 (ko) | 데이터 전송 제어 장치 및 전자 기기 | |
US11995020B2 (en) | PCIe data transmission method and apparatus | |
US20220368781A1 (en) | PCIe-Based Data Transmission Method and Apparatus | |
US20220365895A1 (en) | Pcie-based data transmission method and apparatus | |
US6857033B1 (en) | I/O node for a computer system including an integrated graphics engine and an integrated I/O hub |
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 |