CN112131174A - 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质 - Google Patents

支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质 Download PDF

Info

Publication number
CN112131174A
CN112131174A CN201910554661.1A CN201910554661A CN112131174A CN 112131174 A CN112131174 A CN 112131174A CN 201910554661 A CN201910554661 A CN 201910554661A CN 112131174 A CN112131174 A CN 112131174A
Authority
CN
China
Prior art keywords
chips
chip
inter
connection
chip communication
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.)
Pending
Application number
CN201910554661.1A
Other languages
English (en)
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.)
Kunlun core (Beijing) Technology Co.,Ltd.
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910554661.1A priority Critical patent/CN112131174A/zh
Priority to EP19214946.6A priority patent/EP3758317B1/en
Priority to US16/711,196 priority patent/US11163714B2/en
Priority to JP2020002569A priority patent/JP7317727B2/ja
Priority to KR1020200003772A priority patent/KR102350379B1/ko
Publication of CN112131174A publication Critical patent/CN112131174A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7835Architectures of general purpose stored program computers comprising a single central processing unit without memory on more than one IC chip
    • 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/4027Coupling between buses using bus bridges
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本公开的实施例涉及一种确定多个芯片之间的连接关系的方法、装置、电子设备和计算机可读存储介质。该方法可以包括确定由主机管理的多个芯片的身份信息,多个芯片通过各自的用于片间通信的片间通信接口相连接。该方法还可以包括使多个芯片中的一个或多个芯片获取与一个或多个芯片的片间通信接口连接的其他芯片的身份信息。该方法可以进一步包括经由一个或多个芯片的用于与主机通信的管理接口读取该其他芯片的身份信息,以确定多个芯片之间的连接关系。本公开的技术方案通过各芯片的片间通信接口来确定与之连接的芯片,从而可以在主机侧创建并维护该芯片网络的物理连接矩阵,进而为芯片网络连接的故障检测以及芯片网络拓扑的动态配置提供便利。

Description

