置换环形网络互联的计算架构

文档序号:144458 发布日期:2021-10-22 浏览:59次 >En<

阅读说明:本技术 置换环形网络互联的计算架构 (Computing architecture for permuting torus network interconnections ) 是由 K·S·塔姆 于 2020-03-07 设计创作,主要内容包括:一种计算机架构,其使用一个或多个置换环形网络连接多个计算引擎和存储器组,以提供可扩展、高带宽、低延迟的点对点多芯片通信解决方案。(A computer architecture that connects multiple compute engines and memory banks using one or more permuted torus networks to provide a scalable, high bandwidth, low latency point-to-point multi-chip communication solution.)

置换环形网络互联的计算架构

相关申请的交叉引用

本申请要求于2019年3月14日提交的题为“Permutated Ring NetworkInterconnected Computing Architecture”的美国专利申请16/353,198的优先权,并通过引用并入本文。

技术领域

本发明涉及使用一个或多个置换环形网络连接各种计算引擎的计算机架构。更具体地,本发明涉及使用多个互连的置换环形网络的计算架构,所述环形网络提供可扩展、高带宽、低延迟的点对点多芯片通信解决方案。

背景技术

图1是包括多个处理器芯片101-102、芯片到芯片互连105和DRAM装置111-112的常规CPU架构100的框图。处理器芯片101和102中的每一个分别包括多个处理器内核C01-C0N和C11-C1N。处理器内核中的每一个包括寄存器文件和算术逻辑单元(ALU)、一级高速缓冲存储器L1和二级高速缓冲存储器L2。处理器芯片101和102中的每一个还分别包括多个三级(L3)高速缓冲存储器121和122,以及高速缓存一致性互连逻辑131和132。

一般来说,一级高速缓冲存储器L1允许快速数据访问(1-2个周期),但相对较小。二级高速缓冲存储器L2表现出较慢的数据访问(5-6个周期),但比一级高速缓冲存储器大。处理器内核C01-C0N和C11-C1N中的每一个具有自己专用的一级高速缓冲存储器L1和二级高速缓冲存储器L2。芯片101上的处理器内核C01-C0N中的每一个通过高速缓存一致性互连逻辑131访问多个三级(L3)高速缓冲存储器121。类似地,芯片102上的处理器内核C11-C1N中的每一个通过高速缓存一致性互连逻辑132访问多个三级(L3)高速缓冲存储器122。因此,每个芯片上的多个处理器内核共享相同芯片上的多个三级(L3)高速缓冲存储器。

芯片101上的处理器内核C01-C0N中的每一个通过高速缓存一致性互连逻辑131访问DRAM 111。类似地,芯片102上的处理器内核C11-C1N中的每一个通过高速缓存一致性互连逻辑132访问DRAM 112。

高速缓存一致性互连逻辑131确保所有处理器内核C01-C0N在三级(L3)高速缓存121的相同条目处看到相同数据。高速缓存一致性互连逻辑131解决了任何“多写入器”问题,其中处理器内核C01-C0N中的不止一个尝试更新由三级(L3)高速缓存121的相同条目存储的数据。想要改变三级(L3)高速缓存121中的数据的任何处理器内核C01-C0N必须首先从高速缓存一致性互连逻辑131获得许可。不合需要地获得该许可需要很长时间并且涉及复杂消息交换的实现。高速缓存一致性互连逻辑131还确保从DRAM 111读取/写入到DRAM 111的数据的一致性。

高速缓存一致性互连逻辑132类似地确保由L3高速缓存122存储的数据和从DRAM112读取/写入到DRAM 112的数据的一致性。

芯片到芯片互连逻辑105实现处理器芯片101-102之间的通信,其中该逻辑105处理跨芯片边界的协议的必要改变。

如图1所示,常规CPU架构100实现具有高速缓存层次结构的多个缓存级别(L1、L2和L3)。较高级别高速缓冲存储器具有相对较小容量和相对较快的存取速度(如SRAM),而较低级别高速缓冲存储器具有相对较大容量和相对较慢的存取速度(如DRAM)。需要高速缓存一致性协议来维持跨不同缓存级别的数据一致性。由于使用专用的主(L1和L2)高速缓存、由高速缓存一致性策略控制的多次访问以及跨不同的物理网络(例如,在处理器芯片101和102之间)的所需的数据遍历,高速缓存层次结构使得在多个不同处理器内核C01-C0N和C11-C1N之中共享数据变得困难。

高速缓存层次结构基于时间和空间局部性的原则,使得较高级别高速缓存会保留来自较低级别高速缓存的位移高速缓存行,以避免在将来访问数据的情况下的长延迟访问。然而,如果数据集中存在最小的空间和时间局部性(就像许多神经网络数据集的情况一样),则延迟增加,有用存储位置的大小减少,并且不必要的存储访问的数量增加。

