CN112416834B - 一种兼容PCIe结构的设备间互联方法及相关设备 - Google Patents

一种兼容PCIe结构的设备间互联方法及相关设备 Download PDF

Info

Publication number
CN112416834B
CN112416834B CN202011379794.9A CN202011379794A CN112416834B CN 112416834 B CN112416834 B CN 112416834B CN 202011379794 A CN202011379794 A CN 202011379794A CN 112416834 B CN112416834 B CN 112416834B
Authority
CN
China
Prior art keywords
type
equipment
data path
link
interconnection
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
CN202011379794.9A
Other languages
English (en)
Other versions
CN112416834A (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.)
Shanghai Bi Ren Technology Co ltd
Original Assignee
Shanghai Biren Intelligent Technology 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 Shanghai Biren Intelligent Technology Co Ltd filed Critical Shanghai Biren Intelligent Technology Co Ltd
Priority to CN202211160597.7A priority Critical patent/CN115374038A/zh
Priority to CN202011379794.9A priority patent/CN112416834B/zh
Publication of CN112416834A publication Critical patent/CN112416834A/zh
Application granted granted Critical
Publication of CN112416834B publication Critical patent/CN112416834B/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/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/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
    • 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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

本发明提供一种兼容PCIe结构的设备间互联方法及相关设备,所述互联方法应用于异构系统,所述异构系统包括主机和与所述主机相接的多个设备,包括:第一设备根据接收到第二设备或主机发来的预设控制字符对自身的数据通路的类型进行改变;改变类型后的第一设备与所述第二设备实现互联;其中,所述预设控制字符为符合PCIe通信协议并能控制所述第一设备对其自身的数据通路的类型进行改变的指令,所述数据通路的类型为根复合体RC类型或端点设备EP类型。本发明通过切换设备类型可实现设备间的互联,能够降低异构计算系统中设备间互联的数据传输延迟。

Description