支持在多个芯片之间通信的方法、装置、电子设备和计算机存 储介质
技术领域
本公开的实施例主要涉及计算机领域,并且更具体地,涉及支持在多个芯片之间通信的方法、装置、电子设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,人工智能应用对算力的需求越来越高。然而,由于工艺和功耗等限制,单个芯片(诸如人工智能芯片、GPU等)的算力已不能满足对处理速度的需求。因此,需要将多个芯片相互连接以组成芯片网络,来满足人工智能应用的需求。因此,芯片间的通信(即片间通信)存在优化的必要,以实现高带宽和低延时。
此外,人工智能应用的不同算子和算法也有不同的带宽和延时需求。不同的网络拓扑结构,具有不同的带宽和延时。如何支持不同的网络拓扑,尤其是动态拓扑改变,也是片间通信的另一挑战。
发明内容
根据本公开的示例实施例,提供了一种支持在多个芯片之间通信的方案。
在本公开的第一方面中,提供了一种支持在多个芯片之间通信的方法。该方法可以包括确定由主机管理的多个芯片的身份信息,多个芯片通过各自的用于片间通信的片间通信接口相连接。该方法还可以包括使多个芯片中的一个或多个芯片获取与一个或多个芯片的片间通信接口连接的其他芯片的身份信息。该方法可以进一步包括经由一个或多个芯片的用于与主机通信的管理接口获取其他芯片的身份信息,以确定多个芯片之间的连接关系。
在本公开的第二方面中,提供了一种支持在多个芯片之间通信的装置,包括:身份信息确定模块,被配置为确定由主机管理的多个芯片的身份信息,多个芯片通过各自的用于片间通信的片间通信接口相连接;芯片指令模块,被配置为使多个芯片中的一个或多个芯片获取与一个或多个芯片的片间通信接口连接的其他芯片的身份信息;以及连接关系确定模块,被配置为经由一个或多个芯片的用于与主机通信的管理接口获取其他芯片的身份信息,以确定多个芯片之间的连接关系。
在本公开的第三方面中,提供了一种设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1A示出了根据本公开的多个实施例的示例芯片的接口配置的示意图;
图1B示出了本公开的多个实施例能够在其中实现的示例芯片网络的示意图;
图2示出了根据本公开的实施例的支持在多个芯片之间通信的过程的流程图;
图3示出了根据本公开的实施例的用于获取连接的其他芯片的身份信息的过程的流程图;
图4示出了根据本公开的实施例的支持在多个芯片之间通信的装置的示意框图;以及
图5示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文提及的,亟需一种支持在多个芯片之间通信的方法,来快速高效且低成本地获取芯片网络的连接关系,从而支持对芯片网络的拓扑结构的动态改变,进而根据需求改变拓扑结构以便增加带宽并且降低延时。传统的芯片网络中的片间通信技术主要用于解决芯片网络的固定拓扑结构,因此芯片网络的拓扑结构不灵活,且时常面临带宽不足的问题。
根据本公开的实施例,提出了一种支持在多个芯片之间通信的方案。在该方案中,可以由诸如中央处理器(CPU)的主机枚举其管理的诸如人工智能芯片的多个芯片,并对这些芯片进行编号。之后,由CPU命令各芯片分别执行连接感知操作。作为示例,芯片可以读取其各端口的状态信息,当状态信息为激活时,配置预定的地址范围,并对该地址范围内的特定地址发送测试数据,并等待返回的响应数据。在接收到该响应数据之后,从该响应数据中获取与该端口通信的其他芯片的编号。CPU汇总各芯片收集到的连接信息,从而可以任意芯片网络的物理连接信息。当获取了芯片网络的物理连接信息之后,就可以根据业务需求来动态地配置各芯片之间的逻辑连接关系,从而构建所需的拓扑结构。
为了更为详尽地描述本公开的多个实施例中的芯片网络的拓扑结构及其构建过程,首先需要对芯片网络进行简要说明。图1A示出了根据本公开的多个实施例的示例芯片100的接口配置的示意图。如
图1A所示,芯片100包括多个接口,例如,管理接口110以及片间通信接口C0、C1、C2和C3。管理接口110用于与管理芯片100的诸如CPU的主机进行通信,通常用于接收来自主机的配置信息以及发送芯片100的连接信息。作为示例,管理接口110可以是PCIe接口。此外,片间通信接口C0、C1、C2和C3均用于与主机管理下的其他芯片进行片间通信。作为示例,片间通信接口C0、C1、C2和C3可以是CCIX(缓存一致互联协议)接口。
所谓芯片网络,是指多个芯片通过片间通信接口之间的直接物理连接构成的网络。图1B示出了本公开的多个实施例能够在其中实现的示例芯片网络100’的示意图。如图1B所示,每个方框均表示一个芯片。每个芯片均具有一个在芯片网络100’中唯一的芯片身份信息,例如,可以使用各芯片的参考标号101、102、103、104、105、106、107和108来表示各芯片的身份信息。应理解,有关身份信息的具体示例均是示意性的,并不用于限制的目的,并且各芯片的身份信息并不限于使用数字来表示。
芯片网络100’中的任意一个芯片均可以与一个或多个其他芯片有直接物理连接。需要说明的是,芯片网络100’可以由集成在一块电路板上的多个芯片构成,也可以由多个由芯片控制的设备内的芯片通过数据传输线路连接构成。因此,集成在一块电路板上的两个芯片的引脚(诸如图1中的片间通信接口C0、C1、C2和C3)直接连接,或者,两个设备中的芯片的接口(诸如图1中的片间通信接口C0、C1、C2和C3)通过数据传输线路连接。也就是说,两个芯片之间的连接,可以理解成两个芯片之间通过对应的接口相互连接。例如,芯片101向芯片102传输信息,具体是,芯片101通过其自身的与芯片102连接的接口C1向芯片102发送信息。
此外,应理解,为了着重描述片间通信技术的细节,本公开在图1B中并未示出各芯片的管理接口110与诸如CPU的主机之间的通信过程。作为示例,芯片101、102、103和104可以经由诸如PCIe接口的管理接口110与PCIe开关模块(未示出)进行通信,进而由PCIe开关模块与主机进行通信。类似地,芯片105、106、107和108也可以经由诸如PCIe接口的管理接口110与另一PCIe开关模块(未示出)进行通信,进而由该另一PCIe开关模块与主机进行通信。备选地或附加地,芯片101、102、103、104、105、106、107和108还可以通过各自的管理接口110直接与主机进行通信。
上文描述的技术方案中的芯片100和芯片网络100’仅用于示例,而非限制本发明。应理解,芯片的配置,尤其是芯片接口的配置可以是多种多样的,故芯片网络的拓扑接口可以更为复杂。因此,在不背离本公开保护范围的前提下,可以对芯片100和芯片网络100’进行各种修改。为了更清楚地解释上述方案的原理,下文将参考图2来更详细描述确定多个芯片之间的连接关系的过程。
图2示出了根据本公开的实施例的支持在多个芯片之间通信的过程200的流程图。为了方便讨论,将结合图1A和图1B来描述过程200。
在210,可以确定由主机管理的多个芯片的身份信息,该多个芯片通过各自的用于片间通信的片间通信接口相连接。作为示例,主机可以枚举其管理的所有芯片以确定这些芯片的身份信息,例如,图1B中的芯片101、102、103、104、105、106、107和108,并且这些芯片可以通过各自的片间通信接口C0、C1、C2和C3进行连接,已形成芯片网络100’。
在220,可以向各芯片下发感知指令,以使这些芯片中的一个或多个芯片获取与该一个或多个芯片的片间通信接口连接的其他芯片的身份信息。作为示例,主机可以向其管理的所有芯片发送指令,以使所有芯片均执行获取与其相连的其他芯片的身份信息的操作。备选地或附加地,主机还可以仅相其管理的处于工作状态的芯片发送上述感知指令。由于诸如人工智能芯片的芯片网络的特殊性,各芯片之间的连接关系通常极为复杂,通过各芯片从其片间通信接口着手,通过发送测试信号和接收响应信号的方式,可以高效地获取芯片网络的详细连接关系。并且由于该感知操作是从各芯片的片间通信接口发起的,故无需检测与该片间通信接口连接的芯片的具体接口(因为该接口也会进行同样的感知操作)。
在某些实施例中,可以采用更为完备且自动化的信息传输过程来获取连接的其他芯片的身份信息。图3示出了根据本公开的实施例的用于获取连接的其他芯片的身份信息的过程300的流程图。
在310,可以由一个或多个芯片获取其片间通信接口的状态信息。作为示例,各芯片内的微控制单元MCU可以读取片间通信接口C0、C1、C2和C3的状态。
在320,可以判断状态信息是否为激活。需要说明的是,如果片间通信接口处于激活状态,则表明该片间通信接口与其他芯片的片接通信接口具有物理连接;而如果片间通信接口处于未激活状态,则表明该片间通信接口与其他芯片的片接通信接口不具有物理连接。如果该片间通信接口处于未激活状态,则不对该接口进行操作。如果该片间通信接口处于激活状态,则前进至330。
在330,由该片间通信接口向与该片间通信接口连接的其他芯片发送测试数据。在某些实施例中,可以先为该片间通信接口配置预定地址范围(例如,BAR0地址),在向其他芯片的位于该预定地址范围内的地址发送测试数据。作为示例,可以向该地址发送Hello数据包,即,先发送写存储指令,且写入的数据为特定数据,例如,0xa1a1,之后再对该地址发送读存储指令。
在340,由于向特定地址发送了读存储指令,这时的芯片会等待回复,进而接收上述测试数据的响应数据。作为示例,该响应数据通常是ACK数据包,并且该响应数据中包含具有连接关系的其他芯片的身份信息。
在详细描述了一个芯片获取与其连接的其他芯片的身份信息的过程300之后,回到图2,继续讨论确定多个芯片之间的连接关系的过程200。在指示各芯片获取与其连接的其他芯片的身份信息之后,过程200进行到230。
在230,可以经由该一个或多个芯片的用于与主机通信的管理接口110获取上述其他芯片的身份信息,以确定多个芯片之间的连接关系。作为示例,当各芯片完成连接感知的操作之后,可以向主机发送中断信息,以告知主机感知操作完成。之后,主机可以通过各芯片的诸如PCIe的管理接口110读取各芯片获取的连接信息。进而,主机可以确定其管理的各芯片之间的物理连接关系。以此方式,诸如CPU的主机就可以确定其管理的各芯片之间的物理连接关系。
在某些实施例中,主机可以将经确定的各芯片之间的连接关系存储至连接矩阵。作为示例,如图1B所示,芯片101通过连接感知操作可以确定:其片间通信接口C0连接至芯片106,其片间通信接口C1连接至芯片102,其片间通信接口C2连接至芯片104,其片间通信接口C3连接至芯片103。类似地,芯片102通过连接感知操作可以确定:其片间通信接口C0连接至芯片104,其片间通信接口C1连接至芯片105,其片间通信接口C2连接至芯片103,其片间通信接口C3连接至芯片101。芯片103通过连接感知操作可以确定:其片间通信接口C0连接至芯片102,其片间通信接口C1连接至芯片108,其片间通信接口C2连接至芯片101,其片间通信接口C3连接至芯片104。以此类推,可以构建如表1所示的连接矩阵。
Figure BDA0002106525740000071
Figure BDA0002106525740000081
表1
在表1中,最顶部的行为每个芯片的四个片间通信接口的编号,最左侧的列为各芯片的身份信息(ID),其他数据是与各芯片的相应接口连接的对应的芯片的身份信息。通过构建如表1的连接矩阵,主机可以容易地获知各芯片的物理连接关系。备选地或附加地,该连接矩阵还包括这些芯片的各自的片间通信接口的状态信息和带宽信息中的至少一个。诸如CPU的主机通过确定并维护包含各种信息的连接矩阵,可以更为详尽的掌握其管理的各芯片之间的连接情况,从而为后续的动态配置芯片网络拓扑提供便利。
在某些实施例中,还可以由该一个或多个芯片的片间通信接口检测连接故障。作为示例,当检测到的连接故障可修复时,对该连接故障进行修复,并上报修复的结果。而当检测到的连接故障不可修复时,将经由该一个或多个芯片的片间通信接口传输的业务切换至另一片间通信接口,并上报该连接故障。以此方式,即便各芯片之间出现连接故障,也可以通过修复或直接转移业务的方式使芯片网络继续工作,并且可以通过向主机上报的方式为主机更新其维护的连接矩阵提供便利。
在某些实施例中,还可以根据经确定的芯片的数量枚举多个芯片的连接关系,并且根据所枚举的连接关系中的用户指定的连接关系配置这些芯片。作为示例,可以根据上述连接矩阵中记录的各芯片之间的物理连接关系来枚举可能实现的所有逻辑连接方式。例如,根据上文表1的物理连接关系,可以至少枚举出芯片的两种逻辑连接方式:101<—>104<—>103<—>102<—>105<—>108<—>107<—>106<—>101;以及101<—>102<—>104<—>107<—>105<—>106<—>108<—>103<—>101。进而可以从中选择一种逻辑连接方式来执行具体的计算业务。
在本公开的上述实施例中,主机可以是中央处理器CPU,并且芯片可以是系统级芯片SoC。
与传统技术相比,本公开的方案通过各芯片的片间通信接口来确定与之连接的芯片,从而可以在CPU侧创建并维护该芯片网络的物理连接矩阵。这样就可以为芯片网络连接的故障检测以及芯片网络拓扑的动态配置提供便利。此外,由于可以实现各芯片的逻辑连接拓扑的灵活配置,故可以根据需求改变拓扑结构中的芯片个数以及连接方式,从而可以提高该芯片网络的带宽,并减少延时。
以上讨论了在一些示例场景下芯片之间的连接关系的示例。然而,应当理解,这些场景的描述仅为了以示例方式来解释说明本公开的实施例。取决于实际需要,在不同或类似场景下,还可以选择不同的策略。还需要注意的是,本公开的技术方案本质上不限于应用到人工智能芯片领域,本公开的技术方案在应用于需要多芯片协同处理海量业务的其他领域时同样可以具备上文提到的各种优点。
图4示出了根据本公开的实施例的支持在多个芯片之间通信的装置400的示意框图。如图4所示,装置400包括身份信息确定模块410,被配置为确定由主机管理的多个芯片的身份信息,该多个芯片通过各自的用于片间通信的片间通信接口相连接;芯片指令模块420,被配置为使该多个芯片中的一个或多个芯片获取与该一个或多个芯片的片间通信接口连接的其他芯片的身份信息;以及连接关系确定模块430,被配置为经由该一个或多个芯片的用于与主机通信的管理接口110获取上述其他芯片的身份信息,以确定该多个芯片之间的连接关系。
在一些实施例中,芯片指令模块420可以进一步包括:状态信息读取模块,被配置为获取该一个或多个芯片的片间通信接口的状态信息;测试数据发送模块,被配置为响应于状态信息为激活,由该一个或多个芯片的片间通信接口向多个芯片中的与该片间通信接口连接的其他芯片发送测试数据;以及响应数据接收模块,被配置为接收测试数据的响应数据,该响应数据包括上述其他芯片的身份信息。
在一些实施例中,测试数据发送模块可以进一步包括:地址范围配置模块,被配置为为该一个或多个芯片的片间通信接口配置预定地址范围;以及发送子模块,被配置为向其他芯片的位于预定地址范围内的地址发送测试数据。
在一些实施例中,装置400还可以包括:连接关系存储模块,被配置为将经确定的多个芯片之间的连接关系存储至连接矩阵,连接矩阵还可以包括以下至少一项:多个芯片的各自的片间通信接口的状态信息;以及带宽信息。
在一些实施例中,装置400还可以包括:第一故障检测模块,被配置为由该一个或多个芯片的片间通信接口检测连接故障;修复模块,被配置为响应于检测到的连接故障是可修复的,对连接故障进行修复;以及修复结果上报模块,被配置为上报修复的结果。
在一些实施例中,装置400还可以包括:第二故障检测模块,被配置为由该一个或多个芯片的片间通信接口检测连接故障;业务切换模块,被配置为响应于检测到的连接故障是不可修复的,将经由一个或多个芯片的片间通信接口传输的业务切换至附加片间通信接口;以及连接故障上报模块,被配置为上报连接故障。
在一些实施例中,装置400还可以包括:连接关系枚举模块,被配置为根据经确定的多个芯片的数量枚举多个芯片的连接关系;以及芯片配置模块,被配置为根据所枚举的连接关系中的用户指定的连接关系配置多个芯片。
在一些实施例中,上述主机可以是中央处理器CPU,并且上述多个芯片可以是系统级芯片SoC。
图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元501执行上文所描述的各个方法和处理,例如过程200或300。例如,在一些实施例中,过程200或300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU 501执行时,可以执行上文描述的过程300的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200或300。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (18)

