CN110782026A - Nand存储器阵列中的二值神经网络的实现 - Google Patents

Nand存储器阵列中的二值神经网络的实现 Download PDF

Info

Publication number
CN110782026A
CN110782026A CN201910505098.9A CN201910505098A CN110782026A CN 110782026 A CN110782026 A CN 110782026A CN 201910505098 A CN201910505098 A CN 201910505098A CN 110782026 A CN110782026 A CN 110782026A
Authority
CN
China
Prior art keywords
nand strings
memory cells
memory
array
neural network
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.)
Granted
Application number
CN201910505098.9A
Other languages
English (en)
Other versions
CN110782026B (zh
Inventor
W·H·崔
P·F·邱
马雯
秦明海
G·J·海明克
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/368,347 external-priority patent/US11328204B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN110782026A publication Critical patent/CN110782026A/zh
Application granted granted Critical
Publication of CN110782026B publication Critical patent/CN110782026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • 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
    • G06N3/065Analogue means
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5607Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using magnetic storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5685Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using storage elements comprising metal oxide memory material, e.g. perovskites
    • 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/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/0026Bit-line or column 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/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/226Character recognition characterised by the type of writing of cursive writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Abstract

本发明题为“NAND存储器阵列中的二值神经网络的实现”。使用NAND阵列架构来实现二值神经网络(BNN)允许在存储器阵列内执行矩阵乘法和累加。将用于存储BNN的权重的单位突触存储在一对串联连接的存储器单元中。将二值输入作为具有电压值的模式施加在连接到所述单位突触的一对字线上,以通过确定所述单位突触是否导通来执行所述输入与所述权重的所述乘法。此类乘法的结果由读出放大器来确定,结果由计数器进行累加。

Description

NAND存储器阵列中的二值神经网络的实现
发明人
Won Ho Choi
Pi-Feng Chiu
Wen Ma
Minghai Qin
Gerrit Jan Hemink
Martin Lueker-Boden
相关申请的交叉引用
本申请要求2018年7月24日提交的美国临时专利申请号62/702,713的优先权,并且与由Hoang等人与本申请同时提交的标题为“Realization of Neural Networks withTernary Inputs and Binary Weights in NAND Memory Arrays(在NAND存储器阵列中实现具有三值输入和二值权重的神经网络)”的申请相关,这两个专利均以引用方式并入本文。
背景技术
人工神经网络越来越多地用于人工智能和机器学习应用中。在人工神经网络中,将一组输入通过一个或多个中间或隐藏层传播以生成输出。通过多组权重来连接将输入连接到输出的各层,所述多组权重是在训练或学习阶段中通过以下方式生成的:确定用于将输入转换成输出的一组数学变换,移动通过所述层,计算每个输出的概率。一旦确立了权重,就可以在推理阶段使用所述权重来根据一组输入确定输出。虽然此类神经网络可以提供高度准确的结果,但是它们是计算极其密集的,并且在从存储器中读取连接不同层的权重并将所述权重传输到处理单元的处理单元中所涉及的数据传输可能相当密集。
附图说明
相同编号的元件是指不同图中的共同部件。
图1是连接到主机的存储器系统的一个实施方案的框图。
图2是前端处理器电路的一个实施方案的框图。在一些实施方案中,前端处理器电路是控制器的一部分。
图3是后端处理器电路的一个实施方案的框图。在一些实施方案中,后端处理器电路是控制器的一部分。
图4是存储器封装的一个实施方案的框图。
图5是存储器管芯的一个实施方案的框图。
图6示出了人工神经网络的简单示例。
图7A是描述用于训练神经网络以生成一组权重的过程的一个实施方案的流程图。
图7B是描述用于使用神经网络进行推断的过程的一个实施方案的流程图。
图8是矩阵乘法在神经网络中的使用的示意图。
图9是示出响应于不同输入-权重组合的二值神经网络的输出的表格。
图10示出了用于在一对串联连接的存储器单元中存储二值权重的单位突触单元的实施方案。
图11示出了用于在二值或单层单元(SLC)存储器上存储数据状态的阈值电压的分布。
图12和图13示出了使用一对串联连接的SLC存储器单元作为单位突触来实现二值神经网络的实施方案。
图14示出了将单位突触并入NAND阵列中。
图15和图16考虑了二值神经网络代数的点积计算的示例,以及如何使用用于SLCNAND二值神经网络(BNN)实施方案的基于计数器的累加数字电路来实现此计算。
图17是在推断中使用二值神经网络进行点积计算的一个实施方案的流程图。
图18示出了用于支持二值神经网络的SLC NAND阵列的累加电路的实施方案。
图19是如在图15和图16的表格以及图18的架构中所示,在推断中使用三值-二值神经网络进行点积计算的一个实施方案的流程图。
图20和图21示出了神经网络及其通过NAND阵列进行的实施方式的示例。
图22示出了神经网络及其通过NAND阵列进行的实施方式的示例,该实施方式用以通过利用单个平面内的多个块来实现跨NAND块的高并行性。
图23是与图17类似但结合了所示的多块并行性的点积计算的一个实施方案的流程图。
图24示出了可跨多个平面同时对神经网络的输入进行推断的附加实施方案。
图25示出了用于不同神经网络层的平面流水线化的实施方案。
图26示出了不同层的权重可存储在同一块、同一平面或两者中的实施方案。
具体实施方式
为了降低计算复杂性和放宽神经网络的存储器要求,已引入了二值神经网络(BNN)。在BNN中,神经网络的权重和输入被截短为二值值(-1,+1),并且该二值算术将乘法和加法简化为XNOR和位计数操作。以下公开内容提供了利用NAND存储器的结构来存储二值神经网络的权重和执行NAND存储器内的乘法和累加操作的技术。
每个二值权重存储在由一对串联连接的二值存储器单元(诸如NAND串上的一对相邻存储器单元)形成的单位突触中,其中存储器单元中的一个存储器单元处于编程状态,而另一个存储器单元处于擦除状态。根据单位突触的哪个存储器单元处于编程状态以及哪个存储器单元处于擦除状态,单位突触将为-1或+1权重。然后,将二值输入作为电压模式施加在对应字线上,其中字线对中的一个字线处于读取电压下(对于读取电压,将仅导通擦除状态存储器单元),并且字线对中的另一个字线处于通过电压下(对于通过电压,将导通处于任一状态下的存储器单元)。根据字线对中的哪个字线处于何值,输入将为-1或+1输入。通过将输入施加到字线对,单位突触(以及对应的NAND串)将根据输入和权重是否匹配而导通或不导通。可以由连接到对应位线的读出放大器来确定结果。通过沿着NAND串相继遍历输入/单位突触对并累加读出放大器的结果,可以执行通过神经网络的层传播输入的乘法和累加操作。当阵列的字线跨越多个NAND串时,可针对多个单位突触的二值权重同时执行操作。
可通过引入多位读出放大器来増大并行度,使得可同时感测来自阵列的不同存储块的单位突触。并行度的进一步增加可以通过以下方式来获得:在多个平面上同时进行感测,以及将与神经网络的一个层对应的一个平面的输出流水线化为与神经网络的后续层对应的另一平面的输入。
图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分开。在一个实施方案中,存储器系统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)除非将存储器结构作为块擦除,否则可以不写入该存储器结构。MML158理解存储器结构的这些潜在限制,这些限制可能对主机不可见。因此,MML 158尝试将来自主机的写入转换为向存储器结构的写入。
图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接口的小控制器。存储器封装可具有一个或多个存储器管芯。在一个实施方案中,每个存储器封装包括8或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或PCMRAM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由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中的O1、O2)处接收神经网络的输出。在先前段落的狗品种示例中,输入将是许多狗的图像数据,并且中间层使用当前权重值来计算图像中的狗是某一品种的概率,以及将提议的狗品种标签在步骤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阵列之间移动数据的需要。
以下考虑基于使用NAND型架构的存储器阵列(诸如使用具有电荷存储区的存储器单元的闪存NAND存储器)的实施方案。可以使用多级单元(MLC)结构和单级单元(SLC)结构来实现闪存NAND存储器,其中以下主要考虑基于SLC闪存存储器的实施方案。与MAC阵列逻辑相比,使用SLC闪存存储器显示出几个优点,包括高得多的面积/位值,高得多的通量率,以及由于通过执行阵列内乘法使数据移动最小化而显著降低能量耗散。此外,NAND闪存结构为高度可扩展的,从而支持深度神经网络和宽神经网络。
一种可用于降低推断过程的计算复杂度的技术是使用二值化神经网络(BNN),其中神经网络使用二值权重和激活来工作。BNN(也称为XNOR网络)使用“二值”输入{-1,1}和“二值”权重{-1,1}来计算矩阵矢量乘法。图9是示出响应于不同输入-权重组合的二值神经网络的输出的表格。如最右列中所示,当输入和权重匹配时,输出为1;并且当输入和权重不同时,输出为-1。图10至图13示出了在SLC NAND阵列中实现具有二值输入和二值权重的神经网络的实施方案。
图10示出了用于在一对串联连接的存储器单元FG1和FG2中存储二值权重的单位突触单元的实施方案。在该示例中,存储器单元中的每一者是存储两种状态中的一种的SLC单元,并且可以是较大NAND串的一部分。存储器单元FG1和FG2可为闪存存储器单元,并且通过分别向电荷存储层或浮栅添加电子或从电荷存储层或浮栅移除电子来编程或擦除,并且通过将对应的电压V1和V2施加到该存储器单元的控制栅来感测。当存储器单元FG1和FG2是包括额外单位突触单元或其他存储器单元的较大NAND串的一部分时,该对存储器单元可在NAND串上相邻或由形成NAND串的其他存储器单元分开。在下面的讨论中,单位突触单元的各个存储器单元将被表示为相邻的,但是根据实施方案,其他布置也是可能的。例如,NAND串的上半部可以保持每个单位突触的第一存储器单元,而每个单位突触的第二存储器单元在NAND串的下半部中。对于这些布置中的任一种,当感测到给定单位突触时,同一NAND串上的其他存储器单元和选择栅将被偏置,使得未被选择的单位突触的存储器单元和任何其他存储器单元以及选择栅都是导通的。
图11示出了用于在SLC存储器上存储数据状态的阈值电压的分布。在该实施方案中,擦除的负阈值状态被视为“1”状态,并且正阈值状态被视为“0”。图10示出了在存储器单元已被擦除(在此被指定为“1”状态)并且存储器单元被编程为正阈值状态(在此被指定为“0”状态)之后,一组存储器单元(诸如擦除块或整个阵列)的存储器单元的阈值电压的典型分布。如关于图12和图13进一步讨论的,二值权重将使单位突触的一个存储器单元处于“0”状态下,并且另一个存储器单元处于“1”状态下。更一般地,“1”状态不必是负阈值状态,只要这两个状态对应于在此被定义为“1”状态的较低阈值状态和在此被定义为“0”的较高阈值状态即可。
为了感测具有图11所示的阈值分布的存储器单元,使用第一电压电平Vread来区分数据状态,使得如果将该第一电压电平Vread施加至存储器单元的控制栅,则存储器单元如果在“1“状态下则将导通,如果在”0“状态下则将不导通。例如,如果“1”状态是负阈值电压状态并且“0”状态是正阈值电压状态,则Vread可以取为0V。第二感测电压Vpass高到足以使处于任一状态下的存储器单元都将导通。例如,Vpass可为几伏。在下文中,Vread将被定义为“0”输入电压值,并且Vpass将被定义为“1”输入电压值。
在NAND闪存存储器的实施方式中,对于SLC存储器和MLC存储器,在编程验证和读取操作中往往使用许多不同的电压电平来进行感测操作。例如,给定数据状态的编程验证电平可以相对于相同数据状态的读取电压电平偏移。此外,各种电平可以用于不同操作和条件下的通过电压,以将存储器单元独立于其所存储的数据状态而置于导通状态下。为了简化下面的讨论,将仅使用单个Vread电压来区分各数据状态,并且当要针对所有存储的数据状态值将存储器单元或选择栅都置于导通状态下时,将仅使用单个Vpass电压。
图12和图13示出了使用一对串联连接的SLC存储器单元作为单位突触来实现二值神经网络的实施方案。更具体地,图13示出了图9的输入逻辑、权重逻辑和输出逻辑分别与输入电压模式、单位突触的存储器单元的阈值电压Vth和输出电压之间的对应关系的一个实施方案。图12为单位突触对不同情况的响应的示意图。
在图12和图13中,逻辑输入-1对应于以下输入电压模式:V1=Vpass=“1”,V2=Vread=“0”;并且逻辑输入+1对应于以下输入电压模式:V1=Vread=“0”,V2=Vpass=“1”。权重逻辑-1对应于存储器单元FG1处于“0”(编程)状态下并且FG2处于“1”(擦除状态)下;并且权重逻辑+1对应于存储器单元FG1处于“1”状态下而FG2处于“0”。输出逻辑+1对应于导通Icell的电流的单位突触,导致跨单位突触两端的输出电压降ΔV;并且输出逻辑-1对应于单位突触不导通,从而导致跨单位突触两端有很少的输出电压降或没有输出电压降。
图12示意性地表示输入权重对的四种情况。在情况1中,输入和权重均与值-1匹配。所施加的输入电压模式将较高的Vpass输入电压或“1”施加到具有较高Vth“0”数据状态的上部单元,并且将较低的输入电压Vread或“0”施加到具有较低Vth“1”数据状态的下部单元,以使得各单元为导通的并传递I单元的电流。在情况2中,输入电压模式相对于情况1反转,此时输入逻辑处于+1,而权重处于-1。这导致将较低的Vpass或“0”电压电平施加到处于较高Vth下的顶部单元,该顶部单元因此将不导通(如由存储器单元下的X所指示的),并且将没有明显的电流流过该对。
对于图12的底部上的情况3和情况4,权重值现为+1,其中上部单元中为较低的Vth“1”状态,并且将较高的Vth“0”编程到下部单元中。在情况3 中,将-1输入电压模式施加到单位突触,从而导致下部单元在其接收到较低的Vread或“0”电压电平时不导通。在情况4中,现将较高的Vpass或“1”输入施加到下部存储器单元,该下部存储器单元因此而导通,并且单位突触传递Icell的电流。
如图12和图13的实施方案中所示,将图10的一对串联连接的存储器单元用作单位突触可用于实现图9的二值神经网络逻辑表。可将单位突触并入到具有多个串联连接的此类单位突触的较大NAND串中。当感测到NAND串上的选定单位突触时,可通过使用Vpass电压来使同一NAND串上的其他单位突触偏置为导通,并且NAND串选择栅也被偏置为导通。
使用NAND闪存存储器来存储权重和计算输入与阵列中权重的点积可用于训练阶段和推断阶段两者中。训练阶段可如图7A的流程中那样进行,其中步骤709将根据需要对权重进行擦除和重新编程以调节权重,直到权重在步骤707处被确定为足够准确为止。本讨论将主要关注推断阶段,其中权重先前已在训练过程中确定,然后通过将单位突触编程到所确定的二值权重值而将权重加载到NAND存储器中。
图14示出了将单位突触并入NAND阵列中,诸如在图5的存储器结构326中。图14示出了可以是具有多个块的较大阵列中的一个块,每个块具有连接在源极线1415与对应的位线BLi 1403i之间的多个NAND串。典型的NAND存储器阵列将由许多此类存储块形成。每个NAND串由在源极侧选择栅SSLi 1409i(NAND串通过该源极侧选择栅连接到源极线1415)与漏极侧选择栅DSLi 1407i(NAND串通过该漏极侧选择栅连接到对应的位线BLi 1403i)之间串联连接的多个串联存储器单元形成。
将沿着每个NAND串的存储器单元配对成存储权重Wi,j的一对存储器单元的单位突触,如图10的单位突触所示。NAND串中的每一者可具有一个或多个串联连接的单位突触,其中图14的实施方案示出每NAND串32个单位突触。每个单位突触可存储二值权重并且沿着一对字线WL<j>1405j和WL'<j>1405'j连接,该一对字线接收与图13的电压对应的对应逻辑输入Input<j>。字线对WL<j>1405j和WL'<j>1405'j跨越该块的各列NAND串。在图14的实施方案中,单位突触的存储器单元在NAND串上相邻,但也可使用其他布置而使得突触的存储器单元交错而不是连续的;并且尽管在此的讨论集中于使用每突触两个SLC存储器单元的二值权重,但其他实施方案可使用每单位突触更多的存储器单元、多级存储器单元,或两者,来存储二值示例的具有超过两个值的神经网络权重。另外,尽管所示实施方案中的NAND串由存储电荷的闪存存储器单元形成,但也可使用具有相同阵列架构的其他存储器单元。
存储权重Wi,j的单位突触1401i,j的输出的确定可以通过以下方式来确定:将输入逻辑电压模式施加到对应的输入Input<j>,同时将选定NAND串的其他存储器单元和选择栅偏置为导通。基于输入逻辑和权重逻辑,存储权重Wi,j的单位突触1401i,j将导通或不导通,如图15的表格所示,该导通或不导通可以由对应的读出放大器SAi 1411i来确定。如下文进一步讨论的,对于每条位线,对应的基于计数器的数字累加电路CSCi 1413i可以跟踪响应于输入沿着位线有多少单位突触导通,将这些值加总,其中读出放大器和累加电路可以是图5的感测块350的组成部分。将相同的输入Input<j>同时施加至所有存储权重Wi,j的单位突触1401i,j,以使所有位线BLi 1403i将对应选择栅SSLi 1409i和DSLi 1407i中的选择栅偏置。因此,可以将相同的输入同时施加至多个突触。可以顺序地选择沿着NAND串的不同突触来进行感测,其中沿着每个位线BLi 1403i的结果由CSCi 1413i累加。在NAND存储器中,页是读取和编程的单位,其中读取页和编程页通常被视为相同的,诸如沿着字线连接的全部存储器单元或沿着公共字线连接的存储器单元中的一部分存储器单元。对于编程,沿着单个字线的单位突触的数据仍将被逐字线地进行编程;然而,相对于标准NAND存储器操作,其中为了实现确定单独存储器单元的数据内容的目标,以字线对执行对二值权重单位突触的页面的读取,以使得在这种情况下读取页可被视为对应于字线对。
重新参见图8,矩阵乘法是用于神经网络中的推断的输入-权重矢量对(输入矩阵的行-列)的乘积(点积)计算的多重和。图15和图16考虑了二值神经网络代数的点积计算的示例,以及如何使用用于SLC NAND BNN实施方案的基于计数器的累加数字电路来实现此计算。更具体地,虽然基于由图8的表格所示的逻辑的二值神经网络是基于值为+1或-1的权重、输入和输出的,但当由图14所示的NAND阵列实现时,读出放大器将记录为导通(“1”)或不导通(“0”)。因此,对于基于计数器的数字累加电路CSCi 1413i,为了累加结果以计算矩阵乘法的点积,需要将基于(+1,-1)的值转换为基于(1,0)的,其中-1值被0替代。
图15的表格考虑了当矢量要素全部量化为-1/+1时,跨顶部行的8要素二值神经网络输入矢量Ibnn与第二行中的8要素二值神经网络权重矢量Wbnn的点积的示例。第三行示出Ibnn与Wbnn的逐要素乘积,在Ibnn和Wbnn两者匹配时等于+1,并且当两者不同时等于-1。然后,点积为基于对这些逐位乘积进行加总以生成两个矢量的点积Pbnn_dec。在十进制系统中,将这些值加总的最终正确结果被计算为Pbnn_dec=2。
在图16的表的顶部两行上,输入矢量Ibnn和权重矢量Wbnn被转换为图15中用于相同矢量的1/0二值基础。图16的第三行示出了对应的读出放大器输出,为两个矢量的逐位XNOR值,该逐位XNOR值当各值匹配时为1,并且当各值不同时为0。通过在对应的累加电路CSCi1413i中累加来自读出放大器SAi 1411i的这些值以确定它们的和,这产生了与数字1值对应的种群计数CNTbnn_out。在图16的示例中,CNTbnn_out=5,这不同于图15的Pbnn_dec=2值,因为输入和权重不匹配的结果现为0而不是-1。
为了校正此点并确定二值系统中的Pbnn_dec,将种群计数操作数CNTbnn_out的输出代入等式1可用于获得导出的Pbnn_dec
Pbnn_dec=2*CNTbnn_out–S, (等式1)
其中S为矢量的大小。在该示例中,S=8,使得Pbnn_dec=2*5–8=2,这是图15的点积的确切Pbnn_dec=2。
图17是在推断中使用二值神经网络进行点积计算的实施方案的流程图,如图15和图16中所示。在步骤1701处,将第一输入值施加至第一单位突触的权重以执行阵列内乘法。重新参见图14,这对应于将Input<j>值施加至在位线BLi 1403i上存储权重Wi,j的对应选定单位突触1401i,j,例如将Input<0>施加至BL0上最底部的单位突触。在步骤1703处,对应的读出放大器SAi 1411i对应于输入值和权重值的XNOR而确定NAND串是导通的(1)还是不导通的(0)。步骤1705执行累加,其中将感测结果加至由计数器CSCi 1413i保持的CNTbnn_out值。在步骤1707处,对应于NAND的另一个输入/权重对(或针对沿位线连接的其他块上的其他NAND串)而确定是否有更多输入/权重对点积作出贡献,如果是,则循环返回到步骤1701。如果已经计算和加总了点积的CNTbnn_out的所有输入/权重对,则流程前进到步骤1709,以通过使用等式1将种群计数CNTbnn_out值转换为点积Pbnn_dec。在图15和图16的表的示例中,等式1的S值为将为8,而对于如图14所示的完整的NAND串,S=32。需注意,图14的NAND阵列结构允许沿着每个位线同时执行根据图17的流程的点积计算。
图18示出了用于支持二值神经网络的SLC NAND阵列的累加电路的实施方案。更具体地,图18以略微简化的形式重复图16的要素中的许多要素,但是还示出了字线解码器块1811。字线解码器1811接收选定单位突触的输入(为-1或+1输入),然后将该输入转换为字线对WL<j>、WL'<j>的对应电压模式,并将该对应电压模式施加至选定单位突触的该字线对中的一个字线(选定单位突触的字线)。对于NAND串上的非选定单位突触和对于选择栅,字线和选择线将设置为导通,诸如处于电压电平Vpass。基于这些输入,每一位线的基于计数器的累加数字电路CSCi 1413i可基于累加过程中读出放大器SAi 1411i的输出来增大计数。
图19是如在图15和图16的表格以及图18的阵列架构中所示,在推断中使用二值神经网络进行点积计算的一个实施方案的流程图。在步骤1901处开始并且参见图18,存储器阵列接收输入Input<j>,并将该输入转换为对应于-1或1输入值的一组电压值;并且在步骤1903处将电压电平施加到字线对WL<j>1405j、WL'<j>1405'j。由于字线跨越选定块的NAND串,所以可以对沿着字线对WL<j>1405j、WL'<j>1405'j连接的单位突触的任何NAND串同时执行图19的过程。另外,在NAND结构中,在步骤1905处,将选定NAND串的其他要素(SSLi1409i、DSLi 1407i,以及NAND串的非选定存储器单元)偏置为导通,诸如施加Vpass。尽管在图19中列出了一组有序的单独步骤,但步骤1903和1905通常由字线解码器1811同时执行。
步骤1907确定选定单位突触的一组存储器单元的传导性。如图15的表中所示,NAND串的传导性对应于响应于输入的单位突触的输出逻辑值,并且可由读出放大器SAi1411i来确定。基于单位突触的传导性状态,在步骤1909处,对应的CSCi 1413i的计数值递增或者不递增,如以上关于等式1和图16的表格所讨论的。
步骤1911确定是否有更多输入权重对要加至点积,如果是,则流程循环返回到步骤1901。一旦已确定了所有输入权重对对点积的贡献,则可在步骤1913处提供点积。然后,在步骤1913处确定的该一组点积可用作后续神经网络层的输入或作为推断过程的输出。
图20和图21示出了神经网络及其通过NAND阵列进行的实施方式的示例。在上面参考图19所述的过程中,基于对应的读出放大器是否确定单位突触是导通的还是不导通,来确定对沿着每一位线的一个单位突触的输入的响应。对于给定的块,由读出放大器按顺序确定沿着NAND串的每个突触的贡献。
图20示出了三个完全连接的层,每个层有四个节点,使得各层之间的权重矩阵为4×4矩阵。在图20,节点处的输入被标记为Il,i,n,其中l为层索引,i为输入索引,并且n为神经元索引。在图20的示例中,示出了三个层,l=(0,1,2),并且每个层均具有四个节点,n=(0,1,2,3)。(输入索引用于以下示例中具有增加并行性的一些示例中。)则连接各层的权重矩阵Wl,n,n是4×4,其中用于根据一个层到下一个层的输入来形成点积的矩阵乘法是:
Il+1,i,n=Il,i,n*Wl,n,n
将一个层的输入作为字线对上的电压模式施加到单位突触,以产生作为下一层的输入的点积值。
图21是这些权重矩阵如何存储在NAND阵列的单位突触中以用于矩阵乘法的阵列内计算的示意图。相对于图18,块(在此标记为块0)用存储在单位突触中的权重表示,而不是用对应的存储器单元对表示,电压电平输入模式表示为单个输入,而不是施加至对应字线对的电压电平。然后,将一对层之间的权重矩阵存储在沿着多个NAND串的多个单位突触中,其中每个NAND串的单位突触的数量和NAND串的数量对应于权重矩阵的大小。在4×4权重矩阵的该示例中,这对应于沿着4个NAND串的4个单位突触。如图21所示,这些单位突触是4个相邻位线上的4个相邻单位突触,但是这些单位突触可以根据实施方案而不同地分布在各块上。
相对于图20的表示,权重矩阵以转置形式存储在NAND阵列上。例如,沿着连接到BL0的第一NAND串来存储从图20的第一层的不同输入进入第二层的顶部节点2001中的权重;并且沿着连接到BL3的第四NAND串来存储进入底部节点2003中的权重。为了说明对应关系,图21中还使用参考标号2001和2003来说明进入这些节点中的对应权重的位置。
为了计算矩阵乘法的不同点积,以一系列读取命令来提供数据输入。为了计算单个层的输出,然后在该示例中在以下四个循环内,由读出放大器按顺序读取权重的各页:
循环1:实现I0,0,0*W0,0,0
循环2:实现I0,0,1*W0,0,1
循环3:实现I0,0,2*W0,0,2
循环4:实现I0,0,3*W0,0,3
其中每个循环对应于图19的流程中的环路,并且可以在不同的实施方案中使用不同的感测顺序。循环的结果由每个位线上的读出放大器SA感测并累加在CSC中,其中累加过程的延迟在用于后续循环读取的并发乘法操作下被隐藏。然后,来自每个位线的输出Pn将是下一层的输入Il+1,i,n
图22示出了神经网络及其通过NAND阵列进行的实施方式的示例,该实施方式用以通过利用单个平面内的多个块来实现跨NAND块的高并行性。在上面参考图19和图21所述的过程中,基于对应的读出放大器是否确定单位突触是导通的还是不导通,来确定对沿着每一位线的一个单位突触的输入的响应。图22考虑了使用多位读出放大器(诸如可以区分不同电流电平的读出放大器),从而允许同时感测单个平面内的多个块的实施方案。
在目的为确定存储在存储器单元中的数据状态的标准读取操作中,基于选定存储器单元是否导通,由读出放大器基于沿着位线的电流电平或电压电平来进行确定。如果同时感测到沿着公共位线的多个单元,其中一些导通而一些不导通,则不可能确定单独存储器中的哪个存储器是导通的存储器单元并建立它们的对应数据状态。然而,对于来自矩阵乘法的计数器输出Pn,其只是响应于所关注的输入而导通的单位突触的数量之和,而不是单独突触中的哪一个作出贡献。因此,如果读出放大器能够确定导通突触的数量,则可以同时确定不同块上的多个单位突触响应于对应的一组输入的响应,从而增加并行性。通过结合多位读出放大器,图22的实施方案允许并行地感测来自不同块的沿着公共位线的多个单位突触。
图22与图21类似地布置,并且再次示出为存储连接图20的前两层的相同4×4权重矩阵。图22与图21的不同之处在于,权重现在分布在两个不同的块(在此标记为块0和块1)之间,但这些块可以是同一平面的任意两个块,并且讨论可以扩展到多于两个块以进一步增大并行性。如上面关于图20和图21所讨论的,权重矩阵再次以转置形式进行存储。
为了执行矩阵乘法,以一系列读取命令来提供数据输入,但是为了计算单个层的输出,现在并行读取多个块(读取每个块的单位突触的一个页面)。在图22的示例中,对于图20的矩阵,其中两个块同时被激活,可以在2个循环延迟内计算层的输出:
循环1:实现I0,0,0*W0,0,0+I0,0,2*W0,0,2
循环2:实现I0,0,1*W0,0,1+I0,0,3*W0,0,3
其中累加循环2,同时计算循环1的输出,以使得累加延迟在并发乘法运算下隐藏。
图23是与图17类似但结合了图22所示的多块并行性的点积计算的一个实施方案的流程图。相对于步骤1701,步骤2301处对多个块的并行感测现在可以在每个环路中同时并发地施加多个输入。在步骤2303处,读出放大器的输出现在是多位值,而不是步骤1703的二值值,并且对应于沿着位线的导通单位突触的数量。然后在步骤2305处累加多位值,其中步骤2305、2307和2309对应于图17的步骤1705、1707和1709。
为了进一步增大并行性,可将同时感测的块的数量增加到超过图22的示例中所示的两个,至多增加到层的输入的总数。并行度可基于包括以下的考虑因素:将被汲取的合成电流的量,以及可由多位读出放大器根据可用的电流窗口合理地实现的分辨率水平。
图24示出了可通过使用可跨多个平面同时对神经网络的输入进行推断的架构来进一步増加并行性的附加实施方案。多平面实施方式可以用于在每个平面内一次感测单个块(如图21所示),或者用于在每个平面内一次感测多个块(如图22所示)。图24的示例再次基于图20的网络的示例,并且在每个平面内使用两个平面和两个块,但是平面和块的数量都可以扩展。
图24示出了两个平面,即平面0和平面1,对于同时感测每平面两个块的实施方案,平面可以在公共管芯上或在不同管芯上。对于平面0和平面1两者,权重都如图22所示存储,并且其他要素也根据图22进行重复。平面不同之处在于两个平面的输入索引不同,其中平面0的输入为I0,0,n,并且平面1的对层的一组后续输入为I0,1,n
在块级并行中,存储器可以使用单个平面的多个块来计算单个层的一个输出,其中可以如参考图22所述并行地发出读取命令以访问多个块,其中在一个循环中访问每个块的(单位突触的)一个页面。通过添加图24的平面级并行性,多个平面可以用于通过使用存储在两个平面中的相同权重矩阵来计算单个层的多个输出,并且可以将数据并行地提供给两个平面。在图24的实施方案中,并行地使用具有2个块/平面的2个平面,可以在2个循环延迟内计算出单个层的两个输出,其中累加延迟在乘法(读取命令)下被隐藏。
并行性也可以通过使用平面流水线化来提高,其中一个平面的输出(对应于一组节点之间的矩阵乘法)可以用作另一个平面的输入(对应于下一组节点之间的矩阵乘法)。平面流水线化还可以是组合的块级并行性、平面级并行性,或两者,以实现甚至更高水平的并行性。
图25示出了用于不同神经网络层的平面流水线化的实施方案。重新参见图20的示例,流水线中的第一级存储层0与层1之间的权重矩阵,并且下一级存储连接层1与层2的权重矩阵。图25的示例针对两个级,并且还包括2平面并行性和2块并行性,但是这些并行性都是独立的方面,并且可以类似地并入更多的流水线级,并且当包括这种附加并行性时,两个平面块级的并行度更高。该平面可形成在单个管芯上或多个管芯上。
在图25的顶部,平面0,0和平面0,1被布置为图24的实施方案的平面0和平面1,并且接收平面0,0的输入I0,0,n和平面0,1的输入I0,1,n。平面0,0 和平面0,1使用块级并行性和平面级并行性来计算层0的输出,以生成平面1,0和平面1,1的流水线中的下一级的输入I1 ,0,n和I1,1,n。在图25的下部,平面1,0和平面1,1被布置为平面0,0和平面0,1中的前一流水线级,但是现在存储第二层的权重矩阵条目W1,n,n(再次以转置形式存储),而不是第一层的W0 ,n,n条目。通过将第一级的输出供应给第二级并将输入I1,0,n和I1,1,n施加至层1矩阵条目,则计算出层1的输出。
应当注意,不同层的权重可以存储在同一块、同一平面或两者中,但是这会降低并行度,因为不同层的矩阵乘法不会同时执行。这由图26的实施方案说明。
图26示出了不同层的权重可存储在同一块、同一平面或两者(在这种情况下)中的实施方案。更具体地,图26示出了一个平面,该平面具有用于一个平面上的两个层的输入,每个层的权重在同一块中。在该示例中,在图25的平面1,0中的层1权重现在处于与图25的平面0,0中的层0权重相同的块中。因此,图26中的块0包括层0和层1的Input<0>和Input<1>的权重,并且块1包括层0和层1的Input<2>和Input<3>的权重。层0的输入I0,0,n生成Pn,然后可以如参考图22所述在第一组读取中计算层0的I1,0,n的输出。I1,0,n用作层1的输入,同样如参考图22所述,但是利用层1的权重矩阵值W1,n,n来在第二组读取中生成层1输出。
上述实施方案提供了用于在NAND存储器结构中实现具有二值输入和二值权重的二值神经网络的推断阶段的方法和架构。通过使用两个串联连接的存储器单元作为单位突触,可以编码神经网络的二值权重并将该二值权重存储在NAND存储器阵列中。当二值神经网络用于大数据集和复杂的深度神经网络(DNN)结构时,这些技术允许实现具有改进的推断准确度的矩阵乘法的阵列内实施方式。
相对于标准的基于NAND的架构,所描述的实施方案提出了对现有的NAND存储器架构的一些小特征变化,以支持各种水平的计算并行性。对于编程和擦除操作,不需要电路更改。在行解码器、块解码器和/或平面解码器上引入改进以控制读取操作来感测存储在双单元单位突触上的权重,因为这些双单元单位突触使用具有不同电压控制的双字线选择,并且对于多块实施方案,具有多块选择。为了检测0输入,引入了修改的基于计数器的累加数字电路以及零输入检测电路。通过引入多位读出放大器,还可以使用跨块和平面的并行计算。
根据第一组的各方面,装置包括非易失性存储器单元阵列,以及连接到该非易失性存储器单元阵列的一个或多个控制电路。非易失性存储器单元阵列被布置为NAND串并且被配置为存储神经网络的多个权重,每个权重存储在公共NAND串上的多个非易失性存储器单元中。一个或多个控制电路被配置为接收神经网络的层的多个输入,将该多个输入转换为对应的多个电压模式,将该多个电压模式施加至非易失性存储器单元阵列以从而利用权重执行该多个输入的阵列内乘法,以及累加该阵列内乘法的结果。
在另外的方面,装置包括存储器单元阵列、字线解码器,以及多位读出放大器。存储器单元的阵列包括:位线、源极线、以及多个NAND串,该多个NAND串各自包括多个存储单元并且各自连接在所述位线与所述源极线之间。字线解码器连接到存储器单元,并且被配置为将NAND串中的第一多个NAND串偏置以对第一多个NAND串执行并发感测操作。多位读出放大器连接到位线,并且被配置为确定在并发感测操作中导通的第一多个NAND串的数量。
另外的方面包括方法,该方法包括接收多个输入值,以及将该多个输入值中的每一者转换成对应的电压模式。每个电压模式是多种包括一组N个电压值的电压模式中的一种。将多种电压模式施加到连接至共享位线的一个或多个NAND串。每次将该电压模式中的不超过一种施加到NAND串中的任何单个NAND串,并且将该电压模式中的每种电压模式的一组N个电压值施加到NAND串的施加该种电压模式的对应N个存储器单元。确定一个或多个NAND串中的一个NAND串响应于多种电压模式被施加到连接到共享位线的该一个或多个NAND串而导通的次数。
出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。
出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其他部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接到另一个元件,或者经由居间元件间接连接到另一个元件。当元件被提及直接连接到另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。
出于本文档的目的,术语“基于”可理解为“至少部分地基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。
出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。
前述详细描述是为了说明和描述的目的而给出的。其不旨在为穷举性的,也不旨在限于所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。

