一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存算一体芯片、存储单元阵列结构的制作方法

2020-12-29 13:19:00 来源:中国专利 TAG:阵列 集成电路 半导体 单元 芯片
存算一体芯片、存储单元阵列结构的制作方法

本发明涉及半导体集成电路领域,尤其涉及一种存算一体芯片、存储单元阵列结构。



背景技术:

近年来,为了解决传统冯诺依曼计算体系结构瓶颈,存算一体芯片架构得到人们的广泛关注,其基本思想是直接利用存储器进行逻辑计算,从而减少存储器与处理器之间的数据传输量以及传输距离,降低功耗的同时提高性能。

存算一体芯片架构目前被认为是解决大数据实时智能处理的高效硬件平台之一,而存储单元阵列是存算一体芯片的核心电路,对于典型的存储单元阵列,需要配备数模转换模块、模数转换模块、转换装置等外围电路。

为了适应复杂的运算需求,存算一体芯片一般会设置多个存储单元阵列,用于分别执行不同的运算任务。多个存储单元阵列中的每个存储单元阵列均需要分别设置对应的数模转换模块、模数转换模块、转换装置以及译码器等外围电路,通常外围电路的面积,尤其是adc、dac的面积,相比存储单元阵列的面积大很多,而且成本高,因此,现有存算一体芯片架构的电路面积大,成本高,不能适应集成化、低成本化的需求。



技术实现要素:

有鉴于此,本发明实施例提供了一种存算一体芯片、存储单元阵列结构,解决现有存算一体芯片架构的电路面积大,成本高、不能适应集成化、低成本化的需求的问题。

为了达到上述目的,本发明采用如下技术方案:

第一方面,提供一种存算一体芯片,、包括:

数模转换模块,用于将数字信号转换为模拟信号;

存储单元阵列,连接该数模转换模块,用于对该模拟信号进行模拟向量-矩阵乘法运算并输出模拟运算结果;

模数转换模块,连接该存储单元阵列,用于将该模拟运算结果转换为数字输出信号;

其中,该存储单元阵列包括:多个阵列排布的存储单元子阵列,用于分别执行不同的模拟向量-矩阵乘法运算;

该存储单元子阵列包括:多个开关单元以及多个阵列排布的存储单元,该存储单元的阈值电压可调;每一列的所有存储单元的第一端均连接源线,第二端均连接位线,每一行的所有存储单元的第三端均通过一开关单元连接字线,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存储单元子阵列的本地字线,通过控制该本地字线控制该存储单元子阵列是否激活。

进一步地,该开关单元包括:第一开关元件以及第二开关元件;

该第一开关元件的第一端接入第一电平,第二端连接该第二开关元件的第一端,该第二开关元件的第二端连接字线,该第一开关元件的第三端和该第二开关元件的第三端均连接该本地字线,该开关单元对应行的所有存储单元的第三端均连接在该第一开关元件的第二端与该第二开关元件第一端之间;

其中,工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态。

进一步地,该存储单元为可编程半导体器件。

进一步地,该可编程半导体器件为浮栅晶体管。

进一步地,该存储单元包括:非易失性存储器件以及第三开关元件;

该第三开关元件的第一端作为该存储单元的第一端,第二端连接该非易失性存储器件一端,第三端作为该存储单元的第三端,该非易失性存储器件的另一端作为该存储单元的第二端。

进一步地,该非易失性存储器件为阻变存储器件、相变存储器件或自旋存储器件。

第二方面,提供一种存储单元阵列结构,包括:多个阵列排布的存储单元子阵列;

该存储单元子阵列包括:多个开关单元以及多个阵列排布的存储单元,每一列的所有存储单元的第一端均连接源线,第二端均连接位线,每一行的所有存储单元的第三端均通过一开关单元连接字线,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存储单元子阵列的本地字线,通过控制该本地字线控制该存储单元子阵列是否激活。

进一步地,该开关单元包括:第一开关元件以及第二开关元件;

该第一开关元件的第一端接入第一电平,第二端连接该第二开关元件的第一端,该第二开关元件的第二端连接字线,该第一开关元件的第三端和该第二开关元件的第三端均连接该本地字线,该开关单元对应行的所有存储单元的第三端均连接在该第一开关元件的第二端与该第二开关元件第一端之间;

