CN114388039A - 多级超低功率推理引擎加速器 - Google Patents
多级超低功率推理引擎加速器 Download PDFInfo
- Publication number
- CN114388039A CN114388039A CN202110622315.XA CN202110622315A CN114388039A CN 114388039 A CN114388039 A CN 114388039A CN 202110622315 A CN202110622315 A CN 202110622315A CN 114388039 A CN114388039 A CN 114388039A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory cells
- array
- voltage
- memory cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/16—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5692—Digital 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 read-only digital stores using storage elements with more than two stable states
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/16—Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Logic Circuits (AREA)
Abstract
本发明题为“多级超低功率推理引擎加速器”。本发明提供了用于执行神经网络的存储器内计算推理的非易失性存储器结构。存储器阵列根据交叉点架构形成,每个交叉点结合部存在存储器单元。多级存储器单元(MLC)由被金属层分开的多个超薄电介质层形成,其中该存储器单元的编程通过选择写入电压电平来选择性地击穿该电介质层中的一个或多个电介质层来完成。在另选的一组实施方案中,该存储器单元形成为反熔丝。
Description
背景技术
人工神经网络越来越多地用于人工智能和机器学习应用中。在人工神经网络中,将一组输入通过一个或多个中间层或隐藏层传播以生成输出。通过多组权重来连接将输入连接到输出的各层,所述多组权重是在训练或学习阶段中通过以下方式生成的:确定用于将输入转换成输出的一组数学变换,移动通过所述层,计算每个输出的概率。一旦确立了权重,就可以在推理阶段使用所述权重来根据一组输入确定输出。虽然此类神经网络可以提供高度准确的结果,但是它们是极其计算密集型的,并且在从存储器中读取不同层的连接权重并将这些权重传输到某种处理单元的多个处理单元中所涉及的数据传输可能相当密集。
附图说明
类似编号的元件是指不同的图中的共同部件。
图1是连接到主机的存储器系统的一个实施方案的框图。
图2是前端处理器电路的一个实施方案的框图。在一些实施方案中,前端处理器电路是控制器的一部分。
图3是后端处理器电路的一个实施方案的框图。在一些实施方案中,后端处理器电路是控制器的一部分。
图4是存储器封装件的一个实施方案的框图。
图5是存储器管芯的一个实施方案的框图。
图6A和图6B示出了通过晶圆对晶圆接合而耦接到存储器结构的控制电路的示例。
图7示出了卷积神经网络(CNN)的简单示例。
图8示出了人工神经网络中的全连接层的简单示例。
图9A是描述用于训练神经网络以生成一组权重的过程的一个实施方案的流程图。
图9B是描述用于使用神经网络进行推理的过程的一个实施方案的流程图。
图10是卷积神经网络中的卷积运算的示意图。
图11是矩阵乘法在神经网络的全连接层中的用途的示意图。
图12A至图12C描绘了具有交叉点架构的存储器阵列的一部分的一个实施方案。
图13是交叉点阵列和用于操作该阵列的一些控制电路的顶视图。
图14是用于多级超低功率推理引擎中的存储器单元设计的第一实施方案的示意图。
图15是使用可在多级超低功率推理引擎中使用的使用分组电介质层的存储器单元设计的另一组实施方案的示意图。
图16示出了用于选择待编程的存储器单元的半选方案。
图17是用于写入具有由多个电介质层形成的存储器单元的交叉点存储器的序列的实施方案的示意图。
图18A至图18C示出了在具有两层级的层的示例中利用电介质击穿的写入机制。
图19A和图19B示出了在具有三层级的层的示例中利用电介质击穿的写入机制。
图20是示出交叉点架构的使用的实施方案的流程图,该交叉点架构使用具有超薄电介质层的存储器单元用于推理引擎。
图21是基于单个FET的反熔丝以及用于偏置以对反熔丝编程的实施方案的示意图。
图22是结合有图21的基于反熔丝的存储器单元的交叉点阵列结构的一部分的顶视图。
图23是示出交叉点架构的编程的实施方案的流程图,该交叉点架构使用具有基于FET的反熔丝的存储器单元用于推理引擎。
具体实施方式
当神经网络执行推理或训练操作时,执行各自涉及大量数据的大量计算,特别是在深度神经网络或DNN的情况下,其涉及非常大量的用来传播输入的计算层,诸如卷积层和全连接层。为了避免大量数据移入和移出存储器设备,神经网络的层的权重被存储在存储器设备的非易失性存储器阵列中,并且每个层的计算在该设备上执行。为了进一步改善性能,就增加速度和降低功率消耗而言,下文提供了多级存储器单元(MLC)的实施方案,该多级存储器单元可用于在神经网络的推理操作期间执行权重和输入之间的阵列内矢量乘法,并且确实需要特殊的片上编程。用于推理引擎的矢量乘法设备包括在每个交叉点结合部具有存储器单元的交叉点阵列。控制电路被配置为向一个线平面(即,字线)中的每个线提供独立的输入电压,并且读取另一个线平面(即,位线)中的每个线上的电流。矢量乘法在交叉点存储器阵列中作为输入电压乘以由存储器单元编码的矩阵权重来执行。可单独使用输入电压来对交叉点阵列中的存储器单元编程。在第一组实施方案中,多级存储器单元由被金属层分开的多个超薄电介质层形成,其中存储器单元的编程通过选择写入电压电平来选择性地击穿该电介质层中的一个或多个电介质层来完成。在第二组实施方案中,存储器单元形成为反熔丝。
图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闪存存储器)。在其他实施方案中,存储器封装件可包括其他类型的存储器,诸如基于电阻式随机存取存储器(诸如,ReRAM、MRAM、FeRAM或RRAM)的存储级存储器(SCM)或相变存储器(PCM)。
控制器102经由接口130与主机120通信,该接口实现例如PCI Express(PCIe)上的NVM Express(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)除非将存储器结构作为块擦除,否则可以不写入该存储器结构。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用于对数据执行XOR,使得可在存在编程错误的情况下以可恢复的方式组合和存储数据。数据路径控制器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。存储器结构326能够经由行解码器324由字线来寻址,并且经由列解码器332由位线来寻址。读/写电路328包括多个感测块350并且允许存储器单元页面被并行读取或并行编程,该感测块包括SB1、SB2、…、SBp(感测电路)。命令和数据经由线路318在控制器与存储器管芯300之间传输。在一个实施方案中,存储器管芯300包括连接到线路318的一组输入和/或输出(I/O)引脚。
控制电路310与读/写电路328配合以在存储器结构326上执行存储器操作(例如,写入、读取等),并且包括状态机312、片上地址解码器314,以及功率控制电路316。状态机312提供存储器操作的管芯级控制。在一个实施方案中,状态机312可由软件编程。在其他实施方案中,状态机312不使用软件并且完全地在硬件(例如,电子电路)中实现。在另一个实施方案中,状态机312被微控制器替换。
片上地址解码器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)、FeRAM、相变存储器(例如,PCM)等。用于存储器结构326的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、叠堆二维阵列、竖直位线阵列等等。
ReRAM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)存取的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
磁阻随机存取存储器(MRAM)利用磁存储元件来存储数据。这些元件由两个铁磁薄膜形成,这些铁磁薄膜也被称为层,每层是铁磁性的,由薄绝缘层分开。这两个层中的一个是设置为特定极性的永磁体;可以改变另一层的磁化以匹配外磁场的磁化来存储存储器。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。
相变存储器(PCM)利用了硫属化合物玻璃的独特性能。一个实施方案使用GeTe-Sb2Te3超晶格通过仅利激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。在其他PCM实施方案中,存储器单元通过电流脉冲来编程。应当注意,在该文件中使用“脉冲”不需要矩形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。
本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构、存储器配置或材料构成,但涵盖了在如本文所述的以及如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。
可以将图5的元件分成两个部分:存储器单元的存储器结构326;和外围电路,包括所有其他元件。存储器电路的重要特性是其容量,该容量可通过如下方式增加:增加留给存储器结构326作特定用途的存储器管芯300的面积;然而,这减小了可用于外围电路的存储器管芯300的面积。这可对这些外围元件造成相当严重的限制。例如,需要在可用区域内装配感测放大器电路,这可是对感测放大器设计架构的重大限制。相对于管芯上控制电路310,可用面积减小会限制可在芯片上实现的可用功能。因此,在存储器管芯300的设计中,需要对存储器结构326的专用面积量以及外围电路的专用面积量进行基本权衡。
存储器结构326和外围电路通常相左的另一个领域是形成这些区域所涉及的处理,因为这些区域通常涉及不同的处理技术以及赋予单个管芯以不同制式的权衡。例如,当存储器结构326是NAND闪存时,这是NMOS结构,而外围电路通常是基于CMOS的。例如,感测块350中的感测放大器电路、功率控制块316中的电荷泵、状态机312中的逻辑元件以及其他外围电路通常采用PMOS设备。用于制造CMOS管芯的处理操作在许多方面将不同于针对NMOS闪存NAND存储器或其他存储器单元技术所优化的处理操作。
为了改进这些限制,下文所述的实施方案可将图5的元件分离到单独形成的管芯上,然后将这些管芯接合在一起。更具体地,存储器结构326可形成在一个管芯上,并且外围电路元件中的一些或全部(包括一个或多个控制电路)可形成在单独的管芯上。例如,存储器管芯可以仅由存储器元件形成,诸如闪存NAND存储器、PCM存储器、ReRAM存储器或其他存储器类型的存储器单元阵列。然后可以将外围电路中的一些或全部电路(甚至包括诸如解码器和感测放大器等元件)移到单独的管芯上。这允许根据其技术单独地优化存储器管芯中的每个管芯。例如,NAND存储器管芯可针对基于NMOS的存储器阵列结构进行优化,而无需担心现在已移到可针对CMOS处理进行优化的独立外围电路管芯上的CMOS元件。这为外围元件提供了更多空间,如果外围元件被限制于容纳了存储器单元阵列的相同管芯的边缘,则现在可结合可能不容易结合的附加能力。然后可在接合式多管芯存储器电路中将两个管芯接合在一起,其中一个管芯上的阵列连接到另一个存储器电路上的外围元件。例如,虽然下面将集中介绍一个存储器管芯和一个外围电路管芯的接合式存储器电路,但其他实施方案可使用更多管芯,诸如两个存储器管芯和一个外围电路管芯。
图6A和图6B示出了图5的另选布置,它可使用晶圆对晶圆接合来实现以提供接合管芯对604。图6A示出了外围电路的示例,包括形成于外围电路或控制管芯608中的控制电路,这些电路耦接到形成于存储器管芯610中的存储器结构326。通用部件如图5那样编号。可以看出,控制电路310、读/写电路328和行解码器324(其可通过CMOS工艺形成)位于控制管芯608中。还可将另外的元件诸如来自控制器102的功能移动到控制管芯608中。控制电路310、读/写电路328、行解码器324和列解码器332可以由常规工艺(例如,CMOS工艺)形成,使得添加更常见于存储器控制器102上的元件和功能可能需要很少的附加工艺步骤或不需要附加工艺步骤(即:用于制造控制器102的相同工艺步骤也可用于制造控制电路310、读/写电路328和行解码器324)。因此,尽管移走管芯(诸如,存储器管芯300)中的此类电路可减少制造此类管芯所需的步骤数量,但向管芯(诸如,控制管芯608)添加此类电路可能不需要任何附加的工艺步骤。
图6A示出了控制管芯608上的通过电路径612耦接到存储器管芯610上的存储器结构326的读/写电路328。例如,电路径612可以提供读/写电路328与存储器结构326位线之间的电连接。电路径可以从控制管芯608中的读/写电路328延伸穿过控制管芯608上的焊盘,该焊盘接合到存储器管芯610的对应焊盘,该对应焊盘连接到存储器结构326的位线。存储器结构326的每个位线可具有电路径612中对应的电路径,包括连接到读/写电路328的一对接合焊盘。类似地,行解码器电路324通过电路径614耦接到存储器结构326。电路径614中的每条电路径可以对应于字线、虚设字线或选定栅极线。也可在控制管芯608与存储器管芯610之间提供附加的电路径。
图6B是示出关于接合管芯对604的集成存储器组件的一个实施方案的布置的更多细节的框图。存储器管芯610包含存储器单元组成的平面620或阵列。存储器管芯610可具有附加的平面或阵列。针对每个平面或阵列620示出了一个代表性位线(BL)和代表性字线(WL)。每个平面或阵列620可能有数千或数万条这样的位线。在一个实施方案中,阵列或平面表示共享共同的一组不间断字线和不间断位线的连接的存储器单元组。
控制管芯608包括多个感测放大器(SA)350。在一些实施方案中,每个感测放大器350连接到一个位线或者可以连接到多个位线。感测放大器包含位线驱动器。因此,感测放大器可以向与其连接的位线提供电压。感测放大器被配置为感测位线的状况。在一个实施方案中,感测放大器被配置为感测在位线中流动的电流。在一个实施方案中,感测放大器被配置为感测位线上的电压。
控制管芯608包括多个字线驱动器660(1)-660(n)。字线驱动器660被配置为向字线提供电压。在该示例中,每个阵列或平面存储器单元有“n”个字线。在一个实施方案中,如果存储器操作是编程或读取,则选择所选块内的一个字线用于存储器操作。在一个实施方案中,如果存储器操作是擦除,则选择所选块内的所有字线用于擦除。字线驱动器660(例如,功率控制器316的一部分)向存储器管芯610中的字线提供电压。如上面相对于图6A所讨论的,控制管芯608还可以包括电荷泵、电压发生器等(图6B中未表示),其可以用于为字线驱动器660和/或位线驱动器提供电压。
存储器管芯610在存储器管芯610的第一主表面682上具有多个接合焊盘670a、670b。可存在“n”个接合焊盘670a以从对应的“n”个字线驱动器660(1)-660(n)接收电压。与平面620相关联的每个位线可以有一个接合焊盘670b。附图标号670将用于总体上指代主表面682上的接合焊盘。
在一些实施方案中,码字的每个数据位和每个奇偶校验位通过不同的接合焊盘对670b、674b传输。码字的位可通过接合焊盘对670b、674b并行传输。这相对于例如在存储器控制器102和集成存储器组件604之间传输数据提供了非常有效的数据传输。例如,存储器控制器102和集成存储器组件604之间的数据总线可例如提供要并行传输的八位、十六位或可能32位。然而,存储器控制器102和集成存储器组件604之间的数据总线不限于这些示例。
控制管芯608在控制管芯608的第一主表面684上具有多个接合焊盘674a、674b。可存在“n”个接合焊盘674a以将电压从对应的“n”个字线驱动器660(1)-660(n)输送到存储器管芯610。与平面620相关联的每个位线可以有一个接合焊盘674b。附图标号674将用于总体上指代主表面682上的接合焊盘。需注意,可存在接合焊盘对670a/674a和接合焊盘对670b/674b。在一些实施方案中,接合焊盘670和/或674是倒装芯片接合焊盘。
在一个实施方案中,接合焊盘670的图案匹配接合焊盘674的图案。接合焊盘670接合(例如,倒装芯片接合)到接合焊盘674。因此,接合焊盘670、674将存储器管芯610电耦接和物理耦接到控制管芯608。
此外,接合焊盘670、674允许存储器管芯610和控制管芯608之间的内部信号传送。因此,存储器管芯610和控制管芯608利用接合焊盘接合在一起。虽然图6A描绘了一个控制管芯608接合到一个存储器管芯610,但在另一个实施方案中,一个控制管芯608接合到多个存储器管芯610。
在本文中,“内部信号传送”是指控制管芯608与存储器管芯610之间的信号传送。内部信号传送允许控制管芯608上的电路控制存储器管芯610中的存储器操作。因此,接合焊盘670、674可以用于存储器操作信号传送。在本文中,“存储器操作信号传送”指的是与存储器管芯610中的存储器操作相关的任何信号。存储器操作信号传送可以包括但不限于提供电压、提供电流、接收电压、接收电流、感测电压和/或感测电流。
接合焊盘670、674可由例如铜、铝及其合金形成。在接合焊盘670、674和主表面(682,684)之间可存在衬垫。衬垫可以由例如钛/氮化钛堆叠形成。可以通过气相沉积和/或电镀技术施加接合焊盘670、674和衬垫。接合焊盘和衬垫一起可以具有720nm的厚度,但是在其他实施方案中该厚度可以更大或更小。
金属互连件和/或通孔可用于将管芯中的各种元件电连接到接合焊盘670、674。描述了可以用金属互连件和/或通孔实现的若干导电通路。例如,感测放大器350可通过通路664电连接到接合焊盘674b。相对于图6A,电路径612可对应于路径664、接合焊盘674b和接合焊盘670b。可能有成千上万个这样的感测放大器、通路和接合焊盘。需注意,BL不一定直接连接到接合焊盘670b。字线驱动器660可通过通路662电连接到接合焊盘674a。相对于图6A,电路径614可对应于通路662、接合焊盘674a和接合焊盘670a。需注意,通路662可包括用于每个字线驱动器660(1)-660(n)的单独的导电通路。同样,对于每个字线驱动器660(1)-660(n),可存在单独的接合焊盘674a。存储器管芯610的块2中的字线可通过通路664电连接到接合焊盘670a。在图6B中,对于块中对应的“n”个字线,存在“n”个通路664。对于每个通路664,可存在单独的一对接合焊盘670a、674a。
相对于图5,图6A的管芯上控制电路也可包括其逻辑元件内的附加功能,既包括比常见于存储器控制器102中的更通用的能力,也包括一些CPU能力,而且也包括应用程序专用功能。例如,这些激活函数可包括乘法与累加(MAC)运算的累加部分所用的加法运算和阈值确定运算、以及更高级运算(诸如,S型函数或tanh函数)。
在下文中,状态机312和/或控制器102(或等效功能电路)与图6A中的控制管芯608上所示的其他电路的全部电路或子集电路以及图5中的类似元件相结合,这可视为执行本文所述功能的一个或多个控制电路的一部分。控制电路可以仅包括硬件或者包括硬件和软件(包括固件)的组合。例如,由固件编程以执行本文描述的功能的控制器是控制电路的一个示例。控制电路可包括处理器、FGA、ASIC、集成电路或其他类型的电路。
现在转到可存储在非易失性存储器设备中的数据类型,在以下讨论中,所关注的数据类型的具体示例是人工神经网络诸如卷积神经网络或CNN所用的权重。名称“卷积神经网络”是指网络采用称为卷积的数学运算,即一种专用的线性运算。卷积网络是:在其各层中的至少一层中,用卷积代替通用矩阵乘法的神经网络。CNN由输入层和输出层、以及多个中间隐藏层形成。CNN的隐藏层通常是一系列卷积层,这些卷积层对乘法或其他点积进行“卷积”。
神经网络中的每个神经元通过将特定函数应用于来自前一层中的接收域的输入值来计算输出值。输入值的应用函数通过权重矢量和偏置来确定。在神经网络中,通过对这些偏置和权重进行迭代调整来进行学习。权重矢量和偏置被称为滤波器并且表示输入的具体特征(例如,具体形状)。CNN的区别特征是:许多神经元可共享同一滤波器。
图7是CNN的示例的示意图。图7示出了像素值阵列的初始输入图像,接着是多个卷积层,继而是多个全连接层,其中最后一层提供输出。第一个卷积层(卷积层1)中的每个神经元获取来自输入图像的n×n像素子区域中的输入数据。神经元所习得的权重(统称为其卷积滤波器)确定神经元响应于该输入的单值输出。在该卷积层中,通过沿着图像的x和y维度滑动输入区域以生成卷积层的值,将神经元滤波器应用于输入图像中。实际上,等效卷积通常由神经元针对不同输入区域进行静态相同拷贝来实现。使用每个层的习得权重,通过每个卷积层(卷积层1到卷积层N)来重复该过程,之后使用其习得权重,通过全连接层(L1到LM)来传播该过程。
图8更详细地示出了神经网络的若干全连接层。在图8中,所示的三层人工神经网络表示为圆圈所示的节点或人工神经元的互连组,以及从一个人工神经元的输出到另一个人工神经元的输入的一组连接。该示例示出了三个输入节点(I1、I2、I3)和两个输出节点(O1、O2),以及具有四个隐藏或中间节点(H1、H2、H3、H4)的中间层。人工神经网络的节点或人工神经元/突触由主机或其他处理系统的逻辑元件实现为数学函数,该数学函数接收一个或多个输入并将它们进行求和以产生输出。通常,对每个输入进行单独加权,并将总和通过节点的数学函数传递以提供节点的输出。
在常见人工神经网络实施方式中,节点(人工神经元/突触)之间的连接处的信号是实数,并且每个人工神经元的输出通过其输入之总和的一些非线性函数来计算。节点及其连接通常具有随着学习过程的进行而调节的权重。权重增大或减小连接处的信号强度。节点可具有阈值,使得仅当聚合信号超过该阈值时才发送信号。通常,节点聚集为层。不同的层可对其输入执行不同类型的转换。信号可能在多次遍历各层之后从第一层(输入层)行进到最后一层(输出层)。虽然图7仅示出单个中间或隐藏层,但是复杂的深度神经网络(DNN)可具有许多此类中间层。
受监督的人工神经网络通过供应输入,然后检查和校正输出而被“训练”。例如,受过识别狗品种训练的神经网络将处理一组图像并计算图像中的狗是某一品种的概率。用户可查看结果并选择网络应显示哪些概率(高于特定阈值等),并返回所提议的标签。每一如此的数学变换都被视为一层,并且复杂的神经网络具有许多层。由于大量的中间或隐藏层提供的深度,因此神经网络可以在受训练时对复杂的非线性关系建模。
图9A是描述用于训练神经网络以生成一组权重的过程的一个实施方案的流程图。该训练过程往往在云端执行,从而实现待使用的附加或更强大的处理。在步骤901处,接收输入,诸如一组图像(例如,图7中的图像输入)。在步骤903处,使用当前滤波器或权重组,通过将输入连接到下一层(例如,图7中的卷积层1)的层来传播输入。然后在步骤905中,在下一层(例如,图7中的卷积层2)处接收神经网络的输出,使得作为来自一层中的输出所收到的值用作下一层的输入。来自第一层的输入以这种方式通过所有中间层或隐藏层传播,直到它们到达输出。在先前段落的狗品种示例中,输入将是许多狗的图像数据,并且中间层使用当前权重值来计算图像中的狗是某一品种的概率,以及将提议的狗品种标签在步骤905处返回。然后,用户可在步骤907处查看结果,以选择神经网络应返回哪些概率并确定当前权重组是否提供了足够准确的标签,并且如果是,则训练完成(步骤911)。如果结果不够精确,则神经网络基于用户所选择的概率而在步骤909处调节权重,然后循环返回到步骤903以使用所调节的权重再次运行输入数据。一旦已确定了神经网络的权重组,该权重就可用于“推理”,“推理”是使用所确定的权重来根据输入到神经网络的数据生成输出结果的过程。一旦在步骤911处确定权重,就可以将该权重存储在非易失性存储器中以供稍后使用,其中这些权重在非易失性存储器中的存储过程在下文中进一步详细讨论。
图9B是描述了一种使用神经网络进行推理阶段的监督学习的过程的流程图,该过程使用所估计的精确度来预测输入数据的“含义”。根据情况,神经网络可在云端中并且由边缘设备(例如,智能电话、汽车加工,硬件加速器)的处理器进行推理。在步骤921处,接收输入,诸如在上面使用的示例中的狗的图像。如果在运行神经网络应用程序的设备中不存在先前确定的权重,则在步骤922处加载该先前确定的权重。例如,在执行神经网络的主机处理器上,可从存储权重的SSD中读取权重,并加载到主机设备上的RAM中。在步骤923处,随后通过神经网络的层来传播输入数据。步骤923将类似于图9B的步骤903,但现在使用在步骤911处的训练过程结束时建立的权重。在通过中间层传播输入之后,然后在步骤925处提供输出。
图10是输入图像与滤波器或权重组之间的卷积运算的示意图。在该示例中,输入图像是像素值的6×6阵列,并且滤波器是权重的3×3阵列。卷积运算通过将3×3滤波器与输入图像的3×3块的矩阵乘法来执行。例如,将图像的最左上3×3块与滤波器相乘得到输出矩阵的左上值。滤波器然后可在图像上滑过一个像素以生成输出的下一个条目,依此类推以生成用于输出的顶行4个元素。通过每次向下滑动滤波器一个像素来重复该过程,生成4×4输出矩阵。对每个层执行类似的操作。在实际CNN中,数据集的大小以及所执行卷积的数量意味着:执行极大量的此类操作,从而涉及非常大量的数据。
图11是矩阵乘法在神经网络的全连接层中的用途的示意图。矩阵乘法或MatMul是神经网络的训练阶段和推理阶段中常用的方法,并且用于机器学习的核方法中。图11的顶部类似于图8,其中在输入层与输出层之间仅示出单个隐藏层。输入数据被表示为长度与输入节点的数量对应的矢量。权重以权重矩阵表示,其中列的数量对应于隐藏层中的中间节点的数量,并且行的数量对应于输入节点的数量。输出是通过输入矢量与权重矩阵的矩阵乘法而确定的,其中输出矢量的每个要素是输入数据的分矢量与权重矩阵的列的点积。
用于执行矩阵乘法的常用技术是使用乘法器-累加器(MAC,或MAC单元)。然而,这有许多问题。重新参见图9B,推理阶段在步骤922处加载神经网络权重,然后在步骤923处通过传播来执行矩阵乘法。然而,由于所涉及的数据量可能非常大,因此使用乘法器-累加器进行推理会产生与权重加载相关的若干问题。这些问题中的一个问题是由于必须使用具有所需位宽的大MAC阵列而引起的高能量耗散。另一个问题是由于MAC阵列的大小有限而导致的高能量耗散,从而导致逻辑与存储器之间的高数据移动以及可比逻辑计算本身中使用的能量耗散高得多的能量耗散。
为了帮助避免这些限制,可以使用其他存储器技术来替代乘法器-累加器阵列的使用。例如,通过利用NAND存储器和存储级存储器(SCM)的特性,诸如基于以下项的存储器,可以在存储器阵列内计算矩阵乘法:基于ReRAM、PCM、FeRAM或MRAM的存储器单元。这允许经由读取命令来提供神经网络输入,并且允许预加载神经权重以用于推理。通过使用内存计算,这可以解除对在MAC阵列中执行矩阵乘法的逻辑需要以及在存储器与MAC阵列之间移动数据的需要。
以下呈现了存储器内计算DNN的实施方案,该存储器内计算DNN可通过将神经网络的层的权重存储在存储器单元内并且将层的输入作为电压电平施加到阵列的字线上来执行存储器单元阵列内的推理操作的输入值和权重之间的乘法。位线上的所得电流对应于输入与权重的乘积,其中多个此类乘法可以同时执行。为了减少此类推理引擎消耗的功率,以下讨论呈现了基于多级存储器单元的实施方案,该多级存储器单元由被金属层分开的多个超薄电介质层形成,这些金属层是具有交叉点结构的阵列的一部分。存储器单元的实施方案具有良好分开的低电阻状态和高电阻状态,同时即使对于低电阻状态也仍然具有高电阻值,从而允许在推理时具有非常低的功率消耗。为了存储DNN的权重,可通过选择编程电压来选择性地击穿电介质层中的一个或多个电介质层,来通过使用输入电压对存储器单元进行单独编程。
交叉点架构的使用允许具有较小占有面积的阵列,其中矢量乘法由电压到电流转换过程来实现,其中矩阵权重被编码在阵列中的单元的电阻值中。所述存储器单元可具有介于最低电阻状态和最高电阻状态之间的系数为2或更大的存储器窗口,同时具有电阻仍然非常高的最低电阻状态,诸如RLRS>10MOhm。与其他存储器单元技术相比,这里描述的存储器单元允许具有不太严格的编程要求并且可以用相对低功率的片上电路编程的多级单元(MLC)。此外,编程方法允许在不需要针对每个位的专用选择晶体管的情况下选择设备,从而减小了每个位的占位面积。由于存储器设备用于推理,因此存储器设备在被供应给客户之前可用先前确定的DNN的权重值进行预编程。
更具体地讲,呈现了具有多级存储和电场编程的交叉点推理引擎的实施方案。所述设计用于超低功率、低成本并且不需要特殊片上编程的多级单元(MLC)矢量乘法设备。该推理引擎或矢量乘法设备由在每个交叉点结合部具有单元的交叉点阵列和控制(或外围)电路组成,该控制(或外围)电路被配置为向一个线平面(即字线)中的每个线供应独立的输入电压并且读取另一个线平面(即位线)中的每个线上的电流。矢量乘法涉及输入电压乘以由存储器单元编码的矩阵权重。控制电路和保持一个或多个此类阵列的存储器管芯可以是相同管芯的一部分或控制管芯和存储器管芯的接合管芯对,诸如上文参考图6A和图6B所述。在这里呈现的实施方案中,可以仅使用输入电压将交叉点阵列的存储器单元单独编程为多个电阻状态中的一个电阻状态。在下文所述的第一组实施方案中,MLC存储器单元由被金属层分开的多个超薄电介质层形成,其中存储器单元的编程通过选择编程电压电平以选择性地击穿电介质层中的一个或多个电介质层来完成,从而设置存储器单元的电阻。在另选的一组实施方案中,存储器单元基于反熔丝,其中基于反熔丝的存储器单元的编程由流过每个单元的电流并且设定限制该电流的合规性来执行。
图12A在斜视图中描绘了形成交叉点架构的存储器阵列326的一部分的一个实施方案。图12A的存储器阵列326是图5中的存储器阵列326的具体实施的一个示例。位线BL1-BL5沿第一方向(表示为进入页面)布置,并且字线WL1-WL5沿与第一方向垂直的第二方向布置。图12A是水平交叉点结构的示例,其中字线WL1-WL5和BL1-BL5均沿相对于基板的水平方向运行,而存储器单元(1201处示出了其中的两个)被取向成使得电流沿竖直方向运行。在具有存储器单元的附加层的存储器阵列中,将存在位线和字线的对应附加层。
如图12A所描绘的,存储器阵列326包括多个存储器单元1201。存储器单元1201可包括可重写的存储器单元,诸如可使用ReRAM、MRAM、PCM或其他具有可编程电阻的材料来实现。以下讨论将关注于非易失性存储器单元的特定结构,尽管大部分讨论可以更一般地应用。第一存储器级的存储器单元中的电流可如箭头Icell所示向上流动。
图12B和图12C分别示出图12A中的交叉点结构的侧视图和顶视图。图12B的侧视图示出了一个底部导线或字线WL1,和顶部导线或位线BL1-BLn。在每条顶部导线和底部导线之间的交叉点处是多级存储器单元1201。图12C是示出m个底部导线WL1-WLm和n个顶部导线BL1-BLn的交叉点结构的顶视图。在多级实施方案中,每个交叉点处的存储器单元可被编程为两种以上电阻状态中的一种,诸如2-5级。下文给出了存储器单元设计的实施方案及其编程技术的更多细节。
图12A至图12C的阵列结构可用于执行推理操作的阵列乘法,其中神经网络的层的矩阵权重存储在存储器单元中作为其电阻。将电压矢量Vi in施加到字线的输入端会在位线的输出端中生成电流,该电流参考输入电压与由存储器单元电阻编码的权重的矢量乘法。权重被编码为导电率bi,j,它是字线WLi和位线BLj的交叉点处的存储器单元的电阻Ri,j的倒数:
如果神经网络的层的输入被编码为施加到相应字线WLi的电压Vi in,则每个位线BLj上的电流将是以下乘积:
其中针对i求和。根据该实施方案,权重可以是二元值并存储在二元存储器单元中,或者可以是存储在MLC存储器单元中的多级值,如下所述。类似地,根据该实施方案,输入可以是二元值或具有更高数量的值。通过在多个所选字线上同时执行感测操作,交叉点结构将自动计算该层的输入-权重乘积。
需注意,根据该布置,沿着位线的多个存储器单元与施加在其对应字线上的对应输入电压同时被选择用于感测。电流Ij out对应于所有这些存储器单元的组合结果,并且该过程因此不同于确定单个存储器单元的状态的常规读取操作。根据此类推理操作的Ij out,确定组合结果,并且各个存储器单元的贡献将是未知的。
图13是交叉点阵列和用于操作该阵列的一些控制电路的顶视图,其中示出了阵列的3×3区段。在每个字线WLi和位线BLj的交叉点处是存储器单元Mi,j 1301i,j。神经网络的层的输入INi在数模转换器1311i中从输入值转换为电压电平至对应的电压电平。输入INi可为网络的初始输入或前一层的输出。在二元实施方案中,1输入可以被转换为高读取电压Vread,0输入可以被转换为低读取电压,诸如0V或地电压,在这种情况下,DAC 1311i可以是一位DAC。对于多位输入,DAC 1311i将具有对应的位数。每个位线BLj上的模拟电流Ij out在对应的模数转换器ADC 1311j中被转换成数字值,以生成数字输出OUTj。输出值OUTj然后可转到数字计算块1315,该数字计算块可执行操作,诸如对乘法和累加操作的累积、应用激活以及作为将输入传播通过神经网络的一部分而执行的其他此类操作。重新参见图5和图6A,DAC1311i、ADCj 1311j和数字计算块1315可被视为行解码器324、列解码器332和读/写电路328连同310的控制电路的部件的一部分。DAC和/或ADC可以是多位设备,能够生成或输出以2n(n>1)级量化的信号。
图14是可用于多级超低功率推理引擎中的存储器单元设计的第一实施方案的示意图。该阵列使用交叉点架构,其中每个单元具有多个电介质层,每个电介质层具有不同的电阻Ri和击穿电压VBD,i。在图14中,存储器单元位于字线1401和位线1411之间的交叉点处。该存储器单元具有N个电介质层,其中三个电介质层被示出为:具有R1和VBD,1的电介质11407,具有Ri和VBD,i的电介质i 1405,以及具有RN和VBD,N的电介质N 1403。在这些电介质层之间的是导电层,诸如1404和1406所示。金属层1402也可包括在字线1401与电介质层中最相邻的电介质层(此处为电介质N 1403)之间,并且金属层1408也可包括在位线1411与电介质层中最相邻的电介质层(此处为电介质1 1407)之间。在这里的示例中,电介质层将被布置成使得它们的电阻水平从R1逐渐减小到RN,但可使用其他顺序。电介质层被形成为使得不同层的电阻水平之间的差异足够大,使得不同的编程状态被明确限定。
对于给定的电介质层,电介质层的击穿电压VBD是该电介质层从高电阻状态变为电短路Rshort<<Ri时的电压。在示例性实施方案中,电介质层被形成为使得初始电阻(R1,…,RN)和击穿强度(VBD,1,…,VBD,N)被调整成使得具有较高电阻的层具有较低的VBD。可通过调整每个电介质层的厚度、缺陷密度和材料组成来控制电阻和击穿强度。这样,可通过逐渐增加编程应力以击穿更多电介质层并降低总体单元电阻,来设置存储器单元的电阻。
例如,查看具有三个电介质层的单元的编程,该单元被形成为使得R1>>R2>>R3并且VBD,1<<VBD,2<<VBD,3。在该示例中,几乎所有电压都在最高电阻(或最小下标数)的非短路电介质层上下降。最初,在所有电介质层完整的情况下,该单元开始于最高电阻状态:Rcell=R1+R2+R3≈R1。为了将存储器单元编程为具有R3电阻,例如,将编程或写入电压Vwr置于存储器单元上以击穿层1和层2,但不击穿层3:VBD,1<VBD,2<Vwr<VBD,3。这使电介质层3保持完整,使得Rcell=R3。
图15是使用可在多级超低功率推理引擎中使用的使用分组电介质层的存储器单元设计的另一组实施方案的示意图。如图14所示,存储器单元位于字线1501和位线1511之间的交叉点处,并且由多个交替的电介质层和导电层形成,但是现在将电介质层分组为层级,这些层级具有不同层数但是层级内具有相同或非常相似的层特性。在该示例中,对于层级i,将存在i层,但其他实施方案可以不同方式布置。图15示出了N个层级的示例,每个层级由N层构成,其中仅明确示出了层级1和层级2,以及层级N的最后一层。电介质层级T1具有一层L1 1527-1并由金属层1530与位线1511分开,并且由金属层1528与层级2电介质层1525-1和1525-2分开。第二电介质层级由一对层L1 1525-1和L2 1525-2形成,这对层由层级间金属层1526分开,并且其中层级2由金属层1524与层级3的第一层分开。未示出层级3的第一层以及其他居间电介质层和金属层,第N层级的第N层1523-N除外,该第N层然后由金属层1522与字线1501分开。
在图15的示例性实施方案中,层级是有序的,使得较低编号的层级具有较高的电阻,并且较高编号的层级可比较低编号的层级包含更多的层。
例如,层级Ti的电阻为
其中针对n求和,RTi>RT(i+1),即使Ti具有比层级T(i+1)更少的层。在一组实施方案中,所有层的击穿电压VBD可形成为标称相同的。这样,施加电压n*VBD将击穿直到层级n的所有层级。
考虑到在具有总共(1+2+3=)6层的三个层级的示例中对单元进行编程的过程,这些层可被设计并形成为使得RT1>>RT2>>RT3,并且对于每个层,VBD相似。(电阻通常对厚度呈指数级敏感,而VBD仅与厚度线性相关。)如在图14的实施方案的情况下,存储器单元的总电阻的大部分将来自具有最高电阻(如这里呈现的编号最小的下标)层级的完整层级,施加在存储器单元上的电压的大部分将跨该最高电阻非短路层级下降。为了将单元编程为具有电阻RT3,例如,施加编程电压Vwr以击穿层级T1和级T2中的每个层。在这种情况下,取Vwr使得2*VBD<Vwr<3*VBD。
考虑到将数据(即,权重值)写入阵列,此处呈现的实施方案使用所施加的电压来选择性地将存储器单元(诸如相对于图14和图15所述的那些)编程为多个电阻值中的一个电阻值。例如,具有N层/层级的实施方案可以被编程为N种状态,但是对于沿着多个字线的并发感测的低功率推理,可以避免所有电介质短路的状态,但是在一些实施方案中,可以与单元串联形成附加电阻以避免过大电流。使用半选方案来完成对选择写入的存储器单元的电选择,如相对于图16所示。
图16示出了用于选择待编程的存储器单元的半选方案。将电压施加到顶部线(位线)和底部线(字线),使得沿位线的旨在被写入的单元具有施加在底部线和顶部线上的电压的写入电压Vwr,其中Vwr的值被选择为提供目标数据状态的编程电压。未被写入的单元或者仅经历电压降的一半(Vwr/2)或者不经历电压降。在图16的示例中,选择写入位线BL(N-1)与字线WL1和WL(M-1)相交处的两个单元,其中将Vwr施加在所选字线上并且将0V施加在所选位线上。其他字线和位线被设置为1/2Vwr。这将Vwr的差分置于选定存储器单元上,并且将0V或1/2Vwr置于未选定存储器单元上。如果Vwr.max是最大编程电压并且Vwr.min是最小编程电压,则这些值应被配置为使得1/2Vwr.max<Vwr.min,否则半选电压将击穿未选定单元的一部分。编程可以逐位线顺序地执行,如下面更详细地讨论的。(在本文所述的半选过程中,在0V获取低电压电平,并且使用1/2Vwr的半选值。更一般地,这些可以是另一个低电压值,并且半选电压电平可以是Vwr和低电压中间的其他电压电平,只要半选过程不引起不期望的编程或读取值。)
通过施加适当的编程电压Vwr来选择性地击穿未被选择为保持在最高电阻状态的存储器单元、电介质层的一部分或全部,从而完成具有多个电介质层的交叉点推理引擎中的存储器单元编程。每个单元中的电平的数量受最大半选电压(1/2Vwr.max)与最小选择电压(Vwr.min)之间使得1/2Vwr.max<Vwr.min的裕度,控制电介质层的电阻分布的能力,以及限制多级存储器单元形成的厚度的任何设计规则的限制。相对于其他存储器技术,该存储器单元结构允许实现几乎任何电阻状态组合,并且可由通常可用于半导体制造厂的任何材料(SiO2、HfO2、MgO等)形成简单的电介质层。虽然存储器单元仅可被编程一次,但在作为推理引擎的应用中,可在将设备提供给最终用户之前写入神经网络的层的权重,诸如在制造设施处在设备通常经历的测试过程结束时完成,或者由第三方诸如原始设备制造商执行,该第三方将其DNN模型的权重编程为存储器阵列,该存储器阵列例如由在应用诸如自主交通工具上实现DNN的处理器使用。
图17是用于写入具有由多个电介质层形成的存储器单元的交叉点存储器的序列的实施方案的示意图。将神经网络的网络权重值或其他数据写入交叉点阵列的编程操作通常将需要存取全部或大部分字线、全部或大部分位线,并且将所有数据状态编程,这对于非二元实施方案而言将需要多个Vwr值。由于在非常不寻常的数据值集合之外,所有这些不同组合不能同时实现,因此写入操作将涉及顺序操作。如相对于图16所述,可以对沿共享字线的一个或多个字线上的存储器单元执行编程,使得可以单独地或同时对字线进行编程以便增加并行性。可同时编程的字线的数量可以是阵列的所有字线,或者如果功率/电流考虑因素限制该数量,则为数量更少的字线。在多级单元实施方案中,在编程操作中使用对应数量的不同Vwr值。对于给定的位线,可以同时施加多个Vwr以同时编程多个数据状态;然而,如果在半选实施方案中没有适当地偏置,则同时编程多个数据状态会引起对未选定存储器单元的编程。这里的示例性实施方案针对被编程到相同状态的所有位线写入单个位线上的选定存储器单元。根据该实施方案,编程序列可以针对给定数据状态逐位线地执行,然后重复以覆盖所有数据状态,或者对于给定位线,可以先对所有数据状态进行编程,然后移动到下一个位线。
图17示出了顺序对阵列中的每个位线进行编程,从BL0开始并顺序前进到BLn。如图17所指出的那样,被选择用于在选定位线上编程的存储器单元被标记为S,并且未选择用于编程的存储器单元被标记为NS。通过将相应位线接地或设置为低电压,同时将所有其他位线设置为Vwr/2或中间“半选”写入电压来选择要编程的位线。通过将Vwr施加到相应的字线,同时将所有其他字线设置为Vwr/2,来选择被选择为在位线上编程的存储器单元。在多级单元实施方案中,对于选定位线,Vwr值可以前进通过所有对应的编程电压电平。例如,在图17的左侧,位线BL1以及字线WL2和WLm上的存储器单元被选择为针对编程状态之一写入,并且在图17的右侧,位线BLn和字线WL1上的存储器单元被选择为写入编程状态之一。
在所有数据状态被写入给定位线上的存储器单元之后移动到序列中的下一个位线的实施方案中,非选定字线和位线在1/2Vwr处被半选定,并且因此也将随着编程电压Vwr升高而逐步递增以用于待编程的不同数据状态。在另选的实施方案中,针对一个Vwr循环通过所有位线之后再在编程电压序列中的下一个Vwr处循环通过所有位线,对于通过位线的给定循环,非选定字线和位线将保持在相同的1/2Vwr,其中当选择/取消选择位线时位线在1/2Vwr与0V之间切换,并且当编程流程循环通过Vwr处给定的位线时,随着字线被选择/取消选择,字线在1/2Vwr与Vwr之间切换。
重新参见图5和图6A,涉及存储器单元的读取和写入的控制电路可为行解码器324、列解码器332和读/写电路328连同310的控制电路的部件(诸如状态机312)的一部分。在写入操作期间,行解码器324和列解码器332内的驱动器/偏置电路可偏置字线和位线,如相对于图19所示,使得存储器单元被单独选择用于编程。
关于推理操作中的数据读取,如关于图12C所述,不同于确定各个存储器单元的数据状态,行解码器324内的偏置电路将网络的层的输入矢量转换为一组Vin值,该组值被同时施加到选定组位线的存储器单元的字线。列解码器332和读/写电路328(包括感测放大器350)将确定沿着每个字线的总Iout作为多位感测操作,以指示输入矢量与沿着对应的位线存储的权重值的乘积。由于本文所述的存储器单元即使在最低电阻状态下也可具有高电阻值,所以即使在同时感测多个存储器单元时,电流值仍可相对较低并且推理过程为低功率过程。然后,存储器设备上的控制电路可累积乘法结果作为乘法与累加操作的一部分,以确定神经网络的层的输出,该输出可以是后续层的输入或该网络的输出。
图18A至图18C示出了在具有两层级的层的示例中利用电介质击穿的写入机制。图18A是两层级存储器单元的示意图。第一层级为在导电层1806和1808之间形成的单层电介质1 1807,它具有击穿电压VBD和电阻R1。导电层1802和1806之间的第二层级由电介质2A1805和电介质2B 1803这两层形成,每层具有击穿电压VBD和电阻R2,并且被导电层1804分开。施加在对应的字线和位线交叉点处的存储器单元的编程电压Vwr由电压源1801表示。该存储器单元可处于:电平0,这对应于最高电阻状态,这时没有电介质层被击穿:电平1,这时电介质1 1807已被击穿而电介质2A 1805和2B 1803完整;以及电平2,这时电介质2A 1805和2B 180也被击穿。在二元实施方案中,将使用电平0和电平1,它们分别对应于高电阻状态和低电阻状态。当作为三态设备操作时,电平0将是高电阻状态,电平1将是中电阻状态,并且电平2将是低电阻状态。当所有电介质层在电平2短路时,电平2可具有非常低的电阻并且将消耗更多的功率。当作为三态存储器单元操作时,一些实施方案可向存储器单元添加串联电阻以便允许用于低功率推理。
图18B是相对于击穿电压VBD归一化的每个层级上的电压与从电压源1801施加在整个存储器单元上的电压(同样关于VBD归一化)之间关系的曲线图。在图18B的示例中,R1=10R2,使得存储器单元充当分压器,并且在每层上下降的相对电压将随着其电阻与总单元电阻之比而变化。这反映在图18B的曲线图中,其中1821是电介质1 1807上的电压降,并且1823是电介质2A 1805和电介质2B 1803中的每一者上的电压降。
观察施加整个存储器单元上的电压(x轴),一开始施加电压为VBD(归一化标度上的1),在1.0VBD处,电介质1 1807上的电压降小于VBD,因为电压的一部分跨层级2下降。随着施加电压增大,所有电介质层上的电压增大,直到存储器单元上的电压为~1.2VBD,其中电介质1 1807将击穿。一旦电介质1 1807击穿,电介质1 1807上就不存在电压降,使得所施加的电压跨电介质2A 1805和电介质2B 1803下降,其中所施加的电压的一半跨电介质2A 1805和电介质2B 1803中的每一者下降,因为它们具有相同的电阻R2。
为了击穿第2层级电介质2A 1805和电介质2B 1803的电介质,所施加的电压将需要超过2VBD。因此,为了将电平1数据值编程到存储器单元中,编程电压Vwr应使得~1.2VBD<Vwr<2VBD。如果Vbd.effi是层级i的有效击穿电压,则考虑到分压器,最初在电介质1 1807上的击穿电压Vbd.eff.1=Vbd*(R1+2*R2)/R1。在电介质1 1807击穿之后,所有电压降将跨电介质2A1805和电介质2B 1803的串联对,使得Vbd.eff.2=2*Vbd。在电平0和电平1的状态之间具有足够裕度的条件是Vbd.eff.1<Vbd.eff.2,使得R1>2*R2。
当将数据编程到如图18A所示的存储器单元阵列时,图18C示出了施加到对应于如上文相对于图17所述待编程的存储器单元的字线的写入电压Vwr台阶序列的波形。图18C的波形是写入操作中施加到选定字线的Vwr电平的实施方案。最初,所有存储器单元都处于电平0,并且具有电平0状态的目标状态的存储器单元将不会从该初始状态编程。为了写入电平1状态,将编程电压Vwr施加到选定字线,使得Vwr>Vbd.eff.1并且Vwr<2VBD。如果电介质2A1805和电介质2B 1803也要在电平2上击穿,则对于被选择写入电平2的存储器单元,Vwr随后升高到Vwr>2VBD。
图19A和图19B示出了在三层级层存储器单元的示例中利用电介质击穿的写入机制。图19A是这样的三层级存储器单元的示意图,其中第一层级是在导电层1914和1912之间的单层电介质1 1913,它具有击穿电压VBD和电阻R1。第二层级形成于导电层1908和1912之间,具有电介质2A 1911和电介质2B 1909这两个层,每层具有击穿电压VBD和电阻R2,并且被导电层1908分开。在导电层1908和1902之间的第三层级由电介质3A 1907、电介质3B 1905和电介质3C 1903这三层形成,其中具有电介质间导电层1906和1904。施加在对应的字线和位线交叉点处的存储器单元的编程电压Vwr由电压源1901表示。该存储器单元可处于:电平0,这对应于最高电阻状态,这时没有电介质层被击穿;电平1,这时电介质1 1913已被击穿而电介质2A 1911和2B 1909以及电介质3A 1907、3B 1905和3C 1903完整;电平2,这时电介质2A 1911和2B 1909也被击穿;和电平3,这时层级3电介质1907、1905和1903被击穿。在三元实施方案中,将使用电平0、电平1和电平2,它们分别对应于高电阻状态、中电阻状态和低电阻状态。当作为四态设备操作时,电平0将是高电阻状态,电平1和电平2将是中电阻状态,并且电平3将是低电阻状态。当所有电介质层在电平3短路时,电平3可具有非常低的电阻并且将消耗更多的功率,使得当作为三态存储器单元操作时,一些实施方案可向存储器单元添加串联电阻以便允许用于低功率推理。对于三电平、三层级系统,边缘条件为:对于因子i,Vbd.eff.1<Vbd.eff.2或Vbd.eff.1=i*Vbd.eff.2,使得0.5<i<1以便满足1/2Vwr.max<Vwr.min。类似地,对于因子n,Vbd.eff.2<Vbd.eff.3或Vbd.eff.2=n*Vbd.eff.3,其中n<1。以Vbd和R3为单位,这给出了条件R2=3/(3*n-2)和R1=3n*R2/(3*n*i-1)。
当将数据编程到如图19A所示的存储器单元阵列时,图19B示出了应用于对应于如上文相对于图17所述待编程的存储器单元的字线的Vwr台阶序列的波形。图19B的波形是写入操作中施加到选定字线的Vwr电平的实施方案。最初,所有存储器单元都处于电平0,并且具有电平0的目标状态的存储器单元将不会从该初始状态编程。为了写入电平1状态,将编程电压Vwr施加到选定字线,使得Vwr>Vbd.eff.1并且Vwr<Vbd.eff.2,以便击穿第1层级电介质,而不是第2层级或第3层级电介质。为了写入电平2状态,将编程电压Vwr施加到选定字线,使得Vwr>Vbd.eff.2并且Vwr<3VBD,以便击穿第2层级电介质,而不是第3层级电介质。如果电介质3A1907、电介质3B1905和电介质3C 1903也要在电平3上击穿,则对于被选择写入电平3的存储器单元,Vwr随后升高到Vwr>3VBD。
图20是示出交叉点架构的使用的实施方案的流程图,该交叉点架构使用具有超薄电介质层的存储器单元用于推理引擎。图20的流程包括用于对交叉点存储器阵列进行编程的方法的实施方案(步骤2001-2007)和该存储器阵列用于推理的后续使用(2011-2019)。虽然这里的描述是在用于神经网络的推理引擎的上下文中进行的,并且所描述的结构和技术在此类应用中可具有特定实用性,但是它们可更一般地应用,因为具有高保持的低功率非易失性存储器可在许多上下文中使用。
在步骤2001处,将该阵列针对位线中的选定位线偏置,其中编程序列可从BL0开始,如相对于图17所示。例如,选定位线可偏置到地,其中当前Vwr值的其他位线和非选定字线被选择为一半即1/2Vwr。在步骤2003处,将编程电压Vwr施加到对应于待编程到与Vwr对应的数据状态的存储器单元的字线。在步骤2001和2003处字线和位线的偏置可由一个或多个控制电路执行,包括行解码器324和列解码器332内的偏置电路以及读/写电路328。
针对每个位线重复步骤2001和2003的过程,对于多级单元实施方案,针对每个Vwr值重复该过程。在图20的实施方案中,Vwr循环在位线循环内,但是其他实施方案可以反转该顺序。在步骤2004处,确定针对所选位线是否存在更多编程电压Vwr,如果存在,则在步骤2005处将Vwr值递增到下一个编程值,诸如阶跃到对应于使下一层级电介质层或下一层电介质层短路的Vwr值,然后循环回到步骤2001以相应地将当前未选定字线重新偏置为半选择的。如果在步骤2004处不存在要写入的更多Vwr值,则流程转到步骤2006以确定是否存在要写入的更多位线,如果存在,则位线在步骤2007处递增,然后循环回到步骤2001;如果不是,则存储器阵列的编程完成。
在诸如推理引擎的应用中,阵列的编程通常将在提供给最终用户之前完成。例如,存储器阵列可在运输之前由制造商编程,诸如在通常在新设备上执行的测试过程结束时。另选地,存储器阵列可在提供给最终用户之前由中间方编程:例如,未编程的存储器阵列(初始化的或未初始化的)可被提供给原始设备制造商(OEM),该原始设备制造商然后可对其数据(诸如DNN模型的权重)进行编程,然后将结合了编程阵列的产品提供给OEM的客户。这将是例如依赖于神经网络的自主车辆的情况,并且制造商将在将车辆提供给最终运营商之前将其神经网络模型的权重编程到阵列中。
由于存储器阵列通常在被提供给最终用户之前将仅被编程一次,因此在一些实施方案中,编程电压Vwr可能不在存储器设备自身上生成,而是在编程期间从外部提供。在这种情况下,存储器设备上的一个或多个控制电路(诸如功率控制器316)不需要具有生成Vwr的能力,并且可避免电路元件(诸如电荷泵)和处理更高电压的电路,从而节省了这些电路的面积和功耗。
步骤2011-2019考虑何时将存储器阵列用作神经网络中的推理引擎网络,其中权重被存储为该阵列的存储器单元中的值,并且输入将是输入值矢量。如上面关于图13所示,输入矢量INi由DAC 1311i转换为施加到对应的字线WLi的电压电平Vi in,其中输入值可以是二元值或多电平,具体取决于实施方案。在字线WLi和BLj之间流动的电流对应于输入矢量分量i in与存储在存储器单元1301i,j中的矩阵权重bi,j的乘积。总电流Ij out将等于由电压电平Vi in表示的输入矢量与第j个矩阵列中由存储在存储器1301i,j中的权重表示的用于对应的BLj的值的矢量乘积之和。输出电流Ij表示存储器内矩阵乘法的输出矢量,如上面由公式1和公式2所描述的。
步骤2015确定对应于公式2的乘积的每个位线BLj上的电流Ij out,该电流由ADC1313j转换为OUTj。然后可在数字计算块1315中累积各个列的这些部分乘积,以在步骤2017中生成该层的输出。步骤2019对应于来自步骤2017的输出的附加传播。根据该实施方案,步骤2017可包括应用激活函数,针对附加值重复推理操作的早期步骤,提供层的输出,或这些操作的某种组合。层的输出随后可用作网络的后续层的输入或网络的最终输出,具体取决于层在网络内的位置。
在另选的一组实施方案中,具有交叉点架构的推理引擎可基于反熔丝型存储器单元,其中每个存储器单元在每个交叉点处包括反熔丝。与基于薄电介质层的实施方案一样,反熔丝实施方案为写入一次、读取许多类型的阵列,其中编程由与在二元实施方案中相对于图20所述的流程类似的流程执行。基于反熔丝的实施方案可实现非常高的电阻水平(诸如在千兆Ω或太Ω范围内),并且可通过使用大串联电阻器来提升低电阻水平。可将反熔丝技术实施为小规模(即,10nm),并且可实施多级电阻状态。
反熔丝是一次性可编程设备,其在未编程状态下通常关断并且在编程状态下通常接通,但在一些实施方案中,可以在编程之后通过修改反熔丝的偏置来限定多个电阻水平,这导致合规电流。反熔丝的通用设计是在电源电平和位线之间与反熔丝晶体管串联连接的选择晶体管。该选择晶体管具有连接到读取字线的控制栅极,并且反熔丝晶体管具有连接到编程字线的栅极。通过向编程字线施加高电压以击穿反熔丝晶体管中的氧化物并使反熔丝晶体管短路来对反熔丝进行编程。为了读取反熔丝,在编程字线低时将电压施加到读取字线以接通选择晶体管,使得电流可以流过编程的反熔丝,但是未编程的反熔丝将不会传导电流。
以下讨论呈现了使用单个常闭场效应晶体管(FET)反熔丝单元的交叉点存储器的实施方案。反熔丝单元基于具有金属氧化物栅极(例如,高k金属栅极)或半导体氧化物栅极(例如,SiO2)的FET。FET沟道在其初始状态下是非导电的,并且在栅极氧化物已被编程(即,电击穿)之后变得短路。材料的具体细节的实施方案根据为设计选择的光刻节点而变化。反熔丝的编程可根据图21示出。
图21是基于单个FET的反熔丝以及用于偏置以对反熔丝编程的实施方案的示意图。FET晶体管2101连接在位线BL 2105和字线WL 2103之间。第三线或编程字线WLP 2107连接到FET 2101的控制栅极。图21示出FET2101的用于编程的偏置,其中通过将编程字线WLP2107升高到写入电压Vwr,同时使字线WL 2103接地并将位线BL 2105设置为1/2Vwr来执行反熔丝的编程。选择编程电压Vwr,使得其足以引起反熔丝晶体管的氧化物击穿,而1/2Vwr不引起氧化物击穿,从而允许在交叉点阵列中进行单元选择。为了增大低电阻状态的电阻,每个反熔丝FET 2101可具有串联连接在位线BL2105与字线WL 2103之间的电阻。(在本文所述的半选过程中,在0V获取低电压电平,并且使用1/2Vwr的半选值;但更一般地,这些可以是另一个低电压值,并且半选电压电平可以是Vwr和低电压中间的其他电压电平,只要半选过程不引起不期望的编程或读取值。)
图22是结合有图21的基于反熔丝的存储器单元的交叉点阵列结构的一部分的顶视图。图22类似于图12C或图17的视图,但表示每个交叉点处的反熔丝存储器单元,并且现在还包括编程线WLP1-WLP4。例如,存储器单元2201连接在字线WL4与位线BL3之间,并且其控制栅极连接到WLP 3。尽管为了简化附图而未示出,但可将电阻与每个反熔丝存储器单元串联连接以增大低电阻状态的值。
图22示出了在一个实施方案中被偏置以对存储器单元2201进行编程的交叉点阵列的所示部分,其中使用半选方案结合施加到编程字线编程的编程电压Vwr来完成电选择。为了将所选择的权重值写入反熔丝2201,将对应的编程字线WLP3设置为Vwr,将对应的字线WL4设置为0V并且将对应的位线BL3设置为1/2Vwr。还将未选定位线中的位线设置为1/2Vwr,未选定字线也是如此。将用于未选定存储器单元的编程字线设置为0V,其中编程可顺序地执行,一个字线接一个字线地编程,类似于上文相对于图17所述,但是其中该顺序现在用于编程字线,而不是位线(现在对于选定存储器单元和未选定存储器单元两者保持半选)。由于栅极-源极或栅极-漏极电压保持在1/2Vwr,因此与编程选定反熔丝存储器单元(在该示例中为WLP3)共享编程字线的未选定反熔丝单元不会经历氧化物击穿。一旦将阵列编程,就不再需要编程字线用于读取操作,这与上文相对于基于薄电介质层的存储器单元所述类似地执行。
图23是示出交叉点架构的编程的实施方案的流程图,该交叉点架构使用具有基于FET的反熔丝的存储器单元用于推理引擎。图23的流程包括用于对交叉点存储器阵列进行编程的方法的实施方案(步骤2301-2307),并且该存储器阵列用于推理的后续使用可如上文相对于图20的步骤2011-2019所述。虽然这里的描述是在用于神经网络的推理引擎的上下文中进行的,并且所描述的结构和技术在此类应用中可具有特定实用性,但是它们可更一般地应用,因为具有高保持的低功率非易失性存储器可在许多上下文中使用。
在步骤2301处,针对选定的编程字线来偏置阵列,其中编程序列可WLP0开始,类似于关于图17针对位线而示出的序列,但现在是针对编程字线。例如,所有位线和未选定字线可以被半选并且在1/2Vwr偏置,并且对应于选定存储器单元的字线可以被偏置到地。在步骤2303处,将编程电压Vwr施加到选定的编程字线。在步骤2301和2303处字线、编程字线和位线的偏置可由一个或多个控制电路执行,包括行解码器324和列解码器332内的偏置电路以及读/写电路328。
针对每个编程字线重复步骤2301和2303的过程。在步骤2305处,确定是否存在要写入的更多编程位线,如果存在,则位线在步骤2307处递增,然后循环回到步骤2301;如果不是,则存储器阵列的编程完成。一旦利用神经网络的权重对存储器阵列进行了编程,就可将其用作如上文相对于图20的步骤2011-2019所述的推理引擎。
与上述实施方案一样,在作为推理引擎的应用中,阵列的编程通常将在提供给最终用户之前完成。例如,存储器阵列可在运输之前由制造商编程,诸如在通常在新设备上执行的测试过程结束时。另选地,存储器阵列可在提供给最终用户之前由中间方编程:例如,未编程的存储器阵列(初始化的或未初始化的)可被提供给原始设备制造商(OEM),该原始设备制造商然后可对其数据(诸如DNN模型的权重)进行编程,然后将结合了编程阵列的产品提供给OEM的客户。这将是例如依赖于神经网络的自主车辆的情况,并且制造商将在将车辆提供给最终运营商之前将其神经网络模型的权重编程到阵列中。
由于存储器阵列通常在被提供给最终用户之前将仅被编程一次,因此在一些实施方案中,编程电压Vwr可能不在存储器设备自身上生成,而是在编程期间从外部提供。在这种情况下,存储器设备上的一个或多个控制电路(诸如功率控制器316)不需要具有生成Vwr的能力,并且可避免电路元件(诸如电荷泵)和处理更高电压的电路,从而节省了这些电路的面积和功耗。
根据第一组方面,一种装置包括控制电路,该控制电路被配置为连接到多个多级存储器单元,该多个多级存储器单元沿着一个或多个位线连接,并且每个存储器单元由被导电层分开的多个电介质层形成。该控制电路被配置为:通过施加对应的多个写入电压中的一个写入电压以击穿写入选定存储器单元的电介质层中的一个或多个电介质层,将写入选定存储器单元单独编程为多个数据状态中的一个数据状态;并且响应于施加到沿着第一位线连接的第一多个存储器单元的一组对应的第一多个输入电压,同时感测第一多个存储器单元。
在另外的方面,一种方法包括偏置存储器单元阵列以将一个或多个第一选定存储器单元同时编程为多个数据状态中的第一数据状态,该阵列根据交叉点架构形成,其中每个存储器单元连接在对应的位线和对应的字线之间,并且每个存储器单元由被导电层分开的多个电介质层形成。该偏置包括:将该阵列的对应于一个或多个第一选定存储器单元的位线设置为低电压值;将该阵列的不对应于一个或多个第一选定存储器单元的位线设置为第一中间电压电平;以及将该阵列的不对应于一个或多个第一选定存储器单元的字线设置为第一中间电压电平。在偏置该存储器单元阵列以将一个或多个第一选定存储器单元同时编程为多个数据状态中的第一数据状态时,将第一写入电压施加到该阵列的对应于一个或多个第一选定存储器单元的字线,该第一写入电压被选择为击穿第一选定存储器单元的电介质层中的一个或多个电介质层,以将第一选定存储器单元编程为多个数据状态中的第一数据状态,其中第一中间电压电平介于低电压值和第一写入电压之间。
在另一组方面,一种非易失性存储器设备包括存储器阵列和连接到该存储器阵列的一个或多个控制电路。该存储器阵列包括:多个字线;多个位线;多个编程线;和多个反熔丝存储器单元。该存储器阵列具有交叉点架构,每个反熔丝存储器单元包括场效应晶体管(FET),该FET连接在位线中的对应位线与字线中的对应字线之间,并且具有连接到编程线中的对应编程线的控制栅极。每个反熔丝存储器单元可通过使该存储器单元的栅极氧化物击穿而从高电阻状态编程为低电阻状态。该一个或多个控制电路被配置为:通过偏置对应的字线和对应的位线以在选定存储器单元上设置电压差,同时向对应的编程线施加写入电压以击穿选定存储器单元的栅极氧化物,来对该反熔丝存储器单元中的选定反熔丝存储器单元编程;以及响应于在将该编程线设置为接地时施加到对应的多个字线的一组对应的第一多个输入电压,同时感测沿着共享位线连接的第一多个存储器单元。
出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。
出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其它部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接至另一个元件,或者经由居间元件间接连接至另一个元件。当元件被提及直接连接至另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。
出于本文档的目的,术语“基于”可理解为“至少部分地基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。
出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。
出于说明和描述的目的,已提供了上述详细描述。其并非旨在详尽的或旨在限制本发明所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。
Claims (20)
1.一种装置,包括:
控制电路,所述控制电路被配置为连接到多个多级存储器单元,所述多个多级存储器单元沿着一个或多个位线连接,并且每个存储器单元由被导电层分开的多个电介质层形成,所述控制电路被配置为:
通过施加对应的多个写入电压中的一个写入电压以击穿写入选定存储器单元的所述电介质层中的一个或多个电介质层,将所述写入选定存储器单元单独编程为多个数据状态中的一个数据状态;以及
响应于施加到沿着第一位线连接的第一多个存储器单元的一组对应的第一多个输入电压,同时感测所述第一多个所述存储器单元。
2.根据权利要求1所述的装置,其中所述控制电路包括:
模数转换器,所述模数转换器被配置为响应于施加到所述第一多个存储器单元的所述一组对应的第一多个输入电压而接收所述第一位线中的电流的值,并且从所述电流确定多位输出值。
3.根据权利要求1所述的装置,其中所述控制电路形成在控制管芯上,所述装置还包括:
存储器管芯,所述存储器管芯包括所述存储器单元,所述存储器管芯与所述控制管芯分开形成并且接合到所述控制管芯。
4.根据权利要求3所述的装置,其中所述存储器管芯包括存储器单元阵列,所述存储器单元阵列包括:
所述存储器单元;
多个位线,所述多个位线包括所述第一位线;和
多个字线,所述阵列根据交叉点架构形成,其中每个所述存储器单元连接在所述位线中的对应位线与所述字线中的对应字线之间。
5.根据权利要求4所述的装置,其中每个所述存储器单元包括:
多个电介质层,每个所述电介质层形成为具有多个不同的有效击穿电压中的一个有效击穿电压并且具有多个不同的电阻值中的一个电阻值,使得所述电介质层的所述电阻值越高,所述电介质层的所述有效击穿电压越低;和
一个或多个导电层,所述导电层与所述电介质层交替。
6.根据权利要求4所述的装置,其中每个所述存储器单元包括:
多个层级,每个所述层级具有一个或多个电介质层,每个所述电介质层形成为具有共同的有效击穿电压并且具有多个电阻值中的一个电阻值,相同层级的所述电介质层形成为具有相同的电阻值并且不同层级的所述电介质层形成为具有不同的电阻值,并且使得所述层级中的层数越多,所述层级的所述电介质层的所述电阻值越低;和
多个导电层,所述导电层与所述电介质层交替。
7.根据权利要求4所述的装置,其中,为了将一个或多个写入选定存储器单元沿着选定位线编程为第一数据状态,所述控制电路被配置为同时:
将所述选定位线偏置到低电压电平;
将对应于所述写入选定存储器单元的所述字线偏置到对应于所述第一数据状态的所述写入电压;以及
将不对应于所述写入选定存储器单元的字线和除所述选定位之外的位线偏置到介于所述低电压电平和对应于所述第一数据状态的所述写入电压之间的电压电平。
8.根据权利要求4所述的装置,其中所述控制电路包括:
一个或多个模数转换器,所述一个或多个模数转换器连接到所述位线并且被配置为响应于施加到所述字线的所述一组对应的输入电压而接收每个所述位线中的电流的值,并且从每个所述电流确定多位输出值。
9.根据权利要求8所述的装置,其中所述控制电路包括:
数字计算电路,所述数字计算电路连接到所述一个或多个模数转换器并且被配置为累积所述多位输出值。
10.根据权利要求9所述的装置,其中所述存储器单元被配置为存储神经网络的层的权重,并且其中所述控制电路被进一步配置为:
接收所述神经网络的所述层的矢量输入值,所述输入值矢量具有多个分量;
将所述输入矢量的所述分量转换为一组电压电平;以及
将所述一组电压电平中的每个电压电平施加到对应的一组所述字线。
11.根据权利要求10所述的装置,其中所述控制电路被进一步配置为:
响应于将所述一组电压电平中的每个电压电平施加到所述对应的一组所述字线,同时累积来自多个所述位线的所述多位输出。
12.根据权利要求1所述的装置,其中所述控制电路被进一步配置为:
接收神经网络的层的多个权重值;
将所述权重值编程到所述存储器单元中作为数据状态;
在将所述权重值编程到所述存储器单元中之后,接收所述神经网络的所述层的输入矢量;
将所述输入矢量转换为所述第一多个输入电压;以及
通过将所述第一多个输入电压施加到所述存储器单元来执行所述输入矢量与所述权重值的阵列内乘法。
13.一种方法,包括:
偏置存储器单元阵列以将一个或多个第一选定存储器单元同时编程为多个数据状态中的第一数据状态,所述阵列根据交叉点架构形成,其中所述存储器单元连接在对应的位线和对应的字线之间,并且每个所述存储器单元由被导电层分开的多个电介质层形成,所述偏置包括:
将所述阵列的对应于所述一个或多个第一选定存储器单元的位线设置为低电压值;
将所述阵列的不对应于所述一个或多个第一选定存储器单元的位线设置为第一中间电压电平;以及
将所述阵列的不对应于所述一个或多个第一选定存储器单元的字线设置为所述第一中间电压电平;以及
在偏置所述存储器单元阵列以将一个或多个第一选定存储器单元同时编程为所述多个数据状态中的所述第一数据状态时,将第一写入电压施加到所述阵列的对应于所述一个或多个第一选定存储器单元的字线,所述第一写入电压被选择为击穿所述第一选定存储器单元的所述电介质层中的一个或多个电介质层,以将所述第一选定存储器单元编程为所述多个数据状态中的所述第一数据状态,其中所述第一中间电压电平介于所述低电压值和所述第一写入电压之间。
14.根据权利要求13所述的方法,还包括:
在偏置所述存储器单元阵列以同时编程所述第一选定存储器单元之后,偏置所述阵列以将连接到所述阵列的对应于所述第一选定存储器单元的所述位线的一个或多个第二选定存储器单元同时编程为多个数据状态中的第二数据状态,所述偏置所述阵列以同时编程一个或多个第二选定存储器单元包括:
将所述阵列的对应于所述一个或多个第一选定存储器单元的位线设置为低电压值;
将所述阵列的不对应于所述一个或多个第二选定存储器单元的位线设置为第二中间电压电平;以及
将所述阵列的不对应于所述一个或多个第二选定存储器单元的字线设置为所述第二中间电压电平;以及
在偏置所述存储器单元阵列以将一个或多个第二选定存储器单元同时编程为所述多个数据状态中的所述第二数据状态时,将第二写入电压施加到所述阵列的对应于所述第二选定存储器单元的字线,所述第二写入电压被选择为击穿所述第二选定存储器单元的所述电介质层中的一个或多个电介质层,以将所述第二选定存储器单元编程为所述多个数据状态中的所述第二数据状态,其中所述第二中间电压电平介于所述低电压值和所述第二写入电压之间。
15.根据权利要求13所述的方法,其中所述阵列的所述存储器单元被编程为存储神经网络的层的权重,并且所述方法还包括:
接收所述神经网络的所述层的输入矢量;以及
通过以下操作执行所述输入矢量与所述神经网络的所述权重的阵列内乘法:
将所述输入矢量转换为一组电压电平;以及
将所述一组电压电平施加到所述阵列的所述字线。
16.一种非易失性存储器设备,包括:
存储器阵列,所述存储器阵列包括:
多个字线;
多个位线;
多个编程线;和
多个反熔丝存储器单元,所述存储器阵列具有交叉点架构,每个反熔丝存储器单元包括场效应晶体管(FET),所述FET连接在所述位线中的对应位线与所述字线中的对应字线之间并且具有连接到所述编程线中的对应编程线的控制栅,每个所述反熔丝存储器单元可通过使所述存储器单元的栅极氧化物击穿而从高电阻状态编程为低电阻状态;和
一个或多个控制电路,所述一个或多个控制电路连接到所述存储器阵列并且被配置为:
通过偏置所述对应的字线和对应的位线以在所述选定存储器单元上设置电压差,同时向所述对应的编程线施加写入电压以击穿所述选定存储器单元的所述栅极氧化物,来对所述反熔丝存储器单元中的选定反熔丝存储器单元编程;以及
响应于在将所述编程线设置为接地时施加到所述对应的多个字线的一组对应的第一多个输入电压,同时感测沿着共享位线连接的第一多个所述存储器单元。
17.根据权利要求16所述的非易失性存储器设备,其中所述非易失性存储器设备包括:
接合管芯对,所述接合管芯对包括:
存储器管芯,所述存储器管芯包括所述存储器阵列;和
控制管芯,所述控制管芯与所述存储器管芯分开形成并接合到所述存储器管芯,并且包括所述一个或多个控制电路。
18.根据权利要求16所述的非易失性存储器设备,其中每个反熔丝存储器单元还包括与所述对应的位线与所述对应的字线之间的所述场效应晶体管串联连接的电阻器。
19.根据权利要求16所述的非易失性存储器设备,其中,为了对所述反熔丝存储器单元中的选定反熔丝存储器单元进行编程,所述一个或多个控制电路被配置为同时:
将对应于一个或多个选定存储器单元的编程线偏置到写入选择电压,并且将所述阵列的其他编程线偏置到低电压值;
将对应于选定存储器单元的字线偏置到所述低电压值,并且将所述阵列的其他字线偏置到介于所述写入选择电压值和所述低电压值之间的电压电平;以及
将所述阵列的所述位线偏置到介于所述写入选择电压和所述低电压值之间的所述电压电平。
20.根据权利要求16所述的非易失性存储器设备,其中所述存储器单元被配置为存储神经网络的层的权重,并且其中所述一个或多个控制电路被进一步配置为:
接收所述神经网络的所述层的输入值矢量;以及
通过将所述输入值矢量转换为电压电平组并且同时将所述电压电平组施加到对应的一组所述字线来执行所述神经网络的阵列内乘法运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/061,820 US11289171B1 (en) | 2020-10-02 | 2020-10-02 | Multi-level ultra-low power inference engine accelerator |
US17/061,820 | 2020-10-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114388039A true CN114388039A (zh) | 2022-04-22 |
Family
ID=80738198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110622315.XA Pending CN114388039A (zh) | 2020-10-02 | 2021-06-03 | 多级超低功率推理引擎加速器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11289171B1 (zh) |
JP (1) | JP7152562B2 (zh) |
KR (1) | KR102605890B1 (zh) |
CN (1) | CN114388039A (zh) |
DE (1) | DE102021115503A1 (zh) |
TW (1) | TWI783538B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102318819B1 (ko) * | 2020-06-10 | 2021-10-27 | 연세대학교 산학협력단 | 멀티 비트 가중치의 연산을 위한 인 메모리 장치 |
KR102540226B1 (ko) * | 2022-07-28 | 2023-06-07 | 인하대학교 산학협력단 | 3진 신경망 가속기 소자 및 그 동작 방법 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677867A (en) * | 1991-06-12 | 1997-10-14 | Hazani; Emanuel | Memory with isolatable expandable bit lines |
US5268319A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Highly compact EPROM and flash EEPROM devices |
US6151248A (en) * | 1999-06-30 | 2000-11-21 | Sandisk Corporation | Dual floating gate EEPROM cell array with steering gates shared by adjacent cells |
KR100546179B1 (ko) | 2003-07-30 | 2006-01-24 | 주식회사 하이닉스반도체 | 멀티비트 제어 기능을 갖는 불휘발성 강유전체 메모리 장치 |
JP5015420B2 (ja) | 2003-08-15 | 2012-08-29 | 旺宏電子股▲ふん▼有限公司 | プログラマブル消去不要メモリに対するプログラミング方法 |
US8305807B2 (en) | 2010-07-09 | 2012-11-06 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
JP2013004143A (ja) | 2011-06-16 | 2013-01-07 | Toshiba Corp | 不揮発性半導体記憶装置 |
US20130148404A1 (en) * | 2011-12-08 | 2013-06-13 | Abhijit Bandyopadhyay | Antifuse-based memory cells having multiple memory states and methods of forming the same |
US9953725B2 (en) * | 2012-02-29 | 2018-04-24 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and methods of operating the same |
US9082502B2 (en) | 2013-10-10 | 2015-07-14 | Sandisk Technologies Inc. | Bit line and compare voltage modulation for sensing nonvolatile storage elements |
JP6273384B2 (ja) | 2014-08-19 | 2018-01-31 | サビック グローバル テクノロジーズ ビー.ブイ. | マルチレベル動作を有する不揮発性強誘電体メモリセル |
US9721662B1 (en) | 2016-01-13 | 2017-08-01 | Sandisk Technologies Llc | Non-volatile memory with efficient programming |
JP6608312B2 (ja) * | 2016-03-08 | 2019-11-20 | ルネサスエレクトロニクス株式会社 | 半導体装置およびその製造方法 |
KR102369715B1 (ko) | 2017-06-12 | 2022-03-03 | 삼성전자주식회사 | 이차원 물질을 포함하는 비휘발성 메모리 소자 및 이를 포함하는 장치 |
US11354562B2 (en) | 2018-01-03 | 2022-06-07 | Silicon Storage Technology, Inc. | Programmable neuron for analog non-volatile memory in deep learning artificial neural network |
US10664746B2 (en) | 2018-07-17 | 2020-05-26 | Macronix International Co., Ltd. | Neural network system |
WO2020042078A1 (zh) * | 2018-08-30 | 2020-03-05 | 深圳市为通博科技有限责任公司 | 存储单元、存储器件以及存储单元的操作方法 |
US10699764B1 (en) * | 2018-12-14 | 2020-06-30 | Nxp Usa, Inc. | MRAM memory with OTP cells |
JP2020155727A (ja) | 2019-03-22 | 2020-09-24 | ソニーセミコンダクタソリューションズ株式会社 | 半導体装置及びこれを備えた電子機器 |
TWI686803B (zh) | 2019-06-04 | 2020-03-01 | 旺宏電子股份有限公司 | 可變電阻式記憶體之編程方法及記憶胞之電壓編程方法 |
US10892279B1 (en) * | 2019-07-17 | 2021-01-12 | Sandisk Technologies Llc | NAND string containing separate hole and electron tunneling dielectric layers and methods for forming the same |
-
2020
- 2020-10-02 US US17/061,820 patent/US11289171B1/en active Active
-
2021
- 2021-06-03 CN CN202110622315.XA patent/CN114388039A/zh active Pending
- 2021-06-15 DE DE102021115503.7A patent/DE102021115503A1/de active Pending
- 2021-06-21 TW TW110122640A patent/TWI783538B/zh active
- 2021-06-22 JP JP2021103405A patent/JP7152562B2/ja active Active
- 2021-06-24 KR KR1020210082725A patent/KR102605890B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20220044642A (ko) | 2022-04-11 |
JP2022060145A (ja) | 2022-04-14 |
TW202215437A (zh) | 2022-04-16 |
KR102605890B1 (ko) | 2023-11-24 |
US11289171B1 (en) | 2022-03-29 |
JP7152562B2 (ja) | 2022-10-12 |
TWI783538B (zh) | 2022-11-11 |
US20220108759A1 (en) | 2022-04-07 |
DE102021115503A1 (de) | 2022-04-07 |
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 | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
US11568228B2 (en) | Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays | |
US11397885B2 (en) | Vertical mapping and computing for deep neural networks in non-volatile memory | |
TWI783539B (zh) | 具有外部磁場程式化輔助的超低電力推理引擎 | |
US20220398438A1 (en) | Compute in memory three-dimensional non-volatile nor memory for neural networks | |
US11544547B2 (en) | Accelerating binary neural networks within latch structure of non-volatile memory devices | |
KR102605890B1 (ko) | 멀티-레벨 초 저전력 추론 엔진 가속기 | |
US20220366211A1 (en) | Dropout in neutral networks using threshold switching selectors in non-volatile memories | |
US20220398439A1 (en) | Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions | |
US20210397974A1 (en) | Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing | |
US20210326110A1 (en) | Reconfigurable input precision in-memory computing | |
CN110751276A (zh) | 在nand存储器阵列中实现具有三值输入和二值权重的神经网络 | |
US20220358354A1 (en) | Architecture design for ensemble binary neural network (ebnn) inference engine on single-level memory cell arrays | |
US11663471B2 (en) | Compute-in-memory deep neural network inference engine using low-rank approximation technique |
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 |