Claims (20)

1.一种装置,包括:
非易失性存储器单元阵列,所述非易失性存储器单元阵列被布置为NAND串并且被配置为存储神经网络的多个权重,每个权重存储在公共NAND串上的多个非易失性存储器单元中;和
一个或多个控制电路,所述一个或多个控制电路连接到所述非易失性存储器单元阵列,所述一个或多个控制电路被配置为接收神经网络的层的多个输入,将所述多个输入转换为对应的多个电压模式,将所述多个电压模式施加至所述非易失性存储器单元阵列以从而利用所述权重执行所述多个输入的阵列内乘法,以及累加所述阵列内乘法的结果。
2.根据权利要求1所述的装置,其中所述非易失性存储器单元以二值格式存储数据。
3.根据权利要求2所述的装置,其中所述神经网络为二值神经网络,并且每个权重存储在一对非易失性存储器单元中,所述非易失性存储器单元中的一个处于编程状态,而另一个处于擦除状态。
4.根据权利要求1所述的装置,其中:
所述非易失性存储器单元阵列包括连接到公共位线的多个NAND串;并且
所述一个或多个控制电路还被配置为将所述多个电压模式同时施加到连接到所述公共位线的所述多个NAND串,并在用于所述公共位线的多位感测操作中累加所述阵列内乘法的所述结果。
5.根据权利要求1所述的装置,其中所述非易失性存储器单元阵列包括:
多个NAND串,所述多个NAND串连接到公共位线;
并且所述一个或多个控制电路还被配置为将所述多个电压模式顺序地施加到连接到所述公共位线的所述多个NAND串,以及在顺序感测操作中累加所述阵列内乘法的所述结果。
6.根据权利要求1所述的装置,其中所述非易失性存储器单元阵列包括:
第一多个NAND串,所述第一多个NAND串各自连接到对应的位线;并且
所述一个或多个控制电路还被配置为将所述多个电压模式中的第一电压模式同时施加到所述第一多个NAND串,以及同时独立地累加所述第一多个NAND串中的每个NAND串的所述阵列内乘法的结果。
7.根据权利要求1所述的装置,其中所述一个或多个控制电路还被配置为提供所述阵列内乘法的累加结果作为所述神经网络的后续层的输入。
8.根据权利要求7所述的装置,其中所述一个或多个控制电路还被配置为对所述神经网络的所述后续层的所述输入执行后续的阵列内乘法。
9.一种装置,包括:
存储器单元阵列,所述存储器单元阵列包括:
位线;
源极线;和
多个NAND串,所述多个NAND串各自包括多个存储器单元并且各自连接在所述位线与所述源极线之间;
字线解码器,所述字线解码器连接到所述存储器单元,并且被配置为将所述NAND串中的第一多个NAND串偏置以对所述第一多个NAND串执行并发感测操作;和
多位读出放大器,所述多位读出放大器连接到所述位线并且被配置为确定在所述并发感测操作中导通的所述第一多个NAND串的数量。
10.根据权利要求9所述的装置,还包括:
计数器,所述计数器连接到所述多位读出放大器并被配置为通过对应于在所述并发感测操作中导通的所述第一多个NAND串的数量来递增计数值。
11.根据权利要求9所述的装置,其中所述并发感测操作中的每个包括:
同时感测所述第一多个NAND串中的每个NAND串上的多个存储器单元。
12.根据权利要求11所述的装置,其中所述第一多个NAND串中的每个NAND串上的所述多个存储器单元中的每个存储器单元对应于神经网络的权重。
13.根据权利要求12所述的装置,其中权重为二值权重。
14.一种方法,包括:
接收多个输入值;
将所述多个输入值中的每个转换成对应的第一电压模式,每个第一电压模式为包括一组N个电压值的多个电压模式中的一个;
将所述多个第一电压模式施加到连接到共享位线的一个或多个NAND串,其中每次将不多于一个所述第一电压模式施加到所述NAND串中的任何单个NAND串,以及将所述第一电压模式中的每个的所述一组N个电压值施加到所述NAND串的施加有所述第一电压模式的对应N个存储器单元;以及
确定所述一个或多个NAND串中的所述一个NAND串响应于所述多个第一电压模式被施加到连接到所述共享位线的所述一个或多个NAND串而导通的次数。
15.根据权利要求14所述的方法,其中N=2,并且施加所述第一电压模式中的每一个的所述两个存储器单元包括处于擦除状态的第一存储器单元和处于编程状态的第二存储器单元。
16.根据权利要求14所述的方法,其中所述输入值对应于二值神经网络的层的输入,并且存储在施加所述第一电压模式中的每一个的两个存储器单元中的数据是二值神经网络的权重。
17.根据权利要求14所述的方法,其中:
将所述多个第一电压模式施加到连接到所述共享位线的所述一个或多个NAND串包括将所述多个第一电压模式中的每个同时施加到所述NAND串中的对应一个NAND串;以及
确定所述一个或多个NAND串中的所述一个NAND串响应于所述多个第一电压模式被施加到所述一个或多个NAND串而导通的所述次数包括执行多位感测操作。
18.根据权利要求14所述的方法,其中:
将所述多个第一电压模式施加到连接到所述共享位线的所述一个或多个NAND串包括将所述多个第一电压模式中的每个顺序地施加到所述NAND串中的对应一个NAND串;以及
确定所述一个或多个NAND串中的所述一个NAND串响应于所述多个第一电压模式被施加到所述一个或多个NAND串而导通的所述次数包括执行多个顺序感测操作。
19.根据权利要求14所述的方法,还包括:
在将所述多个第一电压模式施加到连接到共享位线的所述一个或多个NAND串的同时,将所述多个第一电压模式施加到连接到附加位线的所述一个或多个NAND串;以及
确定连接到所述附加位线的所述一个或多个NAND串中的所述一个NAND串响应于所述多个第一电压模式被施加到连接到所述附加位线的所述一个或多个NAND串而导通的次数。
20.根据权利要求14所述的方法,其中将所述多个第一电压模式施加到连接到共享位线的一个或多个NAND串包括:
将通过电压施加到除了施加有所述第一电压模式的所述N个存储器单元之外的所述一个或多个NAND串的存储器单元。
CN201910505098.9A 2018-07-24 2019-06-12 Nand存储器阵列中的二值神经网络的实现 Active CN110782026B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862702713P 2018-07-24 2018-07-24
US62/702,713 2018-07-24
US16/368,347 2019-03-28
US16/368,347 US11328204B2 (en) 2018-07-24 2019-03-28 Realization of binary neural networks in NAND memory arrays

