CN110782028A - 具有差分二进制非易失性存储器单元结构的可配置精密神经网络 - Google Patents

具有差分二进制非易失性存储器单元结构的可配置精密神经网络 Download PDF

Info

Publication number
CN110782028A
CN110782028A CN201910638410.1A CN201910638410A CN110782028A CN 110782028 A CN110782028 A CN 110782028A CN 201910638410 A CN201910638410 A CN 201910638410A CN 110782028 A CN110782028 A CN 110782028A
Authority
CN
China
Prior art keywords
input
bit
pair
memory cells
output
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
CN201910638410.1A
Other languages
English (en)
Inventor
W·H·崔
P·F·邱
马雯
M·卢克博登
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.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
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
Priority claimed from US16/405,178 external-priority patent/US10643119B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN110782028A publication Critical patent/CN110782028A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0073Write using bi-directional cell biasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/71Three dimensional array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/75Array having a NAND structure comprising, for example, memory cells in series or memory elements in series, a memory element being a memory cell in parallel with an access transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 

Abstract

本公开一般涉及具有差分二进制非易失性存储器单元结构的可配置精密神经网络。本发明公开了非易失性存储器阵列架构用于实现神经网络(BNN)的用途,其允许在存储器阵列内执行矩阵乘法和累加。用于存储神经网络的权重的单位突触由两个单独存储器单元的差分存储器单元形成,诸如具有可编程电阻的存储器单元,每个存储器单元连接在字线对中的对应一者与共享位线之间。将输入作为具有电压值的模式施加在连接到单位突触的字线对上,以通过确定共享位线上的电压电平来执行输入与权重的乘法。此类乘法的结果由感测放大器来确定,并且该结果由求和电路进行累加。通过针对权重使用多个差分存储器单元,所述方法可以从二进制权重扩展到多位权重值。

Description