1.一种支持在多个芯片之间通信的方法,包括:
确定由主机管理的所述多个芯片的身份信息,所述多个芯片通过各自的用于片间通信的片间通信接口相连接;
使所述多个芯片中的一个或多个芯片获取与所述一个或多个芯片的片间通信接口连接的其他芯片的身份信息;以及
经由所述一个或多个芯片的用于与所述主机通信的管理接口获取所述其他芯片的身份信息,以确定所述多个芯片之间的连接关系。
2.根据权利要求1所述的方法,其中使所述多个芯片中的所述一个或多个芯片获取所述其他芯片的身份信息包括:
获取所述一个或多个芯片的片间通信接口的状态信息;
响应于所述状态信息为激活,由所述一个或多个芯片的片间通信接口向所述多个芯片中的与所述片间通信接口连接的其他芯片发送测试数据;以及
接收所述测试数据的响应数据,所述响应数据包括所述其他芯片的身份信息。
3.根据权利要求2所述的方法,其中向所述其他芯片发送所述测试数据包括:
为所述一个或多个芯片的片间通信接口配置预定地址范围;以及
向所述其他芯片的位于所述预定地址范围内的地址发送所述测试数据。
4.根据权利要求1所述的方法,还包括:
将经确定的所述多个芯片之间的连接关系存储至连接矩阵,所述连接矩阵还包括以下至少一项:
所述多个芯片的各自的片间通信接口的状态信息;以及
带宽信息。
5.根据权利要求1所述的方法,还包括:
由所述一个或多个芯片的片间通信接口检测连接故障;
响应于检测到的所述连接故障是可修复的,对所述连接故障进行修复;以及
上报所述修复的结果。
6.根据权利要求1所述的方法,还包括:
由所述一个或多个芯片的片间通信接口检测连接故障;
响应于检测到的所述连接故障是不可修复的,将经由所述一个或多个芯片的片间通信接口传输的业务切换至附加片间通信接口;以及
上报所述连接故障。
7.根据权利要求1所述的方法,还包括:
根据经确定的所述多个芯片的数量枚举所述多个芯片的连接关系;以及
根据所枚举的连接关系中的用户指定的连接关系配置所述多个芯片。
8.根据权利要求1所述的方法,其中所述主机是中央处理器CPU,并且所述多个芯片是系统级芯片SoC。
9.一种支持在多个芯片之间通信的装置,包括:
身份信息确定模块,被配置为确定由主机管理的所述多个芯片的身份信息,所述多个芯片通过各自的用于片间通信的片间通信接口相连接;
芯片指令模块,被配置为使所述多个芯片中的一个或多个芯片获取与所述一个或多个芯片的片间通信接口连接的其他芯片的身份信息;以及
连接关系确定模块,被配置为经由所述一个或多个芯片的用于与所述主机通信的管理接口获取所述其他芯片的身份信息,以确定所述多个芯片之间的连接关系。
10.根据权利要求9所述的装置,其中所述芯片指令模块进一步包括:
状态信息读取模块,被配置为获取所述一个或多个芯片的片间通信接口的状态信息;
测试数据发送模块,被配置为响应于所述状态信息为激活,由所述一个或多个芯片的片间通信接口向所述多个芯片中的与所述片间通信接口连接的其他芯片发送测试数据;以及
响应数据接收模块,被配置为接收所述测试数据的响应数据,所述响应数据包括所述其他芯片的身份信息。
11.根据权利要求10所述的装置,其中所述测试数据发送模块进一步包括:
地址范围配置模块,被配置为为所述一个或多个芯片的片间通信接口配置预定地址范围;以及
发送子模块,被配置为向所述其他芯片的位于所述预定地址范围内的地址发送所述测试数据。
12.根据权利要求9所述的装置,还包括:
连接关系存储模块,被配置为将经确定的所述多个芯片之间的连接关系存储至连接矩阵,所述连接矩阵还包括以下至少一项:
所述多个芯片的各自的片间通信接口的状态信息;以及
带宽信息。
13.根据权利要求9所述的装置,还包括:
第一故障检测模块,被配置为由所述一个或多个芯片的片间通信接口检测连接故障;
修复模块,被配置为响应于检测到的所述连接故障是可修复的,对所述连接故障进行修复;以及
修复结果上报模块,被配置为上报所述修复的结果。
14.根据权利要求9所述的装置,还包括:
第二故障检测模块,被配置为由所述一个或多个芯片的片间通信接口检测连接故障;
业务切换模块,被配置为响应于检测到的所述连接故障是不可修复的,将经由所述一个或多个芯片的片间通信接口传输的业务切换至附加片间通信接口;以及
连接故障上报模块,被配置为上报所述连接故障。
15.根据权利要求9所述的装置,还包括:
连接关系枚举模块,被配置为根据经确定的所述多个芯片的数量枚举所述多个芯片的连接关系;以及
芯片配置模块,被配置为根据所枚举的连接关系中的用户指定的连接关系配置所述多个芯片。
16.根据权利要求9所述的装置,其中所述主机是中央处理器CPU,并且所述多个芯片是系统级芯片SoC。
17.一种电子设备,所述电子设备包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN201910554661.1A 2019-06-25 2019-06-25 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质 Pending CN112131174A (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201910554661.1A CN112131174A (zh) 2019-06-25 2019-06-25 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
EP19214946.6A EP3758317B1 (en) 2019-06-25 2019-12-10 Method, apparatus and computer readable storage medium for supporting communication among chips
US16/711,196 US11163714B2 (en) 2019-06-25 2019-12-11 Method, apparatus, electronic device and computer readable storage medium for supporting communication among chips
JP2020002569A JP7317727B2 (ja) 2019-06-25 2020-01-10 複数のチップ間の通信をサポートする方法、装置、電子機器およびコンピューター記憶媒体
KR1020200003772A KR102350379B1 (ko) 2019-06-25 2020-01-10 복수의 칩 사이의 통신 지원 방법, 장치, 전자 기기 및 컴퓨터 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910554661.1A CN112131174A (zh) 2019-06-25 2019-06-25 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质

Publications (1)

Publication Number Publication Date
CN112131174A true CN112131174A (zh) 2020-12-25

Family

ID=68848115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910554661.1A Pending CN112131174A (zh) 2019-06-25 2019-06-25 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质

Country Status (5)

Country Link
US (1) US11163714B2 (zh)
EP (1) EP3758317B1 (zh)
JP (1) JP7317727B2 (zh)
KR (1) KR102350379B1 (zh)
CN (1) CN112131174A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132168A (zh) * 2021-04-29 2021-07-16 上海阵量智能科技有限公司 一种基于PCIe的网络传输配置方法和装置
CN113570049A (zh) * 2021-07-23 2021-10-29 上海新氦类脑智能科技有限公司 多snn芯片互联的相对寻址方法、装置、设备和介质
CN114691591A (zh) * 2020-12-31 2022-07-01 中科寒武纪科技股份有限公司 片间通信的电路、方法和系统
CN115994115A (zh) * 2023-03-22 2023-04-21 成都登临科技有限公司 芯片控制方法、芯片组及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450555A (zh) * 2014-09-26 2016-03-30 杭州华为数字技术有限公司 一种片上网络系统,及片上网络通信链路的建立方法
CN107894914A (zh) * 2016-09-30 2018-04-10 华为技术有限公司 缓存一致性处理方法和装置
CN109376116A (zh) * 2019-01-16 2019-02-22 上海燧原智能科技有限公司 芯片网络的拓扑结构的构建方法及芯片节点

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231095A (ja) 1993-01-31 1994-08-19 Hitachi Ltd 多段結合網のデ−タ処理システム
US20020152060A1 (en) * 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
US6687862B1 (en) * 2000-09-15 2004-02-03 Hewlett-Packard Development Company, L.P. Apparatus and method for fast memory fault analysis
ATE408153T1 (de) * 2004-11-22 2008-09-15 Freescale Semiconductor Inc Integrierte schaltung und verfahren zum prüfen einer integrierten schaltung mit mehreren abgriffen
US8705344B2 (en) 2006-11-14 2014-04-22 Cisco Technology, Inc. Graceful failover of a principal link in a fiber-channel fabric
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
CN101964718B (zh) 2009-07-23 2015-09-16 中兴通讯股份有限公司 以太网双归链路保护切换方法及系统
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9558143B2 (en) * 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US10198376B2 (en) * 2015-08-03 2019-02-05 Marvell World Trade Ltd. Methods and apparatus for accelerating list comparison operations
US20180019976A1 (en) * 2016-07-14 2018-01-18 Intel Corporation System, Apparatus And Method For Massively Scalable Dynamic Multipoint Virtual Private Network Using Group Encryption Keys
US10789153B2 (en) * 2018-04-03 2020-09-29 Xilinx, Inc. Debug controller circuit
JP7167687B2 (ja) 2018-12-18 2022-11-09 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105450555A (zh) * 2014-09-26 2016-03-30 杭州华为数字技术有限公司 一种片上网络系统,及片上网络通信链路的建立方法
CN107894914A (zh) * 2016-09-30 2018-04-10 华为技术有限公司 缓存一致性处理方法和装置
CN109376116A (zh) * 2019-01-16 2019-02-22 上海燧原智能科技有限公司 芯片网络的拓扑结构的构建方法及芯片节点

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691591A (zh) * 2020-12-31 2022-07-01 中科寒武纪科技股份有限公司 片间通信的电路、方法和系统
CN113132168A (zh) * 2021-04-29 2021-07-16 上海阵量智能科技有限公司 一种基于PCIe的网络传输配置方法和装置
CN113132168B (zh) * 2021-04-29 2023-02-24 上海阵量智能科技有限公司 一种基于PCIe的网络传输配置方法和装置
CN113570049A (zh) * 2021-07-23 2021-10-29 上海新氦类脑智能科技有限公司 多snn芯片互联的相对寻址方法、装置、设备和介质
CN115994115A (zh) * 2023-03-22 2023-04-21 成都登临科技有限公司 芯片控制方法、芯片组及电子设备
CN115994115B (zh) * 2023-03-22 2023-10-20 成都登临科技有限公司 芯片控制方法、芯片组及电子设备

Also Published As

Publication number Publication date
US11163714B2 (en) 2021-11-02
KR102350379B1 (ko) 2022-01-18
US20200409895A1 (en) 2020-12-31
KR20210000648A (ko) 2021-01-05
EP3758317A1 (en) 2020-12-30
EP3758317B1 (en) 2022-07-27
JP2021005356A (ja) 2021-01-14
JP7317727B2 (ja) 2023-07-31

Similar Documents

Publication Publication Date Title
CN112131174A (zh) 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
US9026687B1 (en) Host based enumeration and configuration for computer expansion bus controllers
MX2012005934A (es) Disco de estado solido (ssd) multi-interfaz, metodo de procesamiento y sistema del mismo.
CN109858621B (zh) 一种卷积神经网络加速器的调试装置、方法及存储介质
CN103180817A (zh) 存储扩展装置及服务器
CN107885517B (zh) 嵌入式系统处理器程序加载电路
CN104021101A (zh) 基于lpc1768平台的usb接口系统及实现方法
CN103164309A (zh) Sol功能测试方法及系统
US8055939B2 (en) Memory control device and methods thereof
CN110727611B (zh) 一种带状态监测的可配置一致性验证系统
CN116032746B (zh) 资源池的信息处理方法及装置、存储介质及电子装置
US6523077B1 (en) Data processing apparatus and data processing method accessing a plurality of memories in parallel
CN109992539B (zh) 双主机协同工作装置
WO2016101177A1 (zh) 计算机设备内存的检测方法和计算机设备
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
CN114238156A (zh) 处理系统以及操作处理系统的方法
CN111258763A (zh) 一种服务器系统及服务器系统的控制方法和装置
CN115033186B (zh) 双端口NVMe控制器及读写命令处理方法
CN113868179B (zh) 一种LPC_DPRam的通信装置及数据转换方法
CN216014148U (zh) 一种服务器和服务器背板
WO2022142173A1 (zh) 一种数据校验方法及其相关设备
CN220509429U (zh) 一种基于CXL的SoC服务器和电子设备
JP6841876B2 (ja) プロセッサモジュールのフレキシブル接続
CN117591450B (zh) 一种数据处理系统、方法、设备及介质
CN113608935A (zh) 一种测试网卡的方法、系统、设备及介质

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
TA01 Transfer of patent application right

Effective date of registration: 20211019

Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: 100094 2 / F, baidu building, No.10 Shangdi 10th Street, Haidian District, Beijing

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right