其中,工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态。

进一步地,该存储单元为可编程半导体器件。

进一步地,该存储单元包括:非易失性存储器件以及第三开关元件;

该第三开关元件的第一端作为该存储单元的第一端,第二端连接该非易失性存储器件一端,第三端作为该存储单元的第三端,该非易失性存储器件的另一端作为该存储单元的第二端。

本发明提供的存算一体芯片以及存储单元阵列结构,存储单元阵列包括:多个阵列排布的存储单元子阵列;该存储单元子阵列包括:多个开关单元以及多个阵列排布的存储单元,该存储单元的阈值电压可调;每一列的所有存储单元的第一端均连接源线,第二端均连接位线,每一行的所有存储单元的第三端均通过一开关单元连接字线,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存储单元子阵列的本地字线,通过控制该本地字线控制该存储单元子阵列是否激活,以此实现每一行的所有存储单元子阵列共享多个dac,每一列的所有存储单元子阵列共享多个adc,以此减小电路面积,降低电路成本,适应集成化、低成本化的需求。

其中,多个存储单元子阵列可以分时工作,非同行非同列的多个存储单元子阵列可以并行工作,适应不同运算任务,使用灵活方便。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例一种存算一体芯片的结构图;

图2示出了本发明实施例中存储单元阵列的电路图一;

图3示出了图2中存储单元子阵列的一种电路图;

图4示出了本发明实施例中存储单元阵列的电路图二;

图5示出了本发明实施例中存储单元的一种电路结构;

图6示出了图2中存储单元子阵列的另一种电路图;

图7示出了本发明实施例中多个存储单元子阵列分时工作的示意图;

图8示出了本发明实施例中多个存储单元子阵列并行工作的示意图;

图9示出了本发明实施例另一种存算一体芯片的结构图;

图10示出了本发明实施例中可编程算术运算单元30的结构图;

图11为本发明实施例中可编程算术运算子单元的结构图;

图12为本发明实施例中可编程算术运算模块实现复合运算的示意图

图13示出了本发明实施例再一种存算一体芯片的结构图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

除非特别说明,表述“元件a与元件b连接”意为元件a“直接”或通过一个或多个其他元件“间接”连接到元件b。

现有存算一体芯片一般会设置多个存储单元阵列,多个存储单元阵列中的每个存储单元阵列均需要分别设置对应的数模转换模块、模数转换模块、转换装置以及译码器等外围电路,导致电路面积大,成本高,不能适应集成化、低成本化的需求。

为解决现有技术中的上述技术问题,本发明实施例提供一种存算一体芯片,通过每个存储单元子阵列中的本地字线控制该存储单元子阵列是否激活,以此实现每一行的所有存储单元子阵列共享多个dac,每一列的所有存储单元子阵列共享多个adc,以此减小电路面积,降低电路成本,适应集成化、低成本化的需求。

图1示出了本发明实施例一种存算一体芯片的结构图。如图3所示,该存算一体芯片包括:数模转换模块60、存储单元阵列20以及模数转换模块70。

其中,数模转换模块用于将数字信号转换为模拟信号;存储单元阵列连接该数模转换模块,用于对该模拟信号进行模拟向量-矩阵乘法运算并输出模拟运算结果;模数转换模块连接该存储单元阵列,用于将该模拟运算结果转换为数字输出信号;

具体地,参见图2,该存储单元阵列包括:多个阵列排布的存储单元子阵列2011~20nm,用于分别执行不同的模拟向量-矩阵乘法运算;

每个存储单元子阵列均包括:多个开关单元k以及多个阵列排布的存储单元m,该存储单元的阈值电压可调,通过调节存储单元的阈值电压,将每个存储单元看作一个可变的等效模拟权重,相当于模拟矩阵数据,对存储单元阵列施加模拟电压,实现矩阵乘法运算功能。

每一列的所有存储单元的第一端均连接源线sl,第二端均连接位线bl,每一行的所有存储单元的第三端均通过一开关单元k连接字线wl,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存储单元子阵列的本地字线swl11,通过控制所述本地字线控制该存储单元子阵列是否激活。