Publications (2)

Publication Number Publication Date
CN110782026A true CN110782026A (zh) 2020-02-11
CN110782026B CN110782026B (zh) 2023-12-05

Family

ID=69178555

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910505098.9A Active CN110782026B (zh) 2018-07-24 2019-06-12 Nand存储器阵列中的二值神经网络的实现
CN201910531149.5A Active CN110782027B (zh) 2018-07-24 2019-06-19 用于人工神经网络的差分非易失性存储器单元

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910531149.5A Active CN110782027B (zh) 2018-07-24 2019-06-19 用于人工神经网络的差分非易失性存储器单元

Country Status (2)

Country Link
US (2) US10643119B2 (zh)
CN (2) CN110782026B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022045333A (ja) * 2020-09-08 2022-03-18 旺宏電子股▲ふん▼有限公司 メモリデバイスおよびその動作方法
TWI777645B (zh) * 2020-09-08 2022-09-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11636322B2 (en) 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
TWI809663B (zh) * 2021-02-25 2023-07-21 美商超捷公司 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
US20230238047A1 (en) * 2022-01-21 2023-07-27 National Tsing Hua University Memory unit with time domain edge delay accumulation for computing-in-memory applications and computing method thereof

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909449B2 (en) * 2017-04-14 2021-02-02 Samsung Electronics Co., Ltd. Monolithic multi-bit weight cell for neuromorphic computing
KR102126791B1 (ko) * 2017-11-23 2020-06-25 서울대학교산학협력단 교차점 어레이를 이용한 신경 연결망 및 그 패턴 인식방법
US11403067B2 (en) * 2019-03-20 2022-08-02 Micron Technology, Inc. Memory array data structure for posit operations
US10997498B2 (en) * 2019-03-27 2021-05-04 Globalfoundries U.S. Inc. Apparatus and method for in-memory binary convolution for accelerating deep binary neural networks based on a non-volatile memory structure
US11521658B2 (en) * 2019-06-25 2022-12-06 Sandisk Technologies Llc Binary weighted voltage encoding scheme for supporting multi-bit input precision
US11587612B2 (en) * 2019-07-03 2023-02-21 Micron Technology, Inc. Neural network memory with an array of variable resistance memory cells
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
US11600321B2 (en) * 2020-03-05 2023-03-07 Silicon Storage Technology, Inc. Analog neural memory array storing synapsis weights in differential cell pairs in artificial neural network
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
US11544547B2 (en) 2020-06-22 2023-01-03 Western Digital Technologies, Inc. Accelerating binary neural networks within latch structure of non-volatile memory devices
US20220067483A1 (en) * 2020-08-27 2022-03-03 Micron Technology, Inc. Pipelining spikes during memory access in spiking neural networks
US11283008B1 (en) 2020-08-31 2022-03-22 Western Digital Technologies, Inc. Apparatus and methods for magnetic memory devices with magnetic assist layer
US20220075600A1 (en) * 2020-09-08 2022-03-10 Macronix International Co., Ltd. Memory device and operation method thereof
US11393516B2 (en) 2020-10-19 2022-07-19 Western Digital Technologies, Inc. SOT-based spin torque oscillators for oscillatory neural networks
EP3992862A1 (en) * 2020-10-28 2022-05-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Electronic circuit for calculating weighted sums
US11914973B2 (en) 2020-11-19 2024-02-27 Apple Inc. Performing multiple bit computation and convolution in memory
CN113344194B (zh) * 2021-05-31 2024-02-13 郑州轻工业大学 一种基于忆阻的操作性条件反射电路
TWI794910B (zh) * 2021-07-29 2023-03-01 旺宏電子股份有限公司 記憶體及用於基於記憶體的類神經網路的訓練方法
CN113744779A (zh) * 2021-08-12 2021-12-03 中国科学院微电子研究所 一种磁阻存储器单元、写控制方法及存算模块
US11687252B2 (en) 2021-10-18 2023-06-27 Western Digital Technologies, Inc. Non-volatile memory with pre-trained model and inference circuit
WO2023112674A1 (ja) * 2021-12-13 2023-06-22 ヌヴォトンテクノロジージャパン株式会社 人工知能処理装置および人工知能処理装置の学習推論方法
WO2023192795A1 (en) * 2022-03-29 2023-10-05 San Jose State University Research Foundation Synaptic array for field-training-capable in-memory computing using non-volatile memory technologies
US20240045799A1 (en) * 2022-08-08 2024-02-08 Micron Technology, Inc. Weighted valid address count for garbage collection
US20240089634A1 (en) * 2022-09-08 2024-03-14 Micron Technology, Inc. Monitoring of User-Selected Conditions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136763A1 (en) * 2012-11-09 2014-05-15 Sandisk Technologies Inc. CAM NAND with OR Function and Full Chip Search Capability
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
CN107454966A (zh) * 2015-05-21 2017-12-08 谷歌公司 用于神经网络处理器的预取权重
US20180039886A1 (en) * 2016-08-05 2018-02-08 Xilinx, Inc. Binary neural networks on progammable integrated circuits
US20180144240A1 (en) * 2016-11-21 2018-05-24 Imec Vzw Semiconductor cell configured to perform logic operations