常规CPU架构(诸如架构100)的硬件针对共享内存编程模型进行了优化。在该模型中,多个计算引擎使用高速缓存一致性协议经由内存共享进行通信。然而,这些常规CPU架构不是支持生产者-消费者执行模型的最有效方式,所述模型通常由神经网络的前向传播实现(所述神经网络表现出冗余内存读写操作以及长延迟)。在生产者-消费者执行模型中,从生产者到消费者的直接消息的传递更有效率。相比之下,在共享内存编程模型中在处理器内核C01-C0N和C11-C1N之间没有直接通信的硬件支持。共享内存编程模型依赖于软件来构建消息传递编程模型。

针对共享内存编程模型优化的常规CPU架构100的每个级别的通信信道高度专业化并且针对所服务的子系统进行优化。例如,存在专门的互连系统:(1)在数据高速缓存和ALU/寄存器文件之间,(2)在不同级别的高速缓存之间,(3)到DRAM信道,以及(4)在芯片到芯片互连105中。这些互连系统中的每一个以其自身的协议和速度运行。因此,跨这些信道进行通信需要大量开销。当试图加速需要访问大量数据(例如,使用多个计算引擎来执行任务的大型矩阵乘法)的任务时,这会导致显著的低效率。

纵横开关和简单的环形网络通常用于实现上述专用互连系统。然而,这些互连结构的速度、功率效率和可扩展性是有限的。

如上所述,常规的CPU架构在神经网络和机器学习应用程序的实现中有几个固有的局限性。因此,可期望具有改进的计算系统架构,其能够更有效地处理神经网络/机器学习应用程序中的数据。还期望具有能够跨越多个芯片的改进的网络拓扑结构,而不需要多个芯片之间的高速缓存一致性协议。如果这种多芯片通信系统易于扩展,能够提供许多不同芯片之间的通信,则将进一步是合乎需要的。

发明内容

相应地,本发明提供了包括多个计算切片的计算机架构,每个计算切片包括多个计算引擎、多个存储器组、通信节点和一级互连结构。一级互连结构联接多个计算引擎、多个存储器组和通信节点中的每一者。一级互连使得每个计算引擎能够访问同一计算切片内的每个存储器组。在一个实施例中,一级互连结构是置换环形网络。然而,在其他实施例中,一级互连结构可以使用诸如交叉开关或简单环形网络的其他结构来实现。

计算机架构还包括二级互连结构,所述结构包括置换环形网络。如这里所定义的,置换环形网络包括多个双向源同步环形网络,每个双向源同步环形网络包括多个数据传输站。多个计算切片的每个通信节点联接到多个双向源同步环形网络中的每一个中的数据传输站中的一个。二级互连结构使得能够在联接到二级互连结构的计算切片中的每一个之间进行访问。

计算机架构还可以包括存储器接口通信节点,其联接到二级互连结构,其中存储器接口通信节点联接到二级互连结构的多个双向源同步环形网络中的每一个中的数据传输站中的一个。在本实施例中,外部存储装置(例如,DRAM装置)联接到存储器接口通信节点。

计算机架构还可以包括第一网络通信节点,其联接到二级互连结构,其中第一网络通信节点联接到二级互连结构的多个双向源同步环形网络中的每一个中的数据传输站中的一个。在本实施例中,第一网络通信节点联接到系统级互连结构。

系统级互连结构可以包括联接到三级互连结构的多个网络通信节点。这些多个网络通信节点中的第一个可以联接到第一网络通信节点。这些多个网络通信节点中的第二个可以联接到主系统处理器。这些多个网络通信节点中的第三个可以联接到系统存储器。这些多个网络通信节点中的第四个可以联接到另一个二级互连结构,所述另一个二级互连结构进而联接到另一个多个计算切片。三级互连结构可以通过置换环形网络或者通过诸如交叉开关或简单环形网络的其他结构实现。

有利地,如果一级互连结构、二级互连结构和三级互连结构都使用置换环形网络来实现,则可以使用单个消息协议在计算机架构上传输/接收消息和数据。地址映射确保装置(例如,计算引擎、存储器组、DRAM装置)中的每一个在计算机架构内具有唯一的地址。

在特定实施例中,二级互连结构和对应的多个计算切片被制造在同一半导体芯片上。

鉴于以下描述和附图,将更充分地理解本发明。

附图说明

图1是针对共享内存编程模型优化的常规计算机架构的框图。

图2是根据本发明的一个实施例的使用置换环形网络来连接多个计算引擎和存储装置的计算机架构的框图。

图3是根据本发明的一个实施例的图2的计算机架构的修改视图。

图4是根据本发明的一个实施例的图2至图3的计算机架构中使用的一级置换环形网络的框图。

图5是根据本发明的一个实施例的图4的一级置换环形网络的四个通信信道的互连矩阵。

图6是根据本实施例的一个实施例的定义图4的置换环形网络上的业务流的路由表。

图7是根据本发明的替代实施例的计算机架构的框图。

图8是根据本发明的另一个替代实施例的计算机架构的框图。

具体实施方式