具体地,当需要该存储单元子阵列参与运算时,控制该本地字线swl11,进而控制该存储单元子阵列的各开关单元的开闭状态,以控制该存储单元子阵列激活或非激活。

为了便于本领域技术人员充分理解本发明实施例的方案,结合图1和图2,对存储单元阵列的运算过程进行说明:

首先,通过控制各存储单元子阵列的本地字线,将需要投入工作的存储单元子阵列激活。

待运算信号可为数字信号,具有多个数字位,每一个数字位均通过一个dac转换为模拟信号,多个数字位通过多个dac分别转换为多个模拟信号,多个模拟信号分别输入已激活的存储单元子阵列对应的多个字线wl,经已激活的存储单元子阵列进行模拟向量-矩阵乘法运算后,通过已激活的存储单元子阵列对应的多个位线输出运算结果,多个位线对应多个adc,多个位线输出的多个模拟信号经多个adc转换为数字信号后输出。

在一个可选的实施例中,该开关单元可包括:第一开关元件以及第二开关元件;

所述第一开关元件的第一端接入第一电平,第二端连接所述第二开关元件的第一端,所述第二开关元件的第二端连接字线,所述第一开关元件的第三端和所述第二开关元件的第三端均连接所述本地字线,所述开关单元对应行的所有存储单元的第三端均连接在所述第一开关元件的第二端与所述第二开关元件第一端之间;

其中,工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态。

本领域技术人员能够明了,开关元件可采用nmos晶体管或pmos晶体管实现,开关元件的第一端可为源极,开关元件的第二端可为漏极,开关元件的第三端可为栅极。当然,本发明实施例中开关元件的第一端也可以为漏极,则开关元件的第二端为源极,本发明对此不作限定,可根据晶体管的类型合理选择即可。

另外,该第一电平可为低电平或地电平。

其中,第一开关元件可为nmos晶体管,第二开关元件可为pmos晶体管;或者,第一开关元件可为pmos晶体管,第二开关元件可为nmos晶体管,本发明实施例对此不作限制,只需满足工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态即可,即二者互补导通。

举例来说,当第一开关元件为pmos晶体管、第二开关元件为nmos晶体管时,当一个存储单元子阵列的本地字线上加载高电平时,nmos晶体管导通,pmos晶体管关闭,该存储单元子阵列被激活,各存储单元的第三端接收字线上的输入信号。当一个存储单元子阵列的本地字线上加载地电平时,nmos晶体管关闭,pmos晶体管关闭,该存储单元子阵列未被激活,各存储单元的第三端通过pmos晶体管接地。

在一个可选的实施例中,参见图3,该存储单元为可编程半导体器件,该可编程半导体器件为三端器件,例如浮栅晶体管,其中,该存储单元的第一端可为浮栅晶体管源极,该存储单元的第二端可为浮栅晶体管漏极,该存储单元的第三端可为浮栅晶体管栅极。当然,本发明实施例中存储单元的第一端也可以为浮栅晶体管漏极,则存储单元的第二端为浮栅晶体管源极,图4示出了存储单元为浮栅晶体管时的存储单元阵列的电路图。

在一个可选的实施例中,参见图5,该存储单元包括:非易失性存储器件w1以及开关元件t;

所述开关元件t的第一端作为该存储单元的第一端,第二端连接所述非易失性存储器件w1一端,第三端作为该存储单元的第三端,所述非易失性存储器件w1的另一端作为该存储单元的第二端。

其中,该非易失性存储器件可为阻变存储器件、相变存储器件以及自旋存储器件等。

本领域技术人员能够明了,开关元件可采用nmos晶体管或pmos晶体管实现,开关元件的第一端可为源极,开关元件的第二端可为漏极,开关元件的第三端可为栅极。当然,本发明实施例中开关元件的第一端也可以为漏极,则开关元件的第二端为源极,本发明对此不作限定,可根据晶体管的类型合理选择即可,图6示出了存储单元由开关元件和非易失性存储器件组成时存储单元子阵列的电路结构。

值得说明的是,该存算一体芯片具有两种运算模式,一种为部分存储单元子阵列分时工作,另一种为部分存储单元子阵列并行工作。

