CN113705142A - 一种三维芯片、计算系统及计算方法 - Google Patents

一种三维芯片、计算系统及计算方法 Download PDF

Info

Publication number
CN113705142A
CN113705142A CN202111033159.XA CN202111033159A CN113705142A CN 113705142 A CN113705142 A CN 113705142A CN 202111033159 A CN202111033159 A CN 202111033159A CN 113705142 A CN113705142 A CN 113705142A
Authority
CN
China
Prior art keywords
target
computing
reconfigurable
array
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111033159.XA
Other languages
English (en)
Inventor
郭一欣
刘琦
周骏
唐秦伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Unilc Semiconductors Co Ltd
Original Assignee
Xian Unilc Semiconductors Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Unilc Semiconductors Co Ltd filed Critical Xian Unilc Semiconductors Co Ltd
Priority to CN202111033159.XA priority Critical patent/CN113705142A/zh
Publication of CN113705142A publication Critical patent/CN113705142A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)

Abstract

本申请公开一种三维芯片、计算系统及计算方法,三维芯片包括:数据存储阵列芯片组件,包括至少一层数据存储阵列芯片,数据存储阵列芯片包括多个数据存储阵列;动态重构存储阵列芯片组件,包括至少一层动态重构存储阵列芯片,动态重构存储阵列芯片包括多个动态重构存储阵列;可重构计算阵列芯片组件,包括至少一层可重构计算阵列芯片,可重构计算阵列芯片包括多个可重构计算阵列。能够改善现有三维芯片的存储访问结构,使得在相同存储阵列中继承已完成的计算的结果数据,降低甚至避免数据在存储阵列中的搬移,降低全局内部存储访问开销,解决计算效率随着计算流水线越长,增大全局内部存储访问的开销,导致计算效率降低的问题,降低计算功耗。

Description