Family Cites Families (34)

* 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
US7782674B2 (en) * 2007-10-18 2010-08-24 Micron Technology, Inc. Sensing of memory cells in NAND flash
US8867278B2 (en) * 2011-02-28 2014-10-21 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system including the same, and method of operating nonvolatile memory device
US9430735B1 (en) 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device
US9965208B1 (en) * 2012-02-23 2018-05-08 Micron Technology, Inc. Memory device having a controller to enable and disable mode control circuitry of the controller
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
US8792279B2 (en) 2012-11-09 2014-07-29 Sandisk Technologies Inc. Architectures for data analytics using computational NAND memory
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
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent 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
US8780634B2 (en) 2012-11-09 2014-07-15 Sandisk Technologies Inc. CAM NAND with OR function and full chip search capability
US10127150B2 (en) 2012-11-09 2018-11-13 Sandisk Technologies Llc Key value addressed storage drive using NAND flash based content addressable memory
US9183350B2 (en) 2013-03-29 2015-11-10 Case Western Reserve University Quantitatively characterizing disease morphology with cell orientation entropy
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
US9727459B2 (en) * 2014-08-22 2017-08-08 Seagate Technology Llc Non-volatile, solid-state memory configured to perform logical combination of two or more blocks sharing series-connected bit lines
US9356074B1 (en) * 2014-11-17 2016-05-31 Sandisk Technologies Inc. Memory array having divided apart bit lines and partially divided bit line selector switches
US20170054032A1 (en) * 2015-01-09 2017-02-23 SanDisk Technologies, Inc. Non-volatile memory having individually optimized silicide contacts and process therefor
US10002658B1 (en) * 2015-11-02 2018-06-19 Green Mountain Semiconductor Inc. Dynamic random-access memory with embedded artificial neural network functionality
WO2017124237A1 (zh) * 2016-01-18 2017-07-27 华为技术有限公司 内存设备及基于多层rram交叉阵列的数据处理方法
WO2017136080A1 (en) 2016-02-05 2017-08-10 Google Inc. Augmenting neural networks with external memory
US11501130B2 (en) 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
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 東芝メモリ株式会社 半導体記憶装置
US11170290B2 (en) * 2019-03-28 2021-11-09 Sandisk Technologies Llc Realization of neural networks with ternary inputs and binary weights in NAND memory arrays
US11328204B2 (en) * 2018-07-24 2022-05-10 Sandisk Technologies Llc Realization of binary neural networks in NAND memory arrays
CN110597555B (zh) 2019-08-02 2022-03-04 北京航空航天大学 非易失性存内计算芯片及其运算控制方法
CN110598858A (zh) 2019-08-02 2019-12-20 北京航空航天大学 基于非易失性存内计算实现二值神经网络的芯片和方法
US11625586B2 (en) * 2019-10-15 2023-04-11 Sandisk Technologies Llc Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136763A1 (en) * 2012-11-09 2014-05-15 Sandisk Technologies Inc. CAM NAND with OR Function and Full Chip Search Capability
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
CN107454966A (zh) * 2015-05-21 2017-12-08 谷歌公司 用于神经网络处理器的预取权重
US20180039886A1 (en) * 2016-08-05 2018-02-08 Xilinx, Inc. Binary neural networks on progammable integrated circuits
US9646243B1 (en) * 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
US20180144240A1 (en) * 2016-11-21 2018-05-24 Imec Vzw Semiconductor cell configured to perform logic operations

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636322B2 (en) 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
JP2022045333A (ja) * 2020-09-08 2022-03-18 旺宏電子股▲ふん▼有限公司 メモリデバイスおよびその動作方法
TWI777645B (zh) * 2020-09-08 2022-09-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
JP7279293B2 (ja) 2020-09-08 2023-05-23 旺宏電子股▲ふん▼有限公司 メモリデバイスおよびその動作方法
US11809838B2 (en) 2020-09-08 2023-11-07 Macronix International Co., Ltd. Memory device and operation method thereof
TWI809663B (zh) * 2021-02-25 2023-07-21 美商超捷公司 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
US20230238047A1 (en) * 2022-01-21 2023-07-27 National Tsing Hua University Memory unit with time domain edge delay accumulation for computing-in-memory applications and computing method thereof
US11967357B2 (en) * 2022-01-21 2024-04-23 National Tsing Hua University Memory unit with time domain edge delay accumulation for computing-in-memory applications and computing method thereof

Also Published As

Publication number Publication date
CN110782026B (zh) 2023-12-05
US20200034686A1 (en) 2020-01-30
US20200311512A1 (en) 2020-10-01
US10643119B2 (en) 2020-05-05
CN110782027B (zh) 2023-10-24
CN110782027A (zh) 2020-02-11

Similar Documents

Publication Publication Date Title
CN110782026B (zh) Nand存储器阵列中的二值神经网络的实现
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
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
US11625586B2 (en) Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
US11568228B2 (en) Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
CN110751276A (zh) 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
US11397885B2 (en) Vertical mapping and computing for deep neural networks in non-volatile memory
US11544547B2 (en) Accelerating binary neural networks within latch structure of non-volatile memory devices
TWI783539B (zh) 具有外部磁場程式化輔助的超低電力推理引擎
TWI783538B (zh) 多階超低功率推理引擎加速器
US20220398439A1 (en) Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions
US11556311B2 (en) Reconfigurable input precision in-memory computing
US11663471B2 (en) Compute-in-memory deep neural network inference engine using low-rank approximation technique
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
GR01 Patent grant
GR01 Patent grant