CN113498595B - 一种基于PCIe的数据传输方法及装置 - Google Patents

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

Info

Publication number
CN113498595B
CN113498595B CN202080002611.3A CN202080002611A CN113498595B CN 113498595 B CN113498595 B CN 113498595B CN 202080002611 A CN202080002611 A CN 202080002611A CN 113498595 B CN113498595 B CN 113498595B
Authority
CN
China
Prior art keywords
tlp
type
field
node
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080002611.3A
Other languages
English (en)
Other versions
CN113498595A (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 CN113498595A publication Critical patent/CN113498595A/zh
Application granted granted Critical
Publication of CN113498595B publication Critical patent/CN113498595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • 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

Abstract

本申请公开了一种基于PCIe的数据传输方法及装置,可以使得PCIe系统中节点与节点之间的通信无需经过根复合体,例如端节点与端节点之间的通信,或者交换节点与交换节点之间的通信,或者交换节点与端节点之间的通信。该方法包括:第一节点将第一数据封装成第一TLP并向第二节点发送第一TLP,其中,第一TLP的TLP头包括第一字段,该第一字段用于指示第一数据的数据类型,该数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、SWRITE类型。本申请实施例中通过使用TLP头的第一字段指示传输数据所需的信息,例如数据类型,可以使得节点之间无需经过根复合体进行通信,从而降低PCIe系统内的通信复杂度。

Description

一种基于PCIe的数据传输方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种基于外围组件互连传递(peripheralcomponent interconnect express,PCIe)的数据传输方法及装置。
背景技术
PCIe是一种高速短距离通信接口,可以快速读写内存,支持大宽带通信,广泛应用于计算机、测试仪器等设备中。
PCIe系统的主要组成单元包括根复合体(root complex,Root)、交换节点(switch)以及端节点(endpoint)。其中,Root用于管理PCIe系统中的所有总线和所有节点,是PCIe系统中节点与节点之间通信的桥梁,节点为端节点或交换节点;一个交换节点可以连接根复合体、其他交换节点以及端节点,是PCIe系统中数据的转发节点;端节点为端设备,例如外围设备(peripheral)等,用于接收数据或发送数据。在PCIe系统中,只有Root以及节点(例如端节点、交换节点)自身有权限读取节点的配置空间,配置空间用于存储节点的功能(例如节点支持何种数据类型等)、地址、或身份标识(identity,ID)等信息,PCIe系统中的其他节点均无权读取。意味着,在PCIe系统中只有Root知道各节点的功能、地址等信息。因此端节点与端节点之间、交换节点与交换节点之间、以及端节点与交换节点之间不能直接通信,必须经过Root。由于PCIe系统中节点与节点之间的通信必须经过Root,这样会大幅度提升节点与节点之间的通信复杂度。
发明内容
本申请实施例提供一种基于PCIe的数据传输方法及装置,用以使得PCIe系统中的节点与节点之间的通信不经过Root,从而可以降低节点与节点之间的通信复杂度。
第一方面,本申请实施例提供一种基于PCIe的数据传输方法,包括:第一节点将第一数据封装成第一事务层包TLP,第一TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型,然后第一节点将该第一TLP发送给第二节点。
一种可能的设计中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在一种可能的设计中,第一节点可以是端节点、也可以是交换节点,第二节点可以是端节点、也可以是交换节点。
本申请实施例中,通过使用TLP头的第一字段来指示传输数据所需的信息,例如数据类型,该第一节点可以是端节点,也可以是交换节点,该第二节点可以是端节点,也可以是交换节点,这样就可以使得PCIe系统中的端节点之间的通信,交换节点之间的通信,以及端节点与交换节点之间的通信不经过Root,从而可以降低PCIe系统中各节点之间的通信复杂度。
在一种可能的设计中,第一字段还可以用于指示数据类型对应的至少一个参数信息。上述设计中,通过使用TLP头所包括的第一字段来指示数据类型对应的至少一个参数信息,可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段为第一TLP的TLP头中的类型Type字段。上述设计中,通过使用TLP头中的Type字段来指示传输数据所需的信息,这样无需改动TLP结构,可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段的值为预留值。在上述设计中,第一字段的值为预留值,这样TLP就可以兼容原有数据传输方法和本申请实施例提供的数据传输方法,且无需改动TLP结构。
在一种可能的设计中,第一TLP的TLP头还包括第二字段,该第二字段可以用于指示第三节点的身份信息,该第三节点为第一TLP的目的设备。上述设计中,通过使用TLP头的第二字段指示目的设备的身份信息,这样中间节点(例如与第一节点有连接关系的交换节点)在解析出该目的设备的身份信息后,可以根据目的设备的身份信息确定路由路径,并基于路由路径将第一数据发送给目的设备,从而可以不经过Root。
在一种可能的设计中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。上述设计中,在第一字段仅用于指示数据类型时,可以通过第二字段指示数据类型对应的至少一个参数信息,以使得端节点之间不经过Root进行通信。
在一种可能的设计中,第二字段为第一TLP的TLP头的字节4~字节15或字节4~字节11。TLP头的字节4~字节15或字节4~字节11根据Type字段的不同而指示的内容不同,在第一字段指示数据类型时,可以使用该字节4~字节15或字节4~字节11指示目的设备的身份信息,或者指示目的设备的身份信息以及数据类型所对应的至少一个参数信息。
第二方面,本申请实施例提供一种基于外围组件互连传递PCIe的数据传输方法,包括:第二节点接收来自第一节点的第一事务层包TLP,第一TLP包括第一数据;然后,第二节点向第三节点发送第二TLP,该第二TLP包括第一数据;其中,TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型,该TLP包括第一TLP、和/或第二TLP。
在一种可能的设计中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在一种可能的设计中,第二TLP包括第一数据可以理解为第二TLP与第一TLP包括的数据的内容相同。
在一种可能的设计中,第一节点可以为端节点、也可以为交换节点,第二节点可以为交换节点。
本申请实施例中,通过使用TLP头的第一字段指示传输数据所需要的信息,例如数据类型,该第一节点可以是端节点也可以是交换节点,该第二节点可以是端节点也可以是交换节点,该第三节点可以是端节点也可以是交换节点,这样可以实现端节点之间、交换节点之间、以及端节点与交换节点之间不经过Root进行通信,从而可以降低PCIe系统中节点与节点之间的通信复杂度。
在一种可能的设计中,第一字段还用于指示数据类型对应的至少一个参数信息。上述设计中,可以使用TLP头的第一字段指示传输数据所需要的信息,例如数据类型对应的至少一个参数信息,可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段为TLP头中的类型Type字段。上述设计中,通过使用TLP头中的Type字段来指示传输数据所需的信息,这样无需改动TLP结构,也可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段的值为预留值。在上述设计中,第一字段的值为预留值,这样TLP就可以兼容原有数据传输方法和本申请实施例提供的数据传输方法,且无需改动TLP结构。
在一种可能的设计中,TLP头还包括第二字段,第二字段用于指示第三节点的身份信息。上述设计中,通过使用TLP头的第二字段指示目的设备的身份信息,这样中间节点(例如与第一节点有连接关系的交换节点)在解析出该目的设备的身份信息后,可以根据目的设备的身份信息确定路由路径,并基于路由路径将第一数据发送给目的设备,从而可以不经过Root。
在一种可能的设计中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。上述设计中,在第一字段仅用于指示数据类型时,可以通过第二字段指示数据类型对应的至少一个参数信息,以使得端节点之间不经过Root进行通信。
在一种可能的设计中,第二字段为TLP包的TLP头的字节4~字节15或字节4~字节11。上述设计中,TLP头的字节4~字节15或字节4~字节11根据Type字段的不同而指示的内容不同,在第一字段指示数据类型时,可以使用该字节4~字节15或字节4~字节11指示目的设备的身份信息,或者指示目的设备的身份信息以及数据类型所对应的至少一个参数信息。
在一种可能的设计中,第二节点向第三节点发送第二TLP,包括:第二节点根据第三节点的身份信息,确定路由路径;第二节点根据路由路径,将第二TLP发送给第三节点。上述设计中,交换节点根据目标设备(即第三节点)的身份信息确定路由路径,再基于路由路径将第一数据发送给第三节点,这样就不需要经过Root,从而能降低PCIe系统中节点与节点之间的通信复杂度。
第三方面,本申请实施例提供一种基于外围组件互连传递PCIe的数据传输方法,包括:第三节点接收来自第二节点的第二事务层包TLP,第二TLP包括第一数据,第二TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型,并基于第一字段获得第一数据。
在一种可能的设计中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在一种可能的设计中,第二节点可以为端节点、也可以为交换节点,第三节点可以为端节点、也可以为交换节点。
本申请实施例中,通过使用TLP头的第一字段指示传输数据所需要的信息,例如数据类型,第三节点可以是端节点也可以是交换节点,第二节点可以是端节点也可以是交换节点,这样可以实现端节点之间、交换节点之间、以及端节点与交换节点之间不通过Root就可以进行通信,从而降低PCIe系统中节点与节点之间的通信复杂度。
在一种可能的设计中,第一字段还用于指示数据类型对应的至少一个参数信息。上述设计中,可以使用TLP头的第一字段指示传输数据所需要的信息,例如数据类型对应的至少一个参数信息,可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段为第二TLP头中的类型Type字段。上述设计中,通过使用TLP头中的Type字段来指示传输数据所需的信息,这样无需改动TLP结构,也可以使得节点之间的通信不经过Root。
在一种可能的设计中,第一字段的值为预留值。在上述设计中,第一字段的值为预留值,这样TLP就可以兼容原有数据传输方法和本申请实施例提供的数据传输方法,且无需改动TLP结构。
在一种可能的设计中,第二TLP头还包括第二字段,第二字段用于指示第三节点的身份信息。上述设计中,在第一字段仅用于指示数据类型时,可以通过第二字段指示数据类型对应的至少一个参数信息,以使得节点之间不经过Root进行通信。
在一种可能的设计中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。上述设计中,在第一字段仅用于指示数据类型时,可以通过第二字段指示数据类型对应的至少一个参数信息,以使得节点之间不经过Root进行通信。
在一种可能的设计中,第二字段为第二TLP头的字节4~字节15或字节4~字节11。上述设计中,TLP头的字节4~字节15或字节4~字节11根据Type字段的不同而指示的内容不同,在第一字段指示数据类型时,可以使用该字节4~字节15或字节4~字节11指示目的设备的身份信息,或者指示目的设备的身份信息以及数据类型所对应的至少一个参数信息。
第四方面,本申请实施例提供一种基于PCIe的数据传输装置,该装置可以是通信设备,也可以是通信设备内的芯片或芯片组,其中,通信设备可以为第一节点、第二节点或第三节点中的任一个,也就是说该通信设备可以是端节点也可以是交换节点。该装置可以包括处理单元和收发单元。当该装置是通信设备时,该处理单元可以是处理器,该收发单元可以是收发器;该装置还可以包括存储模块,该存储模块可以是存储器;该存储模块用于存储指令,该处理单元执行该存储模块所存储的指令,以使第一节点执行上述第一方面中相应的功能,或者,该处理单元执行该存储模块所存储的指令,以使第二节点执行上述第二方面中相应的功能,或者,该处理单元执行该存储模块所存储的指令,以使第三节点执行上述第三方面中相应的功能。当该装置是通信设备内的芯片或芯片组时,该处理单元可以是处理器,该收发单元可以是输入/输出接口、管脚或电路等;该处理单元执行存储模块所存储的指令,以使第一节点执行上述第一方面中相应的功能,或者,该处理单元执行存储模块所存储的指令,以使第二节点执行上述第二方面中相应的功能,或者,该处理单元执行存储模块所存储的指令,以使第三节点执行上述第三方面中相应的功能。该存储模块可以是该芯片或芯片组内的存储模块(例如,寄存器、缓存等),也可以是该网络设备内的位于该芯片或芯片组外部的存储模块(例如,只读存储器、随机存取存储器等)。
第五方面,本申请实施例提供一种基于PCIe的数据传输装置,包括:处理器,还可以包括通信接口和/或存储器。通信接口用于该装置与其他装置之间传输信息、和/或消息、和/或数据。该存储器用于存储计算机执行指令,当该装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该装置执行如上述第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第六方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述第一方面或第一方面中任意一种可能的设计、第二方面或第二方面中任意一种可能的设计、第三方面或第三方面中任意一种可能的设计的数据传输方法。
第七方面,本申请还提供一种包括指令的计算机程序产品,计算机程序产品用于存储计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述第一方面或第一方面中任意一种可能的设计、第二方面或第二方面中任意一种可能的设计、第三方面或第三方面中任意一种可能的设计的数据传输方法。
第八方面,本申请还提供一种PCIe系统,该系统包括第一节点、第二节点、第三节点,例如,第一节点为端节点,第二节点为交换节点,第三节点为端节点,其中,第一节点可以执行上述第一方面中相应的功能,第二节点可以执行上述第二方面中相应的功能,第三节点可以执行上述第三方面中相应的功能。
第九方面,本申请实施例提供的一种芯片,芯片包括至少一个处理器和通信接口,处理器与存储器耦合,用于读取存储器中存储的计算机程序以执行本申请实施例第一方面或第一方面中任一设计、第二方面或第二方面中任一设计、第三方面或第三方面中任一设计的数据传输方法。
第十方面,本申请实施例提供一种芯片,包括通信接口和至少一个处理器,处理器运行以执行本申请实施例第一方面或第一方面中任意一种可能的设计、第二方面或第二方面中任意一种可能的设计、第三方面或第三方面中任意一种可能的设计的数据传输方法。
附图说明
图1为本申请实施例提供的一种PCIe系统的架构示意图;
图2为本申请实施例提供的另一种PCIe系统的架构示意图;
图3为本申请实施例提供的一种TLP的结构示意图;
图4为本申请实施例提供的一种TLP头的结构示意图;
图5为本申请实施例提供的一种数据传输方法的流程示意图;
图6为本申请实施例提供的一种摄像头的结构示意图;
图7为本申请实施例提供的一种图像业务的示意图;
图8为本申请实施例提供的另一种图像业务的示意图;
图9为本申请实施例提供的另一种图像业务的示意图;
图10为本申请实施例提供的另一种图像业务的示意图;
图11为本申请实施例提供的一种PCIe系统的架构示意图;
图12为本申请实施例提供的一种数据传输方法的流程示意图;
图13为本申请实施例提供的一种数据传输装置的结构示意图;
图14为本申请实施例提供的另一种数据传输装置的结构示意图;
图15为本申请实施例提供的另一种数据传输装置的结构示意图;
图16为本申请实施例提供的另一种数据传输装置的结构示意图;
图17为本申请实施例提供的另一种数据传输装置的结构示意图;
图18为本申请实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
需要说明的是,本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
为便于技术人员理解,下面先结合附图对申请实施例所涉及的PCIe系统进行说明。
PCIe是一种高速短距离通信接口,广泛应用于计算机、测试仪器等设备中。PCIe可以快速读写内存,支持大宽带通信,一些车企将其传输距离加长,可以作为车内网大数据量通信接口。请参见图1,为本申请实施例提供的PCIe系统的一种结构示意图。如图1所示,PCIe系统可以包括一个根复合体(图1示出为根复合体1)、至少一个交换节点(图1中包括交换节点1和交换节点2)和至少一个端节点(图1中包括端节点1、端节点2以及端节点3)。
其中,根复合体1负责管理PCIe系统100中的所有总线(图1中以粗黑色连线示出)、交换节点和端节点,是PCIe系统100中各节点间通信的桥梁,也是PCIe系统100中各节点与CPU 1通信的桥梁。交换节点作为桥梁连接根复合体、其他交换节点、以及端节点中的一种或多种,是数据转发的节点,例如,交换节点1连接根复合体1、交换节点2、端节点1以及端节点2。端节点为端设备,如外围设备等,负责发送数据或者接收数据。
需要说明的是,CPU 1与根复合体1之间的接口不是PCIe,不属于PCIe系统100。该CPU 1可以与PCIe系统100所在的实体(例如计算机设备,车辆等)建立连接关系,也可以与PCIe系统100位于同一个实体中,用于接收PCIe系统100中各节点发送的数据,还可以对接收到的数据进行处理,例如进行格式转换、图像渲染等。
请参见图2,为两个PCIe系统的结构示意图。该两个该PCIe系统中的一个PCIe系统例如为图1所示的PCIe系统100,另一个PCIe系统为PCIe系统200。PCIe系统200可以包括根复合体2、交换节点3以及端节点4,PCIe系统200中各节点需经过根复合体2与CPU2通信。
需要说明的是,CPU 2与根复合体2之间的接口不是PCIe,不属于PCIe系统200。该CPU 2可以与PCIe系统200所在的实体(例如计算机设备,车辆等)建立连接关系,也可以与PCIe系统200位于同一个实体中,用于接收PCIe系统200中各节点发送的数据,还可以对接收到的数据进行处理,例如进行格式转换、图像渲染等。
由于一个PCIe系统中的节点(端节点或交换节点)都有各自的根复合体独立管理,一个PCIe系统中的节点的地址、和/或ID等皆由该PCIe系统中的根复合体独立分配,意味着,一个根复合体分配的地址、和/或ID只能在该根复合体所在的PCIe系统内具有唯一性。但在不同的PCIe系统中,节点的地址、和/或ID可能有重叠情况,因此在不同的PCIe系统中可能存在地址、和/或ID冲突。例如PCIe系统100中的根复合体1为端节点1分配地址1,地址1分别在PCIe系统100中和PCIe系统200中唯一,那么PCIe系统200中的根复合体2也可以为端节点4分配该地址1,这样端节点1和端节点4具有相同的地址,从而导致端节点1和端节点2的地址冲突。为了实现两个PCIe系统的通信,需要在两个PCIe系统之间进行桥接转换,进行地址或ID的翻译。例如,可以在PCIe系统100和PCIe系统200部署非透明桥(non-transparent bridge,NTB),NTB能够进行地址的转换或翻译,或者进行ID的转换或翻译,从而实现两个PCIe系统的通信。
在PCIe系统中,节点与节点之间不能直接通信,必须经过根复合体,因为一个PCIe系统中的节点由各自的根复合体独立管理,只有根复合体和节点自身有权限去读取该节点的配置空间,其他节点均无权限读取。一个节点的配置空间用于存储该节点的功能、地址、或ID等信息,一个节点的功能例如包括该节点支持的数据类型、或支持的数据格式等。而PCIe系统中,一个节点不知道其他节点支持的数据类型或格式等,因此在PCIe系统中端节点与端节点之间、交换节点与交换节点之间、以及端节点与交换节点之间不经过根复合体无法直接通信。
在PCIe系统中,各节点之间通过PCIe接口传输数据,PCIe协议中将用于传输数据的数据包称为事务层包(transaction layer packet,TLP)。请参见图3,为本申请实施例提供的TLP的一种结构示意图。如图3所示,一个TLP主要由一个或多个可选的TLP前缀(TLPPrefixes)、一个TLP头(TLP Header)、一个数据载荷(Data Payload)以及一个可选的TLP摘要(TLP Digest)组成。其中,TLP前缀的长度为H字节(byte),用于在PCIe的两端传递消息,或者用于在发送设备和接收设备之间传递消息,H为大于或等于0的整数;TLP头的长度可以是12字节,也可以是16字节,用于指示PCIe业务类型、地址等信息;数据载荷的长度可以为0~4K字节,用于承载数据;TLP摘要的长度可以是4字节,一个TLP是否需要TLP摘要由TLP头中的TLP摘要指示(indicates presence of TLP Digest,TD)字段决定,例如,如果接收设备支持端到端循环冗余校验码(end-to-end cyclic redundancy check,ECRC)的校验功能,则TLP摘要用于放置ECRC。
请参见图4,为本申请实施例提供的TLP头的一种结构示意图,该图中以TLP头的长度是16字节为例。如图4所示,TLP头包括:
1)格式(format,Fmt)字段:该字段的长度可以为3比特(bit),用于指示TLP头的长度以及TLP是否有数据载荷。TLP头的长度有12字节或16字节2种情况,TLP是否包含数据载荷有或否2种情况,因此,Fmt字段可以指示4种信息,分别为:TLP头的长度为12字节且TLP包含数据载荷、TLP头长度为12字节且TLP不包含数据载荷、TLP头的长度为16字节且TLP包含数据载荷、TLP头的长度为16字节且TLP不包含数据载荷。此外,Fmt字段还可以指示TLP前缀。Fmt字段包括3bit,共8个状态值,其中,8个状态值中的5个状态值可以用来指示上述5种信息,剩下3个状态值预留(reserved)。例如,000、001、010、011、100这5个状态值可以用于指示上述5种信息,剩下101、110、111这3个状态值预留。
2)类型(Type)字段:Type字段的长度可以为5bit,用于指示PCIe的业务类型、地址、ID等信息。PCIe业务类型有6种,分别为:存储器(memory)读/写、输入/输出(input/output,I/O)读/写、配置(configuration)读/写、消息(message)请求、结束(completion)、原子操作。Type字段包括5bit,共32个状态值,例如,PCI Express Base SpecificationRevision 5.0Version 1.0中使用其中的19个状态值指示PCIe的业务类型,剩下13个状态值为预留。例如,可以使用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。
3)T9/T8:预留比特。
4)流量等级(traffic class,TC)字段:用于指示调度流量的优先级,TC字段包括3比特,共8个状态值,对应8个等级,即0~7,TC字段默认为0(对应的状态值为000)。数字越大,优先级越高。
5)属性(attributes,Attr)字段:用于指示TLP属性,例如,TLP属性例如为订购(ordering)属性,或硬件一致性管理(hardware coherency management)属性等。
6)轻量级指示(lightweight notification,LN)字段:轻量级指示,PCIe定义的一种简单读写方式。
7)TLP处理提示(TLP processing hints,TH)字段:用于指示TLP头尾部是否有处理提示。
8)TD字段:用于指示TLP尾部是否包含TLP摘要、或ECRC等。
9)中毒数据(poisoned data,EP):用于指示当前TLP中数据载荷字段所承载的数据是否为中毒数据。
10)地址类型(address type,AT):用于指示当前TLP携带的地址是否需要翻译。
11)长度(length):用于指示当前TLP中数据载荷字段的长度,例如以4字节为最小单位。
12)Byte4~Byte7:根据业务类型定义,即Byte4~Byte7可以指示Type字段所指示的PCIe的业务类型相应的内容。
13)Byte8~Byte15:根据路由方式的不同填充不同的地址或者ID。其中,Byte8~Byte11可以填充目的节点的地址或者目的节点的ID,Byte12~Byte15可以填充源节点的地址或者源节点的ID。或者,Byte8~Byte11可以填充源节点的地址或者源节点的ID,Byte12~Byte15可以填充目的节点的地址或者目的节点的ID。
需要说明的是,12字节的TLP头的结构与16字节的TLP头的结构类型类似,区别在于16字节的TLP头中Byte4-Byte7根据业务类型定义,Byte8-Byte15填充地址信息,而12字节的TLP头中Byte4-Byte7根据业务类型定义,Byte8-Byte11填充地址信息。
需要说明的是,本申请实施例中涉及的“预留值”可以指TLP中各字段未被使用的状态值,例如,Type字段的00011、00110、00111、01000、01001、01111、11000~11010、11100~11111这13个状态值,“预留值”也可以称为“reserve值”,还可以称为“预留状态值”。本申请实施例中涉及的“已使用的状态值”可以指TLP中各字段被使用的状态值,例如,Type字段的00000、00001、00010、00100、00101、11011、10000~10111、01010、01011,01100、01101、01110这19个状态值。
可以理解的,在后续演进版本中,本申请实施例中涉及的“预留值”也可以指对应演进版本中TLP未被使用的状态值,本申请实施例不作限制。
PCIe系统中节点之间必须通过Root通信的工作机制,会导致PCIe系统中节点与节点之间的通信复杂度大幅度提升。如图1或图2中,虽然端节点1与端节点2连接在交换节点1上,但两者是不能直接通过交换节点1通信的,端节点1必须先同根复合体1通信,经根复合体1才能找到端节点2,或者端节点2必须先同根复合体1通信,经根复合体1才能找到端节点1。例如,端节点1向端节点2发送数据,具体过程可以是:端节点1将数据发送给交换节点1,交换节点1将该数据发送给根复合体1,根复合体1根据各个端节点(例如,端节点2或端节点3)的功能确定数据接收方为端节点2,例如该数据为图像数据,或者说该数据的类型为图像类型,根复合体1根据该数据的类型,确定需要将该数据发送给具备显示或播放功能的端节点,例如根复合体1确定端节点2具有显示功能,因此根复合体1可以将数据发送给交换节点1,交换节点1再将数据发送给端节点2。
鉴于此,本申请实施例提供一种基于PCIe的数据传输方法及装置,用以使得PCIe系统中节点与节点间的通信不经过根复合体,从而能降低PCIe系统中各节点之间的通信复杂度。
其中,本申请实施例提供的方法和装置是基于同一技术构思的,由于方法与装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例提供的方法可以应用于车内网,特别是自动驾驶汽车的车内网,当然也可以应用于其他设备的PCIe系统。
请参见图5,为本申请实施例提供的基于PCIe的数据传输方法的流程图,该方法可以应用于PCIe系统,例如,该方法可以应用于图1所示的PCIe系统100,也可以应用于图2所示的PCIe系统200。下面以应用于PCIe系统100为例,对本申请实施例提供的数据传输方法进行说明。如图5所示,该方法流程包括:
S501:第一节点将第一数据封装成第一TLP,其中,第一TLP的TLP头包括第一字段,该第一字段用于指示第一数据的数据类型。
第一节点可以是PCIe系统100中的端节点或端节点中的芯片,也可以是PCIe系统100中的交换节点或交换节点中的芯片。例如,第一节点可以是PCIe系统100的端节点1,也可以是端节点1中的传输节点,例如发送/接收(transport/receive,TX/RX)等。以摄像机(camera)为例,请参见图6,摄像机可以包括镜头(lens)、感光元件,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、以及TX/RX等,COMS用于通过镜头采集图像数据,并通过TX/RX发送给PCIe系统100中的其他节点,即第一节点可以是摄像机,也可以是摄像机中的TX/RX。
第一节点可以将第一数据封装在第一TLP的数据载荷中。若第一节点是端节点,第一节点封装的第一数据可以是第一节点所采集的数据。例如,第一节点是摄像机,第一数据可以是摄像机采集的图像数据等,然后摄像机将采集的图像数据发送给第二节点。再例如,第一节点是端节点中的传输节点,第一节点封装的第一数据可以是端节点中的传输芯片采集的图像数据,然后端节点中的传输节点将采集的图像数据发送给第二节点。以图6为例,第一数据可以是CMOS采集的图像数据,然后通过TX/RX发送给第二节点。
在S501中,第一节点将第一数据封装成第一TLP时,可以使用第一TLP的TLP头的第一字段来指示传输第一数据所需的信息,以使得第一数据不经过根复合体传输给其他节点。其中,TLP传输第一数据所需的信息可以包括第一数据的类型,数据的类型可以包括:图像类型,音频类型,控制类型,SWRITE类型,或安全类型等。其中,图像类型用于指示TLP所传输的数据为图像数据;音频类型用于指示TLP所传输的数据为音频数据;控制类型用于指示TLP承载控制类信息;SWRITE类型用于指示TLP所传输的数据的对齐方式,例如以4字节为最小单位进行读写;安全类型用于指示TLP承载安全类信息,例如加密的情况下所对应的密钥等。
其他在一种可能的实施方式中,第一字段可以是TLP头中的Type字段,即第一节点使用第一TLP的TLP头的Type字段来指示第一数据的类型。
在一种示例性说明中,可以使用Type字段的预留值(或称为预留状态)指示第一数据的数据类型。例如,使用Type字段的00000、00001、00010、00100、00101、11011、10000~10111、01010、01011、01100、01101、01110这13个状态值中的任一状态值来指示第一数据的数据类型。这种实现方式中,由于这13个状态值未被使用,即Type字段仅用于指示数据类型,如图7所示,因此可以兼容原有数据传输方法和本申请实施例提供的数据传输方法。例如,使用00011指示图像类型,使用00110指示音频类型,使用00111指示控制类型,使用01000指示SWRITE类型,使用01001指示安全类型,从而接收侧节点可以根据状态值是否为预留状态值来确定数据传输方法。其中,状态值为已使用的状态值时,接收侧节点可以根据该状态值确定数据传输方法为原有的数据传输方法,以及PCIe的业务类型;状态值为预留状态值时,接收侧节点可以根据该状态值确定数据传输方法为本申请实施例所提供的数据传输方法,以及数据类型。
在一种可能的实施方式中,第一TLP的TLP头还包括第二字段,该第二字段可以用于指示第一TLP的目的设备(记为第三节点)的身份信息,例如第三节点的地址、ID等。该第二字段还可以用于指示第一节点的身份信息,例如第一节点的地址、ID等。其中,第三节点可以是PCIe系统100中的端节点,也可以是PCIe系统100中的交换节点。
示例性地,第二字段可以是16字节TLP头中的Byte4-Byte15,也可以是12字节TLP头中的Byte4-Byte11。若TLP头的长度为16字节,则TLP头的Byte8-Byte15可以携带第一节点的身份信息和第三节点的身份信息。若TLP头的长度为12字节,则TLP头的Byte8-Byte11可以携带第一节点身份信息和第三节点的身份信息。
在一种可能的实施方式中,第一节点可以提取第一数据的参数信息,该参数信息与数据类型对应,可以用于表征数据类型的属性。数据类型对应的至少一个参数信息可以如下所示:
1)数据类型为图像类型时,图像类型对应的参数信息可以包括如下信息中的一项或多项:图像数据类型,例如,未经加工的图像格式(raw image format)、RGB、YUV、嵌入式数据(embedded data)、压缩图像、图像中目标轮廓(Object)等;像素比特量化深度,例如12、20、24等;分辨率,例如1080P、2K、4K等;分段指示信息,图像感光器(sensor)一次输出一行图像,对于分辨率高的图像TLP无法一次传输一行图像,需使用若干个TLP传输一行图像,分段指示信息用于指示当前TLP是当前行的第几段。
2)数据类型为音频类型时,音频类型对应的参数信息可以包括如下信息中的一项或多项:采样量化格式,例如浮点量化,整数量化等;采样频率,例如24KHz,48KHz等;量化深度,例如每个采样8bit,12bit等;声道数/通道数,声道数用于指示当前TLP包括几个声道,通道数用于指示当前TLP包括几个通道。
3)数据类型为控制类型时,控制类型对应的参数信息可以包括如下信息中的一项或多项:控制类信息类型,例如集成电路总线(inter-integrated circuit,I2C)、通用输入/输出(general-purpose input/output,GPIO)、串行外设接口(serial peripheralinterface,SPI)等;每类控制信息数量,例如当前TLP包括3路I2C,8路GPIO。
4)数据类型为安全类型时,安全类型对应的参数信息可以包括如下信息中的一项或多项:消息类型,建立安全需要多条消息交互,每条交互消息的类型不同,例如鉴权消息、加密消息等;格式指示,消息中的比特如何分组,每个组表示什么意思;当前TLP携带的数据在加密的情况下所对应的密钥信息。
5)数据类型为SWRITE类型时,SWRITE类型对应的参数信息可以包括如下信息:对齐方式,是以4字节为最小单位对齐,还是以8字节为最小单位对齐。
可以理解的是,本申请实施例中,“参数信息”仅是一种示例性命名,在具体实施中也可以命名为其他,如也可以称为属性、属性参数、封装参数等,或者,也可以称为A,只要A与本申请实施例中参数信息具有相同或相似的含义可以将A理解为本申请实施例中的参数信息。
以图6为例,若第一节点为摄像机,第一节点可以确定所采集的图像数据的图像数据类型、像素量化深度、分辨率等,并根据图像数据类型、像素量化深度、分辨率等可以计算出图像每一行数据量,结合PCIe每个TLP最大的数据承载量可得出传输一行图像需要TLP的数量,进而决定图像的分段方式,从而可以根据分段方式确定分段指示信息。若第一节点为摄像机中的TX/RX,第一节点可以接收CMOS所采集的图像数据,该图像数据包括图像数据类型、像素量化深度、分辨率等参数信息,第一节点可以根据该图像数据包括的图像数据类型、像素量化深度、分辨率等计算出图像每一行数据量,结合PCIe每个TLP最大的数据承载量可得出传输一行图像需要TLP的数量,进而决定图像的分段方式,从而可以根据分段方式确定分段指示信息。
在一种示例中,可以使用TLP头中的第一字段指示数据类型以及数据类型对应的至少一个参数信息。具体地,可以使用Type字段的13个预留状态值指示数据类型以及数据类型对应的至少一个参数信息。这种实现方式中,可以将数据类型以及数据类型对应的至少一个参数信息进行绑定,在绑定后得到多个信息集合,例如,信息集合1包括数据类型为图像类型、图像类型为YUV、图像分辨率为2K、像素量化深度为12、当前TLP是当前行的第1段;信息集合2包括:数据类型为图像类型、图像类型为YUV、图像分辨率为2K、像素量化深度为12、当前TLP是当前行的第2段;信息集合3包括:数据类型为图像类型、图像类型为RGB、图像分辨率为4K、像素量化深度为12、当前TLP是当前行的第1段等。例如,以第一数据的数据类型为图像类型为例,使用Type字段的预留状态值指示图像类型、图像数据类型、像素量化深度、分辨率以及分段指示信息,如图8所示。应理解的是,图8仅是一种示例性说明,并不对各个参数信息的长度以及在TLP头中的位置进行具体限定。
在另一种示例中,可以使用第一字段指示数据类型,第二字段指示数据类型对应的至少一个参数信息。具体地,可以使用Type字段的13个预留状态值指示数据类型,第二字段指示数据类型对应的至少一个参数信息。这种实施方式中,Type字段可以不指示参数信息。例如,以第一数据的数据类型为图像类型为例,使用Type字段的预留状态值指示图像类型、使用第二字段指示图像数据类型、像素量化深度、分辨率以及分段指示信息,如图9所示。应理解的是,图9仅是一种示例性说明,并不对各个参数信息的长度以及在TLP头中的位置进行具体限定。
在另一种示例中,可以使用第一资源指示数据类型和第一参数信息,第二字段指示第二参数信息,其中,该第二参数信息为数据类型对应的参数信息中除第一参数信息之外的参数信息,也就是说,使用第一字段和第二字段分别指示数据类型对应的不同的参数信息。具体地,可以使用Type字段的13个预留状态值指示数据类型和第一参数信息,第二字段指示第二参数信息。例如,以第一数据的数据类型为图像类型为例,使用Type字段的预留状态值指示图像类型、图像数据类型,第二字段指示像素量化深度、分辨率、分段指示信息,如图10所示。应理解的是,图10仅是一种示例性说明,并不对各个参数信息的长度以及在TLP头中的位置进行具体限定。
需要说明的是,本申请实施例中通过上述方式可以指示图像类型、音频类型、控制类型、SWRITE类型、安全类型中的一种数据类型的一种格式。或者,也可以指示图像类型、音频类型、控制类型、SWRITE类型、安全类型中的一种数据类型的多种格式。或者,也可以指示图像类型、音频类型、控制类型、SWRITE类型、安全类型中的多种数据类型的多种格式。或者,还可以指示图像类型、音频类型、控制类型、SWRITE类型、安全类型中的多种数据类型混合(例如图像格式的安全信息、带安全信息的音频数据等)。或是其他数据类型及格式,本申请实施例对此不作限定。
S502:第一节点向第二节点发送第一TLP。
其中,第二节点可以是PCIe系统100中的端节点或端节点中的芯片,也可以是PCIe系统100中的交换节点或交换节点中的芯片。在一种示例中,第二节点可以是与第一节点有连接关系的交换节点,例如,如果第一节点是端节点1,则第二节点是交换节点1。
S503:第二节点接收到第一TLP后,向第三节点发送第二TLP。
具体地,第二节点接收来自第一节点的第一TLP,通过对第一TLP进行解封装,得到第三节点的身份信息,第二节点根据第三节点的身份信息,确定路由路径,从而根据路由路将向第三节点发送第二TLP。
在一种可能的实施方式中,第二节点接收的第一TLP与第二节点发送的第二TLP为同一个TLP,即,第二节点在接收到第一节点发送的第一TLP后,将该第一TLP转发给第三节点。
在另一种可能的实施方式中,第二节点接收的第一TLP与第二节点发送的第二TLP为不同TLP,即,第二节点在接收到第一节点发送的第一TLP后,对第一TLP进行处理,例如将该第一TLP的源节点的身份信息由第一节点的身份信息修改为第二节点的身份信息等,然后将处理得到的第二TLP发送给第三节点,其中,第二节点接收的第一TLP与第二节点发送的第二TLP所携带的第一数据、参数信息相同。第二节点发送的第二TLP携带第一数据、参数信息的方式可以参阅上述步骤S501的相关描述,在此不再赘述。
S504:第三节点基于第一字段获得第一数据。
具体地,第三节点接收到来自第二节点的第二TLP,对该第二TLP进行解封装得到第二TLP头中的第一字段,进而基于第一字段获得第一数据。
在一种示例中,第三节点可以根据TLP头的Type字段确定数据类型以及数据类型对应的参数信息。例如,如图8所示,第三节点可以根据TLP头的Type字段的状态值确定第一数据的数据类型为图像类型,以及第一数据的图像数据类型、像素量化深度、分辨率以及分段指示信息。
在另一种示例中,第三节点可以根据TLP头的Type字段确定数据类型,根据TLP头的第二字段确定该数据类型对应的至少一个参数信息。例如,如图9所示,第三节点可以根据TLP头的Type字段的状态值确定第一数据的数据类型为图像类型,根据TLP头的第二字段确定第一数据的图像数据类型、像素量化深度、分辨率、分段指示信息。
在另一种示例中,第三节点可以根据TLP头的Type字段确定数据类型和第一参数信息,根据TLP头的第二字段确定第二参数信息,其中,第二参数信息为数据类型对应的参数信息中除第一参数信息之外的参数信息。例如,如图10所示,第三节点可以根据TLP头的Type字段的状态值确定第一数据的数据类型为图像类型,第一数据的图像数据类型,根据TLP头的第二字段确定第一数据的像素量化深度、分辨率、分段指示信息。
需要说明的是,图5所示的传输方法可以应用于如图1所示的单个PCIe系统中,也可以应用于如图2所示的单个PCIe系统中,本申请实施例对此不作限定。
以图2所示的PCIe系统100和PCIe系统200为例,第一节点可以是端节点3,第二节点可以是交换节点2,第三节点可以是端节点4,第一数据从端节点3传输到端节点4的流程包括:
A1:端节点3将第一TLP发送给交换节点2,第一TLP包括第一数据,第一TLP的TLP头的Type字段指示数据类型和参数信息,该TLP头的第二字段指示端节点3的身份信息,以及端节点4的身份信息(具体封装方式可参见S501,在此不再赘述);
A2:交换节点2接收到第一TLP后,对第一TLP的TLP头进行解封装得到端节点4的身份信息,根据端节点4的身份信息将第一TLP发送给交换节点中的NTB;
A3:交换节点2中的NTB接收到第一TLP后,对第一TLP的TLP头进行解封装得到端节点4的身份信息,可以对端节点4的身份信息进行翻译/转换,得到第二TLP并将第二TLP发送给交换节点3中的NTB,第二TLP包括第一数据,第二TLP的TLP头的Type字段指示数据类型和参数信息,该TLP头的第二字段指示端节点3的身份信息,以及端节点4的身份信息,第一TLP与第二TLP可以相同也可以不同;例如,交换节点2中的NTB对端节点4的身份信息进行翻转/转换,找到交换节点3中的NTB,在翻转/转换过程中,如果交换节点2中的NTB将端节点4的身份信息修改为PCIe系统200可识别的身份信息,则第二TLP与第一TLP不同;如果交换节点2中的NTB没有将端节点4的身份信息修改为PCIe系统200可识别的身份信息,则第二TLP与第一TLP相同;
A4:交换节点3中的NTB接收到第二TLP后,对第一TLP的TLP头进行解封装得到端节点4的身份信息,可以对端节点4的身份信息进行翻译/转换,得到第三TLP并将第三TLP发送给交换节点3中的NTB,第三TLP包括第一数据,第三TLP的TLP头的Type字段指示数据类型和参数信息,该TLP头的第二字段指示端节点3的身份信息,以及端节点4的身份信息,第三TLP与第二TLP可以相同也可以不同(类似上述步骤A3中第一TLP与第二TLP可以相同也可以不同);
A5:交换节点3接收到第三TLP后,对第三TLP的TLP头进行解封装得到端节点4的身份信息,根据端节点4的身份信息将第三TLP发送给端节点4;端节点4接收到第三TLP后,对第三TLP的TLP头解封装得到Type字段,并基于Type字段获得第一数据(具体数据获取过程可参见S504,在此不再赘述),从而完成跨PCIe系统的数据传输。
需要说明的是,NTB对身份信息的翻译/转换的具体实现过程可参见现有技术,本申请实施例对此不作限定。
下面结合图11所示的PCIe系统,对数据传输过程进行具体描述。请参见图11,PCIe系统300中包括根复合体1,交换节点1,与交换节点1具有连接关系的摄像机(Camera)1、摄像机2、交换节点2,以及与交换节点2具有连接关系的显示器(Display)3。摄像机1将拍摄的图像数据发送到显示器3上进行显示。
其中,摄像机1通过上述实施例(或图5所示的流程)中第一节点执行的方法,将拍摄得到的图像数据传输到交换节点1和交换机2;交换节点2可以通过上述实施例(或图5所示的流程)中第二节点执行的方法,将图像数据传输到显示器3上进行显示;显示器3可以通过上述实施例(或图5所示的流程)中第三节点执行的方法获取该图像数据。以TLP头的长度为16字节,交换节点1、2接收到TLP与发送的TLP相同为例,请参见图12,为摄像机1将图像数据传输到显示器3进行显示的具体过程。
S10:摄像机1拍摄得到图像数据。
摄像机1可以响应于拍摄指令(例如通过摄像机1的拍摄按键触发)进行拍摄,从而得到图像数据。
S11:摄像机1根据图像数据,确定图像数据的数据类型为图像类型,以及图像数据的参数信息。例如,图像数据类型(如RGB、YUV等),每像素量化bit数,图像分辨率(如2K、4K等)。还可以计算出图像每一行的数据量,根据PCIe每个TLP承载的最大数据量确定传输一行图像需要TLP的数量,然后决定图像的分段方式,进而确定分段指示信息。
S12:摄像机1将图像数据封装成TLP。
示例性地,摄像机1可以按照如下三种方式中的任一种方式将图像数据封装成TLP:
方式1,可以使用TLP头的Type字段指示传输该图像数据所需的信息,例如数据类型:图像类型,图像数据的参数信息:图像数据类型、像素量化深度、分辨率、分段指示信息等。若使用Type字段的预留值指示数据类型和参数信息,则如图8所示。进一步地,摄像机1将图像数据填充到数据载荷中,将自己的身份信息(例如ID、地址等)以及显示器3的身份信息(例如ID、地址等)填充到TLP头的Byte 8~Byte 15。
方式2,可以使用TLP头的Type字段以及第二字段指示传输该图像数据所需的信息,其中,Type字段指示数据类型图像类型,第二字段(例如Byte 4~Byte 15)指示图像数据的参数信息,例如数据类型:图像类型,图像数据的参数信息:图像数据类型、像素量化深度、分辨率、分段指示信息等。若使用Type字段的预留值指示数据类型,则如图9所示。进一步地,摄像机1将图像数据填充到数据载荷中,将自己的身份信息(例如ID、地址等)以及显示器3的身份信息(例如ID、地址等)填充到TLP头的Byte 8~Byte 15。
方式3,可以使用TLP头的Type字段以及第二字段指示传输该图像数据所需的信息,其中,Type字段指示数据类型图像类型和图像数据的部分参数信息,第二字段(例如Byte 4~Byte 15)指示图像数据的剩余参数信息,例如数据类型:图像类型,图像数据的部分参数信息:图像数据类型,图像数据的剩余参数信息:像素量化深度、分辨率、分段指示信息等。若使用Type字段的预留值指示数据类型和部分参数信息,则如图10所示。进一步地,摄像机1将图像数据填充到数据载荷中,将自己的身份信息(例如ID、地址等)以及显示器3的身份信息(例如ID、地址等)填充到TLP头的Byte 8~Byte 15。
S13:摄像机1将TLP发给与摄像机1有连接关系的交换节点1。
S14:交换节点1接收到TLP后,检测TLP头,解析Type字段。
S15:在确定Type字段为本申请实施例定义的内容后,根据TLP中显示器2的身份信息确定路由路径,并根据路由路径将TLP发送给与显示器2有连接关系的交换节点2。
在S14~S15中,如果交换节点1确定Type字段为是现有PCIe系统定义的内容,则按照现有PCIe系统工作机制进行处理,即将TLP发送给根复合体1,然后由根复合体1根据访问各个端节点(例如摄像机2和显示器3)的配置空间确定接收侧节点,然后将TLP发送给接收侧节点或与接收侧节点有连接关系的交换节点。
S16:交换节点2接收到TLP后,检测TLP头,解析Type字段。
S17:在确定Type字段为本申请实施例定义的内容后,根据TLP中显示器2的身份信息,将TLP发送给显示器2。
在S16~S17中,如果交换节点2确定Type字段为是现有PCIe系统中定义的内容,则按照现有PCIe系统工作机制进行处理,即将TLP发送给根复合体1,然后由根复合体1根据访问各个端节点(例如摄像机2和显示器3)的配置空间确定接收侧节点,然后将TLP发送给接收侧节点或与接收侧节点有连接关系的交换节点。
S18:显示器2接收到TLP后,检测TLP头,解析Type字段,获得图像数据的数据类型和参数信息,根据参数信息(例如分段指示信息等)恢复一幅完整的图像,并在显示屏上显示图像。
示例性地,对于S12中的三种封装方式,显示器3可以按照如下方式对TLP进行解封装:
对应S12中的方式1,显示器3解析TLP头的Type字段,根据Type字段的状态值确定数据类型为图像类型,以及图像数据的参数信息,例如图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息等。
对应S12中的方式2,显示器3解析TLP头的Type字段,根据Type字段的状态值确定数据类型为图像类型;解析TLP头的Byte 4~Byte 15确定图像数据的参数信息,例如图像数据的图像数据类型、图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息等。
对应S12中的方式3,显示器3解析TLP头的Type字段,根据Type字段的状态值确定数据类型为图像类型以及图像数据的部分参数信息,例如图像数据的图像数据类型等;解析TLP头的Byte 4~Byte 15确定图像数据的剩余参数信息,例如图像数据的像素量化深度、图像数据的分辨率、图像数据的分段指示信息等。
本申请的上述实施例中,通过使用Type字段指示TLP传输数据所需要的信息,例如数据类型、数据类型对应的参数信息等,这样可以使得PCIe系统中节点与节点之间的通信(例如,端节点与端节点之间的通信,或者,交换节点与交换节点之间的通信,或者,端节点与交换节点之间的通信)不经过根复合体,从而可以降低PCIe系统中各节点之间的通信复杂度。
基于与方法实施例的同一技术构思,本申请实施例提供一种数据传输装置。该装置的结构可以如图13所示,包括处理单元1301以及发送单元1302。
数据传输装置1300具体可以用于实现图5至图12的实施例中第一节点执行的方法,该装置1300可以是第一节点本身,也可以是第一节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,处理单元1301,用于将第一数据封装成第一TLP,第一TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型;发送单元1302,用于向第二节点发送第一TLP。
在一种可能的实施方式中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在另一种可能的实施方式中,第一字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第一字段为第一TLP的TLP头中的类型Type字段。
在另一种可能的实施方式中,第一字段的值为预留值。
在另一种可能的实施方式中,第一TLP的TLP头还包括第二字段,第二字段用于指示第三节点的身份信息,第三节点为第一TLP的目的设备。
在另一种可能的实施方式中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第二字段为第一TLP的TLP头的字节4~字节15或字节4~字节11。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可以理解的是,本申请实施例中各个模块的功能或者实现可以进一步参考方法实施例的相关描述。
在一种可能的实施方式中,数据传输装置1400可以如图14所示,该装置1400可以是端节点或者端节点中的芯片。该装置1400可以包括处理器1401,还可以包括收发器1402,存储器1403。其中,处理单元1301可以为处理器1401。发送单元1302可以为收发器1402。
处理器1401,可以是一个CPU,或者为数字处理单元等。收发器1402可以是通信接口、也可以为接口电路如收发电路等、也可以为收发芯片等。该装置1400还包括:存储器1403,用于存储处理器1401执行的程序。存储器1403可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1403是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1401用于执行存储器1403存储的程序代码,具体用于执行上述处理单元1301的动作,本申请在此不再赘述。收发器1402具体用于执行上述发送单元1302的动作,本申请在此不再赘述。
本申请实施例中不限定上述收发器1402、处理器1401以及存储器1403之间的具体连接介质。本申请实施例在图14中以存储器1403、处理器1401以及收发器1402之间通过总线1404连接,总线在图14中以粗线表示,其他部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1404可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于与方法实施例的同一技术构思,本申请实施例提供一种数据传输装置1500。该装置1500的结构可以如图15所示,包括接收单元1501、发送单元1502以及处理单元1503。
数据传输装置1500可以实现图5至图12的实施例中第二节点执行的方法,该装置1500可以是第二节点本身,也可以是第二节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,接收单元1501,用于接收来自第一节点的第一事务层包TLP,第一TLP包括第一数据;发送单元1502,用于向第三节点发送第二TLP,第二TLP包括第一数据;其中,TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型,TLP包括第一TLP、和/或第二TLP。
在一种可能的实施方式中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在一种可能的实施方式中,第二TLP包括第一数据可以理解为第二TLP与第二TLP包括的数据的内容相同。
在另一种可能的实施方式中,第一字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第一字段为TLP头中的类型Type字段。
在另一种可能的实施方式中,第一字段的值为预留值。
在另一种可能的实施方式中,TLP头还包括第二字段,第二字段用于指示第三节点的身份信息。
在另一种可能的实施方式中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第二字段为TLP包的TLP头的字节4~字节15或字节4~字节11。
在另一种可能的实施方式中,装置1500还包括处理单元1503,处理单元1503用于:根据第三节点的身份信息,确定路由路径;发送单元1502,具体用于:根据路由路径,将第二TLP发送给第三节点。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可以理解的是,本申请实施例中各个模块的功能或者实现可以进一步参考方法实施例的相关描述。
在一种可能的实施方式中,数据传输装置1600可以如图16所示,该装置1600可以是端节点或者端节点中的芯片。该装置1600可以包括处理器1601,还可以包括收发器1602,存储器1603。其中,处理单元1503可以为处理器1601。接收单元1501和发送单元1502可以为收发器1602。
处理器1601,可以是一个CPU,或者为数字处理单元等。收发器1602可以是通信接口、也可以为接口电路如收发电路等、也可以为收发芯片等。该装置1600还包括:存储器1603,用于存储处理器1601执行的程序。存储器1603可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1603是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1601用于执行存储器1603存储的程序代码,具体用于执行上述处理单元1503的动作,本申请在此不再赘述。收发器1602具体用于执行上述接收单元1501和发送单元1502的动作,本申请在此不再赘述。
本申请实施例中不限定上述收发器1602、处理器1601以及存储器1603之间的具体连接介质。本申请实施例在图16中以存储器1603、处理器1601以及收发器1602之间通过总线1604连接,总线在图16中以粗线表示,其他部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1604可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
基于与方法实施例的同一技术构思,本申请实施例提供一种数据传输装置。该装置的结构可以如图17所示,包括接收单元1701以及处理单元1702。
数据传输装置1700具体可以用于实现图5至图12的实施例中第三节点执行的方法,该装置1700可以是第三节点本身,也可以是第三节点中的芯片或芯片组或芯片中用于执行相关方法功能的一部分。其中,接收单元1701,用于接收来自第二节点的第二事务层包TLP,第二TLP包括第一数据,第二TLP的TLP头包括第一字段,第一字段用于指示第一数据的数据类型;处理单元1702,用于基于第一字段获得第一数据。
在一种可能的实施方式中,数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型。
在一种可能的实施方式中,第一字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第一字段为第二TLP头中的类型Type字段。
在另一种可能的实施方式中,第一字段的值为预留值。
在另一种可能的实施方式中,第二TLP头还包括第二字段,第二字段用于指示第三节点的身份信息。
在另一种可能的实施方式中,在第一字段仅用于指示第一数据的数据类型时,第二字段还用于指示数据类型对应的至少一个参数信息。
在另一种可能的实施方式中,第二字段为第二TLP头的字节4~字节15或字节4~字节11。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可以理解的是,本申请实施例中各个模块的功能或者实现可以进一步参考方法实施例的相关描述。
在一种可能的实施方式中,数据传输装置1800可以如图18所示,该装置1800可以是端节点或者端节点中的芯片。该装置1800可以包括处理器1801,还可以包括收发器1802,存储器1803。其中,处理单元1702可以为处理器1801。接收单元1701可以为收发器1802。
处理器1801,可以是一个CPU,或者为数字处理单元等。收发器1802可以是通信接口、也可以为接口电路如收发电路等、也可以为收发芯片等。该装置1800还包括:存储器1803,用于存储处理器1801执行的程序。存储器1803可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储器1803是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
处理器1801用于执行存储器1803存储的程序代码,具体用于执行上述处理单元1702的动作,本申请在此不再赘述。收发器1802具体用于执行上述接收单元1701的动作,本申请在此不再赘述。
本申请实施例中不限定上述收发器1802、处理器1801以及存储器1803之间的具体连接介质。本申请实施例在图18中以存储器1803、处理器1801以及收发器1802之间通过总线1804连接,总线在图18中以粗线表示,其他部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1804可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供了一种计算机可读存储介质,用于存储为执行上述处理器所需执行的计算机软件指令,其包含用于执行上述处理器所需执行的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (33)