一种三维芯片、计算系统及计算方法
技术领域
本申请涉及集成芯片技术领域,尤其涉及一种三维芯片、计算系统及方法。
背景技术
三维芯片的存内计算系统是克服存储墙的有效手段,上位系统可以通过标准DDR(双倍速率同步动态随机存储器)接口,DDR接口可以是DDR1、DDR2、DDR3、DDR4、DDR5和LPDDR2、LPDDR3、LPDDR4、LPDDR5以及GDDR1、GDDR2、GDDR3、GDDR4、GDDR5、GDDR6等,对存内计算系统写入数据以及配置控制指令等,存内计算系统计算完毕后,上位系统取回计算结果。计算结果的输入和输出均通过计算系统的外部接口传输,需要经过存储墙;计算中间过程的存储访问是在存内计算系统中完成的。绝大部分存储访问在存内计算系统中,多个计算步骤执行过程中的计算数据共享,能够降低存储墙壁垒,即减少通过存储墙的存储访问带来的功耗增加和带宽降低。
然而,现有三维芯片的存内计算系统,通常是计算阵列在所对应存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在与其对应的下一个存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级完成所有计算过程,上一个计算阵列的计算结果通常是下一个计算阵列的输入数据的一部分,随着计算阵列位置的变化(计算阵列的转换),计算数据也需要进行数据转移,相邻计算阵列之间存在数据级联。在计算过程中,随着数据转移量的增多,会带来全局内部存储访问的巨大开销,进而计算效率降低。
发明内容
本申请实施例提供一种三维芯片、计算系统及计算方法,能够改善现有三维芯片的存储访问结构,避免数据在数据存储阵列中的频繁搬移,降低全局内部存储访问开销,提高计算效率。
本申请实施例的第一方面,提供一种三维芯片,包括:
数据存储阵列芯片组件,包括至少一层数据存储阵列芯片,所述数据存储阵列芯片包括多个数据存储阵列,所述数据存储阵列用于存储目标数据和目标指令;
动态重构存储阵列芯片组件,包括至少一层动态重构存储阵列芯片,所述动态重构存储阵列芯片包括多个动态重构存储阵列,所述动态重构存储阵列用于存储计算功能配置文件;
可重构计算阵列芯片组件,包括至少一层可重构计算阵列芯片,所述可重构计算阵列芯片包括多个可重构计算阵列,所述可重构计算阵列用于基于所述目标数据执行所述目标指令的指令序列中记录的至少一个目标计算功能,所述目标计算功能是所述可重构计算阵列在被配置对应所述目标计算功能的目标计算功能配置文件后获得的功能,所述目标计算功能配置文件是所述可重构计算阵列根据所述目标指令的指令序列通过所述动态重构存储阵列获得的。
在一些实施方式中,所述数据存储阵列和所述可重构计算阵列一一对应。
在一些实施方式中,所述可重构计算阵列用于执行所述目标指令的指令序列中记录的所有所述目标计算功能,执行所述目标指令的指令序列中记录的所有所述目标计算功能的所述可重构计算阵列为同一个所述可重构计算阵列。
在一些实施方式中,存储有所述目标数据的所述数据存储阵列还用于存储结果数据,所述结果数据由所述可重构计算阵列基于所述目标数据执行所述目标计算功能得到,所述结果数据包括中间结果数据和最终结果数据,所述可重构计算阵列用于执行当前所述目标计算功能基于的所述目标数据为执行上一个所述目标计算功能得到的所述中间结果数据,所述最终结果数据由所述可重构计算阵列执行最后一个所述目标计算功能得到。
在一些实施方式中,所述可重构计算阵列芯片还包括动态重构控制逻辑模块,所述动态重构控制逻辑模块用于根据所述目标指令的指令序列从所述动态重构存储阵列中获得所述目标计算功能对应的所述目标计算功能配置文件。
在一些实施方式中,所述可重构计算阵列包括处理模块,所述处理模块用于根据获得的所述目标计算功能配置文件配置对应的所述目标计算功能;
所述处理模块还用于基于所述目标数据,执行被配置的所述目标计算功能。
在一些实施方式中,相邻两层芯片之间通过异质集成连接组件层叠连接,所述异质集成连接组件用于连接相同或不同制备工艺制备的芯片。
在一些实施方式中,所述可重构计算阵列芯片组件设置于所述数据存储阵列芯片组件与所述动态重构存储阵列芯片组件之间;或,
所述数据存储阵列芯片组件设置于所述可重构计算阵列芯片组件与所述动态重构存储阵列芯片组件之间;或,
所述动态重构存储阵列芯片组件设置于所述可重构计算阵列芯片组件与所述数据存储阵列芯片组件之间。
在一些实施方式中,所述数据存储阵列芯片、所述可重构计算阵列芯片和所述动态重构存储阵列芯片中的任意两者或多者设置在同一个芯片层上。
在一些实施方式中,所述动态重构存储阵列包括至少一个重构存储单元,所述重构存储单元用于存储所述计算功能配置文件。
本申请实施例的第二方面,提供一种三维芯片计算系统,包括:如第一方面所述的三维芯片和上位系统,所述三维芯片包括外部存储访问接口;
所述上位系统用于通过所述外部存储访问接口向所述三维芯片下发目标指令目标数据。
本申请实施例的第三方面,提供一种三维芯片计算方法,应用于如第一方面所述的三维芯片,方法包括:
根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据所述目标指令;
根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据。
在一些实施方式中,方法还包括:
根据所述目标指令,存储有所述目标数据的所述数据存储阵列存储所述结果数据。
在一些实施方式中,所述目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,所述结果数据包括N-1个中间结果数据和1个最终结果数据,所述第1目标计算功能至所述第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,所述第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数;
所述根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和所述目标指令的步骤,包括:
根据所述目标指令,所述数据存储阵列芯片组件的所述数据存储阵列存储目标数据和所述目标指令;
根据所述目标指令,存储有第n-1中间结果数据的所述数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数;
所述根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件的步骤,包括:
根据所述目标指令,所述可重构计算阵列芯片组件的所述可重构计算阵列通过所述动态重构存储阵列芯片组件的所述动态重构存储阵列按照所述目标指令的指令序列中记录的第n+1目标计算功能获得对应的第n+1目标计算功能配置文件;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件的步骤,包括:
所述可重构计算阵列配置所述第n+1目标计算功能的所述第n+1目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据的步骤,包括:
所述可重构计算阵列基于所述第n中间结果数据,执行所述第n+1目标计算功能,得到对应的第n+1中间结果数据。
在一些实施方式中,所述目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,所述结果数据包括N-1个中间结果数据和1个最终结果数据,所述第1目标计算功能至所述第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,所述第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数;
所述根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和所述目标指令的步骤,包括:
根据所述目标指令,所述数据存储阵列芯片组件的所述数据存储阵列存储目标数据和所述目标指令;
根据所述目标指令,存储有第n-1中间结果数据的所述数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数;
所述根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件的步骤,包括:
根据所述目标指令,所述可重构计算阵列芯片组件的所述可重构计算阵列通过所述动态重构存储阵列芯片组件的所述动态重构存储阵列按照所述目标指令的指令序列中记录的第n+j目标计算功能和第n+q目标计算功能,获得对应的第n+j目标计算功能配置文件和第n+q目标计算功能配置文件,其中,1-n<j<N-n-1,j为整数,1-n<q<N-n-1,q为整数,且j≠q;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件的步骤,包括:
同一个所述可重构计算阵列配置所述第n+j目标计算功能配置文件和所述第n+q目标计算功能配置文件;或,
任意两个所述可重构计算阵列分别配置所述第n+j目标计算功能配置文件和所述第n+q目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据的步骤,包括:
所述可重构计算阵列基于所述第n中间结果数据,同步执行所述第n+j目标计算功能和所述第n+q目标计算功能,得到对应的第n+j中间结果数据和第n+q中间结果数据。
本申请实施例提供的三维芯片、计算系统及方法,通过设置数据存储阵列芯片组件存储目标数据和目标指令,设置动态重构存储阵列芯片组件存储目标计算功能配置文件,设置可重构计算阵列芯片组件,可重构计算阵列芯片组件中的可重构计算阵列基于目标指令配置与目标计算功能对应的目标计算功能配置文件,获得对应的目标计算功能,之后基于目标数据执行目标计算功能。目标指令的指令序列中记录有至少一个目标计算功能,同一个可重构计算阵列每执行一个目标功能前需要获取目标计算功能配置文件进行目标计算功能的配置,可重构计算阵列的计算功能可以根据目标指令的目标序列进行重构,分时满足计算过程中所有目标计算功能需要。针对现有技术中的三维芯片,计算阵列的计算功能固定,计算过程中一个计算目标完成后,下一个计算功能转向另一个计算阵列,并伴随上一个计算功能所产生的中间结果,被下一个计算功能所对应的计算阵列所访问,由此,所有计算阵列与所有数据存储阵列之间需要建立内部全局存储访问网络连接。在一个目标指令的计算过程中,计算阵列在数据存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在下一个数据存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级完成所有计算过程,上一个计算阵列的计算结果作为下一个计算阵列的输入数据的一部分,随着计算阵列的转换,计算数据也需要进行数据转移,在计算过程中,随着数据转移量增多,会带来全局内部存储访问的巨大开销,进而降低计算效率,将严重影响三维芯片的经济性和实用性。另外,用于数据搬移而必须设计的内部全局存储访问总线不仅会占用计算阵列芯片中大量面积,还会破坏计算阵列芯片中的设计布局,导致系统性能下降。因此,针对现有技术存在的问题,本申请实施例提供的三维芯片,通过设置动态重构存储阵列芯片组件,可重构计算阵列可以通过动态重构存储阵列芯片组件中的动态重构存储阵列获取目标计算功能配置文件进行目标计算功能的配置,可重构计算阵列可以按照目标指令的指令序列顺序配置目标计算功能并执行该计算功能,一个目标指令对应的所有目标计算功能可以在同一个可重构计算阵列中顺序完成,也可以部分目标计算功能在同一个可重构计算阵列中完成。可重构计算阵列的目标计算功能的可重构性,无需对可重构计算阵列与数据存储阵列建立内部全局存储访问网络连接,可以主要依赖可重构计算阵列与数据存储阵列的一对一连接或者多对一连接,实现高带宽局部互连,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。
附图说明
图1为本申请实施例提供的一种三维芯片的结构示意图;
图2为本申请实施例提供的一种三维芯片逻辑结构示意图;
图3为本申请实施例提供的另一种三维芯片逻辑结构示意图;
图4为本申请实施例提供的又一种三维芯片逻辑结构示意图;
图5为本申请实施例提供的一种三维芯片计算系统的结构示意图;
图6为本申请实施例提供的一种三维芯片计算方法的示意性流程图。
具体实施方式
为了更好的理解本说明书实施例提供的技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“两个以上”包括两个或大于两个的情况。
三维芯片的存内计算系统是克服存储墙的有效手段,上位系统可以通过标准DDR(双倍速率同步动态随机存储器)接口,DDR接口可以是DDR1、DDR2、DDR3、DDR4、DDR5和LPDDR2、LPDDR3、LPDDR4、LPDDR5以及GDDR1、GDDR2、GDDR3、GDDR4、GDDR5、GDDR6等,对存内计算系统写入数据以及配置控制指令等,存内计算系统计算完毕后,上位系统取回计算结果。计算结果的输入和输出均通过计算系统的外部接口传输,需要经过存储墙;计算中间过程的存储访问是在存内计算系统中完成的。绝大部分存储访问在存内计算系统中,多个计算步骤执行过程中的计算数据共享,能够降低存储墙壁垒,即减少通过存储墙的存储访问带来的功耗增加和带宽降低。然而,现有三维芯片的存内计算系统,通常是计算阵列在所对应存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在与其对应的下一个存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级完成所有计算过程,上一个计算阵列的计算结果通常是下一个计算阵列的输入数据的一部分,随着计算阵列位置的变化(计算阵列的转换),计算数据也需要进行数据转移,相邻计算阵列之间存在数据级联。在计算过程中,随着数据转移量的增多,会带来全局内部存储访问的巨大开销,进而计算效率降低。
有鉴于此,本申请实施例提供一种三维芯片、计算系统及计算方法,能够改善现有三维芯片随着计算流水线越长,数据转移量越大,会带来全局内部存储访问的巨大开销,进而计算效率降低的问题。
本申请实施例的第一方面,提供一种三维芯片,示例性的,图1为本申请实施例提供的一种三维芯片的结构示意图。如图1所示,本申请实施例提供的三维芯片,包括:数据存储阵列芯片组件100、动态重构存储阵列芯片组件200和可重构计算阵列芯片组件300。数据存储阵列芯片组件100包括至少一层数据存储阵列芯片110,图1所示的数据存储阵列芯片组件100包括一层数据存储阵列芯片110,图1只是示意性的,不作为本申请的具体限定。数据存储阵列芯片110可以包括多个数据存储阵列111,数据存储阵列111用于存储目标数据、目标指令和计算协议数据,计算协议数据如原数据地址、长度、格式类型,和目标地址(计算或处理后的数据)、长度、格式类型等。计算既可以包括数值计算,如乘加、卷积、相关、矩阵运算和图像/视频压缩/解压等;也可以包括数字信号处理计算,如离散傅里叶变换、数字滤波、离散余弦变换等;也包括所述数值计算和数字信号处理计算的混合计算,本申请不作具体限定。根据不同的存储需求和存储规模,数据存储阵列111包括至少一个数据存储单元,数据存储单元用于存储不同的目标数据,本申请不作具体限定。目标数据可以来源于上位系统的下发,本申请也不作具体限定。
示例性的,数据存储阵列芯片包括数据存储阵列晶粒或数据存储阵列晶圆中的至少一种;和/或,
动态重构存储阵列芯片包括动态重构存储阵列晶粒或动态重构存储阵列晶圆中的至少一种;和/或,
可重构计算阵列芯片包括可重构计算阵列晶粒或可重构计算阵列晶圆中的至少一种。容易理解的是,本申请实施例中提到的芯片可以是以晶圆或者晶粒的形态存在的产品。芯片可以为晶粒(die或者chip)、晶圆(wafer)中至少一种,但不以此为限,也可以是本领域技术人员所能想到的任何替换。其中,晶圆是指制作硅半导体电路所用的硅晶片,芯片或晶粒是指将上述制作有半导体电路的晶圆进行分割后的硅晶片。本申请的具体实施例中以芯片为例进行介绍。
继续参考图1,动态重构存储阵列芯片组件200可以包括至少一层动态重构存储阵列芯片210,图1所示的动态重构存储阵列芯片组件200只包括一层动态重构存储阵列芯片210,图1只是示意性,不作为本申请的具体限定。动态重构存储阵列芯片210包括多个动态重构存储阵列211,动态重构存储阵列211用于存储计算功能配置文件和固定计算数据,有些计算功能需求包含固定计算数据,固定计算数据可以包括一些编程文件以及计算常数,例如图像卷积的卷积核权重和有限冲击响应滤波器的系数等,本申请不作具体限定。
继续参考图1,可重构计算阵列芯片组件300包括至少一层可重构计算阵列芯片310,图1所示的可重构计算阵列芯片组件300只包括一层可重构计算阵列芯片310,图1只是示意性,不作为本申请的具体限定。可重构计算阵列芯片310包括多个可重构计算阵列311,可重构计算阵列311用于基于目标数据执行目标指令的指令序列中记录的至少一个目标计算功能,执行顺序可以记录在指令序列中,目标计算功能是可重构计算阵列311在被配置对应目标计算功能的目标计算功能配置文件后获得的功能,目标计算功能配置文件是可重构计算阵列311根据目标指令的指令序列通过动态重构存储阵列获得。目标指令可以来源于上位系统,上位系统可以通过目标指令控制可重构计算阵列311调取目标计算功能配置文件。或者,动态重构存储阵列211将目标计算功能配置文件主动发送给可重构计算阵列311,本申请不作具体限定。目标指令的指令序列中可以记录有多个目标计算功能。可重构计算阵列311获得一个目标计算功能配置文件后,可以根据目标计算功能配置文件进行目标计算功能的配置,配置完成后可以基于目标数据执行被配置的目标计算功能。目标数据可以是可重构计算阵列311根据目标指令从数据存储阵列111中获取得到。
继续参考图1,数据存储阵列芯片110还包括第一连接结构112,动态重构存储阵列芯片210还包括第二连接结构212,可重构计算阵列芯片310还包括第三连接结构312,第一连接结构112和第三连接结构312之间设置有第一片间连接结构130,第三连接结构312和第二连接结构212之间设置有第二片间连接结构230。数据存储阵列芯片110与可重构计算阵列芯片310之间可以通过第一连接结构112、第三连接结构312和第一片间连接结构130进行芯片之间的连接,可重构计算阵列芯片310与动态重构存储阵列芯片210之间可以通过第三连接结构312、第二连接结构212和第二片间连接结构230进行芯片之间的连接。具体连接方式和连接工艺,本申请不作具体限定,图1所示的连接方式和连接关系只是示意性的,不作为本申请的具体限定。
本申请实施例提供的三维芯片,通过设置数据存储阵列芯片组件100存储目标数据和目标指令,设置动态重构存储阵列芯片组件200存储目标计算功能配置文件,设置可重构计算阵列芯片组件300,可重构计算阵列芯片组件300中的可重构计算阵列311基于目标指令配置与目标计算功能对应的目标计算功能配置文件,获得对应的目标计算功能,之后基于目标数据执行目标计算功能。目标指令的指令序列中记录有至少一个目标计算功能,同一个可重构计算阵列311每执行一个目标功能前需要获取目标计算功能配置文件进行目标计算功能的配置,即可重构计算阵列311的计算功能变得可根据需求调整,可重构计算阵列311的计算功能可以根据目标指令的目标序列进行重构,分时满足计算过程中所有目标计算功能需要。针对现有技术中的三维芯片,计算阵列的计算功能固定,计算过程中一个计算目标完成后,下一个计算功能转向另一个计算阵列,并伴随上一个计算功能所产生的中间结果,被下一个计算功能所对应的计算阵列所访问,由此,所有的计算阵列与所有的数据存储阵列之间需要建立内部全局存储访问网络连接。在一个目标指令的计算过程中,计算阵列在数据存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在下一个数据存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级完成所有计算过程,上一个计算阵列的计算结果作为下一个计算阵列的输入数据的一部分,随着计算阵列的转换,计算数据也需要进行数据转移,在计算过程中,随着数据转移量增多,会带来全局内部存储访问的巨大开销,进而降低计算效率,将严重影响三维芯片的经济性和实用性。另外,用于数据搬移而必须设计的内部全局存储访问总线不仅会占用计算阵列芯片中大量面积,还会破坏计算阵列芯片中的设计布局,导致系统性能下降。因此,针对现有技术存在的问题,本申请实施例提供的三维芯片,通过设置动态重构存储阵列芯片组件200,可重构计算阵列311可以通过动态重构存储阵列芯片组件200中的动态重构存储阵列获取目标计算功能配置文件进行目标计算功能的配置,可重构计算阵列311可以按照目标指令的指令序列顺序配置目标计算功能并执行该计算功能,一个目标指令对应的所有目标计算功能可以在同一个可重构计算阵列311中顺序完成,也可以部分目标计算功能在同一个可重构计算阵列311中完成。可重构计算阵列311的目标计算功能的可重构性,无需对可重构计算阵列311与数据存储阵列111建立内部全局存储访问网络连接,可以主要依赖可重构计算阵列311与数据存储阵列111的一对一连接或者多对一连接,实现高带宽局部互连,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。在一种可行的实施方式中,一个数据存储阵列111可以对应连接有多个可重构计算阵列311,或者,多个数据存储阵列111可以对应连接有一个可重构计算阵列311,结合三维异质集成形成高带宽低功耗的内部局部存储访问通道。可重构计算阵列311的目标计算功能的可重构性,无需对所有的可重构计算阵列311与所有的数据存储阵列111建立与内部局部存储访问通道的高带宽相匹配的内部全局存储访问网络连接,可以主要依赖可重构计算阵列311与数据存储阵列111的一对多连接或者多对一连接,可以实现高带宽局部互连,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。
示例性的,执行顺序可以是,由特定可重构计算阵列进行并完成第p步骤对应的目标计算功能后,由特定可重构计算阵列进行并完成第p+1步骤对应的目标计算功能后,由特定可重构计算阵列进行并完成第p+2步骤对应的目标计算功能。也可以是,由特定可重构计算阵列进行并完成第p步骤对应的目标计算功能后,由特定可重构计算阵列及其它可重构计算阵列同时进行并完成第(p+1)_A和第(p+1)_B步骤对应的目标计算功能后,由特定可重构计算阵列或其它可重构计算阵列进行并完成第p+2步骤对应的目标计算功能。还可以是上述两种情况的组合,本申请不作具体限定,其中,p为自然数,且p大于0。
在一种可行的实施方式中,目标计算功能的顺序可以取决于应用需求,可能产生非顺序计算求,例如,第p计算步骤的后一个计算步骤为第p+1计算步骤和p+i等计算步骤,i为任意自然数,且i大于1,且i≠2,第p+1和第p+i计算步骤可以是两个并行计算步骤,第p+1和第p+i计算步骤的下一个计算步骤可以是第n+2计算步骤,第n+2计算步骤是以第p+1和第p+i计算步骤完成为前提条件的。一般性的,当第p+1和第p+i计算步骤需要使用第p计算步骤的结果数据时,或第p+2计算步骤的需要使用第p+1或第p+i计算步骤的结果数据时,第p+1和第p+i计算步骤无法在同一个可重构计算阵列311中完成,例如可重构计算阵列311的计算资源,无法同时支撑第p+1和第p+i两个计算步骤的计算,或可重构计算阵列311对应的数据存储阵列111,无法同时容纳第p+1和第p+i两个计算步骤的计算数据,会导致第p+1和第p+i计算步骤在不止一个可重构计算阵列311和数据存储阵列111的组合中完成,进而产生内部全局存储访问需求。
示例性的,可以设置几组颗粒度较大的可重构计算阵列311和数据存储阵列111的组合,用于满足并行计算步骤的需求。常见地大部分计算应用需求中,可以避免并行计算步骤的需求大量出现。
面对多样性的应用计算需求,由并行计算步骤,或计算功能序列之间的计算数据共享,无法完全避免内部全局存储访问需求,实现内部全局存储访问能力,是保障系统通用性的必要条件:
建立一个带宽较低的内部全局访问总线,实现可重构计算阵列311的跨数据存储阵列111的内部存储访问,内部全局访问总线可以设置在数据存储阵列芯片组件100、动态重构存储阵列芯片组件200或可重构计算阵列芯片组件300上。虽然这会占用数据存储阵列芯片组件100、动态重构存储阵列芯片组件200或可重构计算阵列芯片组件300上的有效面积,但由于通常,内部全局存储访问需求在整个计算需求序列中占比极小,可以降低内部全局访问总线带宽,以减小有效面积开销。
在上位系统配合下完成,实现可重构计算阵列311的跨数据存储阵列111的内部存储访问,可以由上位系统将数据从一个数据存储阵列111中取出,并写入到目标数据存储阵列中,目标数据存储阵列可以是任意数据存储阵列111。虽然这会导致内部全局存储访问的相关数据,通过存储墙,并占用上位系统的处理能力,但由于通常,内部全局存储访问需求在整个计算需求序列中占比极小,上位系统配合完成的内部全局存储访问行为,几乎不会影响系统性能。
在一种可行的实施方式中,图2为本申请实施例提供的一种三维芯片逻辑结构示意图。如图2所示,数据存储阵列111可以有m个,分别是数据存储阵列1、数据存储阵列2、数据存储阵列3……数据存储阵列m,m是大于或等于1的自然数,可重构计算阵列311可以有m个,分别是可重构计算阵列1、可重构计算阵列2、可重构计算阵列3……可重构计算阵列m,动态重构存储阵列211可以集中设置为1个,也可以分散设置成多个,图2所示的动态重构存储阵列211为1个,只是示意性的,不作为本申请的具体限定。数据存储阵列111和可重构计算阵列311可以一一对应,可重构计算阵列311用于执行目标指令的指令序列中记录的所有目标计算功能,典型情况下,执行目标指令的指令序列中记录的所有目标计算功能的可重构计算阵列311为同一个所述可重构计算阵列311;一个目标指令中可以指定一组数据存储阵列111和可重构计算阵列311,一组数据存储阵列111和可重构计算阵列311中可以是一个数据存储阵列111和一个可重构计算阵列311,一组数据存储阵列111和可重构计算阵列311能够完成目标指令中指令序列记录的一个计算步骤,基于一一对应的数据存储阵列111和可重构计算阵列311上的局部内部存储访问,及可重构计算阵列311的重新编程,实现目标指令中指令序列记录的所有计算步骤,即完成一个计算循环;目标指令1所记载的计算循环1……目标指令m所记载的计算循环m可以对应局部内部存储访问1……局部内部存储访问m。
本申请实施例提供的三维芯片,可重构计算阵列311的目标计算功能的可重构性,可以主要建立可重构计算阵列311与数据存储阵列111的高带宽局部互连,一个目标指令对应的一个计算循环可以只在一个数据存储阵列111和一个可重构计算阵列311之间完成所数据的局部访问和传输,一个目标指令对应的一个计算循环主要在一个可重构计算阵列311中完成所有的目标计算功能,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。
在一种可行的实施方式中,继续参考图2,存储有目标数据的数据存储阵列111还用于存储结果数据,结果数据由可重构计算阵列311基于目标数据执行目标计算功能得到,结果数据包括中间结果数据和最终结果数据,可重构计算阵列311用于执行当前目标计算功能基于的目标数据为执行上一个目标计算功能得到的中间结果数据,最终结果数据由可重构计算阵列执行最后一个目标计算功能得到。
本申请实施例提供的三维芯片,目标数据、中间结果数据和最终结果数据主要存储在同一个数据存储阵列111内,可以避免可重构计算阵列311在执行不同目标计算功能的过程中的输入数据和输出数据的在不同数据存储阵列111中的大量转移,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,能够进一步提高三维芯片的计算效率。
在一种可行的实施方式中,图3为本申请实施例提供的另一种三维芯片逻辑结构示意图。示例性的,如图3所示,可重构计算阵列芯片310还包括动态重构控制逻辑模块313,动态重构控制逻辑模块313用于根据目标指令的指令序列从动态重构存储阵列211中获得目标计算功能对应的目标计算功能配置文件。示例性的,可重构计算阵列311、动态重构控制逻辑模块313和动态重构存储阵列211三者可以是一一对应的,只是示意性的,不作为本申请的具体限定。动态重构控制逻辑模块313用于根据目标指令的指令序列从动态重构存储阵列211中获得目标计算功能对应的目标计算功能配置文件后,可重构计算阵列311可以根据获得的目标计算功能配置文件对目标计算功能进行配置。
本申请实施例提供的三维芯片,动态重构控制逻辑模块313可以实现依据目标指令对目标计算功能配置文件的自动调取,为可重构计算阵列311的计算功能切换做准备,可以实现同一个可重构计算阵列311的多个计算功能切换,可重构计算阵列311的计算功能不再是固定不变的,能够避免为实现不同计算功能而频繁转换计算阵列,也同时大幅降低计算数据的频繁转移,能够提高三维芯片的计算效率,进一步扩大三维芯片的经济性和实用性。
在一种可行的实施方式中,动态重构控制逻辑模块还可以设置在动态重构存储阵列芯片210中,本申请不作具体限定,功能不变。
在一种可行的实施方式中,可重构计算阵列还包括处理模块,处理模块用于根据获得的目标计算功能配置文件配置对应的目标计算功能;处理模块还用于基于目标数据,执行被配置的目标计算功能。示例性的,处理模块可以包括计算单元和静态随机存储器,计算单元可以不限于乘加计算单元、乘法计算单元、脉动处理器、哈希计算单元和机器学习单元等,本申请不作具体限定。处理模块还可以采用FPGA(现场可编辑逻辑门阵列)或eFPGA(嵌入式现场可编辑逻辑门阵列),可以利用其可编程性实现可重构功能,本申请不作具体限定。可重构计算阵列还可以包括其他硬核IP,硬核IP可以理解为现有的固化有效运算单元(硬件器件),以增加计算密度,本申请不作具体限定,由此可以适应性的增加有效运算密度,即增加计算器件的密度,进而实现增加计算功能的种类和数量。示例性的,静态随机存储器可以用于根据获得的目标计算功能配置文件配置目标计算功能,计算单元可以根据静态随机存储器配置的目标计算功能进行对应功能的计算,得到结果数据。
本申请实施例提供的三维芯片,通过设置处理模块,用于配置目标计算功能并执行目标计算功能,处理模块结合动态重构控制逻辑模块能够实现可重构计算阵列的计算功能可重构,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。
在一种可行的实施方式中,示例性的,图4为本申请实施例提供的又一种三维芯片逻辑结构示意图。如图4所示,动态重构存储阵列211可以包括至少一个重构存储单元,重构存储单元用于存储计算功能配置文件和固定计算数据。示例性的,每个动态重构存储阵列中的多个重构存储单元可以分别表示为step1、step2、step3至stepk,对应计算循环中的多个计算步骤(即计算功能),k可以是大于1或等于1的自然数。一个重构存储单元可以存储一个或多个目标计算功能配置文件,一个动态重构存储阵列中的所有重构存储单元可以对应存储一个计算循环所需的所有目标计算功能配置文件,本申请不作具体限定。
本申请实施例提供的三维芯片,动态重构存储阵列211可以包括至少一个重构存储单元,重构存储单元可以视为存储空间,重构存储单元越多,存储密度越大,存储的计算功能越多。一个动态重构存储阵列中的所有重构存储单元可以对应存储一个计算循环所需的所有目标计算功能配置文件,在同一个计算循环(即执行同一个目标指令中的所有目标计算功能)中,在对于目标计算功能配置文件调取时,可重构计算阵列311可以只对应一个动态重构存储阵列211,能够避免在调用目标计算功能配置文件时引起频繁的内部全局存储访问,可以提高文件调用的效率。
在一种可行的实施方式中,相邻两层芯片之间通过异质集成连接组件连接,异质集成连接组件用于连接相同或不同制备工艺制备的芯片。数据存储阵列芯片110、动态重构存储阵列芯片210和可重构计算阵列芯片310,由于三者的功能不同,因此,三者的制备工艺可能存在差异,属于异质芯片,将异质芯片集成为三维芯片,需要在异质芯片之间建立密集的连接,这种密集的连接可以采用异质集成连接组件,如图1所示,异质集成连接组件可以包括第一连接结构112和第一片间连接结构130,或者包括第三连接结构312第一片间连接结构130,或者包括第二连接结构212和第二片间连接结构230,或者包括第三连接结构312和第二片间连接结构230。示例性的,无论第一片、第二片和第三片采用何种制备工艺,通过统一的后道工艺,增加制备统一材质金属层,既作为互连界面,又作为芯片内互连中转,将芯片间互连线在芯片内集中互连至,所述第一连接结构112、第三连接结构312和第二连接结构212处;在作为互连界面的统一材质接金属层之间,使用异质集成工艺,实现芯片之间的高密度互连结构,即第一连接结构112、第二连接结构212和第三连接结构312,本申请均不作具体限定。
本申请实施例提供的三维芯片,通过异质集成连接组件可以实现不同制备工艺制备得到的芯片集成在一起形成三维芯片,实现无需建立三维芯片内部的内部全局连接网络,在基于目标指令进行计算过程中,极大降低甚至取消内部全局存储访问,极大提高三维芯片的计算效率。
在一种可行的实施方式中,相邻两层芯片之间采用金属键合的方式连接。示例性的,异质集成连接组件可以通过后道工艺,形成统一材质接金属层,例如铜,作为互连界面。示例性的,如图1所示,以数据存储阵列芯片110和计算阵列芯片310的互连为例,数据存储阵列芯片110为28nm铝连接工艺,计算阵列芯片310为12nm铜连接工艺;通过后道工艺在数据存储阵列芯片110的下层,增加制备铜连接工艺的金属层作为互连界面,并在计算阵列芯片310的上层,增加制备铜连接工艺的金属层作为互连界面;在数据存储阵列芯片110的下层铜连接金属层互连界面上,将互连至计算阵列芯片310的信号,集中互连到第一连接结构112上的下层,并在计算阵列芯片310的上层铜连接金属层互连界面上,将互连至数据存储阵列芯片110的信号,集中互连到第二连接结构212上的上层;第一连接结构112上的下层互连界面和第二连接结构212上的上层互连界面的互连点是高度平整化的开窗(裸露)的铜金属,且对应逻辑连接的物理分布位置相同;使用纯水介质,对准贴合数据存储阵列芯片110和计算阵列芯片310,并通过退火工艺,随着水分子蒸发/挥发,贴合的第一连接结构112上的下层互连界面第二连接结构212上的上层互连界面的对应键合位之间建立范德华力,形成一体;目前工业界可实现所述芯片间互连间距1um,即1百万互连每平方毫米,形成支撑本发明高带宽跨芯片互连的重要支撑;芯片间互连可以以芯片颗粒为单位,也可以以整个晶圆为单位,本申请不作具体限定。结合上述方法,容易实现计算阵列芯片310和动态重构存储阵列芯片210之间的高密度跨芯片互连。
本申请实施例提供的三维芯片,采用金属键合的方式实现相邻两层芯片的连接,金属键合工艺容易实现,且能够实现两侧芯片中的阵列之间形成密集连接,被连接的两个对侧阵列或者多个对侧阵列之间能够实现高密度互连,可以用于实现内部一对一的存储访问,通讯连接良好。
在一种可行的实施方式中,可以根据数据存储的具体需求和存储规模的设定,可以在数据存储阵列芯片组件100中设置多层数据存储阵列芯片110,也可以根据目标计算功能配置文件的存储需求或者存储规模设定,动态重构存储阵列芯片组件200可以设置多层动态重构存储阵列芯片210,根据计算量的需求,可重构计算阵列芯片组件300可以设置多层可重构计算阵列芯片310,本申请不作具体限定。示例性的,可重构计算阵列芯片组件300中可以单独设置一层由硬核IP组成的可重构计算阵列芯片310,本申请不作具体限定。
本申请实施例提供的三维芯片,通过设置多层芯片组成芯片组件,可以得到多层芯片结构,可以根据具体的功能和规模的需求,得到相应的三维芯片,最大限度的实现需求的效果。
在一种可行的实施方式中,可重构计算阵列芯片组件设置于数据存储阵列芯片组件与动态重构存储阵列芯片组件之间;和/或,
数据存储阵列芯片组件设置于可重构计算阵列芯片组件与动态重构存储阵列芯片组件之间;和/或,
动态重构存储阵列芯片组件设置于可重构计算阵列芯片组件与数据存储阵列芯片组件之间。
本申请实施例提供的三维芯片,多个芯片组件之间的连接位置设定可以根据具体功能需求进行灵活设定,可以使得三维芯片具有更多的计算功能,更大的计算规模,可以拓宽三维芯片的应用场景。
在一种可行的实施方式中,可重构计算阵列芯片设置于数据存储阵列芯片与动态重构存储阵列芯片之间;和/或,
数据存储阵列芯片设置于可重构计算阵列芯片与动态重构存储阵列芯片之间;和/或,
动态重构存储阵列芯片设置于可重构计算阵列芯片与数据存储阵列芯片之间。
本申请实施例提供的三维芯片,不同芯片之间的连接位置设定可以根据具体功能需求进行灵活设定,同样可以使得三维芯片具有更多的计算功能,更大的计算规模,可以拓宽三维芯片的应用场景。
在一种可行的实施方式中,数据存储阵列芯片、可重构计算阵列芯片和动态重构存储阵列芯片中的任意两者或多者同层设置。如果需求的功能较少或者需求的计算规模较小,可以将对应的两个或者多个芯片整合为一层芯片。示例性的,动态重构存储阵列芯片与数据存储阵列芯片同层设置,即将至少一个动态重构存储阵列和至少一个数据存储阵列整合在一层芯片上,具体的,可以是将动态重构存储阵列与数据存储阵列在同一个芯片上间隔设置,并在芯片内互连,形成一层芯片结构,该层芯片结构可以兼具动态重构存储功能与数据存储功能,具体可以通过相互连接的动态重构存储阵列与数据存储阵列来实现。
示例性的,动态重构存储阵列芯片与可重构计算阵列芯片同层设置,即将至少一个动态重构存储阵列和至少一个可重构计算阵列整合在一层芯片上,具体的,可以是将动态重构存储阵列与可重构计算阵列在同一个芯片上间隔设置,并在芯片内互连,形成一层芯片结构,该层芯片结构可以兼具动态重构存储功能与重构计算功能,具体可以通过相互连接的动态重构存储阵列与可重构计算阵列来实现。需要说明的是,被整合在一层芯片上的阵列需要采用能够兼容的制备工艺实现同层整合,兼容的制备工艺可以是相似或者相同的制备工艺,本申请不作具体限定。
本申请实施例提供的三维芯片,通过将不同芯片合并为一层芯片的方式,实现芯片功能的整合,可以减少三维芯片的制备和测试工艺流程,工艺流程的减少也会带来失效率的降低,从而能够达到降低生产成本的效果。另外,将不同芯片整合在一层,可以增大不同功能阵列之间的互连密度,增强三维芯片的计算功能和存储功能。
本申请实施例的第二方面,提供一种三维芯片计算系统,图5为本申请实施例提供的一种三维芯片计算系统的结构示意图。示例性的,如图5所示,本申请实施例提供的三维芯片计算系统,包括:本申请第一方面所述的三维芯片1000和上位系统2000,三维芯片包括外部存储访问接口400;上位系统2000用于通过外部存储访问接口400向三维芯片1000下发目标指令和目标数据。上位系统2000还用于将三维芯片计算得到的最终结果数据调取出来,外部存储访问接口400可以设置在数据存储阵列芯片110上,本申请不作具体限定。
本申请实施例提供的三维芯片计算系统,通过设置数据存储阵列芯片组件100存储目标数据、目标指令和计算协议数据,设置动态重构存储阵列芯片组件200存储目标计算功能配置文件,设置可重构计算阵列芯片组件300,计算阵列芯片组件300中的可重构计算阵列311基于目标指令配置与对应目标计算功能的目标计算功能配置文件,获得对应的目标计算功能,之后基于目标数据执行目标计算功能。目标指令的指令序列中记录有至少一个目标计算功能,同一个可重构计算阵列311每执行一个目标功能前需要获取目标计算功能配置文件进行目标计算功能的配置,即可重构计算阵列311的计算功能变得可根据需求调整,可重构计算阵列311的计算功能可以根据目标指令的目标序列进行重构。针对现有技术中的三维芯片,计算阵列的计算功能固定不可重构,每跳转一个计算功能需要切换另一个计算阵列,所有的计算阵列与所有的数据存储阵列之间需要建立内部全局存储访问网络连接,在一个目标指令的计算过程中,计算阵列在数据存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在下一个数据存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级以流水线方式完成所有计算过程,上一个计算阵列的计算结果作为下一个计算阵列的输入数据的一部分,随着计算阵列的转换,计算数据也需要进行数据转移,相邻计算阵列之间存在数据级联。随着计算流水线越长,数据转移量越大,会带来全局内部存储访问的巨大开销,进而降低计算效率,将严重影响三维芯片的经济性和实用性。另外,用于数据搬移而必须设计的内部全局存储访问总线不仅会占用计算阵列芯片中大量面积,还会破坏计算阵列芯片中的设计布局,导致系统性能下降。因此,针对现有技术存在的问题,本申请实施例提供的三维芯片,通过设置动态重构存储阵列芯片组件200,可重构计算阵列311可以通过动态重构存储阵列芯片组件200中的动态重构存储阵列获取目标计算功能配置文件进行目标计算功能的配置,可重构计算阵列311可以按照目标指令的指令序列顺序配置目标计算功能并执行该计算功能,一个目标指令对应的所有目标计算功能可以在同一个可重构计算阵列311中顺序完成,也可以部分目标计算功能在同一个可重构计算阵列311中完成。可重构计算阵列311的目标计算功能的可重构性,无需对所有的可重构计算阵列311与所有的数据存储阵列111建立内部全局存储访问网络连接,可以主要建立可重构计算阵列311与数据存储阵列111的高带宽局部互连,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量转移,极大提高三维芯片的计算效率。另外,三维芯片1000的计算过程中的存储访问均在三维芯片内部完成,无需跨越与上位系统之间的存储墙,能够进一步提升计算效率,降低功耗。
本申请实施例的第三方面,提供一种三维芯片计算方法,应用于如第一方面所述的三维芯片,图6为本申请实施例提供的一种三维芯片计算方法的示意性流程图。如图6所示,本申请实施例提供的三维芯片计算方法,包括:
S100:根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据、目标指令和计算协议数据。目标指令中可以包括有指令序列、目标数据的存放地址,指定数据存储阵列、可重构计算阵列以及对应的动态重构存储阵列的编码或者属性等,目标指令还可以包括数据存储阵列、可重构计算阵列以及对应的动态重构存储阵列的选择协议规则等,本申请不作具体限定;计算协议数据包括原数据地址、长度、格式类型,和目标地址(计算、处理后数据)、长度、格式类型等,本申请不作具体限定。目标指令和目标数据均可以来源于上位系统的下发,本申请实施例不作具体限定。
S200:根据目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件和固定计算数据。目标指令的指令序列中可以记录有至少一个目标计算功能,当有多个目标计算功能时,指令序列会记录有各个目标计算功能的执行顺序等,本申请不作具体限定;有些计算需求包含所述固定计算数据,存储在所述动态重构存储阵列中,如图像卷积的卷积核权重和有限冲击响应滤波器的系数等,本申请不作具体限定。
S300:可重构计算阵列配置目标计算功能对应的目标计算功能配置文件和固定计算数据。可重构计算阵列配置目标计算功能对应的目标计算功能配置文件后,会具备目标计算功能;对于有些计算可重构计算阵列通过配置获得计算所需的固定计算数据,即计算常数。
S400:可重构计算阵列基于目标数据,执行目标计算功能,得到对应的结果数据。对于目标计算功能的执行,输入数据时目标数据,输出的是结果数据。
本申请实施例提供的三维芯片计算方法,通过数据存储阵列芯片组件存储目标数据、目标指令和计算协议数据,动态重构存储阵列芯片组件存储目标计算功能配置文件,可重构计算阵列芯片组件中的可重构计算阵列基于目标指令配置与对应目标计算功能的目标计算功能配置文件,获得对应的目标计算功能,之后基于目标数据执行目标计算功能。目标指令的指令序列中记录有至少一个目标计算功能,同一个可重构计算阵列每执行一个目标功能前需要获取目标计算功能配置文件进行目标计算功能的配置,即可重构计算阵列的计算功能变得可根据需求调整,可重构计算阵列的计算功能可以根据目标指令的目标序列进行重构。针对现有技术中的三维芯片,计算阵列的计算功能固定不可重构,每跳转一个计算功能需要切换另一个计算阵列,所有的计算阵列与所有的数据存储阵列之间需要建立内部全局存储访问网络连接,在一个目标指令的计算过程中,计算阵列在数据存储阵列中通过局部内部存储访问完成阶段计算后,下一个计算阵列在下一个数据存储阵列中通过局部内部存储访问执行下一个阶段计算,依次逐级以流水线方式完成所有计算过程,上一个计算阵列的计算结果作为下一个计算阵列的输入数据的一部分,随着计算阵列的转换,计算数据也需要进行数据转移,相邻计算阵列之间存在数据级联。随着计算流水线越长,数据转移量越大,会带来全局内部存储访问的巨大开销,进而降低计算效率,将严重影响三维芯片的经济性和实用性。另外,用于数据搬移而必须设计的内部全局存储访问总线不仅会占用计算阵列芯片中大量面积,还会破坏计算阵列芯片中的设计布局,导致系统性能下降。因此,针对现有技术存在的问题,本申请实施例提供的三维芯片计算方法,可重构计算阵列可以通过动态重构存储阵列芯片组件中的动态重构存储阵列获取目标计算功能配置文件进行目标计算功能的配置,可重构计算阵列可以按照目标指令的指令序列顺序配置目标计算功能并执行该计算功能,一个目标指令对应的所有目标计算功能可以在同一个可重构计算阵列中顺序完成,也可以部分目标计算功能在同一个可重构计算阵列中完成。可重构计算阵列的目标计算功能的可重构性,无需对所有的可重构计算阵列与所有的数据存储阵列建立内部全局存储访问网络连接,可以主要依赖可重构计算阵列与数据存储阵列的高带宽局部互连,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,显著减少可重构计算阵列的频繁切换以及数据的大量搬移,极大提高三维芯片的计算效率。
在一种可行的实施方式中,方法还包括:
根据目标指令,存储有目标数据的所述数据存储阵列存储结果数据。容易理解的是,当目标指令序列中包含的目标计算功能为两个或两个以上时,结果数据包括中间结果数据和最终结果数据,目标数据可是原始数据,也可以是中间结果数据,即目标数据是作为执行目标计算功能的输入数据,中间结果数据和最终结果数据作为执行目标计算功能的输出数据,因此,中间结果数据既是当前目标计算功能的输出数据,也可能是下一个目标计算功能的输入数据。
本申请实施例提供的三维芯片计算方法,目标数据、中间结果数据和最终结果数据均存储在同一个数据存储阵列内,可以避免可重构计算阵列在执行不同目标计算功能的过程中的输入数据和输出数据的在不同数据存储阵列111中的大量转移,能够大幅降低甚至避免在一个目标指令下的计算过程中进行大量的内部全局存储访问,能够进一步提高三维芯片的计算效率。
在一种可行的实施方式中,目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,结果数据包括N-1个中间结果数据和1个最终结果数据,第1目标计算功能至第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数。
一个目标指令中当目标计算功能的数量大于1个的时候,示例性的,步骤S100,可以包括:
根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据、目标指令。
根据目标指令,存储有第n-1中间结果数据的数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数。示例性的,当N=16,n=13,本申请不作具体限定。
步骤S200,可以包括:
根据目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照目标指令的指令序列中记录的第n+1目标计算功能获得对应的第n+1目标计算功能配置文件。
步骤S300,可以包括:
可重构计算阵列配置第n+1目标计算功能的第n+1目标计算功能配置文件;
步骤S400,可以包括:
可重构计算阵列基于第n中间结果数据,执行第n+1目标计算功能,得到对应的第n+1中间结果数据。
示例性的,当N=3时,三维芯片计算方法的具体步骤如下:
根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和目标指令和计算协议数据。
根据目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照目标指令的指令序列中记录的第1目标计算功能获得对应的第1目标计算功能配置文件。
可重构计算阵列配置第1目标计算功能的第1目标计算功能配置文件。
可重构计算阵列基于目标数据,执行第1目标计算功能,得到对应的第1中间结果数据。
根据目标指令,存储有目标数据的数据存储阵列存储第1中间结果数据。
根据目标指令,可重构计算阵列通过动态重构存储阵列按照目标指令的指令序列中记录的第2目标计算功能获得对应的第2目标计算功能配置文件。
可重构计算阵列配置第2目标计算功能的第2目标计算功能配置文件。
可重构计算阵列基于第1中间结果数据,执行第2目标计算功能,得到对应的第2中间结果数据。
根据目标指令,存储有第1中间结果数据的数据存储阵列存储第2中间结果数据。
根据目标指令,可重构计算阵列通过动态重构存储阵列按照目标指令的指令序列中记录的第3目标计算功能获得对应的第3目标计算功能配置文件。
可重构计算阵列配置第3目标计算功能的第3目标计算功能配置文件。
可重构计算阵列基于第2中间结果数据,执行第3目标计算功能,得到对应的最终结果数据。
根据目标指令,存储有第2中间结果数据的数据存储阵列存储最终结果数据。得到最终结果数据后,表明该目标指令记录的所有目标计算功能已经执行完成,则目标指令执行完成,可重构计算阵列停止执行操作。
在一些实施方式中,目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,结果数据包括N-1个中间结果数据和1个最终结果数据,第1目标计算功能至第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数;
步骤S100,可以包括:
根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和目标指令;
根据目标指令,存储有第n-1中间结果数据的所述数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数;
步骤S200,可以包括:
根据目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照目标指令的指令序列中记录的第n+j目标计算功能和第n+q目标计算功能,获得对应的第n+j目标计算功能配置文件和第n+q目标计算功能配置文件,其中,1-n<j<N-n-1,j为整数,1-n<q<N-n-1,q为整数,且j≠q;
步骤S300,可以包括:
同一个可重构计算阵列配置第n+j目标计算功能配置文件和第n+q目标计算功能配置文件;或,
任意两个可重构计算阵列分别配置第n+j目标计算功能配置文件和第n+q目标计算功能配置文件;
步骤S400,可以包括:
可重构计算阵列基于第n中间结果数据,同步执行第n+j目标计算功能和第n+q目标计算功能,得到对应的第n+j中间结果数据和第n+q中间结果数据。
需要说明的是,本申请上述芯片也可以替换为晶粒或晶圆。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。