下面,以利用该存算一体芯片实现神经网络运算为例,对部分存储单元子阵列分时工作原理进行说明。

神经网络一般包含多层神经元,每层神经元主要实现矩阵乘法运算,后一层神经元的运算依赖于前一层神经元的运算结果,因此,各层神经元的运算时分时进行。以4层神经网络为例,每层神经元对应一个矩阵乘法运算,需要采用4个存储单元子阵列分别实现4层神经元的运算,并且,4个存储单元子阵列分时工作。此时,可以选用任意4个存储单元子阵列t1~t4(参见图7),预先对4个存储单元子阵列t1~t4中的存储单元的阈值电压进行配置,每个存储单元相当于存储了一个权重数据,相当于一个神经元。4个存储单元子阵列t1~t4分别实现第1至第4层神经元的运算。运算时首先激活存储单元子阵列t1,然后将输入特征输入存储单元子阵列t1所对应的字线,存储单元子阵列t1所对应的位线的输出即为第一层神经元的运算结果,然后激活存储单元子阵列t2,将第一层神经元的运算结果输入存储单元子阵列t2所对应的字线,存储单元子阵列t2所对应的位线的输出即为第一层神经元的运算结果,依此类推,最终得到该四层神经网络的运算结果。

通过利用部分存储单元子阵列分时工作,实现每一行的所有存储单元子阵列共享多个dac,每一列的所有存储单元子阵列共享多个adc,以此减小电路面积,降低电路成本,适应集成化、低成本化的需求。

另外,对于一些复杂的运算,或者对于一些运算规模比较大的运算,需要采用部分存储单元子阵列并行工作,才能实现所需运算,此时,因并行工作的多个存储单元子阵列的输入可能不同,输出也可能不同,因此,需要选择非同行非同列的多个存储单元子阵列参与工作。

举例来说,当需要采用4个存储单元子阵列并行工作实现一个大规模的运算时,参见图8,可以选用非同行非同列的4个存储单元子阵列d1~d4同时参与工作,预先对4个存储单元子阵列d1~d4中的存储单元的阈值电压进行配置,每个存储单元相当于存储了一个权重数据。运算时通过控制存储单元子阵列d1~d4的本地字线,激活存储单元子阵列d1~d4,然后将输入特征输入存储单元子阵列d1~d4所对应的字线,存储单元子阵列d1~d4所对应的位线的输出即为运算结果。

其中,通过选择非同行非同列的多个存储单元子阵列并行参与工作,能够极大提升了本发明实施例的适应性,能够适应大规模甚至超大规模的运算,也能够适应图像处理、导航等中的运算量大的神经网络,此时,每层神经元所对应的运算可以由多个并行工作的存储单元子阵列实现,适应不同运算任务,极大提高了存算一体芯片的使用灵活性。

在一个可选的实施例中,数模转换模块60包括多个dac;多个dac分别连接在多条字线的前端,用于将施加在字线上的数字信号转换为模拟信号。

在一个可选的实施例中,模数转换模块70包括多个adc;多个adc分别连接在多条位线的后端,用于将位线上的模拟运算结果转换为数字输出信号。

在一个可选的实施例中,如图9所示,该存算一体芯片还可以包括:可编程算术运算模块30,所述可编程算术运算模块30设置在所述模数转换模块70的输出端,用于对所述数字输出信号进行算术运算。

本领域技术人员可以理解的是,对于一些复杂的运算,在模拟向量-矩阵乘法运算的基础上,还会需要搭配一些算术运算,比如乘法运算、加法运算、减法运算、除法运算、移位运算、激活函数、取最大值、取最小值、取平均值、池化等中的一种或几种的组合,才能得到最终的运算结果。

因此,通过在模数转换模块的输出端设置可编程算术运算模块,实现对存储单元阵列输出的运算结果的进一步算术运算,提高了存算一体芯片的适用性,扩展了应用范围。

其中,该可编程算术运算模块30包括用于分别实现不同算术运算的多个可编程算术运算单元301~30n。其中,可编程算术运算单元采用硬件实现,用于执行特定的算术运算。

