CN115810384A - 使用数据锁存器压缩非易失性存储器中的软位数据 - Google Patents

使用数据锁存器压缩非易失性存储器中的软位数据 Download PDF

Info

Publication number
CN115810384A
CN115810384A CN202210570159.1A CN202210570159A CN115810384A CN 115810384 A CN115810384 A CN 115810384A CN 202210570159 A CN202210570159 A CN 202210570159A CN 115810384 A CN115810384 A CN 115810384A
Authority
CN
China
Prior art keywords
data
memory
read operation
bit
memory cells
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210570159.1A
Other languages
English (en)
Inventor
华-玲·辛西娅·许
东谷政昭
李延珑
陈晨
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 US17/557,236 external-priority patent/US11894068B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN115810384A publication Critical patent/CN115810384A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/5621Digital 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 charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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/24Bit-line control circuits
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/563Multilevel memory reading aspects
    • G11C2211/5632Multilevel reading using successive approximation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

对于在纠错操作中使用硬位和软位数据的非易失性存储器,为了减少需要从存储器传送到控制器的软位数据的量并改善存储器系统性能,能够在传送之前压缩软位数据。在读取软位数据并将其存储到与感测放大器相关联的内部数据锁存器中之后,在这些内部数据锁存器内对软位数据进行压缩。然后,经压缩的软位数据可以被传送到高速缓存缓冲器的传送数据锁存器,其中经压缩的软位数据可以被合并并且通过输入‑输出接口传送出。在输入‑输出接口中,如果需要,可以对经压缩的数据进行重整以将其置于逻辑用户数据次序。

Description