具有差分二进制非易失性存储器单元结构的可配置精密神经 网络
相关申请的交叉引用
本申请是2019年5月7日提交的美国专利申请号16/939,109的部分继续申请,其要求2018年7月24日提交的美国临时申请号62/702,713的优先权,并且与均在2019年3月28日提交的美国专利申请号16/368,441和16/368,347相关,所有这些申请以引用方式并入本文。
背景技术
人工神经网络越来越多地用于人工智能和机器学习应用中。在人工神经网络中,将一组输入通过一个或多个中间层或隐藏层传播以生成输出。通过多组权重来连接将输入连接到输出的层,该多组权重是在训练或学习阶段中通过以下方式生成的:确定用于将输入转换成输出的一组数学变换,移动通过所述层,计算每个输出的概率。一旦确立了权重,就可以在推理阶段使用所述权重来根据一组输入确定输出。虽然此类神经网络可以提供高度准确的结果,但是它们是计算极其密集的,并且在从存储器中读取连接不同层的权重并将所述权重传输到处理单元的处理单元中所涉及的数据传输可能相当密集。
附图说明
类似编号的元件是指不同图中的通用部件。
图1是连接到主机的存储器系统的一个实施方案的框图。
图2是前端处理器电路的一个实施方案的框图。在一些实施方案中,前端处理器电路是控制器的一部分。
图3是后端处理器电路的一个实施方案的框图。在一些实施方案中,后端处理器电路是控制器的一部分。
图4是存储器封装件的一个实施方案的框图。
图5是存储器管芯的一个实施方案的框图。
图6示出了人工神经网络的简单示例。
图7A是描述用于训练神经网络以生成一组权重的方法的一个实施方案的流程图。
图7B是描述用于使用神经网络进行推断的方法的一个实施方案的流程图。
图8是矩阵乘法在神经网络中的使用的示意图。
图9是示出响应于不同输入-权重组合的二进制神经网络的输出的表格。
图10表示使用两个差分存储器单元来形成用于存储权重位的单位突触的实施方案。
图11示出了分别作为字线电压、电阻值和位线电压的输入值、权重值和输出值的编码。
图12A至图12D分别对应于图11的表格中所示的四种情况。
图13A至图13C示出了单位突触的电阻式存储器单元的一些实施方案。
图14示出了图10的单位突触并入阵列中。
图15使神经网络的矩阵乘法与图14的结构更密切相关。
图16是如针对图14的阵列架构所示,在推断中使用二进制神经网络进行矩阵乘法计算的一个实施方案的流程图。
图17示出了用于并发多输入阵列内矩阵乘法运算的等效分压器。
图18示出了如位线上所见的输出电压与在多个输入权重积的并发感测中确定的求和代码之间的关系。
图19是与图16类似但结合了同时施加多个输入的并行性的点积计算的一个实施方案的流程图。
图20描绘了形成差分交叉点(DX)架构的单片三维存储器阵列的一部分的一个实施方案。
图21提供了使用扩展的三维结构来存储神经网络权重的实施方案。
图22是将多位权重存储在非易失性存储器阵列中以用于阵列内推断操作的示意图。
图23示出了图10的单位突触并入用于多位权重实施方案的阵列中。
图24是基于图23的阵列架构在推断中使用多位权重的矩阵乘法或点积计算的一个实施方案的流程图。
图25是与图24类似但结合了同时向多位权重施加多个输入的并行性的点积计算的一个实施方案的流程图。
图26示出了二进制加权电压求和电路的实施方案,该电路可用于加权和组合阵列内矩阵乘法运算的逐位输出。
图27是基于电流的加权和求和电路的一个实施方案的示意图,该电路可用于加权和组合阵列内矩阵乘法运算的逐位输出。
具体实施方式
为了降低计算复杂性和放宽神经网络的存储器要求,已引入了二进制神经网络(BNN)。在BNN中,神经网络的权重和输入被截短为二进制值(-1,+1),该二进制算术将250乘法和加法简化为XNOR和位计数操作。以下公开内容提供了利用具有交叉点型结构的结构非易失性存储器来存储神经网络的权重并执行存储器阵列内的乘法和累加操作的技术。
神经网络的每个权重存储在由差分存储器单元布置中的一对电阻式非易失性存储器单元形成的单位突触中,其中该对的两个存储器单元中的每一者连接在字线对中的对应一者与共享位线之间。为了将二进制权重存储在单位突触上,例如,该对存储器单元中的一者被编程为高电阻状态并且另一者被编程为低电阻状态,使得在电压模式被施加到字线对时单位突触充当分压器。根据单位突触中的哪个存储器单元处于高电阻状态以及哪个存储器单元处于低电阻状态,单位突触将对应于-1权重值或+1权重值。然后将二进制输入作为电压模式施加在对应字线对上,其中字线对中的一个字线处于高电压电平,并且字线对中的另一个字线处于低电压电平,诸如地电位。根据字线对中的哪个字线处于何值,输入将为-1或+1输入。通过将输入施加到字线对,单位突触将充当分压器并且在共享位线上设定高电压电平或低电压电平,具体取决于输入和权重是否匹配。可由连接到对应位线的多级感测放大器或模数转换器(ADC)来确定结果。通过沿着位线相继遍历(working through)输入/单位突触对并累积感测放大器的结果,可以执行通过神经网络的层传播输入的乘法和累加操作。当阵列的字线跨越多个位线时,可针对多个单位突触的二进制权重同时执行操作。
该方法可以扩展到使用多位权重值以获得更高精度的实施方案。为了存储N位权重值,N位中的每个可以存储在沿着公共字线对连接的差分存储器单元中,但是每个位于单独的位线上。在推断操作中,通过字线对将输入施加到权重,并且在权重的差分存储器单元的位线上生成逐位输出。然后根据它们的重要性对输出进行加权,组合,并且组合输出由多位感测放大器或模数转换器确定。
图1是连接到主机120的存储器系统100的一个实施方案的框图。存储器系统100可实现本文提出的技术,其中从主机120接收神经网络输入或其他数据。根据实施方案,可从主机120接收输入,然后将该输入提供给存储器封装件104以用于对先前编程到存储器封装件104的存储器阵列中的权重进行推断。许多不同类型的存储器系统可与本文提出的技术一起使用。示例性存储器系统包括固态驱动器(“SSD”)、存储卡和嵌入式存储器设备;然而,也可以使用其他类型的存储器系统。
图1的存储器系统100包括控制器102,用于存储数据的非易失性存储器104,以及本地存储器(例如,DRAM/ReRAM)106。控制器102包括前端处理器(FEP)电路110和一个或多个后端处理器(BEP)电路112。在一个实施方案中,FEP电路110在ASIC上实现。在一个实施方案中,每个BEP电路112在单独ASIC上实现。在其他实施方案中,统一控制器ASIC可组合前端功能和后端功能两者。用于BEP电路112和FEP电路110中的每一者的ASIC在同一半导体上实现,使得控制器102被制造为片上系统(“SoC”)。FEP电路110和BEP电路112均包括其本身的处理器。在一个实施方案中,FEP电路110和BEP电路112用作主从配置,其中FEP电路110是主设备,并且每个BEP电路112是从设备。例如,FEP电路110实现闪存转换层(FTL)或媒体管理层(MML),该FTL或MML执行存储器管理(例如,垃圾收集、损耗均衡等)、逻辑到物理地址转换、与主机的通信、DRAM(本地易失性存储器)的管理以及SSD(或其他非易失性存储系统)的整体操作的管理。BEP电路112根据FEP电路110的请求来管理存储器封装件/管芯中的存储器操作。例如,BEP电路112可进行读取、擦除和编程过程。另外,BEP电路112可执行缓冲器管理,设置FEP电路110所需的特定电压电平,执行纠错(ECC),控制到存储器封装件的切换模式接口等。在一个实施方案中,每个BEP电路112负责其本身的一组存储器封装件。
在一个实施方案中,非易失性存储器104包括多个存储器封装件。每个存储器封装件包括一个或多个存储器管芯。因此,控制器102连接到一个或多个非易失性存储器管芯。在一个实施方案中,存储器封装件104中的每个存储器管芯利用NAND闪存存储器(包括二维NAND闪存存储器和/或三维NAND闪存存储器)。在其他实施方案中,存储器封装件可包括其他类型的存储器。
控制器102经由接口130与主机120通信,该接口通过PCI Express(PCIe)实现NVMExpress(NVMe)。为了与存储器系统100一起工作,主机120包括沿着总线128连接的主机处理器122、主机存储器124和PCIe接口126。主机存储器124是主机的物理存储器,并且可以是DRAM、SRAM、非易失性存储器或另一类型的存储装置。主机120在存储器系统100的外部并与该存储器系统分开。在一个实施方案中,存储器系统100嵌入在主机120中。
图2是FEP电路110的一个实施方案的框图。图2示出与主机120通信的PCIe接口150,以及与PCIe接口通信的主机处理器152。主机处理器152可以是本领域中已知的适用于实现的任何类型的处理器。主机处理器152与片上网络(NOC)154通信。NOC是集成电路上的通信子系统,通常在SoC中的核心之间。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了SoC的可扩展性以及复杂SoC的功效。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据包上同时运行,因此实现了高水平的并行性。因此,随着集成子系统的复杂性不断增长,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。连接到NOC 154并且与NOC 154通信的是存储器处理器156、SRAM 160和DRAM控制器162。DRAM控制器162用于操作DRAM(例如,DRAM 106)并且与该DRAM通信。SRAM160是由存储器处理器156使用的本地RAM存储器。存储器处理器156用于运行FEP电路并且执行各种存储器操作。与NOC通信的还有两个PCIe接口164和166。在图2的实施方案中,SSD控制器将包括两个BEP电路112;因此,存在两个PCIe接口164/166。每个PCIe接口与BEP电路112中的一个通信。在其他实施方案中,可存在多于或少于两个BEP电路112;因此,可存在多于两个PCIe接口。
FEP电路110还可包括闪存转换层(FTL),或更一般地,媒体管理层(MML)158,该FTL或MML执行存储器管理(例如,垃圾收集、损耗均衡、负载平衡等)、逻辑到物理地址转换、与主机的通信、DRAM(本地易失性存储器)的管理,以及SSD或其他非易失性存储系统的整体操作的管理。媒体管理层MML 158可被集成为可以处理存储器错误并与主机界面交互的存储器管理的一部分。具体地讲,MML可以是FEP电路110中的模块,并且可以负责存储器管理的内部。具体地讲,MML 158可包括存储器设备固件中的算法,该算法将来自主机的写入转换为对管芯的存储器结构(例如,下图5中的326)的写入。可能需要MML 158,因为:1)存储器可能具有有限的耐久性;2)该存储器结构可以只写入多个页面;和/或3)除非将存储器结构作为块擦除,否则可以不写入该存储器结构。MML 158理解存储器结构的这些潜在限制,这些限制可能对主机不可见。因此,MML158尝试将来自主机的写入转换为向存储器结构的写入。
图3是BEP电路112的一个实施方案的框图。图3示出用于与FEP电路110通信(例如,与图2的PCIe接口164和166中的一个通信)的PCIe接口200。PCIe接口200与两个NOC 202和204通信。在一个实施方案中,两个NOC可组合成一个大的NOC。每个NOC(202/204)通过XOR引擎(224/254)和ECC引擎(226/256)连接到SRAM(230/260)、缓冲器(232/262)、处理器(220/250)和数据路径控制器(222/252)。ECC引擎226/256用于执行纠错,如本领域所知。XOR引擎224/254用于对数据进行异或,使得可在存在编程错误的情况下以可恢复的方式组合和存储数据。数据路径控制器222连接到接口模块,以用于经由四个信道与存储器封装件进行通信。因此,顶部NOC 202与用于与存储器封装件通信的四个信道的接口228相关联,并且底部NOC 204与用于与存储器封装件通信的四个附加信道的接口258相关联。每个接口228/258包括四个切换模式接口(TM接口)、四个缓冲器和四个调度器。对于信道中的每个存在一个调度器、缓冲器和TM接口。处理器可以是本领域中已知的任何标准处理器。数据路径控制器222/252可以是处理器、FPGA、微处理器、或其他类型的控制器。XOR引擎224/254和ECC引擎226/256是专用的硬件电路,称为硬件加速器。在其他实施方案中,XOR引擎224/254和ECC引擎226/256可在软件中实现。调度器、缓冲器和TM接口是硬件电路。
图4是包括连接到存储器总线(数据线和芯片使能线)294的多个存储器管芯292的存储器封装件104的一个实施方案的框图。存储器总线294连接到切换模式接口296以用于与BEP电路112的TM接口进行通信(参见例如图3)。在一些实施方案中,存储器封装件可包括连接到存储器总线和TM接口的小控制器。存储器封装件可具有一个或多个存储器管芯。在一个实施方案中,每个存储器封装件包括八或16个存储器管芯;然而,也可以实现其他数量的存储器管芯。本文描述的技术不限于任何特定数量的存储器管芯。
图5是存储器管芯300的一个实施方案的功能框图。图5中描绘的部件为电子电路。在一个实施方案中,每个存储器管芯300包括存储器结构326、控制电路310,以及读/写电路328。存储器结构126能够经由行解码器324由字线来寻址,并且经由列解码器332由位线来寻址。读/写电路328包括多个感测块350并且允许存储器单元页面被并行读取或并行编程,该感测块包括SB1、SB2、…、SBp(感测电路)。命令和数据经由线路318在控制器与存储器管芯300之间传输。在一个实施方案中,存储器管芯300包括连接到线路318的一组输入和/或输出(I/O)引脚。
控制电路310与读/写电路328配合以在存储器结构326上执行存储器操作(例如,写入、读取等),并且包括状态机312、片上地址解码器314、以及功率控制电路316。状态机312提供存储器操作的管芯级控制。在一个实施方案中,状态机312可由软件编程。在其他实施方案中,状态机312不使用软件并且完全以硬件(例如,电子电路)实现。在另一个实施方案中,状态机312被微控制器替换。在一个实施方案中,控制电路310包括缓冲器,诸如寄存器、ROM熔丝和用于存储默认值(诸如基准电压和其他参数)的其他存储设备。
片上地址解码器314将控制器102使用的地址之间的地址接口提供给解码器324和解码器332所用的硬件地址。功率控制模块316控制在存储器操作期间提供给字线和位线的功率和电压。功率控制模块316可以包括用于产生电压的电荷泵。感测块包括位线驱动器。
出于本文档的目的,短语“一个或多个控制电路”可指控制器、状态机、微控制器和/或控制电路310、或用于控制非易失性存储器的其他类似电路。
在一个实施方案中,存储器结构326包括非易失性存储器单元的三维存储器阵列,其中多个存储器级形成在单个基板(诸如晶圆)上方。存储器结构可包括任何类型的非易失性存储器,该非易失性存储器在具有设置在硅(或其他类型的)基板上方的有源区域的存储器单元的一个或多个物理级中一体地形成。在一个示例中,非易失性存储器单元包括具有电荷俘获材料的竖直NAND串,诸如例如在美国专利9,721,662中所述的,该专利全文以引用方式并入本文。
在另一个实施方案中,存储器结构326包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮栅的NAND闪存存储器单元,诸如例如在美国专利9,082,502中所述的,该专利全文以引用方式并入本文。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。
包括在存储器结构326中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器技术可用于形成存储器结构326。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器结构326的存储器单元的合适技术的其他示例包括ReRAM存储器(电阻式随机存取存储器)、磁阻存储器(例如,MRAM、自旋转移扭矩MRAM、自旋轨道扭矩MRAM)、相变存储器(例如,PCM)等。用于存储器结构126的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等。
ReRAM或PCM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
磁阻存储器(MRAM)通过磁存储元件存储数据。元件由两个铁磁板形成,每个铁磁板可保持磁化,由薄的绝缘层隔开。两个板中的一个是设置为特定极性的永磁体;可以改变另一个板的磁化以匹配外磁场的磁化以存储内存。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。
相变存储器(PCM)利用了硫属化物玻璃的独特性能。一个实施方案使用GeTe-Sb2Te3超晶格以通过简单地用激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。在其他PCM实施方案中,存储器单元通过电流脉冲来编程。应当注意,在该文件中使用“脉冲”不需要矩形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。
本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构,但涵盖了在本文所述和如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。
现在转到可存储在非易失性存储器设备上的数据的类型,在以下讨论中感兴趣的数据类型的具体示例是在深度神经网络中使用的权重。人工神经网络由输入层与输出层之间的一个或多个中间层形成。神经网络找到了数学变换,该数学变换用以将输入转换为输出,遍历各层以计算每个输出的概率。图6示出了人工神经网络的简单示例。
在图6中,人工神经网络表示为由圆圈表示的节点或人工神经元的互连组,以及从一个人工神经元的输出到另一个人工神经元的输入的一组连接。该示例示出了三个输入节点(I1、I2、I3)和两个输出节点(O1、O2),以及具有四个隐藏或中间节点(H1、H2、H3、H4)的中间层。人工神经网络的节点或人工神经元/突触由主机或其他处理系统的逻辑元件实现为数学函数,该数学函数接收一个或多个输入并将它们进行求和以产生输出。通常,对每个输入进行单独加权,并将总和通过节点的数学函数传递以提供节点的输出。
在常见人工神经网络实施方式中,节点(人工神经元/突触)之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入之总和的一些非线性函数来计算。节点及其连接通常具有随着学习过程的进行而调节的权重。权重增大或减小连接处的信号强度。节点可具有阈值,使得仅当聚集信号超过该阈值时才发送信号。通常,节点聚集为层。不同的层可对其输入执行不同类型的转换。信号可能在多次遍历各层之后从第一层(输入层)行进到最后一层(输出层)。虽然图6仅示出单个中间层或隐藏层,但是复杂的深度神经网络(DNN)可具有许多此类中间层。
受监督的人工神经网络通过供应输入,然后检查和校正输出而被“训练”。例如,受过识别狗品种训练的神经网络将处理一组图像并计算图像中的狗是某一品种的概率。用户可查看结果并选择网络应显示哪些概率(高于特定阈值等),并返回所提议的标签。每一如此的数学变换都被视为一层,并且复杂的神经网络具有许多层。由于大量的中间层或隐藏层提供的深度,因此神经网络可以在受训练时对复杂的非线性关系建模。
图7A是描述用于训练神经网络以生成一组权重的方法的一个实施方案的流程图。训练过程往往在云端中执行,从而允许对所访问的内容进行额外或更强大的处理。在步骤701处,在输入节点处接收输入,诸如一组图像(例如,图6中的I1、I2、I3)。在步骤703处,使用当前权重组,通过将输入节点连接到下一层的节点(例如,图6中的H1、H2、H3、H4)的突触来传播输入。然后在步骤705中,在下一层节点(例如,图6中的H1、H2、H3、H4)处接收神经网络的输出,使得作为一层的输出接收到的值用作下一层的输入。来自第一层的输入以这种方式通过所有中间层或隐藏层传播,直到它们到达输出。在先前段落的狗品种示例中,输入将是许多狗的图像数据,并且中间层使用当前权重值来计算图像中的狗是特定品种的概率,以及将提议的狗品种标签在步骤705处返回。然后,用户可在步骤707处查看结果,以选择神经网络应返回哪些概率并确定当前权重组是否供应了足够准确的标签,并且如果是,则训练完成(步骤711)。如果结果不够准确,则神经网络基于用户所选择的概率而在步骤709处调节权重,然后循环返回到步骤703以使用经调节的权重再次运行输入数据。一旦已确定了神经网络的权重组,该权重就可用于“推断”,“推断”是使用所确定的权重来根据输入到神经网络的数据生成输出结果的过程。一旦在步骤711处确定权重,就可以将该权重存储在非易失性存储器中以供稍后使用,其中这些权重在非易失性存储器中的存储在下文中进一步详细讨论。
图7B是描述使用神经网络进行监督学习的推断阶段的方法的流程图,该方法使用估计的准确度来预测输入数据的“含义”。根据情况,神经网络可在云端中并且由边缘设备(例如,智能电话、汽车加工,硬件加速器)的处理器进行推断。在步骤721处,接收输入,诸如在上面使用的示例中的狗的图像。如果在运行神经网络应用程序的设备中不存在先前确定的权重,则在步骤722处加载该先前确定的权重。例如,在执行神经网络的主机处理器上,可从存储权重的SSD中读取权重,并加载到主机设备上的RAM中。在步骤723处,随后通过神经网络的层来传播输入数据。步骤723将类似于图7B的步骤703,但现在使用在步骤711处的训练过程结束时建立的权重。在通过中间层传播输入之后,然后在步骤725处提供输出。
神经网络的子组是前馈网络,在该前馈网络中数据从输入层通过中间层流到输出层,而不循环返回。首先,在如图7A所示的监督学习的训练阶段,神经网络创建虚拟神经元的映射并将随机数值或“权重”分配给它们之间的连接。将权重和输入相乘,并返回在0与1之间的输出。如果网络不能准确识别特定模式,则算法会调节权重。以这种方式,算法可以使某些参数更具影响力(通过增大对应的权重)或影响更小(通过减小权重),并相应地调节权重,直到其确定一组权重,该组权重提供足够正确的数学变换来完全处理数据。
图8是矩阵乘法在神经网络中的使用的示意图。矩阵乘法或MatMul是神经网络的训练阶段和推断阶段中常用的方法,并且用于机器学习的核方法中。图8的顶部类似于图6,其中在输入层与输出层之间仅示出单个隐藏层。输入数据被表示为长度与输入节点的数量对应的矢量。权重以权重矩阵表示,其中列的数量对应于隐藏层中的中间节点的数量,并且行的数量对应于输入节点的数量。输出是通过输入矢量与权重矩阵的矩阵乘法而确定的,其中输出矢量的每个要素是输入数据的矢量与权重矩阵的列的点积。
用于执行矩阵乘法的常用技术是使用乘法器-累加器(MAC,或MAC单元)。然而,这有许多问题。重新参见图7B,推断阶段在步骤722处加载神经网络权重,然后在步骤723处通过传播来执行矩阵乘法。然而,由于所涉及的数据量可能非常大,因此使用乘法器-累加器进行推断会产生与权重加载相关的几个问题。这些问题中的一个问题是由于必须使用具有所需分辨率的大MAC阵列而引起的高能量耗散。另一个问题是由于MAC阵列的大小有限而导致的高能量耗散,从而导致逻辑与存储器之间的大量数据移动以及可比逻辑计算本身中使用的能量耗散高得多的能量耗散。
为了帮助避免这些限制,可以使用其他存储器技术来替代乘法器-累加器阵列的使用。例如,可以通过利用存储级存储器(SCM)(诸如基于以下存储器单元的那些存储器:基于ReRAM的存储器单元、基于PCM的存储器单元或基于MRAM的存储器单元)的特性而在存储器阵列内计算矩阵乘法。这允许经由读取命令来提供神经网络输入,并且允许预加载神经权重以用于推断。通过使用内存计算,这可以解除对在MAC阵列中执行矩阵乘法的逻辑需要以及在存储器与MAC阵列之间移动数据的需要。
下文考虑了基于非易失性存储器阵列结构的实施方案,其中电阻式存储器单元(诸如ReRAM、MRAM或PCM存储器单元)的对各自连接到公共位线,但连接到不同字线。存储器单元的差分对形成单位突触,每一对均存储神经网络权重。通过将一层作为差分电压输入的神经网络输入的输入施加到字线对,可以在阵列内同时确定输入值与在沿着字线对连接的差分存储器单元对的对应单位突触中存储的所有权重的乘法。通过累加阵列的不同字线对的结果,可在阵列内执行输入矢量和权重矩阵的矩阵乘法。以下讨论主要考虑二进制神经网络实施方案,这些二进制神经网络实施方案首先讨论,但也可扩展到更一般的实施方案。
可用于降低推断过程的计算复杂度的技术是使用二值化神经网络(BNN),其中神经网络使用二进制权重和激活来工作。BNN(也称为XNOR网络)使用“二进制”输入{-1,1}和“二进制”权重{-1,1}来计算矩阵矢量乘法。图9是示出响应于不同输入-权重组合的二进制神经网络的输出的表格。如最右列中所示,当输入和权重匹配时,输出为1;并且当输入和权重不同时,输出为-1。
当以二进制存储器单元格式存储二进制权重时,如果-1和+1权重分别被存储为非编程和编程的存储器单元,则非编程的权重(-1)将具有对于低读取电平(诸如地电位)或高读取电平的低输出。因此,仅图9的表格中的+1权重条目将正确地读取。要生成-1权重电平的正确响应,则需要将这些权重电平单独地存储并以互补方式存储为负权重。在存储二进制权重的先前方法中,已将权重和负权重存储在单独的阵列中或沿着阵列的不同位线存储。这需要两个单独的读取操作,一个读取操作用于-1权重,另一个读取操作用于+1权重,其中可组合两个读取结果以确定与图9的表格相对应的全部结果。为了改进该情况,图10至图14示出了用于在非易失性存储器阵列中实现具有二进制输入和二进制权重的神经网络的实施方案,该非易失性存储器阵列使用存储权重的一对存储器单元将权重存储在差分存储器单元结构中,从而允许在单次读取操作中读取任一权重值。
图10表示其中使用两个差分存储器单元来形成用于存储权重位W的单位突触的实施方案。在所示实施方案中,单位突触的两个存储器单元RA和RB是电阻式存储器单元,诸如基于ReRAM、MRAM或PCM的存储器单元,其中互补电阻级别各自连接在对应字线WL、WLB与共享位线之间。输入或神经元值IN被施加到WL、WLB的字线对或差分字线。于是输出O是输入IN和与位线BL上的电平相对应的权重W的乘积。
图11示出了分别作为字线电压、电阻值和位线电压的输入值、权重值和输出值的编码。对于输入值IN,+1输入对应于施加到WL的高电压电平V(例如,几伏或几十伏)和施加到WLB的低电压电平(诸如地电位或0)。IN=-1的输入对应于施加到WL的低电压电平0和施加到WLB的高电压电平V。因此,如图11的前三列中所示,+1神经元呈现为(WL,WLB)上的(V,0)并且-1神经元呈现为(0,V)。
对于权重值W,+1权重对应于RA的低电阻状态(LRS)和RB的高电阻状态(HRS)。W=+1权重的权重值对应于RA的高电阻状态(HRS)和RB的低电阻状态(LRS),如图11的第4、第5和第6列中表示。当输入电压模式被施加到字线对(WL,WLB)时,单位突触充当分压器,其输出是位线BL上的电压VO且输出值为O=IN*W,如可参照图12A至图12D示出。
图12A至图12D分别对应于在图11的四行中示出的四种情况。在图12A中,与(WL,WLB)=(0,V)相对应的IN=-1的输入被施加到与(RA,RB)=(LRS,HRS)相对应的W=+1的权重。于是位线上的所得电压为:
VO=VBL=V(RL/(RL+RH))=VL
其中VL对应于O=-1的输出。在图12B中,与(WL,WLB)=(V,0)相对应的IN=+1的输入被施加到W=+1的权重,其中位线上的所得电压为:
VO=VBL=V(RH/(RL+RH))=VH
其中VH对应于O=+1的输出。图12C和图12D类似地表示W=-1情况的相应IN=-1和IN=+1,其中位线BL上的相应输出为VO=VH(O=+1)和VO=VL(O=-1)。
如图12A至图12D所示,具有单位突触的互补电阻值的存储器单元的差分对形成分压器,使得位线BL电压对应于输出值(+1,-1)。字线电压模式和电阻状态的差分表示与图11的真值表完全匹配,从而在单次阵列内感测操作中生成O=IN*W。
单位突触的电阻式存储器单元可以以多种不同形式实现,其中一些形式在图13A至图13C中示出。图13A示出了用于电阻式存储器单元的1晶体管、1电阻器(1T1R)实施方案,其中电阻器和晶体管串联连接。图13A(和图13B和图13C)中的电阻器部分可使用ReRAM、MRAM、PCM或其他具有可编程电阻的材料来实现。当晶体管断开时,存储器单元将不导通;并且当晶体管接通时,存储器单元的电阻级别基于编程到可编程电阻材料中的电阻级别。图13B示出了其中存储器单元包括与1电阻器串联的1开关(1S1R)的实施方案,其中例如电阻器可以实现为相变材料并且开关是双向阈值开关(OTS)。图13C示出了其中该单元是单电阻器(1R)实施方案的实施方案。
如在1T1R和1S1R实施方案中包含与电阻并联的晶体管或开关(这允许存储器单元切断)在特定情况下可为有用的,诸如促进存储器阵列的编程。虽然此处给出的结构可用于操作神经网络的训练阶段(涉及存储器单元的编程),但下文的重点将为先前已将权重写入到存储器阵列中的推断,并且基于用于单位突触的存储器单元的1R实施方案。
图14示出了图10的单位突触并入阵列中,诸如在图5的存储器结构326中。图14示出了可大得多的小部分(四个字线对和两个位线)。更具体地,示出了延伸跨过N个位线的四个字线对(WL1,WLB1;WL2,WLB2;WL3,WLB3;WL4,WLB4),其中仅示出了BL1和BL4,并且其中该数量的字线对可扩展到跨越该阵列的位线的大得多的数量的此类对。虽然(WL,WLB)对的字线在图14的实施方案中被示出为相邻的,但其他实施方案不一定如此。该阵列可布置在图14所表示的二维结构中或使用三维架构,下文将参照图20和图21讨论三维架构的一些示例。根据该实施方案,单个存储器集成电路可具有形成于其上的一个或多个此类阵列。
在每个字线对(WLi,WBLi)与位线BLj的交点处是存储权重Wi,j的单位突触,其中单位突触的一个电阻式存储器单元连接在WLi和BLj之间并且单位突触的另一个电阻式存储器单元连接在WLBi和BLj之间以提供差分存储器单元结构。当存储二进制权重时,电阻器中的一者将被编程为高电阻状态,另一者将被编程为低电阻状态。字线解码器1401基于接收到的输入而将差分电压模式施加到字线对,这些接收到的输入被转换成(V,0)的+1模式或(0,V)的-1模式。由于字线对跨越阵列的位线,因此施加到(WL1,WLB1)的输入例如将同时施加到沿着该字线对的所有权重W1,j。这允许输入Input1与沿着字线对(WL1,WLB1)的所有权重W1,j的并发乘法,其中每个乘法的输出对应于对应位线BLj上的电压电平。
可由感测放大器SA/ADC 1403j确定每个位线BLj上的输出电平。对于单一二进制输入施加到二进制权重的情况(如迄今为止已讨论的),感测放大器SA/ADC 1403j仅需要区分与+1输出相对应的VH状态和与-1输出相对应的VL状态。对于同时施加多个输入、使用多位权重或两者兼有的实施方案(如下所述),感测放大器1403j可为能够区分多位输出的多位感测放大器或ADC。对于多位感测,可根据该实施方案同时或相继感测不同电平,如下文参照图16和图19所讨论。
输入施加到权重阵列实现了阵列内乘法运算,其结果由沿着位线BLj的感测放大器SA/ADC 1403j确定。为了执行乘法和累加操作的累加阶段,感测放大器1403j中的每个可连接到对应数字求和电路DSCj 1405j以提供与上文参照图8所述的矩阵乘法相对应的累加的输出Oj。数字求和电路可在存储器电路上实现,或在其他实施方案中在存储器电路之外(诸如在控制器102上,图1)实现,使得求和电路可累加来自不同存储器阵列的总和。图15使神经网络的矩阵乘法与图14的结构更密切相关。
图15示出了神经网络及其通过差分存储器单元阵列进行的实施方式的示例。在上文参照图14所述的方法中,基于位线上的电压电平来确定对沿着每个位线的一个单位突触的输入的响应。可由感测放大器相继地对不同输入确定沿着位线的每个突触的贡献,并且进行累加。在一些实施方案中,可同时施加多个输入。
图15的示例示出了三个完全连接的层,每个层有四个节点(对应于层的神经元),使得层之间的权重矩阵为4×4矩阵。在图25中,来自节点的输入被标记为INl,i,其中l为层索引,并且i为神经元索引。在图15的示例中,示出了三个层,l=(0,1,2),并且每个层均具有四个节点,i=(1,2,3,4)。于是连接各层的权重矩阵Wl,i,j(其条目对应于突触)是4×4矩阵,其中用于根据一个层到下一个层的输入来形成点积的矩阵乘法是:
INl+1,j=Ol,j=Σi INl,i*Wl,i,j, (等式1)
其中总和是对索引i进行的。将一个层的输入作为字线对上的电压模式施加到单位突触以生成点积值,继而作为下一层的输入。
如上所讨论,图14是这些权重矩阵如何存储在阵列的单位突触中以用于矩阵乘法的阵列内计算的示意图。将一对层之间的权重矩阵存储在沿着多个位线的多个单位突触中,其中每个位线的单位突触的数量和位线的数量对应于权重矩阵的大小。在图14的示例中,4×4权重矩阵将对应于沿着4个位线中的每个位线的4个单位突触。如图14中所表示,这些单位突触可为位线BL1-BL4上的4个相邻单位突触(其中仅示出了BL1和BL4),但这些单位突触可根据该实施方案以不同方式分布在整个阵列中。
相对于图15的表示,权重矩阵以转置形式存储在阵列上。例如,沿着第一位线BL1来存储从图15的第一层的不同输入进入第二层的顶部节点1501中的权重;并且沿着第四位线BL4来存储进入底部节点1503中的权重。
为了计算矩阵乘法的不同点积(以上等式1中对i的总和),可以以读取命令序列来提供数据输入。为了计算单个层的输出,然后在该示例中在以下四个循环内,由感测放大器相继读取权重的各页:
循环1:实现IN0,1*W0,1,1;
循环2:实现IN0,2*W0,1,2;
循环3:实现IN0,3*W0,1,3;以及
循环4:实现IN0,4*W0,1,4,
其中每个循环对应于下图16的流程中的环路,并且可以在不同的实施方案中使用不同的感测顺序。由每个位线BLj上的感测放大器SA/ADC 1403j感测这些循环的结果,并且在DSC 1405j中进行累加。然后,来自每个位线的输出Ol,j将是网络的下一层的输入INl+1,j
图16是如对图15的神经网络层和图14的阵列架构示意性地描述,在推断中使用二进制神经网络进行矩阵乘法或点积计算的一个实施方案的流程图。在步骤1601处开始并且参见图14,存储器阵列在字线解码器1401处接收输入Inputi,并将该输入转换为具有与-1或+1输入值相对应的电压值的模式,如图11的表格中表示。步骤1603将电压电平施加到与选定权重的单位突触相对应的选定字线对(WLi,WLBi)。由于字线跨越阵列的位线,因此可以对沿着字线对(WLi,WLBi)连接的任何单位突触同时执行图16的方法。另外,在步骤1605处,在阵列结构中,将沿着阵列的位线的非选定字线对上的单位突触偏置为对输出没有贡献,诸如使非选定字线对的两个字线浮动。尽管在图16中列出为一组有序的单独步骤,但步骤1603和1605通常由字线解码器1401同时执行。
步骤1607确定选定单位突触的存储器单元的响应。如图11的表格中所示,单位突触的位线上的电压电平对应于响应于输入的单位突触的输出逻辑值,并且可由对应位线BLj上的感测放大器SA/ADC 1403j来确定。基于单位突触的状态,在步骤1609处,可基于输出Oj来递增或递减对应DSC 1405j的计数值,如上文参照图11的表格所讨论。
步骤1611确定是否有更多输入权重对要添加至矩阵乘法或点积,如果是,则流程循环返回到步骤1601。一旦已确定了所有输入权重对对点积的贡献,则可在步骤1613处提供点积。然后,在步骤1613处确定的该组点积可用作后续神经网络层的输入或作为来自推断过程的最后一层的输出。
图16的流程一次施加一个输入到权重阵列,从而对单独输入的输出进行加总以完成矩阵乘法。对于其中SA/ADC 1403j的多位感测放大器可用的图14的实施方案,可将多个输入同时施加到字线对。于是位线上的电压电平将反映来自输入-权重积的加总输出,从而提高并行性级别并随之提高性能。同时成功施加的输入的数量将取决于SA/ADC 1403j可提供的模数转换的分辨率水平,其中如果足够的分辨率可用,则可在一次操作中计算沿着位线的所有单位突触的整列。可参考图17示出多个输入感测操作。
图17示出了用于并发多输入阵列内矩阵乘法运算的等效分压器。第一等效电阻Req1连接在高输入电压电平V与共享位线之间,并且第二等效电阻Req2连接在低输入电压电平0与共享位线之间。位线上的Vout电平将为:
Figure BDA0002131043120000181
如果N为输入的数量,诸如位线的全长或某个子集,则令A为+1输出的数量且B为-1输出的数量,于是N=A+B并且:
Figure BDA0002131043120000182
使用Req1和Req2的这些表达式给出:
Figure BDA0002131043120000184
Figure BDA0002131043120000191
该等式展示了权重位串遵循分压器规则并且输出电压Vout线性地对应于输出求和代码(A-B),如图18所示。Vout电平的范围仅微弱地依赖于RH和RL值的绝对值。举一个实施方案来说,可使用V=0.5V、RL=10K以及RH=100K的值,并且多状态感测放大器的3位ADC允许50mV步长大小。
图18示出了如位线上所见的输出电压Vout与多个输入权重积的并发感测中确定的求和代码(A-B)(对应于+1输出的数量减去-1输出的数量)之间的关系。如图18中所见,输出电压随差值(A-B)线性地上升,使得多位感测放大器可将输出电压转换为对应矩阵乘法值。
图19是与图16类似地执行但结合了同时施加多个输入的并行性的点积计算的一个实施方案的流程图。相对于步骤1601,步骤1901处对每个位线上的权重的并行感测现在可以在每个环路中同时施加多个输入。在步骤1903处,感测放大器的输出现在是多位值,而不是步骤1603的二进制值,并且对应于沿着位线贡献高输出的单位突触的数量减去贡献低输出的单位突触的数量。然后在步骤1905处累加多位值。随后流程在步骤1907处确定是否有更多输入,如果是,则循环返回到步骤1901。一旦已确定所有输入权重组合,则流程就从步骤1907前进到步骤1909,从而将累加的计数提供为矩阵乘法的结果。
由存储器单元的差分对形成的单位突触的读取过程(不论如图16中那样一次仅选择单个字线对,还是如图19中那样同时选择多个字线对)不同于标准读取操作。在目的为确定存储在存储器单元中的数据状态的标准读取操作中,基于单个选定存储器单元的状态,由感测放大器基于沿着位线的电流或电压电平来进行确定。当同时感测到沿着公共位线的多个单元时,不可能确定单独存储器单元的电阻级别并建立它们的对应数据状态。然而,对于来自矩阵乘法的求和电路的输出,其只是所期望的来自单位突触的输出的累积和的总和,而不是单独突触中的哪一个作出贡献。因此,如果感测放大器放大器能够确定导通突触的数量,则可以同时确定字线对上的多个单位突触响应于对应的一组输入的响应,从而增加并行性。通过结合多位感测放大器,图14的实施方案允许并行地感测沿着公共位线的多个单位突触。
除了将多个输入同时施加到权重阵列之外,还可通过并行地操作多个阵列来增加并行性。多个阵列可形成在相同存储器芯片上或遍布于多个存储器芯片中。根据该实施方案,与神经网络的不同层相对应的权重可存储在相同阵列中或不同阵列中,其中将不同阵列用于不同层可允许流水线化,其中一个层/阵列的输出可用作下一个层/阵列的输入。
重新参见图14,这表示用于将权重存储在二维结构中的差分存储器阵列。相同差分拓扑还可使用三维结构,诸如如图20中表示的差分交叉点(DX)忆阻器阵列或如图21中表示的扩展的三维架构。
图20描绘了形成差分交叉点(DX)架构的单片三维存储器阵列2001的一部分的一个实施方案,其包括定位在第一存储器级2018上方的第二存储器级2020。存储器阵列2001是图5中的存储器阵列326的实施方式的一个示例。位线BL1-BL5沿第一方向(表示为进入页面)布置,并且字线WL1-WL4和WLB1-WLB4沿与第一方向垂直的第二方向布置。图20是水平交叉点结构的示例,其中字线WL1-WL4和WLB1-WLB4及BL1-BL5均沿相对于基板的水平方向运行,而存储器单元2000被取向成使得电流沿竖直方向运行。如所描绘的,第一存储器级2018的上部导体可用作定位在第一存储器级上方的第二存储器级2020的下部导体。在具有存储器单元的附加层的存储器阵列中,将存在位线和字线的对应附加层。
如图20中所描绘,存储器阵列2001包括多个存储器单元2000。存储器单元2000可包括可重写的存储器单元,诸如可使用ReRAM、MRAM、PCM或其他具有可编程电阻的材料来实现。就第一存储器级2018而言,存储器单元2000的第一部分介于位线BL1-BL5和字线WL1-WL4之间并且连接到位线BL1-BL5和字线WL1-WL4。就第二存储器级2020而言,存储器单元2000的第二部分介于位线BL1-BL5和字线WLB1-WLB4之间并且连接到位线BL1-BL5和字线WLB1-WLB4。如参照图13A至图13C所讨论,在一个实施方案中,每个存储器单元包括选择开关或导引元件(例如,双向阈值开关或二极管)和存储器元件(即,相变存储器元件)。在一个示例中,第一存储器级2018的存储器单元中的电流可如箭头A1所指示的那样向上流动,而在第二存储器级2020的存储器单元中流动的电流可如箭头A2所指示的那样向下流动,或反之亦然。在另一个实施方案中,每个存储器单元包括状态改变元件,并且不包括选择开关元件。存储器单元中不存在选择开关(或其他导引元件)可降低与制造存储器阵列相关联的过程复杂性和成本。
在图20的交叉点结构中,单位突触的差分存储器单元可由来自层2020的一个存储器单元(其连接在字线WL1-WL4之一与位线BL1-BL5之一之间)和来自层2018的一个存储器单元(其连接在WLB1-WLB4与位线BL1-BL5中的同一者之间)形成。例如,存储器单元2000A(其连接在WL1和BL1之间且具有电阻级别RA)和存储器单元2000B(其连接在WLB1和BL1之间且具有电阻级别RB)的组合可形成单位突触,可形成如图10中表示的单位突触。虽然该示例由交叉点结构中的直接相对的存储器单元形成,但可更一般地使用沿着共享位线的其他存储器单元对。
图21描绘了单片三维存储器阵列2116的一部分的一个实施方案,其包括定位在第二存储器级2110下方的第一存储器级2112。图21的架构提供了可用于存储神经网络权重(在这种情况下使用扩展的三维结构来存储神经网络权重)的实施方案的另一个示例。存储器阵列2116是图5中的存储器阵列326的实施方式的一个示例。如所描绘的,局部位线LBL11-LBL33沿第一方向(即,竖直方向)布置,并且字线WL10-WL23沿与第一方向垂直的第二方向布置。单片三维存储器阵列中的竖直位线的该布置是竖直位线存储器阵列的一个实施方案。如所描绘的,设置在每个局部位线与每个字线的交点之间的是特定存储器单元(例如,存储器单元M111设置在局部位线LBL11与字线WL10之间)。该结构可与多个不同存储器单元结构一起使用。在一个示例中,特定存储器单元可包括浮栅设备或电荷俘获设备(例如,使用氮化硅材料)。在另一个示例中,特定存储器单元可包括可逆电阻切换材料、金属氧化物、相变存储器材料、ReRAM材料、MRAM材料或PCM材料。全局位线GBL1-GBL3沿与第一方向和第二方向两者垂直的第三方向布置。一组位线选择设备(例如,Q11-Q31)诸如竖直薄膜晶体管(VTFT)可用于选择一组局部位线(例如,LBL11-LBL31)。如所描绘的,位线选择设备Q11-Q31用于选择局部位线LBL11-LBL31并且使用行选择线SG1将局部位线LBL11-LBL31连接到全局位线GBL1-GBL3。类似地,位线选择设备Q12-Q32用于使用行选择线SG2将局部位线LBL12-LBL32选择性地连接到全局位线GBL1-GBL3,并且位线选择设备Q13-Q33用于使用行选择线SG3将局部位线LBL13-LBL33选择性地连接到全局位线GBL1-GBL3
在图21的实施方案中,单位突触可由连接在共享位线与每个对应字线对中的一个字线之间的存储器单元的差分对形成。例如,单位突触可由连接在WL20与LBL11之间的存储器单元(如左上方)M211和连接在WL21与LBL11之间的M212的差分对形成。
迄今为止的讨论已考虑了输入和权重两者均为二进制值的二进制神经网络,但差分存储器单元结构的使用可更一般地应用。例如,多个差分存储器单元可用于存储多位权重值。在其他实施方案中,可通过使用多级单元、多级输入电压或两者来扩充该技术。
在多级单元实施方案中,图10的单位突触的存储器单元中的每个可以以多级格式存储数据,并且具有用于电阻级别RA和RB的多于两个值。在差分2位多级单元实施方案中,例如,RA可为值{-1,-0.5,0.5,1}中的一个值,并且RB为{1,0.5,-0.5,-1}的互补值。其他实施方案对于差分存储器单元对的每个单位突触可存储多个位,或甚至将数据存储为电阻级别的连续范围。多级单元实施方案的使用可实现具有更高准确度的神经网络,但代价是更为复杂且读取容限受到读取电压和ADC分辨率的限制。
参照图22至图27更详细地描述了使用多个差分存储器单元来存储多位权重值。在一组实施方案中,为了存储N位权重值,使用沿着相同字线对连接的图10的差分存储器单元结构的N个副本,每个副本存储多位权重值的一个位并且每个副本连接到不同的位线。当将差分输入施加到字线对时,来自差分存储器单元中的每个的位线上的输出将从矩阵乘法给出对应的位。然后可以根据不同输出表示和组合的位的重要性来对它们进行加权。与上述二进制情况一样,可以累积来自多个输入的结果以执行矩阵乘法运算。尽管以下讨论主要在使用电阻性存储器单元的差分存储器单元结构的上下文中呈现,但是可以更一般地应用,诸如基于包括两个或更多个存储器单元的NAND结构的可编程阈值设备的实施方案。图22示出了更一般的布置的示例。
图22是将多位权重存储在非易失性阵列中以用于阵列内推断操作的示意图。更具体地讲,图22示出了作为矩阵乘法的一部分应用于一组多位权重的一个输入,诸如差分字线对,其中示出了N位的两个权重(W1和Wj)。通过沿着阵列的行放置由非易失性存储器单元形成的多个二进制单位突触,可以以更高的精度表示权重。例如,W1的N位在最高有效位(上标位N)到最低有效位(上标位1)的顺序中标记为(WN 1,…,W2 1,W1 1)并且表示为按该顺序沿着位线布置,但是其他实施方案可不同地布置权重和权重的各个位,诸如交织来自不同权重的位。在下文中,存储单元将指代存储N位权重的一组多个存储元件,位中的每个存储在二进制存储元件中。另外,如图10所示,基于差分存储器单元的实施方案的权重的输入线对应于在其上施加差分输入的一对字线。
当将输入In施加到权重行时,来自位线(BLN 1,…,BL2 1,BL1 1)中的每一个位线的输出(ON 1,…,O2 1,O1 1)根据存储在加权和求和电路22071处的位的重要性进行加权。根据实施方案,感测可以是基于电压的或基于电流的。然后,加权和组合输出O1可由多位感测放大器或模数转换器SA/ADC22031来感测。基于计数器的数字求和电路DSC1 14051可以使用多状态感测放大器来累加输入加权乘法运算,如在二进制情况中那样。
为了使用二进制非易失性存储器单元实现N位精度权重,相对于二进制权重示例的改变仅仅是将列/位线的数量增加N倍并且在位线的末端添加二进制加权求和元素(图22的2207)。其他外围电路(即,写入驱动器/解码器,读取相关电路,ADC)可以保持不变。以下的主要讨论基于差分存储器单元阵列和基于电压的输出值,如图14的二进制阵列,但是可应用于参照图22示出的更一般的情况。
图23示出了图10的单位突触并入用于多位权重实施方案的阵列中。图23示出了3位实施方案并且在很大程度上重复图14的元素,但是将二进制单位突触和图14的其他元素分组成三组,以用于存储3位权重值并添加加权和求和部分。
更具体地讲,字线解码器2301接收一组一个或多个输入并将这些输入转换成要施加到差分字线对的电压模式,诸如(WL1,WLB1)。这可以是二进制输入,或者更一般地,是其他差分输入。在图23中仅针对每个差分字线对示出了单个3位权重,但是典型实施方案将包括更多此类权重。专注于权重W11,其最高有效位W3 11沿着BL3 1连接,其第二位W2 11沿着BL2 1连接,并且其最低有效位W1 11沿着BL1 1连接。当将Input1施加到权重W11作为矩阵乘法运算的一部分时,位线BL3 1、BL2 1和BL1 1分别将具有输出电压电平Vout 3 1、Vout 2 1和Vout 1 1。电压输出电平Vout 3 1、Vout 2 1和Vout 1 1然后基于其重要性等级进行加权,并且由22071组合以提供对应于In1*W11的多位输出O1。感测放大器或ADC SA/ADC 23031感测多位输出O1的电平,然后结果在DSC 23051中开始累加。多位感测和累加可类似于沿着相同位线感测多个突触来实现,如参照图18所描述的。尽管图23示出了每字线对仅一个多位权重,但是可以对沿着字线对连接的一些或所有权重同时执行感测操作。
图24是基于图23的阵列架构在推断期间使用多位权重的矩阵乘法或点积计算的一个实施方案的流程图,扩展图16的方法以包括多位权重。从步骤2401开始,存储器阵列在字线解码器2301处接收输入并将其转换为电压值的模式。对于二进制输入,这可以再次对应于-1或+1输入值,如图11的表中所表示的。步骤2403将电压电平施加到与选定多位权重的单位突触相对应的选定字线对(WLi,WLBi)。由于字线跨越阵列的位线,因此可以对沿着字线对(WLi,WLBi)连接的权重中的任一个同时执行图24的方法。另外,在步骤2405处,在阵列结构中,将沿着阵列的位线的非选定字线对上的单位突触偏置为对输出没有贡献,诸如将非选定字线对的两个字线设置为浮动。尽管在图24中列出为一组有序的单独步骤,但步骤2403和2405通常由字线解码器2301同时执行。
响应于输入在步骤2407处生成来自权重的位中的每个的输出。在图23的基于电压的确定中,这对应于相应位线BL3 1、BL2 1和BL1 1上的电压输出电平Vout 3 1、Vout 2 1和Vout 1 1。然后,对来自各个位的贡献进行加权并在元素23071中组合,然后提供给SA 23031,以响应于步骤2409处的输入确定权重的多位输出。基于权重的状态,在步骤2411处,基于多位输出Oj来递增或递减对应DSC 2305j的计数值。
步骤2413确定是否有更多输入权重对要添加至矩阵乘法或点积,如果是,则流程循环返回到步骤2401。一旦已确定了所有输入权重对对点积的贡献,则可在步骤2415处提供点积。然后,在步骤2415处确定的该组点积可用作后续神经网络层的输入或作为来自推断过程的最后一层的输出。
如参照图23和图24所示,图10的多个二进制单位突触的组合允许存储器阵列存储具有较高精度的权重,无论是针对所示的3位实施方案,针对2位实施方案,还是针对更高位实施方案。相对于输入值,这些可以再次为二进制输入,诸如参照图11的表或更一般的差分输入所示。尽管图23的实施方案基于差分存储器单元突触结构,但是图24的方法类似地适用于图22中表示的更一般情况,其中其他突触单元结构具有输入矢量-权重矩阵乘法的基于电压或基于电流的输出。
与二进制权重的情况一样,可以同时向阵列施加多个输入以增加并行度,其中位线上的组合输出是对所施加的输入的输入矢量-权重矩阵乘法的结果的逐位相加。图25的流程将图24的流程扩展到多个并发输入实施方案,并且还对应于图19的流程的多位权重扩展。
图25是与图24类似地执行但结合了同时向多位权重施加多个输入的并行性的点积计算的一个实施方案的流程图。相对于步骤2401,步骤2501的并行感测现在可以在每个环路中同时施加多个输入。在步骤2503处,确定沿着不同字线的逐位输出。例如,重新参见图23,如果Input1、Input2、Input3和Input4同时施加,则位线BL3 1将包括最高有效位W4 11、W4 12、W4 13和W4 14的贡献。然后在步骤2505处对这些逐位贡献进行加权,组合,并提供给感测放大器。
在步骤2507处,由感测放大器或ADC 23031确定的输出现在是多位值,并且对应于所有当前施加的输入与多位权重的组合乘积。在步骤2509处累加多位值。随后流程在步骤2511处确定是否有更多输入,如果是,则循环返回到步骤2501。一旦已确定所有输入/权重组合,则流程就从步骤2511前进到步骤2513,从而将累加的计数提供为矩阵乘法的结果。
重新参见图22和图23,这些包括加权和求和电路2207j和2307j,以用于根据它们的重要性对不同位线上的输出电平进行加权并组合结果。图26示出了用于基于电压的求和的这样的电路的实施方案,并且图27示出了用于基于电流的求和的这样的电路。
图26示出了图23的二进制加权和求和电路23071电路的实施方案,该电路可用于加权和组合图23的阵列内矩阵乘法运算的逐位输出。对于3位实施方案,相应位线BL3 1、BL2 1和BL1 1上的电压输出电平Vout 3 1、Vout 2 1和Vout 1 1各自通过对应电阻器2615、2613和2611提供。选择电阻器2615、2613和2611的相对值以基于它们的相关性对输入进行加权,其中如果2611具有值R,则2613是R/2并且2615是R/4。更一般地,通过具有值R/2(i-1)的电阻,将提供具有重要性i的每个位。
将加权的输出电压提供给求和放大器2601的–输入,其还在+输入处接收参考电压Vcm。具有基本电阻值R 2603的反馈回路将求和放大器2601的输出连接回–输入,并且求和放大器2601的输出通过电阻R 2605提供加权和求和输出Vout1。来自图26的加权和求和电路2307的所得输出是:
Vout1=Vcm-(4*Vout 3 1+2*Vout 2 1+1*Vout 1 1)。
再次参见图23,来自23071的Vout1然后是多位感测放大器SA 23071的输入。
上面的讨论主要是相对于输出的基于电压的确定来描述的,其中加权和求和电路23071的实施方案在图26中呈现。其他实施方案可使用输出的基于电流的确定,其中基于电流的加权和求和电路23071的实施方案在图27中呈现。
图27是可用于实现图23的元素23071的基于电流的加权和求和电路的一个实施方案的示意图。图27的实施方案包括一组多电流镜27401 1、27402 1和27403 1,其被配置为对与权重W11和求和电流镜27401的不同位相对应的输出进行加权,以对这些结果求和。第一多电流镜27401 1、第二多电流镜27402 1和第三多电流镜27403 1各自接收来自图23的位线BL1 1、BL2 1和BL3 1中的对应一者的电流。
第一多电流镜27401 1具有晶体管T1和T2,第二电流镜27402具有晶体管T3和T4,第三电流镜27403 1具有晶体管T5和T6,并且求和电流镜27401具有晶体管T7和T8。在图27的实施方案中,通过多电流镜中的每个中的成对晶体管的相对尺寸来实现不同输入的加权以考虑它们的相对重要性。采用具有宽长比Wn/L的NMOS晶体管T1,多电流镜的其他晶体管可以使其晶体管相对于T1设计尺寸。为了在第一多电流镜27401 1中提供1:1的比率,晶体管T2的尺寸被设计为与T1相同,即Wn/L。为了为第二电流镜27402提供2:1电流比,晶体管T3的尺寸可以再次被设计为Wn/L,并且晶体管T4的尺寸可被设计为2Wn/L。类似地,第三电流镜27403 1可将晶体管T5的尺寸设计为Wn/L,并且将晶体管T6的尺寸设为4Wn/L,以提供4:1电流比。更一般地,如果包括更高重要性的位,则对于具有重要性i的位,镜像晶体管之间的宽长比的比率将是2(i-1)Wn/L至Wn/L。
为了执行来自多电流镜27401 1、27402 1和27403 1的加权电流的求和运算,求和电流镜27401的PMOS晶体管T7共同向T2、T4和T6提供电流,使得通过T7的电流是加权电流的总和:4*Iout 3 1+2*Iout 2 1+1*Iout 1 1。PMOS晶体管T7是二极管连接的并且其控制栅极与电流镜装置中的PMOS晶体管T8的控制栅极共同连接。通过晶体管T8的输出电流Iout将与通过晶体管T7的电流成比例,其中比例将基于它们的相对尺寸并且可以根据感测放大器23051的特性来选择。例如,如果T7和T8的尺寸均被设计为Wp/L,则Iout1=4*Iout 3 1+2*Iout 2 1+1*Iout 1 1
一旦对应于权重的不同位的电流被加权和组合,则可以将组合的电流电平提供给基于多位电流的感测放大器SA 23051,以确定其对输入矢量-权重矩阵乘法的贡献。对于如图27中所示的基于电流的实施方式以及如图26中所示的基于电压的实施方式,多位输出可以并行地确定所有位,逐位相继地确定所有位,或者是这两种方法的组合。
根据第一组方面,非易失性存储器电路包括一个或多个存储单元的阵列,该一个或多个存储单元沿着一个或多个第一输入线连接并且各自被配置为存储神经网络的N位权重;以及连接到存储单元的阵列的一个或多个控制电路。N是大于1的整数,并且存储单元中的每个存储单元包括N个非易失性二进制存储元件,该非易失性二进制存储元件连接到对应的输出线并且被配置为存储N位权重中的一位。一个或多个控制电路被配置为:将神经网络的第一输入施加到一个或多个第一输入线,以响应于此,在连接到存储单元中的第一存储单元的输出线中的每个输出线上生成输出电压电平;根据存储在与输出线对应的第一存储单元的二进制存储元件中的权重的位的重要性,单独地对响应于输出线中的每个输出线上的第一输入而生成的输出电压电平进行加权;并且从单独加权的输出电压的组合确定存储在第一存储单元中的权重对第一输入的响应的多位值,从而执行第一输入与存储在第一存储单元中的权重的阵列内乘法。
另外的方面包括方法,该方法包括接收神经网络的多个输入值,并且将该多个输入值中的每一者转换成对应的第一电压模式,每个第一电压模式是包括一对电压值的多个电压模式之一。将多个第一电压模式施加到一对或多对字线,每对字线连接到存储神经网络的N位权重值的第一组N对非易失性存储器单元,每个第一组的每对存储器单元存储权重值的位,并且包括连接在字线对的第一字线与对应位线之间的第一存储器单元和连接在字线对的第二字线与对应位线之间的第二存储器单元。该方法还包括根据存储在对应对存储器单元中的位的重要性,响应于施加的第一电压模式,对对应于每个第一组的所述对存储器单元的位线中的每个位线上的输出电平进行加权;以及组合加权的输出电平以确定一个或多个输入值与一个或多个权重值的一个或多个乘积的多位值。
在另外的方面,装置包括非易失性存储器单元的阵列,以及连接到该非易失性存储器单元的阵列的一个或多个控制电路。非易失性存储器单元的阵列包括多个N个第一位线、第一字线对和第一组N个非易失性存储器单元对。第一组中的每对的第一存储器单元连接在第一字线对的第一字线与第一位线中的对应一者之间;并且第一组中的每对的第二存储器单元连接在第一字线对的第二字线与第一位线中的对应一者之间。一个或多个控制电路被配置为:接收第一输入并且将与第一输入对应的第一电压模式施加到第一字线对;响应于将所述第一电压模式施加到所述第一字线对,单独地对所述N个第一位线中的每个第一位线上的输出电平进行加权;组合单独加权的输出电平,以形成第一组存储器单元对第一输入的加权响应;并且确定第一组存储器单元对第一输入的加权响应的多位值。
出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。
出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其他部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接到另一个元件,或者经由居间元件间接连接到另一个元件。当元件被提及直接连接到另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。
出于本文档的目的,术语“基于”可理解为“至少部分地基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。
出于本文档的目的,术语对象的“组”可指一个或多个对象的“组”。
前述详细描述是为了说明和描述的目的而给出的。其不旨在为穷举性的,也不旨在限于所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。