Claims (15)

1.一种三维芯片,其特征在于,包括:
数据存储阵列芯片组件,包括至少一层数据存储阵列芯片,所述数据存储阵列芯片包括多个数据存储阵列,所述数据存储阵列用于存储目标数据和目标指令;
动态重构存储阵列芯片组件,包括至少一层动态重构存储阵列芯片,所述动态重构存储阵列芯片包括多个动态重构存储阵列,所述动态重构存储阵列用于存储计算功能配置文件;
可重构计算阵列芯片组件,包括至少一层可重构计算阵列芯片,所述可重构计算阵列芯片包括多个可重构计算阵列,所述可重构计算阵列用于基于所述目标数据执行所述目标指令的指令序列中记录的至少一个目标计算功能,所述目标计算功能是所述可重构计算阵列在被配置对应所述目标计算功能的目标计算功能配置文件后获得的功能,所述目标计算功能配置文件是所述可重构计算阵列根据所述目标指令的指令序列通过所述动态重构存储阵列获得的。
2.根据权利要求1所述的三维芯片,其特征在于,所述数据存储阵列和所述可重构计算阵列一一对应。
3.根据权利要求2所述的三维芯片,其特征在于,所述可重构计算阵列用于执行所述目标指令的指令序列中记录的所有所述目标计算功能,执行所述目标指令的指令序列中记录的所有所述目标计算功能的所述可重构计算阵列为同一个所述可重构计算阵列。
4.根据权利要求1所述的三维芯片,其特征在于,存储有所述目标数据的所述数据存储阵列还用于存储结果数据,所述结果数据由所述可重构计算阵列基于所述目标数据执行所述目标计算功能得到,所述结果数据包括中间结果数据和最终结果数据,所述可重构计算阵列用于执行当前所述目标计算功能基于的所述目标数据为执行上一个所述目标计算功能得到的所述中间结果数据,所述最终结果数据由所述可重构计算阵列执行最后一个所述目标计算功能得到。
5.根据权利要求1所述的三维芯片,其特征在于,所述可重构计算阵列芯片还包括动态重构控制逻辑模块,所述动态重构控制逻辑模块用于根据所述目标指令的指令序列从所述动态重构存储阵列中获得所述目标计算功能对应的所述目标计算功能配置文件。
6.根据权利要求1所述的三维芯片,其特征在于,所述可重构计算阵列包括处理模块,所述处理模块用于根据获得的所述目标计算功能配置文件配置对应的所述目标计算功能;
所述处理模块还用于基于所述目标数据,执行被配置的所述目标计算功能。
7.根据权利要求1所述的三维芯片,其特征在于,相邻两层芯片之间通过异质集成连接组件层叠连接,所述异质集成连接组件用于连接相同或不同制备工艺制备的芯片。
8.根据权利要求1所述的三维芯片,其特征在于,所述可重构计算阵列芯片组件设置于所述数据存储阵列芯片组件与所述动态重构存储阵列芯片组件之间;或,
所述数据存储阵列芯片组件设置于所述可重构计算阵列芯片组件与所述动态重构存储阵列芯片组件之间;或,
所述动态重构存储阵列芯片组件设置于所述可重构计算阵列芯片组件与所述数据存储阵列芯片组件之间。
9.根据权利要求1所述的三维芯片,其特征在于,所述数据存储阵列芯片、所述可重构计算阵列芯片和所述动态重构存储阵列芯片中的任意两者或多者设置在同一个芯片层上。
10.根据权利要求1所述的三维芯片,其特征在于,所述动态重构存储阵列包括至少一个重构存储单元,所述重构存储单元用于存储所述计算功能配置文件。
11.一种三维芯片计算系统,其特征在于,包括:如权利要求1-10中任一项所述的三维芯片和上位系统,所述三维芯片包括外部存储访问接口;
所述上位系统用于通过所述外部存储访问接口向所述三维芯片下发目标指令目标数据。
12.一种三维芯片计算方法,其特征在于,应用于如权利要求1-10中任一项所述的三维芯片,方法包括:
根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据所述目标指令;
根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据。
13.根据权利要求12所述的三维芯片计算方法,其特征在于,还包括:
根据所述目标指令,存储有所述目标数据的所述数据存储阵列存储所述结果数据。
14.根据权利要求13所述的三维芯片计算方法,其特征在于,所述目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,所述结果数据包括N-1个中间结果数据和1个最终结果数据,所述第1目标计算功能至所述第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,所述第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数;
所述根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和所述目标指令的步骤,包括:
根据所述目标指令,所述数据存储阵列芯片组件的所述数据存储阵列存储目标数据和所述目标指令;
根据所述目标指令,存储有第n-1中间结果数据的所述数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数;
所述根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件的步骤,包括:
根据所述目标指令,所述可重构计算阵列芯片组件的所述可重构计算阵列通过所述动态重构存储阵列芯片组件的所述动态重构存储阵列按照所述目标指令的指令序列中记录的第n+1目标计算功能获得对应的第n+1目标计算功能配置文件;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件的步骤,包括:
所述可重构计算阵列配置所述第n+1目标计算功能的所述第n+1目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据的步骤,包括:
所述可重构计算阵列基于所述第n中间结果数据,执行所述第n+1目标计算功能,得到对应的第n+1中间结果数据。
15.根据权利要求13所述的三维芯片计算方法,其特征在于,所述目标指令的指令序列中记录有第1目标计算功能至第N目标计算功能,所述结果数据包括N-1个中间结果数据和1个最终结果数据,所述第1目标计算功能至所述第N-1目标计算功能对应第1中间结果数据至所述第N-1中间结果数据,所述第N目标计算功能对应最终结果数据,N大于或等于1,N为自然数;
所述根据目标指令,数据存储阵列芯片组件的数据存储阵列存储目标数据和所述目标指令的步骤,包括:
根据所述目标指令,所述数据存储阵列芯片组件的所述数据存储阵列存储目标数据和所述目标指令;
根据所述目标指令,存储有第n-1中间结果数据的所述数据存储阵列存储第n中间结果数据,其中,1<n<N-1,n为自然数;
所述根据所述目标指令,可重构计算阵列芯片组件的可重构计算阵列通过动态重构存储阵列芯片组件的动态重构存储阵列按照所述目标指令的指令序列中记录的目标计算功能获得对应的目标计算功能配置文件的步骤,包括:
根据所述目标指令,所述可重构计算阵列芯片组件的所述可重构计算阵列通过所述动态重构存储阵列芯片组件的所述动态重构存储阵列按照所述目标指令的指令序列中记录的第n+j目标计算功能和第n+q目标计算功能,获得对应的第n+j目标计算功能配置文件和第n+q目标计算功能配置文件,其中,1-n<j<N-n-1,j为整数,1-n<q<N-n-1,q为整数,且j≠q;
所述可重构计算阵列配置所述目标计算功能对应的所述目标计算功能配置文件的步骤,包括:
同一个所述可重构计算阵列配置所述第n+j目标计算功能配置文件和所述第n+q目标计算功能配置文件;或,
任意两个所述可重构计算阵列分别配置所述第n+j目标计算功能配置文件和所述第n+q目标计算功能配置文件;
所述可重构计算阵列基于所述目标数据,执行所述目标计算功能,得到对应的结果数据的步骤,包括:
所述可重构计算阵列基于所述第n中间结果数据,同步执行所述第n+j目标计算功能和所述第n+q目标计算功能,得到对应的第n+j中间结果数据和第n+q中间结果数据。
CN202111033159.XA 2021-09-03 2021-09-03 一种三维芯片、计算系统及计算方法 Pending CN113705142A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111033159.XA CN113705142A (zh) 2021-09-03 2021-09-03 一种三维芯片、计算系统及计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111033159.XA CN113705142A (zh) 2021-09-03 2021-09-03 一种三维芯片、计算系统及计算方法