该可编程算术运算模块30的多个该可编程算术运算单元301~30n串行连接,每个该可编程算术运算单元均包括:多路分配器30a、算术运算子单元30b以及多路选择器30c,参见图10。

该多路分配器30a的输入端连接上一可编程算术运算单元或该模数转换模块70,其中一个输出端连接该算术运算子单元30b,该算术运算子单元30b的输出端以及该多路分配器30a另一个输出端通过一个多路选择器30c连接下一可编程算术运算单元或输出寄存器堆80,另外,该多路分配器30a以及该多路选择器30c的控制端均连接该控制模块10。

具体地,第一可编程算术运算单元301中的多路分配器的输入端连接该模数转换模块70的输出端,其中一个输出端连接该第一可编程算术运算单元301中的算术运算子单元的输入端,另一个输出端和该算术运算子单元的输出端通过一个多路选择器连接第二可编程算术运算单元302的输入端,该多路分配器和该多路选择器的控制端连接该控制模块20。

第二可编程算术运算单元302中的多路分配器的输入端连接该第一可编程算术运算单元301的输出端,其中一个输出端连接该第二可编程算术运算单元302中的算术运算子单元的输入端,另一个输出端和该算术运算子单元的输出端通过一个多路选择器连接第三可编程算术运算单元303的输入端,该多路分配器和该多路选择器的控制端连接该控制模块20。依此类推,直到第n可编程算术运算单元30n,该第n可编程算术运算单元30n中的多路分配器的输入端连接第n-1可编程算术运算单元30n-1的输出端,其中一个输出端连接该第n可编程算术运算单元30n中的算术运算子单元的输入端,另一个输出端和该算术运算子单元的输出端通过一个多路选择器连接输出寄存器堆80的输入端,该多路分配器和该多路选择器的控制端连接该控制模块10。

控制模块10连接各可编程算术运算单元中的该多路分配器和该多路选择器的,控制各可编程算术运算单元中的该多路分配器和该多路选择器,以选择该可编程算术运算单元中的算术运算子单元是否参与运算,以此实现多个可编程算术运算单元的排列组合配置,实现不同的复杂运算,灵活配置了算术运算功能。

在一个可选的实施例中,每个该可编程算术运算子单元均可以包括多个并排设置的算术运算器,例如乘法器、加法器、减法器、除法器、移位器、激活函数器、取最大值运算器、取最小值运算器、取平均值运算器、池化器中的一种或几种,各算术运算器之间并联,输入端分别连接至对应的多路分配器的输出端,输出端分别连接至对应的多路选择器的输入端,参见图11。

该可编程算术运算模块执行复合运算的过程如图12所示。

在一个可选的实施例中,该存算一体芯片还可以包括:输入接口40、输入寄存器堆50、输出寄存器堆80、输出接口模块90以及控制模块10。

控制模块10根据配置信息和有限状态机信息对芯片拓扑进行动态配置。

其中,可以根据实际应用需求,通过编译工具,得到配置信息与有限状态机信息。

其中,配置信息通常是静态的,比如指定参与任务的各个模块的状态,各个单元的配置大小;配置信息通常保存在存储器中,等任务运行之前进行调度。而有限状态机信息通常是动态的,在任务运行时,控制实际任务运行时的时序与状态。

具体地,该控制模块10根据配置信息对该多个存储单元子阵列和多个可编程算术运算单元进行组合配置,选择投入工作的存储单元子阵列和可编程算术运算单元,并对存储单元子阵列与可编程算术运算单元的组合配对方式进行控制以实现特定运算。

可以理解的是,多个可编程算术运算单元中每个可编程算术运算单元可以实现某一种或几种算术运算,多个可编程算术运算单元可以排列组合出多种复合运算,与多个存储单元子阵列配合,能够实现多种组合配置,进而实现复杂的运算功能。

其中,输入接口模块40的输入端连接外部设备,用于接收来自外部设备的输入数据(即需要运算的数据)。

输入寄存器堆50的输入端连接该输入接口模块40的输出端,用于暂存该输入数据或一待处理数据。