Claims (20)

1.一种非易失性存储器电路,包括:
一个或多个存储单元的阵列,所述一个或多个存储单元沿着一个或多个第一输入线连接并且各自被配置为存储神经网络的N位权重,其中N是大于1的整数,所述存储单元中的每个存储单元包括N个非易失性二进制存储元件,所述非易失性二进制存储元件连接到对应的输出线并且被配置为存储所述N位权重中的一位;以及
一个或多个控制电路,所述一个或多个控制电路连接到所述存储单元的阵列,所述一个或多个控制电路被配置为:
将神经网络的第一输入施加到所述一个或多个第一输入线,以响应于此,在连接到所述存储单元中的第一存储单元的所述输出线中的每个输出线上生成输出电压电平;
根据存储在与所述输出线对应的所述第一存储单元的所述二进制存储元件中的所述权重的所述位的重要性,单独地对响应于所述输出线中的每个输出线上的所述第一输入而生成的所述输出电压电平进行加权;并且
从所述单独加权的输出电压的组合确定存储在所述第一存储单元中的所述权重对所述第一输入的所述响应的多位值,从而执行所述第一输入与存储在所述第一存储单元中的所述权重的阵列内乘法。
2.根据权利要求1所述的非易失性存储器电路,其中:
所述阵列还包括第二存储单元,所述第二存储单元沿着一个或多个第二输入线连接并且被配置为存储神经网络的N位权重,所述第二存储单元包括N个非易失性二进制存储元件,所述非易失性二进制存储元件连接到对应输出线并且被配置为存储所述N位权重中的一位,其中对于具有给定重要性的所述二进制存储元件中的每个二进制存储元件,所述第二存储单元连接到与所述第一存储单元具有相同重要性的所述二进制存储元件相同的输出线;并且
所述一个或多个控制电路被进一步配置为:
将所述神经网络的第二输入施加到所述一个或多个第二输入线,以响应于此,在连接到所述第二存储单元的所述输出线中的每个输出线上生成输出电压电平;
根据存储在与所述输出线对应的所述第二存储单元的所述二进制存储元件中的所述权重的所述位的所述重要性,单独地对响应于所述输出线中的每个输出线上的所述第二输入而生成的所述输出电压电平进行加权;并且
从响应于所述第二输入而生成的所述单独加权的输出电压的组合确定存储在所述第二存储单元中的所述权重对所述第二输入的所述响应的多位值,从而执行所述第二输入与存储在所述第二存储单元中的所述权重的阵列内乘法。
3.根据权利要求2所述的非易失性存储器电路,其中所述一个或多个控制电路被进一步配置为:
将存储在所述第一存储单元中的所述权重对所述第一输入的所述响应的所述多位值与存储在所述第二存储单元中的所述权重对所述第二输入的所述响应的所述多位值累加。
4.根据权利要求3所述的非易失性存储器电路,其中所述一个或多个控制电路被进一步配置为:
在将所述神经网络的所述第一输入施加到所述第一输入线的同时,将所述神经网络的所述第二输入施加到所述第二输入线。
5.根据权利要求3所述的非易失性存储器电路,其中所述一个或多个控制电路被进一步配置为:
在将所述神经网络的所述第一输入施加到所述第一输入线后,相继地将所述神经网络的所述第二输入施加到所述第二输入线。
6.根据权利要求3所述的非易失性存储器电路,其中所述一个或多个控制电路被进一步配置为:
在将所述第一输入施加到所述第一输入线以响应于此而在连接到所述存储单元中的所述第一存储单元的所述输出线中的每个输出线上生成所述输出电压电平的同时,将所述第一输入施加到所述第一输入线以响应于此而在连接到所述存储单元中的第二存储单元的所述输出线中的每个输出线上生成输出电压电平;
根据存储在与所述输出线对应的所述第二存储单元的所述二进制存储元件中的所述权重的所述位的重要性,单独地对响应于所述输出线中的每个输出线上的所述第一输入而生成的所述输出电压电平进行加权;并且
从所述单独加权的输出电压的组合确定存储在所述第二存储单元中的所述权重对所述第一输入的所述响应的多位值,从而执行所述第一输入与存储在所述第二存储单元中的所述权重的阵列内乘法。
7.根据权利要求1所述的非易失性存储器电路,其中:
一个或多个第一输入线是一对第一字线;
所述二进制存储元件中的每个二进制存储元件包括一对存储器单元,每个存储器单元连接在所述对应的输出线与所述第一字线中的一个第一字线之间;
并且所述第一输入被施加到所述对第一字线作为多个电压模式之一。
8.根据权利要求7所述的非易失性存储器电路,其中所述存储器单元包括基于相变存储器(PCM)的存储器单元。
9.根据权利要求7所述的非易失性存储器电路,其中所述存储阵列根据交叉点架构形成为单片三维半导体存储器设备的一部分,其中所述存储器单元被布置在基板上方的多个物理级中。
10.一种方法,包括:
接收神经网络的多个输入值;
将所述多个输入值中的每一者转换成对应的第一电压模式,每个第一电压模式是包括一对电压值的多个电压模式之一;
将所述多个第一电压模式施加到一对或多对字线,每对字线连接到存储所述神经网络的N位权重值的第一组N对非易失性存储器单元,每个第一组的存储器单元中的每对存储所述权重值的位,并且包括连接在所述字线对的第一字线与对应位线之间的第一存储器单元和连接在所述字线对的第二字线与所述对应位线之间的第二存储器单元;
根据存储在所述对应对存储器单元中的所述位的重要性,响应于所述施加的第一电压模式,对对应于每个第一组的所述对存储器单元的所述位线中的每个位线上的输出电平进行加权;以及
组合所述加权的输出电平以确定所述一个或多个输入值与所述一个或多个权重值的一个或多个乘积的多位值。
11.根据权利要求10所述的方法,其中:
将所述多个第一电压模式施加到一对或多对字线包括相继地将所述多个第一电压模式施加到对应的多个所述字线对;以及
响应于相继地施加的所述多个第一电压模式对所述位线上的所述输出电平进行加权。
12.根据权利要求10所述的方法,其中:
将所述多个第一电压模式施加到一对或多对字线包括同时地将所述多个第一电压模式施加到对应的多个所述字线对;并且
响应于同时施加的所述多个第一电压模式对所述位线上的所述输出电平进行加权。
13.根据权利要求10所述的方法,其中每对字线进一步连接到存储所述神经网络的N位权重值的第二组N对非易失性存储器单元,每个第二组的每对存储器单元存储所述权重值的位,并且包括连接在所述字线对的第一字线与对应位线之间的第一存储器单元和连接在所述字线对的第二字线与所述对应位线之间的第二存储器单元,所述方法还包括:
根据存储在所述对应对存储器单元中的所述位的重要性,响应于所述施加的第一电压模式,对对应于每个第二组的所述对存储器单元的所述位线上的所述输出电平进行加权。
14.一种装置,包括:
非易失性存储器单元的阵列,所述非易失性存储器单元的阵列包括多个N个第一位线、第一字线对和第一组N个非易失性存储器单元对,所述第一组中的每对的第一存储器单元连接在所述第一字线对的第一字线与所述第一位线中的对应一者之间,并且所述第一组中的每对的第二存储器单元连接在所述第一字线对的第二字线与所述第一位线中的所述对应一者之间;以及
一个或多个控制电路,所述一个或多个控制电路连接到所述非易失性存储器单元的阵列,所述一个或多个控制电路被配置成:
接收第一输入并将对应于所述第一输入的第一电压模式施加到所述第一字线对;
响应于将所述第一电压模式施加到所述第一字线对,单独地对所述N个第一位线中的每个第一位线上的输出电平进行加权;
组合所述单独加权的输出电平,以形成第一组存储器单元对所述第一输入的加权响应;并且
确定所述第一组存储器单元对所述第一输入的所述加权响应的多位值。
15.根据权利要求14所述的装置,其中所述输出电平是电流电平,并且所述一个或多个控制电路包括电流镜,所述电流镜被配置为对所述N个第一位线中的每个第一位线上的所述输出电平进行加权。
16.根据权利要求15所述的装置,其中所述电流镜被配置为通过所述电流镜中晶体管的相对尺寸来实现所述输出电平的加权。
17.根据权利要求14所述的装置,其中所述输出电平是电压电平,并且所述一个或多个控制电路包括电压求和电路以组合所述单独加权的输出电平。
18.根据权利要求14所述的装置,其中所述非易失性存储器单元的阵列根据交叉点架构形成为单片三维半导体存储器设备的一部分,其中所述存储器单元被布置在基板上方的多个物理级中。
19.根据权利要求14所述的装置,其中:
所述非易失性存储器单元的阵列还包括第二字线对和第二组N个非易失性存储器单元对,所述第二组中的每对的第一存储器单元连接在所述第二字线对的第一字线与所述第一位线中的对应一者之间,并且所述第二组中的每对的第二存储器单元连接在所述第二字线对的第二字线与所述第一位线中的所述对应一者之间;并且
所述一个或多个控制电路被进一步配置为:
接收第二输入并将对应于所述第二输入的第二电压模式施加到所述第二字线对;
响应于将所述第二电压模式施加到所述第二字线对,单独地对所述N个第一位线中的每个第一位线上的输出电平进行加权;
组合所述单独加权的输出电平,以形成所述第二组存储器单元对所述第二输入的加权响应;
确定所述第二组存储器单元对所述第二输入的所述加权响应的多位值;并且
将所述第二组存储器单元对所述第二输入的所述加权响应的所述多位值与所述第一组存储器单元对所述第一输入的所述加权响应的所述多位值累加。
20.根据权利要求19所述的装置,其中所述一个或多个控制电路被进一步配置为:
在将所述第一电压模式施加到所述第一字线对的同时将所述第二电压模式施加到所述第二字线对;并且
响应于同时将所述第二电压模式施加到所述第二字线对并且将所述第一电压模式施加到所述第一字线对,单独地对所述N个第一位线中的每个第一位线上的所述输出电平进行加权。
CN201910638410.1A 2018-07-24 2019-07-16 具有差分二进制非易失性存储器单元结构的可配置精密神经网络 Pending CN110782028A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862702713P 2018-07-24 2018-07-24
US62/702,713 2018-07-24
US16/405,178 2019-05-07
US16/405,178 US10643119B2 (en) 2018-07-24 2019-05-07 Differential non-volatile memory cell for artificial neural network
US16/414,143 2019-05-16
US16/414,143 US10643705B2 (en) 2018-07-24 2019-05-16 Configurable precision neural network with differential binary non-volatile memory cell structure