1.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第一节点将第一数据封装成第一事务层包TLP,所述第一TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型;其中,所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息;
所述第一节点向第二节点发送所述第一TLP。
2.根据权利要求1所述的方法,其特征在于,所述第一字段为所述第一TLP的TLP头中的类型Type字段。
3.根据权利要求1或2所述的方法,其特征在于,所述第一字段的值为预留值。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述第二字段还用于指示第三节点的身份信息,所述第三节点为所述第一TLP的目的设备。
5.根据权利要求4所述的方法,其特征在于,所述第二字段为所述第一TLP的TLP头的字节4~字节15或字节4~字节11。
6.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第二节点接收来自第一节点的第一事务层包TLP,所述第一TLP包括第一数据;
所述第二节点向第三节点发送第二TLP,所述第二TLP包括所述第一数据;
其中,TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型,所述TLP包括所述第一TLP、和/或所述第二TLP;所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息。
7.根据权利要求6所述的方法,其特征在于,所述第一字段为所述TLP头中的类型Type字段。
8.根据权利要求6或7所述的方法,其特征在于,所述第一字段的值为预留值。
9.根据权利要求6~8中任一项所述的方法,其特征在于,所述第二字段还用于指示所述第三节点的身份信息。
10.根据权利要求9所述的方法,其特征在于,所述第二字段为所述TLP包的TLP头的字节4~字节15或字节4~字节11。
11.根据权利要求9或10所述的方法,其特征在于,所述第二节点向第三节点发送第二TLP,包括:
所述第二节点根据所述第三节点的身份信息,确定路由路径;
所述第二节点根据所述路由路径,将所述第二TLP发送给所述第三节点。
12.一种基于外围组件互连传递PCIe的数据传输方法,其特征在于,包括:
第三节点接收来自第二节点的第二事务层包TLP,所述第二TLP包括第一数据,所述第二TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型;其中,所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息;
所述第三节点基于所述第一字段获得所述第一数据。
13.根据权利要求12所述的方法,其特征在于,所述第一字段为所述第二TLP头中的类型Type字段。
14.根据权利要求12或13所述的方法,其特征在于,所述第一字段的值为预留值。
15.根据权利要求12~14中任一项所述的方法,其特征在于,所述第二字段还用于指示所述第三节点的身份信息。
16.根据权利要求15所述的方法,其特征在于,所述第二字段为所述第二TLP头的字节4~字节15或字节4~字节11。
17.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
处理单元,用于将第一数据封装成第一事务层包TLP,所述第一TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型;其中,所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息;
发送单元,用于向第二节点发送所述第一TLP。
18.根据权利要求17所述的装置,其特征在于,所述第一字段为所述第一TLP的TLP头中的类型Type字段。
19.根据权利要求17或18所述的装置,其特征在于,所述第一字段的值为预留值。
20.根据权利要求17~19中任一项所述的装置,其特征在于,所述第二字段还用于指示第三节点的身份信息,所述第三节点为所述第一TLP的目的设备。
21.根据权利要求20所述的装置,其特征在于,所述第二字段为所述第一TLP的TLP头的字节4~字节15或字节4~字节11。
22.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
接收单元,用于接收来自第一节点的第一事务层包TLP,所述第一TLP包括第一数据;
发送单元,用于向第三节点发送第二TLP,所述第二TLP包括所述第一数据;
其中,TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型,所述TLP包括所述第一TLP、和/或所述第二TLP;所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息。
23.根据权利要求22所述的装置,其特征在于,所述第一字段为所述TLP头中的类型Type字段。
24.根据权利要求22或23所述的装置,其特征在于,所述第一字段的值为预留值。
25.根据权利要求22~24中任一项所述的装置,其特征在于,所述第二字段还用于指示所述第三节点的身份信息。
26.根据权利要求25所述的装置,其特征在于,所述第二字段为所述TLP包的TLP头的字节4~字节15或字节4~字节11。
27.根据权利要求25或26所述的装置,其特征在于,所述装置还包括处理单元,所述处理单元用于:
根据所述第三节点的身份信息,确定路由路径;
所述发送单元,具体用于:
根据所述路由路径,将所述第二TLP发送给所述第三节点。
28.一种基于外围组件互连传递PCIe的数据传输装置,其特征在于,包括:
接收单元,用于接收来自第二节点的第二事务层包TLP,所述第二TLP包括第一数据,所述第二TLP的TLP头包括第一字段,所述第一字段用于指示所述第一数据的数据类型,所述数据类型包括如下至少一项:图像类型、视频类型、控制类型、安全类型、流写(SWRITE)类型;其中,所述第一字段还用于指示所述数据类型对应的至少一个参数信息,或者所述TLP头中的第二字段用于指示所述数据类型对应的至少一个参数信息;
处理单元,用于基于所述第一字段获得所述第一数据。
29.根据权利要求28所述的装置,其特征在于,所述第一字段为所述第二TLP头中的类型Type字段。
30.根据权利要求28或29所述的装置,其特征在于,所述第一字段的值为预留值。
31.根据权利要求28~30中任一项所述的装置,其特征在于,所述第二字段还用于指示所述第三节点的身份信息。
32.根据权利要求31所述的装置,其特征在于,所述第二字段为所述第二TLP头的字节4~字节15或字节4~字节11。
33.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储程序或指令,所述程序或所述指令在被一个或多个处理器读取并执行时可实现权利要求1~5、权利要求6~11或权利要求12~16中任一项所述的方法。
CN202080002611.3A 2020-01-22 2020-01-22 一种基于PCIe的数据传输方法及装置 Active CN113498595B (zh)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN113498595A CN113498595A (zh) 2021-10-12
CN113498595B true CN113498595B (zh) 2022-10-11

