CN113439419B - 一种基于PCIe的数据传输方法、装置及系统 - Google Patents

一种基于PCIe的数据传输方法、装置及系统 Download PDF

Info

Publication number
CN113439419B
CN113439419B CN202080009159.3A CN202080009159A CN113439419B CN 113439419 B CN113439419 B CN 113439419B CN 202080009159 A CN202080009159 A CN 202080009159A CN 113439419 B CN113439419 B CN 113439419B
Authority
CN
China
Prior art keywords
node
tlp
data
type
data type
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
Application number
CN202080009159.3A
Other languages
English (en)
Other versions
CN113439419A (zh
Inventor
万蕾
鲍鹏鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113439419A publication Critical patent/CN113439419A/zh
Application granted granted Critical
Publication of CN113439419B publication Critical patent/CN113439419B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种基于PCIe的数据传输方法、装置及系统,该方法包括:第一节点获得TLP。第一节点向第二节点发送TLP。TLP包括TLP头和数据载荷,TLP头包括类型字段和扩展头,类型字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数。采用上述方法,通过类型字段和扩展头指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,能够实现PCIe系统中EndPoint之间不通过Root进行通信,可以增加PCIe系统的冗余度,提升PCIe系统的安全性和可靠性。

Description

一种基于PCIe的数据传输方法、装置及系统
技术领域
本申请涉及通信技术领域,特别涉及一种基于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字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数。
采用上述方法,通过类型字段和扩展头指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,能够实现PCIe系统中EndPoint之间不通过Root进行通信,可以增加PCIe系统的冗余度,提升PCIe系统的安全性和可靠性。
在一种可能的设计中,Type字段指示数据类型,扩展头指示一个或多个第一属性参数。
此外,Type字段和扩展头还可以通过其他几种可能的设计指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,包括:1、扩展头指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。2、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,扩展头指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。3、扩展头指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。
在一种可能的设计中,Type字段的值为预留值。
采用上述设计,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
在一种可能的设计中,TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示数据类型对应的一个或多个第二属性参数。
采用上述设计,TLP头中的字节4至11中的部分字节或字节4至15中的部分字节可以指示数据类型对应的一个或多个第二属性参数,实现充分利用TLP头中的空闲比特。
应理解的是,第二属性参数与第一属性参数不同,示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和扩展头指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
在一种可能的设计中,数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
在一种可能的设计中,第一节点为第一端节点,第二节点为第二端节点;或第一节点为第一端节点,第二节点为第一交换节点;或第一节点为第一交换节点,第二节点为第一端节点;或第一节点为第一交换节点,第二节点为第二交换节点。
采用上述设计,本申请提供的方法可以应用于多种可能的通信场景。
第二方面,本申请提供一种基于PCIe的数据传输方法,该方法包括:
交换节点接收第一TLP,交换节点基于第一TLP向第一TLP的目标节点发送第二TLP。第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,Type字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数。
采用上述方法,通过类型字段和扩展头指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,能够实现PCIe系统中EndPoint之间不通过Root进行通信,可以增加PCIe系统的冗余度,提升PCIe系统的安全性和可靠性。
在一种可能的设计中,第二TLP包括上述数据载荷的内容或包括上述数据载荷。
在一种可能的设计中,Type字段指示数据类型,扩展头指示一个或多个第一属性参数。
此外,Type字段和扩展头还可以通过其他几种可能的设计指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,包括:1、扩展头指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。2、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,扩展头指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。3、扩展头指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。
在一种可能的设计中,Type字段的值为预留值。
采用上述设计,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
在一种可能的设计中,TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示数据类型对应的一个或多个第二属性参数。
采用上述设计,TLP头中的字节4至11中的部分字节或字节4至15中的部分字节可以指示数据类型对应的一个或多个第二属性参数,实现充分利用TLP头中的空闲比特。
应理解的是,第二属性参数与第一属性参数不同,示例性地,当某种数据类型对应的属性参数较多时,可以将这些属性参数分为两个部分,其中一部分为第一属性参数,另一部分为第二属性参数。因此,数据类型对应的属性参数可以包括一个或多个第一属性参数,或一个或多个第一属性参数以及一个或多个第二属性参数。其中,一个或多个第一属性参数可以通过Type字段和扩展头指示,一个或多个第二属性参数可以通过TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示。
在一种可能的设计中,数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
第三方面,本申请提供一种基于PCIe的数据传输方法,该方法包括:
第二节点接收来自于第一节点的TLP,TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,Type字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数。第二节点基于数据载荷的数据类型以及一个或多个第一属性参数获得上述TLP中的数据载荷。
采用上述方法,通过类型字段和扩展头指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,能够实现PCIe系统中EndPoint之间不通过Root进行通信,可以增加PCIe系统的冗余度,提升PCIe系统的安全性和可靠性。
在一种可能的设计中,Type字段指示数据类型,扩展头指示一个或多个第一属性参数。
此外,Type字段和扩展头还可以通过其他几种可能的设计指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数,包括:1、扩展头指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数。2、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,扩展头指示数据类型对应的一个或多个第一属性参数。其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。3、扩展头指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,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(a)和图6(b)为本申请中TLP头部中的扩展头的示意图;
图7为本申请中TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示第二参数集合的示意图;
图8为本申请中一种基于PCIe的数据传输方法的概述流程图之二;
图9为本申请中一种基于PCIe的数据传输方法的概述流程图之二;
图10为本申请中一种PCIe系统的示意图;
图11为本申请中camera1拍摄的图像在display上显示的具体流程图;
图12为本申请中Type字段和扩展头指示数据载荷的数据类型和数据类型对应的第一属性参数的示意图之一;
图13为本申请中Type字段和扩展头指示数据载荷的数据类型和数据类型对应的第一属性参数的示意图之二;
图14为本申请中一种装置结构示意图之一;
图15为本申请中一种装置结构示意图之二。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
本申请实施例可以适用于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字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数。
其中,扩展头位于TLP头部与数据载荷之间,扩展头占用原TLP中数据载荷部分的一个或多个字节,因此,如图6(a)所示,由于扩展头占用数据载荷部分的一个或多个字节,因此,包括扩展头的TLP中的数据载荷部分包括的有效数据的字节数小于原TLP中数据载荷部分包括的有效数据的字节数。示例性地,由于扩展头占用数据载荷部分的一个或多个字节,因而,一个TLP的数据载荷部分可能不能提供足够的字节用于传输数据1,因此数据1被划分为两个部分,分别为数据1,1和数据1.2,数据1,1和数据1.2分别对应一个TLP。如图6(b)所示,扩展头位于TLP头部与数据1,1之间,扩展头位于TLP头部与数据1,2之间。
其中,数据载荷的数据类型可以为图像、音频、控制类信息、写数据流(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字段指示数据载荷的数据类型,扩展头指示数据类型对应的一个或多个第一属性参数;
2、扩展头指示数据载荷的数据类型,Type字段指示数据类型对应的一个或多个第一属性参数;
3、Type字段指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,扩展头指示数据类型对应的一个或多个第一属性参数。
其中,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同,例如,Type字段指示数据类型为图像以及图像数据类型,扩展头指示像素量化深度和分辨率。
4、扩展头指示数据载荷的数据类型和数据类型对应的一个或多个第一属性参数,Type字段指示数据类型对应的一个或多个第一属性参数。
同理,Type字段指示的第一属性参数与扩展头指示的第一属性参数不同。
例如,Type字段指示像素量化深度,图像数据类型,扩展头指示数据载荷的数据类型为图像,以及分段指示信息(如平均分段,3个TLP传输一行图像)。
在一种可能的设计中,Type字段的值为预留值。因此,可以实现与TLP现有格式兼容,不影响PCIe的原有功能。
此外,在一种可能的设计中,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。
应理解的是,若交换节点解析Type字段,如果Type的值不是预留值,即Type字段指示原有PCIe类型,则按照原PCIe机制处理。
此外,第二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和图12所示。
S1101:camera1向Switch1发送第一TLP。
其中,第一TLP中的Type字段指示数据载荷的数据类型为图像,扩展头指示像素量化深度,图像数据类型,分段指示信息,如图12所示。
此外,第一TLP中的字节8至字节11或字节8至字节15填充camera1的标识信息和display的标识信息。
S1102:Switch1在接收到来自于camera1的第一TLP后,Switch1解析第一TLP中的Type字段,确定Type的值为预留值,解析字节8至字节11或字节8至字节15,确定display的标识信息,基于display的标识信息确定路由路径。
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字段和扩展头,确定数据载荷的数据类型为图像,以及图像分辨率,像素量化深度,图像数据类型,分段指示信息,display获得第一TLP中的数据载荷,并将数据载荷进行显示。
因此,示例1利用Type字段与扩展头指示数据类型为图像和图像对应的属性参数,使PCIe系统中的camera1和display无需经过Root进行通信。
示例2:
如图13所示,Type字段型指示数据载荷的数据类型为安全,扩展头指示消息类型(示例性地,消息类型可以为鉴权消息或加密消息)以及格式指示。其中,格式指示可以指示以8bit为单位解析数据载荷,或以16bit为单位解析数据载荷,此外,格式指示还可以指示数据载荷中的前4个字节代表秘钥类型或加密算法类型。
上述本申请提供的实施例中,分别从各个节点本身、以及从各个节点之间交互的角度对本申请实施例提供的通信方法的各方案进行了介绍。可以理解的是,各个节点,例如端节点和交换节点,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
与上述构思相同,如图14所示,本申请实施例还提供一种装置1400,该装置1400包括收发单元1402和处理单元1401。
一示例中,装置1400用于实现上述方法中第一节点的功能。该装置可以是第一节点,也可以是第一节点中的装置,例如芯片系统。
处理单元1401,用于获得TLP;上述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,Type字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数;
收发单元1402,用于向第二节点发送上述TLP。
一示例中,装置1400用于实现上述方法中交换节点的功能。该装置可以是交换节点,也可以是交换节点中的装置,例如芯片系统。
收发单元1402,用于接收第一TLP;第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,Type字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数;
处理单元1401,用于基于第一TLP向第一TLP的目标节点发送第二TLP。第二TLP包括上述数据载荷的内容或包括上述数据载荷。
一示例中,装置1400用于实现上述方法中第二节点的功能。该装置可以是第二节点,也可以是第二节点中的装置,例如芯片系统。
收发单元1402,用于接收来自于第一节点的TLP;TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,Type字段和扩展头用于指示数据载荷的数据类型以及数据类型对应的一个或多个第一属性参数;
处理单元1401,用于基于数据类型以及一个或多个第一属性参数获得上述TLP中的数据载荷。
关于处理单元1401、收发单元1402的具体执行过程,可参见上方法实施例中的记载。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
作为另一种可选的变形,该装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。示例性地,该装置包括处理器和接口电路,接口电路,用于接收代码指令并传输至处理器;处理器运行代码指令以执行上述各个实施例的方法。其中,处理器完成上述处理单元1401的功能,接口电路完成上述收发单元1402的功能。
与上述构思相同,如图15所示,本申请实施例还提供一种装置1500。该装置1500中包括:至少一个处理器1502、还可以包括通信接口1501、至少一个存储器1503。通信接口1501,用于通过传输介质和其它设备进行通信,从而用于装置1500中的装置可以和其它设备进行通信。存储器1503,用于存储计算机程序。处理器1502调用存储器1503存储的计算机程序,通过通信接口1501收发数据实现上述实施例中的方法。
示例性地,当该装置为第一节点时,存储器1503用于存储计算机程序;处理器1502调用存储器1503存储的计算机程序,通过通信接口1501执行上述实施例中第一节点执行的方法。当该装置为交换节点时,存储器1503用于存储计算机程序;处理器1502调用存储器1503存储的计算机程序,通过通信接口1501执行上述实施例中交换节点执行的方法。当该装置为第二节点时,存储器1503用于存储计算机程序;处理器1502调用存储器1503存储的计算机程序,通过通信接口1501执行上述实施例中第二节点执行的方法。
在本申请实施例中,通信接口1501可以是收发器、电路、总线、模块或其它类型的通信接口。处理器1502可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器1503可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置。存储器1503和处理器1502耦合。本申请实施例中的耦合是装置、单元或模块之间的间隔耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。作为另一种实现,存储器1503还可以位于装置1500之外。处理器1502可以和存储器1503协同操作。处理器1502可以执行存储器1503中存储的程序指令。至少一个存储器1503中的至少一个也可以包括于处理器1502中。本申请实施例中不限定上述通信接口1501、处理器1502以及存储器1503之间的连接介质。例如,本申请实施例在图15中以存储器1503、处理器1502以及通信接口1501之间可以通过总线连接,总线可以分为地址总线、数据总线、控制总线等。
可以理解的,上述图14所示实施例中的装置可以以图15所示的装置1500实现。具体的,处理单元1401可以由处理器1502实现,收发单元1402可以由通信接口1501实现。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述各个实施例所示的方法。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,固态硬盘Solid State DiskSSD)等。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请实施例的方法,不应理解为对本申请实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本申请实施例的保护范围之内。

Claims (39)

1.一种基于外设部件互连高速PCIe的数据传输方法,其特征在于,该方法包括:
第一节点获得事务层数据包TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
所述第一节点向第二节点发送所述TLP。
2.如权利要求1所述的方法,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
3.如权利要求1或2所述的方法,其特征在于,所述Type字段的值为预留值。
4.如权利要求1或2所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数。
5.如权利要求1或2所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、写数据流SWRITE、安全中一个或多个。
6.如权利要求1或2所述的方法,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
7.一种基于外设部件互连高速PCIe的数据传输方法,其特征在于,该方法包括:
交换节点接收第一TLP;所述第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
所述交换节点基于所述第一TLP向所述第一TLP的目标节点发送第二TLP,所述第二TLP包括所述数据载荷的内容或所述数据载荷。
8.如权利要求7所述的方法,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
9.如权利要求7或8所述的方法,其特征在于,所述Type字段的值为预留值。
10.如权利要求7或8所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数。
11.如权利要求7或8所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
12.一种基于PCIe的数据传输方法,其特征在于,该方法包括:
第二节点接收来自于第一节点的TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
所述第二节点基于所述数据类型以及所述一个或多个第一属性参数获得所述数据载荷。
13.如权利要求12所述的方法,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
14.如权利要求12或13所述的方法,其特征在于,所述Type字段的值为预留值。
15.如权利要求12或13所述的方法,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数;
所述第二节点基于所述数据类型以及所述一个或多个第一属性参数获得所述数据载荷,包括:
所述第二节点基于所述数据类型、所述一个或多个第一属性参数、所述一个或多个第二属性参数获得所述数据载荷。
16.如权利要求12或13所述的方法,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
17.如权利要求12或13所述的方法,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
18.一种基于外设部件互连高速PCIe的数据传输装置,其特征在于,所述装置为第一节点或第一节点内的芯片,该装置包括:
处理单元,用于获得TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
收发单元,用于向第二节点发送所述TLP。
19.如权利要求18所述的装置,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
20.如权利要求18或19所述的装置,其特征在于,所述Type字段的值为预留值。
21.如权利要求18或19所述的装置,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数。
22.如权利要求18或19所述的装置,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
23.如权利要求18或19所述的装置,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
24.一种基于外设部件互连高速PCIe的数据传输装置,其特征在于,该装置包括:
收发单元,用于接收第一TLP;所述第一TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
处理单元,用于基于所述第一TLP向所述第一TLP的目标节点发送第二TLP,所述第二TLP包括所述数据载荷的内容或所述数据载荷。
25.如权利要求24所述的装置,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
26.如权利要求24或25所述的装置,其特征在于,所述Type字段的值为预留值。
27.如权利要求24或25所述的装置,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数。
28.如权利要求24或25所述的装置,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
29.一种基于外设部件互连高速PCIe的数据传输装置,其特征在于,所述装置为第二节点或第二节点内的芯片,该装置包括:
收发单元,用于接收来自于第一节点的TLP;所述TLP包括TLP头和数据载荷,所述TLP头包括Type字段和扩展头,所述Type字段和所述扩展头用于指示所述数据载荷的数据类型以及所述数据类型对应的一个或多个第一属性参数;
处理单元,用于基于所述数据类型以及所述一个或多个第一属性参数获得所述数据载荷。
30.如权利要求29所述的装置,其特征在于,所述Type字段指示所述数据类型,所述扩展头指示所述一个或多个第一属性参数。
31.如权利要求29或30所述的装置,其特征在于,所述Type字段的值为预留值。
32.如权利要求29或30所述的装置,其特征在于,所述TLP中的TLP头中的字节4至11中的部分字节或字节4至15中的部分字节指示所述数据类型对应的一个或多个第二属性参数;
所述处理单元,用于基于所述数据类型、所述一个或多个第一属性参数、所述一个或多个第二属性参数获得所述数据载荷。
33.如权利要求29或30所述的装置,其特征在于,所述数据类型为图像、音频、控制类信息、SWRITE、安全中一个或多个。
34.如权利要求29或30所述的装置,其特征在于,所述第一节点为第一端节点,所述第二节点为第二端节点;或所述第一节点为第一端节点,所述第二节点为第一交换节点;或所述第一节点为第一交换节点,所述第二节点为第一端节点;或所述第一节点为第一交换节点,所述第二节点为第二交换节点。
35.一种通信装置,其特征在于,包括处理器,所述处理器和存储器耦合;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述通信装置执行如权利要求1至17任一项所述的方法。
36.一种通信装置,其特征在于,包括处理器和接口电路;
所述接口电路,用于接收代码指令并传输至所述处理器;所述处理器运行所述代码指令以执行如权利要求1至17任一项所述的方法。
37.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序或指令,当所述计算机程序或所述指令被执行时,使如权利要求1至17中任一项所述的方法被实现。
38.一种通信系统,其特征在于,包括至少一个第一节点、至少一个交换节点和至少一个第二节点,所述第一节点执行如权利要求1至6任一项所述的方法,所述交换节点执行如权利要求7至11任一项所述的方法,所述第二节点执行如权利要求12至17任一项所述的方法。
39.一种通信系统,其特征在于,包括至少一个第一节点和至少一个第二节点,所述第一节点执行如权利要求1至6任一项所述的方法,所述第二节点执行如权利要求12至17任一项所述的方法。
CN202080009159.3A 2020-01-22 2020-01-22 一种基于PCIe的数据传输方法、装置及系统 Active CN113439419B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/073923 WO2021147048A1 (zh) 2020-01-22 2020-01-22 一种基于PCIe的数据传输方法、装置及系统

Publications (2)

Publication Number Publication Date
CN113439419A CN113439419A (zh) 2021-09-24
CN113439419B true CN113439419B (zh) 2023-02-14

Family

ID=76992010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080009159.3A Active CN113439419B (zh) 2020-01-22 2020-01-22 一种基于PCIe的数据传输方法、装置及系统

Country Status (4)

Country Link
US (1) US20220358074A1 (zh)
EP (1) EP4084422A4 (zh)
CN (1) CN113439419B (zh)
WO (1) WO2021147048A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113498595B (zh) * 2020-01-22 2022-10-11 华为技术有限公司 一种基于PCIe的数据传输方法及装置
CN114925386B (zh) * 2022-07-15 2022-10-25 飞腾信息技术有限公司 数据处理方法、计算机设备、数据处理系统及存储介质
CN115102780B (zh) * 2022-07-15 2022-12-06 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质
CN114915499B (zh) * 2022-07-15 2022-10-28 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103003808A (zh) * 2010-07-15 2013-03-27 超威半导体公司 用于访问PCI Express 兼容设备的资源的系统和方法
CN103023824A (zh) * 2012-12-11 2013-04-03 华为技术有限公司 基于周边组件接口快速通道PCIe的数据传输系统及方法
CN107656884A (zh) * 2016-07-25 2018-02-02 中兴通讯股份有限公司 一种数据处理方法和系统,外围组件快速互连设备及主机
EP3311295A1 (en) * 2015-06-22 2018-04-25 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (pcie) system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US8516165B2 (en) * 2005-10-19 2013-08-20 Nvidia Corporation System and method for encoding packet header to enable higher bandwidth efficiency across bus links
US7673116B2 (en) * 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
WO2015016882A1 (en) * 2013-07-31 2015-02-05 Intel Corporation A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device
US9280290B2 (en) * 2014-02-12 2016-03-08 Oracle International Corporation Method for steering DMA write requests to cache memory
CN105185414A (zh) * 2015-09-15 2015-12-23 北京京存技术有限公司 一种测试方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103003808A (zh) * 2010-07-15 2013-03-27 超威半导体公司 用于访问PCI Express 兼容设备的资源的系统和方法
CN103023824A (zh) * 2012-12-11 2013-04-03 华为技术有限公司 基于周边组件接口快速通道PCIe的数据传输系统及方法
EP3311295A1 (en) * 2015-06-22 2018-04-25 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (pcie) system
CN107656884A (zh) * 2016-07-25 2018-02-02 中兴通讯股份有限公司 一种数据处理方法和系统,外围组件快速互连设备及主机

Also Published As

Publication number Publication date
EP4084422A1 (en) 2022-11-02
CN113439419A (zh) 2021-09-24
EP4084422A4 (en) 2023-01-18
US20220358074A1 (en) 2022-11-10
WO2021147048A1 (zh) 2021-07-29

Similar Documents

Publication Publication Date Title
CN113439419B (zh) 一种基于PCIe的数据传输方法、装置及系统
JP5657762B2 (ja) メディアインターフェースの双方向通信を提供するためのオペレーション
US8782321B2 (en) PCI express tunneling over a multi-protocol I/O interconnect
US20220365899A1 (en) PCIe-Based Data Transmission Method, Apparatus, and System
EP4080839B1 (en) Pcie-based data transmission method and apparatus
US20220358070A1 (en) Pcie-based data transmission method and apparatus
KR100728521B1 (ko) 통신 버스를 통해 수신된 버스 인터페이스 유닛 내의 데이터 패킷을 미리 처리하기 위한 방법 및 상기 방법에서 사용하기 위한 버스 인터페이스 유닛
KR20010090768A (ko) 전자 장치, 및 인터페이스 유닛의 버스 초기화 위상에서디지털 시리얼 데이터를 처리하는 방법
US20220368564A1 (en) PCIe-Based Data Transmission Method and Apparatus
US20220368781A1 (en) PCIe-Based Data Transmission Method and Apparatus
KR100405250B1 (ko) 데이터 전송 제어 장치 및 전자 기기
US11995020B2 (en) PCIe data transmission method and apparatus
KR100746900B1 (ko) 전자장치, 및 전자장치의 물리층 회로의 상태를 제어하는방법
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