Publications (1)

Publication Number Publication Date
CN110782028A true CN110782028A (zh) 2020-02-11

Family

ID=69178585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910638410.1A Pending CN110782028A (zh) 2018-07-24 2019-07-16 具有差分二进制非易失性存储器单元结构的可配置精密神经网络

Country Status (2)

Country Link
US (1) US10643705B2 (zh)
CN (1) CN110782028A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022047802A1 (en) * 2020-09-07 2022-03-10 Alibaba Group Holding Limited Processing-in-memory device and data processing method thereof

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138505B2 (en) * 2017-12-21 2021-10-05 Fujitsu Limited Quantization of neural network parameters
JP2020035502A (ja) * 2018-08-28 2020-03-05 キオクシア株式会社 半導体集積回路
US10956813B2 (en) * 2018-09-28 2021-03-23 Intel Corporation Compute-in-memory circuit having a multi-level read wire with isolated voltage distributions
KR102358622B1 (ko) * 2018-10-12 2022-02-04 한국과학기술연구원 오보닉 임계 스위치를 이용한 인공 뉴런 소자, 그것을 포함하는 인공 신경 칩 및 사용자 장치
US11183266B2 (en) * 2019-06-26 2021-11-23 Micron Technology, Inc. Apparatuses and methods for repairing defective memory cells based on a specified error rate for certain memory cells
US20210049504A1 (en) * 2019-08-14 2021-02-18 Rain Neuromorphics Inc. Analog system using equilibrium propagation for learning
US11610101B2 (en) * 2019-08-30 2023-03-21 International Business Machines Corporation Formation failure resilient neuromorphic device
US11829729B2 (en) 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
US11693657B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems
US11934824B2 (en) 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11663452B2 (en) * 2019-09-25 2023-05-30 Intel Corporation Processor array for processing sparse binary neural networks
KR20210075542A (ko) * 2019-12-13 2021-06-23 삼성전자주식회사 스위칭 소자와 저항 소자를 포함하는 3차원 뉴로모픽 장치
US11657259B2 (en) * 2019-12-20 2023-05-23 Sandisk Technologies Llc Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
US11526328B2 (en) * 2020-02-04 2022-12-13 Macronix International Co., Ltd. Computation method and apparatus exploiting weight sparsity
US11556311B2 (en) 2020-04-16 2023-01-17 Sandisk Technologies Llc Reconfigurable input precision in-memory computing
US11397885B2 (en) * 2020-04-29 2022-07-26 Sandisk Technologies Llc Vertical mapping and computing for deep neural networks in non-volatile memory
KR102318819B1 (ko) * 2020-06-10 2021-10-27 연세대학교 산학협력단 멀티 비트 가중치의 연산을 위한 인 메모리 장치
US11544547B2 (en) 2020-06-22 2023-01-03 Western Digital Technologies, Inc. Accelerating binary neural networks within latch structure of non-volatile memory devices
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems
US11676068B1 (en) 2020-06-30 2023-06-13 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process leveraging input sparsity on a pixel by pixel basis
US11687831B1 (en) 2020-06-30 2023-06-27 Cadence Design Systems, Inc. Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference
US11615320B1 (en) * 2020-06-30 2023-03-28 Cadence Design Systems, Inc. Method, product, and apparatus for variable precision weight management for neural networks
US11823018B1 (en) 2020-06-30 2023-11-21 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using weight sharing within a systolic array having reduced memory bandwidth
US11651283B1 (en) 2020-06-30 2023-05-16 Cadence Design Systems, Inc. Method, product, and apparatus for a machine learning process using dynamic rearrangement of sparse data and corresponding weights
CN111523658B (zh) * 2020-07-02 2020-12-15 南京优存科技有限公司 双位存储单元及其在存内计算的电路结构
US11404106B2 (en) * 2020-07-27 2022-08-02 Robert Bosch Gmbh Read only memory architecture for analog matrix operations
JP2022136786A (ja) 2021-03-08 2022-09-21 キオクシア株式会社 不揮発性記憶装置
KR20230122842A (ko) * 2022-02-15 2023-08-22 서울시립대학교 산학협력단 용량성 커플링 기반의 인공 신경망 시스템
US20230326521A1 (en) * 2022-04-08 2023-10-12 Taiwan Semiconductor Manufacturing Company, Ltd. Memory device and system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449701A (zh) * 2009-04-08 2012-05-09 桑迪士克3D有限责任公司 具有垂直位线的可重编程非易失性存储器元件的三维阵列
US20130170283A1 (en) * 2011-12-30 2013-07-04 Sandisk 3D Llc Low forming voltage non-volatile storage device
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US20160141337A1 (en) * 2014-11-17 2016-05-19 Sandisk 3D Llc Memory array having divided apart bit lines and partially divided bit line selector switches
US20160358661A1 (en) * 2012-02-23 2016-12-08 Micron Technology, Inc. Methods of operating memory
CN108038542A (zh) * 2017-12-27 2018-05-15 宁波山丘电子科技有限公司 一种基于神经网络的存储模块、模组及数据处理方法
CN108073984A (zh) * 2017-12-27 2018-05-25 宁波山丘电子科技有限公司 一种基于神经网络的存储模块及存储模组

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9269043B2 (en) 2002-03-12 2016-02-23 Knowm Tech, Llc Memristive neural processor utilizing anti-hebbian and hebbian technology
US7324366B2 (en) 2006-04-21 2008-01-29 International Business Machines Corporation Non-volatile memory architecture employing bipolar programmable resistance storage elements
US7379364B2 (en) 2006-10-19 2008-05-27 Unity Semiconductor Corporation Sensing a signal in a two-terminal memory array having leakage current
US8416624B2 (en) * 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
US8811085B2 (en) 2012-11-09 2014-08-19 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8817541B2 (en) 2012-11-09 2014-08-26 Sandisk Technologies Inc. Data search using bloom filters and NAND based content addressable memory
US8792279B2 (en) 2012-11-09 2014-07-29 Sandisk Technologies Inc. Architectures for data analytics using computational NAND memory
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8780634B2 (en) 2012-11-09 2014-07-15 Sandisk Technologies Inc. CAM NAND with OR function and full chip search capability
US9098403B2 (en) 2012-11-09 2015-08-04 Sandisk Technologies Inc. NAND flash based content addressable memory
US8780632B2 (en) 2012-11-09 2014-07-15 Sandisk Technologies Inc. De-duplication techniques using NAND flash based content addressable memory
US8780633B2 (en) 2012-11-09 2014-07-15 SanDisk Technologies, Inc. De-duplication system using NAND flash based content addressable memory
US8780635B2 (en) 2012-11-09 2014-07-15 Sandisk Technologies Inc. Use of bloom filter and improved program algorithm for increased data protection in CAM NAND memory
US8773909B2 (en) 2012-11-09 2014-07-08 Sandisk Technologies Inc. CAM NAND with or function and full chip search capability
US9177104B2 (en) 2013-03-29 2015-11-03 Case Western Reserve University Discriminatively weighted multi-scale local binary patterns
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US10198691B2 (en) 2014-06-19 2019-02-05 University Of Florida Research Foundation, Inc. Memristive nanofiber neural networks
US20160026912A1 (en) 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN108475522B (zh) 2016-01-18 2020-12-15 华为技术有限公司 内存设备及基于多层rram交叉阵列的数据处理方法
EP3398117B1 (en) 2016-02-05 2023-12-20 Deepmind Technologies Limited Augmenting neural networks with external memory
US10089577B2 (en) 2016-08-05 2018-10-02 Xilinx, Inc. Binary neural networks on progammable integrated circuits
US11501130B2 (en) 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
US20180144240A1 (en) 2016-11-21 2018-05-24 Imec Vzw Semiconductor cell configured to perform logic operations
US11488002B2 (en) 2018-02-15 2022-11-01 Atlazo, Inc. Binary neural network accelerator engine methods and systems
JP2019160368A (ja) 2018-03-13 2019-09-19 東芝メモリ株式会社 半導体記憶装置
CN110597555B (zh) 2019-08-02 2022-03-04 北京航空航天大学 非易失性存内计算芯片及其运算控制方法
CN110598858A (zh) 2019-08-02 2019-12-20 北京航空航天大学 基于非易失性存内计算实现二值神经网络的芯片和方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102449701A (zh) * 2009-04-08 2012-05-09 桑迪士克3D有限责任公司 具有垂直位线的可重编程非易失性存储器元件的三维阵列
US20130170283A1 (en) * 2011-12-30 2013-07-04 Sandisk 3D Llc Low forming voltage non-volatile storage device
US20160358661A1 (en) * 2012-02-23 2016-12-08 Micron Technology, Inc. Methods of operating memory
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US20160141337A1 (en) * 2014-11-17 2016-05-19 Sandisk 3D Llc Memory array having divided apart bit lines and partially divided bit line selector switches
CN108038542A (zh) * 2017-12-27 2018-05-15 宁波山丘电子科技有限公司 一种基于神经网络的存储模块、模组及数据处理方法
CN108073984A (zh) * 2017-12-27 2018-05-25 宁波山丘电子科技有限公司 一种基于神经网络的存储模块及存储模组

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022047802A1 (en) * 2020-09-07 2022-03-10 Alibaba Group Holding Limited Processing-in-memory device and data processing method thereof