Family

ID=76992003

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US20220368564A1 (zh)
EP (1) EP4084423A4 (zh)
CN (1) CN113498595B (zh)
WO (1) WO2021147045A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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
CN114925386B (zh) * 2022-07-15 2022-10-25 飞腾信息技术有限公司 数据处理方法、计算机设备、数据处理系统及存储介质
CN114915499B (zh) * 2022-07-15 2022-10-28 飞腾信息技术有限公司 数据传输方法、相关装置、系统及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099318B2 (en) * 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
JP2006189937A (ja) * 2004-12-28 2006-07-20 Toshiba Corp 受信装置、送受信装置、受信方法及び送受信方法
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
CN103023824B (zh) * 2012-12-11 2015-08-26 华为技术有限公司 基于周边组件接口快速通道PCIe的数据传输系统及方法
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统
CN103701680A (zh) * 2013-12-17 2014-04-02 杭州华为数字技术有限公司 一种跨PCIe域报文传输的方法、设备及系统
US10423552B2 (en) * 2013-12-23 2019-09-24 Intel Corporation Integrated component interconnect
US9280290B2 (en) * 2014-02-12 2016-03-08 Oracle International Corporation Method for steering DMA write requests to cache memory
CN105653481B (zh) * 2014-11-14 2019-03-26 华为技术有限公司 基于PCIe总线的数据传输方法和装置
CN105185414A (zh) * 2015-09-15 2015-12-23 北京京存技术有限公司 一种测试方法和装置
US10157153B2 (en) * 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems

