使用三栅极非易失性存储器单元阵列的神经网络分类器
文献发布时间:2023-06-19 12:24:27
相关专利申请
本申请要求于2019年4月11日提交的美国申请No.16/382,045的权益,该美国申请要求于2019年1月18日提交的临时申请No.62/794,492和于2019年1月29日提交的临时申请No.62/798,417的优先权。
技术领域
本发明涉及神经网络。
背景技术
人工神经网络模拟生物神经网络(动物的中枢神经系统,特别是大脑),这些人工神经网络用于估计或近似可取决于大量输入并且通常已知的功能。人工神经网络通常包括互相交换消息的互连“神经元”层。图1示出了人工神经网络,其中圆圈表示输入或神经元的层。连接部(称为突触)用箭头表示,并且具有可以根据经验进行调整的数值权重。这使得神经网络适应于输入并且能够学习。通常,神经网络包括多个输入的层。通常存在神经元的一个或多个中间层,以及提供神经网络的输出的神经元的输出层。处于每一级别的神经元分别地或共同地根据从突触所接收的数据作出决定。
在开发用于高性能信息处理的人工神经网络方面的主要挑战中的一个挑战是缺乏足够的硬件技术。实际上,实际神经网络依赖于大量的突触,从而实现神经元之间的高连通性,即非常高的计算并行性。原则上,此类复杂性可通过数字超级计算机或专用图形处理单元集群来实现。然而,相比于生物网络,这些方法除了高成本之外,能量效率也很普通,生物网络主要由于其执行低精度的模拟计算而消耗更少的能量。CMOS模拟电路已被用于人工神经网络,但由于给定大量的神经元和突触,大多数CMOS实现的突触都过于庞大。
发明内容
通过此类神经网络设备来解决上述问题和需求:该神经网络设备包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置。所述第一多个突触包括:多条第一线,每条第一线将存储器单元的行中的一行中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的行中的一行中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的列中的一列中的源极区电连接在一起;以及多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起。所述第一多个突触被配置为接收所述第一多个输入作为所述多条第一线或所述多条第二线上的电压,以及提供所述第一多个输出作为所述多条第三线或所述多条第四线上的电流。
神经网络设备可包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置。所述第一多个突触包括:多条第一线,每条第一线将存储器单元的行中的一行中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的行中的一行中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的行中的一行中的源极区电连接在一起;以及多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起。所述第一多个突触被配置为接收所述第一多个输入作为所述多条第一线或所述多条第二线或所述多条第三线上的电压,以及提供所述第一多个输出作为所述多条第四线上的电流。
神经网络设备可包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置。所述第一多个突触包括:多条第一线,每条第一线将存储器单元的行中的一行中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的行中的一行中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的行中的一行中的源极区电连接在一起;以及多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起。所述第一多个突触被配置为接收所述第一多个输入作为所述多条第四线上的电压,以及提供所述第一多个输出作为所述多条第三线上的电流。
神经网络设备可包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置,并且其中所述第一多个突触包括:多条第一线,每条第一线将存储器单元的行中的一行中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的行中的一行中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的行中的一行中的源极区电连接在一起;多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起;以及多个晶体管,每个晶体管与第四线中的一条第四线串联电连接。所述第一多个突触被配置为接收所述第一多个输入作为所述多个晶体管的栅极上的电压,以及提供所述第一多个输出作为所述多条第三线上的电流。
神经网络设备可包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置,并且其中所述第一多个突触包括:多条第一线,每条第一线将存储器单元的行中的一行中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的列中的一列中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的行中的一行中的源极区电连接在一起;以及多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起。所述第一多个突触被配置为接收所述第一多个输入作为所述多条第二线或所述多条第四线上的电压,以及提供所述第一多个输出作为所述多条第三线上的电流。
神经网络设备可包括第一多个突触,所述第一多个突触被配置为接收第一多个输入并由此生成第一多个输出。所述第一多个突触包括多个存储器单元,其中存储器单元中的每个存储器单元包括:形成于半导体衬底中的间隔开的源极区和漏极区,其中沟道区在源极区和漏极区之间延伸;设置在沟道区的第一部分上方并与第一部分绝缘的浮栅;设置在沟道区的第二部分上方并与第二部分绝缘的第一栅极;以及设置在浮栅上方并与浮栅绝缘或设置在源极区上方并与源极区绝缘的第二栅极。多个存储器单元中的每个存储器单元被配置成存储与浮栅上的多个电子相对应的权重值。所述多个存储器单元被配置为基于所述第一多个输入和所存储的权重值来生成所述第一多个输出。所述第一多个突触的存储器单元按行和列布置。所述第一多个突触包括:多条第一线,每条第一线将存储器单元的列中的一列中的第一栅极电连接在一起;多条第二线,每条第二线将存储器单元的行中的一行中的第二栅极电连接在一起;多条第三线,每条第三线将存储器单元的行中的一行中的源极区电连接在一起;以及多条第四线,每条第四线将存储器单元的列中的一列中的漏极区电连接在一起。所述第一多个突触被配置为接收所述第一多个输入作为所述多条第一线或所述多条第四线上的电压,以及提供所述第一多个输出作为所述多条第三线上的电流。
通过查看说明书、权利要求书和附图,本发明的其他目的和特征将变得显而易见。
附图说明
图1为示出人工神经网络的示意图。
图2为常规的2栅极非易失性存储器单元的侧面剖视图。
图3为示出图2的存储器单元的常规阵列架构的示意图。
图4为常规的2栅极非易失性存储器单元的侧面剖视图。
图5为示出图4的存储器单元的常规阵列架构的示意图。
图6为常规的4栅极非易失性存储器单元的侧面剖视图。
图7为示出图6的存储器单元的常规阵列架构的示意图。
图8A为示出均匀间隔的神经网络权重级别分配的示意图。
图8B为示出非均匀间隔的神经网络权重级别分配的示意图。
图9为示出双向调优算法的流程图。
图10为示出使用电流比较的权重映射的框图。
图11为示出使用电压比较的权重映射的框图。
图12为示出利用非易失性存储器阵列的示例性神经网络的不同级别的示意图。
图13为示出矢量乘法器矩阵的框图。
图14为示出矢量乘法器矩阵的各种级别的框图。
图15为3栅极非易失性存储器单元的侧面剖视图。
图16为示出布置为源极求和矩阵乘法器的图15的三栅极存储器单元的阵列架构的示意图。
图17为示出使用三栅极存储器单元的电流-电压转换器的示意图。
图18至图29为示出布置为源极或漏极求和矩阵乘法器的图15的三栅极存储器单元的阵列架构的示意图。
图30是3栅极非易失性存储器单元的侧面剖视图。
图31至图39为示出布置为漏极或源极求和矩阵乘法器的图30的三栅极存储器单元的阵列架构的示意图。
图40为示出与存储器阵列在同一芯片上用于实现存储器阵列的操作的控制器的示意图。
具体实施方式
本发明的人工神经网络利用CMOS技术和非易失性存储器阵列的组合。数字非易失性存储器是众所周知的。例如,美国专利5,029,130(’130专利)公开了分裂栅极非易失性存储器单元阵列。’130专利中公开的存储器单元在图2中被示出为存储器单元10。每个存储器单元10包括形成于半导体衬底12中的源极区14和漏极区16,其间具有沟道区18。浮栅20形成在沟道区18的第一部分上方并与其绝缘(并控制其电导率),并且形成在漏极区16的一部分上方。控制栅极22(即,第二沟道控制栅)具有第一部分22b和第二部分22c,该第一部分设置在沟道区18的第二部分上方并且与其绝缘(并控制其电导率),该第二部分沿着浮栅20向上并且在浮栅上方延伸。浮栅20和控制栅22通过栅极氧化物26与衬底12绝缘。
通过将高的正电压置于控制栅极22上,擦除存储器单元10(其中从浮栅20去除电子),导致浮栅20上的电子经由福勒-诺德海姆隧穿效应从浮栅20通过中间绝缘体24遂穿到控制栅极22。
通过将正电压置于控制栅极22上以及将正电压置于漏极16上来编程存储器单元10(其中将电子置于浮栅20上)。电子电流将从源极14流向漏极16。当电子到达控制栅22和浮栅20之间的间隙时,电子将加速并且变热。由于来自浮栅20的静电引力,一些加热的电子将通过栅极氧化物26被注入到浮栅20上。
通过将正的读取电压置于漏极16和控制栅极22上(这接通沟道区在控制栅极下方的部分)来读取存储器单元10。如果浮栅20带正电(即,电子被擦除并电容耦合到漏极16上的正电压),则则沟道区18在浮栅20下方的部分也被接通,并且电流将流过沟道区18,该沟道区被感测为擦除状态或“1”状态。如果浮栅20带负电(即,通过电子进行了编程),则沟道区18的在浮栅20下方的部分被大部分或完全关断,并且电流将不会(或者有很少的电流)流过沟道区18,该沟道区被感测为编程状态或“0”状态。
图3示出了存储器单元10的常规阵列架构的架构。存储器单元10按行和列布置。在每一列中,存储器单元以镜像方式端对端地布置,使得它们形成为成对的存储器单元,每个存储器单元对共享公共源极区14(S),并且每个相邻的一组存储器单元对共享公共漏极区16(D)。存储器单元的任何给定行的所有源极区14通过源极线14a电连接在一起。存储器单元的任何给定列的所有漏极区16通过位线16a电连接在一起。存储器单元的任何给定行的所有控制栅极22通过控制栅极线22a电连接在一起。因此,尽管存储器单元可被单独编程和读取,但存储器单元擦除是逐行执行的(存储器单元的每一行通过在控制栅极线22a上施加高电压而被一起擦除)。如果要擦除特定存储器单元,则相同行中的所有存储器单元也被擦除。
本领域的技术人员理解,源极和漏极可以是可互换的,其中浮栅20可部分地延伸到源极14而不是漏极16上方,如图4所示。图5最佳地示出了对应的存储器单元架构,包括存储器单元10、源极线14a、位线16a和控制栅极线22a。从附图中可明显看出,相同行的存储器单元10共享相同的源极线14a和相同的控制栅极线22a,而相同列的所有单元的漏极区电连接到相同的位线16a。阵列设计针对数字应用进行优化,并且允许对所选择的单元进行单独编程,例如通过分别向所选择的控制栅极线22a和源极线14a施加1.6V和7.6V并且使所选择的位线16a接地。通过在未选择的位线16a上施加大于2伏特的电压并使其余线接地,避免对相同对中的未选择存储单元进行干扰。存储器单元10无法被单独地擦除,因为负责擦除的过程(电子从浮栅20到控制栅极22的福勒-诺德海姆隧穿)仅受漏极电压(即,对于共享相同源极线14a的行方向上的两个相邻单元,唯一电压可能不同)的微弱影响。操作电压的非限制性示例可包括:
读取1是其中单元电流在位线上输出的读取模式。读取2是其中单元电流在源极线上输出的读取模式。
具有多于两个栅极的分裂栅存储器单元也是已知的。例如,具有源极区14、漏极区16、位于沟道区18的第一部分上方的浮栅20、位于沟道区18的第二部分上方的选择栅极28(即,第二沟道控制栅极)、位于浮栅20上方的控制栅极22,以及位于源极区14上方的擦除栅极30的存储器单元是已知的,如图6中所示(参见例如美国专利6,747,310)。在此,除了浮栅20,所有的栅极均为非浮栅,这意味着它们电连接到或能够连接到电压源或电流源。编程由来自沟道区18的受热电子示出,电子将自身注入浮栅20上。擦除通过从浮栅20隧穿到擦除栅30的电子来显示。
四栅极存储器单元阵列的架构可如图7所示进行配置。在该实施方案中,每个水平选择栅极线28a将该行存储器单元的所有选择栅极28电连接在一起。每个水平控制栅极线22a将该行存储器单元的所有控制栅极22电连接在一起。每个水平源极线14a将共享源极区14的两行存储器单元的所有源极区14电连接在一起。每个位线16a将该列存储器单元的所有漏极区16电连接在一起。每个擦除栅极线30a将共享擦除栅极30的两行存储器单元的所有擦除栅极30电连接在一起。与先前的架构一样,单独的存储器单元可独立地编程和读取。然而,无法单独地擦除存储器单元。擦除通过将高的正电压置于擦除栅极线30a上来执行,这导致同时擦除共享相同擦除栅极线30a的两行存储器单元。示例性非限制性操作电压可包括下文表2中的那些电压(在该实施方案中,选择栅极线28a可被称为字线WL):
读取1是其中单元电流在位线上输出的读取模式。读取2是其中单元电流在源极线上输出的读取模式。
为了在神经网络中利用上述非易失性存储器阵列,可进行两个修改。第一,可对线路进行重新配置,使得每个存储器单元可被单独编程、擦除和读取,而不会不利地影响阵列中的其他存储器单元的存储器状态,如下文进一步解释。第二,可提供存储器单元的连续(模拟)编程。具体地,阵列中的每个存储器单元的存储或编程状态(即,由浮栅上的电子数目反映的浮栅上的电荷)可在独立地并且对其他存储器单元的干扰最小的情况下连续地从完全擦除状态变为完全编程状态,反之亦然。这意味着单元存储装置是模拟的,或者至少可存储许多离散值中的一个离散值,这允许对存储器阵列中的所有单元进行非常精确且单独的调优,并且这使得存储器阵列对于存储和对神经网络的突触权重进行微调调整是理想的。
存储在存储器单元中的神经网络权重级别分配可均匀地间隔开(如图8A所示),或不均匀地间隔开(如图8B所示)。可使用诸如图9所示的双向调优算法来实现非易失性存储器单元的编程。Icell是被编程的目标单元的读取电流,并且Itarget是在该单元被理想地编程时的期望读取电流。对目标单元读取电流Icell进行读取(步骤1)并与目标读取电流Itarget进行比较(步骤2)。如果目标单元读取电流Icell大于目标读取电流Itarget,则执行编程调优过程(步骤3)以增加浮栅20上的电子数目(其中可使用查找表或硅基近似函数来确定控制栅极22上的期望的初始和增量编程电压VCG)(步骤3a-3b),该步骤可根据需要重复进行(步骤3c)。如果目标单元读取电流Icell小于目标读取电流Itarget,则执行擦除调优过程(步骤4)以减少浮栅20上的电子数目(其中可使用查找表或硅基近似函数来确定擦除栅极30上的期望的初始和增量擦除电压VEG)(步骤4a-4b),该步骤可根据需要重复进行(步骤4c)。如果编程调优过程超过目标读取电流,则执行擦除调优过程(步骤3d并且从步骤4a开始),反之亦然(步骤4d并且从步骤3a开始),直到达到目标读取电流(在可接受的delta值内)。
相反,可使用利用编程调优的单向调优算法来实现非易失性存储器单元的编程。使用该算法,首先将存储器单元10完全擦除,然后执行图9中的编程调优步骤3a-3c,直到目标存储器单元10的读取电流达到目标阈值为止。另选地,可使用利用擦除调优的单向调优算法来实现非易失性存储器单元的调优。在该方法中,首先将存储器单元完全编程,然后执行图9中的擦除调优步骤4a-4c,直到目标存储器单元的读取电流达到目标阈值为止。
图10为示出使用电流比较的权重映射的示意图。将权重数字位(例如,表示存储器单元的目标数字权重的针对每个突触的5位权重)输入到数模转换器(DAC)40,该数模转换器将位转换为电压Vout(例如,64电压电平-5位)。通过电压到电流转换器V/I Conv 42将Vout转换为电流Iout(例如,64电流电平-5位)。将电流Iout提供至电流比较器IComp 44。将编程或擦除算法启用输入到存储器单元10(例如,擦除:增加EG电压;或编程:增加CG电压)。将输出存储器单元电流Icellout(即,来自读取操作)提供至电流比较器IComp 44。电流比较器IComp 44将存储器单元电流Icellout与源于权重数字位的电流Iout进行比较,以产生指示存储在存储器单元10中的权重的信号。
图11为示出使用电压比较的权重映射的示意图。将权重数字位(例如,针对每个突触的5位权重)输入到数模转换器(DAC)40,该数模转换器将位转换为电压Vout(例如,64电压电平-5位)。将Vout提供至电压比较器VComp 46。将编程或擦除算法启用输入到存储器单元10(例如,擦除:增加EG电压;或编程:增加CG电压)。将输出存储器单元电流Icellout提供至电流-电压转换器I/V Conv 48以将该电流转换为电压V2out(例如,64电压电平-5位)。将电压V2out提供至电压比较器VComp 46。电压比较器VComp 46比较电压Vout和V2,以产生指示存储在存储器单元10中的权重的信号。
用于权重映射比较的另一个实施方案使用存储器单元的输入权重和/或输出的可变脉冲宽度(即,脉冲宽度与权重值成比例或成反比例)。在用于权重映射比较的又一个实施方案中,使用数字脉冲(例如,由时钟产生的脉冲,其中脉冲数目与权重值成比例或成反比例)用于存储器单元的输入权重和/或输出。
图12概念性地示出了利用非易失性存储器阵列的神经网络的非限制性示例。该示例将非易失性存储器阵列神经网络用于面部识别应用,但任何其他适当的应用也可使用基于非易失性存储器阵列的神经网络来实现。对于该示例,S0为输入层,其为具有5位精度的32×32像素RGB图像(即,三个32×32像素阵列,分别用于每个颜色R、G和B,每个像素为5位精度)。从S0到C1的突触CB1同时具有不同组的权重和共享权重,并且用3×3像素重叠滤波器(内核)扫描输入图像,将滤波器移位1个像素(或根据模型所指示的多于1个像素)。具体地,将图像的3×3部分中的9个像素的值(即,称为滤波器或内核)提供给突触CB1,由此将这9个输入值乘以适当的权重,并且在对该乘法的输出求和之后,由CB1的第一突触确定并提供单个输出值以用于生成特征映射的其中一层C1的像素。然后将3×3滤波器向右移位一个像素(即,添加右侧的三个像素的列,并释放左侧的三个像素的列),由此将该新定位的滤波器中的9个像素值提供给突触CB1,由此将它们乘以相同的权重并且由相关联的突触确定第二单个输出值。继续该过程,直到3×3滤波器在整个32×32像素图像上扫描所有三种颜色和所有位(精度值)。然后使用不同组的权重重复该过程以生成C1的不同特征映射,直到计算出层C1的所有特征映射。
在层C1处,在本示例中,存在16个特征映射,每个特征映射具有30×30像素。每个像素是从输入和内核的乘积中提取的新特征像素,因此每个特征映射是二维阵列,因此在该示例中,突触CB1由16层的二维阵列构成(记住本文所引用的神经元层和阵列是逻辑关系,而不必是物理关系,即阵列不必定向于物理二维阵列)。16个特征映射中的每个特征映射均由应用于滤波器扫描的十六个不同组的突触权重中的一组生成。C1特征映射可全部涉及相同图像特征的不同方面,诸如边界识别。例如,第一映射(使用第一权重组生成,针对用于生成该第一映射的所有扫描而共享)可识别圆形边缘,第二映射(使用与第一权重组不同的第二权重组生成)可识别矩形边缘,或某些特征的纵横比,以此类推。
在从层C1转到层S1之前,应用激活函数P1(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。池化阶段的目的是对邻近位置求均值(或者也可使用max函数),以例如减少边缘位置的依赖性,并在进入下一阶段之前减小数据大小。在层S1处,存在16个15×15特征映射(即,十六个每个特征映射15×15像素的不同阵列)。CB2中从层S1到层C2的突触和相关联神经元利用4×4滤波器扫描S1中的映射,其中滤波器移位1个像素。在层C2处,存在22个12×12特征映射。在从层C2转到层S2之前,应用激活函数P2(池化),该激活函数将来自每个特征映射中连续的非重叠2×2区域的值进行池化。在层S2处,存在22个6×6特征映射。将激活函数应用于从层S2到层C3的突触CB3,其中层C3中的每个神经元连接至层S2中的每个映射。在层C3处,存在64个神经元。从层C3到输出层S3的突触CB4将S3完全连接至C3。层S3处的输出包括10个神经元,其中最高输出神经元确定类。例如,该输出可指示对原始图像的内容的识别或分类。
使用非易失性存储器单元的阵列或阵列的一部分来实现每个级别的突触。图13为包括非易失性存储器单元的向量矩阵乘法(VMM)阵列的框图,并且被用作输入层和下一层之间的突触。具体地,VMM阵列32包括非易失性存储器单元阵列33、擦除栅极和字线栅极解码器34、控制栅极解码器35、位线解码器36和源极线解码器37,这些解码器对存储器单元阵列33的输入进行解码。在该示例中,源极线解码器37还对存储器单元阵列33的输出进行解码。另选地,位线解码器36可以解码非易失性存储器单元阵列33的输出。存储器阵列有两个用途。首先,它存储将由VMM阵列32使用的权重。其次,存储器单元阵列有效地将输入与存储在存储器单元阵列中的权重相乘并且将沿每个输出线的结果相加以产生输出,该输出将作为下一层的输入或最终层的输入。通过执行乘法和加法函数,存储器阵列消除了对单独的乘法和加法逻辑电路的需要,并且由于其原位存储器计算其也是高功效的。
将存储器单元阵列的输出提供至单个或差分求和电路38,该单个或差分求和电路对存储器单元阵列的输出进行求和以为该卷积创建单个值。然后将求和后的输出值提供至激活函数电路39,该激活函数电路对输出进行修正。激活函数可以是sigmoid、tanh或ReLu函数。来自电路39的经修正的输出值成为下一层的特征映射的元素(例如,上述描述中的C1),然后被应用于下一突触以产生下一特征映射层或最终层。因此,在该示例中,存储器单元阵列33构成多个突触(所述多个突触从现有神经元层或从输入层诸如图像数据库接收它们的输入),并且求和电路38和激活函数电路39构成多个神经元。
图14为示出多层VMM阵列32(此处标记为VMM阵列32a、32b、32c、32d和32e)的使用的框图。如图14所示,通过数模转换器31将输入(表示为Inputx)从数字转换为模拟,并将其提供至输入VMM阵列32a。由输入VMM阵列32a产生的输出作为到下一个VMM阵列(隐藏级别1)32b的输入被提供,该输入继而生成作为下一VMM阵列(隐藏级别2)32c的输入而被提供的输出,以此类推。VMM阵列32的各层用作卷积神经网络(CNN)的突触和神经元的不同层。每个VMM阵列32a、32b、32c、32d和32e可以是独立的物理非易失性存储器阵列、或者多个VMM阵列可以利用相同非易失性存储器阵列的不同部分、或者多个VMM阵列可以利用相同物理非易失性存储器阵列的重叠部分。图14所示的示例包含五个层(32a、32b、32c、32d和32e):一个输入层(32a)、两个隐藏层(32b、32c)和两个完全连接的层(32d、32e)。本领域的普通技术人员将会知道,这仅仅是示例性的,并且相反,系统可包括两个以上的隐藏层和两个以上的完全连接的层。
图15至图16示出了布置为源极求和矩阵乘法器的三栅极存储器单元阵列的配置。三栅极存储器单元在图15中示出,并且与图6的三栅极存储器单元相同,不同的是没有擦除栅极。在一个实施方案中,通过向选择栅极28施加正电压来执行单元擦除,其中电子从浮栅20隧穿到选择栅极28。下面是图15的三栅极存储器单元的示例性非限制性操作电压的表。
读取1是其中单元电流在位线上输出的读取模式。读取2是其中单元电流在源极线上输出的读取模式。图15的三栅极存储器单元的另选擦除操作可使p型基板12处于高电压(例如10V至20V)并且使控制栅极22处于低电压或负电压(例如-10V至0V),由此电子将从浮栅20隧穿到衬底12。
用于图15的三栅极存储器单元阵列的线在图16中示出,并且与图7的阵列中的线相同,不同的是不存在擦除栅极线30a(因为不存在擦除栅极),并且源极线14a竖直地延伸而不是水平地延伸,使得每个存储器单元可被独立地编程、擦除和读取。具体地讲,每列存储器单元包括将该列中的存储器单元的所有源极区14连接在一起的源极线14a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vin3并且布置在控制栅极线22a上。矩阵电流输出Iout0...Ioutn在源极线14a上产生。对于列中的所有单元,每个输出Iout为输入电流I乘以存储在单元中的权重W的和:
Iout=Σ(Ii*Wij)
其中“i”表示行,“j”表示存储器单元所在的列。在施加输入电压而不是输入电流(如图16中所示的Vin0-Vin3)的情况下,对于列中的所有单元,每个输出Iout与输入电压乘以存储在单元中的权重W的和成比例:
IoutαΣ(Vi*Wij)
每个存储器单元充当单个神经元,该单个神经元具有表示为输出电流Iout的相加权重值,该输出电流由存储在该列中的存储器单元中的权重值的和来决定。任何给定神经元的输出均呈电流的形式,该电流然后可在由激活函数电路进行调整之后作为用于下一个后续VMM阵列阶段的输入电流Iin。
鉴于输入是电压并且输出是电流,在图16中,第一阶段之后的每个后续VMM阶段优选地包括用于将来自先前的VMM阶段的输入电流转换为将用作输入电压Vin的电压的电路。图17示出了此类电流-电压转换电路的示例,该电路为将输入电流Iin0...Iin1对数转换为输入电压Vin0..Vin1以应用于后续阶段的经修改的存储器单元行。本文所述的存储器单元在弱反型中被偏压,
Ids=Io*e
其中w=e
对于使用存储器单元将输入电流转换为输入电压的I到V对数转换器:
Vg=k*Vt*log[Ids/wp*Io]
此处,wp为参考存储器单元或外围存储器单元的w。对于用作向量矩阵乘法器VMM的存储器阵列,输出电流为:
Iout=wa*Io*e
Iout=(wa/wp)*Iin=W*Iin
W=e
此处,wa=存储器阵列中的每个存储器单元的w。选择栅极线28a可用作存储器单元的输入以得到输入电压,该选择栅极线通过在电流到电压转换期间闭合的开关BLR连接到位线16a。
另选地,本文所述的VMM阵列的非易失性存储器单元可被配置为在线性区域中操作:
Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*Wt/L,
其中Wt和L分别为晶体管的宽度和长度
Wα(Vgs-Vth),指重量W与(Vgs-Vth)成比例
选择栅极线或控制栅极线或位线或源极线可用作在线性区域中操作的存储器单元的输入。位线或源极线可用作输出神经元的输出。
对于I-V线性转换器,在线性区域工作的存储器单元(诸如参考存储器单元或外围存储器单元)或晶体管或电阻器可以用来将输入/输出电流线性转换为输入/输出电压。另选地,本文所述的VMM阵列的非易失性存储器单元可被配置为在饱和区域中操作:
Ids=α1/2*beta*(Vgs-Vth)
Wα(Vgs-Vth)
选择栅极线或控制栅极可用作在饱和区域中操作的存储器单元的输入。位线或源极线可用作输出神经元的输出。另选地,本文所述的VMM阵列的非易失性存储器单元可用于所有区域或其组合(亚阈值、线性或饱和区域)。上述电流-电压转换电路或技术中的任一者可与本文的实施方案中的任何实施方案一起使用,使得从任何给定神经元以电流形式输出的电流然后可在由激活函数电路进行调整之后作为用于下一个后续VMM阵列阶段的输入。
图18示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图18的阵列的线与图16的阵列中的线相同。然而,矩阵电压输入Vin0-Vin3布置在选择栅极线28a上,并且矩阵电流输出Iout0...IoutN在源极线14a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。与前一个实施方案(以及本文所述的任何其他实施方案)一样,任何给定神经元的输出均呈电流的形式,该电流然后可在由激活函数电路进行调整之后作为用于下一个后续VMM阵列阶段的输入。
图19示出了图15中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图19的阵列的线与图16的阵列中的线相同。然而,矩阵电压输入Vin0-Vin3布置在控制栅极线22a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图20示出了图15中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图20的阵列的线与图16的阵列中的线相同。然而,矩阵电压输入Vin0-Vin3布置在选择栅极线28a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图21示出了图15中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图21的阵列的线与图16的阵列中的线相同,不同的是源极线14a水平地延伸而不是竖直地延伸。具体地讲,每行存储器单元包括将该行中的存储器单元的所有源极区14连接在一起的源极线14a。矩阵电压输入Vin0-Vin3布置在选择栅极线28a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图22示出了图15中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图22的阵列的线与图21的阵列中的线相同。矩阵电压输入Vin0-Vin3布置在控制栅极线22a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图23示出了图15中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图23的阵列的线与图21的阵列中的线相同。矩阵电压输入Vin0-Vin1布置在源极线14a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图24示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图24的阵列的线与图21的阵列中的线相同。矩阵电压输入Vin0-Vinn布置在位线16a上,并且矩阵电流输出Iout0...Iout1在源极线14a上产生(即,对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图25示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图25的阵列的线与图21的阵列中的线相同,不同的是每个位线包括与位线串联连接的位线缓冲晶体管60(即,位线上的任何电流流过其源极和漏极之间的晶体管)。晶体管60用作有刻度的开关,该开关随着晶体管栅极端子上的输入电压增加而选择性地且逐渐地接通位线(即,晶体管将位线耦合到其电流或电压源)。矩阵电压输入Vin0...Vinn被提供给晶体管60的栅极,并且矩阵电流输出Iout0...Iout1被提供至源极线14a上。该配置的优点在于可将矩阵输入提供为电压(以操作晶体管60),而不是以电压的形式直接向位线提供输入。这使得使用恒定电压源来操作位线,响应于提供给晶体管栅极的输入电压Vin,使用晶体管60将恒定电压源逐渐耦合到位线,从而消除向存储器阵列提供电压输入的需要。对于其中位线接收输入的图15的存储器单元10的本文实施方案中的任何实施方案而言,可将晶体管60包括在位线上以在其栅极上接收输入而不是将输入施加到位线上。
图26示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图26的阵列的线与图21的阵列中的线相同,不同的是控制栅极线22a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有控制栅极22连接在一起的控制栅极线22a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在控制栅极线22a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图27示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图27的阵列的线与图21的阵列中的线相同,不同的是控制栅极线22a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有控制栅极22连接在一起的控制栅极线22a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在位线16a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图28示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图28的阵列的线与图21的阵列中的线相同,不同的是选择栅极线28a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有选择栅极28连接在一起的选择栅极线28a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在选择栅极线28a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图29示出了图15中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图29的阵列的线与图21的阵列中的线相同,不同的是选择栅极线28a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有选择栅极28连接在一起的选择栅极线28a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在位线16a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图30至图31示出了布置为漏极求和矩阵乘法器的具有不同配置的三栅极存储器单元阵列的另一配置。三栅极存储器单元在图30中示出,并且与图6的三栅极存储器单元相同,不同的是没有控制栅极22。如图所示的选择栅极28没有向上延伸并越过浮栅20的任何部分。然而,选择栅极28可包括向上延伸并越过浮栅20的一部分的附加部分。
以类似的方式进行读取、擦除和编程,但对控制栅极(不包括在内)不进行任何偏置。示例性非限制性操作电压可包括下表4中的那些:
读取1是其中单元电流在位线上输出的读取模式。读取2是其中单元电流在源极线上输出的读取模式。
图31示出了使用图30的存储器单元10的存储器单元阵列架构,其中除了位线16a之外,所有线都沿水平/行方向延伸。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作位线求和矩阵乘法器。矩阵电压输入为Vin0-Vin3并且布置在选择栅极线28a上。矩阵输出Iout0...Ioutn在位线16a上产生。对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图32示出了图30中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图32的阵列的线与图31的阵列中的线相同。矩阵电压输入Vin0-Vin1布置在擦除栅极线30a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图33示出了图30中布置为漏极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图33的阵列的线与图31的阵列中的线相同。矩阵电压输入Vin0-Vin1布置在源极线14a上,并且矩阵电流输出Iout0...IoutN在位线16a上产生(即,对于列中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图34示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图34的阵列的线与图31的阵列中的线相同。矩阵电压输入Vin0-Vinn布置在位线16a上,并且矩阵电流输出Iout0...Iout1在源极线14a上产生(即,对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和)。
图35示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图35的阵列的线与图31的阵列中的线相同,不同的是每个位线包括与位线串联连接的位线缓冲晶体管60(即,位线上的任何电流流过其源极和漏极之间的晶体管)。晶体管60用作有刻度的开关,该开关随着晶体管栅极端子上的输入电压增加而选择性地且逐渐地接通位线(即,晶体管将位线耦合到其电流或电压源)。矩阵电压输入Vin0...Vinn被提供给晶体管60的栅极,并且矩阵电流输出Iout0...Iout1被提供至源极线14a上。该配置的优点在于可将矩阵输入提供为电压(以操作晶体管60),而不是以电压的形式直接向位线提供输入。这使得使用恒定电压源来操作位线,响应于提供给晶体管栅极的输入电压Vin,使用晶体管60将恒定电压源逐渐耦合到位线,从而消除向存储器阵列提供电压输入的需要。对于其中位线接收输入的图30的存储器单元10的本文实施方案中的任何实施方案而言,可将晶体管60包括在位线上以在其栅极上接收输入而不是将输入施加到位线上。
图36示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图36的阵列的线与图31的阵列中的线相同,不同的是选择栅极线28a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有选择栅极28连接在一起的选择栅极线28a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在选择栅极线28a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图37示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图37的阵列的线与图31的阵列中的线相同,不同的是选择栅极线28a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有选择栅极28连接在一起的选择栅极线28a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在位线16a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图38示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图38的阵列的线与图31的阵列中的线相同,不同的是擦除栅极线30a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有擦除栅极30连接在一起的擦除栅极线30a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵输入为Vin0-Vinn并且布置在擦除栅极线30a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
图39示出了图30中布置为源极求和矩阵乘法器的三栅极存储器单元10阵列的另一配置。图39的阵列的线与图31的阵列中的线相同,不同的是擦除栅极线30a竖直地延伸而不是水平地延伸。具体地讲,每列存储器单元包括将该列中的所有擦除栅极30连接在一起的擦除栅极线30a。在利用该单元的适当权重值对每个存储器单元进行编程之后,该阵列用作源极求和矩阵乘法器。矩阵电压输入为Vin0-Vinn并且布置在位线16a上。矩阵电流输出Iout0…Iout1在源极线14a上产生。对于行中的所有单元,每个输出Iout是与存储在单元中的权重W成比例的单元电流的和。
关于图15至图20的实施方案,即图15中的存储器单元的阵列,其中图16至图20中的阵列中的每个阵列包括垂直地(在列方向上)延伸而不是水平地(在行方向上)延伸的源极线14a,图16至图20的阵列将同样适用于具有擦除栅极30而不是控制栅极22的图30的存储器单元。具体地讲,图16至图20的阵列将是图30中的存储器单元10而不是图15中的存储器单元10,其中在每个阵列中,控制栅极线22a将被擦除栅极线30a替换(即,擦除栅极线30a中的每条擦除栅极线会将存储器单元10的一行的所有擦除栅极30连接在一起)。图16至图20中的所有其他线将保持不变。
所有上述功能可在控制器100的控制下执行,该控制器连接到用于神经网络功能的上述存储器单元10的存储器阵列。如图40所示,控制器100优选地在与存储器阵列120相同的半导体芯片或衬底110上。然而,控制器100也可位于单独的半导体芯片或衬底上,并且可以是设置在半导体芯片或衬底110上或外的不同位置处的多个控制器的集合。
应当理解,本发明不限于上述的和在本文中示出的实施方案,而是涵盖在任何权利要求书的范围内的任何和所有变型形式。例如,对本文中本发明的引用不旨在限制任何权利要求书或权利要求术语的范围,而是仅参考可由一项或多项权利要求书覆盖的一个或多个特征。上文所述的材料、工艺和数值的示例仅为示例性的,而不应视为限制权利要求书。材料的单个层可形成为此类材料或类似材料的多个层,并且反之亦然。虽然每个存储器单元阵列的输出在被发送到下一个神经元层之前通过滤波缩合来操纵,但它们不必如此。最后,对于上述矩阵乘法器阵列实施方案中的每个实施方案,对于不用于输入电压或输出电流的任何线,本文表中公开的用于该存储器单元配置的标称读取电压可以(但不必要)在操作期间应用于那些线。
应当指出的是,如本文所用,术语“在……上方”和“在……上”均包括性地包括“直接在……上”(之间没有设置中间材料、元件或空间)和“间接在……上”(之间设置有中间材料、元件或空间)。类似地,术语“相邻”包括“直接相邻”(之间没有设置中间材料、元件或空间)和“间接相邻”(之间设置有中间材料、元件或空间),“被安装到”包括“被直接安装到”(之间没有设置中间材料、元件或空间)和“被间接安装到”(之间设置有中间材料、元件或空间),并且“被电耦合到”包括“被直接电耦合到”(之间没有将元件电连接在一起的中间材料或元件)和“被间接电耦合到”(之间有将元件电连接在一起的中间材料或元件)。例如,“在衬底上方”形成元件可包括在两者间无中间材料/元件的情况下直接在衬底上形成该元件,以及在两者间有一种或多种中间材料/元件的情况下间接在衬底上形成该元件。
- 使用三栅极非易失性存储器单元阵列的神经网络分类器
- 使用二栅极非易失性存储器单元阵列的神经网络分类器