使用数据锁存器压缩非易失性存储器中的软位数据
优先权声明
本申请是2011年12月21日提交的Hsu的名称为“Efficient sensing of Soft BitData for Non-Volatile Memory”的美国专利申请17/557,236的部分继续申请,该美国专利申请又要求2021年9月16日提交的Hsu等人的名称为“Plane Level VerticalCompression Scheme”的美国临时专利申请63/244,951的优先权,这两件专利申请据此以引用的方式全文并入本文。
背景技术
本公开涉及非易失性存储装置。
半导体存储器广泛用于各种电子设备,诸如蜂窝电话、数码相机、个人数字助理、医疗电子器件、移动计算设备、服务器、固态驱动器、非移动计算设备和其他设备。半导体存储器可以包括非易失性存储器或易失性存储器。即使当非易失性存储器未连接到电源(例如,电池)时,非易失性存储器也允许存储和保留信息。非易失性存储器的一个示例为闪存存储器(例如,NAND型闪存存储器和NOR型闪存存储器)。
非易失性存储器的用户可将数据编程(例如,写入)非易失性存储器并随后读回该数据。例如,数码相机可拍摄照片并将该照片存储在非易失性存储器中。随后,数码相机的用户可通过使该数码相机从非易失性存储器读取照片来查看该照片。因为用户经常依赖于他们存储的数据,所以对于非易失性存储器的用户来说重要的是能够可靠地存储数据以使得能够成功地读回该数据。
附图说明
类似编号的元件是指不同附图中的共同部件。
图1是描绘存储系统的一个实施方案的框图。
图2A示出存储器管芯的一个实施方案的框图。
图2B是集成存储器组件的一个实施方案的框图。
图3描绘了用于感测来自非易失性存储器的数据的电路系统。
图4是单片三维存储器结构的一个实施方案的一部分的透视图。
图4A是具有两个平面的存储器结构的一个实施方案的框图。
图4B至图4G更详细地示出了图4的实施方案。
图5A至图5F描绘了阈值电压分布的示例。
图6是描述用于对非易失性存储器进行编程的过程的一个实施方案的流程图。
图7示出了两个相邻数据状态的分布的重叠和一组读取值,该组读取值可用于确定单元的数据状态和这样的读取的可靠性。
图8示出了硬位和软位的概念。
图9A和图9B分别示出了每存储器单元三位数据实施方案中用于计算下页数据的硬位和软位值的读取电平。
图10示出了在用于有效软感测的实施方案中使用的硬位和软位值和读取电平的分配。
图11示出了在每存储器单元三位数据实施方案中使用表2的编码将有效软感测模式应用于下页数据。
图12示出了对应于图11中示出的读取点的在有效软感测读取操作中用于下页数据读取操作的感测操作的实施方案。
图13示出了可用于确定存储器单元的硬位和软位值的感测放大器电路的实施方案。
图14是有效软感测操作的实施方案的流程图。
图15是包括软位压缩元件的存储器设备的控制电路元件中的一些控制电路元件的实施方案的框图。
图16、图17A和图17B提供关于可用于软位数据压缩过程中的数据锁存器的实施方案的更多细节。
图18和图19示出了用于将原始软位数据从一组内部数据锁存器压缩到另一组数据锁存器的两个实施方案。
图20示出了在内部数据锁存器内的压缩软位数据的重新布置。
图21示出了在传送锁存器内进行传送以紧缩经压缩的数据。
图22是将经压缩的数据位重整为处于逻辑次序的示意图。
图23是包括软位压缩元件的存储器设备的控制电路元件中的一些控制电路元件的另选实施方案的框图。
图24A和图24B是使用图23的实施方案将经压缩的数据位重整为处于逻辑次序的替代实施方案的示意图。
图25是用与非易失性存储器设备的感测放大器相关联的数据锁存器执行数据压缩的实施方案的流程图。
具体实施方式
在一些存储器系统中,有时使用包括“软位”数据的纠错方法。软位数据提供关于用于在数据状态之间进行区分的标准或“硬位”数据值的可靠性的信息。例如,当数据值基于存储器单元的阈值电压时,硬位读取将确定存储器单元的阈值电压是高于还是低于数据读取值,以便在所存储的数据状态之间进行区分。对于阈值电压略高于或略低于该参考值的存储器单元,这种硬位可能不正确,因为存储器单元实际上意味着处于其他数据状态。为了确定具有接近硬位读取电平的阈值电压,并且因此具有较低可靠性的硬位值的存储器单元,可以执行偏移得稍微高于和稍微低于硬位读取电平的一对附加读取以生成用于硬位值的软位值。软位的使用可以是用于提取存储器单元的数据内容的强大工具,但是因为它需要附加读取来获得随后需要传送到纠错电路系统的软位数据,所以它通常仅在数据不能单独从硬位值准确地确定时才使用。
以下提出了有效的软感测读取模式,其需要更少读取值来生成软位数据,并且生成较少的软位数据,从而减少通常与使用软位数据相关联的性能和功耗损失,从而允许有效的软感测模式用作默认读取模式。相对于典型的硬位、软位布置,硬位的读取点偏移,使得存储器单元的数据状态中的一者的硬位值是可靠的,但是另一数据状态的硬位包括较大数量的不可靠硬位值。执行单个软位读取以针对不太可靠的硬位值,但不针对更可靠的硬位值提供可靠性信息,从而减少读数数量和所得数据的量。为了进一步改善性能,可以将硬位感测和软位感测两者组合成单个感测,诸如通过对感测放大器的节点进行预充电并且通过所选择的存储器单元进行单次放电,但是对于节点上的单个放电感测所得电平两次,一次针对硬位值,并且一次针对软位值。
为了进一步减少需要从存储器传送到控制器的数据的量并改善存储器系统性能,可以在传送之前压缩软位数据。在读取软位数据并将其存储到与感测放大器相关联的内部数据锁存器中之后,在这些内部数据锁存器内对软位数据进行压缩。然后,经压缩的软位数据可以被传送到高速缓存缓冲器的传送数据锁存器,其中经压缩的软位数据可以被合并并且通过输入-输出接口传送出。在输入-输出接口中,如果需要,可以对经压缩的数据进行重整以将其置于逻辑用户数据次序。
图1中描绘的存储系统100的部件为电子电路。存储系统100包括连接到非易失性存储器130和本地高速易失性存储器140(例如,DRAM)的存储器控制器120。存储器控制器120使用本地高速易失性存储器140来执行某些功能。例如,本地高速易失性存储器140将逻辑存储在物理地址转换表(“L2P表”)中。
存储器控制器120包括连接到主机102并与其通信的主机接口152。在一个实施方案中,主机接口152通过PCI Express(PCIe)实现NVM Express(NVMe)。也可使用其他接口,诸如SCSI、SATA等。主机接口152还连接到片上网络(NOC)154。NOC是集成电路上的通信子系统。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了片上系统(SoC)的可扩展性以及复杂SoC的电源效率。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。在其他实施方案中,NOC 154可由总线替换。处理器156、ECC引擎158、存储器接口160和DRAM控制器164连接到NOC 154并与其通信。DRAM控制器164用于操作本地高速易失性存储器140(例如,DRAM)并与其通信。在其他实施方案中,本地高速易失性存储器140可为SRAM或另一种类型的易失性存储器。
ECC引擎158执行纠错服务。例如,ECC引擎158根据实现的ECC技术执行数据编码和解码。在一个实施方案中,ECC引擎158是由软件编程的电子电路。例如,ECC引擎158可为可编程的处理器。在其他实施方案中,ECC引擎158是不具有任何软件的定制的专用硬件电路。在另一个实施方案中,ECC引擎158的功能由处理器156实现。
处理器156执行各种控制器存储器操作,诸如编程、擦除、读取和存储器管理过程。在一个实施方案中,处理器156由固件编程。在其他实施方案中,处理器156是不具有任何软件的定制的专用硬件电路。处理器156还实现转换模块,作为软件/固件过程或作为专用硬件电路。在许多系统中,使用与一个或多个存储器管芯相关联的物理地址将非易失性存储器向内寻址到存储系统。然而,主机系统将使用逻辑地址来寻址各种存储器位置。这使主机能够将数据分配给连续的逻辑地址,同时存储系统空闲下来按希望的那样在一个或多个存储器管芯的位置间存储数据。为了实现这种系统,存储器控制器120(例如,转换模块)在由主机使用的逻辑地址与由存储器管芯使用的物理地址之间执行地址转换。一个示例性具体实施是维护识别逻辑地址与物理地址之间的当前转换的表(即,上述L2P表)。L2P表中的条目可包括逻辑地址和对应物理地址的标识。虽然逻辑地址到物理地址表(或L2P表)包括字词“表”,但它们不必是字面意义上的表。而是,逻辑地址到物理地址表(或L2P表)可为任何类型的数据结构。在一些示例中,存储系统的存储器空间非常大,以致于本地存储器140不能保存所有L2P表。在这种情况下,将整组L2P表存储在存储器管芯130中,并且将L2P表的子集高速缓存(L2P高速缓存)在本地高速易失性存储器140中。
存储器接口160与非易失性存储器130通信。在一个实施方案中,存储器接口提供切换模式接口。也可使用其他接口。在一些示例性具体实施中,存储器接口160(或控制器120的另一部分)实现用于向一个或多个存储器管芯传输数据以及从一个或多个存储器管芯接收数据的调度器和缓冲器。
在一个实施方案中,非易失性存储器130包括一个或多个存储器管芯。图2A是包括非易失性存储器130的存储器管芯200的一个实施方案的功能框图。非易失性存储器130的一个或多个存储器管芯中的每一者都可以实现为图2A的存储器管芯200。图2A中描绘的部件为电子电路。存储器管芯200包括存储器阵列202,该存储器阵列可包括非易失性存储器单元,如下文更详细地描述。存储器阵列202的阵列端子线包括组织成行的各种字线层,以及组织成列的各种位线层。然而,也可以实现其他取向。存储器管芯200包括行控制电路系统220,该行控制电路系统的输出端208连接到存储器阵列202的相应字线。行控制电路系统220从系统控制逻辑电路260接收一组M行地址信号和一个或多个各种控制信号,并且通常可以包括诸如行解码器222、阵列端子驱动器224和块选择电路系统226等电路以用于读取操作和写入(编程)操作两者。行控制电路系统220还可以包括读取/写入电路系统。存储器管芯200还包括列控制电路系统210,该列控制电路系统包括感测放大器230,该感测放大器的输入端/输出端206连接到存储器阵列202的相应位线。尽管针对阵列202仅示出了单个块,但是存储器管芯可以包括可以被单独访问的多个阵列。列控制电路系统210从系统控制逻辑部件260接收一组N个列地址信号和一个或多个各种控制信号,并且通常可包括诸如列解码器212、阵列端子接收器或驱动器电路214、块选择电路系统216以及读取/写入电路系统和I/O多路复用器之类的电路。
系统控制逻辑部件260从存储器控制器120接收数据和命令,并且向主机提供输出数据和状态。在一些实施方案中,系统控制逻辑部件260(其包括一个或多个电路)包括提供存储器操作的管芯级控制的状态机262。在一个实施方案中,状态机262能够由软件编程。在其他实施方案中,状态机262不使用软件并且完全地在硬件(例如,电路)中实现。在另一个实施方案中,状态机262由微控制器或微处理器替换,该微控制器或微处理器在存储器芯片之上或之外。系统控制逻辑部件260还可以包括功率控制模块264,该功率控制模块控制在存储器操作期间供应给存储器结构202的行和列的功率和电压,并且可包括用于产生调节电压的电荷泵和调节器电路。系统控制逻辑部件260包括存储装置266(例如,RAM、寄存器、锁存器等),该存储装置可用于存储用于操作存储器阵列202的参数。
命令和数据经由存储器控制器接口268(也称为“通信接口”)在存储器控制器120与存储器管芯200之间传送。存储器控制器接口268是用于与存储器控制器120通信的电接口。存储器控制器接口268的示例包括切换模式接口和开放NAND闪存接口(ONFI)。也可以使用其他I/O接口。
在一些实施方案中,存储器管芯200的所有元件(包括系统控制逻辑部件360)可以形成为单个管芯的一部分。在其他实施方案中,系统控制逻辑部件260中的一些或全部可以形成在不同的管芯上。
在一个实施方案中,存储器结构202包括非易失性存储器单元的三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可包括任何类型的非易失性存储器,该非易失性存储器在具有设置在硅(或其他类型的)衬底上方的有源区域的存储器单元的一个或多个物理级中一体地形成。在一个示例中,非易失性存储器单元包括具有电荷俘获层的垂直NAND串。
在另一个实施方案中,存储器结构202包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮动栅极的NAND闪存存储器单元。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。
包括在存储器结构202中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器技术可用于形成存储器结构202。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器结构202的存储器单元的合适技术的其他示例包括ReRAM存储器(电阻式随机存取存储器)、磁阻式存储器(例如,MRAM、自旋转移矩MRAM、自旋轨道扭矩MRAM)、FeRAM、相变存储器(例如,PCM)等。用于存储器结构202的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等。
ReRAM交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
另一个示例是通过磁存储元件来存储数据的磁阻随机存取存储器(MRAM)。这些元件由两个被薄绝缘层隔开的铁磁层形成,这两个铁磁层中的每一个铁磁层都可以保持磁化。这两个层中的一个层是被设置为特定极性的永磁体;另一个层的磁化可以被改变以匹配外磁场对存储存储器的磁化。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。下文将更详细地讨论基于MRAM的存储器实施方案。
相变存储器(PCM)利用了硫属化合物玻璃的独特性能。一个实施方案使用GeTe-Sb2Te3超晶格以通过简单地用激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。在其他PCM实施方案中,存储器单元通过电流脉冲来编程。应当注意,在该文件中使用“脉冲”不需要矩形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。各个可选择存储器单元或位内的这些存储器元件可以包括作为选择器的另外的串联元件,诸如双向阈值开关或金属绝缘体衬底。
本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构、存储器配置或材料构成,但涵盖了在如本文所述的以及如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。
图2A的元件可可被分组为两个部分:(1)存储器结构202和(2)外围电路系统,该外围电路系统包括图2A中描绘的除存储器结构202之外的所有部件。存储器电路的重要特性是其容量,该容量可以通过如下方式增加:增加留给存储器结构202作特定用途的存储系统100的存储器管芯的面积;然而,这减小了可用于外围电路系统的存储器管芯的面积。这可以对外围电路系统的这些元件造成相当严重的限制。例如,需要在可用区域内装配感测放大器电路,这可是对感测放大器设计架构的重大限制。相对于系统控制逻辑部件260,可用面积减小可能会限制可以在芯片上实现的可用功能。因此,在存储系统100的存储器管芯的设计中,需要对存储器结构202的专用面积量以及外围电路系统的专用面积量进行基本权衡。
存储器结构202与外围电路系统通常有矛盾的另一个区域是在形成这些区域时所涉及的处理中,因为这些区域通常涉及不同的处理技术以及在单个管芯上实施不同技术时的权衡。例如,当存储器结构202是NAND闪存时,这是NMOS结构,而外围电路系统通常是基于CMOS的。例如,诸如感测放大器电路、电荷泵、状态机中的逻辑元件和系统控制逻辑部件260中的其他外围电路系统的元件通常采用PMOS设备。用于制造CMOS管芯的处理操作在许多方面将不同于针对NMOS闪存NAND存储器或其他存储器单元技术所优化的处理操作。
为了改进这些限制,下文所述的实施方案可将图2A的元件分离到单独形成的管芯上,然后将这些管芯接合在一起。更具体地,存储器结构202可以形成在一个管芯(称为存储器管芯)上,并且外围电路系统元件中的一些或全部(包括一个或多个控制电路)可以形成在单独的管芯(称为控制管芯)上。例如,存储器管芯可以仅由存储器元件形成,诸如闪存NAND存储器、MRAM存储器、PCM存储器、ReRAM存储器或其他存储器类型的存储器单元阵列。然后可以将外围电路中的一些或全部电路(甚至包括诸如解码器和感测放大器等元件)移到单独的控制管芯上。这允许根据其技术单独地优化存储器管芯中的每个管芯。例如,NAND存储器管芯可以针对基于NMOS的存储器阵列结构进行优化,而无需担心现在已移到可以针对CMOS处理进行优化的控制管芯上的CMOS元件。这为外围元件提供了更多空间,如果外围元件被限制于容纳了存储器单元阵列的相同管芯的边缘,则现在可结合可能不容易结合的附加能力。然后可在接合式多管芯存储器电路中将两个管芯接合在一起,其中一个管芯上的阵列连接到另一个管芯上的外围元件。例如,虽然下面将集中介绍一个存储器管芯和一个控制管芯的接合式存储器电路,但其他实施方案可使用更多管芯,诸如两个存储器管芯和一个控制管芯。
图2B示出了图2A的布置的另选布置,其可使用晶圆对晶圆接合来实现以提供接合管芯对。图2B描绘了集成存储器组件207的一个实施方案的功能框图。一个或多个集成存储器组件207可用于实现存储系统100的非易失性存储器130。集成存储器组件307包括两种类型的半导体管芯(或更简洁地,“管芯”)。存储器管芯201包括存储器结构202。存储器结构202包括非易失性存储器单元。控制管芯211包括控制电路系统260、210和220(如上所述)。在一些实施方案中,控制管芯211被配置为连接到存储器管芯201中的存储器结构202。在一些实施方案中,存储器管芯201和控制管芯211接合在一起。
图2B示出了外围电路系统的示例,其包括形成于外围电路或控制管芯311中的控制电路,这些控制电路耦接到形成于存储器管芯201中的存储器结构202。通用部件以类似于图2A的方式标记。系统控制逻辑部件260、行控制电路系统220和列控制电路系统210位于控制管芯211中。在一些实施方案中,列控制电路系统210的全部或一部分以及行控制电路系统220的全部或一部分位于存储器管芯201上。在一些实施方案中,系统控制逻辑部件260中的一些电路系统位于存储器管芯201上。
系统控制逻辑部件260、行控制电路系统220和列控制电路系统210可以由常规工艺(例如,CMOS工艺)形成,使得添加更常见于存储器控制器120上的元件和功能诸如ECC可能需要很少的附加工艺步骤或不需要附加工艺步骤(即,用于制造控制器120的相同工艺步骤也可以用于制造系统控制逻辑部件260、行控制电路系统220和列控制电路系统210)。因此,尽管移走管芯(诸如,存储器2管芯201)中的此类电路可减少制造此类管芯所需的步骤数量,但向管芯(诸如,控制管芯311)添加此类电路可能不需要许多附加的工艺步骤。由于使用CMOS技术来实现控制电路系统260、210、220中的一些或全部,因此控制管芯211也可称为CMOS管芯。
图2B示出了控制管芯211上的包括感测放大器230的列控制电路系统210,该列控制电路通过电路径206耦接到存储器管芯201上的存储器结构202。例如,电路径206可以在列解码器212、驱动器电路系统214、块选择器216与存储器结构202的位线之间提供电连接。电路径可以从控制管芯211中的列控制电路系统210延伸穿过控制管芯211上的焊盘,这些焊盘接合到存储器管芯201的对应焊盘,这些对应焊盘连接到存储器结构202的位线。存储器结构202的每个位线都可以在电路径206中具有对应的电路径,包括连接到列控制电路系统210的一对接合焊盘。类似地,行控制电路系统220(包括行解码器222、阵列驱动器224和块选择器226)通过电路径208耦接到存储器结构202。电路径208中的每条电路径可以对应于字线、虚设字线或选择栅极线。也可以在控制管芯211与存储器管芯201之间提供附加的电路径。
出于本文档的目的,短语“控制电路”或“一个或多个控制电路”可包括存储器控制器120、状态机262、系统控制逻辑260的全部或一部分、行控制电路系统220的全部或一部分、列控制电路系统210的全部或一部分、微控制器、微处理器和/或其他类似功能电路中的任一者或任何组合。
控制电路可以仅包括硬件或者包括硬件和软件(包括固件)的组合。例如,由固件编程以执行本文描述的功能的控制器是控制电路的一个示例。
控制电路可以包括处理器、FGA、ASIC、集成电路,或其他类型的电路。在一些实施方案中,集成存储器组件207中存在多于一个控制管芯211和多于一个存储器管芯201。在一些实施方案中,集成存储器组件207包括多个控制管芯211和多个存储器管芯201的堆叠。
图3是描绘列控制电路系统210的一部分的一个实施方案的框图,该部分被划分为多个感测放大器230以及被称为管理电路302的公共部分。在一个实施方案中,每个感测放大器230连接到相应的位线,该位线继而连接到一个或多个NAND串。在一个示例性具体实施中,每个位线连接到六个NAND串,其中每个子块一个NAND串。管理电路302连接到一组多个(例如,四个、八个等)感测放大器230。组中的感测放大器230中的每一者经由数据总线304与相关联的管理电路通信。
在编程、验证、读取和/或擦除期间,每个感测放大器230操作以将电压提供到位线(参见BL0、BL1、BL2、BL3)提供电压。感测放大器还用于感测连接到位线的NAND串中的存储器单元的条件(例如,数据状态),该位线连接到相应的感测放大器。
每个感测放大器230包括连接到晶体管308(例如,NMOS)的选择器306或开关。基于晶体管308的控制栅极310和漏极312处的电压,晶体管可作为通过门或位线钳位操作。当控制栅极处的电压充分高于漏极上的电压时,晶体管作为通过门操作以将漏极处的电压传递到晶体管的源极314处的位线(BL)。例如,当对未选择的NAND串进行预充电和禁止时,编程禁止电压(诸如1V-2V)可通过。或者,编程启用电压(诸如0V)可通过以允许在所选择的NAND串中进行编程。选择器306可将电源电压Vdd(例如,3V-4V)传递到晶体管308的控制栅极,以使其作为通过门操作。
当控制栅极处的电压低于漏极上的电压时,晶体管308作为源极跟随器操作以将位线电压设置或钳位在Vcg-Vth处,其中Vcg为控制栅极310上的电压,并且Vth(例如,0.7V)为晶体管308的阈值电压。这假设源极线处于0V。如果Vcelsrc是非零,则位线电压被钳位在Vcg-Vcelsrc-Vth处。因此,晶体管有时被称为位线钳位(BLC)晶体管,并且控制栅极310上的电压Vcg被称为位线钳位电压Vblc。该模式可在感测操作期间使用,诸如读取和验证操作。因此,位线电压由晶体管308基于由选择器306输出的电压来设置。例如,选择器306可将Vsense+Vth(例如,1.5V)传递到晶体管308的控制栅极,以在位线上提供Vsense(例如,0.8V)Vbl选择器316可将相对较高电压诸如Vdd传递到漏极312,该电压高于晶体管308上的控制栅极电压以在感测操作件提供源极跟随器模式。Vbl是指位线电压。
Vbl选择器316可传递多个电压信号中的一个电压信号。例如,Vbl选择器可传递编程禁止电压信号,该编程禁止电压信号在编程循环期间针对未选择的NAND串的相应位线从初始电压(例如,0V)增加到编程禁止电压(例如,Vbl_inh)。Vbl选择器316可以在编程循环期间针对所选择的NAND串的相应位线传递编程启用电压信号(诸如0V)。
在一种方法中,每个感测电路的选择器306可以与其他感测电路的选择器分开控制。每个感测电路的Vbl选择器316也可以与其他感测电路的Vbl选择器分开控制。
在感测期间,感测节点318被充电直到初始电压Vsense_init(诸如3V)。然后,感测节点经由晶体管308传递到位线,并且感测节点的衰减量用于确定存储器单元是处于导电状态还是非导电状态。感测节点的衰减量还指示存储器单元中的电流Icell是否超过参考电流Iref。较大的衰减对应于较大电流。如果Icell≤Iref,则存储器单元处于非导电状态,并且如果Icell>Iref,则存储器单元处于导电状态。
具体地,比较电路320通过在感测时将感测节点电压与跳闸电压进行比较来确定衰减量。如果感测节点电压衰减到低于跳闸电压Vtrip,则存储器单元处于导电状态并且其Vth等于或低于验证电压。如果感测节点电压未衰减到低于Vtrip,则存储器单元处于非导电状态并且其Vth高于验证电压。例如,由比较电路320基于存储器单元分别是处于导电状态还是非导电状态而将感测节点锁存器322设置为0或1。例如,在编程-验证测试中,0可以表示失败,并且1可以表示通过。感测节点锁存器中的位可在扫描操作的状态位扫描操作中读出,或在填充操作中从0翻转到1。感测节点锁存器322中的位也可用于锁定扫描中,以决定在下一个编程循环中将位线电压设置为禁止电平还是编程电平。L
管理电路302包括处理器330、四组示例性数据锁存器340、342、344和346以及耦接在数据锁存器组与数据总线334之间的I/O接口332。图3示出了四组示例性数据锁存器340、342、344和346;然而,在其他实施方案中,可以实现多于或少于四组。在一个实施方案中,每个感测放大器230存在一组锁存器。可以为每个感测电路提供一组三个数据锁存器,例如,包括单独锁存器ADL、BDL、CDL和XDL。在一些情况下,可以使用不同数量的数据锁存器。在每存储器单元三位实施方案中,ADL存储用于下页数据的位,BDL存储用于中间页数据的位,CDL存储用于上页数据的位,并且XDL充当用于存储/锁存来自存储器控制器的数据的接口锁存器。
处理器330执行计算,诸如确定存储在已感测的存储器单元中的数据以及将所确定的数据存储在该组数据锁存器中。每组数据锁存器340-346用于在读取操作期间存储由处理器330确定的数据位并在编程操作期间存储从数据总线334导入的数据位,这些数据位表示要编程到存储器中的写入数据。I/O接口332在数据锁存器340-346和数据总线334之间提供接口。
在读取期间,系统的操作处于状态机262的控制之下,该状态机控制向寻址的存储器单元提供不同的控制栅极电压。当它逐步通过与存储器支持的各种存储器状态相对应的各种预定义控制栅极电压时,感测电路可以在这些电压中的一个电压处跳闸,并且对应输出将经由数据总线304从感测放大器提供给处理器330。此时,处理器330通过考虑感测电路的跳闸事件和关于来自状态机的经由输入线348施加的控制栅极电压的信息来确定所得的存储器状态。然后,它计算存储器状态的二进制编码,并将得到的数据位存储到数据锁存器340-346中。
一些具体实施可包括多个处理器330。在一个实施方案中,每个处理器330将包括输出线(未描绘),使得每个输出线以线或连接进行连接。可通过在节点处将多条线连接在一起来提供线或连接或线,其中每条线承载来自相应处理器的高或低输入信号,并且如果输入信号中的任一个输入信号高,则节点的输出高。在一些实施方案中,输出线在连接到线或线之前被反转。该配置使得能够在编程验证测试期间快速确定编程过程何时完成,因为接收线或的状态机可以确定何时所有被编程的位达到了期望的水平。例如,当每个位达到其所需电平时,该位的逻辑零将被发送到线或线(或数据一被反转)。当所有位输出数据0(或数据一被反转)时,状态机知道终止编程过程。因为每个处理器与八个感测电路通信,所以状态机需要读取线或线八次,或者将逻辑添加到处理器330以累积相关位线的结果,使得状态机只需要读取一次线或线。类似地,通过正确选择逻辑电平,全局状态机可以检测第一位何时改变其状态并相应地改变算法。
在存储器单元的编程或验证操作期间,要编程的数据(写入数据)存储在来自数据总线334的数据锁存器组340-346中。在重新编程期间,存储器单元的相应的一组数据锁存器可基于编程脉冲量值存储指示何时使存储器单元能够重新编程的数据。
在状态机262的控制下,编程操作将一系列编程电压脉冲施加到所寻址的存储器单元的控制栅极。每个电压脉冲的幅值可以在处理中从先前编程脉冲逐步增加一个步长,该处理被称为增量步进脉冲编程。每个编程电压之后是验证操作以确定存储器单元是否已被编程到所需的存储器状态。在一些情况下,处理器330监测相对于所需存储器状态的读回存储器状态。当两者一致时,处理器330将位线设置为编程禁止模式,诸如通过更新其锁存器。即使将附加的编程脉冲施加到其控制栅极,这也禁止耦接到位线的存储器单元进一步编程。
图4是可包括存储器结构202的单片三维存储器阵列/结构的一个示例性实施方案的一部分的透视图,该存储器结构包括被布置为竖直NAND串的多个非易失性存储器单元。例如,图4示出了一个存储器块的一部分400。所描绘的结构包括一组位线BL,其位于交替的介电层和导电层的堆叠401上方。出于示例目的,将介电层中的一个标记为D,并且将导电层中的一个(也被称为字线层)标记为W。交替的介电层和导电层的数量可以基于特定具体实施要求而变化。如下文将解释的,在一个实施方案中,交替的介电层和导电层通过隔离区IR分成六个(或不同数量的)区域(例如,子块)。图4示出了分离两个子块的一个隔离区IR。源极线层SL位于交替的介电层和字线层下方。在交替的介电层和导电层的堆叠中形成存储器孔。例如,存储器孔被标记为MH。需注意,在图4中,介电层被描绘为透视图,使得读者可以看到位于交替的介电层和导电层的堆叠中的存储器孔。在一个实施方案中,通过用包括电荷捕集材料的材料填充存储器孔以形成存储器单元的竖直列来形成NAND串。每个存储器单元可以存储一个或多个数据位。下文提供了包括存储器结构202的三维单片存储器阵列的更多细节。
图4A是说明存储器结构202的一个示例性组织的框图,该存储器结构被分为两个平面402和404。然后,将每个平面分成M个块。在一个示例中,每个平面具有约2000个块。然而,也可以使用不同数量的块和平面。在一个实施方案中,存储器单元的块是擦除单位。即,一个块的所有存储器单元一起被擦除。在其他实施方案中,可以将块划分为子块,并且子块可以是擦除单位。还可以出于其他原因将存储器单元分组为块,诸如为了组织存储器结构以启用信令和选择电路。在一些实施方案中,块表示一组连接的存储器单元,因为块的存储器单元共享一组公共的字线。例如,块的字线全部连接到该块的所有竖直NAND串。尽管图4A示出了两个平面402/404,但是可以实现多于或少于两个平面。在一些实施方案中,存储器结构202包括八个平面。
图4B至图4G描绘对应于图4的结构且可用于实现图2A和图2B的存储器结构202的示例性三维(“3D”)NAND结构。图4B是描绘平面402的块2的一部分406的顶视图的框图。从图4B中可以看出,图4B中所描绘的块沿432的方向延伸。在一个实施方案中,存储器阵列具有许多层;然而,图4B仅示出了顶层。
图4B描绘了表示对应于存储器孔的竖直列的多个圆。竖直列中的每一个包括多个选择晶体管(也称为选择栅极或选取栅极)和多个存储器单元。在一个实施方案中,每个竖直列实现一个NAND串。例如,图4B标记竖直列/NAND串426、432、436、446、456、462、466、472、474和476的子集。
图4B还描绘了一组位线415,包括位线411、412、413、414、……、419。图4B示出了二十四个位线,因为仅描绘了该块的一部分。可以设想到,多于二十四个位线可连接到该块的竖直列。表示竖直列的每个圆圈都有一个“x”以指示其与一个位线连接。例如,位线411连接到竖直列426、436、446、456、466和476。
图4B中所示的块包括一组隔离区480、482、484、486和488,其由SiO2形成;然而,也可以使用其他介电材料。隔离区480、482、484、486和488用于将块的顶层分为六个区域;例如,图4B中描绘的顶层被分为区域420、430、440、450、460和470,所有这些区域被称为子块。在一个实施方案中,隔离区仅划分用于实现选择栅极的层,使得可以独立地选择不同子块中的NAND串。在一个示例性具体实施中,位线仅连接到区域(字块)420、430、440、450、460和470中的每一者中的一个竖直列/NAND串。在该具体实施中,每个块具有二十四行活动列,并且每个位线连接到每个块中的六行。在一个实施方案中,连接到公共位线的所有六个竖直列/NAND串都连接到相同字线(或字线组)。因此,系统使用漏极侧选择线来选择六个中的要进行存储器操作(编程、验证、读取和/或擦除)的一个(或另一个子集)。
尽管图4B示出了在一个块中每个区域420、430、440、450、460和470具有四行竖直列,六个区域就有二十四行竖直列,但是这些确切数字是示例性具体实施。其他实施方案可以包括每一块更多或更少的区域、每一区域更多行或更少行的竖直列、以及每一块更多行或更少行的竖直列。图4B还示出了竖直列是交错的。在其它实施方案中,可以使用不同交错模式。在一些实施方案中,竖直列不交错。
图4C描绘了三维存储器结构202的一个实施方案的一部分,示出了沿图4B的线AA的剖视图。该剖视图切穿区域470的竖直列(NAND串)472和474(参见图4B)。图4C的结构包括:三个漏极侧选择层SGD0、SGD1和SGD2;三个源极侧选择层SGS0、SGS1及SGS2;三个虚设字线层DD0、DD1和DDS;用于连接到数据存储器单元的二百四十个字线层WL0-WL239;以及二百五个介电层Dl0-DL249。其他实施方案可实现多于或少于以上针对图4C所述的数字。在一个实施方案中,SGD0、SGD1和SGD2连接在一起,并且SGDS0、SGS1和SGS2连接在一起。
竖直列472和474被描绘为突出穿过漏极侧选择层、源极侧选择层、虚设字线层以及字线层。在一个实施方案中,每个竖直列都包括竖直NAND串。在竖直列和层之下的是衬底453、衬底上的绝缘膜454以及源极线SL。竖直列442的NAND串在堆叠的底部处具有源极端并且在堆叠的顶部处具有漏极端。如在图4B中,图4C示出了经由连接器417连接到位线414的竖直列472。
为了易于参考,漏极侧选择层、源极侧选择层、虚设字线层以及数据字线层统称为导电层。在一个实施方案中,导电层由TiN和钨的组合制成。在其他实施方案中,可使用其他材料形成导电层,该其他材料诸如为掺杂的多晶硅、金属(诸如钨)或金属硅化物。在一些实施方案中,不同导电层可以由不同材料形成。在导电层之间的是介电层DL0-DL249。例如,介电层DL240在字线层WL235上方并且在字线层WL236下方。在一个实施方案中,介电层由SiO2制成。在其他实施方案中,可以使用其他介电材料形成介电层。
非易失性存储器单元沿竖直列形成,该竖直列延伸穿过堆叠中的交替的导电层和介电层。在一个实施方案中,存储器单元布置在NAND串中。字线层WL0-W239连接到存储器单元(也称为数据存储器单元)。虚设字线层DD0、DD1和DS连接到虚设存储器单元。虚设存储器单元不存储主机数据并且没有资格存储主机数据(从主机或存储系统100外部的实体提供的数据,诸如来自主机用户的数据),而数据存储器单元有资格存储主机数据。主机数据可与由存储器系统100(例如,L2P表)生成的系统数据形成对比。在一些实施方案中,数据存储器单元和虚设存储器单元可具有相同结构。漏极侧选择层SGD0、SGD1和SGD2用于将NAND串与位线电连接和断开。源极侧选择层SGS0、SGS1和SGS2用于将NAND串与源极线SL电连接和断开。
注意,字线WL0-WL239的堆叠包括在堆叠边缘处的两个边缘字线,包括顶边缘字线WL239和底边缘字线WL0。字线WL1-WL238为非边缘字线。
图4D描绘了三维存储器结构202的一个实施方案的一部分,示出了沿图4B的线BB的剖视图。该剖视图切穿区域430的竖直列(NAND串)432和434(参见图4B)。图4D示出了与图4C相同的交替导电层和介电层。图4D还示出了隔离区482。隔离区480、482、484、486和488占据已经用于存储器孔/竖直列/NAND串的一部分的空间。例如,隔离区482占据已经用于竖直列434的一部分的空间。更具体地,竖直列434的一部分(例如,直径的一半)已在层SDG0、SGD1、SGD2和DD0中被去除,以容纳隔离区482。因此,尽管竖直列434的大部分是圆柱形的(具有圆形横截面),但竖直列434在层SDG0、SGD1、SGD2和DD0中的部分具有半圆形横截面。在一个实施方案中,在形成交替的导电层和介电层的堆叠之后,蚀刻堆叠以产生隔离区的空间,并且该空间随后填充有SiO2
图4E描绘了三维存储器结构202的一个实施方案的一部分,示出了沿图4B的线CC的剖视图。该剖视图切穿竖直列(NAND串)452和462(参见图4B)。图4E示出了与图4C相同的交替导电层和介电层。图4E还示出了切成竖直列(NAND串)452的隔离区486。
图4F描绘了包括竖直列472的一部分的图4C的区域429的剖视图。在一个实施方案中,竖直列是圆形的;然而,在其他实施方案中,可使用其他形状。在一个实施方案中,竖直列472包括由诸如SiO2的电介质制成的内芯层490。也可以使用其他材料。包围内芯490的是多晶硅沟道491。也可以使用除了多晶硅之外的材料。需注意,沟道491连接到位线和源极线。包围沟道491的是隧穿电介质492。在一个实施方案中,隧穿电介质492具有ONO结构。包围隧穿电介质492的是电荷捕集层493,诸如(例如)氮化硅。也可以使用其他存储器材料和结构。本文所述的技术不限于任何特定材料或结构。
图4D描绘电介质层DLL239、DLL240、DLL241、DLL242和DLL243,以及字线层WLL234、WLL235、WLL236、WLL237和WLL238。字线层中的每个字线层包括由氧化铝层497包围的字线区域496,该氧化铝层由阻挡氧化物层498包围。在其他实施方案中,阻挡氧化物层可以是与电荷捕集层493平行且相邻的竖直层。字线层与竖直列的物理相互作用形成存储器单元。因此,在一个实施方案中,存储器单元包括沟道491、隧穿电介质492、电荷捕集层493、阻挡氧化物层498、氧化铝层497以及字线区域496。例如,字线层WLL238和竖直列472的一部分构成存储器单元MC1。字线层WL237和竖直列472的一部分构成存储器单元MC2。字线层WLL236和竖直列472的一部分构成存储器单元MC3。字线层WLL235和竖直列472的一部分构成存储器单元MC4。字线层WLL234和竖直列472的一部分构成存储器单元MC5。在其他架构中,存储器单元可具有不同的结构,然而,存储器单元仍将是存储单元。
当对存储器单元进行编程时,电子存储在电荷捕集层493的与存储器单元相关联(例如,在存储器单元中)的一部分中。响应于字线区域496上的适当电压,这些电子通过隧穿电介质492从沟道491被吸引到电荷捕集层493中。存储器单元的阈值电压(Vth)与所存储的电荷量成比例地增大。在一个实施方案中,通过电子的福勒-诺得海姆(Fowler-Nordheim)隧穿到电荷捕集层中来实现编程。在擦除操作期间,电子返回到沟道或空穴被注入到电荷捕集层中以与电子重组。在一个实施方案中,使用经由诸如GIDL之类的物理机制的空穴注入到电荷捕集层中来实现擦除。
图4G是图4至图4F中描绘的存储器阵列202的一部分的示意图。图4G示出了跨整个块延伸的物理数据字线WL0-WL239。图4G的结构对应于图4A的块2中的部分306,包括位线411。在该块内,在一个实施方案中,每个位线连接到六个NAND串。因此,图4G示出了连接到NAND串NS0(其对应于竖直列426)、NAND串NS1(其对应于竖直列436)、NAND串NS2(其对应于竖直列446)、NAND串NS3(其对应于竖直列456)、NAND串NS4(其对应于竖直列466)和NAND串NS5(其对应于竖直列476)的位线。如上所述,在一个实施方案中,SGD0、SGD1和SGD2连接在一起以作为由隔离区(480、482、484、486和486)分开的每个子块的单个逻辑选择栅极来操作,以形成SGD-s0、SGD-s1、SGD-s2、SGD-s3、SGD-s4和SGD-s5。SGS0、SG1和SGS2也连接在一起以作为在图4E中表示为SGS单个逻辑选择栅极来操作。尽管选择栅极SGD-s0、SGD-s1、SGD-s2、SGD-s3、SGD-s4和SGD-s5由于隔离区而彼此隔离,但每个子块的数据字线WL0到WL239连接在一起。
隔离区(480、482、484、486和486)用于允许单独控制子块。第一子块对应于由SGD-s0控制的那些竖直NAND串。第二子块对应于由SGD-s1控制的那些竖直NAND串。第三子块对应于由SGD-s2控制的那些竖直NAND串。第四子块对应于由SGD-s3控制的那些竖直NAND串。第五子块对应于由SGD-s4控制的那些竖直NAND串。第六子块对应于由SGD-s5控制的那些竖直NAND串。
图4G仅示出连接到位线411的NAND串。然而,块的完整示意图将示出每个位线和连接到每个位线的六个竖直NAND串。
虽然图4至图4G的示例性存储器是包括具有电荷捕集材料的竖直NAND串的三维存储器结构,但是其他(2D和3D)存储器结构也可与本文所述的技术一起使用。
上面讨论的存储器系统可以被擦除、编程和读取。在成功编程过程结束时,在适当时,存储器单元的阈值电压应当在用于编程的存储器单元的阈值电压的一个或多个分布内或在经擦除的存储器单元的阈值电压的分布内。图5A是阈值电压与存储器单元数量的曲线图,并且示出了当每个存储器单元存储每存储器单元一位数据时存储器阵列的示例性阈值电压分布。存储每存储器单元数据一位数据的存储器单元被称为单级单元(“SLC”)。存储在SLC存储器单元中的数据被称为SLC数据;因此,SLC数据包括每存储器单元一位。作为每存储器单元一位存储的数据是SLC数据。图5A示出了两个阈值电压分布:E和P。阈值电压分布E对应于擦除数据状态。阈值电压分布P对应于编程数据状态。因此,在阈值电压分布E中具有阈值电压的存储器单元处于擦除数据状态(例如,它们被擦除)。因此,在阈值电压分布P中具有阈值电压的存储器单元处于编程数据状态(例如,它们被编程)。在一个实施方案中,被擦除的存储器单元存储数据“1”,并且被编程的存储器单元存储数据“0”。图5A描绘了读取参考电压Vr。通过测试(例如,执行一个或多个感测操作)给定存储器单元的阈值电压是高于还是低于Vr,系统可确定存储器单元是被擦除(状态E)或还是被编程(状态P)。图5A还描绘了验证参考电压Vv。在一些实施方案中,当将存储器单元编程到数据状态P时,系统将测试这些存储器单元是否具有大于或等于Vv的阈值电压。
图5B至图5F示出了当每个存储器单元存储每存储器单元数据多位时用于存储器阵列的示例性阈值电压分布。存储每存储器单元数据多位的存储器单元被称为多级单元(“MLC”)。存储在MLC存储器单元中的数据被称为MLC数据;因此,MLC数据包括每存储器单元多位。作为每存储器单元多位数据存储的数据是MLC数据。在图5B的示例性实施方案中,每个存储器单元存储两位数据。其他实施方案可使用每存储器单元其他数据容量(例如,诸如每存储器单元三位数据、四位数据、五位数据或六位数据)。
图5B示出用于擦除存储器单元的第一阈值电压分布E。还描绘了用于编程存储器单元的三个阈值电压分布A、B和C。在一个实施方案中,分布E中的阈值电压为负,并且分布A、B和C中的阈值电压为正。图5B的每个不同的阈值电压分布对应于一组数据位的预先确定的值。在一个实施方案中,存储在存储器单元中的两位数据中的每位数据都在不同逻辑页面中,称为下页(LP)和上页(UP)。在其他实施方案中,存储在存储器单元中的所有数据位都在共同逻辑页中。编程到存储器单元中的数据与该单元的阈值电压电平之间的具体关系取决于该单元所采纳的数据编码方案。表1提供了示例性编码方案。
表1
E A B C
LP 1 0 0 1
UP 1 1 0 0
在被称为全序列编程的一个实施方案中,可使用图6的过程将存储器单元从已擦除数据状态E直接编程到已编程数据状态A、B或C中的任一者(在下文中讨论)。例如,可以首先擦除待编程的存储器单元群体,使得群体中的所有存储器单元处于擦除数据状态E。然后,编程过程用于将存储器单元直接编程为数据状态A、B和/或C。例如,虽然一些存储器单元正在从数据状态E编程到数据状态A,但其他存储器单元正在从数据状态E编程到数据状态B和/或从数据状态E编程到数据状态C。图5B的箭头表示全序列编程。在一些实施方案中,数据状态A-C可重叠,其中存储器控制器120(或存储器管芯211)依赖纠错来识别正在存储的正确数据。
图5C描绘了存储器单元的示例性阈值电压分布,其中每个存储器单元存储每存储器单元三位数据(其为MLC数据的另一个示例)。图5C示出了对应于八个数据状态的八个阈值电压分布。第一个阈值电压分布(数据状态)Er表示被擦除的存储器单元。其他七个阈值电压分布(数据状态)A-G表示被编程的存储器单元,并且因此也被称为已编程状态。每个阈值电压分布(数据状态)对应于一组数据位的预确定值。编程到存储器单元中的数据与该单元的阈值电压电平之间的具体关系取决于该单元所采纳的数据编码方案。在一个实施方案中,使用格雷码分配将数据值分配到阈值电压范围,使得如果存储器的阈值电压错误地移位到其相邻物理状态,那么将仅影响一个位。表2提供了其中存储在存储器单元中的三位数据中的每位数据都在不同逻辑页中的实施方案的编码方案的示例,该逻辑页称为下页(LP)、中间页(MP)和上页(UP)。
表2
Er A B C D E F G
UP 1 1 1 0 0 0 0 1
MP 1 1 0 0 1 1 0 0
LP 1 0 0 0 0 1 1 1
图5C示出了用于从存储器单元读取数据的七个读取参考电压VrA、VrB、VrC、VrD、VrE、VrF和VrG。通过测试(例如,执行感测操作)给定存储器单元的阈值电压是高于还是低于七个读取参考电压,系统可以确定存储器单元所处于的数据状态(即,A、B、C、D、……)。
图5C还示出了七个验证参考电压VvA、VvB、VvC、VvD、VvE、VvF和VvG。在一些实施方案中,当将存储器单元编程到数据状态A时,系统将测试这些存储器单元是否具有大于或等于VvA的阈值电压。当将存储器单元编程到数据状态B时,系统将测试这些存储器单元是否具有大于或等于VvB的阈值电压。当将存储器单元编程到数据状态C时,系统将确定这些存储器单元是否具有大于或等于VvC的阈值电压。当将存储器单元编程到数据状态D时,系统将测试这些存储器单元是否具有大于或等于VvD的阈值电压。当将存储器单元编程到数据状态E时,系统将测试这些存储器单元是否具有大于或等于VvE的阈值电压。当将存储器单元编程到数据状态F时,系统将测试这些存储器单元是否具有大于或等于VvF的阈值电压。当将存储器单元编程到数据状态G时,系统将测试这些存储器单元是否具有大于或等于VvG的阈值电压。图5C还示出了Vev,其为用以测试存储器单元是否已被正确擦除的电压电平。
在利用全序列编程的实施方案中,可使用图6的过程将存储器单元从已擦除数据状态Er直接编程到已编程数据状态A-G中的任一者(在下文中讨论)。例如,可首先擦除要被编程的存储器单元群,使得该群中的所有存储器单元处于已擦除数据状态Er。然后,使用编程过程将存储器单元直接编程到数据状态A、B、C、D、E、F和/或G。例如,虽然一些存储器单元正从数据状态ER编程到数据状态A,但其他存储器单元正从数据状态ER编程到数据状态B和/或从数据状态ER编程到数据状态C,等等。图5C的箭头表示全序列编程。在一些实施方案中,数据状态A-G可重叠,其中控制管芯211和/或存储器控制器120依赖纠错来识别正在存储的正确数据。需注意,在一些实施方案中,系统可以使用本领域已知的多遍编程过程而不是使用全序列编程。
一般来讲,在验证操作和读取操作期间,将所选择的字线连接到电压(参考信号的一个示例),该电压的电平针对每个读取操作(例如,参见图5C的读取比较电平VrA、VrB、VrC、VrD、VrE、VrF和VrG)或验证操作(例如,参见图5C的验证目标电平VvA、VvB、VvC、VvD、VvE、VvF和VvG)指定,以便确定相关存储器单元的阈值电压是否已经达到这个水平。在施加字线电压之后,测量存储器单元的传导电流以确定该存储器单元是否响应于施加到字线的电压而接通(被传导电流)。如果传导电流被测量为大于特定值,那么假设存储器单元被接通并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流未测量为大于特定值,那么假设存储器单元未接通并且施加到字线的电压不大于存储器单元的阈值电压。在读取或验证过程期间,未选择存储器单元在其控制栅极处被提供有一个或多个读取通过电压(也称为旁路电压),使得这些存储器单元将作为通过栅极操作(例如,不管这些存储器单元是被编程还是被擦除都传导电流)。
有许多方法来在读取或验证操作期间测量存储器单元的传导电流。在一个示例中,以存储器单元对感测放大器中的专用电容器放电或充电的速率来测量该存储器单元的传导电流。在另一个示例中,选择的存储器单元的传导电流允许(或不允许)包括存储器单元的NAND串对对应位线放电。在某时间段之后测量位线上的电压,以查看其是否已经放电。需注意,本文所述的技术可以与本领域中已知的用于验证/读取的不同方法一起使用。也可以使用本领域中已知的其他读取和验证技术。
图5D描绘了当每个存储器单元存储四位数据(其为MLC数据的另一个示例)时的阈值电压分布。图5D示出了阈值电压分布(数据状态)S0–S15之间可存在某种重叠。该重叠可由于诸如存储器单元丢失电荷(并因此阈值电压下降)的因素而发生。编程干扰可无意地增大存储器单元的阈值电压。同样,读取干扰可无意地增大存储器单元的阈值电压。随着时间的推移,阈值电压分布的位置可改变。此类改变可增大误码率,从而增加解码时间或甚至使得不可能解码。改变读取参考电压可有助于减轻此类影响。在读取过程中使用ECC可修复错误和歧义。需注意,在一些实施方案中,存储每存储器单元四位数据的存储器单元群体的阈值电压分布不重叠并且彼此分开;例如,如图5E所描绘的。图5D的阈值电压分布将包括读取参考电压和验证参考电压,如上所讨论的。
当每个存储器单元使用四位时,可使用上面讨论的全序列编程或本领域中已知的多遍编程过程来对存储器进行编程。图5D的每个阈值电压分布(数据状态)对应于一组数据位的预先确定的值。编程到存储器单元中的数据与该单元的阈值电压电平之间的具体关系取决于该单元所采纳的数据编码方案。表3提供了其中存储在存储器单元中的四位数据中的每位数据都在不同逻辑页中的实施方案的编码方案的示例,该逻辑页称为下页(LP)、中间页(MP)、上页(UP)和顶页(TP)。
表3
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15
TP 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1
UP 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0
MP 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1
LP 1 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1
图5F描绘了当每个存储器单元存储五位数据(其为MLC数据的另一个示例)时的阈值电压分布。在一个示例性具体实施中,当存储器单元存储五位数据时,数据以三十二个数据状态(例如,S0-S31)中的任一个数据状态存储。
图6是描述用于对存储器单元进行编程的过程的一个实施方案的流程图。出于本文档的目的,术语编程(program)和编程(programming)与写入(write)和写入(writing)同义。在一个示例性实施方案中,使用上文讨论的一个或多个控制电路(例如,系统控制逻辑260、列控制电路系统210、行控制电路系统220)对存储器阵列202执行图6的过程。在一个示例性实施方案中,图6的过程由集成存储器组件207使用控制管芯211的一个或多个控制电路(例如,系统控制逻辑260、列控制电路系统210、行控制电路系统220)执行以对存储器管芯201上的存储器单元进行编程。该过程包括多个循环,每个循环包括编程阶段和验证阶段。执行图6的过程以实现全序列编程以及包括多遍编程的其他编程方案。当实施多遍编程时,图6的过程用于实现多遍编程过程的任一/每一遍。
通常,在编程操作期间(经由所选择的数据字线)施加到控制栅极的编程电压被施加为一系列编程脉冲(例如,电压脉冲)。在编程脉冲之间的是一组验证脉冲(例如,电压脉冲)以执行验证。在许多具体实施中,编程脉冲的幅值随每个连续脉冲而增大预确定的步长。在图6的步骤602中,将编程电压信号(Vpgm)初始化为起始幅值(例如,约12V至16V或另一个合适的电平),并且将由状态机262维持的编程计数器PC初始化为1。在一个实施方案中,被选择为编程的一组存储器单元(在本文中被称为所选择的存储器单元)被同时编程并且全部连接至相同的字线(所选择的字线)。可能有其他未选择用于编程的存储器单元(未选择的存储器单元)也连接至选择的字线。也就是说,所选择的字线也将连接至应该禁止编程的存储器单元。此外,当存储器单元达到它们预期的目标数据状态时,它们将被禁止进一步编程。这些NAND串(例如,未选择NAND串)使其信道升压以禁止编程,这些串包括连接至所选择的字线的要被禁止编程的存储器单元。当信道具有升高的电压时,信道和字线之间的电压差不足以引起编程。为了帮助升压,在步骤604中,控制管芯将对包括连接到将被禁止编程的所选择的字线的存储器单元的NAND串的沟道预充电。在步骤606中,包括连接到将被禁止编程的所选择的字线的存储器单元的NAND串使其信道升压以禁止编程。此类NAND串在本文中被称为“未选择的NAND串”。在一个实施方案中,未选择字线接收一个或多个升压电压(例如,约7伏至11伏)(也称为通过电压)以执行升压方案。编程禁止电压被施加到耦接未选择NAND串的位线。
在步骤608中,将编程电压信号Vpgm的编程电压脉冲施加到所选择的字线(被选择用于编程的字线)。如果NAND串上的存储器单元应该被编程,则对应的位线被偏置在编程启用电压。在步骤608中,将编程脉冲同时施加到连接到所选择的字线的所有存储器单元,使得同时对连接到所选择的字线的所有存储器单元进行编程(除非它们被禁止编程)。也就是说,它们在同一时间上或在重叠时间期间(两者都被视为是同时的)进行编程。以此方式,连接至所选择的字线的所有存储器单元将同时具有其阈值电压变化,除非它们被禁止编程。
在步骤610中,执行编程验证并且已经达到其目标状态的存储器单元被锁定而不能被控制管芯进一步编程。步骤610包括通过在一个或多个验证参考电平下感测来执行编程的验证。在一个实施方案中,通过测试被选择用于编程的存储器单元的阈值电压是否已经达到适当验证参考电压来执行验证过程。在步骤610中,在存储器单元已经被验证(通过Vt的测试)存储器单元已经达到其目标状态之后,存储器单元可以被锁定。
如果在步骤612中,确定所有存储器单元都已经达到其目标阈值电压(通过),则该编程过程完成并且成功,因为所有选择的存储器单元都被编程并验证到其目标状态。在步骤614中,报告“通过”状态。否则,如果在612中确定不是所有存储器单元都已经达到其目标阈值电压(失败),则该编程过程将继续到步骤616。
在步骤616中,对尚未达到其各自的目标阈值电压分布的存储器单元的数量进行计数。也就是说,对目前为止无法达到其目标状态的存储器单元的数量进行计数。该计数可由状态机262、存储器控制器120或另一个电路来完成。在一个实施方案中,存在一个总计数,其反映了最后一个验证步骤已经失败的当前正在编程的存储器单元的总数。在另一个实施方案中,为每个数据状态保留单独计数。
在步骤618中,确定来自步骤616的计数是否小于或等于预先确定的极限。在一个实施方案中,预确定的极限是在存储器单元的页面的读取过程期间可通过纠错码(ECC)校正的位的数量。如果失败单元的数量小于或等于预确定的极限,则该编程过程可停止并且在步骤614中报告“通过”状态。在这种情况下,足够的存储器单元被正确地编程,使得可以在读取过程期间使用ECC来校正校正尚未完全地编程的剩余几个存储器单元。在一些实施方案中,在步骤618中使用的预确定的极限低于在读取过程期间可由纠错码(ECC)校正的位数,以允许未来/附加的错误。当对页面的少于所有的存储器单元进行编程、或比较仅一个数据状态(或少于所有的状态)的计数时,预确定的极限就可以是在存储器单元的页面的读取过程期间ECC可校正的位的数量的一部分(按比例或不按比例)。在一些实施方案中,该极限不是预确定的。相反,它基于已经为页面计数的错误数量、所执行的编程擦除周期数量或其他标准来改变。
如果失败存储器单元的数量不小于预确定的极限,则该编程过程在步骤620处继续并且对照编程极限值(PL)检查编程计数器PC。编程极限值的示例包括6、12、16、19、20和30;然而,可以使用其他值。如果编程计数器PC不小于编程极限值PL,则认为该编程过程已经失败并且在步骤624中报告“失败”状态。如果编程计数器PC小于编程极限值PL,则该过程在步骤626处继续,在此期间,编程计数器PC递增了1,并且编程电压信号Vpgm被步进到下一幅值。例如,下一脉冲将具有比前一脉冲大步长ΔVpgm(例如,0.1伏至1.0伏的步长)的幅值。在步骤626之后,该过程循环回到步骤604,并且另一个编程脉冲被(控制管芯)施加到所选择的字线,使得执行图6的编程过程的另一次迭代(步骤604-626)。
在一个实施方案中,在编程之前擦除存储器单元,并且擦除是将一个或多个存储器单元的阈值电压从编程数据状态改变为擦除数据状态的过程。例如,将一个或多个存储器单元的阈值电压从图5A的状态P改变为状态E,从图5B的状态A/B/C改变为状态E,从图5C的状态A-G改变为状态Er,或者从图5D的状态S1-S15改变为状态S0。
擦除一些存储器设备中的存储器单元的一种技术是将p阱(或其他类型的)基板偏置到高电压以对NAND沟道充电。当NAND沟道处于高电压时,将擦除启用电压(例如,低电压)施加到存储器单元的控制栅极,以擦除非易失性存储元件(存储器单元)。在本文中,这称为p阱擦除。
擦除存储器单元的另一种方法是生成栅极感应漏极泄漏(GIDL)电流,以对NAND串沟道进行充电。将擦除启用电压施加到存储器单元的控制栅极,同时保持NAND串沟道电势,以擦除存储器单元。在本文中,这称为GIDL擦除。p阱擦除和GIDL擦除均可用于降低存储器单元的阈值电压(Vt)。
在一个实施方案中,通过在选择晶体管(例如,SGD和/或SGS)处引起漏极到栅极电压来产生GIDL电流。生成GIDL电流的晶体管漏极至栅极电压在本文中称为GIDL电压。当选择晶体管漏极电压显著高于选择晶体管控制栅极电压时,可产生GIDL电流。GIDL电流是载流子生成的结果,即,由于频带-频带隧穿而产生的电子空穴对生成和/或陷阱辅助生成。在一个实施方案中,GIDL电流可导致一种类型的载流子(例如,空穴)主要移动到NAND沟道中,从而升高沟道的电势。另一种类型的载流子(例如电子)通过电场沿位线的方向或沿源极线的方向从沟道提取。在擦除期间,空穴可从沟道隧穿到存储器单元的电荷存储区,并且与其中的电子重组,以降低存储器单元的阈值电压。
可在NAND串的任一端处生成GIDL电流。连接到或接近位线的选择晶体管(例如,漏极侧选择晶体管)的两个端子之间可产生第一GIDL电压,以生成第一GIDL电流。连接到或接近源极线的选择晶体管(例如,源极侧选择晶体管)的两个端子之间可产生第二GIDL电压,以生成第二GIDL电流。仅在NAND串的一端处基于GIDL电流的擦除称为单侧GIDL擦除。在NAND串的两端处基于GIDL电流的擦除称为双侧GIDL擦除。
在一些实施方案中,控制管芯或存储器管芯执行ECC解码过程(参见ECC引擎)。为了帮助修复在存储数据时可能出现的错误,使用纠错。在编程过程期间,ECC引擎编码数据以添加ECC信息。例如,ECC引擎用于创建码字。在一个实施方案中,数据以页为单位编程。由于在编程或读取时可能发生错误,并且在存储数据时可能发生错误(例如,由于电子漂移、数据保留问题或其他现象),因此纠错与数据页的编程一起使用。许多纠错编码方案是本领域熟知的。这些常规的纠错码(ECC)在包括闪存(和其他非易失性)存储器的大容量存储器中尤其有用,因为此类编码方案可对制造产率和设备可靠性产生重大影响,从而使具有少量不可编程或有缺陷的单元的设备变得可用。当然,在产率节省和提供附加存储器单元以存储代码位(即,编码“速率”)的成本之间存在权衡。因此,一些ECC代码比其他ECC代码更适合闪存存储器设备。一般来讲,闪存存储器设备的ECC代码往往具有比数据通信应用中使用的代码(其可具有低至1/2的编码速率)更高的编码速率(即,更低的代码位/数据位比率)。通常与闪存存储器存储装置结合使用的熟知的ECC代码的示例包括里德-所罗门码、其他BCH码、汉明码等。有时,与闪存存储器存储装置结合使用的纠错码是“系统的”,因为最终码字的数据部分与被编码的实际数据没有变化,其中代码或奇偶校验位附加到数据位以形成完整的码字。在其他实施方案中,改变实际数据。
给定纠错码的特定参数包括代码的类型、从中导出码字的实际数据的块的大小以及编码之后码字的总长度。例如,如果使用至少60个ECC或奇偶校验位,则应用于512字节(4096位)数据的典型BCH码可校正最多四个错误位。里德-所罗门码是BCH码的子集,并且也通常用于纠错。例如,典型的里德-所罗门码可使用约72个ECC位在512字节数据扇区中校正最多四个错误。在闪存存储器的情况下,纠错编码提供了制造产率以及闪存存储器随时间推移的可靠性的显著改进。
在一些实施方案中,控制器接收将被存储在存储器结构中的主机数据,也称为信息位。信息位由矩阵i=[1 0]表示(需注意,两个位仅用于示例目的,并且许多实施方案具有长于两个位的码字)。实现纠错编码过程(诸如上文或下文提到的任何过程),其中奇偶校验位被添加到信息位以提供由矩阵或码字v=[1 0 1 0]表示的数据,指示两个奇偶校验位已经附加到数据位。可使用以更复杂方式将输入数据映射到输出数据的其它技术。例如,可使用低密度奇偶校验(LDPC)码,也称为Gallager码。关于LDPC代码的更多细节可见于R.G.Gallager的“Low-density parity-check codes”,IRE Trans.Inform.Theory,vol.IT-8,pp.21 28,Jan.1962(低密度奇偶校验码,《IRE信息理论汇刊》,IT-8卷,第21-28页,1962年1月);以及D.MacKay的Information Theory,Inference and LearningAlgorithms,Cambridge University Press 2003,chapter 47(《信息理论、推理和学习算法》,剑桥大学出版社,2003年,第47章)。在实施过程中,此类LDPC码通常应用于跨多个存储元件编码的多个页,但它们不需要跨多个页应用。可通过将一个或多个存储器单元编程到对应于v的一个或多个编程状态来将数据位映射到逻辑页面并且存储在存储器结构326中。
在一个可能的具体实施中,使用迭代概率解码过程,其实现对应于在控制器120中实现的编码的纠错解码。关于迭代概率解码的另外的细节可见于上述D.MacKay文本。迭代概率解码尝试通过将初始概率度量分配给码字中的每个位来解码码字。概率度量指示每个位的可靠性,也就是说,该位没有错误的可能性。在一种方法中,概率度量是从LLR表获得的对数似然比LLR。LLR值是从存储元件读取的各种二进制位的值是已知的可靠性的量度。
位的LLR由下式给出:
Figure BDA0003659898590000301
其中P(v=0|Y)是给定所状态读取为Y的条件下位为0的概率,并且P(v=1|Y)是给定状态读取为Y的条件下位为1的概率。因此,LLR>0指示位比起1更可能是0,而LLR<0指示位比起0更可能是1,以满足纠错码的一个或多个奇偶校验。此外,更大的幅值指示更大的概率或可靠性。因此,LLR=63的位比LLR=5的位更可能是0,LLR=-63的位比LLR=-5的位更可能是1。LLR=0指示位同样可能为0或1。
可针对码字中的位位置中的每个位位置提供LLR值。此外,LLR表可说明多个读取结果,使得当位值在不同码字中一致时使用较大幅值的LLR。
控制器接收码字Y1和LLR并在连续迭代中迭代,其中控制器确定是否已经满足错误编码过程的奇偶校验(等式)。如果已经满足所有奇偶校验检查,则解码过程已收敛,并且码字已被校正。如果尚未满足一个或多个奇偶校验检查,则解码器将调整与奇偶校验不一致的位中的一个或多个位的LLR,然后在过程中重新应用奇偶校验检查或下一个检查以确定其是否被满足。例如,可以调整llr的幅值和/或极性。如果仍未满足所讨论的奇偶校验检查,则可以再次在另一迭代中调整LLR。在一些但并非所有情况下,调整LLR可导致翻转位(例如,从0到1或从1到0)。在一个实施方案中,一旦满足所讨论的奇偶校验检查,如果适用的话,就将另一个奇偶校验检查应用于码字。在其他情况下,过程移动到下一个奇偶校验检查,稍后循环回到失败的检查。过程继续尝试满足所有奇偶校验检查。因此,完成Y1的解码过程以获得包括奇偶校验位v和解码信息位i的解码信息。
图7示出了结合ECC校正和读取错误处理的常规读取流程。步骤701是读取存储在存储器单元中的数据以确定“硬位”(HB),其中硬位值对应于使用图5A至图5C的值Vri的标准读取,该值Vri用于区分不同状态(如果它们是如图5A至图5C中那样的良好限定的、分离的分布)。步骤703使用ECC技术确定读取数据是否可校正,并且如果是,则在步骤705处完成读取过程。当在步骤703中硬位数据变得不可由ECC校正时,在步骤707处,可调用读取错误处理流程,其中这可涉及各种读取类型以恢复读取数据。取决于实施方案,可以用于恢复数据内容的读取类型的示例是:“CFh读取”711,其是硬位的重新读取,但其允许例如选定字线的电压的偏压电平的较长稳定时间;“软位”读取713,该“软位”读取提供关于硬位值的可靠性的信息;“BES读取”715,该“BES读取”尝试偏移硬位读取电平以便提取数据;以及“DLA读取”717,该“DLA读取”考虑了相邻字线对读取选择的字线的影响。这些中的一者或多者可以以各种序列或组合来组合,以在基本ECC过程失败的情况下尝试和提取数据内容。对于实施方案中的任一个实施方案,一旦读取错误处理流程707被调用为步骤703,则性能通常严重劣化。以下考虑使用软位数据,同时降低其对存储器性能的影响的技术。图8更详细地考虑软位的用途。
图8可用于示出硬位和软位的概念。图8示出了两个相邻数据状态的分布的重叠和一组读取值,该组读取值可用于确定单元的数据状态和这样的读取的可靠性,其中对应的硬位和软位针对值的一个特定编码在下面的表中示出。读取值VH是用于确定硬位(HB)值的初始数据状态值或硬读取值,并且对应于图5A、图5B或图5C的值Vri,该值Vri用于区分不同状态(如果它们是如图5A至图5C中那样的良好限定的、分离的分布)。余量稍微高于VH的VS+和余量稍微低于VH的VS-的附加读取电平是“软读取”值,并且可用于提供“软位”(SB)值。软位值给出关于初始数据状态值或硬位数据的质量或可靠性的信息,因为软位数据提供关于分布已扩展的程度的信息。ECC代码(诸如低密度奇偶校验码(LDPC))的一些实施方案可使用硬位和软位数据以便增加其能力。尽管图8仅示出一对软位读取值,但是如果期望更高的分辨率,则其他实施方案可使用附加余量的读取值来为给定的硬位生成更多的软位值。更一般地,硬位对应于基于感测操作的假定数据值,并且软信息(其可为单个二进制软位,多个软位或十进制/分数值)指示硬位值的可靠性或可信度。当用于使用软信息的ECC方法中时,可以将软信息视为对应的硬位值正确的概率。
在读取操作期间,如果VH低于存储器单元阈值,则存储器单元将是非导电的,并且读取数据值(HB)将读取为“0”。如果存储器单元在图8的任一分布的中心区域内,则VS+和VS-的读取将提供相同的结果;如果这些读取不同,则存储器单元的阈值电压介于这些值之间,并且可以来自上面的分布或下面的分布的尾部区域,使得HB数据是不可靠的。如果数据被认为是可靠的,则在这两个电平下读取并且对结果进行“异或非”给出SB值为“1”,如果不可靠,则给出SB值为“0”。
例如,当SB+和SB-读取均为“0”时,则:
SB=(SB+)XNOR(SB-)
=“0”XNOR“0”
=1,
SB=1和HB读取值将被视为可靠的。在ECC中的软位解码期间,这将导致上部分布中的存储器单元具有HB=“0”和SB=“1”,指示可靠的正确位(RCB),而具有在SB+和SB-之间的阈值电压的存储器单元将导致SB=“0”以指示HB值不可靠。
图9A和图9B分别示出用于使用上表2的编码在每存储器单元三位数据实施方案中计算下页数据的硬位和软位值的读取电平,并且其中软位值1、0分别指示硬位值是可靠的、不可靠的。图9A示出每单元3位中存储器单元的阈值电压分布,类似于图5C所示,但是其中分布不是良好限定的并且显示一定程度的重叠。分布的重叠可来自若干原因,诸如电荷泄漏或干扰,其中一个字线或位线上的操作影响存储在附近存储器单元上的数据状态。另外,在实际写入操作中,分布通常不会如图5C所示那样良好限定,因为具有这样的准确度的存储器单元的写入对性能不利,因为较大数量的精细编程步骤和一些单元将难以编程或过度快速地编程。因为此,编程算法通常允许一定程度的重叠,从而依赖于ECC以准确地提取用户数据内容。
用于区分下页数据值的读取点表示为Er与A状态之间以及D与E状态之间的竖直虚线,以及在下面写入的对应硬位值。由于分布的重叠,存储Er或E数据的多个存储器单元将错误地读取为HB=0,并且存储A或D数据的多个存储器单元将错误地读取为HB=1。例如,可以确定最佳读取值作为设备表征的一部分并且将其存储为控制电路系统的熔丝值。在一些实施方案中,控制电路可以将这些值偏移以提高其准确度作为标准读取操作的一部分或者作为BES读取715的读取错误处理流程707的一部分。
为了能够处理更高量的错误,可以使用更强的ECC。然而,这需要存储更多奇偶校验位,从而减少可用于用户数据的存储器单元的比例,从而有效地降低存储器容量。另外,由于涉及更多的计算来编码/解码码字以及写入和读取附加ECC数据,因此性能受到影响,此外,更多的ECC数据需要通过数据总线结构传送到ECC电路系统并且从ECC电路系统传送。
图9B示出了可用于确定对应于图9A的下页硬位值的软位值的软位值和读取点。如图所示,基于一对读取确定软位值到基本硬位读取值的任一侧。例如,这些软位读取值可基于与硬位读取值的偏移,或者是对称的或者是不对称的,并且作为熔丝值存储在寄存器中,该寄存器被确定为设备表征的一部分。在其他实施方案中,可以动态地确定或更新它们。尽管在步骤713处使用软位在提取在步骤703中不可提取的数据内容方面可能相当有效,但其伴随性能损失,因为其需要响应于步骤703处的ECC失败而被调用,针对每个硬位读取使用两个附加读取,需要在附加读取之后传送出软位数据,并且需要执行附加计算。
为了改善这种情况,以下引入了“有效软感测模式”的实施方案。在该感测模式中,硬位读取和软位读取可以组合成使用两个感测电平来感测时间效率的一个序列。通过使用有效的软感测读取作为默认模式,可以提供额外的软位信息以用于ECC校正,同时触发读取错误处理流程。由于仅使用两个感测操作来生成硬位和软位数据,因此该技术避免了由标准硬读取加软读取产生的感测时间的三倍增长。另外,通过将硬位和软位感测合并到一个序列中,可以避免读取序列操作中涉及的大部分额外开销(例如,启用电荷泵、斜升字线等)。图10示出了有效软感测模式的用途。
图10示出了在用于有效软感测的实施方案中使用的硬位和软位值连同读取电平的分配。图10类似于图8,并且示出了再次在中心区域中具有重叠的两个数据状态的存储器单元Vth分布。再次执行硬位读取,但不尝试将其放置在重叠区域的中心处或其附近的经优化以区分两种状态的点处,在该实施方案中,硬位读取偏移到较低Vth侧,使得在VH处或其下方读取的任何存储器单元可靠地处于较低数据状态(此处示出为“1”,如在示例性的图8中)。其还分配了“0”的软位值,其中与图8的实施方案相比,SB=0值现在指示可靠的HB值。如果存储器单元读取高于VH,则其硬位值对应于HB=0的较高Vth数据状态。在图10的实施方案中,不同于图8的两个软位读取,仅单个软位读取被执行为偏移到高Vth侧的VS值。如果发现存储器单元的Vth高于VS,则其被分配HB=0的HB值并且被认为是可靠的(HS=0)。对于具有发现在VH与VS之间的Vth的存储器单元,存储器单元被分配HB=0,但被认为是不可靠的(SB=1)。需注意,在图10的实施方案中,仅针对软位数据检查两个状态中的一个状态,使得仅HB=0状态可以具有任一SB值,而HB=1存储器单元将始终具有SB=0。换句话说,软位数据仅在该对重叠分布的一侧(此处为较低侧,对于HB=0)确定,而不在另一侧(此处为高侧,对于HB=1)确定。在该实施方案中,对VH读取的左侧(较高Vth)执行单个VS读取,但是在其他实施方案中,该布置可以颠倒。
尽管图10的实施方案中生成的数据总量小于图8的数据总量,但是图10的有效软感测模式将通常足以提取用户数据内容而不再排除进一步读取错误处理。由于在图10的确定中仅涉及两个读取,所以感测时间较短,并且可通过将两个读取作为单个感测操作进行来甚至进一步减少,如相对于图12所述。另外,更少的数据被传送到一个或多个ECC引擎:在图8中,产生(HB,SB)数据的四种组合,而在图10中,仅有三种组合,或减少25%的数据。由有效软感测提供的增加的错误容差也可改善写入性能,因为数据不需要被准确地编程,允许放宽的编程公差。
图11示出了在每存储器单元三位数据实施方案中使用表2的编码将有效软感测模式应用于下页数据。图11类似于图9A和图9B,但是将HB和SB值结合到单个图中,并且使用用于有效软感测的给定HB读取电平的单个SB读取电平,而不是给定HB的一对SB读取。例如,观察Er状态与A状态的区别,对于左手读取,左边的存储器单元对于下页值可靠地为“1”,其中(HB,SB)=(1,0),其中需再次注意,在该编码中,SB=0指示可靠的HB值,并且SB=1指示不可靠的HB值。对于Er、A的右手读取,右边的存储器单元指示具有可靠的下页值“0”或(HB,SB)=(0,0)的存储器单元。在左读取电平与右读取电平之间具有Vth的存储器单元被分配为0的下页硬位值,但被认为是不可靠的,使得(HB,SB)=(0,1)。类似地,对于区分D和E状态的读取,左读取的左边的存储器单元可靠地为“0”((HB,SB)=(0,0)),高于右读取的存储器单元是可靠的下页“1”数据((HB,SB)=(1,0)),并且两者之间的存储器单元被分配为“1”((HB,SB)=(1,1))的不可靠下页值。
图12示出了对应于图11中示出的读取点的在有效软感测读取操作中用于下页数据读取操作的感测操作的实施方案。在顶部处,图12示出了可施加到所选择的存储器单元的字线的控制栅极读取电压VCGRV波形与每单元存储器单元3位的下页数据的有效软感测的时间的关系,其中竖直虚线对应于图11中也由虚线标记的四个读取点(但如下文将解释的,确定的顺序不同)。在波形下方示出了使用顶部处的波形的这些读取如何对应于D和E状态分布的Vth值。
为了改善读取时间性能,图12的实施方案使用“颠倒顺序”读取模式,但是其他实施方案可使用标准顺序。在标准读取顺序中,施加到所选择的存储器单元的读取电压以下限值开始并且逐渐上升。在颠倒顺序读取模式下,施加到所选择的字线的控制栅极读取电压(VCGRV)最初斜升到高值,并且然后从较高Vth状态到较低Vth状态执行读取。在下页读取的该示例中,在区分A状态与擦除Er状态的读取之前执行区分D和E状态的读取。因此,在初始斜升之后,VCGRV电压下降到E状态读取电平(ER)的读取电平,然后下降到A状态读取电平(AR)。该顺序可减少读取序列操作中所涉及的大量额外开销(例如,启用电荷泵,斜升字线等)所需的时间。
对于每个读取电压电平,执行两个感测操作以生成硬位和软值,从而允许比使用单独读取电压更快的感测时间。参考图12的底部处的D和E状态分布,HB分界的虚线和SB分界的虚线均是相对接近的Vth值,但是其中SB分界以较高Vth值偏移到右侧。因此,在其中感测是基于使电压通过所选择的存储器单元放电的实施方案中,如果选择读取电压ER,则使得HB和SB Vth值在某种程度上传导,但是以不同的量传导。HB分界对应于较低的Vth值,因为此时存储器单元对SB分界处的存储器单元将更导电,因此将更快地放电,并且可以使用更短的感测间隔来确定。用相同的控制栅极电压来感测较慢放电的SB分界点,但感测时间较长。
图13示出了可用于确定存储器单元的硬位和软位值的感测放大器电路的实施方案。图13的感测放大器电路可对应于图2A或图2B的感测放大器230,并且如包括在图3的结构中。在图13的实施方案中,通过将感测线或节点SEN 1305预充电到预先确定的电平,将感测节点连接到偏置选择的存储器单元的位线,并且确定节点SEN 1305在感测间隔内放电的程度,来确定存储器单元的状态。根据实施方案,许多变化是可能的,但是图13的实施方案示出了一些典型的元件。节点SEN 1305可以通过开关SPC 1323被预充电到电平VHLB,其中许多MOSFET开关的符号在此处使用与晶体管相同的名称和对应的控制信号,其中各种控制信号可由处理器330、状态机262和/或图2A、图2B和图3的实施方案的其他控制元件提供。节点SEN 1305可通过到节点SCOM 1307的开关XXL 1319沿着位线BL 1309连接到所选择的存储器单元,并且然后在可能中间元件之后连接到对应于存储器设备的解码和选择电路的位线选择开关BLS 1327。SEN节点1305通过开关BLQ 1313连接到本地数据总线LBUS 1301,该开关继而可通过开关DSW 1311连接到数据DBUS 1303。可以将开关LPC 1321预充电到电平VLPC,其中VHLB和VLPC的值取决于实施方案的细节和具体实施的细节。
在感测操作中,通过将其对应的所选择的字线设置为如上所述的读取电压电平来偏置所选择的存储器单元。在NAND阵列具体实施中,所选择的字线的NAND串的所选择的栅极和未选择的字线也被偏置为接通。一旦阵列被偏置,所选择的存储器单元就将基于所施加的读取电压与存储器单元的阈值电压的关系来传导电平。电容器1325可用于存储SEN节点1305上的电荷,其中在预充电期间,电平CLK(和电容器1325的下板)可被设置为低电压(例如,接地或VSS),使得SEN节点1305上的电压参考该低电压。所选择的存储器的预充电SEN节点1305通过到所选择的位线的XXL 1319和BLS 1327连接到对应位线1309,并且被允许相对于施加到所选择的存储器单元的控制栅极的电压电平在感测间隔内放电到取决于存储器单元的阈值电压的电平。在感测间隔结束时,可以关断XXL 1319以将所得电荷俘获在SEN 1305上。此时,CLK电平可稍微升高,类似地升高SEN 1305上的电压,以解决放电路径中跨中间元件(诸如XXL 1319)的电压降。因此,SEN 1305上控制晶体管1317接通的程度的电压电平将相对于所施加的读取电压反映到所选择的存储器单元的数据状态。本地数据LBUS 1301也被预充电,使得当选通晶体管STB 1315被接通持续选通间隔时,LBUS将放电到CLK节点,如SEN 1305上的电压电平所确定的。在选通间隔结束时,关断STB 1315以设置LBUS上的感测值,并且结果可被锁存到锁存器中的一个锁存器中,如图3所示。
现在返回参见图12,在根据需要将所选择的存储器单元偏置到ER电压电平以及其他阵列偏置(选择栅极,未选择字线等)之后,针对虚线之间的间隔ER对预充电SEN节点1305进行放电:如果当STB1315被选通时SEN上的电平高到足以使LBUS 1301放电,则存储单元的Vth低于HB;如果不是,则其高于HB。在对附加间隔ER+进行放电之后,STB 1315是被再次选通:如果LBUS 1301现在放电,则存储器单元的Vth在HB和SB之间;如果不是,则其高于SB。然后用AR电平下的VCGRV值重复该过程,以确定用于区分A状态和擦除状态的HB和SB值。
因此,在相对于图12所示的实施方案之下,对于每个VCGRV电平,左感测结果用于生成HB数据,并且右感测结果与左感测结果组合以生成SB数据。为了优化两个感测(左/右)的性能,图12的实施方案使用“感测时间调制”以用于Vth分离而没有字线电压电平变化。
相对于有效软感测读取电平控制和参数,类似于读取参数的通常具体实施,这些可以作为设备表征过程的一部分来确定,并作为寄存器值(诸如设置为存储装置266中的熔丝值的控制数据参数)来存储,动态地确定,或这些的某种组合。在一组实施方案中,用于有效软感测的硬位和软位读取电平可参考标准硬读取值。即使使用有效软感测读取过程作为默认读取操作,存储器设备通常将具有标准读取(即,仅硬位)作为读取模式选项,使得图5A至图5C的标准读取值将可用作读取选项。例如,返回参见图11以及与在D和E状态分布之间进行区分有关的读取电平,可以相对于在D状态和E状态分布的尖点处表示为较重虚线的正常HB读取微调值来参考有效软感测电平。左读取的有效软感测读取电平(有效软感测硬位,减电平)和右读取(有效软感测软位,加电平)可以相对于正常HB读取电平来指定。这允许重新使用组特征寄存器以生成有效的软感测左/右偏移,并且在一组实施方案中,可以对所有平面使用公共设置,其中对状态中的每个状态有单独的设置。
图14是有效软感测操作的实施方案的高级流程图。在如上文关于图1至图4G所述的存储器系统和相对于图12所述的实施方案的上下文中描述该过程。流程开始于步骤1401以对多个存储器单元执行第一感测操作,以确定在存储器单元的数据状态中的两个数据状态之间进行区分的硬位值。在有效的软感测实施方案中,步骤1401的硬位读取和步骤1403的软位读取均可响应于单个读取命令。例如,返回参见图1,主机102和/或非易失性存储器控制器120可以向存储器130中的一者或多者发出有效的软感测命令。然后,系统控制逻辑260(图2A和图2B)执行感测操作,诸如在上述示例中读取下页数据,以确定存储器单元的硬位值和软位值两者,如图11所示。
为了执行步骤1401的硬位确定,在上述实施方案中,存储器阵列被偏置用于读取操作,并且一个或多个对应感测放大器的感测节点被预充电。更具体地,对于用作本文中的示例的实施方案,所选择的存储器单元的控制栅极以读取电压偏置通过其对应的字线以用于在数据状态之间进行区分,并且基于存储器架构根据需要将其他阵列元件(例如,NAND串的所选择的栅极和未选择的字线)偏置。当使用诸如图13的感测放大器之类的感测放大器时,在对感测节点SEN 1305进行放电时确定数据状态的情况下,感测节点SEN 1305被预充电并且连接到所选择的存储器单元的位线以在第一感测间隔(图12的ER(HB)分界区域)内放电以确定硬位值。
如相对于图11的实施方案所示,硬位确定被偏移到较低Vth值,因此感测为低于该值的存储器单元可靠地处于该值中,而感测为高于该值的存储器单元包括可靠硬位值和不可靠硬位值两者。在使用更传统的顺序感测的实施方案中,首先执行用于硬位的硬位感测,然后执行用于在Er和A状态之间进行区分的软位,随后执行用于在D和E状态之间进行区分的硬位和软位,其中这些中的每一者都涉及用于每个感测操作的不同偏置和感测节点预充电。在相对于图12示出的颠倒顺序感测操作中,首先针对D状态和E状态区别确定硬位和软位值,然后是针对Er和A状态的硬位和软位值确定。尽管图14的流程呈现硬位确定(步骤1401)在软位确定(步骤1403)之前,但在一些实施方案中,顺序可以颠倒。另外,图14的流程仅具有单个硬位和单个软位确定,在许多情况下(如在图12中),将确定多个硬位/软位对。
在步骤1403处,执行第二感测操作以确定软位。在有效软感测过程中,这是仅针对具有硬位值中的第一硬位值但不具有第二硬位值的存储器单元确定的可靠性信息。例如,在图11的实施方案中,当硬位分界向下偏移时,软位值仅用于硬位值的中的较高者。在相对于图12描述的实施方案中,第二感测操作基于预充电感测节点SEN 1305的较长放电时间。如果读取涉及在一对状态之间进行区分(诸如在二进制存储器单元实施方案中),则确定仅一个硬位、软位对。在多电平存储器单元的情况下,如上文在图11和图12中的示例中确定附加硬位、软位对,其中下页感测操作还类似于用于Er/A状态确定的步骤1401和1403确定硬位、软位对。一旦确定了硬位、软位数据值,它们就可以用于在步骤1405处执行ECC操作。这可以在ECC引擎158中的非易失性存储器控制器120上、在控制管芯211或这些的一些组合上完成。
尽管有效的软感测的使用减少了确定的软位数据的量,以及因此相对于标准硬位、软位布置将要传送到ECC引擎的软位数据的量,但相对于仅使用硬位数据的数据的情况,其仍然是数据的显著增加。为了减少需要从存储器管芯传送到ECC引擎的数据量,软位数据可以在通过总线结构传送到非易失性存储器控制器之前在存储器中压缩。以下讨论提出了压缩软位数据的技术。这些技术可应用于有效软感测和标准软感测两者,但是下面的讨论将主要使用有效的软感测实施方案的示例。
更具体地,下面提出的示例性实施方案将主要基于有效软感测模式,如上文相对于图10至图14所述。如上所述,当使用软位数据时,有效软感测模式可减少性能下降,使其实际作为默认读取模式,其中在一个读取序列中输出一页硬位数据和一页软位数据。然后将软位数据和硬位数据的这些页传送到纠错引擎,以提取该页用户数据的数据内容。在一些实施方案中,可以对图2B的控制管芯211或图2A的存储器管芯200执行ECC操作的一部分或全部,但通常对非易失性存储器控制器120上的ECC引擎158执行ECC操作,从而需要读取硬位和软位数据由接口269通过外部数据总线结构传送到控制器120。为了获取所涉及的数据量的示例,来自3D NAND存储器的实施方案中的单个平面的一页数据可以是16KB的用户数据以及用于缺陷存储器位置的对应奇偶校验位和冗余数据。因此,在没有压缩的情况下,除了每平面16+千字节的硬字节数据之外,还将传送每平面16+千字节的软位数据。
为了维持存储器性能,可以在传送之前将软位数据压缩在存储器管芯200或控制管芯211上。例如,如果使用压缩因子N,那么将传送的软位数据的量减小1/N,使得压缩因子的选择是ECC引擎可用的软位数据的速度和量之间的权衡。多种压缩技术可与不同的压缩因子一起使用。例如,N=4的压缩因子可以通过对四个软位的组中的软位数据进行与运算的逻辑运算来实现。尽管这将不指示对应的硬位值的单独可靠性,但是将指示一组四个硬位值中的至少一个硬位值应当被视为不可靠的。
图15是包括软位压缩元件的存储器设备的控制电路元件中的一些控制电路元件的实施方案的框图。所示示例用于四平面存储器设备,并且大部分所示元件可针对每个平面重复,但是其他实施方案可以使用更少或更多的平面。根据实施方案,这些一个或多个控制电路可以在接合到一个或多个存储器管芯201的控制管芯211上,如图2B所示。在其他实施方案中,一个或多个控制电路可以在含有存储器阵列202的存储器管芯200上,诸如位于存储器管芯200的外围上或形成在上述3D NAND存储器结构下面的衬底上。
在图15中,为了简化图,仅标记平面3 1501-3的公共块,但是应当理解,公共块平面0 1501-0、平面1 1501-1、平面2 1501-2和平面3 1501-3中的每一者包括相应的公共块1505、1507和1509。这些块对应于图2A和图2B的行控制电路系统220、列控制电路系统和系统控制逻辑260的元件,但是更代表这些元件在一些实施方案中如何物理地布置。每个平面的任一侧是行解码器1503-L和1503-R,其可以解码到字线的连接和平面的阵列的选择线,并且可对应于图2A和图2B的行控制电路系统220的行解码器222和其他元件。列控制电路1509可以对应于图2A和图2B的列控制电路系统210。列1509的列控制电路的上方和下方的任一侧是一组感测放大器1505,包括内部数据锁存器和高速缓存缓冲器1507。返回参见3的感测放大器电路系统,1505的内部数据锁存器可对应于ADL、BDL、CDL数据锁存器,并且高速缓存缓冲器1507可对应于传送数据锁存器XDL。尽管未标记,但是另一个平面包括类似的元件。相反,另一个平面包括指示在平面的存储器单元与I/O接口之间传送的数据的数据流的箭头,其中类似的传送也可在平面3 1501-3中发生,但未示出,使得可以示出块的标记。
图15中呈现的一个或多个控制电路还包括输入-输出或IO电路,其包括IO焊盘1517和数据路径(DP)块1515,该数据路径块执行入站写入数据的(多位)串行到并行转变以及出站读取数据的并行到(多位)串行转变。DP块1515连接到字节宽(在该示例中)IO焊盘1517,以用于通过外部数据总线将数据传送到非易失性存储器控制器120以及从该非易失性存储器控制器传送。在图15的框图中,DP块1515和IO焊盘1517位于平面1 1501-1处。然而,这些元件可以放置在平面中的任一个平面上或分布在平面之间,但是定位在中心平面(平面1 1501-1或平面2 1501-2)中的一者上的这些元件减少路由。存储器设备内部的全局数据总线GDB 1511跨越平面,从而允许数据传送到单独平面和DP块1515并且从该单独平面和DP块传送。图15的竖直箭头示出了用于在感测放大器块1505的上部与IO焊盘1517之间传送数据的数据流,其中这些对于平面3 1501-3未示出以允许块标记。在读取过程中,来自平面的存储器阵列的数据页由感测放大器1505感测并且存储在对应的内部数据锁存器中,然后偏移到传送锁存器的高速缓存缓冲器1507中,并且通过列1509的控制电路解码到全局数据总线1511。然后将硬位数据从全局数据总线1511移动通过DP块1515以放置到(字节宽)序列数据中以通过IO焊盘1517传送出。当写入数据时,数据流可以沿着由硬位数据使用的路径反转。
关于对应的软位数据,在确定软位数据之后(对于有效软感测操作还是传统的软感测操作),在将软位数据从存储器设备传送出并传送到ECC引擎之前压缩软位数据。在以下讨论中呈现的用于压缩软位数据的实施方案在高速缓存缓冲器1507的SA/内部数据锁存器1505和传送锁存器内执行压缩。在被压缩之后,经压缩的软位数据可以沿着与硬位数据相同的路径从高速缓存缓冲器1507到IO焊盘1517。由于压缩过程可以影响软位数据的逻辑地址分配,DP模块1515可以包括映射逻辑,使得经压缩的软位数据被适当地分配。图16、图17A和图17B提供关于可用于软位数据压缩过程中的数据锁存器的实施方案的更多细节。
图16是图15的高速缓存缓冲器1507的SA/内部数据锁存器1505和传送锁存器与图3的数据锁存器集340、342、344和346之间的对应关系的示意图。与SA/内部DL的感测放大器相关联的内部数据锁存器可包括锁存器ADL、BDL和CDL,以及感测放大器数据锁存器(SDL)和可能的其他数据锁存器,这取决于实施方案。高速缓冲存储器包括传送数据锁存器XDL,并且还包括附加锁存器,例如用于临时数据存储和诸如位扫描操作的操作的锁存器DTCT锁存器。内部数据锁存器沿着局部数据总线LBUS连接,其中内部数据锁存器沿着数据总线DBUS连接到传送数据锁存器。这相对于图17A更详细地示出。
图17A是数据锁存器的一个实施方案的结构的示意图。图17A的示例是针对每单元3位的实施方案,其中每个感测放大器(SA)具有形成“层”的一组相关联的数据锁存器,所述“层”包括感测放大器数据锁存器(SDL)、用于3位数据状态(ADL、BDL、CDL)的数据锁存器,和可用于实施(例如)快速通过写入操作的辅助数据锁存器(TDL)。在这些数据锁存器堆叠的每个堆叠内,数据可以沿着局部总线LBUS在感测放大器和其相关联的锁存器组之间传送。在一些实施方案中,感测放大器中的每个感测放大器和层中与一个位线相关联的对应的内部数据锁存器组可针对对应的位线“列”而分组在一起,并且形成于存储器管芯上,其沿着存储器单元阵列的外围在存储器单元阵列的间距内。这里讨论的示例使用其中16个位线形成一列以使得16位字在阵列中物理上定位在一起的实施方案。存储器阵列的示例可具有1000个此类列,对应于16K位线。在图4B实施方案的形貌中,沿DBU的内部总线结构连接每个感测放大器及其相关联的层的数据锁存器组,沿该DBU的内部总线结构可以在锁存器的层中的每个锁存器与对应的XDL之间传送数据。对于下面描述的实施方案,XDL传送锁存器可以向和从I/O接口传送数据,但是层的其他数据锁存器(例如ADL)没有被布置成直接向或从I/0接口传送数据,并且必须经过传送数据锁存器XDL的中介。
图17B示出图17A的列的组的实施方案。图17B将图17A的结构重复16次,其中仅展示每一组的层0内部数据锁存器。每个DBUS连接到一组16个XDL。每个水平行(如图中所示)连接到XBUS线之一,从而XDL的最下行(或“XDL层”)连接到XBUS<0>,XDL的下一行或层连接到XBUS<1>,以此类推,XDL层15的XDL连接到XBUS<15>。图17B还示出DTCT锁存器的布置,其中每个感测放大器层/DBUS值对应一个DTCT锁存器,该DTCT锁存器也连接到XDL层/XBUS值之一。在这种布置中,每个DTCT锁存器连接到DBUS<i>和XBUS<i>以获得i值,从而最左边的DTCT连接到DBUS<0>和XBUS<0>,下一个DTCT连接到DBUS<1>和XBUS<1>,以此类推,直到最右边的DTCT连接到DBUS<15>和XBUS<15>。下文描述的数据锁存器结构内的软位数据值的压缩将在图17B的实施方案的上下文中呈现,但可使用其他实施方案。另外,尽管在压缩软位数据的上下文中且更具体来说在有效软感测实施方案中论述,但这些压缩技术可应用于压缩存储于存储器设备中的其他数据。
在竖直压缩方案中,数据在字单元内被压缩,其中软位(或其他数据)被存储在内部数据锁存器中,被压缩,然后被写入XDL锁存器,或者,另选地,被写回内部数据锁存器。然后,在流输出时,在DP模块1515的映射逻辑内对经压缩的数据重排序,以将经压缩的数据置于逻辑用户列次序。图18示出了示例性实施方案的过程中的第一步骤。
图18示出了从一组内部数据锁存器到另一组数据锁存器的原始软位数据的压缩。在此示例中,原始软位数据存储于ADL锁存器中并且以压缩因子N=4压缩且存储于BDL锁存器中,但其他实施方案可使用内部数据锁存器的其他组合。在图18的顶部是竖直布置的感测放大器(SA)层和水平布置的XDL层的16×16表,如图17B所示,其中条目对应于来自有效软感测操作的软位数据,并且其中“0”值的正方形通过点画来突出显示。在竖直压缩方案中,对于每个XDL层(即,图18中的列),在N=4压缩中数据从16值压缩到4值,使得经压缩的数据可以仅存储在BDL锁存器的四个感测放大器层中,其中SA层0-3存储经压缩的数据,并且虚设条目(这里为“1”)被输入到BDL锁存器的其他SA层中。更具体地,在图18的实施方案中,每个XDL层的软位数据根据以下压缩算法被分组为4个SA层的组,并且值被与运算在一起:
SA层[3:0]:BDL[0]=&ADL[3:0];
SA层[7:4]:BDL[1]=&ADL[7:4];
SA层[11:8]:BDL[2]=&ADL[11:8];和
SA层[15:12]:BDL[3]=&ADL[15:12],
其中&表示ADL条目的逻辑AND:例如,&ADL[3:0]=ADL[3]AND ADL[2]AND ADL[1]AND ADL[0]。
图18的下部示出BDL锁存器中的压缩有效软感测数据值中的条目,其中压缩软位数据在底部四行SA层0-3中,如由点画突出显示的,并且其他行填充有虚设“1”值。例如,查看XDL层0值的第一列,SA层0值是“0”,以反映在SA层1处ADL[3:0]中存在“0”,而SA层1、2和3都是“1”,因为在ADL[7:4]、ADL[11:8]或ADL[15:12]中没有其他的“0”值。在XDL层15的示例(最右列)中,ADL的SA层0和13中的“0”软位值反映在BDL[3:0]=(0110)的压缩值中。注意,在此N=4压缩算法下,压缩值“0”指示四个软位值中的至少一个是“0”,使得所有四个对应硬位值将被视为不可靠。尽管经压缩的软位数据不提供与未经压缩的软位数据一样精细的分辨率水平,但是它通常仍然足以显著地帮助解码该数据。还应注意,出于论述的目的,图18顶部处的软数据的示例具有相对高数目的“0”值。
图19再次示出了将原始ADL<15:0>数据压缩到BDL<3:0>的N=4,但是在实施方案中使用基于位置的压缩算法。原始软位再次被压缩并存储在BDL锁存器的SA层0-3中,其中在其他SA层中输入虚设“1”值。为了说明基于位置的算法,ADL锁存器中的示例性未压缩软位数据沿着条目的反对角线具有“0”,其中SA层数目与XDL层数目相同。BDL<3:0>值则是指示具有“0”软位值的SA层的4位值。例如,在XDL层2中,“0”是SA层2对应于4位二进制值(0010)=2。对于其他情况,诸如没有“0”软位值或多于一个“0”,这些值之一(诸如(1111))也可以用于这些情况。
图20示出基于XDL层信息将经压缩的软位数据从BDL SA层<3:0>移动到不同的SA层。在该实施方案中,图18的XDL层的压缩软位数据值被向上移动取决于XDL层的量到不同的SA层,其中这以循环方式完成,XDL层0、4、8和12不被移动;XDL层1、5、9和13向上移动4个SA层;XDL层2、6、10和14向上移动8个SA层;并且XDL层3、7、11和15向上移动12个SA层。在一些实施方案中,关于图18或图19示出的压缩步骤可以与图20的重新布置组合。其他锁存器可以用于存储该移动的XDL层信息,其中可以针对XBUS侧或者DBUS侧创建该数据。在图20的实施方案中,XDL层信息作为2位值被存储在CDL和TDL锁存器中,(00)指示经压缩的数据未被移动,(01)指示其被上移了4个SA层,(10)指示其被上移了8个SA层,以及(11)指示已经被上移了12个SA层。然后,经压缩的数据被移出内部数据锁存器而进入XDL传送锁存器,其中这可以是标准的,从BDL直接移动到XDL,使得数据将如图20中那样被再次布置,但是现在在XDL锁存器中,在这种情况下在图21的顶部示出。
图21示出了在传送锁存器内进行传送以紧缩经压缩的数据。返回参见图17B,XDL到XDL的传送可以使用DTCT锁存器中的临时存储通过XBUS结构来执行。如图21所示,XDL层1、2和3的每一者中的经压缩的数据可以被转移到XDL层0,XDL层4、5、6和7的每一者中的经压缩的数据可以被转移到XDL层1,并且以此类推,对于其他XDL层由图21的分组和箭头表示。在该过程结束时,经压缩的数据被合并或紧缩到XDL层0-3中,其中先前的数据可以被留在其他层中直到需要在某个稍后的时间被重写。这种紧缩的目的是将经压缩的数据组合到有限数目的XDL层中以减少数据输出时间(在具有压缩因子N=4的示例中从16层输出到4层输出)。
返回参见图15,一旦经压缩的软位数据已经被加载到高速缓存缓冲器1507的传送锁存器中,如图21所示,它就可以通过列1509的控制电路传送到全局数据总线1511,然后传送到数据路径块1515,以便通过IO焊盘1517传送出。然而,相对于图18到图21所示出的数据移动可影响外部数据锁存器内的数据相对于其本地用户地址位置的位置。为了解决这个问题,数据路径块1515中的映射逻辑可以用于将经压缩的软位数据的数据位重整为在数据输出期间处于连续的逻辑列次序。
图22是将经压缩的数据位重整为处于逻辑次序的示意图。如图21的底部所示,经压缩的数据被形成为XDL层中的16位字,其从缓存缓冲器1507的传送锁存器传送到DP块1515;然而,由于关于图18至图21所示出的操纵,作为数据输出过程的一部分,数据位可经重整以它们移动到逻辑用户列地址次序中。在示例实施方案中,其中如图21所示移位经压缩的数据的4位的组以形成XDL层中的16位字,使用DP模块1515中的映射逻辑来重新布置这些4位单元。图22示出了一个实施方案,其中以8×16位字并行格式从全局数据总线1511接收数据,其中字W0具有位0-15,W1具有位16-31,依此类推,直到位112-127的W7,如左边所示。这些字W0-W7被分成4位的组以形成字W0'-W7',其中W0-W3中的每一者的前4位进入W0',W0-W1中的每一者的接下来的4位进入W2',W0-W1中的每一者的第三个4位进入W4',并且W0-W1中的每一者的最后4位进入W6'。单词W4-W7被类似地重新布置为W1'、W3'、W5'和W7'。然后,这些字W0'-W7'可以在IO焊盘1517上以(字节宽)串行格式以该重新布置的字序输出。
相对于图2A和图2B,包括映射逻辑的DP模块1515可以是在系统控制逻辑260控制下的接口268的一部分。根据实施方案,附加锁存器或FIFO以及复用电路系统可以包括在DP模块1515中,以便于将经压缩的数据重整为逻辑用户列地址次序。
图23是包括软位压缩元件的存储器设备的控制电路元件中的一些控制电路元件的实施方案的框图。图23的实施方案重复图15的元素,其具有类似的数目(即,高速缓存缓冲器1505现在是2305,全局数据总线GDB1511现在是2311,等等),但是现在还包括列2309的控制电路内的映射逻辑,以作为DP模块1515中的映射逻辑的补充或替代。根据图15或图23的控制电路系统的具体实施,在列2309的列控制电路中而不是在DP模块1515或2315中,将经压缩的数据位全部或部分地重整为逻辑次序可能更容易或更有效。
例如,由于对定时、电路系统的可用面积或电路系统的形貌的约束,可能难以用DP块2315将经压缩的数据位完全重整为用户逻辑次序。为了完全重整经压缩的数据位,在一组实施方案中,经压缩的数据位在列2309的控制电路的映射逻辑内被部分地重排序,然后传送到全局数据总线2311上,被传送到DP模块2315,然后在DP模块2315的映射逻辑中进一步重整为完全处于用户逻辑次序,然后通过IO焊盘2317从设备传送离开。在这种布置下,图18至图21所示的压缩读取的软位或其他数据的过程可以是相同的,直到在图21的末尾合并或紧缩经压缩的数据。然而,并不是在此刻通过全局数据总线2311传送在此刻的经紧缩的压缩的数据并且仅如图22所示在DP模块2315中执行重整处理,而是可以如关于图24A和图24B所示执行重整。
图24A和图24B是使用图23的实施方案将经压缩的数据位重整为处于逻辑次序的替代实施方案的示意图。图24A和图24B中所示的步骤可以开始于如图21的底部所示的在高速缓存缓冲器2307的XDL锁存器中紧缩的所压缩的数据位。图21示出了紧缩成三个XDL层的数据,诸如针对字零的W0<3:0>,而对于其他紧缩的数据字,其他XDL层保持开放。在该N=4的示例中,可以存储三个其他数据紧缩。例如,如果读取页面(例如,字线)对应于M个这样的字,则(在N=4的示例中)字线可以被分成四个M/4个字的分区,使得在第一XDL层<3:0>中的W0、在XDL层<7:4>中的W(M/4)、在XDL层<11:8>中的W(2M/4)以及在XDL层<15:12>中的W(3M/4),这些分区中的每个分区的这下一个字与W1分组,以此类推。这在图24A的顶部处针对(M/4)=288的示例而示出。因此,如在每行中可见,经压缩的字中的不同位可以包括来自在压缩之前来自广泛分离的逻辑字的位,使得例如高速缓存缓冲器2307的XDL锁存器中的W1可以具有来自逻辑字W1、W289、W577和W864的经压缩的数据位。为了对此进行分类,如图24A的底部所示,当将经压缩和紧缩的数据位从高速缓存缓冲器2307的XBU传送到列2309的控制电路系统的IOBUS时,可以进行用于重整的一个实施方案中的第一步骤。
在图24A的示例中,列2309的控制电路系统内的IO总线具有两个16位宽的总线,IOBUS A和IOBUS B。在重整的该第一阶段中,经压缩和紧缩的数据字由列2309的控制电路系统的映射逻辑重新布置,使得给定分区的逻辑字地址被分组在一起,其中针对IOBUS A的成对IO总线值0-8示出了放置前64个逻辑字的经压缩的数据的一个实施方案。在此示例中,逻辑字W0、W16、W32和W48的压缩位在IOBUS0A上,逻辑字值在IOBUS1A上递增1,依此类推,IOBUS B值递增8个逻辑字。IO总线宽度和总线数量的细节是特定于具体实施的,并且取决于在数据传送过程的不同阶段使用的并行度。
通过在列2309的控制电路系统内使用多路复用电路系统,经压缩的数据位可以被进一步从图24A底部的布置重整到图24B顶部的布置的字。在一个实施方案中,以部分重整的形式,经压缩的数据位通过全局数据总线2311被传送到DP模块2315,其中映射逻辑内的多路复用电路系统然后可以完成重排序,以便处于逻辑地址的次序,如图24B的下部所示。在DP模块2315内,映射逻辑内的多路复用电路系统然后可以完成经压缩的数据的重整,类似于关于图22描述的过程,然后重整的经压缩的数据可以通过IO焊盘2317传送出。
图25是在与非易失性存储器设备的感测放大器相关联的数据锁存器内执行数据压缩的实施方案的流程图。在步骤2501开始,使用多个存储器单元上的感测放大器电路执行读取操作,其中在步骤2503将读取操作的结果存储在与感测放大器相对应的内部数据锁存器中。参考图15,这些步骤在SA/内部DL1505中执行,其中内部数据锁存器(ADL、BDL、…)可以被布置到关于图17A和图17B所示的层结构中。关于图2A和图2B,如上所述使用行控制电路系统220、列控制电路系统210和系统控制逻辑260的控制电路系统来执行读取过程。在这里的主要示例中,数据是在关于图10至图14的有效软感测操作中确定的软位数据。更一般地,压缩过程可以应用于如关于图8至图9B所描述的通常类型的软位数据或其他数据。在任何情况下,在上述示例中,在步骤2503结束时,将软位或其他读取数据存储到ADL锁存器中。
压缩过程开始于步骤2505,其中数据在内部数据锁存器组内被压缩,例如图18或图19所示,其中ADL<15:0>中的数据被压缩并存储到每个XDL层的BDL<3:0>中。重新参见图3,此过程和后续数据锁存器操纵可由处理器330和系统逻辑260控制。一旦被压缩,在步骤2507,数据可以在如图20所示的内部数据锁存器内被重新布置,然后在步骤2509,从内部数据锁存器复制到高速缓存缓冲器1507的外部数据锁存器XDL。根据实施方案,可以有多种变化,例如,组合步骤2505和2507,使用不同的锁存器、不同的压缩算法或经压缩的数据的不同重新布置,其中图18至图22仅是一个示例。在任何情况下,在将经压缩的数据传送出到高速缓存缓冲器1507之前,可以在内部数据锁存器内压缩软位或其他数据。
一旦经压缩的数据被存储在高速缓存缓冲器1507的传送锁存器中,在步骤2511,经压缩的数据就可以被合并,诸如在图21的压缩中,以更有效地通过全局数据总线1511被传送到DP模块1515的输入-输出接口元件和IO焊盘1517。在步骤2513,经压缩的数据位可以被重整为用户逻辑次序,然后在步骤2515通过外部数据总线传送出。如上文关于图15和图22所述,可以在DP模块1515的映射逻辑中执行重整;在列2309的控制电路的映射逻辑内执行重整;或这些的组合,如关于图23、图24A和图24B所描述的。在软位数据的情况下,这可以包括向ECC引擎(例如,图1的158)的传送。图22示出了针对示例性实施方案的先前步骤的特定重排而对经压缩的数据进行重整的一个示例,但是在其他情况下,重排可以是不同的或者在传送之前不执行,如果需要的话稍后进行重整。
根据第一组方面,一种非易失性存储器设备包括控制电路,所述控制电路被配置到多个位线,每个位线连接到对应的多个存储器单元。所述控制电路包括:多个感测放大器,每个感测放大器被配置为从连接到对应的一个或多个位线的存储器单元读取数据;多个内部数据锁存器组,每个内部数据锁存器组被配置为存储与所述感测放大器中的对应的一个感测放大器相关联的数据;以及输入-输出接口,所述输入-输出接口被配置为向外部数据总线提供数据。所述控制电路被配置为:由所述感测放大器中的每个感测放大器对多个存储器单元执行读取操作;将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果进行压缩;以及通过所述输入-输出接口将所述读取操作的经压缩的结果传送到所述外部数据总线。
在另外的方面,一种方法包括:由多个感测放大器中的每个感测放大器对多个存储器单元执行读取操作;将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果执行数据压缩操作;以及将所述读取操作的经压缩的结果从所述内部数据锁存器组传送到输入-输出接口。
附加方面包括一种非易失性存储器设备,包括:多个位线,每个位线连接到对应的多个非易失性存储器单元;多个感测放大器电路,每个感测放大器电路被配置为从连接到对应的一个或多个位线的存储器读取数据;多个内部数据锁存器组,每个内部数据锁存器组被配置为存储与所述感测放大器中的对应的一个感测放大器相关联的数据;高速缓存缓冲器,所述高速缓存缓冲器包括多个传送数据锁存器组,每个传送数据锁存器组对应于所述传送数据锁存器组中的一个传送数据锁存器组;输入-输出接口,所述输入-输出接口被配置为向外部数据总线提供数据;以及一个或多个控制电路,所述一个或多个控制电路连接到所述感测放大器电路、所述内部数据锁存器组、所述高速缓存缓冲器和所述输入-输出接口。所述一个或多个控制电路被配置为:由所述多个感测放大器中的每个感测放大器对多个对应的存储器单元执行读取操作;将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果进行压缩;将所述读取操作的经压缩的结果从所述内部数据锁存器组中的每个内部数据锁存器组传送到对应的传送数据锁存器组;以及将所述读取操作的所述经压缩的结果从传送锁存器数据锁存器组传送到所述输入-输出接口。
出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。
出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其他部件)。在一些情况下,当提到元件连接或耦接到另一个元件时,该元件可直接连接到另一个元件,或者经由中间元件间接连接到另一个元件。当元件被提及直接连接至另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。
出于本文档的目的,术语“基于”可理解为“至少部分地基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。
出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。
出于说明和描述的目的,已提供了上述详细描述。其并非旨在详尽的或旨在限制本发明所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。

