CN115831185A - 存算一体芯片、操作方法、制作方法和电子设备 - Google Patents
存算一体芯片、操作方法、制作方法和电子设备 Download PDFInfo
- Publication number
- CN115831185A CN115831185A CN202211627425.6A CN202211627425A CN115831185A CN 115831185 A CN115831185 A CN 115831185A CN 202211627425 A CN202211627425 A CN 202211627425A CN 115831185 A CN115831185 A CN 115831185A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- storage
- memory array
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System (AREA)
Abstract
一种存算一体芯片、操作方法、制作方法和电子设备。该存算一体芯片包括衬底基板、存算一体器件阵列、数据存储器阵列和控制处理电路,存算一体器件阵列配置为执行存算一体操作;数据存储器阵列配置为存储数据;控制处理电路配置为与数据存储器阵列和存算一体器件阵列通信,以从数据存储器阵列读取输入数据并将输入数据提供至存算一体器件阵列,以及从存算一体器件阵列接收处理后的输出数据,并且将处理后的输出数据提供给数据存储器阵列;控制处理电路、存算一体器件阵列和数据存储器阵列设置在衬底基板上,并且在垂直于衬底基板的方向上,分别提供于不同构造层中且至少部分重叠。该存算一体芯片具有提升的性能和能效。
Description
技术领域
本公开的实施例涉及一种存算一体芯片、操作方法、制作方法和电子设备。
背景技术
近年来人工智能飞速发展,在很大程度上归功于深度学习技术的发展。通过使用深度学习,在很多AI(Artificial Intelligence,人工智能)领域取得了长足的进展,而这些巨大的发展和变革促使业界思考AI芯片架构和计算模式。目前CPU(Central ProcessingUnit,中央处理器),GPU(Graphics Processing Unit,图形处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)都针对人工智能应用进行了架构优化,取得了更优的系统实时响应速度和功耗。但是,这些芯片架构层面存在难以避免的存储单元与计算单元的数据交换。由于冯诺依曼体系的“存储墙”,存在搬运数据量大、存储器的数据搬运慢、搬运能耗大等问题,因此,基于CMOS(Complementary Metal OxideSemiconductor,互补金属氧化物半导体)的处理器在性能和能效方面提升有着明显的瓶颈。
发明内容
本公开至少一个实施例提供一种存算一体芯片,该存算一体芯片包括衬底基板、存算一体器件阵列、数据存储器阵列和控制处理电路,存算一体器件阵列配置为执行存算一体操作;数据存储器阵列配置为存储数据;控制处理电路配置为与所述数据存储器阵列和存算一体器件阵列通信,以从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列,以及从所述存算一体器件阵列接收处理后的输出数据,并且将所述处理后的输出数据提供给所述数据存储器阵列;其中,所述控制处理电路、所述存算一体器件阵列和所述数据存储器阵列设置在所述衬底基板上,并且在垂直于所述衬底基板的方向上,分别提供于不同构造层中且至少部分重叠。
例如,在本公开一实施例提供的存算一体芯片中,所述控制处理电路形成于所述衬底基板上;所述数据存储器阵列形成于所述控制处理电路远离所述衬底基板的一侧;所述存算一体器件阵列形成于所述数据存储器阵列远离所述控制处理电路的一侧。
例如,在本公开一实施例提供的存算一体芯片中,所述存算一体器件阵列划分为多个分块,所述数据存储器阵列划分为多个存储组,所述多个分块与所述多个存储组对应;所述多个分块包括第一分块和第二分块,所述多个存储组包括与所述第一分块对应的第一存储组和与所述第二分块对应的第二存储组,所述第一存储组配置为存储所述第一分块处理后的输出数据,并将所述第一分块处理后的输出数据提供给所述第二分块,作为所述第二分块的输入数据,所述第二存储组配置为存储所述第二分块处理后的输出数据。
例如,在本公开一实施例提供的存算一体芯片中,所述控制处理电路包括数字模拟转换器和模拟数据转换器,数字模拟转换器配置为将从所述数据存储器阵列读取的输入数据转换为模拟信号,以将模拟信号提供给所述存算一体器件阵列;模拟数据转换器配置为将从所述存算一体器件阵列接收的处理后的模拟输出数据转换为数字输出数据,以将所述数字输出数据提供给所述数据存储器阵列。
例如,在本公开一实施例提供的存算一体芯片中,所述控制处理电路还包括行解码器和列解码器,行解码器配置为根据地址数据解码得到待读出数据的行编码,并将所述行编码发送至所述数据存储器阵列,以从所述数据存储器阵列中读出与所述行编码对应的第一读出数据;列解码器配置为解码得到所述待读出数据的列编码,以从所述第一读出数据中选择与所述列编码对应的第二读出数据。
例如,在本公开一实施例提供的存算一体芯片中,所述控制处理电路还包括感应放大器、读队列存储器、数据选择器、逻辑控制单元和写驱动,感应放大器配置为从所述数据存储器阵列读出所述第一读出数据;读队列存储器配置为对所述第二读出数据进行缓冲;数据选择器配置为选择所需数据并送至所述数字模拟转换器;逻辑控制单元配置为生成逻辑地址并送至所述列解码器,以使所述列解码器基于所述逻辑地址得到待写入数据的列编码;写驱动配置为基于待写入数据的列编码将所述待写入数据写入所述数据存储器阵列。
例如,在本公开一实施例提供的存算一体芯片中,所述控制处理电路包括移位累加器、激活单元和池化单元,移位累加器配置为对所述模拟数据转换器输出的数据进行累加运算;激活单元配置为实现神经网络算法中激活函数的计算;池化单元配置为实现神经网络算法中池化函数的计算。
例如,在本公开一实施例提供的存算一体芯片中,所述数据存储器阵列为动态随机存取存储器阵列,所述动态随机存取存储器阵列包括阵列排布的多个动态随机存取存储器单元;所述存算一体器件阵列为忆阻器阵列,所述忆阻器阵列包括阵列排布的多个忆阻器单元。
本公开至少一个实施例提供一种用于本公开任一实施例所述的存算一体芯片的操作方法,该操作方法包括:从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列;所述存算一体器件阵列对所述输入数据进行处理,以得到处理后的输出数据;将所述处理后的输出数据存储至所述数据存储器阵列。
例如,在本公开一实施例提供的操作方法中,所述存算一体器件阵列对所述输入数据进行处理,包括:所述存算一体器件阵列对所述输入数据执行向量矩阵乘运算,以得到处理后的输出数据;或者所述存算一体器件阵列利用存储的权重数据对所述输入数据进行向量矩阵乘运算,以得到神经网络特征图数据。
例如,在本公开一实施例提供的操作方法中,所述存算一体器件阵列包括第一分块和第二分块,所述数据存储器阵列包括与所述第一分块对应的第一存储组和与所述第二分块对应的第二存储组,所述存算一体器件阵列对所述输入数据进行处理,以得到处理后的输出数据,包括:所述第一分块对所述输入数据进行处理,以得到处所述第一分块处理后的输出数据;将所述处理后的输出数据存储至所述数据存储器阵列,包括:将所述第一分块处理后的输出数据存储至所述第一存储组;从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列,包括:从所述第一存储组读取所述第一分块处理后的输出数据并将所述一分块处理后的输出数据提供至所述存第二分块,作为所述第二分块的输入数据。
本公开至少一个实施例提供一种用于本公开任一实施例所述的存算一体芯片的制作方法,该制作方法包括:提供所述衬底基板;在所述衬底基板上分层形成所述控制处理电路、所述数据存储器阵列和所述存算一体器件阵列。
本公开至少一个实施例提供一种电子设备,该电子设备包括如本公开任一实施例所述的存算一体芯片。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种基于忆阻器的存算一体芯片示意图;
图2示出了本公开至少一实施例提供的一种存算一体芯片的示意图;
图3示出了本公开至少一实施例提供的存算一体芯片的另一示意图;
图4示出了本公开至少一实施例提供的存算一体芯片的再一示意图;
图5示出了本公开至少一实施例提供的分块和存储组之间的存储关系示意图;
图6示出了本公开至少一实施例提供的数据流水延迟示意图;
图7示出了本公开至少一实施例提供的一种操作方法的流程图;
图8示出了本公开至少一实施例提供的一种制作方法的流程图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了克服传统架构存在的存储墙问题,一种方法是把存储与计算整合到一个模块中,这样可以减少计算过程中的数据传输需求。
忆阻器(例如阻变存储器(RRAM)、相变存储器、导电桥存储器等)是一种可以通过施加外部激励,调节其电导状态的非易失型器件。忆阻器作为一种二端器件,具有电阻可调节且非挥发的特性,因此被广泛应用于存算一体运用,例如用于人工神经网络的前向计算(推理)等。根据基尔霍夫电流定律和欧姆定律,由忆阻器构成的阵列可以用于并行的完成矩阵向量乘法(乘累加)计算,且存储和计算都发生在阵列各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算。
图1示出了一种基于忆阻器的存算一体芯片示意图。如图1所示,该基于忆阻器(例如为RRAM,Resistive Random Access Memory)阵列的存算一体芯片通过片上网络连接多个块(Tile)110,每个块110由忆阻器阵列111、特殊功能单元112、移位累加器113、局部缓存114、数模转换器115、模数转换器116和控制器117等构成,其中,特殊功能单元例如用于实现特定的计算功能。例如,上一级数据通过总线写入本级块的局部缓存114,在有足够运算的数据后,控制器117把这些数据从局部缓存114读出,通过数模转换器115转换为模拟电压,当控制器117发出计算开始信号之后,这些模拟电压信号被发送给忆阻器阵列111进行计算。对于人工智能领域,忆阻器阵列例如可以存储神经网络的权重数据,并基于权重数据对输入的特征图数据进行运算,输出运算后特征图数据。
下面以忆阻器为RRAM为例进行说明,但是本公开的实施例不限于此。
图1所示的存算一体芯片中,虽然权重数据被存储在RRAM阵列中,但是输入输出特征图数据还是要在RRAM阵列和片外存储之间传输。而输入输出特征图的数据量巨大,因此对于该存算一体芯片,冯诺依曼体系的“存储墙”其实依然存在。
本公开至少一个实施例提供一种存算一体芯片、操作方法、制作方法和电子设备。该存算一体芯片包括衬底基板、存算一体器件阵列、数据存储器阵列和控制处理电路,存算一体器件阵列配置为执行存算一体操作;数据存储器阵列配置为存储数据;控制处理电路配置为与数据存储器阵列和存算一体器件阵列通信,以从数据存储器阵列读取输入数据并将输入数据提供至存算一体器件阵列,以及从存算一体器件阵列接收处理后的输出数据,并且将处理后的输出数据提供给数据存储器阵列;控制处理电路、存算一体器件阵列和数据存储器阵列设置在衬底基板上,并且在垂直于衬底基板的方向上,分别提供于不同构造层中且至少部分重叠。
该存算一体芯片将存算一体器件阵列、数据存储器阵列和控制处理电路集成在单片上,减少或消除了存算一体器件阵列与片外存储之间的数据传输,进一步减弱或消除了存储墙,提升了存算一体芯片的性能和能效。并且,存算一体器件阵列、数据存储器阵列和控制处理电路分别位于层叠的三个构造层,三个构造层通过单片三维集成,使得芯片具有计算密度和存储密度的优势,可以有效提高算力。
图2示出了本公开至少一实施例提供的一种存算一体芯片的示意图。
如图2所示,该存算一体芯片200包括衬底基板210、存算一体器件阵列220、数据存储器阵列230和控制处理电路240。存算一体器件阵列220配置为执行存算一体操作,数据存储器阵列230配置为存储数据,控制处理电路240配置为与该数据存储器阵列230和存算一体器件阵列220通信,以从该数据存储器阵列230读取输入数据并将该输入数据提供至该存算一体器件阵列220,以及从该存算一体器件阵列220接收处理后的输出数据,并且将该处理后的输出数据提供给该数据存储器阵列230。该控制处理电路240、该存算一体器件阵列220和该数据存储器阵列230设置在该衬底基板210上,并且在垂直于该衬底基板210的方向上,控制处理电路240、该存算一体器件阵列220和该数据存储器阵列230分别提供于不同构造层中且至少部分重叠。
例如,衬底基板210可以采用例如硅衬底、玻璃、塑料、石英或其他适合的材料,本公开的实施例对此不作限制。
例如,在衬底基板210上分层形成存算一体器件阵列220、数据存储器阵列230和控制处理电路240,在垂直于衬底基板210的方向上将存算一体器件阵列220、数据存储器阵列230和控制处理电路240分别位于不同的构造层。衬底基板210、存算一体器件阵列220、数据存储器阵列230和控制处理电路240上下层叠,形成一个三维立体芯片。每个构造层可以包括多个结构层,例如,数据存储器阵列230包括晶体管,因此,数据存储器阵列230的构造层至少包括用于形成晶体管的有源半导体层、多个绝缘层(例如层间介电层、平坦层等)、金属层等结构层。例如,在垂直与衬底基板的方向上,三个构造层至少部分重叠在一起,不同构造层之间可以通过多个过孔、走线连接。
例如,数据存储器阵列为动态随机存取存储器(DRAM,Dynamic Random AccessMemory)阵列,该动态随机存取存储器阵列包括阵列排布的多个动态随机存取存储器单元(DRAM单元)。
例如,存算一体器件阵列为忆阻器阵列,该忆阻器阵列包括阵列排布的多个忆阻器。以忆阻器为RRAM为例,存算一体器件阵列可以为阻变存储器(RRAM)阵列,该阻变存储器阵列可以包括阵列排布的多个阻变存储器单元(RRAM单元)。
例如,在一些实施例中,控制处理电路240形成于衬底基板210上,数据存储器阵列230形成于控制处理电路240远离该衬底基板210的一侧,存算一体器件阵列220形成于数据存储器阵列230远离该控制处理电路240的一侧。
图3示出了本公开至少一实施例提供的存算一体芯片的另一示意图。图4示出了本公开至少一实施例提供的存算一体芯片的再一示意图。
如图3和图4所示,以DRAM+RRAM的存算一体芯片为例,芯片可以采用单片三维集成(Monolithic 3D integration,M3D),该存算一体芯片的结构例如如下所述,分别形成第一构造层(简称第一层)、第二构造层(简称第二层)和第三构造层(简称第三层)。
例如,第一层可以采用前端工艺,形成控制处理电路,该控制处理电路包括CMOS数字逻辑电路和模拟电路。这些CMOS数字逻辑电路和模拟电路例如可以包括集成感应放大器(sense amplifier,SA)、数模转换器、模数转换器、移位累加器、控制器等。
如图所示,该第一层还包括多个结构层以分别用于形成晶体管等器件。在形成了控制处理电路之后,形成绝缘层以覆盖表面,在该绝缘层中形成用于层间电连接的过孔,然后例如通过化学机械研磨,得到平坦化表面,然后在该平坦化表面上进行后续的第二层的工艺。
例如,第二层可以采用后端工艺,形成数据存储器阵列,数据存储器阵列例如是基于铟镓锌氧(Indium Gallium Zinc Oxide,简称IGZO)垂直环形沟道器件结构(Channel-All-Around,CAA)晶体管的2T0C 3D DRAM阵列。其中,IGZO CAA FET表示基于铟镓锌氧(IGZO)垂直环形沟道器件结构(CAA)的场效应(FET)晶体管,该晶体管具有高驱动电流(Ion)和极低的关态电流(Ioff),具有良好的热可靠性和稳定性。2T0C表示每个DRAM单元包括两个晶体管且无存储电容,在这一实施例中,DRAM单元也可称为2T0C单元或2T0C存储单元。3D表示两个晶体管堆叠而成的立体结构。
如图4所示,对于每个2T0C单元,包括一个CAA写晶体管(Tw)和一个CAA读晶体管(Tr),CAA写晶体管(Tw)堆叠在CAA读晶体管(Tr)的顶部,顶部Tw的源端/漏端(source/drain,S/D)连接到底部Tr的栅极,电荷存储在Tr栅极的寄生电容中。图4所示的WWL表示write word line(写字线),WBL表示write bit line(写位线),RBL表示read bit line(读字线),RWL表示read word line(读字线),SL表示source line(源线),WL表示word line(字线),BL表示bit line(位线)。通过将上下两个CAA器件直接相连,每个2T0C存储单元(DRAM单元)的尺寸可减小至4F2。该基于CAA晶体管的2T0C 3D DRAM的结构可以有效减小器件面积,且支持多层堆叠,具有密度优势。此外,基于CAA的2T0C 3D DRAM的存储密度高,存储的数据量大,可以有效减少输入输出数据的移动,从而减小片外数据传输的功耗。
如图所示,该第二层还包括多个结构层以分别用于形成晶体管等器件。在形成了数据存储器阵列之后,形成绝缘层以覆盖表面,在该绝缘层中形成用于层间电连接的过孔,然后例如通过化学机械研磨,得到平坦化表面,然后在该平坦化表面上进行后续的第三层的工艺。
例如,第三层也可以采用后端工艺,形成基于IGZO薄膜晶体管(Thin FilmTransistor,TFT)的1T1R阵列,其中,1T1R表示每个RRAM单元包括一个晶体管和一个阻变存储器(RRAM),在这一实施例中,RRAM单元也可称为1T1R单元。第三层中的薄膜晶体管例如为平面型,阻变存储器位于薄膜晶体管的漏端。薄膜晶体管的低漏电可以降低1T1R阵列静态功耗。IGZO后端工艺可兼容,并且能提供较大的驱动电流用于RRAM工作。
例如,RRAM阵列可以用于存储数据并执行运算操作,例如用于执行向量矩阵乘(vector matrix multiplication,VMM)运算。在用于神经网络运算时,RRAM阵列可以用于存储神经网络的权重数据,并基于权重数据执行向量矩阵乘运算。DRAM阵列可以用于存储数据,在用于神经网络运算时,DRAM阵列例如用于存储特征图数据。例如,对于卷积神经网络,包括多个卷积层,每个卷积层利用卷积核对前一层输出的特征图数据进行卷积运算,并将运算后的特征图数据输出至下一层。在该卷积神经网络的场景中,RRAM阵列存储的权重数据例如为卷积核数据,RRAM阵列执行的向量矩阵乘运算例如用于实现卷积运算。
如图所示,该第三层还包括多个结构层以分别用于形成晶体管、RRAM等器件。在形成了存算一体器件阵列之后,形成绝缘层以覆盖表面,然后例如通过化学机械研磨,得到平坦化表面。
例如,第一层的控制处理电路可以从第二层的DRAM阵列读取第一特征图数据,并将第一特征图数据传输至第三层的RRAM阵列。RRAM阵列利用存储的权重数据对第一特征图数据进行运算,以得到第二特征图数据,RRAM阵列将第二特征图数据发送至第一层的控制处理电路。控制处理电路将第二特征图数据存储至第二层的DRAM阵列,从而实现神经网络的一个网络层的运算。然后,控制处理电路从DRAM阵列读取第二特征图数据,以基于第二特征图数据完成下一个网络层的运算,以此类推。
根据本公开实施例的存算一体芯片,将存算一体器件阵列、数据存储器阵列和控制处理电路集成在单片上,减少或消除了存算一体器件阵列与片外存储之间的数据传输,进一步减弱或消除了存储墙,提升了存算一体芯片的性能和能效。并且,存算一体器件阵列、数据存储器阵列和控制处理电路分别位于层叠的三个构造层,三个构造层通过单片三维集成,使得芯片具有计算密度和存储密度的优势,可以有效提高算力。此外,至少一个实施例基于CAA的2T0C 3D DRAM的存储密度高,有效减少输入输出数据的移动,从而减小片外数据传输的功耗。
例如,控制处理电路可以包括数字模拟转换器、模拟数据转换器、行解码器、列解码器、感应放大器、读队列存储器、数据选择器、逻辑控制单元和写驱动等器件。
例如,行解码器配置为根据地址数据解码得到待读出数据的行编码,并将该行编码发送至该数据存储器阵列,以从该数据存储器阵列中读出与该行编码对应的第一读出数据。如图3所示,行解码器例如为图示的地址锁存及解码器301,地址锁存及解码器301接收地址产生器的数据,通过解码电路解码得到DRAM阵列需要读出的行编码,并将行编码数据发送至DRAM阵列的字线上用于控制相应行读出,从而使DRAM阵列根据地址锁存和解码电路发送的信息输出特征图数据。
例如,感应放大器(sense amplifier,简称SA)配置为从该数据存储器阵列读出该第一读出数据。如图3所示,感应放大器302读出DRAM阵列输出的相应行的特征图数据,作为第一读出数据。
例如,列解码器配置为解码得到该待读出数据的列编码,以从该第一读出数据中选择与该列编码对应的第二读出数据。如图3所示,列解码器303用于解码列地址,并从感应放大器读出数据中选择要读/写的列对应的数据,作为第二读出数据。
例如,读队列存储器配置为对该第二读出数据进行缓冲,数据选择器配置为选择所需数据并送至该数字模拟转换器。如图3所示,读FIFO和数据MUX 304包括读FIFO(先进先出)队列和数据MUX(多路选择器,multiplexer),读FIFO队列为读队列存储器,数据MUX为数据选择器,读FIFO用于缓冲数据,以平衡数据读出和数据使用间的速度差异,数据选择器用于将所需数据送到DAC(digital to analog converter,数字模拟转换器)306。
例如,数字模拟转换器配置为将从数据存储器阵列读取的输入数据转换为模拟信号,以将模拟信号提供给存算一体器件阵列。如图3所示,读驱动305用于驱动DAC 306,以使DAC(数字模拟转换器)306将特征图数据转换为模拟信号,并通过BL(bit line,位线)缓冲将模拟信号传输至RRAM阵列,BL缓冲用于驱动RRAM阵列的BL。例如,RRAM阵列对接收的数据进行运算处理,得到处理后的模拟输出数据,并将处理后的模拟输出数据传输至控制处理电路中的模拟数据转换器。
例如,模拟数据转换器配置为将从存算一体器件阵列接收的处理后的模拟输出数据转换为数字输出数据,以将数字输出数据提供给数据存储器阵列。逻辑控制单元配置为生成逻辑地址并送至该列解码器,以使该列解码器基于该逻辑地址得到待写入数据的列编码。写驱动配置为基于待写入数据的列编码将该待写入数据写入该数据存储器阵列。如图3所示,写驱动和I/O逻辑308包括写驱动和I/O逻辑,I/O逻辑为逻辑控制单元,ADC(analogto digital converter,模拟数据转换器)307将计算结果的模拟信号转换为数字信号,通过I/O逻辑生成逻辑地址给到列解码器303,列解码器303解码列地址并选择要写入的列,再通过写驱动将数据写入DRAM阵列。
例如,如上所述,第一层集成了2T0C 3D DRAM的地址锁存和解码电路、感应放大器(sense amplifier,SA)、列解码器等。第二层集成了3D DRAM的数据读出后经过读FIFO和数据MUX到数字模拟转换器DAC,经过模拟位线(bitline,BL)缓冲稳定模拟电压输出到第三层中的1T1R阵列BL,其中BL缓冲为单位增益放大器(unit gain amplifier,UGB)结构。在RRAM阵列中实现向量矩阵乘(vector matrix multiplication,VMM)并输出电流,电流通过8bitADC转换为8-bit数字输出,通过2T0C 3D DRAM写电路写入3D DRAM中。
例如,在一些示例中,该控制处理电路还可以包括移位累加器、激活单元和池化单元,移位累加器配置为对模拟数据转换器输出的数据进行累加运算,例如,移位累加器可以包括移位寄存器和全加器组成的求和电路,移位累加器的功能包括各RRAM阵列通过ADC输出的部分结果累加。激活单元配置为实现神经网络算法中激活函数的计算,池化单元配置为实现神经网络算法中池化函数的计算。
例如,存算一体器件阵列可以划分为多个分块,该数据存储器阵列可以划分为多个存储组,该多个分块与该多个存储组对应。该多个分块包括第一分块和第二分块,该多个存储组包括与该第一分块对应的第一存储组和与该第二分块对应的第二存储组,该第一存储组配置为存储该第一分块处理后的输出数据,并将该第一分块处理后的输出数据提供给该第二分块,作为该第二分块的输入数据,该第二存储组配置为存储该第二分块处理后的输出数据。
图5示出了本公开至少一实施例提供的分块和存储组之间的存储关系示意图。如图5所示,RRAM阵列的一个分块例如为一个Tile组,每个Tile组包括多个Tile(片),例如第i-1(i为大于1的整数)个Tile组(Tile组i-1)包括Tile 0~Tile T(T为正整数),第i个Tile组(Tile组i)包括Tile T+1~Tile2T。每个Tile包括多个M×N阵列,每个M×N阵列包括M行N列1T1R单元,M和N均为正整数。
例如,DRAM的一个存储组例如为一个Rank(内存组),每个Rank包括多个Bank(内存块),例如,第z(z为正整数)个Rank(Rank z)包括Bank 0~K(K为正整数),第z+1个Rank(Rank z+1)包括Bank K+1~2K。每个Bank例如包括8个基本阵列单元,每个基本阵列单元包括R行C列2T0C单元,其中,R和C均为正整数。一个基本阵列单元一次例如可以提供一个比特,若一次需要读写8个比特,那么可以将8个基本阵列单元组合,一次从8个基本阵列单元各读取一个比特,即可得到8比特的数据。同一Bank中的多个基本阵列单元例如可以共享一组行地址和列地址,这样,仅需给出一组地址即可读取Bank包括的多个基本阵列单元中相应地址存储的数据。一个Rank可以包括多个Bank,每个Bank中的每个基本阵列单元的大小约1k×1k,从而Rank用于控制行的主字线(WL)拆分出控制Bank的局部字线,读出时数据先读出到Bank的子位线(BL)再到Rank的全局位线。由于局部字线上的负载降低为一个Bank大小,所以局部字线对于阵列有更好的驱动能力,并且降低了导线负载。例如,2T0C 3D DRAM物理地址编码为(Rank z,Bank k,Row r,Column c),z、k、r和c均为正整数。其中IO带宽为8-bit,即一列(Column)由8个2T0C单元构成的,一个Rank由K个Bank构成。
例如,第一分块为Tile组i-1,第二分块为Tile组i,第一存储组为Rank z,第二存储组为Rank z+1。以神经网络场景为例,Tile组i-1基于输入数据计算得到第一特征图数据,Tile组i-1输出的第一特征图数据被存储在Rank z中。Rank z将第一特征图数据传输至Tile组i,作为Tile组i的输入数据,以使Tile组对第一特征图数据进行运算,得到第二特征图数据,Tile组i输出的第二特征图数据被存储在Rank z+1中,以此类推。Rank z存储Tile组i-1的输出数据,同时也是存储Tile组i的输入数据,这样可以直接利用数据的局部性和神经网络特征图的可复用性,并且能降低数据导线传输的长度。
图6示出了本公开至少一实施例提供的数据流水延迟示意图。其中,图6中的(1)部分示出了不带流水线的延迟,(2)部分示出了带有流水线的延迟,R1、R2、Rz和Rz+1分别代表围绕一个Rank的处理流程。从3D DRAM中Rank存储的角度来看数据流,围绕Rank z的数据,包括Tile组i-1输出数据,同时也是Tile组i输入数据。因此,围绕一个Rank计算存储的硬件资源包括Bank 0~K的DRAM阵列及其解码器和感应放大器、Tile 0~T的RRAM阵列、读/写驱动和接口、DAC/ADC等。对应地,一次Rank操作包括读DRAM、DA(数据模拟)转换、RRAM阵列执行矩阵向量乘、AD(模拟数据)量化、写DRAM。如上所述,R表示一组可分解的操作的组合,包含读DRAM、DAC、VMM、ADC、写DRAM五个操作。如图6中的(1)部分所示,不带流水的情况下,R1的五个操作执行完毕后,再执行R2。芯片的计算可以靠数据流驱动的模式来实现,例如Rank中积累到可以启动下一Tile组计算的数据后,即可控制下一Tile组运算,因此可以利用流水来缩短运算延迟。由于M3D硬件资源足够,并且集成DRAM可以片内存储中间结果,因此可以实现流水,即R1读DRAM后执行DAC操作时,R2可以同时执行读DRAM操作,以此类推,从而使得延迟显著缩短。
根据本公开实施例的存算一体芯片,进一步消除了基于RRAM的存算一体芯片的“存储墙”,提升存算一体芯片的性能和能效。有效消除了神经网络输入输出特征图数据在片外存储和RRAM计算单元间的传输,并利用权重固定条件下神经网络的数据复用,提升了存算一体芯片的性能和能效。该芯片架构可以应用于图像识别、语音识别等人工智能领域,具有高能效的优点。
本公开至少一实施例还提供了一种用于上述任一实施例的存算一体芯片的操作方法。
图7示出了本公开至少一实施例提供的一种操作方法的流程图。
如图7所示,该操作方法可以包括步骤S410~S430。
步骤S410:从数据存储器阵列读取输入数据并将输入数据提供至存算一体器件阵列。
步骤S420:该存算一体器件阵列对该输入数据进行处理,以得到处理后的输出数据。
步骤S430:将该处理后的输出数据存储至该数据存储器阵列。
例如,步骤S420包括:该存算一体器件阵列对该输入数据执行向量矩阵乘运算,以得到处理后的输出数据;或者该存算一体器件阵列利用存储的权重数据对该输入数据进行向量矩阵乘运算,以得到神经网络特征图数据。
例如,该存算一体器件阵列包括第一分块和第二分块,该数据存储器阵列包括与该第一分块对应的第一存储组和与该第二分块对应的第二存储组。在该情形,步骤S420包括:该第一分块对该输入数据进行处理,以得到处该第一分块处理后的输出数据;步骤S430包括:将该第一分块处理后的输出数据存储至该第一存储组;步骤S410包括:从该第一存储组读取该第一分块处理后的输出数据并将该一分块处理后的输出数据提供至该存第二分块,作为该第二分块的输入数据。
该操作方法可以参见上述关于存算一体芯片的实施例中的相关描述,在此不再赘述。
本公开至少一实施例还提供了一种用于上述任一实施例的存算一体芯片的制作方法。
图8示出了本公开至少一实施例提供的一种制作方法的流程图。
如图8所示,该制作方法可以包括步骤S510~S530。
步骤S510:提供衬底基板。
步骤S520:在该衬底基板上分层形成控制处理电路、数据存储器阵列和存算一体器件阵列。
例如,步骤S520可以包括在衬底基板上形成控制处理电路,在控制处理电路远离衬底基板的一侧形成数据存储器阵列,在数据存储器阵列远离控制处理电路的一侧形成存算一体器件阵列。
例如,衬底基板、控制处理电路、数据存储器阵列和存算一体器件阵列可以参见上述关于存算一体芯片的实施例中的相关描述,在此不再赘述。制备芯片的工艺方法可以采用本领域常规的工艺方法。
本公开至少一实施例还提供了一种电子设备,该电子设备包括存算一体芯片,该存算一体芯片可以参见上述任一实施例的存算一体芯片,在此不再赘述。
例如,在一些实施例中,电子设备可以为服务器、手机、平板电脑、笔记本电脑、数码相框、可穿戴电子设备、智能家居设备等。
例如,电子设备还可以具有其他组件,例如,电子设备还可以包括其他处理器件,例如包括中央处理单元(CPU)、图形处理单元(GPU)、直接存储访问(Direct MemoryAccess,简称DMA)控制器或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如,在CPU的控制下,将需要处理(例如神经网络训练或推理)的数据通过DMA提供至存算一体芯片,然后从存算一体芯片接收处理后的数据,然后CPU或GPU可以对该处理后的数据进行后续处理,包括分类、识别等。此外,电子设备还可以包括总线等互联器件,以使电子设备包括的各个器件实现互联。电子设备还可以包括存储器,例如易失性存储器和/或非易失性存储器,易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。
需要说明的是,本公开的实施例中,电子设备的具体功能和技术效果可以参考上文中关于存算一体芯片的描述,此处不再赘述。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种存算一体芯片,包括:
衬底基板;
存算一体器件阵列,配置为执行存算一体操作;
数据存储器阵列,配置为存储数据;以及
控制处理电路,配置为与所述数据存储器阵列和存算一体器件阵列通信,以从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列,以及从所述存算一体器件阵列接收处理后的输出数据,并且将所述处理后的输出数据提供给所述数据存储器阵列;
其中,所述控制处理电路、所述存算一体器件阵列和所述数据存储器阵列设置在所述衬底基板上,并且在垂直于所述衬底基板的方向上,分别提供于不同构造层中且至少部分重叠。
2.根据权利要求1所述的芯片,其中,
所述控制处理电路形成于所述衬底基板上;
所述数据存储器阵列形成于所述控制处理电路远离所述衬底基板的一侧;
所述存算一体器件阵列形成于所述数据存储器阵列远离所述控制处理电路的一侧。
3.根据权利要求1所述的芯片,其中,
所述存算一体器件阵列划分为多个分块,所述数据存储器阵列划分为多个存储组,所述多个分块与所述多个存储组对应;
所述多个分块包括第一分块和第二分块,所述多个存储组包括与所述第一分块对应的第一存储组和与所述第二分块对应的第二存储组,
所述第一存储组配置为存储所述第一分块处理后的输出数据,并将所述第一分块处理后的输出数据提供给所述第二分块,作为所述第二分块的输入数据,所述第二存储组配置为存储所述第二分块处理后的输出数据。
4.根据权利要求1-3任一项所述的芯片,其中,所述控制处理电路包括:
数字模拟转换器,配置为将从所述数据存储器阵列读取的输入数据转换为模拟信号,以将模拟信号提供给所述存算一体器件阵列;
模拟数据转换器,配置为将从所述存算一体器件阵列接收的处理后的模拟输出数据转换为数字输出数据,以将所述数字输出数据提供给所述数据存储器阵列。
5.根据权利要求4所述的芯片,其中,所述控制处理电路还包括:
行解码器,配置为根据地址数据解码得到待读出数据的行编码,并将所述行编码发送至所述数据存储器阵列,以从所述数据存储器阵列中读出与所述行编码对应的第一读出数据;
列解码器,配置为解码得到所述待读出数据的列编码,以从所述第一读出数据中选择与所述列编码对应的第二读出数据。
6.根据权利要求5所述的芯片,其中,所述控制处理电路还包括:
感应放大器,配置为从所述数据存储器阵列读出所述第一读出数据;
读队列存储器,配置为对所述第二读出数据进行缓冲;
数据选择器,配置为选择所需数据并送至所述数字模拟转换器;
逻辑控制单元,配置为生成逻辑地址并送至所述列解码器,以使所述列解码器基于所述逻辑地址得到待写入数据的列编码;
写驱动,配置为基于待写入数据的列编码将所述待写入数据写入所述数据存储器阵列。
7.根据权利要求4所述的芯片,其中,所述控制处理电路包括:
移位累加器,配置为对所述模拟数据转换器输出的数据进行累加运算;
激活单元,配置为实现神经网络算法中激活函数的计算;
池化单元,配置为实现神经网络算法中池化函数的计算。
8.根据权利要求1-3任一项所述的芯片,其中,
所述数据存储器阵列为动态随机存取存储器阵列,所述动态随机存取存储器阵列包括阵列排布的多个动态随机存取存储器单元;
所述存算一体器件阵列为忆阻器阵列,所述忆阻器阵列包括阵列排布的多个忆阻器单元。
9.一种用于如权利要求1-8任一项所述的芯片的操作方法,包括:
从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列;
所述存算一体器件阵列对所述输入数据进行处理,以得到处理后的输出数据;
将所述处理后的输出数据存储至所述数据存储器阵列。
10.根据权利要求9所述的操作方法,其中,所述存算一体器件阵列对所述输入数据进行处理,包括:
所述存算一体器件阵列对所述输入数据执行向量矩阵乘运算,以得到处理后的输出数据;或者
所述存算一体器件阵列利用存储的权重数据对所述输入数据进行向量矩阵乘运算,以得到神经网络特征图数据。
11.根据权利要求9-10任一项所述的操作方法,其中,所述存算一体器件阵列包括第一分块和第二分块,所述数据存储器阵列包括与所述第一分块对应的第一存储组和与所述第二分块对应的第二存储组,
所述存算一体器件阵列对所述输入数据进行处理,以得到处理后的输出数据,包括:所述第一分块对所述输入数据进行处理,以得到处所述第一分块处理后的输出数据;
将所述处理后的输出数据存储至所述数据存储器阵列,包括:将所述第一分块处理后的输出数据存储至所述第一存储组;
从所述数据存储器阵列读取输入数据并将所述输入数据提供至所述存算一体器件阵列,包括:从所述第一存储组读取所述第一分块处理后的输出数据并将所述一分块处理后的输出数据提供至所述存第二分块,作为所述第二分块的输入数据。
12.一种用于如权利要求1-8任一项所述的芯片的制作方法,包括:
提供所述衬底基板;
在所述衬底基板上分层形成所述控制处理电路、所述数据存储器阵列和所述存算一体器件阵列。
13.一种电子设备,包括如权利要求1-8任一项所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627425.6A CN115831185A (zh) | 2022-12-16 | 2022-12-16 | 存算一体芯片、操作方法、制作方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627425.6A CN115831185A (zh) | 2022-12-16 | 2022-12-16 | 存算一体芯片、操作方法、制作方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115831185A true CN115831185A (zh) | 2023-03-21 |
Family
ID=85516475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211627425.6A Pending CN115831185A (zh) | 2022-12-16 | 2022-12-16 | 存算一体芯片、操作方法、制作方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115831185A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116777727A (zh) * | 2023-06-21 | 2023-09-19 | 北京忆元科技有限公司 | 存算一体芯片、图像处理方法、电子设备及存储介质 |
-
2022
- 2022-12-16 CN CN202211627425.6A patent/CN115831185A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116777727A (zh) * | 2023-06-21 | 2023-09-19 | 北京忆元科技有限公司 | 存算一体芯片、图像处理方法、电子设备及存储介质 |
CN116777727B (zh) * | 2023-06-21 | 2024-01-09 | 北京忆元科技有限公司 | 存算一体芯片、图像处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10242728B2 (en) | DPU architecture | |
JP7173709B2 (ja) | ニューラルネットワーク回路 | |
US10210935B2 (en) | Associative row decoder | |
US11164632B2 (en) | Nonvolatile memory device and method of processing in memory (PIM) using the same | |
US20170316829A1 (en) | In-memory computational device with bit line processors | |
US11462270B2 (en) | Nonvolatile memory device and memory system including the same | |
US10180808B2 (en) | Software stack and programming for DPU operations | |
US9922696B1 (en) | Circuits and micro-architecture for a DRAM-based processing unit | |
US10002663B2 (en) | Nonvolatile memory apparatus and resistance compensation circuit thereof | |
KR20190100632A (ko) | 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법 | |
US11397885B2 (en) | Vertical mapping and computing for deep neural networks in non-volatile memory | |
US20220366968A1 (en) | Sram-based in-memory computing macro using analog computation scheme | |
US20230051126A1 (en) | Signal routing between memory die and logic die for performing operations | |
US20200278923A1 (en) | Multi-dimensional accesses in memory | |
US11830574B2 (en) | Dual-port, dual-function memory device | |
CN115831185A (zh) | 存算一体芯片、操作方法、制作方法和电子设备 | |
US20230361081A1 (en) | In-memory computing circuit and fabrication method thereof | |
Zhang et al. | On-Device Continual Learning With STT-Assisted-SOT MRAM Based In-Memory Computing | |
TW202341150A (zh) | 記憶體系統及記憶體陣列的操作方法 | |
CN117521753A (zh) | 神经网络处理装置、电子设备及操作方法 | |
KR20240031021A (ko) | Imc(in memory computing) 회로, imc 회로를 포함하는 뉴럴 네트워크 장치, 및 imc 회로의 동작 방법 | |
TW202305623A (zh) | 存算一體裝置及相關的方法 | |
CN117636956A (zh) | 存储器内计算(imc)电路和设备、以及神经网络设备 |
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 |