Also Published As

Publication number Publication date
EP4084423A4 (en) 2023-01-11
EP4084423A1 (en) 2022-11-02
CN113498595A (zh) 2021-10-12
US20220368564A1 (en) 2022-11-17
WO2021147045A1 (zh) 2021-07-29

Similar Documents

Publication Publication Date Title
CN113498595B (zh) 一种基于PCIe的数据传输方法及装置
CN113498596B (zh) 一种基于PCIe的数据传输方法及装置
US11818058B2 (en) Shared resources for multiple communication traffics
US20220358074A1 (en) PCIe-Based Data Transmission Method, Apparatus, and System
US20220368781A1 (en) PCIe-Based Data Transmission Method and Apparatus
US20220374385A1 (en) PCIe Data Transmission Method and Apparatus
US20220358070A1 (en) Pcie-based data transmission method and apparatus
US20220365899A1 (en) PCIe-Based Data Transmission Method, Apparatus, and System
CN115733832A (zh) 计算设备、报文接收方法、可编程网卡及存储介质
CN113986969A (zh) 数据处理方法、装置、电子设备和存储介质
CN114915499B (zh) 数据传输方法、相关装置、系统及计算机可读存储介质
CN115269174A (zh) 一种数据传输方法、数据处理方法及相关产品
US20220365895A1 (en) Pcie-based data transmission method and apparatus
US20240069754A1 (en) Computing system and associated method

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