Claims (20)

1.一种非易失性存储器设备,包括:
控制电路,所述控制电路被配置为连接到多个位线,每个位线连接到对应的多个存储器单元,所述控制电路包括:
多个感测放大器,每个感测放大器被配置为从连接到对应的一个或多个位线的所述存储器单元读取数据;
多个内部数据锁存器组,每个内部数据锁存器组被配置为存储与所述感测放大器中的对应的一个感测放大器相关联的数据;和
输入-输出接口,所述输入-输出接口被配置为向外部数据总线提供数据,
所述控制电路被配置为:
由所述感测放大器中的每个感测放大器对多个存储器单元执行读取操作;
将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;
在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果进行压缩;以及
经由所述输入-输出接口将所述读取操作的经压缩的结果传送到所述外部数据总线。
2.根据权利要求1所述的非易失性存储器设备,其中所述控制电路形成在控制管芯上,所述非易失性存储器设备还包括:
存储器管芯,所述存储器管芯包括所述多个位线和对应的多个非易失性存储器单元,所述存储器管芯与所述控制管芯单独形成并且接合到所述控制管芯。
3.根据权利要求1所述的非易失性存储器设备,其中所述读取操作的所述结果是软位数据值。
4.根据权利要求3所述的非易失性存储器设备,其中所述控制电路被进一步配置为:
由所述感测放大器中的每个感测放大器对所述多个存储器单元执行硬位读取操作以确定所述多个存储器单元中的每一者的硬位值,所述硬位值指示所述存储器单元是可靠地处于第一数据状态还是不可靠地处于第二数据状态,其中所述软位数据值中的每一者对应于所述硬位值中的一者,并且针对确定处于所述第二数据状态的存储器单元,但不针对确定为处于所述第一数据状态的存储器单元指示可靠性值。
5.根据权利要求1所述的非易失性存储器设备,所述控制电路还包括:
高速缓存缓冲器,所述高速缓存缓冲器包括多个传送数据锁存器组,每个传送数据锁存器组对应于所述传送数据锁存器组中的一个传送数据锁存器组,
其中,为了经由所述输入-输出接口将所述读取操作的所述经压缩的结果传送到所述外部数据总线,所述控制电路被进一步配置为:
将所述读取操作的所述经压缩的结果从所述内部数据锁存器组中的每个内部数据锁存器组传送到对应的传送数据锁存器组;
将来自所述传送数据锁存器组的所述读取操作的所述经压缩的结果紧缩到较小数目的所述传送锁存器组中;以及
在将所述读取操作的所述经压缩的结果传送到所述外部数据总线之前,将所述读取操作的经紧缩和压缩的结果传送到所述输入-输出接口。
6.根据权利要求5所述的非易失性存储器设备,其中所述控制电路被进一步配置为:
在将所述读取操作的所述经压缩的结果传送到所述外部数据总线之前,对所述读取操作的所述经压缩的结果的位进行重排序。
7.根据权利要求5所述的非易失性存储器设备,其中所述控制电路被进一步配置为:
在所述输入-输出接口处以并行格式接收所述读取操作的所述经压缩的结果;以及
在将所述读取操作的所述经压缩的结果传送到所述外部数据总线之前,转换所述读取操作的所述经压缩的结果。
8.根据权利要求1所述的非易失性存储器设备,其中为了在所述对应的内部数据锁存器组内对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果进行压缩,所述控制电路被进一步配置为:
对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果中的多个结果执行逻辑组合。
9.根据权利要求1所述的非易失性存储器设备,所述非易失性存储器设备还包括:
非易失性存储器单元阵列,所述非易失性存储器单元阵列包括所述多个位线和对应的多个存储器单元,所述非易失性存储器单元阵列根据三维NAND架构形成。
10.一种方法,包括:
由多个感测放大器中的每个感测放大器对多个存储器单元执行读取操作;
将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;
在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果执行数据压缩操作;以及
将所述读取操作的经压缩的结果从所述内部数据锁存器组传送到输入-输出接口。
11.根据权利要求10所述的方法,其中将所述读取操作的所述经压缩的结果从所述内部数据锁存器组传送到所述输入-输出接口包括:
将所述读取操作的所述经压缩的结果从所述内部数据锁存器组中的每个内部数据锁存器组传送到对应的传送数据锁存器组;
将来自所述传送数据锁存器组的所述读取操作的所述经压缩的结果紧缩到较小数目的所述传送锁存器组中;以及
将所述读取操作的经紧缩和压缩的结果传送到所述输入-输出接口。
12.根据权利要求11所述的方法,还包括:
对所述输入-输出接口中的所述读取操作的所述经压缩的结果的位进行重排序。
13.根据权利要求12所述的方法,所述方法还包括:
在所述输入-输出接口处以并行格式接收所述读取操作的所述经压缩的结果;以及
在将所述读取操作的所述经压缩的结果传送到所述外部数据总线之前,将所述读取操作的所述经压缩的结果转换为串行格式。
14.根据权利要求10所述的方法,其中所述读取操作的所述结果是软位数据值。
15.根据权利要求14所述的方法,还包括:
由所述感测放大器中的每个感测放大器对所述多个存储器单元执行硬位读取操作以确定所述多个存储器单元中的每一者的硬位值,所述硬位值指示所述存储器单元是可靠地处于第一数据状态还是不可靠地处于第二数据状态,其中所述软位数据值中的每一者对应于所述硬位值中的一者,并且针对确定处于所述第二数据状态的存储器单元,但不针对确定为处于所述第一数据状态的存储器单元指示可靠性值。
16.根据权利要求15所述的方法,还包括
将所述硬位值和对应的软位数据值从所述输入-输出接口传送到纠错码引擎。
17.一种非易失性存储器设备,包括:
多个块,每个块连接到对应的多个非易失性存储器单元;
多个感测放大器电路,每个感测放大器电路被配置为从连接到对应的一个或多个位线的存储器读取数据;
多个内部数据锁存器组,每个内部数据锁存器组被配置为存储与所述感测放大器中的对应的一个感测放大器相关联的数据;
高速缓存缓冲器,所述高速缓存缓冲器包括多个传送数据锁存器组,每个传送数据锁存器组对应于所述传送数据锁存器组中的一个传送数据锁存器组;
输入-输出接口,所述输入-输出接口被配置为向外部数据总线提供数据;和
一个或多个控制电路,所述一个或多个控制电路连接到所述感测放大器电路、所述内部数据锁存器组、所述高速缓存缓冲器和所述输入-输出接口,所述一个或多个控制电路被配置为:
由所述多个感测放大器中的每个感测放大器对多个对应的存储器单元执行读取操作;
将由所述感测放大器中的每个感测放大器执行的所述读取操作的结果存储在对应的内部数据锁存器组中;
在所述对应的内部数据锁存器组内,对由所述感测放大器中的每个感测放大器执行的所述读取操作的所述结果进行压缩;
将所述读取操作的经压缩的结果从所述内部数据锁存器组中的每个内部数据锁存器组传送到对应的传送数据锁存器组;以及
将所述读取操作的所述经压缩的结果从传送锁存器数据锁存器组传送到所述输入-输出接口。
18.根据权利要求17所述的非易失性存储器设备,所述一个或多个控制电路被进一步配置为:
将所述读取操作的所述经压缩的结果从所述传送锁存器数据锁存器组传送到所述输入-输出接口之前,将来自所述传送数据锁存器组的所述读取操作的所述经压缩的结果紧缩到较小数目的所述传送锁存器组中。
19.根据权利要求17所述的非易失性存储器设备,其中所述读取操作的所述结果是软位数据值。
20.根据权利要求17所述的非易失性存储器设备,其中所述非易失性存储器设备包括:
控制管芯,所述控制管芯上形成有所述一个或多个控制电路;和
存储器管芯,所述存储器管芯包括所述多个位线和对应的多个非易失性存储器单元,所述存储器管芯与所述控制管芯单独形成并且接合到所述控制管芯。
CN202210570159.1A 2021-09-16 2022-05-24 使用数据锁存器压缩非易失性存储器中的软位数据 Pending CN115810384A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202163244951P 2021-09-16 2021-09-16
US63/244,951 2021-09-16
US17/557,236 2021-12-21
US17/557,236 US11894068B2 (en) 2021-09-16 2021-12-21 Efficient sensing of soft bit data for non-volatile memory
US17/666,657 2022-02-08
US17/666,657 US11901019B2 (en) 2021-09-16 2022-02-08 Use of data latches for compression of soft bit data in non-volatile memories

