脉动阵列计算封装芯片、计算方法及电子设备与流程

摘要: 本技术涉及集成电路领域,具体而言,提供一种脉动阵列计算封装芯片、计算方法及电子设备。背景技术:1、脉动阵列计算用于对输入矩阵和权重矩阵计算进行计算,在die(裸...
脉动阵列计算封装芯片、计算方法及电子设备与流程

本技术涉及集成电路领域,具体而言,提供一种脉动阵列计算封装芯片、计算方法及电子设备。

背景技术:

1、脉动阵列计算用于对输入矩阵和权重矩阵计算进行计算,在die(裸片)中,输入矩阵和权重矩阵从不同方向输入,die中的mac(multiply-accumulate unit,乘累加单元)阵列对输入矩阵和权重矩阵的元素进行乘累加计算。

2、但是,同一个die中,乘累加单元阵列的乘累加单元的数量是有限的,当输入矩阵和权重矩阵中元素数量过多,超过乘累加单元阵列允许输入的最大数量时,则需要使用多个die共同实现脉动阵列计算。

3、目前,在使用多个die共同实现脉动阵列计算时,多个die通常铺设在同一水平面上,并通过金属线实现互连。

4、通过金属线连接不同die时,会使得互连路径较长,在脉动阵列计算中,会频繁地从外部的dram(dynamic random access memory,动态随机存取存储器)读取数据并传输到对应die的乘累加单元进行计算,路径过长则会限制数据的读取速度,进而影响计算速度,并产生较大的能量损耗,影响性能的提升。

5、同时,芯片面积有限,若铺设在同一水平面上,则可能影响芯片尺寸或影响布局,甚至可能无法铺设足够多的die满足脉动阵列计算的要求。

技术实现思路

1、有鉴于此,本技术旨在提供一种脉动阵列计算封装芯片、计算方法及电子设备,以提高芯片执行脉动阵列计算的效率,减少脉动阵列计算的能量损耗,缩小占用芯片面积。

2、第一方面,本技术实施例提供一种脉动阵列计算封装芯片,包括:垂直方向上堆叠的k层裸片层,每一所述裸片层均包括p个脉动阵列计算裸片;所述k为大于1的整数,所述p为正整数;任意相邻所述裸片层中脉动阵列计算裸片的布设方向相反;每一所述脉动阵列计算裸片包括计算阵列;所述计算阵列的输入包括第一输入矩阵和第二输入矩阵;所述计算阵列中,所述第一输入矩阵的数据流动路径为第一流动路径,所述第二输入矩阵数据流动路径为第二流动路径,且所述第一流动路径的数据流动方向与所述第二流动路径的数据流动方向在同一平面上相互垂直;除最后一层所述裸片层之外,每一层所述裸片层的所述脉动阵列计算裸片中,所述计算阵列在所述第一流动路径的输出端通过垂直互连通道连接与下一所述裸片层的脉动阵列计算裸片连接;以及,所述计算阵列在所述第二流动路径的输出端通过所述垂直互连通道连接与下一所述裸片层的脉动阵列计算裸片连接。

3、本技术实施例中,各裸片层之间可以通过垂直互连通道实现于其他裸片层中裸片的连接,相较于水平面上通过金属线连接的方式,垂直互连通道能够有效缩短连接路径,减少数据传输路径,提高数据传输效率,进而提高该脉动阵列计算芯片的计算性能,同时,还可以避免数据传输路径过长导致数据传输的能量损耗过大的情况,即减少能量损耗。此外,因为各脉动阵列计算裸片在垂直方向上互连,基于此,还可以避免脉动阵列计算裸片占用过大的芯片面积,使得芯片能够更灵活地进行设计与布局。

4、一实施例中,所述计算阵列包括呈网格分布的n×m个乘累加单元,所述乘累加单元用于执行乘累加计算,所述n为所述乘累加单元的行数,所述m为所述乘累加单元的列数,每一所述乘累加单元均与相邻的所述乘累加单元连接;所述第一流动路径和所述第二流动路径为数据在多个所述乘累加单元上的数据流动路径;每一所述脉动阵列计算裸片还包括:多路复用器和多路解复用器;所述多路复用器与所述第一流动路径与所述第二流动路径的输入侧的所述乘累加单元连接;所述多路解复用器与所述第一流动路径与所述第二流动路径的输出端侧的所述乘累加单元连接;所述多路复用器和所述多路解复用器还用于通过垂直互连通道连接相邻裸片层;其中,所述多路复用器用于将输入的数据输入至所述计算阵列,或,将上一裸片层通过所述垂直互连通道输入的数据输入至所述计算阵列;所述多路解复用器用于将所述计算阵列的计算结果输出,或,将所述计算阵列的计算结果通过所述垂直互连通道输出至下一裸片层。

5、本技术实施例中,通过多路解复用器和多路复用器,实现数据的选通,可以接收当前裸片层的数据进行计算,或接收上一裸片层的数据进行计算,以及,使得数据在当前裸片层的计算阵列进行计算或通过垂直互连通道输出至下一裸片层进行计算,由此,可以基于垂直互连通道实现数据在不同的裸片层之间传输。

6、一实施例中,每一所述脉动阵列计算裸片还包括:第一缓存器、第二缓存器、第三缓存器;所述第一缓存器用于存储所述第一输入矩阵;所述第二缓存器用于存储所述第二输入矩阵;所述第三缓存器用于存储所述输出矩阵;所述输出矩阵为所述计算阵列的计算结果;所述多路复用器设置于所述第一缓存器与和所述计算阵列之间,以及还设置于所述第二缓存器与和所述计算阵列之间;所述多路解复用器设置于所述第三缓存器与和所述计算阵列之间;所述多路解复用器用于将所述计算阵列的计算结果输出至所述第三缓存器至所述第三缓存器。

7、一实施例中,所述每一所述脉动阵列计算裸片包括:n+m多路复用器和n+m个多路解复用器;所述脉动阵列计算裸片的第一侧包括n个所述多路复用器,第二侧包括m个所述多路复用器,所述第一侧与所述第二侧相邻;所述第一侧的各个多路复用器的输出端分别与所述计算阵列中每一行的首个乘累加单元连接;所述第一侧的各个多路复用器的第一输入端与所述第一缓存器连接;所述第二侧的各个多路复用器的输出端分别与所述计算阵列中每一列的首个乘累加单元连接;所述第二侧的各个多路复用器的第一输入端与所述第二缓存器连接;除首层裸片层之外,其它各所述裸片层中脉动阵列计算裸片的多路复用器的第二输入端通过垂直互连通道与上一裸片层的脉动阵列计算裸片连接;所述脉动阵列计算裸片的第三侧包括n个所述多路解复用器,第四侧包括m个多路解复用器;所述第三侧与所述第一侧相对,所述第四侧与所述第二侧相对;所述第三侧的各个多路解复用器的输入端与所述计算阵列中每一行的最后一个乘累加单元连接;所述第四侧的各个多路解复用器的输入端与所述计算阵列中每一列的最后一个所述乘累加单元连接;每一所述多路解复用器的第一输出端与所述第三缓存器连接;除最后一层裸片层之外,其它各所述裸片层中脉动阵列计算裸片的多路解复用器的第二输出端通过垂直互连通道与下一裸片层的脉动阵列计算裸片连接;其中,所述多路复用器用于将所述第一输入矩阵和/或所述第二输入矩阵输入至所述计算阵列,或,将所述上一裸片层通过垂直互连通道输入的数据输入至所述计算阵列;所述多路解复用器用于将所述计算阵列的计算结果输出至所述第三缓存器,或,将所述计算阵列的计算结果通过垂直互连通道输出至下一裸片层。

8、一实施例中,所述第四侧所述多路解复用器的第一输出端与所述第三侧的各个多路解复用器的输入端连接,以使所述第四侧所述多路解复用器将数据通过所述第三侧的多路解复用器输出;和/或,所述第三侧所述多路解复用器的第一输出端与所述第四侧的各个多路解复用器的输入端连接,以使所述第三侧所述多路解复用器将数据通过所述第四侧的多路解复用器输出。

9、本技术实施例中,数据从第一侧输入时,第一计算阵列的计算结果会从第四侧输出,此时,数据的流动方向不在同一方向上,这会影响后续的布局布线,因此,为统一数据的流动方向,可以通过使第四侧所述多路解复用器将数据选通到第三侧的多路解复用器输出,以保持计算结果能够从固定的方向输出。同理,当数据从第二侧数据时,计算结果会从第三侧输出,可以通过上述方式,将计算结果选通到第四侧输出。通过上述方式,可以使得数据的输入输出在同一方向上,以便于后续的布局、布线设计。

10、一实施例中,至少首层裸片层中所述脉动阵列计算裸片的所述第一缓存器、所述第二缓存器与第一内存连接;首层裸片层和最后一层裸片层中至少一层的所述脉动阵列计算裸片的所述第三缓存器与第二内存连接;所述第一缓存器用于从所述第一内存获取所述第一输入矩阵;所述第二缓存器从所述第一内存获取所述第二输入矩阵;所述第三缓存器用于将所述计算阵列的计算结果输出至所述第二内存;所述计算结果为所述输出矩阵。

11、本技术实施例中,因为各裸片层通过垂直互连通道连接,相互之间可以传输数据,因此,可以最少可以仅需要一个裸片层连接第一内存获取输入数据,以及,最少可以仅需要一个裸片层连接第二内存输出计算结果,各裸片之间通过垂直互连通道传输输入数据和计算结果,各裸片层各自无需单独连接内存。该方式可以简化芯片布局,减少互连路径数量及其占用的芯片面积。此外,相较于同一水平面上布设多个裸片,因为各脉动阵列计算裸片之间是在垂直方向实现的互连,输入数据和计算结果能够通过垂直互连通道快速传输,该方式可以无需考虑第一内存和第二内存的布设位置对不同裸片获取或输出数据的影响,降低布局难度。

12、一实施例中,在所述脉动阵列计算裸片执行所述第二输入矩阵固定的脉动阵列计算的情况下,所述第二缓存器还用于:获取所述第二内存提供的所述第二输入矩阵;在所述第一缓存器向所述计算阵列输入所述第一输入矩阵之前,将所述第二输入矩阵的各元素分别存入所述计算阵列的乘累加单元。

13、在脉动阵列计算中,除了输出固定模式外,还有输入固定模式和权重固定模式,在本技术的实施例中,不仅可以支持不同方向上按时序同时输入的输出固定模式的计算,还可以支持任意方向上的输入矩阵预先向计算阵列存入该输入矩阵的元素,以实现输入固定模式和权重固定模式的计算,满足更多场景的脉动阵列计算需求。

14、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;若所述第二输入矩阵的预设行数a小于等于n,若所述第二输入矩阵的列数b大于所述m;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:将所述第二输入矩阵的元素按列拆分为u组第二子元素组,每一所述第二子元素组包括至多m列所述第二输入矩阵的元素列,所述u为b/m的向上取整值,且所述k大于等于所述u;通过所述第四侧的各个多路解复用器的第二输出端所连接的垂直互连通道,控制所述第二缓存器分别将各所述第二子元素组存入不同所述裸片层的脉动阵列计算裸片。

15、本技术实施例中,在单个输入矩阵过长的情况下,超过单个裸片中计算阵列在对应方向上可输入数据的最大数量,例如,第二输入矩阵的列数b大于m的情况下,可以将输入矩阵拆分为多份,并通过垂直互连通道传输到其他裸片层的裸片中进行计算,该方式将原本需要在水平面不同裸片上进行的计算拆分到垂直方向上的不同裸片进行计算,有效利用垂直互连通道路径短的特性,提高输入矩阵的传输速度,以及,减少数据传输的能量损耗。

16、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;若所述m大于所述n,所述第二输入矩阵的预设行数a大于所述m,且所述第二输入矩阵的预设列数b大于所述m;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:将所述第一输入矩阵的元素按行拆分为v组第一子元素组,每一所述第一子元素组包括至多n行所述第一输入矩阵的元素行,所述v为a/n的向上取整值,所述p大于等于所述v; 将所述第二输入矩阵的元素按列拆分为u组第二子元素组,每一所述第二子元素组包括至多m列所述第二输入矩阵的元素列,所述u为b/m的向上取整值,所述k大于等于所述u;控制所述第一缓存器将各所述第一子元素组分别存入同一裸片层的不同脉动阵列计算裸片;以及,通过所述第四侧的各个多路解复用器的第二输出端所连接的垂直互连通道,控制所述第二缓存器将各所述第二子元素组分别输入不同所述裸片层的脉动阵列计算裸片。

17、本技术实施例中,在不同方向的输入矩阵的尺寸均过大时,即裸片在不同方向上的输入元素均超过各方向上可输入数据的最大数量时,此时,再考虑利用同一水平面上平铺的裸片。该方式可以尽量减少使用同一水平面上平铺的裸片,进而因同一水平面上传输路径过长而导致的数据传输效率低下、能量损耗较高的问题,尽可能使得该封装芯片保持高性能。

18、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;所述控制单元还用于:在所述n和所述m不相等时,对所述第一输入矩阵或所述第二输入矩阵进行转置,并交换所述第一输入矩阵和所述第二输入矩阵的输入位置,以使所述第一输入矩阵和所述第二输入矩阵适配不同流动路径的最大输入数据数量。

19、本技术实施例中,计算阵列的行数和列数可能不同,而不同方向的输入矩阵也可能存在尺寸不同的情况,在该情况下,可以对输入矩阵进行转置与交换二者之间的位置,以使得输入矩阵尽可能适配计算阵列的行和列,进而减少可能需要多个裸片同时进行计算的情况下,或者,即使在需要多个裸片同时参与的情况下,也尽量转换到垂直方向的裸片进行计算,以缩短数据传输路径,提高数据传输效率与降低能量损耗。

20、一实施例中,若所述m大于所述n,所述第一输入矩阵的预设列数a大于所述n,且所述a小于等于所述m,所述第二输入矩阵的预设列数b大于所述n;所述第一输入矩阵的列数与所述第二输入矩阵的行数相同;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:对所述第二输入矩阵进行转置;交换所述第一输入矩阵和所述第二输入矩阵的输入位置,以使所述第一缓存器从获取所述第二输入矩阵的转置矩阵,以及,使所述第二缓存器获取所述第一输入矩阵。

21、本技术实施例中,以第二输入矩阵的行数与列数为例,在第二输入矩阵的行数a大于n小于等于m,以及第二输入矩阵的列数小于等于n时,此时,可以对第二输入矩阵进行转置,并交换原本第一输入矩阵和第二输入矩阵的输入位置,以使得转置与交换后,第二输入矩阵能够适配计算阵列的行数,以在减少拆分或不进行拆分的情况下实现脉动阵列计算。

22、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;若所述m大于所述n,所述第二输入矩阵的预设行数a大于所述n,且所述a小于等于所述m,所述第二输入矩阵的预设列数b大于所述n;所述第一输入矩阵的列数与所述第二输入矩阵的行数相同;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:对所述第二输入矩阵进行转置,得到转置矩阵;对所述转置矩阵进行拆分;每一所述第二子元素组包括至多n列所述第二输入矩阵的元素列,所述第二子元素组的值为b/n的向上取整值;交换所述第一输入矩阵和所述第二输入矩阵的输入位置,以使不同所述裸片层的第一缓存器分别获取不同的所述第二子元素组,并通过所述第三侧的各个多路解复用器的第二输出端所连接的垂直互连通道,控制所述第一缓存器将各所述第二子元素组分别输入不同所述裸片层的脉动阵列计算裸片;以及,使所述第二缓存器获取所述第一输入矩阵。

23、本技术实施例中,可以将对矩阵的拆分和转置组合使用,以适配更多的场景。

24、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;在所述脉动阵列计算裸片执行所述输出矩阵固定的脉动阵列计算的情况下,若所述第一输入矩阵的行数c大于所述n,且所述c大于所述m;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:对所述第一输入矩阵进行拆分,拆分为多组第一子元素组;每一所述第一子元素组包括至多n行所述第一输入矩的元素行,所述第一子元素组的数量为c/n的向上取整值;控制所述第一缓存器将各所述第一子元素组输入至首层裸片层的脉动阵列计算裸片,并通过所述第三侧的各个多路解复用器的第二输出端所连接的垂直互连通道,控制所述第一缓存器将各所述第一子元素组分别输入不同所述裸片层的脉动阵列计算裸片;控制所述第二缓存器将所述第二输入矩阵输入至脉动阵列计算裸片。

25、本技术的实施例中,在输出固定模式下,也可以通过对矩阵的拆分并存入不同的裸片层,实现脉动阵列的计算,以适配输出固定模式对脉动阵列计算的需求。

26、一实施例中,若所述k为奇数;所述第一内存和所述第二内存与所述脉动阵列计算封装芯片的不同侧连接。

27、在本技术的实施例中,任意相邻裸片层中脉动阵列计算裸片的布设方向相反,在此基础上,则可能出现第一个裸片输入端在左侧,输出端在右侧,而第二个裸片的输入端在右侧,输出端在左侧的情况。因此,在奇数层的情况下,首层裸片层的输入与最后一层裸片层的输出在异侧,在此基础上,可以将第一内存和第二内存与脉动阵列计算封装芯片的不同侧连接,以保证功能的正确性、连接的正确性,以及满足布局要求。

28、一实施例中,所述第一内存和所述第二内存分别与所述首层裸片层的不同侧连接。

29、一实施例中,所述第一内存与所述首层裸片层中的脉动阵列计算封装裸片连接;所述第二内存与最后一层裸片层的脉动阵列计算封装裸片连接。

30、本技术实施例中,既可以将第一内存和第二内存设置在首层裸片层的同一平面内,与首层裸片层的不同侧连接。也可以将第一内存和第二内存设置在不同平面内,分别与首层裸片层和最后一层裸片层连接。可以根据实际设计与布局需求合理配置,在此不作限制。

31、一实施例中,若所述k为偶数;所述第一内存和所述第二内存与所述脉动阵列计算封装芯片的同侧连接。

32、本技术实施例中,在裸片层为偶数的情况下,首层裸片层的数据输入与最后一层裸片的计算结果输出在不同侧,在此基础上,可以设计与使用偶数层裸片层,满足对第一内存和第二内存的实际布局需求。

33、基于上述方式,可以根据实际的芯片设计对脉动阵列的计算要求、芯片布局要求等多方面原因,设置偶数层或奇数层裸片层,以及设置第一内存和第二内存的位置,使得芯片设计更具灵活性,满足不同芯片的实际设计需求。此外,本技术所提供的方式,多个裸片层串联,仅需连接一个第一内存和第二内存,简化多裸片的同步逻辑与电路,无需不同裸片层分别使用不同的内存存储数据与实现内存的读取同步。

34、一实施例中,所述脉动阵列计算裸片的计算阵列按行划分为至多n个子阵列;不同所述子阵列用于执行不同的脉动阵列计算;所述第二缓存器用于基于预设时序分别向不同子阵列存入不同脉动阵列计算各自的第二输入矩阵;所述第一缓存器用于从所述第一内存分别获取不同脉动阵列计算的第一输入矩阵并输入至对应的子阵列分别进行不同的脉动阵列计算。

35、本技术实施例中,可以将同一裸片中的不同阵列按行划分为不同的子阵列,使得不同的子阵列能够同时执行不同的脉动计算,以提高计算效率。同时,设计与使用对应的预设时序,使得第二输入矩阵能够正确输入,进而保证多个子阵列执行多个脉动阵列计算时的计算正确性。其中,因为输入方向固定的原因,无法从相对的两侧同时输入数据,因此,在划分时,按照行或列这类同一方向的方式进行划分,避免冲突。

36、一实施例中,不同所述裸片层中各脉动阵列计算裸片划分子阵列的方式相同;不同所述子阵列的交界处还通过垂直互连通道与相邻裸片层的子阵列连接。

37、本技术实施例中,将计算阵列拆分为多个子阵列之后,这使得不同的子阵列中的乘累加单元数量较少,单个脉动阵列计算裸片可能无法满足多个脉动阵列计算的同时计算需求,故需要使用多个裸片层的脉动阵列计算裸片进行计算,基于此,可以在不同子阵列的交界处通过垂直互连通道与相邻裸片层的子阵列连接,实现多个裸片层的子阵列的串联,满足计算需求。

38、一实施例中,所述第一输入矩阵为脉动阵列计算的输入数据矩阵;所述第二输入矩阵为脉动阵列计算的权重数据矩阵。

39、本技术实施例中,脉动阵列计算封装芯片在进行脉动阵列计算中,第一输入矩阵和第二输入矩阵分别为脉动阵列计算的输入数据矩阵和权重数据矩阵,以实现脉动阵列计算。

40、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;每一所述裸片层中,所述脉动阵列计算裸片的第三侧还与前一裸片层中脉动阵列计算裸片的第一侧通过垂直互连通道连接;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:在最后一层裸片层在完成脉动阵列计算之后,控制所述最后一层裸片层将中间计算结果通过所述垂直互连通道向前一裸片层传输;并控制各所述裸片层依次执行脉动阵列计算并向上一裸片层传输各自的中间计算结果。

41、本技术实施例中,脉动阵列计算封装芯片通过将下一裸片层中裸片的第二侧与上一裸片层中裸片的第一侧连接,也即将在后裸片层的数据输出端与在前裸片层的数据输入端连接,基于该连接方式,实现数据传输路径的闭环,数据可以从后向前传输,基于此,数据可以在各裸片层之间循环传输,各裸片层的计算阵列可以循环对数据进行计算,在此基础上,可以使用有限的计算阵列实现更多轮次的计算,无需设计更多层的裸片层,有助于在满足计算需求的同时,减少裸片数量,降低成本。

42、一实施例中,每一所述裸片层用于执行一次脉动阵列计算;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:在完成预设次数的脉动阵列计算后,控制计算结果从所述首层裸片层或所述最后一层所述裸片层的脉动阵列计算裸片的第三侧输出。

43、本技术实施例中,输出数据可以从不同位置输出,进而可以对芯片进行合理布局设计,适配不同芯片设计需求。

44、一实施例中,在所述脉动阵列计算裸片执行所述第二输入矩阵固定的脉动阵列计算的情况下,所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:在执行当前轮次的最后一次脉动阵列计算时,控制所述第二缓存器向各所述脉动阵列计算芯片写入下一轮次脉动阵列计算的第二输入矩阵。

45、本技术实施例中,在实现循环计算的过程中,在前一轮还未输出计算结果时输入第二轮计算的第二输入矩阵,由此,第二轮计算时无需长时间等待第二输入矩阵的输入,缩短输入所需的等待时间,提高计算效率。

46、一实施例中,若存在任意所述脉动阵列计算裸片为第一异常裸片;所述第一异常裸片为完整保留至少的一行或一列乘累加单元的脉动阵列计算裸片;所述第一异常裸片中所述计算阵列的正常区域边界处,通过垂直互连通道与下一裸片层的脉动阵列计算裸片连接。

47、第一异常裸片为部分电路损坏的裸片,该裸片的大部分电路仍保留正常功能,为降低成本和减少浪费,可以对其进行使用。本技术实施例中,对于第一异常裸片,在设计与制造阶段,在正常区域边界处设置垂直互连通道与下一裸片层的脉动阵列计算裸片连接,通过垂直互连通道,可以使得数据不通过损坏的区域,使得对损坏区域进行屏蔽,实现对部分电路损坏裸片的利用。

48、一实施例中,所述脉动阵列计算封装芯片用于连接控制单元;所述脉动阵列计算封装芯片的同侧通过垂直互连通道连接各裸片层的脉动阵列计算裸片;所述脉动阵列计算封装芯片还用于响应于所述控制单元的控制,执行以下过程:检测各所述脉动阵列计算裸片是否存在第二异常裸片;所述第二异常裸片为裸片为不存在完整一行或一列乘累加单元的脉动阵列计算裸片;在存在所述第二异常裸片的情况下,控制该第二异常裸片的输入数据通过所述垂直互连通道输出至目标裸片层,所述目标裸片层与所述第二异常裸片所在的裸片层间隔奇数层的裸片层,且该目标裸片层内的脉动阵列计算裸片正常。

49、芯片或硅通孔的局部失效通常是由电、热、机械应力以及环境等多种因素共同作用导致的,在使用过程中,也可能出现裸片失效的情况,因此,本技术实施例中,在设计与制造阶段,可以使得脉动阵列计算封装芯片的同侧通过垂直互连通道连接各裸片层的脉动阵列计算裸片,并为封装裸片配置检测机制,在检测到任意裸片无法再利用后,即为第二异常裸片时,可以通过垂直互连通道实现对该裸片屏蔽。同时,因为结构的原因,相邻像个裸片的输入输出方向在不同侧,若直接与最近的正常裸片层连接,则可能出现数据输入端与数据输入端连接的情况,基于此,至少需要屏蔽偶数层裸片层,也即需要与第二异常裸片所在的裸片层间隔奇数层的目标裸片层连接,以保证功能的正确性。

50、一实施例中,所述k大于等于所述p。

51、本技术实施例中,k大于等于p时,也即裸片层的数量大于等于单层平铺的裸片数量,该方式要求尽量缩减水平方向的裸片数量,将矩阵计算中各输入矩阵的元素尽量转换到垂直方向进行传输,以减少因同一水平面中数据的传输路径过长而导致的负面影响,提高数据传输速度、降低功耗,以及减少占用芯片面积。

52、一实施例中,任意相邻所述裸片层中脉动阵列计算裸片的布设方向相反。

53、本技术实施例中,相邻两层裸片层之间,数据从上一层裸片层流动至下一层裸片层,而在生产制造过程中,裸片通常是批量制作,其结构通常相同,若将相同结构的裸片以相同方向布设,则相邻两层裸片的数据输入端在同一侧,数据输出端在同一侧,不符合数据的流动方向,基于此,在本技术的实施例中,可以使得任意相邻裸片层中脉动阵列计算裸片的布设方向相反,以使得该脉动阵列计算封装芯片能够被批量制造,且能够满足脉动阵列计算封装芯片正确传输数据的要求。

54、第二方面,本技术实施例提供一种脉动阵列计算方法,应用于如第一方面任一项所述的脉动阵列计算封装芯片,所述脉动阵列计算方法包括:获取第一输入矩阵和第二输入矩阵;将所述第一输入矩阵和/或所述第二输入矩阵输入至所述计算阵列,或,将所述上一裸片层通过垂直互连通道输入的数据输入至所述计算阵列;将所述计算阵列的计算结果输出,或,将所述计算阵列的计算结果通过垂直互连通道传输至下一裸片层。

55、第三方面,本技术实施例提供一种电子设备,包括如第一方面任一项所述的脉动阵列计算封装芯片。