本发明使用置换环形网络(PRN)架构来为机器学习计算系统的互连系统提供更好的解决方案。PRN架构包括扁平的存储层次结构,其允许不同芯片上(和同一芯片上)的计算引擎使用通用通信协议直接相互通信。互连系统是非高速缓存相干的。在一个实施例中,互连系统使用单个互连结构(即,多个置换环形网络)。

在替代实施例中,仅在互连结构内的特定位置处使用PRN结构(例如,连接同一芯片上的多个计算切片)。

图2是根据本发明的一个实施例的计算机系统200的框图。计算机系统200包括多个处理器芯片201-204、主处理器系统205、系统存储器206、系统级互连芯片210和DRAM装置211-214。尽管图2中仅示出了四个处理器芯片201-204,但是应当理解,在其他实施例中,计算机系统200可以容易地修改以包括其他数量的处理器芯片。此外,尽管图2中仅详细示出了处理器芯片201,但是应当理解,处理器芯片202-204包括与所述实施例中的处理器芯片201相同的内部元件。在替代实施例中,根据以下提供的描述,处理器芯片201-204可以包括不同数量的计算切片、计算引擎和/或存储器组。

在所示实施例中,处理器芯片201包括四个计算切片1、2、3和4,以及基于置换环形网络(PRN)的互连结构21。尽管在图2中示出了四个切片,但是应当理解,在其他实施例中,处理器芯片201上可以包括其他数量的切片。每个切片包括多个计算引擎、多个存储器组、通信节点和基于一级PRN的互连结构。更具体地,切片1、2、3和4分别包括计算引擎组CE1、CE2、CE3和CE4、存储器组组M1、M2、M3和M4、基于一级PRN的互连结构11、12、13和14,以及通信节点CN1、CN2、CN3和CN4。计算引擎组CE1、CE2、CE3和CE4中的每一个包括多个计算引擎(例如,本地处理器)。在所示的示例中,计算引擎组CE1、CE2、CE3和CE4中的每一个都包括四个计算引擎。然而,应当理解,在其他实施例中,其他数量的计算引擎可以包括在每个计算引擎组中。类似地,存储器组组M1、M2、M3和M4中的每一个包括多个存储器组。在所示的示例中,存储器组组中的每一个包括四个存储器组。然而,应当理解,在其他实施例中,其他数量的存储器组可以包括在每个存储器组组中。在一个实施例中,存储器组组M1、M2、M3和M4中的每个存储器组是静态随机存取存储器(SRAM),其能够实现相对较快的存储访问。

在计算切片1、2、3和4中的每一个内,对应的基于一级PRN的互连结构11、12、13和14将对应的计算引擎组CE1、CE2、CE3和CE4与对应的存储器组组M1、M2、M3和M4联接。这允许每个计算引擎使用对应的基于一级PRN的互连结构访问同一切片内的每个存储器组。例如,计算切片1的计算引擎组CE1中的四个计算引擎中的每一个能够通过切片1的对应的基于一级PRN的互连结构11访问计算切片1的存储器组组M1的四个存储器组中的每一个。

基于一级PRN的互连结构11、12、13和14也联接到对应的切片1、2、3和4内的对应通信节点CN1、CN2、CN3和CN4。通信节点CN1、CN2、CN3和CN4联接到基于二级PRN的互连结构21。如下文更详细描述的那样,通信节点CN1、CN2、CN3和CN4在对应的基于一级PRN的互连结构11、12、13和14与基于二级PRN的互连结构21之间传递消息和数据。

该构型允许处理器芯片201上的每个计算引擎使用基于一级PRN的互连结构11-14和基于二级PRN的互连结构21(如有必要)访问处理器芯片201上的每个存储器组。例如,计算切片1的计算引擎组CE1中的每个计算引擎能够通过路径访问切片4的存储器组组M4的每个存储器组,所述路径包括:计算切片1的对应的基于一级PRN的互连结构11、通信节点CN1、基于二级PRN的互连结构21、通信节点CN4和计算切片4的基于一级PRN的互连结构14。

该构型还允许处理器芯片201上的每个计算引擎使用基于一级PRN的互连结构11-14和基于二级PRN的互连结构21(如有必要)与处理器芯片201上的其他计算引擎中的每一个通信。例如,计算切片2的计算引擎组CE2中的每个计算引擎能够通过路径与计算切片3的计算引擎组CE3中的每个计算引擎通信,所述路径包括:切片2的对应的基于一级PRN的互连结构12、通信节点CN2、基于二级PRN的互连结构21、通信节点CN3和切片3的基于一级PRN的互连结构13。

基于二级PRN的互连结构21还通过存储器接口通信节点CN5联接到外部DRAM 211。该构型允许处理器芯片201的每个计算引擎通过基于一级PRN的互连结构11-14和基于二级PRN的互连结构21访问DRAM 211。例如,计算切片1的计算引擎组CE1中的每个计算引擎能够通过路径访问DRAM 211,所述路径包括:计算切片1的对应的基于一级PRN的互连结构11、通信节点CN1、基于二级PRN的互连结构21和通信节点CN5