Publications (1)

Publication Number Publication Date
CN115810384A true CN115810384A (zh) 2023-03-17

Family

ID=85284322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210570159.1A Pending CN115810384A (zh) 2021-09-16 2022-05-24 使用数据锁存器压缩非易失性存储器中的软位数据

Country Status (3)

Country Link
US (1) US11901019B2 (zh)
CN (1) CN115810384A (zh)
DE (1) DE102022112989A1 (zh)

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341382A (en) * 1991-06-19 1994-08-23 Sun Microsystems, Inc. Method and apparatus for improving fault coverage of system logic of an integrated circuit with embedded memory arrays
KR100758306B1 (ko) 2005-12-08 2007-09-12 한국전자통신연구원 소프트 비트 매트릭 발생 장치 및 그 방법과 그를 이용한다치 레벨 qam 수신시스템
US8874994B2 (en) 2011-07-22 2014-10-28 Sandisk Technologies Inc. Systems and methods of storing data
US8456919B1 (en) 2011-11-10 2013-06-04 Sandisk Technologies Inc. Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US20140003176A1 (en) * 2012-06-28 2014-01-02 Man Lung Mui Compact High Speed Sense Amplifier for Non-Volatile Memory with Reduced layout Area and Power Consumption
US20140071761A1 (en) 2012-09-10 2014-03-13 Sandisk Technologies Inc. Non-volatile storage with joint hard bit and soft bit reading
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
KR102149668B1 (ko) 2014-04-22 2020-08-31 삼성전자주식회사 비휘발성 메모리 장치의 데이터 디코딩 방법
US9318194B1 (en) 2014-09-29 2016-04-19 Sandisk 3D Llc Apparatus and methods for sensing hard bit and soft bits
US9576673B2 (en) 2014-10-07 2017-02-21 Sandisk Technologies Llc Sensing multiple reference levels in non-volatile storage elements
US9484089B2 (en) 2014-10-20 2016-11-01 Sandisk Technologies Llc Dual polarity read operation
US9489141B2 (en) 2014-12-18 2016-11-08 Nimble Storage, Inc. Efficient scheduling of Input/Output requests to reduce latency and maximize throughput in a flash storage device
US10474525B2 (en) 2015-08-11 2019-11-12 Sandisk Technologies Llc Soft bit techniques for a data storage device
US9978462B2 (en) 2015-10-29 2018-05-22 Sandisk Technologies Llc Partial soft bit read
US10432232B2 (en) 2016-03-04 2019-10-01 Sandisk Technologies Llc Multi-type parity bit generation for encoding and decoding
KR102471601B1 (ko) * 2016-05-17 2022-11-29 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 위크 셀 검출 방법
US10037785B2 (en) * 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
KR20180082133A (ko) 2017-01-10 2018-07-18 에스케이하이닉스 주식회사 멀티 플레인을 포함하는 비휘발성 메모리 장치
US10372353B2 (en) 2017-05-31 2019-08-06 Micron Technology, Inc. Apparatuses and methods to control memory operations on buffers
KR20190022987A (ko) 2017-08-25 2019-03-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP7141858B2 (ja) 2018-06-13 2022-09-26 ラピスセミコンダクタ株式会社 半導体装置
JP2020047312A (ja) 2018-09-14 2020-03-26 キオクシア株式会社 メモリシステム
TW202036570A (zh) 2019-03-27 2020-10-01 大陸商深圳大心電子科技有限公司 資料讀取方法、儲存控制器與儲存裝置
US11443821B2 (en) * 2019-05-31 2022-09-13 Micron Technology, Inc. Memory device architecture coupled to a System-on-Chip
JP2021111425A (ja) * 2020-01-10 2021-08-02 キオクシア株式会社 メモリシステム
KR20210128704A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US11276473B2 (en) * 2020-08-07 2022-03-15 Micron Technology, Inc. Coarse calibration based on signal and noise characteristics of memory cells collected in prior calibration operations
US11456754B2 (en) 2020-10-13 2022-09-27 Western Digital Technologies, Inc. Fixed size soft bit lossy compression in flash memory
KR20220080790A (ko) * 2020-12-07 2022-06-15 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
US11631472B2 (en) 2020-12-17 2023-04-18 Texas Instruments Incorporated Built-in memory repair with repair code compression
US11640308B2 (en) * 2021-02-19 2023-05-02 Macronix International Co., Ltd. Serial NAND flash with XiP capability

