CN116226023A - 并行处理单元、处理系统以及相关方法 - Google Patents
并行处理单元、处理系统以及相关方法 Download PDFInfo
- Publication number
- CN116226023A CN116226023A CN202111459070.XA CN202111459070A CN116226023A CN 116226023 A CN116226023 A CN 116226023A CN 202111459070 A CN202111459070 A CN 202111459070A CN 116226023 A CN116226023 A CN 116226023A
- Authority
- CN
- China
- Prior art keywords
- memory
- coupled
- parallel processing
- processing unit
- core
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims abstract description 149
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Abstract
本公开提供了一种并行处理单元、处理系统以及相关方法。该并行处理单元,包括:核;高速缓存,与核耦合;处理器存储器,与核耦合;以及芯片间网络控制器,与核耦合,芯片间网络控制器包括路由表,路由表包括多个地址,多个地址标识直接和间接地耦合到并行处理单元的多个设备中的多个存储器空间,多个设备中的多个存储器空间具有相同的大小,每个地址用于标识存储器空间中的存储器行。本公开通过将每个存储器芯片分成多个存储器空间,然后使用标识存储器空间的地址、存储器空间内的行号、以及用于访问行号的多个发送/接收端口来单独寻址每个存储器空间,从而减少了在芯片间网络中从多TB存储器芯片读取和写入多TB存储器芯片所需的时间。
Description
技术领域
本公开涉及芯片互连网络的路由方案,尤其涉及使用分布式共享存储器的异构芯片互连网络的路由方案。
背景技术
同构芯片互连网络(homogeneous interconnected-chip network)是将多个基本相同的芯片耦合在一起的网络,而异构芯片互连网络(heterogeneous interconnected-chip network)将多个不同的芯片耦合在一起。例如,大规模处理系统可以包括大量并行处理芯片和大量通过异构芯片互连网络直接和间接地耦合在一起的多太字节(multi-terabyte)的存储器芯片。
在传统路由方案的一个示例中,异构芯片互连网络中的每个芯片包括路由表,该路由表利用存储器地址来标识网络中的另一个芯片、芯片内的共享存储器行(a sharedline of memory)、以及在向共享存储器行传送数据或从共享存储器行传送数据的情况下要使用的一个或多个端口。
在异构芯片互连网络中,该类路由方案的一个缺点是:写入多太字节存储器的共享存储器行或从多太字节存储器的共享存储器行读取需要耗费大量时间。因此,需要写入多太字节存储器的存储器行或从多太字节存储器的存储器行读取耗费更少时间的路由方案。
发明内容
本公开提供了一种路由方案,降低了向多太字节存储器传送数据和从多太字节存储器传送数据相关的延迟。
本公开包括并行处理单元,并行处理单元包括:核;与核耦合的高速缓存;以及与核耦合的处理器存储器。并行处理单元还包括与核耦合的芯片间网络(inter-chipnetwork,ICN)控制器。ICN控制器包括路由表。路由表包括多个地址,多个地址标识直接和间接地耦合到并行处理单元的多个设备中的多个存储器空间。设备中的多个存储器空间具有相同的大小。每个地址标识存储器空间中的存储器行。
本公开还包括处理系统,处理系统包括多个并行处理单元。每个并行处理单元包括:核;耦合到核的高速缓存;以及耦合到核的处理器存储器。每个并行处理单元还包括耦合到核的芯片间网络(ICN)控制器。ICN控制器包括第一路由表。第一路由表包括多个地址,多个地址标识直接和间接地耦合到并行处理单元的多个设备中的多个存储器空间。设备中的多个存储器空间具有相同的大小。每个地址标识存储器空间中的存储器行。处理系统还包括直接和间接地耦合到多个并行处理单元的多个外部单元。每个外部单元包括扩展存储器,使得多个外部单元具有多个扩展存储器。每个外部单元中的扩展存储器包括多个存储器空间。扩展存储器中的多个存储器空间具有相同的大小。扩展存储器包括第二路由表。第二路由表包括标识每个扩展存储器中的多个存储器空间的多个第一地址。每个地址标识存储器空间中的存储器行。
本公开还包括并行处理单元的形成方法。该形成方法包括:形成核;形成耦合到核的高速缓存;以及形成耦合到核的处理器存储器。该形成方法还包括形成路由表,路由表包括多个地址,多个地址标识直接和间接地耦合到并行处理单元的多个设备中的多个存储器空间。设备中的多个存储器空间具有相同的大小。每个地址标识存储器空间中的存储器行。
通过上述方案,使得可以单独寻址每个存储器空间,从而减少了在芯片间网络中从多TB存储器芯片读取和写入多TB存储器芯片所需的时间。
通过参考下面的详细描述和附图,将获得对本公开的特征和优点的更好理解,附图阐述了其中利用本公开原理的说明性实施例。
附图说明
本文所述附图用于进一步理解本公开,并构成本公开的一部分。本公开的示例性实施例及其描述用于解释本公开,并不构成对本公开的限制。
图1A至图1D示出了根据本公开实施例的处理系统100的四种示例拓扑结构的框图。
图2示出了根据本公开实施例的示例并行处理单元(parallel processing unit,PPU)200的框图。
图3示出了根据本公开实施例的示例外部单元(SMX)300的框图。
图4示出了根据本公开实施例的示例处理系统400的框图。
图5示出了根据本公开实施例的示例存储器地址500。
图6示出了根据本公开实施例的示例地址分配600。
具体实施例
图1A至图1D示出了根据本公开实施例的处理系统100的四种示例拓扑结构的框图。如下文所更详细地描述的,处理系统100单独地寻址每个共享存储器空间以减少向存储器传送数据和从存储器传送数据相关联的延迟。
如图1A至图1D所示,处理系统100包括多个并行处理单元(PPU)110、和直接和间接地耦合到PPU 110的多个外部单元(SMX)112。进一步地,如图1A至图1D所示,PPU 110和SMX112可以以多种不同方式耦合在一起。
图2示出了根据本公开实施例的示例并行处理单元(PPU)200的框图。在本示例中,每个PPU 110可以用PPU 200实现。如图2所示,PPU 200包括多个核210(在本示例中为四个)和多个本地高速缓存212,多个本地高速缓存212耦合到核210,使得每个核210具有对应的本地高速缓存212。
进一步地,如图2所示,PPU 200还包括多个处理器存储器(HBM)214,该多个HBM214耦合到核210,使得每个核210具有相应的HBM 214。HBM可以通过多种方式实现。在一个示例中,HBM被实现为高带宽存储器,该高带宽存储器包括多个动态随机存取存储器(DRAM)管芯,动态随机存取存储器管芯垂直堆叠在彼此的顶部以提供具有小形状因子的大存储容量,并且该高带宽存储器还包括每个管芯的两个128比特数据通道以提供高带宽。例如,HBM的最大大小可以是4GB、24GB和64GB。
每个HBM 214被划分为第一地址范围和第二地址范围,使得第一地址范围仅可由HBM 214相关联的核210访问,而第二地址范围作为共享地址范围,可由PPU 200上的所有核210以及处理系统中其他PPU(例如处理系统100中的其他PPU110)中的核访问。
在本示例中,PPU中共享的第二地址范围对256GB存储器空间寻址,尽管只有少量(如64GB)实际可用。换言之,每个PPU都有对256GB存储器空间寻址的共享存储器空间,但该共享存储器空间的可用空间可能小于256GB。此外,每个可寻址的256GB存储器空间表示一个虚拟设备ID。
PPU 200还包括片上网络(network-on-chip,NoC)216,NoC 216将核210和HBM 214耦合在一起,以提供核210和HBM 214之间的高带宽、高速通信路径。PPU 200还包括芯片间网络(ICN)控制器220,ICN控制器220经由NoC 216耦合到核210,以及经由芯片间网络直接耦合到多个其他PPU和SMX,例如其他PPU 110和SMX 112。
相应地,ICN控制器220包括通信控制电路222、交换机226,以及多个芯片间端口228,该通信控制电路222经由NoC 216耦合到核210,该多个芯片间端口228耦合到交换机226以及直接耦合到其他PPU和SMX。在本示例中,使用了七个芯片间端口228,即芯片间端口P0至芯片间端口P6。端口228包括发送和接收电路,而控制电路222通过交换机226控制芯片间端口228的进出数据流。
此外,如下文所更详细地描述的,PPU 200包括生成并随后存储在ICN控制器220中的路由表230。起初,路由表230存储在主机存储器中,但随后由驱动器编程到ICN控制器220中的路由寄存器(硬件表)中。在ICN控制器220中有两个路由寄存器:在控制电路222和交换机226中。除了生成和响应读取和写入请求之外,每个PPU 200还作为转发设备工作,转发设备将读取/写入请求和数据从一个设备转发到另一个设备。
换句话说,路由表230标识ICN控制器220中用于与直接和间接连接的设备通信的端口228。此外,尽管为了简单起见未示出,但PPU 200还可以包括通常包括在处理芯片中的附加电路。
图3示出了根据本公开实施例的示例外部单元(SMX)300的框图。在本示例中,每个SMX 112可以用SMX 300实现。如图3所示,SMX 300包括扩展存储器310、存储器控制电路312、以及芯片间网络(ICN)控制器314,存储器控制电路312与扩展存储器310耦合,芯片间网络(ICN)控制器314与扩展存储器310、存储器控制电路312和多个其他直接耦合的PPU和/或SMX中的芯片间网络耦合。
ICN控制器314可以类似于ICN控制器220的方式实现,其包括耦合到扩展存储器310和控制电路312的通信控制电路322、耦合到控制电路322的交换机324、以及与交换机324和一个或多个直接耦合设备耦合的多个芯片间端口326。
在本示例中,使用了七个芯片间端口326,即芯片间端口P0至芯片间端口P6。尽管示出七个端口,但(作为从设备)一个端口足以提供基本访问。附加端口提供附加带宽。此外,可以不需要交换机324。如果存在交换机324,则SMX可以进一步作为转发数据包的桥梁,否则SMX可以仅仅作为提供可访问性的终端设备。简而言之,SMX的端口数是独立的,交换机是可选的并且由SMX的IP设计者决定。端口326包括发送和接收电路,而控制电路322通过交换机324控制芯片间端口326的进出数据流。
SMX 300中的扩展存储器310包括多个存储器空间,其中SMX 300的扩展存储器310中的存储器空间大小相等。例如,每个存储器空间的大小可以为256GB。此外,每个256GB存储器空间表示一个虚拟设备ID。在本示例中,每个扩展存储器310中的存储器的地址空间作为共享存储器空间,可由每个并行处理单元访问。
此外,SMX 300包括生成并随后存储在ICN控制器314中的路由表316。与路由表230类似,路由表316由驱动器编程到ICN控制器314中的路由寄存器(硬件表)中。当控制电路322和交换机324存在时,ICN控制器314中有两个路由寄存器,分别位于控制电路322和交换机324中。
除了从系统中的PPU接收读取和写入请求外,每个SMX 300还作为转发设备工作。路由表316标识ICN控制器314中的端口,在响应于请求的情况下端口用于直接和间接连接的设备,端口还用于将读/写请求和数据从一个设备转发到另一个设备。此外,尽管为了简单起见未示出,但是SMX 300还可以包括通常包括在存储器芯片中的附加电路。
图4示出了根据本公开实施例的示例处理系统400的框图。在本示例中,处理系统400表示处理系统100的部分。如图4所示,处理系统400包括三个PPU(即PPU 410、PPU 412和PPU 414)以及两个SMX(即SMX 416和SMX 418)。
进一步地,在本示例中,PPU 410通过端口420-0、420-1和420-2耦合到SMX 416,通过端口420-3和420-4耦合到PPU 414,通过端口420-5和420-6耦合到SMX 418。相应地,PPU412通过端口430-3和430-4耦合到SMX 416,通过端口430-6耦合到PPU 414,通过端口430-5耦合到SMX 418。PPU 414通过端口440-0耦合到PPU 412,通过端口440-2和440-3耦合到PPU410。
在工作中,当传送数据时,大量数据可以分为多个部分并并行传输,从而大大减少传送数据所需的时间。数据被分成的部分的数量由源设备和目的设备之间的最小链路数定义。
在图4示例中,PPU 410通过三个链路和端口耦合到SMX 416,而PPU 412通过两个链路和端口耦合到SMX 416,使得PPU 410和PPU 412之间的最小链路数是2。在这种情况下,最有效的数据传送发生在基于最小链路数为2将数据分为两部分时,因为,尽管当数据分为三部分时,数据可以在更短的时间内从PPU 410传送到SMX 416,但由三个输入流转换为要转发到PPU 412的两个输出导致SMX 416处的瓶颈,其需要更长的时间。
图5示出了根据本公开实施例的示例存储器地址500。作为一个示例,如图5所示,存储器地址500具有48比特(bit)地址,其中,前10比特B47-B38标识表示1024个虚拟设备的1024个256GB存储器空间。例如,SMX 416可以包括表示16个虚拟设备416-0至416-15的16个256GB存储器空间。在本示例中,前十比特可标识SMX 416中的第三256GB存储器空间/虚拟设备416-2,而其余38比特B37-B0标识该第三256GB存储器空间/虚拟设备416-2中的行。
下面的表1示出了根据本公开实施例的示例路由表。路由表230按照图1所示的方式实现,而路由表316也以类似方式实现。
表1
如表1所示,路由表包括目的ID(dest ID)列、最小链路(minLink)列和七个端口列P0-P6。进一步地,如表1所示,dest ID列中的每个条目是表示存储器空间中存储器行、以及标识用于将数据从PPU 410传输到存储器行的端口的48比特物理地址。前十比特标识SMX416、PPU 412、PPU 414和SMX 418中1024个存储器空间/虚拟设备中的一个。
在本示例中,每个256GB存储器空间表示不同的虚拟设备ID,而每个虚拟设备ID标识用于向虚拟设备发送、接收和转发数据的端口数。在本示例中,SMX 416具有16个256GB存储器空间,表示16个虚拟设备ID:SMX 416-0至SMX 416-15。此外,SMX 418具有4个256GB存储器空间,表示4个虚拟设备ID:SMX 418-0至SMX 418-3。
此外,每个地址还标识存储器空间中的存储器行、以及用于将数据从一个设备传输到另一个设备的端口。另外,如表1所示,PPU 410至SMX 416的最小链路为3,而端口P0-P2被标识为3个发送/接收端口,而端口P3-P6没有被标识。
此外,如表1所示,每个PPU(例如PPU 412)中的共享存储器空间作为256GB存储器空间寻址,尽管只有少量可用存储器空间。因此,路由表具有多个地址,用于标识PPU和SMX中的256GB存储器空间。PPU中的共享存储器空间可以与SMX中的存储器空间组合,以形成并行处理单元的全局共享地址范围。最高的10比特是虚拟设备ID,其用作全局物理地址空间的高位比特。
图6示出了根据本公开实施例的示例地址分配600。作为一个示例,如图6所示,向在SMX中的16个256GB存储器空间分配地址,使得前10比特的四个最低有效比特B41-B38标识16个256GB存储器空间。此外,向另一个SMX中的4个256GB存储器空间分配地址,以使得前10比特的两个最低有效比特B39-B38标识4个256GB存储器空间。
本公开的优点之一是,通过使用SMX存储器,其中SMX存储器包括多个256GB存储器空间,并通过单独寻址每个256GB存储器空间,可以大大减少传送和接收数据所需的时间。尽管按照256GB存储空间的情节描述本公开,但是也可以利用其他大小的存储器空间,例如512GB存储器空间。
在本示例中,在处理系统启动期间通过向每个256GB存储器空间分配静态标识(static identity)来填充(populate)PPU和SMX中的路由表230和316。可以采用多种方式分配标识,例如物理设置或通过软件设置标识开关(identifying switch),或通过自分配软件,其中标识生成令牌(identity-generating token)被传送到处理系统中的每个设备,然后自分配软件在将令牌传送到处理系统中的下一个设备之前自分配唯一标识符。
此后,每个PPU向每个直接连接的PPU和SMX输出广播消息,该PPU和SMX通过识别其自身、设备类型(PPU、SMX-4GB、SMX-24GB、SMX-64GB)和设备地址、以及其耦合的PPU和SMX的标识来响应广播消息。地址可用作表1中所示的索引。
经过几轮之后,每个PPU和SMX确定从每个PPU和SMX到处理系统中每个其他PPU和SMX的一跳(hop)或多跳的一个或多个路径,包括最高效的路径。此后,每个PPU和SMX基于路径效率分配一个或多个芯片间端口,例如端口P0-P6,然后填充PPU和SMX中的路由表230和316。附加的定期广播消息(periodic broadcast message)可用于检测故障的或不起作用的设备,并维护最新的路由表。
现在已经详细参考了本公开的各种实施例,其示例如附图所示。尽管结合各种实施例进行描述,但应理解,这些各种实施例并不旨在限制本公开。相反,本公开旨在涵盖替代品、修改和等效物,这些替代品、修改和等效物可包括在根据权利要求所解释的本公开范围内。
而且,在本公开各种实施例的前述详细描述中,阐述了许多具体细节,以提供对本公开的透彻理解。然而,本领域的普通技术人员将认识到,可以在没有这些特定细节或具有其等效物的情况下实施本公开。在其他事例中,未详细描述众所周知的方法、过程、组件和电路,以避免不必要地模糊本公开各种实施例的方面。
需要注意的是,尽管为了清楚起见,本文可以将方法描述为操作序列,但所描述的操作序列并不一定规定操作顺序。应当理解,一些操作可以被跳过、并行执行或者在不需要保持严格的序列顺序的情况下执行。
根据本公开各种实施例所示出的附图是半图解的,没有按比例绘制,尤其是一些尺寸是为了表达的清晰性,并且在附图中被放大显示。类似地,尽管为了便于描述,附图中的视图通常显示类似的方向,但是附图中的这种描述在大多数情况下是任意的。通常,根据本公开的各种实施例可以在任何方向上操作。
本公开详细描述的一些部分可以根据程序、逻辑块、处理和计算机存储器中数据位操作的其他符号表示来呈现。数据处理领域的技术人员使用这些描述和表示来有效地将其工作的实质传达给此领域的其他技术人员。
在本公开中,程序、逻辑块、过程等被认为是导致期望结果的操作或指令的自洽序列。这些操作是那些利用物理量的物理操作。通常,尽管不是必须的,这些量以能够在计算系统中存储、传输、组合、比较和以其他方式操作的电信号或磁信号的形式存在。事实证明,主要是出于常见用法的原因,将这些信号称为事务、位、值、元素、符号、字符、样本、像素等有时是方便的。
但是,应记住,所有这些和类似的术语都与适当的物理量相关联,且只是适用于这些量的方便标签。除非明确说明,否则从以下讨论中显而易见的,应理解,在整个本公开中,利用诸如“生成”、“确定”、“分配”、“聚合”、“利用”、“虚拟化”、“处理”、“访问”、“执行”、“存储”等术语的讨论,指计算机系统或类似电子计算设备或处理器的动作和过程。
处理系统或类似的电子计算设备或处理器将在计算机系统存储器、寄存器、其他这些信息存储器、和/或其他计算机可读介质中的表示为物理(电子)量的数据操纵或转变为类似地表示为计算机系统存储器、或寄存器、或其他这种信息存储器、传输或显示设备内的物理量的其他数据。
本公开实施例中的技术方案已在前面的章节中参考本公开实施例的附图清楚、完整地描述了。应当注意,本公开的说明书和权利要求书以及上述附图中的术语“第一”、“第二”等用于区分类似对象,并且不一定用于描述特定序列或顺序。应当理解,这些数字可以在适当的情况下互换,以便本文描述的本公开的实施例可以按照本文所示或描述的顺序以外的顺序实现。
本实施例中描述的功能,如果以软件功能单元的形式实现并作为独立产品出售或使用,则可以存储在计算设备可读存储介质中。基于这样的理解,有助于现有技术的本公开实施例的一部分或技术方案的一部分可以以存储在存储介质中的软件产品的形式体现,该存储介质包括用于引起计算设备(其可以是个人计算机、服务器、移动计算设备、或网络设备等)执行本公开的各种实施例中描述的方法的全部或部分步骤的多个指令来执行。前述存储介质包括:可存储程序代码的USB驱动器、便携式硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁盘、光盘等。
本公开说明书中的各个实施例是以渐进的方式描述的,每个实施例侧重于其与其他实施例的区别,各个实施例之间的相同或类似部分可以参考另一种情况。所述实施例仅仅是一部分实施例,而不是本公开所有实施例。本领域普通技术人员在不脱离本发明技术的情况下基于本公开的实施例获得的所有其他实施例均在本公开的范围内。
上述实施例仅用于说明而非限制本公开的技术方案。尽管参考上述实施例对本公开进行了详细描述,但本领域普通技术人员应当理解,上述实施例中记录的技术方案仍然可以被修改,或对其中的部分或全部技术特征进行等效替换。这些修改或替换不会使相应技术方案的实质脱离本公开实施例中技术方案的范围。
应当理解,上述描述是本公开的示例,并且本文所述的本公开的各种替代方案可用于实施本公开。因此,以上权利要求旨在定义本公开的范围,并且这些权利要求范围内的结构和方法、以及其等价物应包括在内。
Claims (14)
1.一种并行处理单元,包括:
核;
高速缓存,与所述核耦合;
处理器存储器,与所述核耦合;以及
芯片间网络控制器,与所述核耦合,所述芯片间网络控制器包括路由表,所述路由表包括多个地址,所述多个地址标识直接和间接地耦合到所述并行处理单元的多个设备中的多个存储器空间,所述多个设备中的多个存储器空间具有相同的大小,每个地址用于标识存储器空间中的存储器行。
2.根据权利要求1所述的并行处理单元,其中,所述处理器存储器被分为第一地址范围和第二地址范围,使得所述第一地址范围仅由所述核访问,所述第二地址范围作为共享地址范围,由直接或间接地耦合到所述并行处理单元的每个设备访问。
3.根据权利要求1所述的并行处理单元,还包括:
片上网络,所述片上网络将所述核和所述处理器存储器耦合在一起,将所述核和所述芯片间网络控制器耦合在一起;
其中,所述芯片间网络控制器与直接耦合到所述并行处理单元的每个设备耦合。
4.根据权利要求3所述的并行处理单元,其中,所述芯片间网络控制器包括多个端口,所述多个端口直接耦合到所述多个设备中的一个或多个设备,一第一路由表中的地址用于标识所述地址相关联的一个或多个端口。
5.一种处理系统,包括:
多个并行处理单元,每个并行处理单元包括:
核;
高速缓存,与所述核耦合;
处理器存储器,与所述核耦合;以及
第一芯片间网络控制器,与所述核耦合,所述第一芯片间网络控制器包括第一路由表,所述第一路由表包括多个地址,所述多个地址标识直接和间接地耦合到所述并行处理单元的多个设备中的多个存储器空间,所述多个设备中的多个存储器空间具有相同的大小,每个地址用于标识存储器空间中的存储器行;以及
多个外部单元,与所述多个并行处理单元直接和间接地耦合,每个外部单元包括扩展存储器,使得所述多个外部单元包括多个扩展存储器,每个外部单元中的所述扩展存储器包括多个存储器空间,所述扩展存储器中的多个存储器空间具有相同的大小,所述扩展存储器包括第二路由表,所述第二路由表包括多个第一地址,所述多个第一地址标识每个扩展存储器中的多个存储器空间,每个地址标识存储器空间中的存储器行。
6.根据权利要求5所述的处理系统,其中,每个扩展存储器中的多个存储器空间作为共享存储器空间,由每个并行处理单元访问。
7.根据权利要求6所述的处理系统,其中,所述并行处理单元的处理器存储器被分为第一地址范围和第二地址范围,使得所述第一地址范围仅由所述并行处理单元的核访问,所述第二地址范围作为共享地址范围,由直接或间接耦合到所述并行处理单元的每个其他并行处理单元访问;其中,所述第一路由表包括标识每个并行处理单元的共享地址范围的地址,所述外部单元的第二路由表包括多个第二地址,所述多个第二地址标识每个并行处理单元的共享地址范围。
8.根据权利要求5所述的处理系统,其中,所述第一芯片间网络控制器与所述其他并行处理单元以及直接耦合到所述并行处理单元的外部单元中的每个单元耦合;所述外部单元还包括第二芯片间网络控制器,所述第二芯片间网络控制器耦合到所述扩展存储器、所述并行处理单元、以及直接耦合到所述外部单元的其他外部单元。
9.根据权利要求8所述的处理系统,其中,所述并行处理单元还包括片上网络,所述片上网络将所述核和所述处理器存储器耦合在一起,以及将所述核和所述第一芯片间网络控制器耦合在一起。
10.根据权利要求8所述的处理系统,其中,所述第一芯片间网络控制器包括多个端口,所述多个端口直接耦合到一个或多个所述外部单元,所述第一路由表中的地址用于标识所述地址相关联的一个或多个端口。
11.根据权利要求5所述的处理系统,其中,每个地址具有第一数量的比特和第二数量的比特,所述第一数量的比特标识存储器空间,所述第二数量的比特标识存储器空间内的行。
12.一种并行处理单元的形成方法,所述形成方法包括:
形成核;
形成耦合到所述核的高速缓存;
形成耦合到所述核的处理器存储器;
形成路由表,所述路由表包括多个地址,所述多个地址标识直接和间接地耦合到所述并行处理单元的多个设备中的多个存储器空间,所述多个设备中的多个存储器空间具有相同的大小,每个地址用于标识存储器空间中的存储器行。
13.根据权利要求12所述的形成方法,其中,所述处理器存储器被分为第一地址范围和第二地址范围,使得所述第一地址范围仅由所述核访问,所述第二地址范围作为共享地址范围,由直接或间接耦合到所述并行处理单元的每个设备访问。
14.根据权利要求13所述的形成方法,还包括:
形成芯片间网络控制器,所述芯片间网络控制器与所述核和直接耦合到所述并行处理单元的每个设备耦合,所述芯片间网络控制器包括多个端口,所述多个端口直接耦合到所述多个设备中的一个或多个设备,第一路由表中的地址用于标识虚拟地址关联的一个或多个端口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459070.XA CN116226023A (zh) | 2021-12-02 | 2021-12-02 | 并行处理单元、处理系统以及相关方法 |
US17/824,804 US20230176737A1 (en) | 2021-12-02 | 2022-05-25 | Routing scheme for heterogeneous interconnected-chip networks using distributed shared memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459070.XA CN116226023A (zh) | 2021-12-02 | 2021-12-02 | 并行处理单元、处理系统以及相关方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226023A true CN116226023A (zh) | 2023-06-06 |
Family
ID=86584744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111459070.XA Pending CN116226023A (zh) | 2021-12-02 | 2021-12-02 | 并行处理单元、处理系统以及相关方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230176737A1 (zh) |
CN (1) | CN116226023A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9077590B2 (en) * | 2009-06-22 | 2015-07-07 | Citrix Systems, Inc. | Systems and methods for providing link management in a multi-core system |
CN107040393B (zh) * | 2015-08-21 | 2020-10-09 | 新华三技术有限公司 | 一种路由管理方法和设备 |
US11668750B2 (en) * | 2021-09-17 | 2023-06-06 | Nvidia Corporation | Performing testing utilizing staggered clocks |
CN116561047A (zh) * | 2022-01-28 | 2023-08-08 | 阿里巴巴(中国)有限公司 | 用于芯片间通信的处理系统及通信方法 |
-
2021
- 2021-12-02 CN CN202111459070.XA patent/CN116226023A/zh active Pending
-
2022
- 2022-05-25 US US17/824,804 patent/US20230176737A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230176737A1 (en) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9026727B2 (en) | Enhanced memory savings in routing memory structures of serial attached SCSI expanders | |
US7028106B2 (en) | Remapping routing information entries in an expander | |
CN100580639C (zh) | 用于控制对具有存储器集线器体系结构的存储模块的存储器存取的方法和系统 | |
US8572206B2 (en) | Transaction processing using multiple protocol engines | |
EP0606368B1 (en) | Packet processing method and apparatus | |
EP3657740B1 (en) | Message forwarding | |
KR19990007287A (ko) | 반도체 집적회로, 컴퓨터 시스템, 데이터 처리장치 및 데이터 처리방법 | |
EP2887223A1 (en) | Memory system, memory module, memory module access method and computer system | |
US20090097348A1 (en) | Integrated circuit including a memory module having a plurality of memory banks | |
JP2011530735A (ja) | メモリモジュール内の独立制御式仮想メモリ装置 | |
JP6287571B2 (ja) | 演算処理装置、情報処理装置、及び、演算処理装置の制御方法 | |
WO2021081409A4 (en) | Methods and apparatus for dma engine descriptors for high speed data systems | |
TW201717026A (zh) | 用於逐頁記憶體通道交錯之系統及方法 | |
CN116431530B (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
TW201729113A (zh) | 使用滑動臨限值位址用於記憶體通道交錯之系統及方法 | |
CN114442908B (zh) | 一种用于数据处理的硬件加速系统及芯片 | |
TW201717025A (zh) | 用於逐頁記憶體通道交錯之系統及方法 | |
US6823402B2 (en) | Apparatus and method for distribution of signals from a high level data link controller to multiple digital signal processor cores | |
CN116226023A (zh) | 并行处理单元、处理系统以及相关方法 | |
CN115905061B (zh) | 数据搬运装置、dma装置、电子设备及数据搬运方法 | |
US20040064644A1 (en) | Structure and method of cache memory data update | |
US20190311517A1 (en) | Data processing system including an expanded memory card | |
CN115407839A (zh) | 服务器结构及服务器集群架构 | |
KR101560015B1 (ko) | 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈 | |
CN106302259B (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 |