图2的计算机系统200还包括基于三级PRN的互连结构31,其制造在系统级互连芯片210上。基于三级PRN的互连结构31联接到芯片210上的多个通信节点CN11-CN16。如下文更详细描述的,基于三级PRN的互连结构31使得能够在通信节点CN11-CN16之间传输消息和数据。通信节点CN11、CN12、CN13和CN14分别联接到处理器芯片201、202、203和204。通信节点CN15和CN16分别联接到主系统处理器205和系统存储器206。

系统级互连芯片210允许在主系统处理器205、系统存储器206和处理器芯片201-204中的每一个之间传输数据和消息。更具体地,主处理器205可以与处理器芯片201-204上的计算引擎中的任一个或处理器芯片201-204上的存储器组中的任一个通信。例如,主处理器205能够通过路径访问计算切片1的计算引擎组CE1中的计算引擎(或计算切片1的存储器组组M1的存储器组),所述路径包括:通信节点CN15、基于三级PRN的互连结构31、网络通信节点CN11和CN6、基于二级PRN的互连结构21、通信节点CN1和基于一级PRN的互连结构11。

主处理器205还可以与DRAM 211-214中的任一个进行通信。例如,主处理器205能够通过路径访问DRAM 211,所述路径包括:通信节点CN15、基于三级PRN的互连结构31、网络通信节点CN11和CN6、基于二级PRN的互连结构21和通信节点CN5。主处理器205可以分别通过处理器芯片202-204中的类似路径访问DRAM 212-214。

主处理器205还可以通过路径与系统存储器206通信,所述路径包括:通信节点CN15、基于三级PRN的互连结构31和通信节点CN16

另外,处理器芯片201-204中的任一个上的每个计算引擎可以与其他处理器芯片201-204中的任一个上的计算引擎或存储器组中的任一个以及联接到这些其他处理器芯片的DRAM 211-214通信。

根据一个实施例,位于处理器芯片201-204、DRAM 211-214、主系统205、系统存储器206上的各种存储器组、计算引擎和通信节点和系统级互连芯片210上的通信节点CN11-CN16被分配唯一的系统地址,从而使得这些系统元件中的每一个能够容易地由其他系统元件中的任一个寻址(并因此与所述任一个通信)。

图3是基于PRN的计算机系统200的框图,其详细示出了处理器芯片202。处理器芯片201和202中的相似元件用相似的附图标记标记。因此,处理器芯片202包括计算切片1'、2'、3'和4',所述计算切片1'、2'、3'和4'分别包括存储器组组M1’、M2’、M3’、M4’、计算引擎组CE1’、CE2’、CE3’和CE4’、基于一级PRN的互连结构11'、12'、13'和14',以及通信节点CN1’、CN2’、CN3’和CN4’。处理器芯片202还包括分别联接到DRAM 212和网络通信节点CN12的基于二级PRN的互连结构21'、存储器接口通信节点CN5’和网络通信节点CN6’

该构型允许(处理器芯片201的)计算引擎组CE1中的每个计算引擎通过路径访问(处理器芯片202的)计算引擎组CE3’中的每个计算引擎,所述路径包括:基于一级PRN的互连结构11、通信节点CN1、基于二级PRN的互连结构21、网络通信节点CN6和CN11、基于三级PRN的互连结构31、网络通信节点CN12和CN6’、基于二级PRN的互连结构21'、通信节点CN3’和基于一级PRN的互连结构13'。类似地,(处理器芯片201的)计算引擎组CE1中的每个计算引擎能够使用相同的路径访问(处理器芯片202的)存储器组组M3’中的每个存储器组。

该构型还允许每个处理器芯片的每个计算引擎访问联接到其他处理器芯片的DRAM。例如,(处理器芯片201的)切片1的计算引擎组CE1中的每个计算引擎能够通过路径访问DRAM 212(联接到处理器芯片202),所述路径包括:切片1的对应的基于一级PRN的互连结构11、通信节点CN1、基于二级PRN的互连结构21、通信节点CN6和CN11、基于三级PRN的互连结构31、通信节点CN12和CN6’、基于二级PRN的互连结构21'和通信节点CN5’

如上所述,PRNA互连计算机系统200具有三级层次结构,包括切片级、芯片级和系统级,其中每一级由其物理构造边界定义。

由计算切片1-4(和计算切片1'-4')表示的切片级是计算机系统200的基本构建块。每个计算切片本身可以通过主系统处理器205和基于一级PRN的互连结构之间的桥接器实现为小型机器学习处理器。

由处理器芯片201-204表示的芯片级由包括在管芯上的子系统定义,包括多个计算切片和对应的基于二级PRN的互连结构。每个处理器芯片可以通过主系统处理器205和基于二级PRN的互连结构之间的桥接器实现为中等规模的机器学习系统。