Also Published As

Publication number Publication date
US11901019B2 (en) 2024-02-13
US20230081623A1 (en) 2023-03-16
DE102022112989A8 (de) 2023-04-27
DE102022112989A1 (de) 2023-03-16

Similar Documents

Publication Publication Date Title
US11049578B1 (en) Non-volatile memory with program verify skip
US10153046B1 (en) Non-volatile memory with backing up of programmed data
US11081196B2 (en) Non-volatile memory with erase verify skip
CN112947849A (zh) 非易失性存储器编程顺序
CN113284539A (zh) 循环期间的编程电压调制
WO2020231472A1 (en) Non-volatile memory with countermeasure for over programming
WO2020231473A1 (en) Non-volatile memory with countermeasure for over programming
CN114765045A (zh) 在电路之间具有存储器阵列的非易失性存储器
US11698750B2 (en) Smart re-use of parity buffer
US20220101926A1 (en) Non-volatile memory with switchable erase methods
US11776589B2 (en) Vertical compression scheme for compressed soft bit data in non-volatile memories with data latch groups
CN115809019A (zh) 使用数据锁存器对非易失性存储器中的软位数据进行平面级压缩
US11894068B2 (en) Efficient sensing of soft bit data for non-volatile memory
US11901018B2 (en) Sense amplifier structure for non-volatile memory with neighbor bit line local data bus data transfer
US11670380B2 (en) Two-sided adjacent memory cell interference mitigation
US11532370B1 (en) Non-volatile memory with fast multi-level program verify
US11901019B2 (en) Use of data latches for compression of soft bit data in non-volatile memories
US11971826B2 (en) Architecture and data path options for compression of soft bit data in non-volatile memories
US11907545B2 (en) On-the-fly multiplexing scheme for compressed soft bit data in non-volatile memories
US11971829B2 (en) On-the-fly compression scheme for soft bit data in non-volatile memory
US11538534B1 (en) Soft bit reference level calibration using decoded data
US20240038315A1 (en) Early detection of programming failure for non-volatile memory
CN117652021A (zh) 具有高效信号路由的非易失性存储器

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