一种兼容PCIe结构的设备间互联方法及相关设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种兼容PCIe(Peripheral ComponentInterconnect Express,简称PCIe,高速外围组件互连)结构的设备间互联方法及相关设备。
背景技术
随着通用高性能计算系统,人工智能领域以及多媒体图像处理的快速发展,现代社会对于数据中心,云计算的需求也愈发依赖。而对于数据中心,云计算的核心引擎高性能通用计算芯片也有了进一步的要求。如今这种急剧膨胀的数据与计算体量已远远超出传统CPU能力所及。
为弥补CPU计算能力的不足,一种通用的解决方法是采用协处理芯片的异构计算系统提升计算性能。通常的协处理芯片会有多种选择如GPU(英语:Graphics ProcessingUnit,缩写:GPU,中文:图形处理器),ASIC(英语:Application Specific IntegratedCircuit,缩写:ASIC,中文:专用集成电路),FPGA(英语:Field Programmable Gate Array,缩写:FPGA,中文:现场可编程逻辑门阵列)。
而如何进一步扩展提高异构计算性能,降低计算密集型工作负载所需数据传输延迟,成为目前面临的主要问题所在。
发明内容
本发明提供一种兼容PCIe结构的多设备互联方法及相关设备,用以解决基于PCIe拓扑结构下的异构计算系统中,设备之间缺乏两两互联通路,从而造成数据传输延迟过大的问题,以实现设备间的互联。
本发明提供一种兼容PCIe结构的设备间互联方法,应用于异构系统,所述异构系统包括主机和与所述主机相接的多个设备,所述互联方法包括:
第一设备根据接收到第二设备或主机发来的预设控制字符对自身的数据通路的类型进行改变;
改变类型后的第一设备与所述第二设备实现互联;
其中,所述预设控制字符为符合PCIe通信协议并能控制所述第一设备对其自身的数据通路的类型进行改变的指令,所述数据通路的类型为根复合体RC类型或端点设备EP类型。
根据本发明所述的兼容PCIe结构的设备间互联方法,所述第一设备根据接收到第二设备发来的预设控制指令对自身的数据通路的类型进行改变,包括:
第一设备将包含第一预设链接编码的训练字符发送至第二设备;
所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;
所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备的互联;
其中,第一预设链接编码用来定义所述第一设备的数据通路的类型,第二预设链接编码用来定义所述第二设备的数据通路的类型,所述数据通路的类型是根复合体RC类型或端点设备EP类型。
根据本发明所述的兼容PCIe结构的设备间互联方法,所述第二设备通过类型转换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备之后,包括:
当所述第二设备的剩余数据通路收到连续的包含第一预设链接编码的训练字符时,再将所述第二设备的剩余数据通路的类型均按照所述数据通路的类型进行切换。
根据本发明所述的兼容PCIe结构的设备间互联方法,所述第一设备将包含第一预设链接编码的训练字符发送至第二设备之前,包括:
对所述第一设备和所述第二设备设置timeout定时机制,以保证所述第二设备的所有数据通路经过类型切换后重新进行PCIe链路建立。
根据本发明所述的兼容PCIe结构的设备间互联方法,所述timeout定时机制工作的步骤,包括:
主机通过检测设备中的链接状态寄存器确认设备间的对等互联链接是否成功;
若在预设时间内,所述链接状态一直为False状态,则认为所述设备间的对等互联链接不成功;
重新设置定时值,并重新尝试建立设备间的对等互联链接;
主机通过预设的PCIe BDF编码定位监测各设备间的位置和状态信息,并实时改变或监测各设备间的链接状态寄存器。
根据本发明所述的兼容PCIe结构的设备间互联方法,在所述第一设备的数据通路为RC类型和所述第二设备的数据通路为RC类型结构下,所述互联方法包括:
第二设备将包含第二预设链接编码的训练字符发送至第一设备;
所述第一设备将最先接收到连续的包含第二预设链接编码的训练字符的数据通路的类型由RC类型切换为EP类型;
所述第一设备通过类型切换后的所述数据通路将包含第一预设链接编码的训练字符发送至所述第二设备,以实现所述第二设备与所述第一设备的互联。
根据本发明所述的兼容PCIe结构的设备间互联方法,在所述第一设备为EP类型和所述第二设备为EP类型结构下,所述互联方法包括:
第一设备将包含第一预设链接编码的训练字符发送至第二设备;
所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型由EP类型切换为RC类型;
所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备与所述第二设备的互联。
根据本发明所述的兼容PCIe结构的设备间互联方法,在所述第一设备为RC类型和所述第二设备为EP类型结构下,或在所述第一设备为EP类型和所述第二设备为RC类型结构下,重新进行PCIe链路建立,包括:
所述第一设备通过数据通路的发送端将包含第一链接编码的训练字符发送至所述第二设备;
所述第二设备接收到所述训练字符后,根据所述第一链接编码识别所述第一设备的类型后配置自身的第二链接编码;
所述第二设备通过数据通路的发送端将包含所述第二链接编码的训练字符发送至所述第一设备,以将所述第二链接编码告知所述第一设备;
所述第一设备接收到所述训练字符并确认所述第二链接编码后,完成所述第一设备与所述第二设备的PCIe链路建立。
根据本发明所述的兼容PCIe结构的设备间互联方法,所述第一设备根据接收到主机发来的预设控制指令对自身的数据通路的类型进行改变,包括:
主机为每个设备分配总线功能设备编码以确定各个设备在整个机构系统中的坐标位置;
根据总线功能设备编码,主机实现控制对等互联设备的类型的切换。
本发明还提供一种兼容PCIe结构的设备间互联系统,包括CPU、根复合体RC、存储器、交换机以及多个设备,CPU通过根复合体分别与存储器、交换机以及多个设备连接,所述设备包括第一设备和第二设备,其中,
所述第一设备将包含第一预设链接编码的训练字符发送至所述第二设备;所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备的互联;
其中,第一预设链接编码用来定义所述第一设备的类型,第二预设链接编码用来定义所述第二设备的类型,所述数据通路的类型是根复合RC类型或端点设备EP类型。
本发明还提供一种兼容PCIe结构的设备间互联芯片,应用于异构计算系统,所述互联芯片包括第一芯片和第二芯片,其中:
所述第一芯片将包含第一预设链接编码的训练字符发送至所述第二芯片;
所述第二芯片将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;
所述第二芯片通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一芯片,以实现所述第一芯片与所述第二芯片的互联;
其中,第一预设链接编码用来定义所述第一芯片的数据通路的类型,第二预设链接编码用来定义所述第二芯片的数据通路的类型,所述数据通路的类型是根复合体RC类型或端点设备EP类型。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述兼容PCIe结构的设备间互联方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述兼容PCIe结构的设备间互联方法的步骤。
本发明提供的兼容PCIe结构的设备间互联方法及相关设备,通过切换设备类型可实现设备间的互联,从而实现设备间进行读写数据,能够降低异构计算系统中设备间互联的数据传输延迟,拓展多设备互联的数据带宽,进一步消除异构计算系统瓶颈。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的异构计算系统的示意图;
图2是本发明提供的兼容PCIe结构的设备间互联方法的流程示意图之一;
图2a是本发明提供的兼容PCIe结构的设备间互联方法的流程示意图之二;
图3是本发明提供的PCIe互联拓扑结构的转换示意图;
图4是本发明提供的PCIe链路建立的示意图;
图5是本发明提供的RC/RC结构的设备间互联的示意图;
图6是本发明提供的EP/EP结构的设备间互联的示意图;
图6a是本发明提供的Timeout定时机制的示意图;
图7a是本发明一实施例提供的兼容PCIe结构的设备间互联系统的结构示意图;
图7b是本发明另一实施例提供的兼容PCIe结构的设备间互联系统的结构示意图;
图8是本发明提供的兼容PCIe结构的设备间互联方法的流程图;
图9是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
人工智能(artificial intelligence,简称AI)有三要素:算法,计算力,数据。其中,计算力归根结底是由底层芯片提供,按照计算芯片的组成方式,可以分成同构计算和异构计算,如下:
同构计算:使用相同类型指令集和体系结构的计算单元组成系统的计算方式。
异构计算:使用不同类型指令集和体系结构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU、ASIC、FPGA等。
比如:将GPU(Graphics Process Unit,简称GPU,图形处理单元)插在主板的PCIe(Peripheral Component Interconnect Express,简称PCIe,高速外围组件互连)卡口上,运行程序的时候,可将CPU看作一个指挥者,即主机端、Host,而完成大量计算的GPU是计算设备,即Device。CPU和GPU之间通过PCIe总线连接,用于传递指令和数据。
图1是现有技术提供的异构计算系统的示意图,如图所示。图中示出的异构计算系统,如CPU与多Device计算系统,通过高速IO总线如PCIe进行互联。
CPU与Device,Device与Device之间的数据传输全部遵循PCIe协议规范。Host与Device,Device与Device之间共享IO总线带宽。通用异构计算系统100,CPU 101通过RC(Root Complex,简称RC,根复合体)102与系统内存(System Memory)103、Swich(交换机)104、Swich105以及多个Device(Device0 106、Device1 107、Device2108、Device3 109)进行互联,整个异构系统遵循PCIe总线协议拓扑结构。
上述中,RC是PCIe总线的根,RC把总线,内存,处理器连接到总线通路上。EP(Endpoint,简写EP,端点设备)是PCI/PCIe设备的总称,如PCIe网卡,PCIe的显卡等等。Switch:简单来说是PCIe交换机,用于扩展PCIe接口。
基于上述图2a的异构计算系统100,各Device(Device0 106、Device1 107、Device2 108、Device3 109)与CPU 01设有独立的数据传输通路,如Device1 107与CPU 101之间的传输通路110,Device2 108与CPU 101之间传输通路112。而基于现有的PCIe拓扑结构下,Device与Device之间并无独立的数据通路,比如Device1107与Device2 108之间并无独立的数据通路,其数据通路111与CPU传输通路110、112高度共享。且Device1 107与Device2 108的数据交换路径极长,Device1 107与Device2 108的数据交换必须经RC 102与swtich 104。
因此基于PCIe的拓扑结构的异构系统,Device与Device之间的数据传输延迟大,且与CPU共享数据通路的结构对Device与Device之间的数据传输带宽具有重大影响,使得各Device与Device之间的数据传输带宽成为整体异构计算系统的瓶颈所在。并且基于严格的PCIe拓扑结构下的多Device互联系统,一般的需要额外的片外的Switch辅助连接,在这种拓扑结构下,既增加系统复杂度和硬件成本,也无法实现多Device下高效的两两互联结构。
一般的,基于PCIe拓扑结构下的两两互联结构下的多Device互联需要预先确定各自Device在系统中的ID与位置,而后Host根据所得ID与位置信息对于每个Device进行初始化配置而后,Device之间连接才能开始建立连接。一旦有Device加入或是退出系统,各个Device的ID号与位置信息需Host重新计算分配。此种方法极大限制了多Device互联灵活性与软件实现难度。
因此,本发明在兼容传统的PCIe拓扑结构下,提出一种基于自适应(autonegotiation)的、更为灵活的Device间两两互联实现方法,实现了在兼容PCIe拓扑结构如RC/EP互联结构下Device间的互联,也支持非常规RC/RC与EP/EP互联拓扑结构下Device间的互联。
图2是是本发明提供的兼容PCIe结构的设备间互联方法的流程示意图之一,如图所示。一种兼容PCIe结构的设备间互联方法,应用于异构系统,所述异构系统包括主机和与所述主机相接的多个设备,所述互联方法包括:
步骤200,第一设备根据接收到第二设备或主机发来的预设控制字符对自身的数据通路的类型进行改变。
步骤201,改变类型后的第一设备与所述第二设备实现互联;
其中,所述预设控制字符为符合PCIe通信协议并能控制所述第一设备对其自身的数据通路的类型进行改变的指令,所述数据通路的类型为根复合体RC类型或端点设备EP类型。
图2a是本发明提供的兼容PCIe结构的设备间互联方法的流程示意图之二,如图所示。所述第一设备根据接收到第二设备发来的预设控制指令对自身的数据通路的类型进行改变,包括:
步骤210,第一设备将包含第一预设链接编码的训练字符发送至第二设备。
可选的,所述第一预设链接编码可设为PAD link number字符。
步骤220,所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换。
步骤230,所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备间互联。
可选的,所述第二预设链接编码可设为non-PAD link number。
其中,第一预设链接编码用来定义所述第一设备的类型,第二预设链接编码用来定义所述第二设备的类型;所述数据通路的类型是RC类型或EP类型。
需要说明的是,所述第一设备与所述第二设备均具有一个或多个数据通路。
可选的,所述第一预设链接编码可定义为数据通路的类型为EP类型,所述第二预设链接编码可定义为数据通路的类型为RC类型。
由此可知,本发明所述一种兼容PCIe结构的设备间互联方法,可应用于异构计算系统,适合CPU与多Device的架构,尤其是多Device间的互联,能够降低异构计算系统中多Device互联的数据传输延迟,拓展多Device互联的数据带宽,进一步消除异构计算系统瓶颈。
具体的,本发明所描述的Device两两互联结构,可避免引入多个switch(交换机)增加系统复杂度与成本,并降低了系统成本。
具体的,在兼容完整PCIe拓扑结构和规则下,通过引入Host programing(主机编程)方式可降低了实现多Device间互联实现的复杂度,平衡软件硬件之间的实现难度。
具体的,本发明所述兼容PCIe结构的设备间互联系统,无需预先确定各Device的ID与位置信息,各Device连接完全依靠硬件自适应,简化软件实现难度,大大增强系统灵活度。
以下将针对本发明所述兼容PCIe结构的设备间互联方法的具体结构进行说明。
图3是本发明提供的PCIe互联拓扑结构的转换示意图,如图所示。在非常规的RC/RC或EP/EP互联结构下,两两互联的Device通过在link(链接)建立过程中实现自适应(autonegotiation)机制使得RC/RC结构之间,EP/EP结构之间进行自适应Device Type(设备类型)转换。如图300所示,最终实现非常规的RC/RC,EP/EP互联结构转换成RC/EP结构、EP/RC结构,从而符合PCIe框架下的所有规则要求。
具体的,就是将301的RC/RC的结构,通过自适应设备类型切换转化为302的RC/EP的结构或303的EP/RC的结构进行Device间的互联。因为按照现有PCIe架构的规则,一般RC/RC的结构和EP/EP的结构是不能互联的。
图4是本发明提供的PCIe链路建立的示意图,如图所示。在传统PCIe的link(链路)建立过程中,两两互联Device(比如RC 409和EP 408)通过识别对端Training symbol(训练字符)的PAD link number(第一预设链接编码)来定义自身type类型。Lane_a0表示RC 409侧的一个数据通路,Lane_b0表示EP 408侧的一个数据通路。
一般的在传统PCIe拓扑结构下,RC 409首先通过数据通路的发送端TX 401发送包含link number(链接编码)的training symbol(训练字符)至对端EP 408,告知对端EP408RC409的link number,EP 408通过数据通路的接收端RX 410被动接收所述trainingsymbol(训练字符)。
EP 408根据RC 409发来的link number,配置自身的link number,并通过数据通路的发送端TX 411向RC409进行反馈,即向RC409发送将包含自身配置的link number的training symbol,告知RC 409EP408自身配置的Link number后,RC 409通过数据通路的接收端RX412被动接收EP 408发来的Link number并确认此数据,初步完成RC 409与EP 408在PCIe拓扑结构下的互联。
图5是本发明提供的RC/RC结构的设备间互联的示意图,如图所示。在RC 509和RC508互联结构下,RC 508使得最先接收到连续的含有第二预设链接编码(non-PAD linknumber)的training symbol(训练字符)502的数据通路lane_b1 501类型切换为EP属性的数据通路类型。
直至RC 508所在一侧的所有RC属性的数据通路(如lane_b1 701、lane_b0 703、lane_b2 704、lane_b3 705)全部转为EP属性的数据通路类型,即Device type(设备类型)由RC类型转为EP类型切换完毕后,经过预先设定的Training(训练)状态机的Timeout定时时间,重新进行PCIe Link(链路)建立,PCIe Link建立如图4所示。
由此经过Auto negotiation(自适应)机制后,两两Device(RC 509/RC 508)由RC/RC互联结构,转变为RC/EP互联的拓扑结构,即将RC 508的RC type切换为EP type。
需要说明的是,为了识别RC和EP,本发明实施例对RC类型定义发送的是non-PADlink number链接编码,对EP类型定义发送的是PAD link number链接编码,但本发明不限于此,任何有利于识别RC和EP类型的定义方式都可以。
图6是本发明提供的EP/EP结构的设备间互联的示意图,如图所示。在EP 609和EP608互联结构下,EP 608通过数据通路602向EP 609发送包含有PAD link number的training symbol(训练字符)。
EP 609将最先接收到连续的包含有PAD link number的training symbol的数据通路Lane_a2 604的类型切换为RC类型,并把此条数据通路所在同一侧的所有数据通路(如Lane_a0 603、Lane_a1 601、Lane_a3 605)的link number设置为default(默认)值,该default值可由寄存器控制,为上电初始化时可配。然后,EP 609通过已切换为RC类型的数据通路606发送包含non-PAD link number的Training symbol 606到EP 608的数据通路Lane_b2 607。
而与此同时EP 609尚未收到EP 608发送的连续PAD link number的其他数据通路(比如Lane_a0 603、Lane_a1 601、Lane_a3 605),则EP 608继续保持向EP 609的其他数据通路发送PAD link number,其他数据通路并保持自身EP属性的数据通路类型,直到其他数据通路也收到EP 608发送的连续PAD link number,并将其数据通路类型由EP类型切换为RC类型为止。
需要说明是是,上述数据通路类型的切换基于预先设置的Timeout定时机制,保持已切换的Device type(设备类型),重新进行PCIe link建立。
以下针对上述所述Timeout定时机制作进一步说明,如下:
Timeout定时机制的引入还可进一步防止link间的dead lock。HOST通过监测Device中的link up状态寄存器,确认Device间的对等互联链接是否成功,若在一定时间内某条对等互联link中的link up状态始终为False,则认为auto negotiation在现有的状态下陷入dead lock。需要设置新的time out value(定时值)并重新尝试auto negotiation建立对等互联链接。其中通过引入PCIe BDF number(即Bus number总线编码,Devicenumber设备编码,Function number功能编码),可以使Host方便迅速的对系统中各个Device的位置和状态信息进行定位监测。实时改变或者检测异构系统中各Device间的对等互联状态控制寄存器。
Host首先根据某种算法生成数值不等且符合auto negotiation规则的随机不等数值。而后Host可通过枚举后的BDF number(Bus number,Device number,Functionnumber)在系统应用层面对多个Device进行坐标定位,加以详细区分Device 0、Device1、Device2、Device3。并依次对不同BDF number的Device设置预先生成的随机time outvalue。如图6a所示,Host读写控制命令通过外部中枢控制总线618a,到达Device内外部总线控制单元612a,而后通过Device内部数据控制总线把所接收到的随机time out value转发到各对等互联单元EP 616a、EP 614b、615c中的Tr定时器。Tr定时器结合host所设置的time out value与Device内SMU(System manage unit,系统管理单元)的PLL(锁相环)生成的Free running clock(自由运行时钟),进行计时操作,进而完成整个Time out机制。
因此,本发明通过引入Auto negotiation(自适应)机制可以实现Device间对等互联,并兼容符合PCIe link建立规则与拓扑结构。此外timeout定时机制既防止RC/RC,EP/EP之间在Auto negotiation中的deadlock(死锁),也能够间接控制EP/RC的类型切换。
本发明另一实施例还提供了一种兼容PCIe结构的设备间互联方法,即通过Host软件层以自上而下的结构,直接控制建立对等互联链路的方法。
通常的,在PCIe传统拓扑结构下,如图7b所示,Host RC 302经过Switch 304亦或直接通过318a/318b/318c/318d外部中枢控制总线与各Device0/Device1/Device2/Device3相连,并在建立传输链路后,Host RC对每个Device进行枚举,从而进行分配BFD(Bus,Function,Device)Number,即预设总线功能设备编码。由此确定各个Device在整个异构系统中坐标位置。系统软件层可通过此BFD number识别系统中存在的各个Device,整体控制异构系统中,任意对等互联控制单元属性。
例如,Device0/Device1/Device2/Device3为完全等价功能相同的多个Device。其初始对等互联控制单元默认属性(或称“类型”)为EP,软件层通过读取各Device所分配BFDnumber可控制Device0306a中的对等互联单元313a/314a/315a保持EP属性不变,而对于与313a/314a/315a对等互联单元相连的控制单元313b/314d/315c,Host可根据某种规则或算法直接控制各个Device内部寄存器控制的方式改变其属性,使之切换为RC。从而建立符合PCIe拓扑结构的RC/EP,EP/RC对等互联总线数据链路。
图7a是本发明一实施例提供的兼容PCIe结构的设备间互联系统的结构示意图,如图所示。由CPU201与多设备Device(Device0206~Device3 209)构成的异构计算系统700a,Host CPU 201通过RC202与系统内存203连接,多个计算密集型设备Device0 206,Device2207,Device1 208,Device3 209进行Host(主机)与Deivce(设备)互联。
在Host CPU 201的数据通路中,各Device(设备)遵循PCIe协议,作为各个Endpoint(EP)210存在于PCIe拓扑结构中,接收传输与Host CPU 201之间各种数据类型,如Memory,Configure,Message,IO等数据类型。
对于Device与Device间的数据传输通路,本发明通过在Device与Device之间引入独立数据通路来完善多设备Device互联结构,比如通过加入Device0与Device2数据通路211、Device0与Device1数据通路214,Device0与Device3数据通路216。
基于此种互联结构下任意两两相连Device与Host CPU数据通路的区别就是具有独立数据传输通路,分离Host CPU数据与与其他Device数据。在计算密集操作,比如某种深度学习训练过程中,为完善分支预测或模型收敛,Device0 206~Device1 208需要大量数据互传共享,而本发明可实现Device0 206~Device1 208之间的两两互联,通过分离的数据通路(如数据通路211~216)可提供更加高效、低延迟的数据传输读写机制,从而保证数据即时传输特性,进一步增强高性能计算协处理器的处理速度。
图7b是本发明另一实施例提供的兼容PCIe结构的设备间互联系统的结构示意图,如图所示。在完整的多核CPU(如CPU core0 301a、CPU core1 301b、CPU core2 301c、CPUcore3 301d)与多Device(如Device0 306a、Device1 306c、Device2 306b、Device3 306d)的异构计算系统700b中,Host CPU中多个CPU core 301a、CPU core1 301b、CPU core2301c、CPU core3 301d分别通过RC 302中的Host Memory Controller(简称HMC)303访问系统内存305。
多个计算密集型Device0 306a、Device1 306c、Device2 306b、Device3 306d,可直接通过外部中枢控制总线(318a~318c)或间接通过Switch(304a、304b)后实现CPU与Device(设备)间数据交换管理。
各Device(Device0 306a、Device1 306c、Device2 306b、Device3306d)中的外部总线控制单元为EP类型,即EP 310a、EP 310b、EP310c、EP 310d,受Host CPU中RC 302的控制,Host RC 302主导完成PCIe链路建立、EP配置枚举、中断向量分配接收以及电源功耗管理等一系列控制任务。
外部中枢控制总线318(318a、318b、318c、318d)初始化完毕后,Host与Device间的数据由此总线进行交换。如Host CPU 301(CPU core 301a、CPU core1 301b、CPU core2301c、CPU core3 301d)可读写Device 306(Device0 306a、Device1 306c、Device2 306b、Device3306d)的存储单元312(312a、312b、312c、312d)中的数据,或Device中某client的寄存器如存储控制器Memory Controller 311a。Device可经由外部中枢控制总线318(318a、318b、318c、318d)读写搬运System Memory(系统内存)305中的数据。
外部中枢控制总318(318a、318b、318c、318d)线为Host与Device(Device0 306a、Device1 306c、Device2 306b、Device3 306d)之间专用总线,所有Host与Device之间的数据都由此总线进行传输。专用的外部中枢控制总318避免了Device与Device,Device与Host之间数据通路混用和互相占用带宽,从而降低异构计算系统性能的缺陷。
Device 306(如Device0 306a、Device1 306c、Device2 306b、Device3306d)中外部中枢总线控制单元EP 310(如EP 310a、EP 310b、EP 310c、EP 310d)受控于Host中的RC302。EP 310(如EP 310a、EP 310b、EP 310c、EP 310d)接收并转译Host CPU数据寄存器读写控制指令到达Device内部高速片上总线316(如316a、316b、316c、316d)。层次化的高速片上总线路由转译后的Host CPU读写命令到Device片内memory controller(存储控制器)311(如311a、311b、311c、311d)。经由memory controller 311读写片内存储单元312。并反馈回Host一端。
Device 306(如Device0 306a、Device1 306c、Device2 306b、Device3306d)中对等互联控制单元EP(313/314/315)通过auto negotiation(自适应)机制与对端控制单元进行PCIe Link建立和数据读写。对等互联总线实现两两相连Device之间物理数据通路,任意相连device之间可通过此总线进行数据交换。例如Device 306a数据读写控制命令可经由对等互联总线数据通路317e到达对端Device 306d。EP 314d接收转译来自Device 306a的数据读写控制指令,经由其内部高速片上总线319d路由到存储控制单元311d。存储控制单元311d根据转译的读写控制指令读写片内存储单元312d,并返回数据给Device 306a。
因此,基于本发明所述兼容PCIe结构的设备间互联的方法,可实现设备间(如Device0 306a、Device1 306c、Device2 306b、Device3306d)的两两互联,并且基于互联的基础下,建立PCIe链路连接,这样设备间就可进行读写数据,能够降低异构计算系统中多Device互联的数据传输延迟,拓展多Device互联的数据带宽,进一步消除异构计算系统瓶颈。
图8是本发明再一实施例提供的兼容PCIe结构的设备间互联方法的流程图,如图所示,本发明所述多设备(Device)间自适应对等连接建立,包括如下步骤:
步骤801,Host CPU与各Device之间进行Host path(主机路径)链路初始化,包括进行建立物理链路初始化。
步骤802,Host(主机)与各Device之间进行更高层的数据传输层链路建立连接并完成枚举过程,从而打通整个Host path链路,随后Host与各个Device之间可进行数据交互。
步骤803,CPU通过Host path配置各Device中的对等互联控制单元控制器的寄存器。
步骤804,各Device之间开始初步尝试进行物理层链路连接。
步骤805,各Device之间在链路建立过程中进行auto negotiation(自适应)互联。
步骤806,根据auto negotiation(自适应)互联的结果,各device中对等互联控制单元自动进行device type(设备类型)的切换。
步骤807,各Device根据切换后的device type(设备类型)重新完成PCIe链路建立的连接。
步骤808,自适应对等互联链路连接完成,各Device间可通过此链路发送接收数据。
下面对本发明提供的一种兼容PCIe结构的多设备互联系统进行描述,下文描述的兼容PCIe结构的多设备互联系统与上文描述的兼容PCIe结构的多设备互联方法可相互对应参照。
本发明提供的一种兼容PCIe结构的设备间互联系统,包括CPU、根复合体RC、存储器、交换机以及多个设备,CPU通过根复合体分别与存储器、交换机以及多个设备连接,所述设备包括第一设备和第二设备,
所述第一设备将包含第一预设链接编码的训练字符发送至所述第二设备;所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备的互联;
其中,第一预设链接编码用来定义所述第一设备的类型,第二预设链接编码用来定义所述第二设备的类型,所述数据通路的类型是根复合RC类型或端点设备EP类型。
本发明还提供的一种兼容PCIe结构的设备间互联芯片,应用于异构计算系统,所述互联芯片包括第一芯片和第二芯片,其中:
第一芯片将包含PAD link number的训练字符发送至第二芯片;
所述第二芯片将最先接收到连续的包含PAD link number的训练字符的数据通路的类型进行切换;
所述第二芯片通过类型切换后的所述数据通路将包含non-PAD link number的训练字符发送至所述第一芯片,以实现芯片间互联;
其中,PAD link number用来定义所述第一芯片的类型,non-PAD link number用来定义所述第二芯片的类型;所述第一芯片和所述第二芯片均包含多个数据通路,所述数据通路的类型是RC类型或EP类型。
可选的,所述第一芯片和所述第二芯片可以是GPU芯片。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行兼容PCIe结构的多设备互联方法的步骤。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的兼容PCIe结构的多设备互联方法的步骤。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的兼容PCIe结构的多设备互联方法的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种兼容PCIe结构的设备间互联方法,应用于异构系统,所述异构系统包括主机和与所述主机相接的多个设备,其特征在于,所述互联方法包括:
第一设备将包含第一预设链接编码的训练字符发送至第二设备;
所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;
所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备的互联;
其中,第一预设链接编码用来定义所述第一设备的数据通路的类型,第二预设链接编码用来定义所述第二设备的数据通路的类型,所述数据通路的类型是根复合体RC类型或端点设备EP类型。
2.根据权利要求1所述的方法,其特征在于,所述第二设备通过类型转换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备之后,包括:
当所述第二设备的剩余数据通路收到连续的包含第一预设链接编码的训练字符时,再将所述第二设备的剩余数据通路的类型均按照所述数据通路的类型进行切换。
3.根据权利要求1所述的方法,其特征在于,所述第一设备将包含第一预设链接编码的训练字符发送至第二设备之前,包括:
对所述第一设备和所述第二设备设置timeout定时机制,以保证所述第二设备的所有数据通路经过类型切换后重新进行PCIe链路建立。
4.根据权利要求3所述的方法,其特征在于,所述timeout定时机制工作的步骤,包括:
主机通过检测设备中的链接状态寄存器确认设备间的对等互联链接是否成功;
若在预设时间内,所述链接状态一直为False状态,则认为所述设备间的对等互联链接不成功;
重新设置定时值,并重新尝试建立设备间的对等互联链接;
主机通过预设总线功能设备编码定位监测各设备间的位置和状态信息,并实时改变或监测各设备间的链接状态寄存器。
5.根据权利要求1所述的方法,其特征在于,在所述第一设备为EP类型和所述第二设备为EP类型结构下,所述互联方法包括:
第一设备将包含第一预设链接编码的训练字符发送至第二设备;
所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型由EP类型切换为RC类型;
所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备与所述第二设备的互联。
6.根据权利要求2所述的方法,其特征在于,在所述第一设备为RC类型和所述第二设备为EP类型结构下,或在所述第一设备为EP类型和所述第二设备为RC类型结构下,重新进行PCIe链路建立,包括:
所述第一设备通过数据通路的发送端将包含第一链接编码的训练字符发送至所述第二设备;
所述第二设备接收到所述训练字符后,根据所述第一链接编码识别所述第一设备的类型后配置自身的第二链接编码;
所述第二设备通过数据通路的发送端将包含所述第二链接编码的训练字符发送至所述第一设备,以将所述第二链接编码告知所述第一设备;
所述第一设备接收到所述训练字符并确认所述第二链接编码后,完成所述第一设备与所述第二设备的PCIe链路建立。
7.根据权利要求1所述的方法,其特征在于,所述第一设备根据接收到主机发来的预设控制指令对自身的数据通路的类型进行改变,包括:
主机为每个设备分配总线功能设备编码以确定各个设备在整个机构系统中的坐标位置;
根据预设总线功能设备编码,主机实现控制对等互联设备的类型的切换。
8.一种兼容PCIe结构的设备间互联系统,包括CPU、根复合体RC、存储器、交换机以及多个设备,CPU通过根复合体分别与存储器、交换机以及多个设备连接,所述设备包括第一设备和第二设备,其特征在于,
所述第一设备将包含第一预设链接编码的训练字符发送至所述第二设备;所述第二设备将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;所述第二设备通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一设备,以实现所述第一设备和所述第二设备的互联;
其中,第一预设链接编码用来定义所述第一设备的类型,第二预设链接编码用来定义所述第二设备的类型,所述数据通路的类型是根复合RC类型或端点设备EP类型。
9.一种兼容PCIe结构的设备间互联芯片,应用于异构计算系统,其特征在于,所述互联芯片包括第一芯片和第二芯片,其中:
所述第一芯片将包含第一预设链接编码的训练字符发送至所述第二芯片;
所述第二芯片将最先接收到连续的包含第一预设链接编码的训练字符的数据通路的类型进行切换;
所述第二芯片通过类型切换后的所述数据通路将包含第二预设链接编码的训练字符发送至所述第一芯片,以实现所述第一芯片与所述第二芯片的互联;
其中,第一预设链接编码用来定义所述第一芯片的数据通路的类型,第二预设链接编码用来定义所述第二芯片的数据通路的类型,所述数据通路的类型是根复合体RC类型或端点设备EP类型。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述兼容PCIe结构的设备间互联方法的步骤。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述兼容PCIe结构的设备间互联方法的步骤。
CN202011379794.9A 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备 Active CN112416834B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211160597.7A CN115374038A (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备
CN202011379794.9A CN112416834B (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011379794.9A CN112416834B (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211160597.7A Division CN115374038A (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备

Publications (2)

Publication Number Publication Date
CN112416834A CN112416834A (zh) 2021-02-26
CN112416834B true CN112416834B (zh) 2022-11-04

Family

ID=74829254

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011379794.9A Active CN112416834B (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备
CN202211160597.7A Pending CN115374038A (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211160597.7A Pending CN115374038A (zh) 2020-11-30 2020-11-30 一种兼容PCIe结构的设备间互联方法及相关设备

Country Status (1)

Country Link
CN (2) CN112416834B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826907B (zh) * 2022-04-22 2023-08-11 西安广和通无线通信有限公司 PCIe的RC和EP模式切换方法、装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248814A (ja) * 2010-05-31 2011-12-08 Nec Corp PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス
CN109923531A (zh) * 2016-11-09 2019-06-21 高通股份有限公司 双模高速外围组件互连(PCIe)设备中的链路角色确定

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990467B2 (en) * 2010-10-12 2015-03-24 Canon Kabushiki Kaisha Printing apparatus and operation setting method thereof
US9600431B2 (en) * 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248814A (ja) * 2010-05-31 2011-12-08 Nec Corp PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス
CN109923531A (zh) * 2016-11-09 2019-06-21 高通股份有限公司 双模高速外围组件互连(PCIe)设备中的链路角色确定

Also Published As

Publication number Publication date
CN115374038A (zh) 2022-11-22
CN112416834A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US11392417B2 (en) Ultraconverged systems having multiple availability zones
US8127059B1 (en) Apparatus for interconnecting hosts with storage devices
US11042496B1 (en) Peer-to-peer PCI topology
US11010321B2 (en) Ad-hoc sensing switched data circuit for connecting network hosts and peripherals
US7254603B2 (en) On-chip inter-network performance optimization using configurable performance parameters
US10698856B1 (en) Alternative protocol selection
CN111488308B (zh) 一种支持不同架构多处理器扩展的系统和方法
US8725919B1 (en) Device configuration for multiprocessor systems
WO2009032844A2 (en) Sharing legacy devices in a multi-host environment
US20030208566A1 (en) Composing on-chip interconnects with configurable interfaces
EP4124932A1 (en) System, apparatus and methods for power communications according to a cxl.power protocol
CN112416834B (zh) 一种兼容PCIe结构的设备间互联方法及相关设备
CN107209725A (zh) 处理写请求的方法、处理器和计算机
EP3285173A1 (en) Cpu interconnecting apparatus, system and control method, control apparatus therefor
CN114445260B (zh) 基于fpga的分布式gpu通信的方法及装置
KR20230033090A (ko) 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법
US7389363B2 (en) System and method for flexible multiple protocols
CN117687956A (zh) 多加速卡异构服务器及资源链路重构方法
CN112202600B (zh) 一种多节点单主机与多主机通信自动切换装置及方法
CN111427806A (zh) 一种双核amp系统共用串口的方法、存储介质及智能终端
CN112148663A (zh) 一种数据交换芯片及服务器
KR102692866B1 (ko) 컴퓨팅 자원 분할 운용 방법 및 장치
CN112131157B (zh) 一种使用usb接口实现ipmi功能的方法、usb接口和服务器
CN113132138B (zh) 一种基于虚拟网络的分布式训练网络系统及通信方法
US11422824B2 (en) Computer activation 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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Patentee after: Shanghai Bi Ren Technology Co.,Ltd.

Country or region after: China

Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd.

Country or region before: China