包括主系统处理器205的系统级建立在多个处理器芯片和系统级互连芯片210上。处理器芯片201-204通过系统级互连芯片210进行通信。由系统级互连芯片210实现的基于三级PRN的互连结构31有利地以高带宽、低延迟和高功率效率操作。通过使用置换环形网络实现一级互连结构、二级互连结构和三级互连结构,可以跨整个系统保持相同的通信协议。这极大地简化了跨系统的共享内存和消息传递协议。如上所述,计算机系统200使得任何计算引擎能够通过基于PRN的互连结构访问系统200中的所有存储器组组(例如,存储器组组M1-M4和M1'-M4')和所有DRAM(例如,DRAM 211-214)。因此,计算机系统200是高度灵活的共享存储器计算系统。

此外,计算机系统200的所有计算引擎可以通过基于PRN的互连结构在彼此之间直接通信。有利地,不需要软件支持来翻译在不同计算切片或芯片的计算引擎之间交换的消息,从而产生高效的消息传递计算系统。

用于实现图2和图3的1级、2级和3级PRN互连结构的基于PRN的互连结构更详细地描述在共同拥有的、共同未决的美国公开专利申请号2018/0145850中,其全部内容以引用方式并入。下面更详细地描述在根据各种实施例的计算机系统200中PRN互连结构的使用。

图4是根据本发明的一个实施例的一级置换环形网络11的框图。计算机系统200的其他一级置换环形网络(例如,置换环形网络12-14和11’-14’)可以与一级置换环形网络11相同。在所示的实施例中,一级置换环形网络11包括四个双向源同步环形网络401、402、403和404。环形网络401-404中的每一个用作通信信道。尽管图示的置换环形网络11包括九个通信节点(即,通信节点CN1、计算引擎组CE1的计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组组M1的存储器组M1A、M1B、M1C和M1D)和四个通信信道401-404,但是应当理解,在其他实施例中可以使用其他数量的通信节点和通信信道。通常,一级置换环形网络11中的通信节点的数量用N值标识,并且一级置换环形网络11中的双向环形网络的数量用M值标识。选择通信信道的数量(M)以在通信网络的带宽要求和通信网络的区域功率限制之间提供适当的折衷。

通信信道401-404中的每一个包括通过双向链路(互连)连接的多个数据传输站。更具体地,通信信道401包括九个数据传输站A0-A8,通信信道402包括九个数据传输站B0-B8,通信信道403包括九个数据传输站C0-C8,并且通信信道404包括九个数据传输站D0-D8。通信信道401的双向链路被示为以环形连接数据传输站A0-A8的实线。通信信道402的双向链路被示为以环形连接数据传输站B0-B8的长虚线。通信信道403的双向链路被示为以环形连接数据传输站C0-C8的点划线。通信信道404的双向链路被示为以环形连接数据传输站D0-D8的短虚线。双向链路允许在顺时针方向和逆时针方向两者上同时传输数据和时钟信号。

通常,数据传输站A0-A8、B0-B8、C0-C8和D0-D8中的每一个提供能够在九个通信节点和通信信道401-404之间传输数据的接口。

通常,通信信道401-404中的每一个被联接以接收主时钟信号。因此,在图4的示例中,通信信道401、402、403和404被联接以分别接收主时钟信号CKA、CKB、CKC和CKD。在所示的实施例中,数据传输站A0、B0、C0和D0被联接以分别接收主时钟信号CKA、CKB、CKC和CKD。然而,在其他实施例中,通信信道401、402、403和404中的其他数据传输站可以被联接以分别接收主时钟信号CKA、CKB、CKC和CKD。尽管示出了四个单独的主时钟信号CKA、CKB、CKC和CKD,但是应当理解,主时钟信号CKA、CKB、CKC和CKD中的每一个可以从单个主时钟信号导出。在所描述的实施例中,主时钟信号CKA、CKB、CKC和CKD中的每一个具有相同的频率。

可以使用常规时钟生成电路(例如,锁相环电路)来生成主时钟信号CKA、CKB、CKC和CKD。在所描述的实施例中,主时钟信号可以具有大约5GHz或更高的频率。然而,应当理解,在其他实施例中,主时钟信号可以具有其他频率。主时钟信号的频率和电压可以基于环形网络架构的带宽需求和功率优化进行调整。在所示的实施例中,数据传输站A0、B0、C0和D0分别接收主时钟信号CKA、CKB、CKC和CKD。其他数据传输站中的每一个从其相邻的邻居接收其时钟信号。即,主时钟信号CKA、CKB、CKC和CKD分别被有效地串联传输到通信信道401、402、402和404的数据传输站中的每一个。

通信信道401、402、403和404中的每一个分别相对于其对应的主时钟信号CKA、CKB、CKC和CKD以源同步的方式操作。