Also Published As

Publication number Publication date
US10643705B2 (en) 2020-05-05
US20200035305A1 (en) 2020-01-30

Similar Documents

Publication Publication Date Title
CN110782027B (zh) 用于人工神经网络的差分非易失性存储器单元
US10643705B2 (en) Configurable precision neural network with differential binary non-volatile memory cell structure
US11657259B2 (en) Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
US11170290B2 (en) Realization of neural networks with ternary inputs and binary weights in NAND memory arrays
US11328204B2 (en) Realization of binary neural networks in NAND memory arrays
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
US11625586B2 (en) Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays
CN110825345A (zh) 使用非易失性存储器单元的乘法
US11568228B2 (en) Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
US11544547B2 (en) Accelerating binary neural networks within latch structure of non-volatile memory devices
TWI783539B (zh) 具有外部磁場程式化輔助的超低電力推理引擎
CN110751276A (zh) 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
TWI783538B (zh) 多階超低功率推理引擎加速器
US20220398439A1 (en) Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions
US20220366211A1 (en) Dropout in neutral networks using threshold switching selectors in non-volatile memories
US11556311B2 (en) Reconfigurable input precision in-memory computing
US11170852B1 (en) Cross-bar arrays having steering element with diode
US20220358354A1 (en) Architecture design for ensemble binary neural network (ebnn) inference engine on single-level memory cell arrays

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200211

WD01 Invention patent application deemed withdrawn after publication