Publications (1)

Publication Number Publication Date
CN113705142A true CN113705142A (zh) 2021-11-26

Family

ID=78659577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111033159.XA Pending CN113705142A (zh) 2021-09-03 2021-09-03 一种三维芯片、计算系统及计算方法

Country Status (1)

Country Link
CN (1) CN113705142A (zh)

Similar Documents

Publication Publication Date Title
US10242728B2 (en) DPU architecture
US10972103B2 (en) Multiplier-accumulator circuitry, and processing pipeline including same
JP7074831B2 (ja) ネットワークオンチップによるデータ処理方法及び装置
US9286216B2 (en) 3DIC memory chips including computational logic-in-memory for performing accelerated data processing
JP5784582B2 (ja) コンフィギュラブルな帯域幅メモリ・デバイスおよび方法
US10180808B2 (en) Software stack and programming for DPU operations
GB2568086A (en) Hardware implementation of convolution layer of deep neutral network
CN110476212B (zh) 用于存储器中数据交换网络的设备及方法
US9922696B1 (en) Circuits and micro-architecture for a DRAM-based processing unit
CN111199275B (zh) 用于神经网络的片上系统
US20220179823A1 (en) Reconfigurable reduced instruction set computer processor architecture with fractured cores
Jagasivamani et al. Memory-systems challenges in realizing monolithic computers
KR20200138413A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
WO2023030054A1 (zh) 一种计算器件、计算系统及计算方法
CN113705142A (zh) 一种三维芯片、计算系统及计算方法
US20190005378A1 (en) Electronic circuit, particularly for the implementation of neural networks with multiple levels of precision
JP7149987B2 (ja) データ伝送装置、データ処理システム、データ処理方法及び媒体
CN104750659A (zh) 一种基于自动布线互连网络的粗粒度可重构阵列电路
CN112486905A (zh) 可重构异构化pea互连方法
CN112766479B (zh) 一种基于fpga的支持通道分离卷积的神经网络加速器
Wang et al. Design and implementation of fault-tolerant and cost effective crossbar switches for multiprocessor systems
EP4195027A1 (en) Computational circuit with hierarchical accumulator
Jagasivamani et al. Memory-System Design Challenges in Realizing Monolithic Computers
CN116561042A (zh) 基于晶体堆迭架构的计算器系统和内存管理方法
TW202305623A (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