通常,每个数据传输站可以在两条路径上传输输出消息。在第一路径中,将从上游数据传输站接收到的消息转发到下游数据传输站(例如,数据传输站A0可以在顺时针路径上将从下游数据传输站A8接收到的消息转发到上游数据传输站A1,或者数据传输站A0可以在逆时针路径上将从下游数据传输站A1接收到的消息转发到上游数据传输站A8)。在第二路径中,由联接到数据传输站的通信节点提供的消息被路由到下游数据传输站(例如,数据传输站A0可以将从计算引擎CE1A接收的消息在顺时针路径上转发到下游数据传输站A1或在逆时针路径上转发到下游数据传输站A8)。同样在第二路径中,由数据传输站接收到的消息被路由到寻址的通信节点(例如,数据传输站A0可以将从下游数据传输站A8接收到的消息在顺时针路径上转发到计算引擎CE1A,或者数据传输站A0可以将从下游数据传输站A0接收到的消息在逆时针路径上转发到计算引擎CE1A)。需注意,用于在数据传输站之间传输时钟信号和消息的线路和缓冲器高度均衡且平衡,以最小化建立和保持时间的损失。

时钟信号路径和消息总线作为波管道系统操作,其中在数据传输站之间传输的消息使用在时钟信号路径上传输的时钟信号以源同步的方式锁存到接收数据传输站中。以这种方式,消息以主时钟信号CKA、CKB、CKC和CKD的频率在数据传输站之间传输,从而允许数据传输站之间的快速数据传输。

因为实现了点对点源同步通信,时钟信号线结构和消息总线结构的线路和缓冲器延迟不会降低通信信道401-404的工作频率。

因为数据传输站具有相对简单的设计,所以可以以相对高的频率执行置换环形网络11上的消息的传输。通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D通常包括更复杂的设计,并且可能以比主时钟信号CKA、CKB、CKC和CKD的频率更低的频率操作。

需注意,通信信道401-404的循环构型需要由始发数据传输站A0、B0、C0和D0(例如,接收主时钟信号CKA、CKB、CKC和CKD的数据传输站)接收的消息必须分别与主时钟信号CKA、CKB、CKC和CKD重新同步。在一个实施例中,响应于从下游数据传输站接收的输入时钟信号,重新同步电路(未示出)通过将输入消息锁存到第一触发器中来执行该同步操作。然后响应于主时钟信号(例如,CKA),在该第一触发器的输出端处提供的消息被锁存到第二触发器中。第二触发器向始发数据传输站(例如,数据传输站A0)提供同步消息。响应于主时钟信号(CKA),该同步消息存储在始发数据传输站(A0)中。

现在回到一级置换环形网络11的拓扑,通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D中的每一个联接到四个通信信道401-404中的每一个中的数据传输站A0-A8、B0-B8、C0-C8和D0-D8中的唯一一个。例如,计算引擎CE1A连接到通信信道401中的数据传输站A0、通信信道402中的数据传输站B8、通信信道403中的数据传输站C7和通信信道404中的数据传输站D6。下面的表1定义了根据一个实施例的通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D和存储器组M1A、M1B、M1C和M1D,以及数据传输站A0-A8、B0-B8、C0-C8和D0-D8之间的连接。需注意,通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D和存储器组M1A、M1B、M1C和M1D,以及数据传输站A0-A8、B0-B8和C0-C8之间的物理连接为清楚起见在图4中未明确显示。

图5重新排序表1的数据以提供四个通信信道401-404的互连矩阵500,其中互连矩阵500以通信信道401-404中的每一个中的数据传输站排序。该互连矩阵500使得容易在通信信道401-404中的每一个上确定通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D之间的跳跃的数量。需注意,通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D联接到在四个通信信道401-404中具有不同相对位置的数据传输站。如下文更详细地描述,该构型允许在通信节点之间进行消息的通用且有效的路由。

图6是路由表600,其定义了通过根据本实施例的置换环形网络11的通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D之中的业务流。例如,通信节点CN1和计算引擎CE1A在通信信道404上使用数据传输站D5和D6之间的路径进行通信。沿该路径的跳跃的数量由在通信信道404上穿过的段数定义。因为数据传输站D5和D6在通信信道404上彼此相邻(即,在数据传输站D5和D6之间存在一个段),所以通信节点CN1和计算引擎CE1A之间的通信路径由一个跳跃(1H)组成。

如路由表600所示,通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D之间的所有相关通信路径包括唯一跳跃通信路径。在其他实施例中,通信路径中的一个或多个可以包括不止一个跳跃。在其他实施例中,可以在一对或多对通信节点CN1、计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D之间提供多个通信路径。在其他实施例中,不同的通信节点对可以共享相同的通信路径。

数据传输站A0-A8、B0-B8、C0-C8和D0-D8之间的通信将以源同步网络允许的最高频率运行。该频率不会随着通信节点的数量和通信信道的数量按比例增加而减少。应当理解,通信信道401-404中的每一个包括用于初始化、仲裁、流量控制和错误处理的规定。在一个实施例中,这些规定使用完善的技术提供。

