CN118012794A - 计算芯粒及电子设备 - Google Patents
计算芯粒及电子设备 Download PDFInfo
- Publication number
- CN118012794A CN118012794A CN202410412656.8A CN202410412656A CN118012794A CN 118012794 A CN118012794 A CN 118012794A CN 202410412656 A CN202410412656 A CN 202410412656A CN 118012794 A CN118012794 A CN 118012794A
- Authority
- CN
- China
- Prior art keywords
- router
- routing
- interface
- memory
- transmitting
- 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.)
- Granted
Links
- 239000007771 core particle Substances 0.000 title claims abstract description 79
- 238000003860 storage Methods 0.000 claims abstract description 231
- 230000005540 biological transmission Effects 0.000 claims abstract description 216
- 238000004364 calculation method Methods 0.000 claims abstract description 82
- 230000008054 signal transmission Effects 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims description 22
- 238000003491 array Methods 0.000 claims description 19
- 229910052710 silicon Inorganic materials 0.000 claims description 7
- 239000010703 silicon Substances 0.000 claims description 7
- 238000013461 design Methods 0.000 abstract description 13
- 238000004891 communication Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 23
- 238000009826 distribution Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 239000002699 waste material Substances 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000003071 parasitic effect Effects 0.000 description 3
- 239000008188 pellet Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 102100035964 Gastrokine-2 Human genes 0.000 description 2
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0062—Bandwidth consumption reduction during transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及芯片领域,提出一种计算芯粒及电子设备。计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,存储芯粒包括的存储阵列连接计算芯粒包括的存储控制器,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,且连接方向与第一平面相交。传输通道数的增加可提升访存带宽,计算芯粒和存储芯粒设置在不同平面可缩短计算芯粒与存储芯粒之间的信号传输路径,降低功耗。使用优化的路由系统完成计算芯粒包括的计算引擎和存储控制器之间的通信,降低路由通道的规格种类数,从而降低路由系统的设计复杂度。该路由系统可以分布式布置在计算芯粒上,降低计算芯粒的面积开销。
Description
技术领域
本公开涉及芯片领域,尤其涉及一种计算芯粒及电子设备。
背景技术
随着近年来人工智能(Artificial Intelligence,AI)应用和高性能计算(Highperformance computing,HPC)应用的规模越来越大,对实现AI应用和HPC应用的算力芯片(如图形处理器(Graphics Processing Unit,GPU)等)的性能提出了越来越高的要求。
算力芯片的性能可以从访存方面和运算方面分别评估。算力芯片上通常设置有多个计算引擎和多个存储阵列,在实际应用中,计算引擎先产生读命令,读命令执行时从存储阵列读取待处理的数据并返回计算引擎。计算引擎根据读出的数据进行运算,产生写命令,写命令执行时将运算结果写入存储阵列中。也就是说,计算引擎和存储阵列之间传输的信号主要是访存命令和数据。算力芯片的访存性能由计算引擎和存储阵列之间信号传输的带宽和功耗来决定。
传统的算力芯片中,受限于计算引擎和存储阵列的封装方式以及硬件输入/输出(input/output,I/O)接口的尺寸,计算引擎和存储阵列的I/O接口密度难以提高,直接限制了信号传输的带宽。另外为提升访存性能,需使得每个计算引擎都能够访存任意存储阵列,而芯片上计算引擎和存储阵列之间的距离通常较远,导致传输路径也较长,信号传输的功耗加大。因此,如何提高计算引擎到存储阵列的访存带宽、降低计算引擎和存储阵列之间的信号传输功耗,成为本领域的研究热点。
发明内容
有鉴于此,本公开提出了一种计算芯粒及电子设备,本公开实施例的计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,形成一种3D堆叠的连接方式,从而增加计算芯粒与存储芯粒之间的输入/输出接口数量、缩短计算芯粒与存储芯粒之间的信号传输路径,可以做到访存带宽的大幅提升和功耗的显著下降。
根据本公开的一方面,提供了一种计算芯粒,所述计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,所述存储芯粒包括多个存储阵列,所述计算芯粒包括多个计算引擎、多个存储控制器以及连接所述计算引擎和所述存储控制器的路由系统,每个存储控制器连接一个存储阵列,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,且连接方向与所述第一平面相交;所述计算引擎用于产生访存命令并传输至所述路由系统,所述访存命令包括访存类型和访存地址;所述路由系统用于响应于接收到所述访存命令且所述访存地址是所属的计算芯粒连接的存储阵列的地址,将所述访存命令传输至与该存储阵列相连的存储控制器;所述存储控制器用于响应于接收到所述访存命令,按照所述访存类型访问连接的存储阵列。
在一种可能的实现方式中,所述计算芯粒通过混合键合或微凸块或硅通孔连接所述存储芯粒。
在一种可能的实现方式中,存储控制器和存储阵列的连接方向与所述第一平面垂直。
在一种可能的实现方式中,所述计算芯粒设置在电子设备中,所述电子设备包括多个计算芯粒,所述计算芯粒还包括连接所述路由系统的至少一个第一互联接收控制器和至少一个第一互联发送控制器,每个第一互联接收控制器连接另一计算芯粒包括的第二互联发送控制器,每个第一互联发送控制器连接另一计算芯粒包括的第二互联接收控制器,所述路由系统还用于响应于接收到所述访存命令且所述访存地址是其他计算芯粒连接的存储阵列的地址,将所述访存命令传输至所属的计算芯粒中、与所述其他计算芯粒连接的第一互联发送控制器;所述第一互联发送控制器用于响应于接收到来自所述路由系统的访存命令,将所述访存命令传输至所述其他计算芯粒的第二互联接收控制器;所述第一互联接收控制器用于响应于接收到来自所述其他计算芯粒中的第二互联发送控制器的访存命令,将所述访存命令传输至所述路由系统。
在一种可能的实现方式中,所述路由系统包括n行m列的路由器阵列以及连接相邻路由器的多个路由通道,第i行第j列的路由器连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,n、m是正整数,A、B、C、D是大于或等于0的整数,1≤i≤n,1≤j≤m;所述计算引擎用于将所述访存命令传输至所述路由系统中与所述计算引擎连接的路由器;所述路由系统中,与所述计算引擎连接的路由器用于将所述访存命令传输至所述与该存储阵列相连的存储控制器。
在一种可能的实现方式中,所述路由系统包括第一路由器、第二路由器和第三路由器,所述第一路由器与所述计算引擎、所述与该存储阵列相连的存储控制器均连接,用于将所述访存命令直接传输至所述与该存储阵列相连的存储控制器;所述第二路由器与所述计算引擎连接,所述第三路由器与所述与该存储阵列相连的存储控制器连接,所述第二路由器用于通过所述路由通道将所述访存命令传输至所述第三路由器,所述第三路由器用于将所述访存命令传输至所述与该存储阵列相连的存储控制器。
在一种可能的实现方式中,响应于单个路由通道连接的两个路由器在同一行,该路由通道的路由方向为水平方向,响应于单个路由通道连接的两个路由器在同一列,该路由通道路由方向为竖直方向,响应于不同路由器之间的信号传输需途径水平方向的路由通道和竖直方向的路由通道,先途径水平方向的路由通道再途径竖直方向的路由通道,或者,先途径竖直方向的路由通道再途径水平方向的路由通道,所述信号包括所述访存命令和待写入存储阵列的数据,或者包括从所述存储阵列读出的数据。
在一种可能的实现方式中,每个路由器都连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,同时连接第j列路由器和第j+1列路由器的每个路由通道相同,同时连接第i行路由器和第i+1行路由器的每个路由通道相同;在m=n时,所述路由系统中的每个路由通道均相同。
在一种可能的实现方式中,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第一数量;其中第一数量为第二数量和第三数量中的最小值,第二数量是指第j+1至m列路由器连接的存储控制器、第一互联接收控制器的总数,第三数量是指第i行的第1至j个路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第四数量,其中第四数量为第五数量和第六数量中的最小值,第五数量是指第1至j列路由器连接的存储控制器、第一互联接收控制器的总数,第六数量是指第i行的第j+1至m个路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第七数量,其中第七数量为第八数量和第九数量中的最小值,第八数量是指第j列的第i+1至n个路由器连接的存储控制器、第一互联接收控制器的总数,第九数量是指第1至i行路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第十数量,其中第十数量为第十一数量和第十二数量中的最小值,第十一数量是指第j列的第1至i个路由器连接的存储控制器、第一互联接收控制器的总数,第十二数量是指第i+1至n行路由器连接的计算引擎、第一互联发送控制器的总数。
在一种可能的实现方式中,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第十三数量,其中第十三数量为第十四数量和第十五数量中的最小值,第十四数量是指等于第i行的第j+1至m个路由器连接的存储控制器、第一互联接收控制器的总数,第十五数量是指第1至j列路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第十六数量,其中第十六数量为第十七数量和第十八数量中的最小值,第十七数量是指第i行的第1至j个路由器连接的存储控制器、第一互联接收控制器的总数,第十八数量是指第j+1至m列路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第十九数量,其中第十九数量为第二十数量和第二十一数量中的最小值,第二十数量是指第i+1至n行路由器连接的存储控制器、第一互联接收控制器的总数,第二十一数量是指第j列的第1至i个路由器连接的计算引擎、第一互联发送控制器的总数;连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第二十二数量,其中第二十二数量为第二十三数量和第二十四数量中的最小值,第二十三数量是指第1至i行路由器连接的存储控制器、第一互联接收控制器的总数,第二十四数量是指第j列的第i+1至n个路由器连接的计算引擎、第一互联发送控制器的总数。
在一种可能的实现方式中,第i行第j列路由器包括多个发送接口和多个接收接口,其中,连接第i行第j列路由器和第i行第j+1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第一数值,在第二传输方向上同时传输的最大信号数量为第二数值;连接第i行第j列路由器和第i+1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第三数值,在第四传输方向上同时传输的最大信号数量为第四数值;连接第i行第j列路由器和第i行第j-1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第五数值,在第二传输方向上同时传输的最大信号数量为第六数值;连接第i行第j列路由器和第i-1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第七数值,在第四传输方向上同时传输的最大信号数量为第八数值;所述多个发送接口包括第一数值的第一发送接口、第三数值的第三发送接口、第六数值的第六发送接口、第八数值的第八发送接口和第九发送接口;所述多个接收接口包括第二数值的第二接收接口、第四数值的第四接收接口、第五数值的第五接收接口、第七数值的第七接收接口和第十接收接口;每个第一发送接口和每个第二接收接口连接所述连接第i行第j列路由器和第i行第j+1列路由器的路由通道;每个第三发送接口和每个第四接收接口连接所述连接第i行第j列路由器和第i+1行第j列路由器的路由通道;每个第五接收接口和每个第六发送接口连接所述连接第i行第j列路由器和第i行第j-1列路由器的路由通道;每个第七接收接口和每个第八发送接口连接所述连接第i行第j列路由器和第i-1行第j列路由器的路由通道;第九发送接口连接第i行第j列路由器连接的存储控制器和第一互联接收控制器;第十接收接口连接第i行第j列路由器连接的计算引擎和第一互联发送控制器。
在一种可能的实现方式中,先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,每个第二接收接口连接每个第三发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;每个第四接收接口连接每个第八发送接口、第九发送接口;每个第五接收接口连接每个第一发送接口、每个第三发送接口、每个第六发送接口、第九发送接口;每个第七接收接口连接每个第三发送接口、第九发送接口;第十接收接口连接每个发送接口。
在一种可能的实现方式中,先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,每个第二接收接口连接每个第六发送接口、第九发送接口;每个第四接收接口连接每个第一发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;每个第五接收接口连接每个第一发送接口、第九发送接口;每个第七接收接口连接每个第一发送接口、以及每个第三发送接口、每个第六发送接口、第九发送接口;第十接收接口连接每个发送接口。
根据本公开的另一方面,提供了一种电子设备,包括至少一个存储芯粒,以及至少一个以上所述的计算芯粒。
根据本公开实施例的计算芯粒,由于设置在第一平面上,并连接第二平面上的存储芯粒,存储芯粒包括多个存储阵列,计算芯粒包括多个计算引擎、多个存储控制器以及连接计算引擎和存储控制器的路由系统,使得计算芯粒与存储芯粒形成3D堆叠结构,缩短了计算引擎与存储阵列之间的距离;每个存储控制器连接一个存储阵列,由于二者设置在不同平面上,因此计算引擎与存储阵列上允许设置的输入/输出接口数大大增加,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,使得计算引擎与存储阵列之间的传输带宽大大增加,并减少了寄生电容;每一对相连的存储控制器和存储阵列的连接方向与于第一平面相交,因此计算引擎和存储阵列之间的传输路径大大缩短,可以降低信号传输功耗。计算引擎用于产生访存命令并传输至路由系统,访存命令包括访存类型和访存地址,路由系统用于响应于接收到访存命令且访存地址是所属的计算芯粒连接的存储阵列的地址,将访存命令传输至与该存储阵列相连的存储控制器,存储控制器用于响应于接收到访存命令,按照访存类型访问连接的存储阵列,使得本公开实施例的计算芯粒具备访存存储芯粒的功能。综上所述,本公开实施例的计算芯粒能够增加计算芯粒与存储芯粒之间的输入/输出接口数量、缩短计算芯粒与存储芯粒之间的信号传输路径,可以做到访存带宽的大幅提升和功耗的显著下降。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出现有技术的全互联架构的片上互联子系统的示意图。
图2示出现有技术的全互联架构的片上互联子系统在高算力芯片上的设置方式的示意图。
图3示出根据本公开实施例的计算芯粒的示例性应用场景。
图4示出根据本公开实施例的计算芯粒的示例性应用场景。
图5示出根据本公开实施例的计算芯粒的示例性应用场景。
图6a示出根据本公开实施例的计算芯粒的结构的示意图。
图6b示出根据本公开实施例的计算芯粒的结构的示意图。
图7示出根据本公开实施例的计算芯粒的结构的示意图。
图8示出根据本公开实施例的路由器、路由通道在计算芯粒上布局的方式的示例。
图9示出根据本公开实施例的路由系统中信号的传输路径的示意图。
图10示出根据本公开实施例的路由系统的结构的示意图。
图11示出根据本公开实施例的路由系统的结构的示意图。
图12示出根据本公开实施例的路由系统的结构的示意图。
图13示出根据本公开实施例的路由器的示例性结构图。
图14示出根据本公开实施例的路由器的示例性结构图。
图15示出根据本公开实施例调整路由通道的路由宽度的示例。
图16示出根据本公开实施例调整路由通道的路由宽度的示例。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
随着近年来人工智能(Artificial Intelligence,AI)应用和高性能计算(Highperformance computing,HPC)应用的规模越来越大,对实现AI应用和HPC应用的算力芯片(如图形处理器(Graphics Processing Unit,GPU)等)的性能提出了越来越高的要求。
算力芯片的性能可以从访存方面和运算方面分别评估。算力芯片上通常设置有多个计算引擎和多个存储阵列,存储阵列通常使用双倍速率(Double Data Rate,DDR)/低功耗双倍速率(Low Power Double Data Rate,LPDDR)/图形双倍速率(Graphics DoubleData Rate,GDDR)同步动态随机存储器和高带宽内存(High Bandwidth memory,HBm)。在实际应用中,计算引擎先产生读命令,读命令执行时从存储阵列读取待处理的数据并返回计算引擎。计算引擎根据读出的数据进行运算,产生写命令,写命令执行时将运算结果写入存储阵列中。也就是说,计算引擎和存储阵列之间传输的信号主要是访存命令和数据。算力芯片的访存性能由计算引擎和存储阵列之间信号传输的带宽和功耗来决定。
传统的算力芯片中,受限于计算引擎和存储阵列的封装方式以及硬件输入/输出接口(I/O)的尺寸,计算引擎和存储阵列的I/O接口密度难以提高,直接限制了信号传输的带宽。另外为提升访存性能,需使得每个计算引擎都能够访存任意存储阵列,而芯片上计算引擎和存储阵列之间的距离通常较远,导致传输路径也较长,信号传输的损耗加大,为保证传输的信号完整性,信号传输的功耗上升是不可避免的。因此,如何提高计算引擎到存储阵列的访存带宽、降低计算引擎和存储阵列之间的信号传输功耗,成为本领域的研究热点。
另外,算力芯片中还设置片上互联子系统,用于连接计算引擎和存储阵列,实现二者之间的信号传输。在高算力芯片中,因其计算引擎比较多,互联复杂性增大,因此片上互联子系统的性能和效率也是算力芯片性能的关键因素。
现有技术中,片上互联子系统常用的互联架构有共享总线互联架构,集中仲裁的全互联架构,星型互联架构,层级式树状互联架构,环形总线互联架构,2D网状互联架构,环形曲面互联架构等等。其中集中仲裁的全互联架构(以下简称全互联架构)和2D网状互联架构是高算力芯片主要采用的两种架构。
图1示出现有技术的全互联架构的片上互联子系统的示意图。
如图1所示,全互联架构的片上互联子系统可以实现所有计算引擎和所有存储阵列的完全互联。全互联架构的片上互联子系统逻辑上可由3部分组成,分别是访存分发单元、访存仲裁单元、以及连接访存分发单元和访存仲裁单元的线路。访存分发单元的总数等于计算引擎的总数,访存仲裁单元的总数等于存储控制器总数。每个访存分发单元连接一个计算引擎,并且连接所有的访存仲裁单元;每个访存仲裁单元连接所有的访存分发单元,并且连接一个存储控制器。每个存储控制器都连接一个存储阵列。
每个计算引擎发出的访存命令先进入到片上互联子系统的访存分发单元,该访存分发单元的作用是依据访存命令包括的地址信息(某一个存储阵列上的地址),将访存命令(在访存命令指示写操作时还包括访存数据)传输到该地址信息对应的访存仲裁单元。每个访存仲裁单元可接收所有的计算引擎发来的访存命令,仲裁出一个访存命令(在访存命令指示写操作时还包括访存数据)输出给该访存命令包括的地址信息对应的存储控制器。如果访存命令指示写操作,那么访存数据和访存命令一起传输给存储控制器连接的存储阵列,由存储阵列将接收到的访存数据写入接收到的访存命令的地址。如果访存命令指示读操作,那么访存命令传输给存储控制器连接的存储阵列,由存储阵列从接收到的访存命令包括的地址信息处读出数据,并原路返回给计算引擎。
使用全互联架构的片上互联子系统时,高算力芯片虽然具有更大的总线吞吐能力,但在其他方面则存在明显缺点。图2示出现有技术的全互联架构的片上互联子系统在高算力芯片上的设置方式的示意图。
如图2所示,高算力芯片中,计算引擎和存储控制器在物理布局上,一般是计算引擎设置在芯片中心,存储控制器围绕计算引擎周边设置。在此情况下,需要在芯片上选择合适的位置,比如芯片的中心位置设置全互联架构的片上互联子系统,并分别连接各计算引擎和各存储控制器,使得片上互联子系统到各计算引擎和各存储控制器的连线的长度最大值达到最小。而计算引擎越多,全互联架构的片上互联子系统的逻辑及走线规模就越大,如图1所示的9个计算引擎和9个存储阵列,需要9x9=81组总线。每组总线都有访存命令通道、写数据通道和读数据通道,由于总线数量庞大,因此走线拥塞问题突出,导致片上互联子系统需要预留比较大的面积来绕线。
此外为使得计算引擎和存储控制器能够连接到片上互联子系统,需要预留很多的走线通道。为了使总线保持较高的工作时钟速率,走线通道之中需要依走线距离插入很多的硬件逻辑模块(如锁存器等)。在物理实现上,这些长距离的走线通道的面积利用率比较低,也造成了宝贵芯片面积的浪费,成为进一步提高芯片算力规模和优化芯片效能的限制性因素。
相比之下,现有技术的2D网状互联架构的片上互联子系统设置了网状的路由节点和相邻路由节点间的路由通道,使得计算引擎和存储控制器连接路由节点,就能够通过至少一个路由器(可选地,还包括路由通道)完成任意一个计算引擎和任意一个存储控制器之间的互联。但是现有技术的2D网状互联架构难以用统一的路由通道设计,在提供最高的带宽吞吐率的同时,满足各个计算引擎同时突发访存的恶劣带宽状况。
有鉴于此,本公开提出了一种计算芯粒及电子设备,本公开实施例的计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,形成一种3D堆叠的连接方式,从而增加计算芯粒与存储芯粒之间的输入/输出接口数量、缩短计算芯粒与存储芯粒之间的信号传输路径,可以做到访存带宽的大幅提升和功耗的显著下降。
在本公开实施例中,对计算芯粒上的路由系统支持的路由方式进行设置,使得部分路由通道得以统一,降低路由通道的设计复杂度及制造成本,提供最高的带宽吞吐率,同时满足各个计算引擎同时突发访存的恶劣带宽状况。
图3示出根据本公开实施例的计算芯粒的示例性应用场景。
如图3所示,计算芯粒可设置在第一平面上,存储芯粒可设置在第二平面上,第一平面与第二平面不重合。
计算芯粒通过多个传输通道与存储芯粒连接。计算芯粒可产生访存命令,访存命令可包括访存类型和访存地址,访存地址可以是存储芯粒上的地址。访存类型包括读访问和写访问,在访存类型是写访问时,计算芯粒还产生访存数据(包括下文所述的待写入存储阵列的数据)。访存命令(和访存数据)可通过传输通道传输给存储芯粒。存储芯粒可对访存命令做出响应,如果访存类型是读访问,那么存储芯粒做出读响应读出访存地址处存储的数据,读出的数据原路返回至计算芯粒;如果访存类型是写访问,那么存储芯粒做出写响应,将访存数据写入访存地址处。
图4示出根据本公开实施例的计算芯粒的示例性应用场景。
如图4所示,该场景可包括多个计算芯粒和多个存储芯粒,每个计算芯粒通过多个传输通道与一个存储芯粒连接,相邻的计算芯粒互相连接。相连接的两个计算芯粒和存储芯粒所在的平面不重合,并分别与连接二者的传输通道相交。
每个计算芯粒可产生访存命令,访存命令可包括访存类型和访存地址,访存地址可以是某个存储芯粒上的地址。访存类型包括读访问和写访问,在访存类型是写访问时,计算芯粒还产生访存数据(包括下文所述的待写入存储阵列的数据)。访存命令(和访存数据)可通过传输通道传输给访存地址所属的存储芯粒。存储芯粒可对访存命令做出响应,如果访存类型是读访问,那么存储芯粒做出读响应读出访存地址处存储的数据,读出的数据原路返回至计算芯粒;如果访存类型是写访问,那么存储芯粒做出写响应,将访存数据写入访存地址处。
图5示出根据本公开实施例的计算芯粒的示例性应用场景。
如图5所示,该场景可包括设置在硅中介或封装基板上的多个计算芯粒和多个存储芯粒,每个计算芯粒通过多个传输通道(未示出)与一个存储芯粒连接,相邻的计算芯粒互相连接。相连接的两个计算芯粒和存储芯粒所在的平面不重合,并分别与连接二者的传输通道(未示出)相交。每个计算芯粒和每个存储芯粒的用途和图4的相关描述中相同,在此不再赘述。
本领域技术人员应理解,在图4和图5所示的应用场景中,多个存储芯粒可以设置在多个平面上并互相堆叠,相邻存储芯粒之间可以通过混合键合或者微凸块或硅通孔连接;多个存储芯粒也可以设置在相同平面上,本公开对此不作限制。
下面介绍计算芯粒实现上述功能的示例性方法。图6a和图6b示出根据本公开实施例的计算芯粒的结构的示意图。
如图6a和图6b所示,在一种可能的实现方式中,计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,存储芯粒包括多个存储阵列,
计算芯粒包括多个计算引擎、多个存储控制器以及连接计算引擎和存储控制器的路由系统,每个存储控制器连接一个存储阵列,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,且连接方向与第一平面相交;
计算引擎用于产生访存命令并传输至路由系统,访存命令包括访存类型和访存地址;
路由系统用于响应于接收到访存命令且访存地址是所属的计算芯粒连接的存储阵列的地址,将访存命令传输至与该存储阵列相连的存储控制器;
存储控制器用于响应于接收到访存命令,按照访存类型访问连接的存储阵列。
举例来说,本公开实施例的计算芯粒设置在第一平面上,并可以连接第二平面上的存储芯粒。存储芯粒与计算芯粒以3D堆叠方式连接在一起,原本只能设置在计算引擎和存储阵列侧面(与第一平面垂直)的I/O接口,可以设置在面积更大的正面(与第一平面平行),更大的面积使得可设置的I/O接口更多,从而做到访存带宽的大幅度提升,规避了高速信号收发电路和开销,减少了寄生电容。
计算芯粒可包括多个计算引擎、多个存储控制器以及连接计算引擎和存储控制器的路由系统。例如参见图6b,计算芯粒X1包括路由系统A1以及连接路由系统A1的计算引擎B10、计算引擎B11、存储控制器C10、存储控制器C11。计算引擎可以是各类处理器,存储控制器可以是用于存储控制的控制器,路由系统用于计算引擎和存储控制器的通信。本公开实施例对于计算引擎、存储控制器的具体实现方式及结构不作限制。路由系统的示例性实现方式及结构的示例可以参见下文的进一步描述。
存储芯粒可包括多个存储阵列,每个存储控制器连接一个存储阵列。例如参见图6b,存储芯粒Y1包括存储阵列D10和存储阵列D11。存储控制器C10连接存储阵列D10,存储控制器C11连接存储阵列D11。存储阵列可以是双倍速率(Double Data Rate,DDR)/低功耗双倍速率(Low Power Double Data Rate,LPDDR)/图形双倍速率(Graphics Double DataRate,GDDR)同步动态随机存储器和高带宽内存(High Bandwidth memory,HBM)。本公开实施例对于存储阵列的具体实现方式及结构不作限制。
如图6a所示,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,且连接方向与第一平面相交。传输通道数可以和I/O接口数量成正比。第一阈值可以根据应用场景需求设置,本公开实施例对于第一阈值的具体数值不作限制。
由于每一对相连的存储控制器和存储阵列的连接方向,与存储控制器所在的第一平面相交,因此能明显缩短计算引擎到存储阵列之间的总线长度,从计算引擎到存储阵列的传输损耗也减小,在保证信号传输准确度的情况下,可以减少访存功耗。
每个计算芯粒上的计算引擎可产生访存命令,访存命令可包括访存类型和访存地址,访存地址可以是任意一个存储阵列的地址。访存类型包括读访问和写访问,在访存类型是写访问时,计算引擎还同时产生访存数据(包括下文所述的待写入存储阵列的数据)。计算引擎可以将访存命令(和访存数据)传输给路由系统。例如计算引擎B10、计算引擎B11产生的访存命令(和访存数据)可传输给路由系统A1。
路由系统可以响应于接收到访存命令(和访存数据)且访存地址是所属的计算芯粒连接的存储阵列的地址,将访存命令(和访存数据)传输至与该存储阵列相连的存储控制器。如图6b所示,计算引擎B10产生访存命令并传输至路由系统A1时,如果访存命令包括的访存地址是所属的计算芯粒X1连接的存储阵列D11的地址,那么路由系统A1可将访存命令传输至存储阵列D11相连的存储控制器C11。
存储控制器可以响应于接收到访存命令,按照访存类型访问连接的存储阵列。在访存类型是读访问时,存储控制器对存储阵列进行读访问,从存储阵列读出的数据原路返回至产生访存命令的计算引擎;在访存类型是写访问时,存储控制器对存储阵列进行写访问,将访存数据写入存储阵列。如图6b所示,存储控制器C11接收访存命令,如果访存类型是读访问,那么存储控制器C11对存储阵列D11进行读访问,读出存储阵列D11上访存地址处存储的数据,读出的数据原路返回至计算引擎B10。如果访存类型是写访问,那么存储控制器C11对存储阵列D11进行写访问,将访存数据写入存储阵列D11上访存地址处。
可选地,存储控制器还可以通过缓存连接路由系统,以进一步缩小信号传输延迟。本公开对于存储控制器是否与路由系统直接连接不作限制。
根据本公开实施例的计算芯粒,由于设置在第一平面上,并连接第二平面上的存储芯粒,存储芯粒包括多个存储阵列,计算芯粒包括多个计算引擎、多个存储控制器以及连接计算引擎和存储控制器的路由系统,使得计算芯粒与存储芯粒形成3D堆叠结构,缩短了计算引擎与存储阵列之间的距离;每个存储控制器连接一个存储阵列,由于二者设置在不同平面上,因此计算引擎与存储阵列上允许设置的输入/输出接口数大大增加,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,使得计算引擎与存储阵列之间的传输带宽大大增加,并减少了寄生电容;每一对相连的存储控制器和存储阵列的连接方向与于第一平面相交,因此计算引擎和存储阵列之间的传输路径大大缩短,可以降低信号传输功耗。计算引擎用于产生访存命令并传输至路由系统,访存命令包括访存类型和访存地址,路由系统用于响应于接收到访存命令且访存地址是所属的计算芯粒连接的存储阵列的地址,将访存命令传输至与该存储阵列相连的存储控制器,存储控制器用于响应于接收到访存命令,按照访存类型访问连接的存储阵列,使得本公开实施例的计算芯粒具备访存存储芯粒的功能。综上所述,本公开实施例的计算芯粒能够增加计算芯粒与存储芯粒之间的输入/输出接口数量、缩短计算芯粒与存储芯粒之间的信号传输路径,可以做到访存带宽的大幅提升和功耗的显著下降。
在一种可能的实现方式中,计算芯粒通过混合键合或微凸块或硅通孔连接所述存储芯粒。在此情况下,可以进一步缩短计算芯粒和存储芯粒之间的信号传输路径长度至微米级。从而大大降低访存功耗、提升访存效率。
在一种可能的实现方式中,存储控制器和存储阵列的连接方向与第一平面垂直。在此情况下,无论计算芯粒和存储芯粒采用何种连接方式,都可使得计算芯粒和存储芯粒之间的信号传输路径达到最短,提升访存性能。
在一种可能的实现方式中,计算芯粒设置在电子设备中,电子设备包括多个计算芯粒,计算芯粒还包括连接路由系统的至少一个第一互联接收控制器和至少一个第一互联发送控制器,每个第一互联接收控制器连接另一计算芯粒包括的第二互联发送控制器,每个第一互联发送控制器连接另一计算芯粒包括的第二互联接收控制器,
路由系统还用于响应于接收到访存命令且访存地址是其他计算芯粒连接的存储阵列的地址,将访存命令传输至所属的计算芯粒中、与其他计算芯粒连接的第一互联发送控制器;
第一互联发送控制器用于响应于接收到来自路由系统的访存命令,将访存命令传输至其他计算芯粒的第二互联接收控制器;
第一互联接收控制器用于响应于接收到来自其他计算芯粒中的第二互联发送控制器的访存命令,将访存命令传输至所述路由系统。
举例来说,计算芯粒和存储芯粒可以设置在电子设备中,在应用于图4和图5所示的应用场景中,也即电子设备包括多个计算芯粒时,计算芯粒还能够对其未直接连接、但其他计算芯粒连接的存储芯粒进行访存。为实现这一点,计算芯粒还包括连接路由系统的至少一个第一互联接收控制器和至少一个第一互联发送控制器,每个第一互联接收控制器连接另一计算芯粒包括的第二互联发送控制器,每个第一互联发送控制器连接另一计算芯粒包括的第二互联接收控制器。此时计算芯粒之间具备通信能力。
本领域技术人员应理解,“第一”“第二”仅用来表明互相通信的互联接收控制器和互联发送控制器并不设置在同一计算芯粒上,本公开并不对单个计算芯粒上互联接收控制器和互联发送控制器的数量进行限定,例如从计算芯粒X1的角度来看,其自身包括的可以是第一互联发送控制器;但从计算芯粒X2的角度来看,计算芯粒X1包括的可以是第二互联发送控制器。
本领域技术人员应理解,在电子设备仅包括一个计算芯粒时,该计算芯粒上无需设置第一互联接收控制器和第一互联发送控制器。本公开实施例对于计算芯粒是否设置第一互联接收控制器和第一互联发送控制器不作限制。
图7示出根据本公开实施例的计算芯粒的结构的示意图。
如图7所示,计算芯粒X1包括路由系统A1以及连接路由系统A1的计算引擎B10、计算引擎B11、存储控制器C10、存储控制器C11、第一互联发送控制器E10、第一互联接收控制器E11。存储芯粒Y1包括存储阵列D10和存储阵列D11。存储控制器C10连接存储阵列D10,存储控制器C11连接存储阵列D11。
计算芯粒X2包括路由系统A2以及连接路由系统A2的计算引擎B20、计算引擎B21、存储控制器C20、存储控制器C21、第二互联发送控制器E20、第二互联接收控制器E21。存储芯粒Y2包括存储阵列D20和存储阵列D21。存储控制器C20连接存储阵列D20,存储控制器C21连接存储阵列D21。
第一互联发送控制器E10连接第二互联接收控制器E21,第二互联发送控制器E20连接第一互联接收控制器E11。
每个计算芯粒上的计算引擎可产生访存命令,访存命令可包括访存类型和访存地址,访存地址可以是任意一个存储阵列的地址。访存类型包括读访问和写访问,在访存类型是写访问时,计算引擎还同时产生访存数据。计算引擎可以将访存命令(和访存数据)传输给其连接的路由系统。例如计算引擎B10、计算引擎B11产生的访存命令(和访存数据)可传输给路由系统A1,计算引擎B20、计算引擎B21产生的访存命令(和访存数据)可传输给路由系统A2。
路由系统可以响应于接收到访存命令(和访存数据)且访存地址是其他计算芯粒连接的存储阵列的地址,将访存命令(和访存数据)传输至与路由系统所属的计算芯粒中、与其他计算芯粒连接的第一互联发送控制器。此时访存命令可能有两种来源:一是所属的计算芯粒中的计算引擎,二是所属的计算芯粒中的第一互联接收控制器。
如图7所示,计算引擎B10产生访存命令并传输至路由系统A1时,如果访存命令包括的访存地址是计算芯粒X2(也即其他计算芯粒)连接的存储阵列D21的地址,那么路由系统A1可将访存命令传输至第一互联发送控制器E10(也即路由系统所属的计算芯粒中、与其他计算芯粒连接的第一互联发送控制器)。
第一互联发送控制器用于响应于接收到来自路由系统的访存命令,将访存命令传输至其他计算芯粒的第二互联接收控制器。其他计算芯粒的第二互联接收控制器可以将该访存命令传输至其他计算芯粒上的路由系统。
如图7所示,第一互联发送控制器E10响应于接收到来自路由系统A1的访存命令,可根据访存地址将访存命令传输至计算芯粒X2(也即其他计算芯粒)上的第二互联接收控制器E21。第二互联接收控制器E21可根据访存地址将访存命令传输至路由系统A2。之后路由系统A2对访存命令的响应方式,与图6b的相关描述中,路由系统A1对访存命令的响应方式可以相同,在此不再赘述。
同理,计算芯粒X2(也即其他计算芯粒)上的计算引擎产生访存命令且访存地址为计算芯粒X1连接的存储阵列上的地址时,计算芯粒X2(也即其他计算芯粒)也可通过其包括的第二互联发送控制器E20,将访存命令传输给计算芯粒X1上的第一互联接收控制器E11。
第一互联接收控制器用于响应于接收到来自其他计算芯粒中的第二互联发送控制器的访存命令,将访存命令传输至路由系统。例如,在第一互联接收控制器E11接收到来自计算芯粒X2(也即其他计算芯粒)中的第二互联发送控制器E20的访存命令时,可将访存命令传输至路由系统A1。之后路由系统A1对访存命令的响应方式,与图6b的相关描述中,路由系统A1对访存命令的响应方式可以相同,在此不再赘述。
本领域技术人员应理解,在计算芯粒和存储芯粒足够多时,两个计算芯粒也可以通过其他一个或多个计算芯粒间接连接,此时某个计算芯粒产生的访存命令(和访存数据),可能并不能直接传输给访存命令所包括的访存地址所属的存储芯粒连接的计算芯粒。在此情况下,产生访存命令(和访存数据)的计算芯粒可以根据访存地址确定访存命令(和访存数据)在计算芯粒间的传输路径,将访存命令(和访存数据)传输给该传输路径上的下一计算芯粒;下一计算芯粒继续传输该访存命令(和访存数据),直到访存命令(和访存数据)被传输给该传输路径上的最后一个计算芯粒后,再由该计算芯粒上的路由系统接收并处理。
此时除了传输路径上的第一个计算芯粒和最后一个计算芯粒,传输路径上的其余计算芯粒的主要用途是中转。在实现中转用途时,计算芯粒可通过其上的第一互联接收控制器接收访存命令(和访存数据),再传输至其上的第一互联发送控制器,通过其上的第一互联发送控制器传输访存命令(和访存数据)至传输路径上的下一计算芯粒的第二互联接收控制器。
通过这种方式,使得计算芯粒具备更强的访存能力。
本领域技术人员应理解,第一互联发送控制器、第一互联接收控制器除了实现同一芯片上的不同计算芯粒之间的通信,还可以用于实现不同芯片上的计算芯粒之间的通信。
下面介绍本公开实施例的路由系统的示例性结构。
在一种可能的实现方式中,路由系统包括n行m列的路由器阵列以及连接相邻路由器的多个路由通道,第i行第j列的路由器连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,n、m是正整数,A、B、C、D是大于或等于0的整数,1≤i≤n,1≤j≤m;
计算引擎用于将访存命令传输至路由系统中与计算引擎连接的路由器;
路由系统中,与计算引擎连接的路由器用于将访存命令传输至与该存储阵列相连的存储控制器。
举例来说,在本公开实施例中,路由系统可以通过n行m列的路由器阵列以及连接相邻路由器的多个路由通道来实现。其中路由器指的是具备路由功能的装置或模块。单个路由器(第i行第j列的路由器)可连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器。其中,计算引擎和第一互联发送控制器可以是发起访存的模块,存储控制器和第一互联接收控制器可以是响应访存的模块,每个路由器都同时连接发起访存的模块和接收访存的模块。
单个路由器的发送总带宽与接收总带宽可以相等。其中,如果每个计算引擎、每个存储控制器、每个第一互联发送控制器、每个第一互联接收控制器的接口带宽相等,则单个路由器所连接的计算引擎和第一互联发送控制器的总数,与连接的存储控制器和第一互联接收控制器的总数相等。也即,A+C可等于B+D。
本领域技术人员应理解,本公开实施例对于每个计算引擎、每个存储控制器、每个第一互联发送控制器、每个第一互联接收控制器的接口带宽是否相等不作限制,对于A+C和B+D是否相等也不作限制,只要满足单个路由器的发送总带宽与接收总带宽相等即可。
路由器可以和其连接的存储控制器合并为一个模块,也可以互相独立,本公开实施例对此不作限制。
本领域技术人员应理解,在电子设备仅包括一个计算芯粒时,C=D=0,也即各路由器仅连接计算引擎和存储控制器。
可以对路由器与各计算引擎、各存储控制器、各第一互联发送控制器、各第一互联接收控制器的连接方式进行设置,使得每个计算引擎、每个存储控制器、每个第一互联发送控制器、每个第一互联接收控制器连接至少一个路由器。
在此情况下,计算引擎产生访存命令并传输至路由系统,可以是产生访存命令并将访存命令传输至路由系统中与计算引擎连接的路由器。路由系统将访存命令传输至与该存储阵列相连的存储控制器,可以是与计算引擎连接的路由器将访存命令传输至与该存储阵列相连的存储控制器。路由器传输访存命令的细节可以参见下文的相关描述。图8示出根据本公开实施例的路由器、路由通道在计算芯粒上布局的方式的示例。如图8所示,各计算引擎和存储控制器可以均匀分布在整个计算芯粒上,并通过均匀分布的路由器和路由通道互联起来,第一互联发送控制器和第一互联接收控制器分布在计算芯粒的边缘。本领域技术人员应理解,路由系统中路由器的物理布局并不一定是绝对平均分布的阵列形式,根据应用场景需求,也可以将相邻路由器和路由通道的合并,本公开实施例对于路由系统的具体结构不作限制。
在一种可能的实现方式中,路由系统包括第一路由器、第二路由器和第三路由器,
第一路由器与计算引擎、所述与该存储阵列相连的存储控制器均连接,用于将所述访存命令直接传输至所述与该存储阵列相连的存储控制器;
所述第二路由器与所述计算引擎连接,所述第三路由器与所述与该存储阵列相连的存储控制器连接,所述第二路由器用于通过所述路由通道将所述访存命令传输至所述第三路由器,所述第三路由器用于将所述访存命令传输至所述与该存储阵列相连的存储控制器。
举例来说,与计算引擎连接的路由器将访存命令传输至与该存储阵列相连的存储控制器有两种可能情况。一种情况是计算引擎、与该存储阵列(例如存储阵列D11)相连的存储控制器(例如存储控制器C11)均连接路由系统中的第一路由器,此时第一路由器既是源路由器也是目的路由器,访存命令的传输只需经过第一路由器即可,无需经过路由通道和其他路由器。也即第一路由器将访存命令直接传输至与该存储阵列(例如存储阵列D11)相连的存储控制器(例如存储控制器C11)。
另一种情况是计算引擎连接路由系统中的第二路由器,与该存储阵列(例如存储阵列D11)相连的存储控制器(例如存储控制器C11)连接路由系统中的第三路由器,此时第二路由器是源路由器,第三路由器是目的路由器,访存命令无法仅通过第二路由器传输到存储控制器C11,需要经过路由通道。也即,第二路由器通过路由通道将访存命令传输至第三路由器,第三路由器将访存命令传输至与该存储阵列(例如存储阵列D11)相连的存储控制器(例如存储控制器C11)。
其中,如果第二路由器和第三路由器相邻,那么第二路由器只通过路由通道就可以将访存命令传输至第三路由器。如果第二路由器和第三路由器不相邻,那么第二路由器还可以通过其他的路由器和路由通道将访存命令传输至第三路由器。
由于路由器和路由通道形成网状结构,因此信号(包括访存命令和/或数据)从一个路由器传输到另一个路由器时,可选的路由通道有很多。为避免路由通道拥塞,可以提前对信号在路由系统中的传输方式进行设置。下面给出本公开实施例的信号在路由系统中的传输方式的示例。
在一种可能的实现方式中,响应于单个路由通道连接的两个路由器在同一行,该路由通道的路由方向为水平方向,响应于单个路由通道连接的两个路由器在同一列,该路由通道的路由方向为竖直方向,
响应于不同路由器之间的信号传输需途径水平方向的路由通道和竖直方向的路由通道,先途径水平方向的路由通道再途径竖直方向的路由通道,或者,先途径竖直方向的路由通道再途径水平方向的路由通道,所述信号包括所述访存命令和待写入存储阵列的数据,或者包括从所述存储阵列读出的数据。
举例来说,由于路由系统包括n行m列的路由器阵列,因此每一行都包括m个路由器,每一列都包括n个路由器。路由通道连接相邻路由器,也就是说,每一行的任意两个相邻路由器都通过一个路由通道连接,每一列的任意两个相邻路由器都通过一个路由通道连接。单个路由通道连接的两个路由器在同一行时,该路由通道的路由方向可以为水平方向,单个路由通道连接的两个路由器在同一列时,该路由通道的路由方向可以为竖直方向。
在此情况下,不同路由器之间的信号传输需途径的路由通道,可能仅有水平方向的路由通道,也可能仅有竖直方向的路由通道,也可能既有水平方向的路由通道又有竖直方向的路由通道。信号包括访存命令和待写入存储阵列的数据,或者包括从存储阵列读出的数据。
在不同路由器之间的信号传输需途径水平方向的路由通道和竖直方向的路由通道时,两种路由方向的路由通道的途径顺序可以设置为,先途径水平方向的路由通道再途径竖直方向的路由通道,或者,设置为先途径竖直方向的路由通道再途径水平方向的路由通道。图9示出根据本公开实施例的路由系统中信号的传输路径的示意图。
如图9所示,假设m=4,n=3。以先途径水平方向的路由通道再途径竖直方向的路由通道为例,则从源路由器02传输信号到目的路由器21时,传输路径可以是路由器02→路由器12→路由器22→路由器21;从源路由器10传输信号到目的路由器31时,传输路径可以是路由器10→路由器20→路由器30→路由器31。
先途径竖直方向的路由通道再途径水平方向的路由通道时,传输路径的确定方式与先途径水平方向的路由通道再途径竖直方向的路由通道类似,在此不再赘述。
每个路由通道都可以双向传输信号,例如水平方向的路由通道可以按从左至右的第一传输方向和从右至左的第二传输方向传输信号,竖直方向的路由通道可以按从上至下的第三传输方向和从下至上的第四传输方向传输信号。在两种路由方向的路由通道的途径顺序的设置方式不同的情况下,对路由通道在每个传输方向的路由宽度设置可以不同。其中,路由通道在每个传输方向的路由宽度可以等于该传输方向上同时传输的最大信号数量。
下面介绍本公开实施例中路由通道的路由宽度的示例性设置方式。
在一种可能的实现方式中,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,
先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第一数量;其中第一数量为第二数量和第三数量中的最小值,第二数量是指第j+1至m列路由器连接的存储控制器、第一互联接收控制器的总数,第三数量是指第i行的第1至j个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第四数量,其中第四数量为第五数量和第六数量中的最小值,第五数量是指第1至j列路由器连接的存储控制器、第一互联接收控制器的总数,第六数量是指第i行的第j+1至m个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第七数量,其中第七数量为第八数量和第九数量中的最小值,第八数量是指第j列的第i+1至n个路由器连接的存储控制器、第一互联接收控制器的总数,第九数量是指第1至i行路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第十数量,其中第十数量为第十一数量和第十二数量中的最小值,第十一数量是指第j列的第1至i个路由器连接的存储控制器、第一互联接收控制器的总数,第十二数量是指第i+1至n行路由器连接的计算引擎、第一互联发送控制器的总数。
如图9所示,以i=2、j=2为例,第i行第j列路由器可以是路由器11,第i行第j+1列路由器可以是路由器21,第i+1行第j列路由器可以是路由器10。
连接第i行第j列路由器和第i行第j+1列路由器的路由通道在第一传输方向上传输信号时,该信号的目的路由器可以是第j+1至m列路由器中的任意一个,该信号的源路由器可以是第i行的第1至j个路由器中的任意一个。
参见图9,路由器11和路由器21之间的路由通道在从左至右的第一传输方向上传输信号时,由于已经是水平方向,因此该信号的目的路由器可能是路由器11右侧的任意一个路由器,也即路由器20、21、22、30、31、32中的任意一个。该信号的源路由器只能是路由器21左侧且与路由器21同一行的任意一个路由器,也即路由器01和路由器11中的一个。
在不考虑路由方向的前提下,假设路由宽度足够大,那么每个路由器同时接收的最大信号数量等于该路由器连接的存储控制器和第一互联接收控制器的总数。每个路由器同时发送的最大信号数量等于该路由器连接的计算引擎和第一互联发送控制器的总数。在此情况下,路由器01和路由器11同时发送的最大信号数量等于路由器01和路由器11连接的计算引擎、第一互联发送控制器的总数,路由器20、21、22、30、31、32同时接收的最大信号数量等于路由器20、21、22、30、31、32连接的存储控制器和第一互联接收控制器的总数。
在考虑路由方向时,连接路由器11和路由器21的路由通道在第一传输方向传输的信号,是由路由器01和路由器11发送,并被路由器20、21、22、30、31、32接收的,因此连接路由器11和路由器21的路由通道在第一传输方向上同时传输的最大信号数量,实际上等于路由器01和路由器11同时发送的最大信号数量,和路由器20、21、22、30、31、32同时接收的最大信号数量中更小的一个。原因在于,如果路由器01和路由器11同时发送的最大信号数量小于路由器20、21、22、30、31、32同时接收的最大信号数量,那么即便将路由器11和路由器21之间的路由通道在第一传输方向上同时传输的最大信号数量设置为大于路由器01和路由器11同时发送的最大信号数量的值,实际同时发送过来的信号数量的最大值也达不到设置的值,存在带宽浪费。同理,如果路由器01和路由器11同时发送的最大信号数量大于路由器20、21、22、30、31、32同时接收的最大信号数量,那么即便将路由器11和路由器21之间的路由通道在第一传输方向上同时传输的最大信号数量设置为大于路由器20、21、22、30、31、32同时接收的最大信号数量的值,实际同时接收的信号数量的最大值也达不到设置的值,信号会长时间占用带宽,带宽得不到释放。
因此,将路由器11和路由器21之间的路由通道在第一传输方向上同时传输的最大信号数量设置为路由器01和路由器11同时发送的最大信号数量和路由器20、21、22、30、31、32同时接收的最大信号数量中更小的一个是更合适的。也即,连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第一数量;其中第一数量为第二数量和第三数量中的最小值,第二数量是指第j+1至m列路由器连接的存储控制器、第一互联接收控制器的总数(也即第j+1至m列路由器同时接收的最大信号数量),第三数量是指第i行的第1至j个路由器连接的计算引擎、第一互联发送控制器的总数(也即第i行的第1至j个路由器同时发送的最大信号数量)。在此情况下,既不会出现带宽浪费也不会使得带宽得不到释放。
以此类推,连接第i行第j列路由器和第i行第j+1列路由器的路由通道在第二传输方向上传输信号时,该信号的目的路由器可以是第1至j列路由器中的任意一个,该信号的源路由器可以是第i行的第j+1至m个路由器中的任意一个。
参见图9,路由器11和路由器21之间的路由通道在从右至左的第二传输方向上传输信号时,由于已经是水平方向,因此该信号的目的路由器可能是路由器21左侧的任意一个路由器,也即路由器00、01、02、10、11、12中的任意一个。该信号的源路由器只能是路由器11右侧且与路由器11同一行的任意一个路由器,也即路由器21和路由器31中的一个。
在此情况下,路由器21和路由器31同时发送的最大信号数量等于路由器21和路由器31连接的计算引擎、第一互联发送控制器的总数,路由器00、01、02、10、11、12同时接收的最大信号数量等于路由器00、01、02、10、11、12连接的存储控制器和第一互联接收控制器的总数。
连接路由器11和路由器21的路由通道在第二传输方向传输的信号,是由路由器21和路由器31发送,并被路由器00、01、02、10、11、12接收的,因此连接路由器11和路由器21的路由通道在第二传输方向上同时传输的最大信号数量,实际上等于路由器21和路由器31同时发送的最大信号数量,和路由器00、01、02、10、11、12同时接收的最大信号数量中更小的一个。也即,连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第四数量,其中第四数量为第五数量和第六数量中的最小值,第五数量是指第1至j列路由器连接的存储控制器、第一互联接收控制器的总数(也即第1至j列路由器同时接收的最大信号数量),第六数量是指第i行的第j+1至m个路由器连接的计算引擎、第一互联发送控制器的总数(也即第i行的第j+1至m个路由器同时发送的最大信号数量)。
连接第i行第j列路由器和第i+1行第j列路由器的路由通道在第三传输方向上传输信号时,该信号的目的路由器可以是第j列的第i+1至n个路由器中的任意一个,该信号的源路由器可以是第1至i行路由器中的任意一个。
参见图9,路由器11和路由器10之间的路由通道在从上至下的第三传输方向上传输信号时,由于已经是竖直方向,因此该信号的目的路由器只能是路由器10。该信号的源路由器可能是路由器01、02、11、12、21、22、31、32中的任意一个。
在此情况下,路由器01、02、11、12、21、22、31、32同时发送的最大信号数量等于路由器01、02、0、11、12、21、22、31、32连接的计算引擎、第一互联发送控制器的总数,路由器10同时接收的最大信号数量等于路由器10连接的存储控制器和第一互联接收控制器的总数。
路由器11和路由器10之间的路由通道在第三传输方向传输的信号,是由路由器01、02、11、12、21、22、31、32发送,并被路由器10接收的,因此路由器11和路由器10之间的路由通道在第三传输方向上同时传输的最大信号数量,实际上等于路由器01、02、11、12、21、22、31、32同时发送的最大信号数量,和路由器10同时接收的最大信号数量中更小的一个。也即,连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第七数量,其中第七数量为第八数量和第九数量中的最小值,第八数量是指第j列的第i+1至n个路由器连接的存储控制器、第一互联接收控制器的总数(也即第j列的第i+1至n个路由器同时接收的最大信号数量),第九数量是指第1至i行路由器连接的计算引擎、第一互联发送控制器的总数(也即第1至i行路由器同时发送的最大信号数量)。
连接第i行第j列路由器和第i+1行第j列路由器的路由通道在第四传输方向上传输信号时,该信号的目的路由器可以是第j列的第1至i个路由器中的任意一个,该信号的源路由器可以是第i+1至n行路由器中的任意一个。
参见图9,路由器11和路由器10之间的路由通道在从下至上的第四传输方向上传输信号时,由于已经是竖直方向,因此该信号的目的路由器只能是路由器11和路由器12中的一个。该信号的源路由器可能是路由器00、10、20、30中的任意一个。
在此情况下,路由器00、10、20、30同时发送的最大信号数量等于路由器00、10、20、30连接的计算引擎、第一互联发送控制器的总数,路由器11和路由器12同时接收的最大信号数量等于路由器11和路由器12连接的存储控制器和第一互联接收控制器的总数。
路由器11和路由器10之间路由通道在第四传输方向传输的信号,是由路由器00、10、20、30发送,并被路由器11和路由器12接收的,因此路由器11和路由器10之间路由通道在第四传输方向上同时传输的最大信号数量,实际上等于路由器00、10、20、30同时发送的最大信号数量,和路由器11和路由器12同时接收的最大信号数量中更小的一个。也即,连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第十数量,其中第十数量为第十一数量和第十二数量中的最小值,第十一数量是指第j列的第1至i个路由器连接的存储控制器、第一互联接收控制器的总数(也即第j列的第1至i个路由器同时接收的最大信号数量),第十二数量是指第i+1至n行路由器连接的计算引擎、第一互联发送控制器的总数(也即第i+1至n行路由器同时发送的最大信号数量)。
通过这种方式,使得先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,每个路由通道的路由宽度设置都是最合适的,既不会出现带宽浪费也不会使得带宽得不到释放。
在一种可能的实现方式中,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,
先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第十三数量,其中第十三数量为第十四数量和第十五数量中的最小值,第十四数量是指等于第i行的第j+1至m个路由器连接的存储控制器、第一互联接收控制器的总数,第十五数量是指第1至j列路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第十六数量,其中第十六数量为第十七数量和第十八数量中的最小值,第十七数量是指第i行的第1至j个路由器连接的存储控制器、第一互联接收控制器的总数,第十八数量是指第j+1至m列路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第十九数量,其中第十九数量为第二十数量和第二十一数量中的最小值,第二十数量是指第i+1至n行路由器连接的存储控制器、第一互联接收控制器的总数,第二十一数量是指第j列的第1至i个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第二十二数量,其中第二十二数量为第二十三数量和第二十四数量中的最小值,第二十三数量是指第1至i行路由器连接的存储控制器、第一互联接收控制器的总数,第二十四数量是指第j列的第i+1至n个路由器连接的计算引擎、第一互联发送控制器的总数。
先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,各路由通道的路由宽度设置方式,与先途径水平方向的路由通道再途径竖直方向的路由通道时类似,只要满足不会出现带宽浪费也不会使得带宽得不到释放即可,在此不再赘述。
图10-图12示出根据本公开实施例的路由系统的结构的示意图。图10和图11以先途径水平方向的路由通道再途径竖直方向的路由通道作为示例。图12以先途径竖直方向的路由通道再途径水平方向的路由通道作为示例。
在一种可能的实现方式中,每个路由器都连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,同时连接第j列路由器和第j+1列路由器的每个路由通道相同,同时连接第i行路由器和第i+1行路由器的每个路由通道相同;
在m=n时,所述路由系统中的每个路由通道均相同。
举例来说,如图10所示,为了降低路由系统中各路由通道的设计复杂度,可以使得每个路由器都连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器。在此情况下,每个路由器连接的计算引擎、第一互联发送控制器的总数都相同,并等于每个路由器连接的存储控制器、第一互联接收控制器的总数。此时每个路由器接收的最大信号数量等于发送的最大信号数量且等于t。
如图10所示,假设t=1,对于一个包括n行m列路由器阵列的路由系统,在先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,位于同一行的水平方向的m-1个传输通道中,从最左侧的路由通道到最右侧的路由通道,在从左至右的第一传输方向上的路由宽度依次为1,2,3,……,m-2,m-1;从最右侧的路由通道到最左侧的路由通道,在从右至左的第二传输方向上的路由宽度依次为1,2,……,m-3,m-2,m-1。位于同一列的竖直方向的n-1个传输通道中,从最上侧的路由通道到最下侧的路由通道,在从上至下的第三传输方向上的路由宽度依次为n-1,n-2,n-3,……,2,1;从最下侧的路由通道到最上侧的路由通道,在从下至上的第三传输方向上的路由宽度依次为n-1,n-2,……,3,2,1。
结合图10可以看出,同时连接第j列路由器和第j+1列路由器的每个路由通道相同,同时连接第i行路由器和第i+1行路由器的每个路由通道相同。因此整体所需要的路由通道规格种类数为m+n-2。
同理,在先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,假设t=1,位于同一行的水平方向的m-1个传输通道中,从最左侧的路由通道到最右侧的路由通道,在从左至右的第一传输方向上的路由宽度依次为m-1,m-2,……,3,2,1;从最右侧的路由通道到最左侧的路由通道,在从右至左的第二传输方向上的路由宽度依次为m-1,m-2,……,3,2,1。位于同一列的竖直方向的n-1个传输通道中,从最上侧的路由通道到最下侧的路由通道,在从上至下的第三传输方向上的路由宽度依次为1,2,3,……,n-2,n-1;从最下侧的路由通道到最上侧的路由通道,在从下至上的第三传输方向上的路由宽度依次为1,2,3,……,n-2,n-1。
此时同时连接第j列路由器和第j+1列路由器的每个路由通道相同,同时连接第i行路由器和第i+1行路由器的每个路由通道相同。因此整体所需要的路由通道规格种类数为m+n-2。
在m=n时,每一行的第i个路由通道与每一列的第(m-i)个路由通道相等(示例可参见图11),因此整体所需要的路由通道规格种类数为m+n。
如图11所示,假设路由系统中,m=n=3,每个路由器连接的存储控制器和第一互联接收控制器的总数、每个路由器连接的计算引擎和互联发送控制器的总数都相等,并且等于1。
则以先途径水平方向的路由通道再途径竖直方向的路由通道为例,对该路由系统中的路由通道进行设计后,各路由通道的规格可以是:连接路由器00、10的路由通道,连接路由器01、11的路由通道,连接路由器02、12的路由通道规格相同,在第一传输方向同时传输的最大信号数量都等于1,在第二传输方向同时传输的最大信号数量都等于2;连接路由器10、20的路由通道,连接路由器11、21的路由通道,连接路由器12、22的路由通道规格相同,在第一传输方向同时传输的最大信号数量都等于2,在第二传输方向同时传输的最大信号数量都等于1;连接路由器00、01的路由通道,连接路由器10、11的路由通道,连接路由器20、21的路由通道规格相同,在第三传输方向同时传输的最大信号数量都等于1,在第四传输方向同时传输的最大信号数量都等于2;连接路由器01、02的路由通道,连接路由器11、12的路由通道,连接路由器21、22的路由通道规格相同,在第三传输方向同时传输的最大信号数量都等于2,在第四传输方向同时传输的最大信号数量都等于1。
先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,每个路由通道的规格如图12所示,在此不再赘述。
通过这种方式,使得路由通道规格种类数得以降低,方便逻辑设计和物理设计,从而降低路由系统的设计复杂度。
下面介绍路由器的结构设计方式。
在一种可能的实现方式中,第i行第j列路由器包括多个发送接口和多个接收接口,其中,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第一数值,在第二传输方向上同时传输的最大信号数量为第二数值;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第三数值,在第四传输方向上同时传输的最大信号数量为第四数值;
连接第i行第j列路由器和第i行第j-1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第五数值,在第二传输方向上同时传输的最大信号数量为第六数值;
连接第i行第j列路由器和第i-1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第七数值,在第四传输方向上同时传输的最大信号数量为第八数值;
多个发送接口包括第一数值的第一发送接口、第三数值的第三发送接口、第六数值的第六发送接口、第八数值的第八发送接口和第九发送接口;
多个接收接口包括第二数值的第二接收接口、第四数值的第四接收接口、第五数值的第五接收接口、第七数值的第七接收接口和第十接收接口;
每个第一发送接口和每个第二接收接口连接所述连接第i行第j列路由器和第i行第j+1列路由器的路由通道;
每个第三发送接口和每个第四接收接口连接所述连接第i行第j列路由器和第i+1行第j列路由器的路由通道;
每个第五接收接口和每个第六发送接口连接所述连接第i行第j列路由器和第i行第j-1列路由器的路由通道;
每个第七接收接口和每个第八发送接口连接所述连接第i行第j列路由器和第i-1行第j列路由器的路由通道;
第九发送接口连接第i行第j列路由器连接的存储控制器和第一互联接收控制器;
第十接收接口连接第i行第j列路由器连接的计算引擎和第一互联发送控制器。
以图11为例,假设路由器11是第i行第j列路由器,那么第一数值可等于2,第二数值等于1,第三数值可等于1,第四数值可等于2,第五数值可等于1,第六数值可等于2,第七数值可等于2,第八数值可等于1。
路由器可通过其上设置的接口连接路由通道。为了降低信号传输复杂度,可对路由器上的接口按类型进行区分,分为发送接口和接收接口。其中发送接口用于发送信号,接收接口用于接收信号。通过不同路由通道发送给同一路由器的信号,可以发送给该路由器上不同的接收接口;同一路由器发送给不同路由通道的信号,可以从该路由器上不同的发送接口发出。
仍以路由器11为例,由于第一数值等于2,因此路由器11需具备同时发送2个信号到连接路由器11与路由器21的路由通道的能力,故路由器11上可包括2个第一发送接口;同理,由于第三数值等于1、第六数值等于2、第八数值等于1,因此路由器11上可包括1个第三发送接口、2个第六发送接口、1个第八发送接口。
由于第二数值等于1,因此路由器11需具备同时接收来自连接路由器11和路由器21的路由通道的信号的能力,故路由器11上可包括1个第二接收接口;同理,由于第四数值等于2,第五数值等于1,第七数值等于2,因此路由器11上可包括2个第四接收接口,1个第五接收接口,2个第七接收接口。
由于第一发送接口的数量等于第一数值,第二接收接口的数量等于第二数值,第一数值和第二数值是连接第i行第j列路由器和第i行第j+1列路由器的路由通道的路由宽度,因此第一发送接口和第二接收接口可以与连接第i行第j列路由器和第i行第j+1列路由器的路由通道相连接。同理,第三发送接口和第四接收接口可以和连接第i行第j列路由器和第i+1行第j列路由器的路由通道相连接;第五接收接口和第六发送接口可以和连接第i行第j列路由器和第i行第j-1列路由器的路由通道相连接;第七接收接口和第八发送接口可以和连接第i行第j列路由器和第i-1行第j列路由器的路由通道相连接。
第九发送接口可以连接第i行第j列路由器连接的存储控制器和第一互联接收控制器;第十接收接口可以连接第i行第j列路由器连接的计算引擎和第一互联发送控制器。
图13示出根据本公开实施例的路由器的示例性结构图。图13示出的是图11所示的路由系统中的路由器11的结构。
如图13所示,路由器11可包括第一发送接口R11、R12,第三发送接口R31,第六发送接口R61、R62,第八发送接口R81,第九发送接口R91。以及第二接收接口R21,第四接收接口R41、R42,第五接收接口R51,第七接收接口R71、R72,第十接收接口R101。
在此情况下,第一发送接口R11、R12和第二接收接口R21可以与连接路由器11和路由器21的路由通道相连。第三发送接口R31和第四接收接口R41、R42可以与连接路由器11和路由器10的路由通道相连。第五接收接口R51和第六发送接口R61、R62可以与连接路由器11和路由器01的路由通道相连。第七接收接口R71、R72和第八发送接口R81可以与连接路由器11和路由器12的路由通道相连。第九发送接口R91可以连接路由器11连接的存储控制器和第一互联接收控制器。第十接收接口R101可以连接路由器11连接的计算引擎和第一互联发送控制器。
图14示出根据本公开实施例的路由器的示例性结构图。图14示出的是图12所示的路由系统中的路由器11的结构。
先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,路由器的接口数量和类型的设置方式与先途径水平方向的路由通道再途径竖直方向的路由通道时类似,此时路由器11作为第i行第j列路由器时,第一数值可等于1,第二数值等于2,第三数值可等于2,第四数值可等于1,第五数值可等于2,第六数值可等于1,第七数值可等于1,第八数值可等于2。也即,如图14所示,路由器11上可包括1个第一发送接口K11,2个第二接收接口K21、K22,2个第三发送接口K31、K32,1个第四接收接口K41,2个第五接收接口K51、K52,1个第六发送接口K61、1个第七接收接口K71、2个第八发送接口K81、K82、1个第九发送接口K91、1个第十接收接口K101。
通过这种方式,使得每个路由器都可以通过较少的接口实现较低的信号传输复杂度。
下面介绍本公开实施例的路由器中发送接口和接收接口的示例性连接方式。
在一种可能的实现方式中,先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,
每个第二接收接口连接每个第三发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;
每个第四接收接口连接每个第八发送接口、第九发送接口;
每个第五接收接口连接每个第一发送接口、每个第三发送接口、每个第六发送接口、第九发送接口;
每个第七接收接口连接每个第三发送接口、第九发送接口;
第十接收接口连接每个发送接口。
在先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,仍以图13为例,此时第一发送接口R11、R12可向路由器20/21/22发送信号;第二接收接口R21可接收路由器21发来的信号。第三发送接口R31可向路由器10发送信号;第四接收接口R41、R42可接收路由器00/10/20发来的信号。第五接收接口R51可接收路由器01发来的信号,第六发送接口R61、R62可向路由器00/01/02发送信号。第七接收接口R71、R72可接收路由器02/12/22发来的信号,第八发送接口R81可向路由器12发送信号。第九发送接口R91可向路由器11连接的存储控制器和第一互联接收控制器发送信号;第十接收接口R101可接收来自路由器11连接的计算引擎和第一互联发送控制器的信号。
根据图13可看出,在先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,路由器21发来的、经第二接收接口R21接收到的信号只会发给路由器10/11/12/00/01/02,因此第二接收接口R21只需连接第三发送接口R31、第八发送接口R81、第九发送接口R91和第六发送接口R61、R62。路由器00/10/20发来且经第四接收接口R41、R42接收到的信号只会发给路由器12/11,因此第四接收接口R41、R42只需连接第八发送接口R81和第九发送接口R91。路由器01发来、第五接收接口R51接收的信号,只会发给路由器10/11/12/20/21/22,因此第五接收接口R51只需连接第一发送接口R11、R12,第三发送接口R31,第八发送接口R81、第九发送接口R91。路由器02/12/22发来的、且经第七接收接口R71、R72接收到的信号只会发给路由器10/11,因此第七接收接口R71、R72只需连接第三发送接口R31和第九发送接口R91。第十接收接口R101接收的、路由器11自身连接的计算引擎和第一互联发送控制器发来的信号,可以发给路由器00/01/02/10/11/12/20/21/22,因此第十接收接口R101需连接所有的发送接口。
通过这种方式,使得先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,路由器可以满足对信号进行分发/仲裁的需求,保证路由器具备最大带宽,同时避免路由器的通用结构带来的资源冗余问题。
图11中其他路由器的结构设计与路由器11类似,在此不再对图11中其他路由器的具体结构再做描述。
在一种可能的实现方式中,先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,
每个第二接收接口连接每个第六发送接口、第九发送接口;
每个第四接收接口连接每个第一发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;
每个第五接收接口连接每个第一发送接口、第九发送接口;
每个第七接收接口连接每个第一发送接口、以及每个第三发送接口、每个第六发送接口、第九发送接口;
第十接收接口连接每个发送接口。
举例来说,在先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,仍以图14为例,此时第一发送接口K11可向路由器21发送信号;第二接收接口K21、K22可接收路由器20/21/22发来的信号。第三发送接口K31、K32可向路由器00/10/20发送信号;第四接收接口K41可接收路由器10发来的信号。第五接收接口K51、K52可接收路由器00/01/02发来的信号,第六发送接口K61可向路由器01发送信号。第七接收接口K71可接收路由器12发来的信号,第八发送接口K81、K82可向路由器02/12/22发送信号。第九发送接口K91可向路由器11连接的存储控制器和第一互联接收控制器发送信号;第十接收接口K101可接收来自路由器11连接的计算引擎和第一互联发送控制器的信号。
根据图14可看出,在先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,路由器20/21/22发来且经第二接收接口K21、K22接收到的信号只会发给路由器01/11,因此第二接收接口K21、K22只需连接第六发送接口K61、第九发送接口R91。路由器10发来且经第四接收接口K41接收到的信号只会发给路由器01/11/21/02/12/22,因此第四接收接口K41只需连接第一发送接口K11、第六发送接口K61、第八发送接口K81、K82和第九发送接口K91。路由器00/01/02发来且经第五接收接口K51、K52接收的信号,只会发给路由器11/21,因此第五接收接口K51、K52只需连接第一发送接口K11、第九发送接口K91。路由器12发来的、且经第七接收接口K71接收到的信号只会发给路由器00/10/20/01/11/21,因此第七接收接口K71只需连接第一发送接口K11、第三发送接口K31、K32,第六发送接口K61和第九发送接口K91。第十接收接口K101接收的、路由器11自身连接的计算引擎和第一互联发送控制器发来的信号,可以发给路由器00/01/02/10/11/12/20/21/22,因此第十接收接口K101需连接所有的发送接口。
通过这种方式,使得先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,路由器可以满足对信号进行分发/仲裁的需求,保证路由器具备最大带宽,同时避免路由器的通用结构带来的资源冗余问题。
图12中其他路由器的结构设计与路由器11类似,在此不再对图12中其他路由器的具体结构再做描述。
本公开还提供一种电子设备,包括至少一个存储芯粒,以及至少一个以上所述的计算芯粒。电子设备可以是终端设备或服务器,本公开实施例对于电子设备的具体类型不作限制。
下面介绍对该电子设备上计算芯粒和存储芯粒的数量、计算芯粒的结构的示例性规划流程。
步骤1,根据用户提供的算力需求规划计算芯粒的数量以及每一计算芯粒的算力,根据用户提供的访存带宽需求规划存储芯粒的数量以及每一存储芯粒的访存带宽。
步骤2,针对每一计算芯粒,根据该计算芯粒的算力,确定该计算芯粒的计算引擎和第一互联发送控制器的数量。针对每一存储芯粒,根据该存储芯粒的访存带宽,确定该存储芯粒上的存储阵列数量以及每一存储阵列的访存带宽。针对每一计算芯粒确定与该计算芯粒相连接的存储芯粒,根据该存储芯粒的存储阵列数量,确定计算芯粒上的存储控制器数量,每个存储控制器的接口带宽等于对应的存储阵列的访存带宽。并确定该计算芯粒上的各计算引擎、第一互联发送控制器、第一互联接收控制器的接口带宽,使得每个计算引擎、每个存储控制器、每个第一互联发送控制器、每个第一互联接收控制器的接口带宽相等。
步骤3,确定路由系统中路由器的个数,使任意一个路由器满足连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,且A+C等于B+D的条件。
步骤4,根据计算芯粒上计算引擎、存储控制器等器件的物理布局,确定路由系统所包括的路由器阵列的行数和列数。
步骤5,根据路由器阵列的行数和列数,确定每个路由器同时发送和接收的最大信号数量都是1时,每个路由通道在两个传输方向上同时传输的最大信号数量,其示例可参见图11和图12的相关描述。
步骤6,根据每个路由器实际连接的计算引擎和第一互联发送控制器的数量(也可以是存储控制器和第一互联接收控制器的数量),调整步骤5中得到的路由通道的在两个传输方向上同时传输的最大信号数量(也即路由宽度)。其中某个路由器实际连接的计算引擎和第一互联发送控制器的数量(也可以是存储控制器和第一互联接收控制器的数量)是1时,涉及该路由器的路由通道的路由宽度无需调整;如果某个路由器实际连接的计算引擎和第一互联发送控制器的数量(也可以是存储控制器和第一互联接收控制器的数量)不是1时,那么调整涉及该路由器的路由通道的路由宽度。
图15和图16示出根据本公开实施例调整路由通道的路由宽度的示例。
例如,在图11的示例的基础上,假设接入路由器01,22的计算引擎和第一互联发送控制器的总数为2,而接入路由器00,12的计算引擎和第一互联发送控制器的总数为0。此时对涉及路由器01,22和路由器00、12的路由通道的路由宽度进行调整(假设按照先途径水平通道再途径竖直通道的顺序),可以如图15所示,其中,
将连接路由器12和路由器22的路由通道在从左至右的第一传输方向的路由宽度调整为1,从右至左的第二传输方向上的路由宽度调整为2;
将连接路由器01和路由器11的路由通道在从左至右的第一传输方向上的路由宽度调整为2;
将连接路由器11和路由器21的路由通道在从左至右的第一传输方向上的路由宽度调整为3;
将连接路由器00和路由器10的路由通道在从左至右的第一传输方向上的路由宽度调整为0;
将连接路由器10和路由器20的路由通道在从左至右的第一传输方向上的路由宽度调整为1。
又例如,在图11的示例的基础上,假设接入路由器11的计算引擎和第一互联发送控制器的总数为2,而接入路由器00的计算引擎和第一互联发送控制器的总数为0。此时对涉及路由器11和路由器00的路由通道的路由宽度进行调整(假设按照先途径水平通道再途径竖直通道的顺序),可以如图16所示,其中,
将连接路由器01和路由器11的路由通道在从右至左的第二传输方向上的路由宽度调整为3;
将连接路由器11和路由器21的路由通道在从左至右的第一传输方向上的路由宽度调整为3;
将连接路由器00和路由器10的路由通道在从左至右的第一传输方向上的路由宽度调整为0;
将连接路由器10和路由器20的路由通道在从左至右的第一传输方向上的路由宽度调整为1。
步骤7,根据每个路由器所连接的路由通道在两个方向上的路由宽度,以及该路由器在路由器阵列中的位置,以及水平通道与竖直通道的途径先后顺序,确定路由器的发送接口和接收接口数量,并确定每个发送接口连接哪些接收接口,其示例可参见图13和图14的相关描述。
步骤8,确定计算芯粒与相连接的存储芯粒之间的传输通道数。
步骤9,将接入第一互联接收控制器和第一互联发送控制器的路由器的位置设置在计算芯粒边缘,以便与其他计算芯粒的第二互联接收控制器和第二互联发送控制器相连接。
可以理解的是,如果实际应用中,路由系统绝大部分路由器所连接的计算引擎和第一互联接收控制器的总数相同,那么按照步骤5和步骤6规划路由通道更便捷;如果绝大部分路由器所连接的计算引擎和第一互联接收控制器的总数相同,那么步骤5和步骤6也可以使用步骤10来代替,减少调整次数。
步骤10,根据每个路由器实际连接的计算引擎和第一互联发送控制器的数量(也可以是存储控制器和第一互联接收控制器的数量)以及路由器阵列的行数和列数,确定每个路由器同时发送和接收的最大信号数量,并确定每个路由通道在两个传输方向上同时传输的最大信号数量(也即路由宽度)。
本公开实施例针对存储资源和计算引擎的物理分布特点,提出了一种使计算芯粒和存储芯粒3D堆叠的连接方式。有益效果如下:
一、以有限的硅资源占用满足电子设备的最大带宽吞吐,满足最恶劣情况下访存达到峰值时带宽的需求;
二、路由通道和路由器的设计保证了从计算引擎到存储阵列的访存操作的路径更短,最小化访存时延;
三、存在统一规格的路由通道,使得路由系统中互联通道和路由通道的规格种类数有限,方便统一的模块化设计,提高设计的重用性;
四、通过使用第一互联接收控制器和第一互联发送控制器,可便捷地实现算力和存储资源的扩展。
采用本公开实施例的电子设备,可以以更少的资源代价,取得更大的访存带宽,更低的访存功耗,更小的芯片面积,提升总体算力性能和访存性能。
与全互联架构的片上互联子系统相比,本公开的路由系统避免了所有访存总线汇聚到某一个区域进行集中仲裁、然后再分发到各处进行存储操作的长距离绕线带来的巨大走线资源开销。
同时针对集中仲裁使得所有的访存时延都非常大的问题,本公开采用阵列形式的路由系统。计算引擎对近距离存储阵列的访存操作,可以最短距离完成访问,平均访存时延大大降低。
和集中仲裁的全互联架构相比,本公开的路由系统平均传输距离变短,节省功耗的效果也很明显。
集中仲裁的全互联架构的互联线规模非常庞大,带来物理布线的拥塞,面积利用率很低,造成宝贵的硅面积浪费和芯片成本增加。而本公开实施例的路由系统是分布式的,可以将路由通道和路由器分布到芯粒上的不同区域,避免了布线的拥塞,提高了面积利用率。
和传统的2D网状互联架构相比,本公开的路由系统针对存储阵列和计算引擎的物理布局,具有近似于独立的专线来提供计算引擎和存储阵列之间的路由通道,可以提供最恶劣情况下的峰值带宽要求,避免了路由系统成为访存的瓶颈。
本公开实施例的电子设备能带来访存效率的很大提升以及功耗的降低,有助于算力系统缓解内存墙和功耗墙的问题。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种计算芯粒,其特征在于,所述计算芯粒设置在第一平面上,并连接第二平面上的存储芯粒,所述存储芯粒包括多个存储阵列,
所述计算芯粒包括多个计算引擎、多个存储控制器以及连接所述计算引擎和所述存储控制器的路由系统,每个存储控制器连接一个存储阵列,每一对相连的存储控制器和存储阵列之间的传输通道数大于第一阈值,且连接方向与所述第一平面相交;
所述计算引擎用于产生访存命令并传输至所述路由系统,所述访存命令包括访存类型和访存地址;
所述路由系统用于响应于接收到所述访存命令且所述访存地址是所属的计算芯粒连接的存储阵列的地址,将所述访存命令传输至与该存储阵列相连的存储控制器;
所述存储控制器用于响应于接收到所述访存命令,按照所述访存类型访问连接的存储阵列。
2.根据权利要求1所述的计算芯粒,其特征在于,所述计算芯粒通过混合键合或微凸块或硅通孔连接所述存储芯粒。
3.根据权利要求1所述的计算芯粒,其特征在于,所述存储控制器和所述存储阵列的连接方向与所述第一平面垂直。
4.根据权利要求1所述的计算芯粒,其特征在于,所述计算芯粒设置在电子设备中,所述电子设备包括多个计算芯粒,所述计算芯粒还包括连接所述路由系统的至少一个第一互联接收控制器和至少一个第一互联发送控制器,每个第一互联接收控制器连接另一计算芯粒包括的第二互联发送控制器,每个第一互联发送控制器连接另一计算芯粒包括的第二互联接收控制器,
所述路由系统还用于响应于接收到所述访存命令且所述访存地址是其他计算芯粒连接的存储阵列的地址,将所述访存命令传输至所属的计算芯粒中、与所述其他计算芯粒连接的第一互联发送控制器;
所述第一互联发送控制器用于响应于接收到来自所述路由系统的访存命令,将所述访存命令传输至所述其他计算芯粒的第二互联接收控制器;
所述第一互联接收控制器用于响应于接收到来自所述其他计算芯粒中的第二互联发送控制器的访存命令,将所述访存命令传输至所述路由系统。
5.根据权利要求4所述的计算芯粒,其特征在于,所述路由系统包括n行m列的路由器阵列以及连接相邻路由器的多个路由通道,第i行第j列的路由器连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,n、m是正整数,A、B、C、D是大于或等于0的整数,1≤i≤n,1≤j≤m;
所述计算引擎用于将所述访存命令传输至所述路由系统中与所述计算引擎连接的路由器;
所述路由系统中,与所述计算引擎连接的路由器用于将所述访存命令传输至所述与该存储阵列相连的存储控制器。
6.根据权利要求5所述的计算芯粒,其特征在于,所述路由系统包括第一路由器、第二路由器和第三路由器,
所述第一路由器与所述计算引擎、所述与该存储阵列相连的存储控制器均连接,用于将所述访存命令直接传输至所述与该存储阵列相连的存储控制器;
所述第二路由器与所述计算引擎连接,所述第三路由器与所述与该存储阵列相连的存储控制器连接,所述第二路由器用于通过所述路由通道将所述访存命令传输至所述第三路由器,所述第三路由器用于将所述访存命令传输至所述与该存储阵列相连的存储控制器。
7.根据权利要求5所述的计算芯粒,其特征在于,响应于单个路由通道连接的两个路由器在同一行,该路由通道的路由方向为水平方向,响应于单个路由通道连接的两个路由器在同一列,该路由通道路由方向为竖直方向,
响应于不同路由器之间的信号传输需途径水平方向的路由通道和竖直方向的路由通道,先途径水平方向的路由通道再途径竖直方向的路由通道,或者,先途径竖直方向的路由通道再途径水平方向的路由通道,所述信号包括所述访存命令和待写入存储阵列的数据,或者包括从所述存储阵列读出的数据。
8.根据权利要求7所述的计算芯粒,其特征在于,每个路由器都连接A个计算引擎、B个存储控制器、C个第一互联发送控制器、D个第一互联接收控制器,同时连接第j列路由器和第j+1列路由器的每个路由通道相同,同时连接第i行路由器和第i+1行路由器的每个路由通道相同;
在m=n时,所述路由系统中的每个路由通道均相同。
9.根据权利要求7所述的计算芯粒,其特征在于,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,
先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第一数量;其中第一数量为第二数量和第三数量中的最小值,第二数量是指第j+1至m列路由器连接的存储控制器、第一互联接收控制器的总数,第三数量是指第i行的第1至j个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第四数量,其中第四数量为第五数量和第六数量中的最小值,第五数量是指第1至j列路由器连接的存储控制器、第一互联接收控制器的总数,第六数量是指第i行的第j+1至m个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第七数量,其中第七数量为第八数量和第九数量中的最小值,第八数量是指第j列的第i+1至n个路由器连接的存储控制器、第一互联接收控制器的总数,第九数量是指第1至i行路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第十数量,其中第十数量为第十一数量和第十二数量中的最小值,第十一数量是指第j列的第1至i个路由器连接的存储控制器、第一互联接收控制器的总数,第十二数量是指第i+1至n行路由器连接的计算引擎、第一互联发送控制器的总数。
10.根据权利要求7所述的计算芯粒,其特征在于,水平方向的路由通道包括从左至右的第一传输方向和从右至左的第二传输方向,竖直方向的路由通道包括从上至下的第三传输方向和从下至上的第四传输方向,
先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第一传输方向上同时传输的最大信号数量等于第十三数量,其中第十三数量为第十四数量和第十五数量中的最小值,第十四数量是指等于第i行的第j+1至m个路由器连接的存储控制器、第一互联接收控制器的总数,第十五数量是指第1至j列路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i行第j+1列路由器的路由通道,在第二传输方向上同时传输的最大信号数量等于第十六数量,其中第十六数量为第十七数量和第十八数量中的最小值,第十七数量是指第i行的第1至j个路由器连接的存储控制器、第一互联接收控制器的总数,第十八数量是指第j+1至m列路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第三传输方向上同时传输的最大信号数量等于第十九数量,其中第十九数量为第二十数量和第二十一数量中的最小值,第二十数量是指第i+1至n行路由器连接的存储控制器、第一互联接收控制器的总数,第二十一数量是指第j列的第1至i个路由器连接的计算引擎、第一互联发送控制器的总数;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道,在第四传输方向上同时传输的最大信号数量等于第二十二数量,其中第二十二数量为第二十三数量和第二十四数量中的最小值,第二十三数量是指第1至i行路由器连接的存储控制器、第一互联接收控制器的总数,第二十四数量是指第j列的第i+1至n个路由器连接的计算引擎、第一互联发送控制器的总数。
11.根据权利要求7所述的计算芯粒,其特征在于,第i行第j列路由器包括多个发送接口和多个接收接口,其中,
连接第i行第j列路由器和第i行第j+1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第一数值,在第二传输方向上同时传输的最大信号数量为第二数值;
连接第i行第j列路由器和第i+1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第三数值,在第四传输方向上同时传输的最大信号数量为第四数值;
连接第i行第j列路由器和第i行第j-1列路由器的路由通道在第一传输方向上同时传输的最大信号数量为第五数值,在第二传输方向上同时传输的最大信号数量为第六数值;
连接第i行第j列路由器和第i-1行第j列路由器的路由通道在第三传输方向上同时传输的最大信号数量为第七数值,在第四传输方向上同时传输的最大信号数量为第八数值;
所述多个发送接口包括第一数值的第一发送接口、第三数值的第三发送接口、第六数值的第六发送接口、第八数值的第八发送接口和第九发送接口;
所述多个接收接口包括第二数值的第二接收接口、第四数值的第四接收接口、第五数值的第五接收接口、第七数值的第七接收接口和第十接收接口;
每个第一发送接口和每个第二接收接口连接所述连接第i行第j列路由器和第i行第j+1列路由器的路由通道;
每个第三发送接口和每个第四接收接口连接所述连接第i行第j列路由器和第i+1行第j列路由器的路由通道;
每个第五接收接口和每个第六发送接口连接所述连接第i行第j列路由器和第i行第j-1列路由器的路由通道;
每个第七接收接口和每个第八发送接口连接所述连接第i行第j列路由器和第i-1行第j列路由器的路由通道;
第九发送接口连接第i行第j列路由器连接的存储控制器和第一互联接收控制器;
第十接收接口连接第i行第j列路由器连接的计算引擎和第一互联发送控制器。
12.根据权利要求11所述的计算芯粒,其特征在于,先途径水平方向的路由通道再途径竖直方向的路由通道的情况下,
每个第二接收接口连接每个第三发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;
每个第四接收接口连接每个第八发送接口、第九发送接口;
每个第五接收接口连接每个第一发送接口、每个第三发送接口、每个第六发送接口、第九发送接口;
每个第七接收接口连接每个第三发送接口、第九发送接口;
第十接收接口连接每个发送接口。
13.根据权利要求11所述的计算芯粒,其特征在于,先途径竖直方向的路由通道再途径水平方向的路由通道的情况下,
每个第二接收接口连接每个第六发送接口、第九发送接口;
每个第四接收接口连接每个第一发送接口、每个第六发送接口、每个第八发送接口、第九发送接口;
每个第五接收接口连接每个第一发送接口、第九发送接口;
每个第七接收接口连接每个第一发送接口、以及每个第三发送接口、每个第六发送接口、第九发送接口;
第十接收接口连接每个发送接口。
14.一种电子设备,其特征在于,包括至少一个存储芯粒,以及至少一个根据权利要求1-13中任一项所述的计算芯粒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410412656.8A CN118012794B (zh) | 2024-04-07 | 2024-04-07 | 计算芯粒及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410412656.8A CN118012794B (zh) | 2024-04-07 | 2024-04-07 | 计算芯粒及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118012794A true CN118012794A (zh) | 2024-05-10 |
CN118012794B CN118012794B (zh) | 2024-07-05 |
Family
ID=90952357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410412656.8A Active CN118012794B (zh) | 2024-04-07 | 2024-04-07 | 计算芯粒及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012794B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718392A (zh) * | 2016-01-15 | 2016-06-29 | 上海磁宇信息科技有限公司 | 细胞阵列文件存储系统及其文件存储设备与文件存储方法 |
CN109545783A (zh) * | 2017-09-22 | 2019-03-29 | 成都海存艾匹科技有限公司 | 含有三维存储阵列的三维计算芯片 |
CN112732173A (zh) * | 2019-10-28 | 2021-04-30 | 三星电子株式会社 | 存储器设备、存储器系统以及自主驾驶装置 |
CN112837721A (zh) * | 2019-11-22 | 2021-05-25 | 三星电子株式会社 | 存储器件和电子器件 |
CN113656346A (zh) * | 2021-09-03 | 2021-11-16 | 西安紫光国芯半导体有限公司 | 一种三维芯片及计算系统 |
WO2023023975A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种芯片、芯片制造方法、以及相关装置 |
CN116246963A (zh) * | 2023-01-31 | 2023-06-09 | 北京清微智能科技有限公司 | 一种可重构3d芯片及其集成方法 |
CN117708003A (zh) * | 2023-11-24 | 2024-03-15 | 深圳市奇普乐芯片技术有限公司 | 一种基于芯粒的互联系统及数据访问方法 |
-
2024
- 2024-04-07 CN CN202410412656.8A patent/CN118012794B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718392A (zh) * | 2016-01-15 | 2016-06-29 | 上海磁宇信息科技有限公司 | 细胞阵列文件存储系统及其文件存储设备与文件存储方法 |
CN109545783A (zh) * | 2017-09-22 | 2019-03-29 | 成都海存艾匹科技有限公司 | 含有三维存储阵列的三维计算芯片 |
CN112732173A (zh) * | 2019-10-28 | 2021-04-30 | 三星电子株式会社 | 存储器设备、存储器系统以及自主驾驶装置 |
CN112837721A (zh) * | 2019-11-22 | 2021-05-25 | 三星电子株式会社 | 存储器件和电子器件 |
US20210157751A1 (en) * | 2019-11-22 | 2021-05-27 | Samsung Electronics Co., Ltd. | Memory device including processing circuit, and electronic device including system on chip and memory device |
WO2023023975A1 (zh) * | 2021-08-25 | 2023-03-02 | 华为技术有限公司 | 一种芯片、芯片制造方法、以及相关装置 |
CN113656346A (zh) * | 2021-09-03 | 2021-11-16 | 西安紫光国芯半导体有限公司 | 一种三维芯片及计算系统 |
CN116246963A (zh) * | 2023-01-31 | 2023-06-09 | 北京清微智能科技有限公司 | 一种可重构3d芯片及其集成方法 |
CN117708003A (zh) * | 2023-11-24 | 2024-03-15 | 深圳市奇普乐芯片技术有限公司 | 一种基于芯粒的互联系统及数据访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118012794B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10681136B2 (en) | Memory network methods, apparatus, and systems | |
KR101925266B1 (ko) | 하이브리드 메모리 큐브 링크들을 이용하는 상호 접속 시스템들 및 방법들 | |
US20070067579A1 (en) | Shared memory device | |
KR102693213B1 (ko) | 메모리 시스템 | |
US11600310B2 (en) | Area-efficient, width-adjustable signaling interface | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
CN111045963A (zh) | 一种高位宽总线读写的方法及装置 | |
CN103246625A (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN113643739A (zh) | 一种llc芯片及缓存系统 | |
US6237130B1 (en) | Chip layout for implementing arbitrated high speed switching access of pluralities of I/O data ports to internally cached DRAM banks and the like | |
US20130061004A1 (en) | Memory/logic conjugate system | |
CN113704137A (zh) | 存内计算模块和方法、存内计算网络及构建方法 | |
US9390017B2 (en) | Write and read collision avoidance in single port memory devices | |
US9400762B2 (en) | Integrated device with memory systems accessible via basic and bypass routes | |
CN116737617B (zh) | 一种访问控制器 | |
CN118012794B (zh) | 计算芯粒及电子设备 | |
US8995210B1 (en) | Write and read collision avoidance in single port memory devices | |
CN112882986A (zh) | 一种带有超节点以及超节点控制器的众核处理器 | |
CN216119560U (zh) | 一种llc芯片及缓存系统 | |
CN107291209B (zh) | 细胞阵列计算系统 | |
JP5017971B2 (ja) | 集積装置 | |
JP2007066039A (ja) | 共有メモリ装置 |
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 |