数模转换模块60的输入端连接该输入寄存器堆50的输出端,输出端连接该存储单元阵列20的输入端,用于将来自该输入寄存器堆50输出的外部输入数据或待处理数据转换为模拟信号并输至该存储单元阵列20,该存储单元阵列20对该模拟信号进行模拟向量-矩阵乘法运算并输出模拟向量-矩阵乘法运算结果。

模数转换模块70输入端连接该存储单元阵列20,输出端连接该可编程算术运算模块30,用于将该模拟向量-矩阵乘法运算结果转换为数字信号并输至该可编程算术运算模块30,该可编程算术运算模块30对该数字信号进行算术运算并输出算术运算结果。

输出寄存器堆80的输入端连接该可编程算术运算模块30,输出端连接该输入寄存器堆50,用于暂存该算术运算结果,并将该算术运算结果输出或作为该待处理数据输至该输入寄存器堆50。

输出接口模块90的输入端连接输出寄存器堆80的输出端,接收该输出寄存器堆80的输出数据,并将该输出数据向外部设备输出。

具体地,该输入寄存器堆50的输入端通过第一多路选择器连接该输入接口模块40的输出端和该输出寄存器堆80的输出端,以选择性接收来自该输入接口模块40的外部输入数据或来自该输出寄存器堆80的待处理数据。

该输出寄存器堆80的输出端通过多路分配器选择性连接该输出接口模块90的输入端或该输入寄存器堆50的输入端,以选择将该输出寄存器堆80输出结果输至输出接口模块90还是输入寄存器堆50,当选择将该输出寄存器堆80输出结果输至输入寄存器堆50时,意味着将对该输出结果进行新一轮的运算处理。

在一个可选的实施例中,该输入寄存器堆50的输出端还可以通过一多路分配器选择性连接该数模转换模块50的输入端或该可编程算术运算模块30的输入端,以选择将该输入寄存器堆50的输出端连接至该数模转换模块50的输入端还是该可编程算术运算模块30的输入端,其中,当该输入寄存器堆50的输出端连接至该数模转换模块50的输入端时,意味着对该输入寄存器堆50的输出进行模拟向量-矩阵乘法运算和算术运算;当该输入寄存器堆50的输出端连接至该可编程算术运算模块30的输入端的输入端时,意味着对该输入寄存器堆50的输出进行一定的算术运算,以此进一步增加了芯片架构的灵活性。

在一个可选的实施例中,该可软件定义存算一体芯片还可以包括:编程电路22,该编程电路22连接控制模块10。

该编程电路22连接存储单元阵列中每一个存储单元的源极、栅极和/或衬底,用于在控制模块10的控制下调控存储单元的阈值电压。

其中,所述编程电路包括:用于产生编程电压或者擦除电压的电压产生电路以及用于将所述编程电压加载至选定的存储单元的电压控制电路。

具体地,编程电路利用热电子注入效应,根据存储单元阈值电压需求数据,向存储单元的源极施加高电压,将沟道电子加速到高速,以增加存储单元的阈值电压。

并且,编程电路利用隧穿效应,根据存储单元阈值电压需求数据,向存储单元的栅极或衬底施加高电压,从而减少存储单元的阈值电压。

另外,控制模块10连接该编程电路,用于控制该编程电路,以对该存储单元阵列20中存储的权重进行调节。

在一个可选的实施例中,该存算一体芯片还可以包括:行列译码器。该行列译码器连接该存储单元阵列20以及该控制模块10,用于在该控制模块10的控制下对该存储单元阵列20进行行列译码。

其中,该存储单元阵列可为nor型闪存单元阵列、nand型闪存单元阵列、rram器件等,当然,本发明不以此为限。

在一个可选的实施例中,该存算一体芯片还包括:转换装置,所述转换装置包括多个转换支路,多个转换支路分别连接在多个dac的输出端,用于将dac输出的模拟电流信号转换为模拟电压信号。

在一个可选的实施例中,参见图13,该转换装置包括多个转换支路,每个转换支路包括一存储单元,存储单元的栅极与漏极相连,并连接至对应的模拟电压输入端,源极接入第一偏置电压。

其中,可以理解的是,该源极接入的第一偏置电压可以为地电压,即该源极接地。

在一个可选的实施例中,该转换支路包括一电阻器,电阻器一端连接dac的输出端,另一端连接第一偏置电压,其中,可以理解的是,第一偏置电压可以为地电压,即电阻器的另一端接地。