计算引擎CE1A、CE1B、CE1C和CE1D以及存储器组M1A、M1B、M1C和M1D中的每一个根据路由表600在置换环形网络11上传输消息(其可以包括数据)。例如,计算引擎CE1A可以使用通信信道404向存储器组M1C发送数据请求消息。更具体地,计算引擎CE1A可以向数据传输站C7的顺时针传输路径传输数据请求消息。该数据请求消息寻址数据传输站C8和存储器组M1C。在接收数据请求消息时,数据传输站C8确定数据请求消息寻址存储器组M1C,并将数据请求消息转发到存储器组M1C。在处理数据请求消息后,存储器组M1C可以向数据传输站C8的逆时针传输路径传输数据响应消息。该数据响应消息寻址数据传输站C7和计算引擎CE1A。在接收数据响应消息时,数据传输站C7确定数据响应消息寻址计算引擎CE1A,并将数据响应消息转发到计算引擎CE1A

消息可以通过通信节点CN1传输到置换环形网络11中和从所述置换环形网络传输出。例如,切片1的计算引擎CE1A可以使用通信信道404将数据请求消息传输到计算切片2的存储器组M2A。更具体地,计算引擎CE1A可以向数据传输站D6的逆时针传输路径传输数据请求消息。该数据请求消息寻址数据传输站D5和通信节点CN1(以及计算切片2的通信节点CN2和计算切片2内的存储器组M2A)。在接收数据请求消息时,数据传输站D5确定数据请求消息寻址通信节点CN1,并将数据请求消息转发到通信节点CN1。作为响应,通信节点CN1确定数据请求消息寻址计算切片2内的通信节点CN2,并且在二级PRN互连21上转发数据请求消息(使用由二级PRN互连21实现的路由表)。需注意,二级PRN互连21使用类似于一级PRN互连11的PRN结构来在通信节点CN1-CN6之间路由消息。需注意,由于由二级PRN互连21服务的不同数量的通信节点,二级PRN互连21的实现可能与一级PRN互连11的实现不同(例如,不同数量的通信信道、不同的路由表)。根据一个实施例,基于二级PRN的互连结构21包括三个通信信道(即,三个双向环形网络),其中每个通信信道包括六个数据传输站。在本实施例中,通信节点CN1-CN6中的每一个联接到三个通信信道中的每一个中的数据传输站中的对应一个。

与通信节点CN2相关联的数据传输站接收在二级PRN互连21上传输的数据请求消息,并且确定数据请求消息寻址通信节点CN2,并将数据请求消息转发到通信节点CN2。作为响应,通信节点CN2确定数据请求消息寻址计算切片2内的存储器组M2A,并且在一级PRN互连12上转发数据请求消息(使用由一级PRN互连12实现的路由表)。需注意,一级PRN互连12使用类似于一级PRN互连11的PRN结构在通信节点CN2、(计算引擎组CE2的)计算引擎CE2A、CE2B、CE2C、CE2D和(存储器组组M2的)存储器组M2A、M2B、M2C和M2D之间路由消息。

与存储器组M2A相关联的数据传输站接收在一级PRN互连12上传输的数据请求消息,并且确定数据请求消息寻址存储器组M2A,并将数据请求消息转发到存储器组M2A。存储器组M2A然后可以响应于数据请求消息。例如,存储器组M2A可以检索存储的数据值并使用数据响应消息将该数据值返回到计算引擎C1A。该数据响应消息使用原始数据请求消息的反向路径传输到计算引擎C1A

根据一个实施例,基于三级PRN的互连结构31包括三个通信信道(即,三个双向环形网络),其中每个通信信道包括六个数据传输站。在本实施例中,通信节点CN11-CN16中的每一个联接到三个通信信道中的每一个中的数据传输站中的对应一个。

使用上述平坦的计算机架构和消息系统,消息可以通过一级PRN互连结构、二级PRN互连结构和三级PRN互连结构在计算机系统200的各种元件中的任一个之间传输,而无需改变消息协议。根据一个实施例,计算机系统200的元件中的每一个被分配唯一的(系统)地址。以这种方式对系统200的各种元件进行地址映射允许跨一级PRN互连结构、二级PRN互连结构和三级PRN互连结构一致地访问这些元件。需注意,计算机系统200是非相干系统,因为该计算机系统200没有明确确保计算切片、DRAM 211-214或系统存储器206内的存储器组存储的数据的一致性。相反,用户需要以所需的方式控制这些存储器存储的数据。因此,计算机系统200非常适合实现生产者-消费者执行模型,诸如通过神经网络的前向传播实现的模型。即,计算机系统200能够有效地处理神经网络/机器学习应用中的数据。计算机系统200的改进的网络拓扑有利地能够跨越多个芯片,而不需要多个芯片之间的高速缓存一致性协议。因此,计算机系统200易于扩展,并且能够提供许多不同芯片之间的通信。

在上述实施例中,一级互连结构、二级互连结构和三级互连结构11、21和31都使用双向源同步置换环形网络实现。然而,在本发明的替代实施例中,可以使用基于非PRN的结构来实现一级互连结构。

图7是根据本发明的替代实施例的计算机系统700的框图。因为计算机系统700与计算机系统200相似,所以图7和图2中的相似元件标有相似的参考数字。因此,计算机系统700包括多个处理器芯片701-704、主处理器系统205、系统存储器206、系统级互连芯片210和DRAM装置211-214。尽管图7中仅示出了四个处理器芯片701-704,但是应当理解,在其他实施例中,计算机系统700可以容易地修改以包括其他数量的处理器芯片。此外,尽管图7中仅详细示出了处理器芯片701,但是应当理解,处理器芯片702-704包括与所述实施例中的处理器芯片701相同(或相似)的内部元件。如下文更详细描述的,处理器芯片701用简单的网络互连结构711-714代替处理器芯片201的基于一级PRN的互连结构11-14。简单的网络互连结构711-714可以是例如基于纵横开关的互连结构或简单的环形网络。

在所示的实施例中,处理器芯片701包括联接到二级置换环形网络互连结构21的四个计算切片71、72、73和74。尽管在图7中示出了四个计算切片,但是应当理解,在其他实施例中,处理器芯片701上可以包括其他数量的计算切片。每个计算切片包括多个计算引擎、多个存储器组、通信节点和简单网络互连结构。更具体地,切片71、72、73和74分别包括计算引擎组CE1、CE2、CE3和CE4、存储器组组M1、M2、M3和M4、简单网络互连结构711、712、713和714,以及通信节点CN1、CN2、CN3和CN4。计算引擎组CE1、CE2、CE3和CE4以及存储器组组M1、M2、M3和M4在上面结合图2和图3更详细地描述。

在切片71、72、73和74中的每一个内,对应的简单网络互连结构711、712、713和714将对应的计算引擎组CE1、CE2、CE3和CE4与对应的存储器组组M1、M2、M3和M4联接。这允许每个计算引擎使用对应的简单网络访问同一切片内的每个存储器组。

简单网络互连结构711、712、713和714也联接到对应的计算切片71、72、73和74内的对应通信节点CN1、CN2、CN3和CN4。通信节点CN1、CN2、CN3和CN4以上述方式联接到基于二级PRN的互连结构21。通信节点CN1、CN2、CN3和CN4在对应的简单网络互连结构711、712、713和714与基于二级PRN的互连结构21之间传递消息和数据。需注意,在简单网络互连结构711、712、713和714与对应的通信节点CN1、CN2、CN3和CN4之间传输的消息必须转换为与接收系统一致的协议。此类转换可以通过简单网络互连结构711-714内的接口或通信节点CN1、CN2、CN3和CN4内的接口来实现。虽然这种协议转换使计算机系统700的操作复杂化,但它允许在每个计算切片内使用简单网络互连结构,这可以减少计算切片71-74的所需布局面积。

在本发明的另一个实施例中,基于三级PRN的互连结构31被诸如基于纵横开关的互连结构或简单环形网络的简单网络互连结构代替(以与基于一级PRN的结构11-14被上面图7中的简单网络结构711-714代替相同的方式)。图8是根据该替代实施例的计算机系统800的框图,其以上述方式用系统级互连芯片810上的简单网络互连结构81代替基于三级PRN的互连结构31。可以包括例如基于纵横开关的互连结构或简单环形网络的简单网络互连结构81提供通信节点CN11-CN16之间的连接。需注意,在处理器芯片701-704、主处理器系统205和系统存储器206以及对应的通信节点CN11、CN12、CN13、CN14、CN15和CN16之间传输的消息必须转换为与接收系统一致的协议。此类转换可以通过简单网络互连结构81内的接口或通信节点CN11-CN16内的接口来实现。虽然这种协议转换使计算机系统800的操作复杂化,但它允许在系统级互连芯片810内使用简单网络互连结构。

尽管系统级互连芯片810的简单网络互连结构81结合具有简单网络互连结构711-713的计算切片71-74示出,但应当理解,系统级互连芯片810的简单网络互连结构81也可以结合具有基于一级PRN的互连结构11-14的计算切片1-4使用,如图2所示。

可以使用几个因素来确定一级互连结构和三级互连结构是否应该用双向源同步置换环形网络(图2A至图2B)或简单网络互连结构(诸如纵横开关或单环形网络(图7至图8))实现。置换环形网络将提供比简单的单环形网络更好的性能(但需要更大的布局面积)。置换环形网络通常也将提供比纵横开关更好的性能(并且可能需要更大的布局面积)。通常,随着更多的通信节点通过互连结构连接,使用置换环形网络代替单环形网络或纵横开关变得更有效率(在布局面积和性能方面)。根据一个实施例,当要连接的通信节点的数量是四个或更多时,使用置换环形网络。

尽管已经结合几个实施例描述了本发明,但是应当理解,本发明不限于所公开的实施例,但是能够进行各种修改,这对于本领域技术人员来说是显而易见的。因此,本发明仅受限于以下权利要求。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于散列的有效用户建模

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!