综上所述,本发明实施例提供的存算一体芯片,通过将一个大的存储单元阵列分成n个小阵列,每个子阵列对应完成一层神经网络的矩阵乘加运算,多个子阵列(满足非同行非同列)可以并行工作,不仅可以减小电路面积,降低成本,提高吞吐量,还能提高并行度,提高运算处理速度,同时兼容多任务时分复用,使用灵活方便。

本发明实施例还提供一种存储单元阵列结构,包括:多个阵列排布的存储单元子阵列;所述存储单元子阵列包括:多个开关单元以及多个阵列排布的存储单元,每一列的所有存储单元的第一端均连接源线,第二端均连接位线,每一行的所有存储单元的第三端均通过一开关单元连接字线,多行存储单元对应连接多个开关单元,多个开关单元的控制端均连接该存储单元子阵列的本地字线,通过控制所述本地字线控制该存储单元子阵列是否激活。

具体地,当需要该存储单元子阵列参与工作时,控制该本地字线swl11,进而控制该存储单元子阵列的各开关单元的开闭状态,以控制该存储单元子阵列激活或非激活。

在一个可选的实施例中,所述开关单元包括:第一开关元件以及第二开关元件;

所述第一开关元件的第一端接入第一电平,第二端连接所述第二开关元件的第一端,所述第二开关元件的第二端连接字线,所述第一开关元件的第三端和所述第二开关元件的第三端均连接所述本地字线,所述开关单元对应行的所有存储单元的第三端均连接在所述第一开关元件的第二端与所述第二开关元件第一端之间;

其中,工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态。

本领域技术人员能够明了,开关元件可采用nmos晶体管或pmos晶体管实现,开关元件的第一端可为源极,开关元件的第二端可为漏极,开关元件的第三端可为栅极。当然,本发明实施例中开关元件的第一端也可以为漏极,则开关元件的第二端为源极,本发明对此不作限定,可根据晶体管的类型合理选择即可。

另外,该第一电平可为低电平或地电平。

其中,第一开关元件可为nmos晶体管,第二开关元件可为pmos晶体管;或者,第一开关元件可为pmos晶体管,第二开关元件可为nmos晶体管,本发明实施例对此不作限制,只需满足工作时,该存储单元子阵列所对应的开关单元的第一开关元件和第二开关元件中的一个处于导通状态,另一个处于关闭状态即可。

在一个可选的实施例中,所述存储单元为可编程半导体器件。该可编程半导体器件为三端器件,例如浮栅晶体管,其中,该存储单元的第一端可为浮栅晶体管源极,该存储单元的第二端可为浮栅晶体管漏极,该存储单元的第三端可为浮栅晶体管栅极。当然,本发明实施例中存储单元的第一端也可以为浮栅晶体管漏极,则存储单元的第二端为浮栅晶体管源极。

在一个可选的实施例中,所述存储单元包括:非易失性存储器件以及晶体管;

所述晶体管的第一端作为该存储单元的第一端,第二端连接所述非易失性存储器件一端,第三端作为该存储单元的第三端,所述非易失性存储器件的另一端作为该存储单元的第二端。

其中,该非易失性存储器件可为阻变存储器件、相变存储器件以及自旋存储器件等。

本领域技术人员能够明了,开关元件可采用nmos晶体管或pmos晶体管实现,开关元件的第一端可为源极,开关元件的第二端可为漏极,开关元件的第三端可为栅极。当然,本发明实施例中开关元件的第一端也可以为漏极,则开关元件的第二端为源极,本发明对此不作限定,可根据晶体管的类型合理选择即可。

该存储单元阵列结构的更多细节可以参考上述存算一体芯片中的存储单元阵列,在此不再赘述。

通过上述技术方案可以得知,该存储单元阵列结构可以灵活控制参与工作的存储单元子阵列的数量,可以将空闲的存储单元子阵列或者存在损坏的存储单元子阵列切除,以便节省能耗,增加存储单元阵列的使用寿命和实用灵活度。

本发明实施例还提供一种电子设备,该电子设备包括上述的存算一体芯片。

该电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