CN111722956B - Ldpc码长度调节 - Google Patents
Ldpc码长度调节 Download PDFInfo
- Publication number
- CN111722956B CN111722956B CN201911272492.9A CN201911272492A CN111722956B CN 111722956 B CN111722956 B CN 111722956B CN 201911272492 A CN201911272492 A CN 201911272492A CN 111722956 B CN111722956 B CN 111722956B
- Authority
- CN
- China
- Prior art keywords
- bit
- memory
- codeword
- puncturing
- punctured
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 89
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 70
- 239000011159 matrix material Substances 0.000 claims description 46
- 230000015654 memory Effects 0.000 abstract description 451
- 238000012937 correction Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 43
- 239000000758 substrate Substances 0.000 description 36
- 238000005516 engineering process Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 229910052751 metal Inorganic materials 0.000 description 13
- 239000002184 metal Substances 0.000 description 13
- 239000000463 material Substances 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000009826 distribution Methods 0.000 description 9
- 230000010365 information processing Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 101150089397 CEG1 gene Proteins 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 101000578349 Homo sapiens Nucleolar MIF4G domain-containing protein 1 Proteins 0.000 description 6
- 102100027969 Nucleolar MIF4G domain-containing protein 1 Human genes 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 101000739175 Trichosanthes anguina Seed lectin Proteins 0.000 description 3
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 238000000231 atomic layer deposition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000011370 conductive nanoparticle Substances 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本公开涉及存储器系统,并且特别地涉及用于LDPC码长度调节的方法和系统。本公开涉及用于删余位估计的方法,该方法包括接收删余码字,使用该删余码字和具有默认逻辑值的至少一个删余位来生成重构码字,生成用于该重构码字的校正子向量,使用该校正子向量来确定针对该至少一个删余位的未满足的奇偶校验的数量,至少使用与该至少一个删余位相关联的未满足的奇偶校验的该数量来确定用于该至少一个删余位的位值。本公开涉及用于误码率估计的方法,以及用于删余位估计的方法的控制器。
Description
技术领域
本公开涉及存储器系统,并且具体地,涉及用于LDPC码长度调节的方法和系统。
背景技术
在存储器系统中,增加读吞吐量需要增加纠错码(ECC)解码器所需的吞吐量。为了满足增大吞吐量的需求,ECC码矩阵具有允许并行解码的结构。该结构被称为准周期低密度奇偶校验(QC-LDPC),它将码的位采集到Z位元组中,然后可并行对这些元组进行解码,从而允许吞吐量增加。
QC-LDPC结构的缺陷是ECC解码器只能支持Z位的倍数的码长度,并且不能使用奇偶校验位的其余部分。然而,要存储在存储器中的奇偶校验位的实际量通常取决于存储器的成本和尺寸(例如,几何结构),而不取决于ECC码结构。继而,要存储在存储器中的奇偶校验位的量和由解码器支持的QC-LDPC码结构生成的奇偶校验位的量通常不一致。使用由第三方设计或制造的控制器或存储器也可能导致这种不一致。这种不一致的结果是存储器中存在未使用的位。
并行解码的要求随着吞吐量需求的不断增加而持续增加。同时,在新的存储器管芯设计中添加的附加位对存储器管芯的成本具有显著的影响,这意味着未使用位的量的增加变得更糟。因此,期望尽量减少未使用位的数量同时保持足够的解码并行性以满足吞吐量要求的方法。
发明内容
本公开整体涉及存储器管理系统和方法。
本发明所公开的实施方案的一个方面是删余位估计的方法。所述方法包括接收删余码字。所述方法还包括使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字。所述方法还包括生成用于所述重构码字的校正子向量。所述方法还包括使用校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量。所述方法还包括至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
本发明所公开的实施方案的另一方面是包括非易失性存储器和控制器的存储器系统。所述非易失性存储器包括至少一个存储器管芯,并且所述控制器与所述至少一个存储器管芯通信。所述控制器被配置为:接收删余码字;使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字;生成用于所述重构码字的校正子向量;使用所述校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量;以及至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
本发明所公开的实施方案的另一个方面是误码率估计方法。所述方法包括使用与初始重构码字相关联的第一校正子向量的校正子值来计算初始重构码字的初始校正子权重。所述方法还包括使用删余码字和具有默认逻辑值的至少一个删余位来生成修改的重构码字。所述方法还包括通过对奇偶校验矩阵和当前位值向量执行点积运算来生成用于所述修改的重构码字的第二校正子向量。所述方法还包括使用初始校正子权重和所述修改的重构码字来计算更新的校正子权重。所述方法还包括使用所述更新的校正子权重来估计用于读码字的误码率。
本公开的这些和其他方面在以下对实施方案、所附权利要求书和附图的详细描述中有所公开。
附图说明
并入本说明书中并且构成本说明书的一部分的附图示出了本说明书的各个方面以解释其原理。在方便的情况下,相同的参考号将在整个附图中用来指代相同或相似的元件。
图1A总体上示出了示例性存储器系统的框图。
图1B总体上示出了包括多个存储器系统的示例性存储模块的框图。
图1C总体上示出了示例性分级存储系统的框图。
图2A总体上示出了图1A的存储器系统的控制器的部件的示例性配置的框图。
图2B总体上示出了图1A的存储器系统的存储器管芯的部件的示例性配置的框图。
图3A总体上示出了组织成块的存储器单元结构的框图。
图3B总体上示出了不同存储器平面中组织成块的存储器单元结构的框图。
图3C总体上示出了存储器单元结构的示例性成组织的布置或分级结构的框图。
图4A总体上示出了包括多个三维块的图2B的存储器管芯的至少一部分的透视图。
图4B总体上示出了图4A的块中的一个块的一部分的剖视图。
图4C总体上示出了图4B的横截面的区域的近距离视图。
图4D总体上示出了三维地布置成多个NAND串的存储器单元块的电路示意图。
图5总体上示出了用于执行奇偶校验位生成过程的存储器系统的示例性模块的框图。
图6总体上示出了奇偶校验矩阵的通用布局的示意图。
图7总体上示出了对应于图6的奇偶校验矩阵的部分完成的Tanner图的示意图。
图8总体上示出了示例性删余位估计过程的流程图。
图9总体上示出了实现图10的示例性删余位估计过程的示例性纠错操作的流程图。
图10总体上示出了实现图10的示例性删余位估计过程的示例性误码率估计过程的流程图。
具体实施方式
以下讨论涉及本发明的各种实施方案。尽管这些实施方案中的一个或多个可能是优选的,但所公开的实施方案不应被解释为或以其他方式用作限制本公开的范围,包括权利要求书。此外,本领域的技术人员将会理解,以下描述具有广泛的应用,并且对任何实施方案的讨论仅旨在作为该实施方案的示例,并非旨在暗示本公开的范围(包括权利要求书)限于该实施方案。
以下实施方案描述了用于估计各种纠错和误码率(BER)方案的删余位的位值的装置、设备、系统、电路和方法。
图1A是示出存储器系统100的框图。存储器系统100可包括控制器102以及可包括一个或多个存储器管芯104或由这些存储器管芯组成的存储器。如本文所用,术语管芯指的是在单个半导体基板上形成的一组存储器单元以及用于管理这些存储器单元的物理操作的相关电路。控制器102可与主机系统相连接,并将用于读取、编程和擦除操作的命令序列发送到非存储器管芯104。
控制器102(可以是闪存存储器控制器)可以采用以下形式:例如处理电路、微处理器或处理器,以及存储可由(微)处理器执行的计算机可读程序码的计算机可读介质(例如,软件或固件)、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器。控制器102可以配置有用以执行下面描述并且在流程图中总体上示出的各种功能的硬件和/或固件。另外,示出为控制器内部的一些部件可也存储在控制器外部,并且可以使用其他部件。附加地或另选地,短语“操作地与…通信”可能意味着直接或间接地(有线或无线)与一个或多个部件通信、通过一个或多个部件通信,其可在本文中示出或未示出。
如本文所用,控制器102是管理存储在存储器管芯中的数据并与主机诸如计算机或电子设备通信的设备。除了本文所述的特定功能之外,控制器102还可具有各种功能。例如,控制器102可格式化存储器管芯104以确保存储器管芯104正常工作,映射出不良的闪存存储器单元,并分配备用单元以供未来的故障单元替换。备用单元的一些部分可用于保持固件以操作控制器102并实现其他特征。在操作中,当主机需要从存储器管芯104读取数据或将数据写入该存储器管芯时,主机将与控制器102通信。如果主机提供要向其读取/写入数据的逻辑地址,则控制器102可将从主机接收的逻辑地址转换为存储器管芯104中的物理地址。(或者,主机可以提供物理地址)。控制器102还可执行各种存储器管理功能,诸如但不限于损耗均衡(分配写入以避免损耗否则将被重复写入的特定存储器块)和垃圾收集(在块已满之后,仅将有效的数据页面移动到新块,因此可以擦除并重新使用完整块)。
控制器102和非易失性存储器管芯104之间的接口可以是任何合适的接口,诸如闪存接口,包括被配置用于切换模式200、400、800、1000或更高的接口。对于一些示例性实施方案,存储器系统100可以是基于卡的系统,诸如安全数字(SD)或微型安全数字(微型SD)卡。在另选的示例性实施方案中,存储器系统100可以是嵌入式存储器系统的一部分。
在图1A所示的实施例中,存储器系统100被示为包括控制器102和非易失性存储器管芯104之间的单个通道。然而,本文所述的主题不限于具有单个存储器通道的存储器系统。例如,在一些存储器系统中,诸如体现NAND架构的那些存储器系统,根据控制器能力,在控制器102和存储器管芯104之间可存在2、4、8或更多个通道。在本文描述的任何实施方案中,即使在附图中总体上示出单个通道,控制器和存储器管芯104之间也可以存在多于一个单个通道。
图1B示出了包括多个非易失性存储器系统100的存储模块200。因此,存储模块200可包括与主机和存储系统204相连接的存储控制器202,该存储系统包括多个非易失性存储器系统100。存储控制器202和非易失性存储器系统100之间的接口可以是总线接口,作为示例,诸如串行高级技术附件(SATA)、快速外围组件接口(PCIe)、嵌入式多媒体卡(eMMC)接口、SD接口或通用串行总线(USB)接口。在一个实施方案中,存储模块200可以是固态驱动器(SSD),诸如存在于便携式计算设备(诸如膝上型电脑和平板电脑)和移动电话中。
图1C是示出了分级存储系统210的框图。分级存储系统210可包括多个存储控制器202,每个存储控制器控制相应的存储系统204。主机系统212可经由总线接口访问分级存储系统210内的存储器。作为示例,示例性总线接口可包括非易失性存储器express(NVMe)、以太网光纤信道(FCoE)接口、SD接口、USB接口、SATA接口、PCIe接口或eMMC接口。在一个实施方案中,图1C中所示的存储系统210可以是可由多个主计算机访问的可机架安装的大容量存储系统,诸如将存在于数据中心或需要大容量存储的其他位置中。
图2A是更详细地示出控制器102的示例性部件的框图。控制器102可包括与主机进行交互的前端模块108、与非易失性存储器管芯104进行交互的后端模块110、以及执行非易失性存储器设备100的各种功能的各种其他模块。一般来讲,模块可以是硬件或硬件和软件的组合。例如,每个模块可包括专用集成电路(ASIC),现场可编程门阵列(FPGA),电路,数字逻辑电路,模拟电路,离散电路、门或任何其他类型的硬件的组合,或者其组合。除此之外或另选地,每个模块可包括存储器硬件,该存储器硬件包括可用处理器或处理器电路执行以实现模块的特征中的一个或多个的指令。当模块中的任一个包括存储器的包括可用处理器执行的指令的部分时,模块可包括或可不包括处理器。在一些示例中,每个模块可仅为存储器的包括可用处理器执行以实现对应模块的特征的指令的部分,而模块不包括任何其他硬件。由于每个模块都包括至少一些硬件,因此即使在所包括的硬件包括软件时,每个模块也可互换地称为硬件模块。
控制器102可包括缓冲管理器/总线控制器模块114,其管理随机存取存储器(RAM)116中的缓冲器并控制内部总线仲裁以在控制器102的内部通信总线117上进行通信。只读存储器(ROM)118可存储和/或访问系统引导码。虽然图2A所示为与控制器102分开定位,但在其他实施方案中,RAM 116和ROM 118中的一者或两者可位于控制器102内。在其他实施方案中,RAM 116和ROM 118的部分可以位于控制器102内和控制器102外部。此外,在一些实施方式中,控制器102、RAM 116和ROM 118可以位于单独的半导体管芯上。
附加地或另选地,前端模块108可包括提供与主机或下一级存储控制器的电接口的主机接口120和物理层接口(PHY)122。主机接口120类型的选择可取决于所使用的存储器的类型。主机接口120的示例类型可包括但不限于SATA、SATA Express、SAS、光纤通道、USB、PCIe和NVMe。主机接口120可通常有利于传输数据、控制信号和定时信号。
后端模块110可包括纠错码(ECC)模块(也称为ECC引擎)124,该模块被配置为执行奇偶校验位生成过程(或编码过程)和纠错过程(或解码过程),在编码过程期间,ECC模块124针对从主机接收的数据生成奇偶校验位,在解码过程期间,ECC模块124对从存储器管芯104读取的数据位进行纠错。ECC模块124的其他操作和功能在下面进一步详细描述。
后端模块110可还包括命令定序器126,该命令定序器生成命令序列,诸如编程命令序列、读取命令序列和擦除命令序列,以传输到非易失性存储器管芯104。附加地或另选地,后端模块110可包括RAID(独立驱动器冗余阵列)模块128,该RAID模块管理RAID奇偶校验的生成和失败数据的恢复。RAID奇偶校验可用作写入到非易失性存储器系统100中的数据的附加级的完整性保护。在一些情况下,RAID模块128可以是ECC模块124的一部分。存储器接口130向非易失性存储器管芯104提供命令序列,并且从非易失性存储器管芯104接收状态信息。连同命令序列和状态信息,可通过存储器接口130传送要编程到非易失性存储器管芯104中和从非易失性存储器管芯读取的数据。在一个实施方案中,存储器接口130可以是双数据速率(DDR)接口和/或切换模式200、400、800或更高的接口。控制层132可控制后端模块110的整体操作。
此外,后端模块110可包括描述符生成器模块136,该模块被配置为至少针对由ECC模块124执行的奇偶校验位和纠错过程生成描述符。如下文进一步详细描述的,当数据要写入非易失性存储器管芯104时,诸如响应于主机写入请求而写入时,描述符生成器模块136可生成与数据相关联的描述符并向ECC模块124提供该描述符。响应于接收到该描述符,ECC模块124可检索可存储在RAM 116中的数据,并且在数据被写入非易失性存储器管芯104之前对其进行编码。此外,当从非易失性存储器管芯104读取数据时,诸如响应于主机读取请求而读取时,描述符生成器模块136可生成与数据相关联的描述符并向ECC模块124提供该描述符。响应于接收到该描述符,ECC模块124可接收数据,数据可存储在RAM 116中的,并且在数据被发送到其最终目的地诸如发送到主机之前对其进行纠错。
图2A中所示的非易失性存储器系统100的附加模块可包括媒体管理层138,其执行特定存储器管理功能,输入存储器管芯104的存储器单元的损耗均衡、地址管理,并且促进折叠操作。其他存储器管理功能也是可能的。非易失性存储器系统100可还包括其他分立部件140,诸如外部电气接口、外部RAM、电阻器、电容器或可与控制器102进行交互的其他部件。在另选的实施方案中,RAID模块128、媒体管理层138和缓冲区管理/总线控制器114的一者或多者是控制器102中可能不需要的任选部件。
图2B是存储器管芯104的部件的示例性配置的更详细框图。存储器管芯104可包括存储器单元结构142,该存储器单元结构包括多个存储器单元,或可互换地称为存储器元件。存储器单元是存储具有n位数据值的数据单元的元件或部件,其中n为一或超过一。任何合适类型的存储器可用于存储器单元结构142的存储器单元。作为示例,存储器可以是动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)、非易失性存储器,诸如电阻随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器(也可被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM”)、磁阻随机存取存储器(“MRAM”),相变存储器(“PCM”),或包括半导体材料或能够存储信息的其他材料的其他元件。每种类型的存储器可具有不同的配置。例如,闪存存储器可以NAND配置或NOR配置进行配置。
存储器可以任何组合由无源和/或有源元件形成。以非限制性示例的方式,无源半导体存储器元件包括ReRAM设备元件,其在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及可选地包括导引元件诸如二极管等。进一步以非限制性示例的方式,有源半导体存储器元件包括EEPROM和闪存存储器设备元件,其在一些实施方案中包括具有电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。
多个存储器单元可被配置为使得它们串联连接或者使得每个元件可被单独访问。以非限制性示例的方式,NAND配置中的闪存存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可被配置为使得该阵列由多个单元组构成,其中属于同一单元组的存储器单元共享单个偏置线,诸如单个字线或单个位线,并且作为组被访问或偏置。另选地,存储器单元可被配置为使得每个元件均为单独可访问的,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且可以其他方式配置存储器单元。
形成存储器管芯的存储器单元结构142的多个存储器单元可位于基板内和/或基板上方。基板可以是存储器单元的层在其之上或之中形成的晶圆,或者它可以是在存储器单元形成后附接到存储器单元的承载基板。作为非限制性示例,基板可包括半导体和/或由半导体材料诸如硅制成。
此外,形成整个存储器单元结构142或存储器单元结构142的至少一部分的多个存储器单元可被布置成二维或三维。布置成二维的多个存储器单元被称为二维(2-D)存储器单元结构。布置成三维的多个存储器单元被称为三维(3-D)存储器单元结构。
在二维存储器单元结构中,存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器单元结构中,存储器单元被布置在基本上平行于支承存储器单元的基板的主表面延伸的平面中(例如,在x-y方向平面中)。
在三维存储器单元结构中,存储器单元被布置成使得存储器单元占据多个平面或多个存储器设备级(例如,多个x-y方向平面),从而形成三维结构(即x,y和z方向,其中z方向基本上垂直于基板的主表面并且x方向和y方向基本上平行于基板的主表面)。当被配置为三维存储器单元结构时,存储器单元向上或远离基板的主表面延伸。
作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在z方向上),其中在每一列中每一列均具有多个存储器单元。列可以二维配置布置,例如,在x-y平面中,产生存储器单元的三维布置,其中存储器单元位于多个垂直堆叠的存储器平面上。三维存储器单元的其他配置也可构成三维存储器阵列。
在至少一些示例性配置中,二维或三维存储器单元结构可以是有序排列(或仅称排列)的形式或被配置为有序排列。一种类型的排列是正交排列,它是包括行和列的类似矩阵结构。存储器单元被布置为行和列。在行和列的交叉处是存储器单元。然而,在其他配置中,存储器元件能够以非常规配置或非正交配置排列。
参见图3A,位于单个存储器管芯104上的存储器单元结构142可被组织成从第一块BLK1延伸至第N块BLK N的N个块。块是存储器管芯104的最小擦除单元。属于同一块的存储器单元被同时擦除和/或作为同一擦除操作的一部分被擦除。
参见图3B,对于一些示例性配置,位于单个存储器管芯104上的N个块被组织成多个存储器平面(或仅称平面)。图3B总体上示出了将块组织成两个存储器平面的示例性配置,包括第一存储器平面Plane 0和第二存储器平面Plane 1。包括两个以上的存储器平面的配置可以是可能的。在图3B中,每个存储器平面被示出为包括从第一块BLK 1延伸至第M块BLK M的M个块。在至少一些示例性配置中,属于同一平面的块可被取向为和/或形成一列块或块的一维排列,尽管单个平面中的块的其他配置可以是可能的。
参见图3C,存储器管芯104的存储器阵列结构142和/或跨越多个存储器管芯104的多个存储器单元结构142可具有成组织的布置或分级结构,按照该结构将数据编程到存储器单元结构142中,从存储器单元结构中读取数据,对数据进行寻址、分组或识别。控制器102可被配置为根据该成组织的布置或分级结构对数据进行编程,从数据读取,对数据进行寻址、分组或识别。
图3C为存储器单元结构142的示例性成组织的布置或分级结构的框图。如上所述,存储器单元可被划分或组织成存储数据块的块302。数据块可进一步划分成数据页面304。页面304可以是从存储器单元结构142感测的数据单元和/或将数据编程到存储器单元结构142的单元。每个单独的页面304可进一步划分成片段或单元306数据,每个片段或单元306。数据片段或单元306(也称为闪存存储器单元(FMU)、ECC页面或码字)可包括在编程操作期间一次写入的数据量和/或在单个奇偶校验位生成或纠错过程期间由ECC模块124为其生成奇偶校验位或纠错的数据量。页面的片段或单元的示例性数量可以是四个或八个,但其他数量也是可能的。
附加地或另选地,所述成组织的布置或分级结构可包括元块408和元页面310。识别元块的元块地址或数字可映射到和/或对应于由主机提供的逻辑地址(例如,逻辑组号)。元块308和元页面310可横跨或分布在单个平面中的相应单个块和页面上,或者另选地,可横跨或分布在跨越多个平面的相应多个块和多个页面上。图3C总体上示出了横跨两个平面(平面0和平面1)的元块308和元页面310。根据成组织的布置,横跨多个平面的元块308和元页面310可仅横跨单个存储器管芯104的那些平面,或者另选地可横跨位于多个存储器管芯104中的多个平面。
此外,块的存储器单元可以二维地布置在二维(2-D)存储阵列中,也可以三维地布置在三维(3-D)存储阵列中。二维块是具有二维地布置的存储器单元的块。三维块是具有三维地布置的存储器单元的块。
图4A总体上示出了包括一组或多个三维块400的存储器管芯104的至少一部分的透视图,所述三维块可表示图2B的存储器单元结构142的至少一部分。为简单起见,所述多个块400被示出为包括四个块,即BLK1、BLK2、BLK3和BLK4。在实际具体实施中,存储器管芯104的给定存储器单元结构142可包括比四个更多的块,诸如大约数百、数千或数万个块。在一个具体示例性配置中,块组成的一个平面包括2,000个块。
块400位于或设置在存储器管芯104的基板402上。基板402可为存储器管芯104的下层或区域404的一部分,其承载或包括块400下方的电路,以及被图案化以形成导电路径的一个或多个下金属层,所述导电路径承载或提供从电路输出的信号或电压,诸如用于执行存储器操作(读取、编程、感测、擦除等)的那些。
块400设置在存储器管芯104的中间层或区域406(也称为块层或区域,或阵列层或区域)中,该中间层在存储器管芯104的下部区域404和上层或区域408之间。上部区域408可包括以导电路径的形式图案化的一个或多个上部金属层,所述导电路径承载或提供从电路输出的信号或电压。
基板402通常为具有相对的平坦表面的平面结构。本文中,可结合具有x轴、y轴和z轴的三维笛卡尔坐标系对存储器管芯104上的部件进行实际地描述。z轴为垂直于基板402的平坦表面延伸的轴线。一般来讲,存储器管芯104上的部件以平行于z轴的z方向设置在平坦表面中的一个上和/或从其延伸。术语“上方”和“下方”以及其他术语诸如“顶部”和“底部”以及“上部”和“下部”在本文中用于描述存储器管芯104的部件沿着或参考z轴的相对定位。例如,块400在基板402“上方”,并且基板402是在块400“下方”的下部区域404的一部分。此外,上部区域408是存储器管芯104的在块400和基板402两者“上方”的区域。设置在上部区域408中的存储器管芯104的部件在z方向上比块400的部件距基板402更远。一般来讲,对于给定存储器管芯104上的两个部件,其中第一部件在第二部件“上方”,则第一部件在z方向上比第二部件距基板402更远。此外,在第一部件在第二部件“下方”的情况下,第一部件定位或设置成在z方向上比第二部件更靠近基板402。
术语“顶部”和“底部”也用于指存储器管芯104的部件在z方向上和/或沿z轴的相对定位。一般来讲,“底部”部件定位或设置成在z方向上比“顶部”部件更靠近基板402,并且“顶部”部件定位或设置成在z方向上比“底部”部件距基板402更远。在这种情况下,存储器管芯104可包括设置在上部区域408中的一个或多个顶部金属层和设置在下部区域404中的一个或多个底部金属层。一般来讲,底部金属层定位或设置成在z方向上比顶部金属层更靠近基板402,并且顶部金属层定位或设置成在z方向上比底部金属层距基板402更远。
虽然术语“上部”和“下部”,“上方”和“下方”以及“顶部”和“底部”用于描述存储器管芯104上的部件的相对位置,但它们不应被理解为限制部件的相对定位,因为存储器管芯104或整个存储器系统100可被取向为各种位置中的任一个。
相对于块的部件,块包括多个偏置元件和多个控制线。偏置元件是块的接收偏置、被偏置和/或响应于偏置的部件或单元。与块的偏置元件结合使用的偏置是电压、电流、多个电压、多个电流,或施加到偏置元件和/或由偏置元件接收以引起来自偏置元件的响应或将偏置元件配置为特定状态的至少一个电压和至少一个电流的组合。向偏置元件施加或提供偏置,或者在一个或多个层级上利用偏置来使偏置元件偏置,以引起响应或将偏置元件配置为特定状态以便执行存储器操作。
块的多个偏置元件可全部为单一类型或可各自为多种不同类型中的一种。不同类型的偏置元件可在块中执行不同的功能和/或可在存储器操作期间在不同层级上利用不同偏置来偏置。
一种类型的偏置元件为存储器单元。属于同一块的存储器单元被称为存储器单元块。其他类型的偏置元件也是可能的,具体取决于存储器技术。在NAND技术中,其他类型的偏置元件可包括虚设单元、漏极选择栅极晶体管(称为SGD晶体管)和源极选择栅极晶体管(称为SGS晶体管)。至少对于NAND技术,虚设单元是不存储来自主机的数据的存储器单元,并且虚设单元设置为与虚设字线层共面,该虚设字线层保护存储器单元和字线层不受某些边缘效应的影响。SGD晶体管和SGS晶体管可被配置为在特定时间和/或响应于某些偏置而被启用(接通),禁用或抑制(关闭)或以其他方式被配置为导电状态和非导电状态,以允许执行存储器操作(例如,允许将数据编程到存储器单元中,从存储器单元读取数据或擦除数据)。除存储器单元、虚设单元,SGD晶体管和/或SGS晶体管之外或与它们同样的偏置元件类型也是可能的。
此外,块的控制线是块的导电结构、元件或部件,其向块的一个或多个偏置元件提供、施加或输出偏置的至少一部分(诸如单个电压或单个电流)和/或利用偏置的至少一部分将一个或多个偏置元件偏置。在至少一些示例性配置中,控制线用作接触线,因为其是物理延伸到并接触它偏置的一个或多个偏置元件的导电线,诸如通过接触和/或形成其偏置的偏置元件的电极或端子的至少一部分。
块的控制线可被组织、布置、表征、划分或配置成多个不同类型的控制线。可通过它们用来将偏置元件偏置的方式将控制线组织成各个类型。例如,同一类型的控制线可以相同的方式将偏置元件偏置,诸如通过将相同类型的偏置元件偏置和/或将偏置元件的相同类型的端子偏置。
对于NAND技术,块的控制线可被组织成三种主要类型,包括控制栅极线、位线和源极线。控制栅极线(至少对于NAND技术)是将控制栅极电压施加到一个或多个偏置元件的一个或多个控制栅极端子(或仅称控制栅极)的控制线,和/或利用控制栅极电压偏置一个或多个偏置元件的一个或多个控制栅极端子的控制线。
位线(至少对于NAND技术)是将位线电压施加到一个或多个偏置元件的一个或多个端子的控制线,和/或利用位线电压偏置一个或多个偏置元件的一个或多个端子的控制线。在具体的示例性配置中,位线将偏置元件的漏极端子(或仅称漏极)偏置。对于此类示例性配置,位线电压可另选地称为漏极电压,其中位线是将漏极电压施加到一个或多个偏置元件的一个或多个漏极端子的控制线。此外,对于至少一些示例性配置,位线通过将其位线电压施加到一个或多个通道和/或相关联的通道元件组来将偏置元件的端子偏置。在这种情况下,位线电压可另选地称为通道电压,其中位线是将通道电压施加到一个或多个通道和/或相关联的通道元件组的控制线。换句话讲,通道电压是控制线施加到通道的电压。在具体示例性配置中,尤其是其中位线将偏置元件的漏极端子偏置的配置,位线将一个或多个通道和/或相关联的通道元件组的漏极端或漏极侧偏置。在这种情况下,位线电压可另选地称为漏极侧通道电压(或仅称漏极侧电压)。换句话讲,漏极侧通道电压(或仅称漏极侧电压)是控制线施加到通道的漏极端的电压。
源极线(至少对于NAND技术)是将源极线电压施加到一个或多个偏置元件的一个或多个端子的控制线,和/或利用源极线电压偏置一个或多个偏置元件的一个或多个端子的控制线。在具体的示例性配置中,源极线将偏置元件的源极端子(或仅称源极)偏置。对于此类示例性配置,源极线电压可另选地称为源极电压,其中源极线是将源极电压施加到一个或多个偏置元件的一个或多个源极端子的控制线。此外,对于至少一些示例性配置,源极线通过将其源极线电压施加到一个或多个通道和/或相关联的通道元件组来将偏置元件的端子偏置。在这种情况下,源极线电压可另选地称为通道电压,其中源极线是将通道电压施加到一个或多个通道和/或相关联的通道元件组的控制线。在具体示例性配置中,尤其是其中源极线将偏置元件的源极端子偏置的配置,源极线将一个或多个通道和/或相关联的通道元件组的源极端或源极侧偏置。在这种情况下,源极线电压可另选地称为源极侧通道电压(或仅称源极侧电压)。换句话讲,源极侧通道电压(或仅称源极侧电压)是控制线施加到通道的源极端的电压。
在至少一些示例性配置中,块的控制栅极线可被进一步组织、布置、表征、划分或配置为多个不同的控制栅极类型(或子类型)。具体地讲,控制栅极线可被进一步布置成它们偏置的偏置元件的类型,并且包括字线、虚设字线、漏极选择栅极线(称为SGD线)和源极选择栅极线(称为SGS线)。
字线是将字线电压施加到一个或多个存储器单元的一个或多个控制栅极的控制栅极线,和/或利用字线电压将一个或多个存储器单元的一个或多个控制栅极偏置的控制栅极线。虚设字线是将虚设字线电压施加到一个或多个虚设单元的一个或多个控制栅极的控制栅极线,和/或利用虚设字线电压将一个或多个虚设单元的一个或多个控制栅极偏置的控制栅极线。漏极选择栅极线(称为SGD线)是将漏极选择栅极电压(称为SGD线电压)施加到一个或多个SGD晶体管的一个或多个控制栅极的控制栅极线,和/或利用SGD线电压将一个或多个SGD晶体管的一个或多个控制栅极偏置的控制栅极线。源极选择栅极线(称为SGS线)是将源极选择栅极电压(称为SGS线电压)施加到一个或多个SGS晶体管的一个或多个控制栅极的控制栅极线,和/或利用SGS线电压将一个或多个SGS晶体管的一个或多个控制栅极偏置的控制栅极线。
对于三维块的一些示例性配置,至少一种类型的控制线被实现或形成为多个层。例如,在至少一些3-D NAND配置中,块的控制栅极线被实现或形成为层。一般来讲,层(换句话讲称为片或板)是在垂直于z方向的x-y方向上延伸的大致为平面的结构。层具有面向相反方向的相对的平坦表面。平坦表面中的一个为在z方向上远离基板402的顶部表面,并且其中的另一个为在z方向上朝向基板402的底部表面。
本文中,术语“线”和“层”(至少在它们用于指控制线时,除了下文进一步详细描述的SGD线之外)可互换使用或作为彼此的替代形式使用。例如,术语“控制栅极线”和“控制栅极层”可互换使用;术语“字线”和“字线层”可互换使用;术语“虚设字线”和“虚设字线层”可互换使用;并且术语“源选择栅极线”(或SGS线)和“源选择栅极层”(或SGS层)可互换使用。
此外,至少对于3-D NAND技术的一些示例性配置,三维块包括叠堆。一般来讲,叠堆是设置在彼此顶部的多个层或一系列层。对于3-D NAND,块的叠堆包括多个控制栅极层和多个介电层。至少当用叠堆的控制栅极层实现时,介电层是将一个控制栅极层与另一个控制栅极层电隔离的层。在叠堆中,控制栅极层和介电层以交替方式布置,因为当叠堆在z方向上远离基板延伸时,这些层在控制栅极层和介电层之间连续地交替。在这种情况下,三维块的叠堆是一系列交替设置的控制栅极层和介电层。
三维块的叠堆包括由层的侧表面和边缘限定的外表面和边缘,以及叠堆的最顶层的顶部表面和叠堆的最底层的底部表面。叠堆的外表面和边缘继而限定叠堆的外边界。三维块的偏置元件以三维方式布置在外边界内。在这种情况下,三维块的偏置元件被称为设置在叠堆中或叠堆内。
此外,至少对于一些示例性配置,三维块的偏置元件与控制栅极层共面(在x-y方向上)设置。具体地讲,偏置元件与它们被配置成由其偏置的控制栅极层共面。因此,被配置为由特定字线层偏置的存储器单元设置成与该特定字线层共面;被配置为由特定SGD层偏置的SGD晶体管设置成与该特定SGD层共面;被配置为由特定SGS层偏置的SGS晶体管设置成与该特定SGS层共面;并且被配置为由特定虚设字线层偏置的虚设单元设置成与该特定虚设字线层共面。
与给定的控制栅极层共面和/或被配置为由给定的控制栅极层偏置的偏置元件可称为设置在给定的控制栅极层中,位于给定的控制栅极层中,和/或耦接到给定的控制栅极层。例如,与给定的字线共面和/或被配置为由给定的字线偏置的存储器单元可称为设置在给定的控制字线层中,位于给定的字线层中,和/或耦接到给定的字线层。
此外,至少对于3-D NAND技术的一些示例性配置,三维块包括多个通道。通道是在z方向上延伸穿过块的叠堆的细长结构,块的偏置元件在通道周围或围绕通道形成或设置。在通道周围或围绕通道设置或形成的偏置元件可至少部分地,并且在一些配置中完全包括或围绕该通道。
此外,至少对于3-D NAND技术的一些示例性配置,块的偏置元件利用通道进行偏置。换句话讲,通道是块的用来将偏置元件偏置的结构。具体地讲,偏置元件的漏极端子和源极端子利用通道进行偏置。具有由给定通道偏置的源极端子和漏极端子的偏置元件耦接到该给定通道。
每个通道包括相应的漏极端子(或漏极侧)和相应的源极端(或源极侧)。通道在z方向上从其漏极端到其源极端延伸穿过基板。块的位线电连接或耦接到通道的漏极端,并且块的源极线电连接或耦接到通道的源极端。在本文所述的块的示例性配置中,位线将位线电压(或漏极电压或漏极侧电压或漏极侧通道电压)施加到与其耦接的一个或多个通道的一个或多个漏极端。源极线将源极线电压(或源极电压或源极侧电压或源极侧通道电压)施加到与其耦接的通道的源极端。
另外,如本文所用,通道元件组是在同一通道周围或围绕同一通道形成或设置的多个或一系列偏置元件。包括在给定通道周围或围绕给定通道设置或形成的偏置元件的给定通道和给定通道元件组被称为耦接到彼此和/或彼此相关联。此外,属于同一通道元件组的偏置元件被称为耦接到彼此。
对于至少一些示例性配置,通道元件组的偏置元件包括多个存储器单元、至少一个SGD晶体管和至少一个SGS晶体管。在具体示例性配置中,通道元素组还可包括一个或多个虚设单元。
通道元件组围绕其相关联的通道在z方向上延伸。与通道类似,通道元件组各自包括相应的漏极端(或漏极侧)和源极端(或源极侧)。通道在z方向上从其漏极端到其源极端朝基板延伸。
在具体示例性配置中,包括本文所述的那些,通道元件组的漏极端电耦接到它们的相关联通道的漏极端。因此,位线电连接或耦接到通道和相关联的通道元件组的漏极端。在这种情况下,位线被配置为施加的位线电压或通道电压是位线施加到位线所耦接的通道和相关联通道元件组的漏极端的漏极电压、漏极侧通道电压或漏极侧电压。换句话讲,漏极侧通道电压(或漏极侧电压)是位线产生并施加到其电连接或耦接的通道的漏极端(或漏极侧)和/或通道元件组的漏极端(或漏极侧)的电压。在至少一些示例性存储器操作期间,位线可通过将位线电压(或漏极电压、漏极侧通道电压或漏极侧电压)施加到位线电连接或耦接的一个或多个通道的一个或多个漏极端和/或一个或多个通道元件组的一个或多个漏极端,来将一个或多个偏置元件的一个或多个漏极端子偏置。换句话讲,在至少一些示例性存储器操作期间,位线利用位线所耦接的一个或多个通道的漏极端和/或一个或多个通道元件组的漏极端来利用位线电压(或漏极电压、漏极侧通道电压或漏极侧电压)将一个或多个偏置元件的一个或多个漏极端子偏置。
相似地,在具体示例性配置中,包括本文所述的那些,通道元件组的源极端电耦接到它们的相关联通道的源极端。因此,源极线电连接或耦接到通道和相关联的通道元件组的源极端。在这种情况下,源极线被配置为施加的位线电压或通道电压是源极线施加到源极线所耦接的通道和相关联通道元件组的源极端的源极电压、源极侧通道电压或源极侧电压。换句话讲,源极侧通道电压(或源极侧电压)是源极线产生并施加到其电连接或耦接的通道的源极端(或源极侧)和/或通道元件组的源极端(或源极侧)的电压。在至少一些示例性存储器操作期间,源极线可通过将源极线电压(或源极电压、源极侧通道电压或源极侧电压)施加到源极线电连接或耦接的一个或多个通道的一个或多个源极端和/或一个或多个通道元件组的一个或多个源极端,来将一个或多个偏置元件的一个或多个源极端子偏置。换句话讲,在至少一些示例性存储器操作期间,源极线利用源极线所耦接的一个或多个通道的源极端和/或一个或多个通道元件组的源极端来利用源极线电压(或源极电压、源极侧通道电压或源极侧电压)将一个或多个偏置元件的一个或多个源极端子偏置。
此外,通道元件组的偏置元件在同一通道周围或围绕同一通道沿z方向延伸。通道元件组的每个偏置元件设置成与块的多个控制栅极层中的一个共面。就这一点而言,块的每个控制栅极层被配置为将通道元件组的多个偏置元件中相应的一个的控制栅极偏置。
此外,对于至少一些示例性配置,块的通道元件组可具有相同数量的偏置元件,偏置元件类型的相同组合,以及每个偏置元件类型的相同数量的偏置元件。此外,在z方向上远离基板延伸的相应偏置元件类型的偏置元件的偏置元件顺序在块的通道元件组之间是相同的。至少对于3-D NAND技术的一些示例性配置,从最靠近基板开始并在z方向上远离基板移动的通道元件组的偏置元件的偏置元件顺序包括:一个或多个SGS晶体管,然后是一个或多个源极侧虚设单元,然后是多个存储器单元,然后是一个或多个漏极侧虚设单元,然后是一个或多个SGD晶体管。其他偏置元件顺序可以是可能的。
控制栅极层的控制栅极层顺序及其相应类型可匹配或对应于块的偏置元件顺序。因此,至少对于3-D NAND技术的一些示例性配置,从最靠近基板开始并在z方向上远离基板移动的块的多个控制栅极层的控制栅极层顺序包括:一个或多个SGS层,然后是一个或多个源极侧虚设子线层,然后是多个字线层,然后是一个或多个漏极侧虚设子线层,然后是一个或多个SGD层。
更详细地,图4B总体上示出了块410的一部分的剖视图,该块可代表图4A的块400中的一个。块410包括交替的控制栅极层和介电层(DL)的叠堆412。此外,图4B中总体上示出的部分包括延伸穿过这些层的两个通道(或存储器孔),包括第一通道414和第二通道416。在这两个通道414、416周围形成两个存储器通道元件组的偏置元件由图4B中的虚线框标识。具体地讲,在第一通道414周围形成第一通道元件组CEG1的偏置元件由标记为CEG1的虚线框标识,在第二存储器孔416周围形成第二通道元件组CEG2的偏置元件由标记为CEG2的虚线框标识。下面参考图4C,结合第一通道元件组CEG1的特定区域418和相关联的第一通道414更详细地描述偏置元件和用于形成元件和通道的示例性材料的更多细节。
为了举例说明的目的,在图4B中,在第一通道414和第二通道416周围形成的第一通道元件组CEG1和第二通道元件组CEG2都电连接到第i个位线BLi。在实际具体实施中,块可包括数百个或数千个位线。块的通道和相关联的通道元件组的布置可确定哪些通道和通道元件组电连接到哪些位线。在块的多个通道和通道元件组中,通道和相关联的通道元件组的某些组合彼此电连接到同一位线,而通道和相关联的通道元件组的某些其他组合彼此电连接到不同位线。
此外,给定的通道元件组可利用其相关联的通道和将相关联的通道与位线电连接的导电通孔电连接到给定的位线。例如,在图4B中,第一通道元件组CEG1利用第一通道414和将第一通道414与第i位线BLi电连接的导电通孔420电连接到第i位线BLi。第二通道元件组CEG2利用第二通道416和将第二通道416与第i位线BLi电连接的导电通孔422电连接到第i位线BLi。可以使用将位线与通道元件组电连接的其他方式。
块410还可包括基板424或设置在该基板上。绝缘膜426可形成在基板424上,并且源极线SL可形成或设置在叠堆412的最底层上。
此外,在图4B中总体示出的示例性配置中,每个通道414、416包括连接到源极线SL的源极端,以及连接到其相关联的导电通孔的漏极端。在图4B中,第一通道414包括连接到源极线SL的源极端428和连接到导电通孔420的漏极端430。相似地,第二通道416包括连接到源极线SL的源极端432和连接到导电通孔422的漏极端434。
此外,在至少一些示例性配置中,块410还可包括延伸穿过叠堆412的竖直互连件(例如,金属填充狭缝),所述竖直互连件将源极线SL连接到堆叠412上方的导电线,诸如上部区域408(图4A)中的金属层中的一个中的导电线。出于举例说明的目的,图4B总体上示出了延伸穿过叠堆412的两个互连件436、438。
此外,在图4B中的示例性配置中,为了举例说明的目的,通道元件组中的每一个包括两个SGS晶体管、两个源极侧虚设单元、十一个存储器单元、两个漏极侧虚设单元和两个SGD晶体管。因此,叠堆412的控制栅极层包括:两个SGS层,包括第一SGS层SGSL0和第二SGS层SGSL1;两个源极侧虚设字线层,包括第一源极侧虚设字线层DWLS0和第二源极侧虚设字线层DWLS1;从第一字线层WLL0延伸至第十一字线层WLL10的十一个字线层;两个漏极侧虚设字线层,包括第一漏极侧虚设字线层DWLD0和第二漏极侧虚设字线层DWLD1;以及两个SGD层,包括第一SGD层SGSL0和第二SGD层SGDL1。该叠堆还包括从第一DL0介电层DL19延伸至第二十介电层的二十个介电层,它们交替地设置在控制栅极层之间。
在图4B中的块410的示例性配置中,用于通道元件组的偏置元件的数量及其相应偏置元件类型以及对应的控制栅极层的数量是非限制性的,并且出于举例说明的目的,仅仅是示例性的。任何偏置元件类型的其他数量的偏置元件,或不包括某些偏置元件类型的偏置元件,或包括除图4B中总体上示出的那些的偏置元件类型的一个或多个偏置元件的其他配置也是可能的。
图4C是图4B的块410的区域418的近距离视图。形成偏置元件的材料在叠堆412的相应控制栅极层和相应通道的交汇处在不同层级形成。在块410的示例性配置中,如图4C的近距离视图所示,第一SGD晶体管440和第二SGD晶体管442设置在第一通道414的漏极端430下方并且在第一漏极侧虚设单元444和第二漏极侧虚设单元446以及第十一存储器单元MC10上方。
在物理上或结构上,通道包括在由侧壁(SW)限定的z方向上延伸的存储器孔。通道还包括设置在存储器孔中和/或侧壁上的一个或多个材料层,诸如通过使用原子层沉积作为例子。在一些示例性配置中,如相对于第一通道414所述,通道的材料层(可以被称为材料的列或柱)可包括电荷俘获层或膜448诸如氮化硅、隧道层450、多晶硅主体或通道452和介电芯454。此外,在一些示例性配置中,诸如图4C中总体上示出的配置,构成偏置元件中的每一个的材料可包括阻挡氧化物/块高k材料456、阻挡金属458和形成晶体管的控制栅极的导电金属460(例如,钨)。形成偏置元件的材料可设置在与相应的控制栅极层相同的层级或相同的平面中。其他配置可使用沿着侧壁(SW)沉积的材料和/或除参考图4C总体上示出和描述的那些之外的偏置元件。
图4D总体上示出了三维块480的示例性配置的电路示意图,该三维块可代表图4A的块400中的一个的至少一部分和/或具有如图4B、图4C描绘的物理构造。在图4D中,每个偏置元件被表示或描绘为晶体管。此外,存储器单元被标记为MC,SGD晶体管被标记为SGDT,并且SGS晶体管被标记为SGST。在示例性块480中,每个通道元件组(例如,CEG1)包括从50个单元,其中包括从第一存储器单元MC1延伸到第48存储器单元MC48的48个存储器单元,一个SGD晶体管SGDT和一个SGS晶体管SGST。其他通道元件组配置是可能的,包括那些包括一个或多个源极侧虚设单元、一个或多个漏极侧虚设单元、多于一个SGD晶体管和/或多于一个SGS晶体管的那些,如前所述。
根据图4B中的通道元件组配置,块480包括50个控制栅极层,包括从第一字线层WLL1延伸到第48字线层WLL48的48个字线层,一个SGD层SGDL和一个SGS层SGSL。如前所述,每个通道元件组中的第i个存储器单元MCi设置在控制栅极层中的第i个字线层WLLi中并配置为使其相应的控制栅极由该字线层偏置。例如,通道元件组CEG的第一存储器单元MC1设置在第一字线层WLL1中并配置为使其控制栅极由该第一字线层偏置,第二存储器单元MC2设置在第二字线层WLL2中并配置为使其控制栅极由该第二字线层偏置,并且通道元件组CEG的第48存储器单元MC48设置在第48字线层WLL48中并配置为使其控制栅极由该字线层偏置。此外,通道元件组的SGD晶体管设置在SGD层SGDL中并配置为使其相应的控制栅极由该SGD层SGDL偏置,并且通道元件组的SGS晶体管设置在SGS层SGSL中并配置为使其相应的控制栅极由该SGS层SGSL偏置。
如图4D所示,通道元件组CEG及其相关联的通道在块480中以x和y方向二维地布置,并且电连接到m个位线。在具体示例性配置中,通道元件组CEG及其相关联的通道根据通道布置被二维地布置,所述通道布置取决于连接到单个位线的P个通道元件组及其相关联的通道。换句话讲,每个位线BL被配置为电连接到P个通道元件组及其相关联的通道组成的唯一组,将相应的位线电压施加到该唯一组,和/或利用相应的位线(通道)电压将该唯一组偏置。
在图4D的示例性配置中,每个位线BL被配置为电连接到四个通道元件组(即,P=4)。因此,图4D总体上示出了电连接到第一通道元件组CEG1、第二通道元件组CEG2、第三通道元件组CEG3和第四通道元件组CEG4中的每一者的第一位线BL1。从第m位线BL2到BLm,其他两个位线中的每一者也电连接至相应的一组四个通道元件组及其相应的通道。对于各种其他配置,除四之外的用于P的数字可以是可能的。
此外,对于一些示例性实施方案,存储器系统100可将m个位线BL1至BLm分组成位线组。一个位线组(也被称为一个位线列)是存储器系统100中被共同识别或标识的一系列或多个位线。一个位线组中的位线可以属于同一块。在具体示例性实施方案中,一个位线组中的位线是相邻的位线。将位线分组成位线组或位线列可降低对存储器单元结构142的存储位置进行寻址的复杂性,因为可基于位线组而不是逐位线地识别页面上的列地址。在一个示例中,块可包括16,000个位线(即,m=16,000),并且每个十六位线BL被分为一个位线组或位线列。将16,000个位线BL分为十六个位线的组或列可能只会在页面上产生1,000个列地址,而不是16,000个列地址。
此外,在一些示例性配置中,可将一个SGD层分离或划分成彼此电隔离或断开的多个不同的漏极选择栅极(SGD)子层。例如,可将SGD层蚀刻以移除形成SGD层的金属的一部分,以便形成多个电隔离或断开的SGD子层。
同一SGD层的不同SGD子层可独立地和/或单独地被偏置和/或提供有多个SGD线电压中的不同的一个。继而,对于设置在同一SGD层中的给定多个SGD晶体管,同一SGD层中的每个SGD子层可被配置为将设置在其SGD子层中的那些SGD晶体管的控制栅极偏置,但不将设置在其他SGD子层中的SGD晶体管的控制栅极偏置。这样,多个SGD子层可被配置为独立地或单独地利用多个SGD线电压中的相应一个将其相应SGD子层中的不同SGD晶体管进行偏置。
此外,例如包括多个SGD层的配置,每个SGD层可包括多个SGD子层。每个SGD层中的SGD子层的数量可以相同。此外,不同SGD层中的SGD子层的某些组合可电耦接和/或提供有同一SGD线电压,使得同一通道元件组的SGD晶体管利用同一SGD线电压使其控制栅极偏置。将利用同一SGD线电压将SGD晶体管偏置的SGD子层形成同一SGD线的一部分。
如本文所用,SGD线是块的利用公共或同一SGD线电压将SGD晶体管的控制栅极偏置的导电结构。因此,如本文针对SGD层和SGD线所具体使用的,术语“线”和“层”不可互换使用。相反,SGD线是单个SGD子层,或一系列SGD子层,每个子层属于不同的SGD层。具体地讲,对于包括单个SGD层的3-D块配置,SGD层的每个SGD子层形成整个SGD线。对于包括多个SGD层的3-D块配置,每个SGD子层与来自一个或多个其他SGD层的一个或多个其他SGD子层形成SGD线的一部分。
此外,不同的SGD线被配置为独立地或单独地利用不同SGD线电压将块的不同集合或组的SGD晶体管偏置。SGD线被配置为将其耦接或电连接的那些SGD晶体管的控制栅极偏置,并且不将从其解耦或电断开的那些SGD晶体管的控制栅极偏置。因此,块的SGD晶体管SGDT被布置或形成为多个SGDT组。属于同一SGDT组的SGD晶体管耦接到同一SGD线并且被配置为由同一SGD线电压偏置。属于不同SGDT组的SGD晶体管耦接到不同的SGD线并且被配置为由不同的SGD线电压偏置。
此外,对于3-D块的至少一些示例性配置,SGD线的数量等于连接到同一位线的P个通道元件组和相关联通道的数量。例如,参考图4D,块480包括对应于连接到单个位线的四个通道元件组的四个SGD线,包括第一SGD线SGD1、第二SGD线SGD2、第三SGD线SGD3和第四SGD线SGD4。换句话讲,SGD层SGDL包括四个SGD线,即SGD1、SGD2、SGD3和SGD4。
此外,通道元件组可被布置为使得对于连接到同一位线的给定一个通道元件组集合,该集合中的每个通道元件组使其SGD晶体管SGDT耦接到SGD线中的不同的一个。例如,在图4D的块480中,连接到第一位线BL1的四个通道元件组CEG1、CEG2、CEG3、CEG4的集合使其相应的SGD晶体管分别连接到SGD线SGD1、SGD2、SGD3、SGD4中的不同的一个。具体地讲,第一通道元件组CEG1包括SGD晶体管SGDT1,该SGD晶体管耦接到第一SGD线SGD1并配置为使其控制栅极由该第一SGD线偏置,第二通道元件组CEG2包括SGD晶体管SGDT2,该SGD晶体管耦接到第二SGD线SGD2并配置为使其控制栅极由该第二SGD线偏置,第三通道元件组CEG3包括SGD晶体管SGDT3,该SGD晶体管耦接到第三SGD线SGD3并配置为使其控制栅极由该第三SGD线偏置,并且第四通道元件组CEG4包括SGD晶体管SGDT4,该SGD晶体管耦接到第四SGD线SGD4并配置为使其控制栅极由该第四SGD线偏置。
基于不同的SGD线,可以跨m个字线将3-D块布置、组织或划分为子块。如本文所用,子块是块的一部分,该部分具有通道元件组,其中SGD晶体管被配置为由同一SGD线偏置和/或利用同一SGD线电压偏置。子块可(诸如,在x方向上)横跨块的m个字线。此外,具有被配置为由不同SGD线偏置和/或利用不同SGD线电压偏置的SGD晶体管的通道元件组属于不同子块。
块的子块的数量可以等于SGD线的数量。例如,图4D的示例性块480包括等于SGD线的数量的四个子块(SB),包括第一子块SB1、第二子块SB2、第三子块SB3和第四子块SB4。第一子块SB1包括具有耦接到第一SGD线SGD1并配置为利用第一SGD线电压偏置的SGD晶体管SGD1的那些通道元件组,第二子块SB2包括具有耦接到第二SGD线并配置为利用第二SGD线电压偏置的SGD单元SGD2的那些通道元件组,第三子块SB3包括具有耦接到第三SGD线并配置为利用第三SGD线电压偏置的SGD单元SGD3的那些通道元件组,并且第四子块SB4包括具有耦接到第四SGD线并配置为利用第四SGD线电压偏置的SGD单元SGD4的那些通道元件组。
此外,存储器单元块(即,属于同一块的存储器单元)可在子块级别上或在子块级别和字线级别两者上被布置、组织、分离和/或标记。属于同一子块的多个存储器单元MC被称为存储器单元子块。换句话讲,存储器单元子块是具有耦接到同一SGD线和/或配置为利用同一SGD线电压偏置的SGD单元的通道元件组的存储器单元。
此外,属于同一子块的多个存储器单元以及还设置在同一字线层中和/或配置为使其控制栅极由同一字线和/或利用同一字线电压偏置的多个存储器单元称为字线单元组或存储器单元串。换句话讲,存储器单元的字线单元组(或串)是耦接到同一字线层的多个或一系列存储器单元,以及属于配置为利用同一SGD线电压偏置的通道元件组的多个或一系列存储器单元。
单个字线层可包括多个字线单元组,使得设置在单个字线层中的存储器单元被组织、布置或设置为多个字线单元组(或串)。耦接到同一字线层但属于具有耦接到不同SGD线的SGD晶体管的通道元件组的存储器单元属于不同的字线单元组。在具体示例性配置中,耦接到单个字线层的字线单元组的数量等于块的SGD线的数量。此外,单个字线单元组的存储器单元的数量可等于m个位线即BL1至BLm的数量,使得字线单元组的每个存储器单元电连接到m个位线即BL1至BLm中的不同的一个。
此外,块的存储器单元或存储器单元结构142的存储器单元通常被配置为将数据存储为位或二进制数字,其中每一位具有逻辑0或逻辑1二进制值。单个存储器单元可被配置为存储单个位或多个位。单个存储器单元存储的一个位或多个位称为数据值。换句话讲,数据值是单个存储器单元存储的n位二进制值,其中n是该二进制值的位数,并且其中数字n为一或超过一。单个存储器单元可以存储的可能数据值的数量取决于它被配置为存储的n个位。具体地讲,单个存储器单元可存储的可能数据值的数量为2n。
存储器单元可称为单级单元或多级单元,具体取决于它们被配置为存储的位的数量。称为SLC单元(或仅称SLC)的单级单元是被配置为存储单个位数据或一个位数据的存储器单元。称为MLC单元(或仅称MLC)的多级单元是被配置为存储多个(即,两个或更多个)位数据的存储器单元。MLC单元可存储的位数包括2、3或4,但可能存在存储多于4位的MLC单元。
通常,存储器单元的某些集合被配置为存储相同数量的位。例如,属于同一字线单元组、属于同一块或属于同一存储器单元结构142的存储器单元被配置为存储相同数量的位。在这种情况下,给定集合的存储器单元(例如,同一字线单元组、同一块、同一存储器单元结构等的存储器单元)基于每单元位数来存储数据。给定集合的每个存储器单元为存储相同数量的每单元位。
此外,存储器单元结构142(包括存储器单元结构142的块和字线单元组)可将数据存储为页面。在本文中,页面是存储器单元的单个字线单元组存储的单个数据单元。单个字线单元组存储的页面的数量取决于该单个字线单元组的存储器单元被配置为存储的每单元位数。例如,SLC单元的字线单元组被配置为存储单个页面或一个页面的数据;被配置为存储每单元两位的MLC单元的字线单元组被配置为存储两个页面的数据;并且被配置为存储每单元三位的MLC单元的字线单元组被配置为存储三个页面的数据。
此外,存储器单元结构142可根据一个或多个存储方案来存储数据。如本文所用,存储方案是包括预定义的一组动作和存储器系统实施以存储数据的预定义的一组参数的总体计划。用于特定集合的存储器单元的给定存储方案可识别或限定该特定集合的存储器单元被配置为存储的每单元位数。存储器系统的部件(包括给定存储器管芯上的电路部件)被配置为根据给定存储方案对该特定集合执行存储器操作,以便将数据编程到该特定集合的存储器单元中和/或从该特定集合的存储器单元中读取数据。
不同存储器技术的存储器单元可根据不同存储方案来存储数据。此外,同一存储器技术的存储器单元可根据不同存储方案来存储数据。例如,具有同一存储器技术但位于不同存储器系统中,或在同一存储器系统中但在不同存储器管芯中,或在同一存储器管芯的不同块或平面中,或甚至同一块的不同字线层或不同字线单元组中的存储器单元可至少相对于不同存储器单元被配置为存储的每单元位数来存储数据。
至少对于NAND存储器技术,NAND存储器单元可被配置为根据多个不同存储方案中的一个来存储数据,其中每个存储方案与不同的每单元位数相关联或识别不同的每单元位数。在至少一些示例性配置中,一些NAND存储器单元可根据一个存储方案存储数据,而其他NAND存储器单元根据不同的存储方案存储数据。因此,位于不同存储器系统中,或在同一存储器系统中但在不同的管芯、平面、块、字线层或字线单元组中的两个不同的NAND存储器单元集合可根据不同的存储方案来存储不同的每单元位数。为了举例说明,一个NAND存储器单元集合可被配置为SLC单元,并且另一个NAND存储器单元集合可被配置为MLC单元。
此外,同一存储器单元(或同一存储器单元集合)可被配置为根据不同的存储方案在不同时间存储不同的每单元位数。为了举例说明,在一个示例中,可将存储器单元配置为在一个时间点为SLC单元,然后将其重新配置为在稍后的时间点为MLC单元。又如,可将存储器单元配置为在一个时间点为MLC单元,然后将其重新配置为在稍后的时间点为SLC单元。又如,存储单元可被配置为在一个时间点为存储第一数量的每单元位的MLC单元,然后被重新配置为在稍后的时间点存储第二数量的每单元位的MLC单元,其中第一数量和第二数量彼此不同,其中第一数量小于或大于第二数量。
此外,存储器单元通过将相关联的存储参数(另选地或换句话讲称为特性、属性或特征)设置为某个水平、值、量值或状态来存储数据。相关联的参数是可调节的或可变的,并且可通过在某些存储器操作期间并根据某些存储方案在某些时间将耦接到存储单元的控制线以一定水平偏置来控制。在限定一组数据值的一个存储方案内,存储器单元可以通过将其存储参数设置为某个水平、值、量值或状态,或者在水平、值、量值或状态的预定范围内,来以数据值中的某个值存储数据。存储器单元处于或设置的水平、值、量值或状态对应于存储器单元正在存储的集合的数据值。此外,存储器单元可被配置为存储不同的值,或将正在存储的数据的数据值从一个数据值更改为另一个数据值,具体是通过将存储参数更改或调节为不同的水平、值、量值或状态。
存储器单元存储数据所需的存储参数取决于存储器技术,并且可以在不同的存储器技术之间变化。对于NAND技术,存储参数为阈值电压。至少相对于NAND存储器单元,存储器单元的阈值电压是施加到存储器单元的控制栅极的电压,在该电压下存储器单元变为导电。阈值电压的水平(或者称为值或量值)取决于存储器单元正在存储或捕获的电荷的量或与该量成比例。存储器单元正在存储的电荷越多,其阈值电压就越高,并且存储器单元正在存储的电荷越少,其阈值电压就越低。因此,通过将存储器单元的阈值电压设定为特定水平来设定存储器单元正在存储的数据值,并且通过将阈值电压改变为不同的水平或在不同的水平范围内来调节或改变数据值。
此外,对于NAND技术,存储器单元通过配置在各存储器状态中来存储数据。如本文所用,存储器状态是标识存储器单元正在存储、可存储或预期将存储的数据的数据值的标识符。存储方案识别或定义可用来配置存储器单元的相关联的多个或一组存储器状态。每个存储器状态标识由存储方案识别或定义的多个数据值中的一个数据值,对应于该数据值和/或与该数据值相关联。因此,被配置为给定存储器状态的存储器单元正在存储对应于该给定存储器状态的数据值。存储器单元可通过被配置成不同的存储器状态来存储不同的数据值。
对于给定的存储方案,存储器状态包括擦除状态以及一个或多个编程状态。擦除状态是当存储器单元在被擦除时配置的存储器状态。对于至少一些示例性配置,擦除状态是存储器单元集合中的全部存储器在用以对该集合中的至少一些存储器单元进行编程的编程操作开始时所述的存储器状态。编程状态是存储器单元在经受编程操作时所处的存储器状态。在给定时间点,存储器单元可处于擦除状态或处于编程状态中的一个。
此外,对于给定的存储方案,每个存储器状态具有相关联的阈值电压水平范围,对应于该范围,或与该范围相关联,其中每个范围由上限阈值电压水平和下限阈值电压水平界定。换句话讲,给定的存储方案可定义多个不重叠的阈值电压范围,其中每个范围与由给定存储方案定义或识别的多个存储器状态中的相应一个相关联或对应。继而,每个范围具有数据值中的相应一个,对应于该相应一个,或与该相应一个相关联。这样,存储方案在阈值电压范围、存储器状态和数据值之间建立了一一对应关系。根据该一一对应关系来对存储器单元进行编程和读取。即,配置有在给定阈值电压范围内的阈值电压水平的存储器单元被配置为与该给定阈值电压范围相关联的存储器状态,继而存储具有与该给定阈值电压范围和对应存储器状态相关联的数据值的数据。
对于具体实施方案,擦除状态与最低阈值电压范围相关联。编程状态与从与擦除状态相关联的范围起连续或顺序地更高的阈值电压范围相关联。
此外,作为非限制性示例,存储方案可以各种方式中的任何一种来标记或命名存储器状态,包括以字母、数字或字母数字方式。在具体示例性配置中,擦除状态被称为擦除状态,并且通过将字母表中的排序较靠后的字母或较大的数字与较高阈值电压范围相关联,来利用字母、数字或它们的组合对编程状态进行命名。例如,存储器状态C与比存储器状态A高的阈值电压范围相关联,并且存储器状态8与比存储器状态1高的阈值电压范围相关联。各种标记或命名存储器状态的方法是可能的。
此外,存储器状态相对于彼此可被称为较高存储器状态和较低存储器状态。第一存储器状态是比第二存储器状态更高的存储器状态,其中第一存储器状态与比与第二存储器状态相关联的阈值电压范围更高的阈值电压范围相关联。此外,第一存储器状态是比第二存储器状态更低的存储器状态,其中第一存储器状态与比与第二存储器状态相关联的阈值电压范围更低的阈值电压范围相关联。
此外,数据值与存储器状态和/或阈值电压范围对应的方式可以变化,并且在具体的实施方案中,数据值对应于或分配给存储器状态和/或阈值电压范围的方式可取决于特定码方案,诸如格雷码方案。
在具体实施中,编程到相同存储器状态中的存储器单元集合可具有作为编程的结果的相关联阈值电压集合。阈值电压可被表示为阈值电压概率分布,或仅被表示为根据阈值电压的集合中存储器单元的数量的阈值分布。
给定存储方案可具有模型、参考、理想或目标阈值电压分布,该阈值电压分布可以是例如针对由给定存储方案限定的存储器状态和相关联阈值电压范围中的每一者的连续概率分布的形式,诸如高斯分布。模型阈值电压分布可表示用于被编程为具有相同存储器状态的存储器单元集合的理想阈值电压分布的模型。模型阈值电压分布的下尾和上尾可与与每个模型阈值电压分布相关联的范围的上限阈值电压电平和下限阈值电压电平一致或对应。
重新参考图2B,存储器管芯104还可包括读取/写入电路144,其包括多个或p个感测块(也称为感测模块或感测电路)146。如下文进一步详细描述的,感测块146被配置为并行地参与从字线单元组存储器单元读取数据或将数据写入到该字线单元组存储器单元中。
存储器管芯104还可包括行地址解码器(或仅行解码器)148和列地址解码器(或仅列解码器)150。行解码器148(其也可称为字线解码器,x解码器或x线解码器)可对行地址(也称为字线地址或x地址)进行解码,并且在从存储器单元结构142读取数据或将数据编程/写入到该存储器单元结构中时,选择与解码的行地址对应和/或由解码的行地址标识的存储器单元结构142中的特定字线。列解码器150(其也可称为位线解码器,y解码器或y线解码器)可对列地址(也称为位线地址或y地址)进行解码,并且在从存储器单元结构142读取数据或将数据编程到该存储器单元结构中时,选择与列地址对应和/或由列地址标识的存储器单元结构142中的特定字线或位线组。
此外,非易失性存储器管芯104可包括外围电路152。外围电路152可包括控制逻辑电路(也称为控制逻辑、片上控制器或管芯上控制器)154,至少在一些示例性实施方案中,该控制逻辑电路可被实现为被配置为控制片上存储器操作以及将状态信息发送到控制器102的状态机。外围电路152还可包括片上地址解码器156,该片上地址解码器提供由控制器102和/或主机使用的寻址与由行和列解码器148、150使用的寻址之间的地址接口。此外,外围电路152可包括易失性存储器158。易失性存储器158的示例性配置可包括锁存器,但是其他配置也是可能的。
此外,外围电路152可包括功率控制电路160,该功率控制电路被配置为生成控制线路电压(包括电压脉冲)并将其提供给存储器单元结构142的控制线。控制线电压包括提供给控制栅极层的控制栅极线电压、提供给位线的位线电压,以及提供给供给管线的供电电压。控制栅极线电压包括提供给字线的字线电压、提供给SGD线的漏极选择栅极线电压(SGD线电压),以及提供给SGS线的源极选择栅极线电压(SGS线电压)。功率控制电路160还可被配置为生成和/或提供除控制线电压之外的电压,包括可提供给存储器单元结构142、读取/写入电路144、感测块146和/或存储器管芯104上的其他电路部件的其他电压。
功率控制电路160可包括各种电路拓扑结构或电路配置中的任一种,以生成和/或提供适当水平下的电压,从而执行存储器操作(包括读取、编程/写入、感测和擦除操作),诸如驱动器电路、电流源、电荷泵、参考电压生成器、调节器和脉冲生成电路,或者它们的各种组合中的任一种。用于产生电压的其他类型的电路可为可能的。此外,功率控制电路160可与控制逻辑电路154、读取/写入电路144和/或感测块146通信和/或由其控制,以便以适当的电平并且在适当的时间提供电压以执行存储操作。
当控制器102确定将数据写入(或编程)到存储器管芯104中时,ECC模块124首先在奇偶校验位生成过程(也称为编码过程)期间为数据生成奇偶校验位。奇偶校验位是ECC模块124在读取操作期间使用的位,以确定从存储器管芯104读取的位是否具有正确的位值,并使用奇偶校验位来校正具有不正确位值的位。在生成奇偶校验位时,ECC模块124将奇偶校验位附加到数据以形成码字,并且将码字发送至存储器管芯104以供储存。在一些实施方案中,ECC模块124可以任何合适的顺序来布置奇偶校验以形成码字。在一些实施方案中,ECC模块124可省略数据以形成码字。
图5总体上示出了可涉及编程(或写入)操作的奇偶校验位生成过程的存储器系统100的部件的框图。这些部件可包括描述符模块502、奇偶校验位生成器模块504和码模块506。对于具体示例性配置,部件可以是控制器102的ECC模块124的部件,但在其他示例性配置中,这些部件中的一些或全部可被视为与ECC模块124分开和/或与控制器102分开的部件。
通常,存储器系统100可将数据存储在存储器管芯104中作为码字(也称为ECC页或闪存存储器单元,如前所述)。每个码字可包括信息数据(位)和奇偶校验数据(位)。信息位可包括有效载荷数据(位),其包括主机想要写入存储器管芯104并从该存储器管芯读取的数据。信息位还可包括标头数据(位),其可包括关于有效载荷数据的各种信息,诸如逻辑地址信息、写入源、数据写入的时间(时间戳)、标志字段、重新版本号和扰码种子作为非限制性示例。奇偶校验位生成器模块504可在读取操作期间生成奇偶校验位,以便在读取操作的纠错过程期间检测并纠正数据的标头和有效载荷部分的错误,以从存储器管芯104读取数据。
在奇偶校验位生成之前,前端模块108可以未编码或原始格式加载要写入RAM 116的未编码数据部分508中的存储器管芯104中的信息位。为了发起奇偶校验位生成过程,描述符模块502可被配置为从描述符生成器模块136接收描述符(图2A)。描述符可识别它是写入操作的描述符。此外,描述符可识别其中未编码数据被存储在RAM 116的未编码数据部分508中的缓冲区地址。描述符还可识别要存储的数据的存储器管芯104的物理地址。
在接收描述符之后,描述符模块502可向奇偶校验位生成器模块504提供将数据存储在存储器管芯104中的物理地址。奇偶校验位生成器模块504可检索编码数据部分508中的信息位并生成与信息位相关联的奇偶校验位。
奇偶校验位生成器模块504可被配置为使用存储在码模块506中的纠错码来生成奇偶校验位。在具体示例性配置中,码模块506包括存储一个或多个纠错码的存储器。存储器可以是独立存储器部件,或者可以是非易失性存储器系统100内和/或非易失性存储器系统100外部的任何或多个存储位置的一部分(例如,RAM 116的一部分或存储器管芯104的一部分)。在一些实施方案中,所述一个或多个纠错码可被存储在存储器管芯104中,并且控制器102可被配置为将所述一个或多个纠错码的副本加载到码模块506中,诸如在初始化期间和/或在读取数据和/或将数据写入特定管芯104时。
通常,纠错码是确定给定的一组信息位和/或整个码字的奇偶校验位(包括奇偶校验位的位值)的数据集。对于至少一些示例性配置,纠错码具有用于描述码的奇偶校验矩阵的对应生成器矩阵。在一些示例性配置中,存储在码模块506中的纠错码是具有对应LDPC矩阵(也称为LDPC奇偶校验矩阵或仅奇偶校验矩阵H)的低密度奇偶校验(LDPC)纠错码。奇偶校验位生成器模块502可被配置为生成码字的奇偶校验位,使得满足以下矩阵公式:
Hω=0, (1)
其中H为奇偶校验矩阵,并且ω为包括信息位和奇偶校验位的码字。除了生成奇偶校验位之外,奇偶校验位生成器模块504还可生成码字ω,诸如通过将奇偶校验位附加到原始数据(即,信息位和/或标头位)。附加地或另选地,奇偶校验位生成器模块504可格式化码字ω,使得码字ω的前J位等于信息位的信息位序列β,并且码字ω的后K位等于奇偶校验位的奇偶校验位序列δ。然后,奇偶校验位生成器模块504可生成奇偶校验位,使得满足以下公式:
在一些LDPC编码方案中,奇偶校验位生成器模块504可通过利用根据LDPC的奇偶校验矩阵H的稀疏性质来生成奇偶校验位序列δ。
图6总体上示出了奇偶校验矩阵H的通用布局的示意图。奇偶校验矩阵H可包括第一子矩阵H信息和第二子矩阵H奇偶校验。第一子矩阵H信息可包括J个列,该数量J等于信息位序列β中的J个位的数量。第二子矩阵H奇偶校验可包括K个列,该数量K等于奇偶校验位序列δ中的K个位的数量。另外,如图6大致所示,第一子矩阵H信息和第二子矩阵H奇偶校验中的每者包括K个行,该数量K等于奇偶校验位序列δ中的K个位的数量。
附加地或另选地,第一子矩阵H信息和第二子矩阵H奇偶校验相对于彼此设置,使得第一子矩阵H信息的最后一列与第二子矩阵H奇偶校验的第一列相邻。此外,这些行的顺序在第一子矩阵H信息和第二子矩阵H奇偶校验之间是公共的。换句话讲,第一子矩阵H信息的第一行与第二子矩阵H奇偶校验的第一行形成公共行,以此类推。此外,第一子矩阵H信息和第二子矩阵H奇偶校验的元素(第一子矩阵H信息的K乘J元素以及第二子矩阵H奇偶校验的K乘K元素)可各自包括二进制“0”和“1”值。0值和1值的构成可根据各种编码方案,诸如LDPC或Quasi-Cyclic(QC)-LDPC码,作为示例。
奇偶校验矩阵H可具有对应的Tanner图。图7总体上示出了与图6的奇偶校验矩阵H对应的部分完成的Tanner图的示意图。通常,Tanner图可包括变量节点(或仅变量)、校验节点(或仅校验)以及连接校验节点和变量节点的边缘。变量节点的数量可等于奇偶校验矩阵H中的列的数量和码字ω中的位的数量。因此,Tanner图可包括与信息位序列β中的J个位和奇偶校验位序列δ的K个奇偶校验位对应的J+K个变量节点v(1)至v(J+K)。校验节点的数量可等于奇偶校验矩阵H中的行的数量和奇偶校验位序列δ中的奇偶校验位的数量。因此,可存在与奇偶校验位序列δ中的K个奇偶校验位对应的K个校验节点c(1)至c(K)。如果奇偶校验矩阵H中对应于该变量节点和该校验节点的元素具有1值而不是0值,则可经由边缘或连接部将特定变量节点连接到特定校验节点。例如,图7示出了连接第一变量节点v(1)和第一校验节点c(1)的边缘。
在其他示例性配置中,存储在码模块506中的纠错码是具有对应生成矩阵G的数据集。与奇偶校验矩阵不同,生成矩阵G可以不是低密度矩阵或者被认为是稀疏的。对于此类示例性配置,奇偶校验位生成器模块504可根据以下数学式生成码字ω:
ω=βG, (3)
其中G是生成矩阵,β是信息位,并且ω是码字。类似于奇偶校验矩阵H,生成矩阵G可具有其自身相关联的Tanner图,该Tanner图包括变量节点、校验节点和边缘。
重新参考图5,在从码模块506检索到纠错码时,奇偶校验位生成器模块504可使用纠错码来针对存储在RAM 116的未编码数据部分508中的未编码信息位序列β诸如根据上述公式(1)、(2)和/或(3)生成奇偶校验位δ。奇偶校验位生成器模块504可将信息位β与相关联的奇偶校验位δ组合以形成码字ω。附加地或另选地,奇偶校验位生成器模块504可将码字ω存储在RAM 116的编码数据部分510中。
为了对存储器管芯104中的码字ω进行编程,定序器模块126检索码字ω并经由存储器接口130将码字ω发送到存储器管芯104。作为响应,接收码字ω的存储器管芯104上的读/写电路144(图2B)可执行一系列程序动作,以将码字ω存储在由在描述符模块502中识别到的存储器地址信息标识并且/或者与该存储器地址信息对应的存储器单元结构142中的存储位置中。
在一些示例性实施方案中,由奇偶校验位生成器模块504形成的码字ω的位的数量与要存储在存储器管芯104中的位的数量不同。用于这些实施方案的一个示例性方法是,奇偶校验位生成器模块504使用生成多个奇偶校验位δ的纠错码,所述多个奇偶校验位δ继而形成具有数量大于要存储在存储器管芯104中的位的数量的位的码字ω。图5的部件还包括删余模块512,该删余模块接收码字ω,并从码字ω中移除或丢弃一定数量的奇偶校验位δ以生成或形成修改或删余的码字ω'。在一些实施方案中,删余模块512可从码字ω中移除或丢弃一定数量的信息位以生成或形成修改或删余的码字ω'。将由删余模块512执行的从码字ω中移除或丢弃位的功能称为删余过程,并且将移除或丢弃的位称为删余位pb。在删余模块512生成删余码字ω'之后,定序器模块126然后经由存储器接口130将删余码字ω'发送到储器管芯104,如先前所描述的。
除图5中总体上示出的部件之外,ECC模块124还包括被配置为执行纠错和误码率计算的解码器模块。为了纠错,解码器模块被配置为检测和纠正从存储器管芯104读取的码字中的错误(具有不正确位值的位)。为了执行纠错,ECC模块124可包括两个子模块,包括位翻转(或硬)解码器子模块和消息传递(或软)解码器子模块。
位翻转解码器通过翻转读码字的位的位值(通过将0改变为1,或将1改变为0)来执行纠错,直到其确定码字不再具有错误。
消息传递解码器通过似然比或对数似然比(LLR)更新过程来执行纠错,该似然比或对数似然比更新过程包括:计算和更新第一组更新的LLR值,该第一组更新的LLR值指示位值是用于与校验节点相关的变量节点的逻辑1或逻辑0值的可靠性(或似然性或概率);以及计算和更新第二组更新的LLR值,该第二组更新的LLR值指示位值是用于与变量节点相关的校验节点的逻辑1或逻辑0值的可靠性(或似然性或概率)。消息传递解码器基于第一组LLR值来迭代地计算和更新第二组LLR值,并且基于第二组LLR值来迭代地计算和更新第一组LLR值。
通常,消息传递解码器具有比位翻转解码器更大的纠错能力。然而,位翻转解码器通常占用较少的空间(成本)(例如,其较小;针对相同目标性能,其所耗成本较小)并且消耗更少的功率(例如,更节省功率)。在一些示例性配置中,针对相同的性能,位翻转解码器使用的面积减少15倍并且消耗的功率减小11至15倍。
当删余码字ω'被存储在存储器管芯104中并随后被读取时,作为纠错过程的一部分解码器模块根据读取的删余码字ω'重构原始码字ω。当使用位翻转解码器时,位翻转解码器通过将删余位pb添加回去来开始重构过程。在这样做时,位翻转解码器不知道删余位pb的正确位值,并因此将默认逻辑值(诸如逻辑0)分配给删余位pb。将具有默认逻辑值的位添加到读取的删余码字ω'可被称为填充。位翻转解码器执行填充,因为它无法将删余位pb标记为“擦除”,并因此无法将位标记为未知。通过将每个删余位pb设置为默认逻辑值,对于每个删余位pb而言,默认逻辑值正确的几率为50%。
在许多情况下,删余位pb的数量太大,因为将具有默认位值的删余位pb附加到读取的删余码字ω'将太多的错误引入到读码字中,即,针对位翻转解码器形成了具有过高BER的重构码字,尤其是在要满足某些吞吐量要求的情况下。
此外,在用于误码率计算的一些实施方案中,ECC模块124可计算校正子权重W,并且使用该校正子权重来估计用于读码字的BER。在对读码字进行编程之前删余读码字的情况下,以默认逻辑值填充具有删余位的读码字可能会在码字中引入太多的错误,使得通过填充的码字计算出的校正子权重W不是对BER的足够准确的估计。
本文所述的实施方案向纠错(解码)过程和/或BER估计过程添加了初始阶段。在该初始阶段中,ECC引擎124的位估计器模块执行删余位估计过程,该删余位估计过程包括估计用于要添加到读码字的删余位pb的位值。在位估计器模块执行删余位估计过程时,生成包括具有估计位值的删余位pb的重构码字,并且解码器模块使用位翻转模块或消息传递模块来对重构码字执行纠错过程。
图8示出了示例性删余位估计过程的流程图。在框1002处,位估计器模块接收读取的删余码字y。在框1004处,位估计器模块将删余位pb(各自具有默认逻辑值,例如,具有逻辑0的值)填充到读取的删余码字y以生成重构码字y'。在框1006处,位估计器模块生成用于重构码字y'的校正子向量校正子向量/>是用于所有校验(例如,奇偶校验)的校正子值的向量。在数学上,根据下式确定用于重构码字y'的校正子向量/>
其中H是用于生成码字的奇偶校验位的奇偶校验矩阵,y'是重构码字的当前位值的向量,并且其中公式(4)中表示的点积数学计算是modulo2计算。
在框1008处,位估计器模块针对每个删余位pb计算未满足的校验的数量。对于给定的第i个删余位pbi,位计算器可通过确定与第i个删余位pbi相关的校验的校正子值sk的总和来计算未满足的校验ui的相关联的第i个数量。在数学上,未满足的校验ui的数量可根据下式来确定:
其中N(bi)表示与第i个删余位pbi的变量相关的所有校验索引。
在框1010处,位估计器基于未满足的校验的数量和变量(例如,位)度dv来估计每个删余位pb的位值。变量的变量度是变量与其相关的校验节点的数量。对于至少一些示例性实施方案,位估计器可通过诸如根据下式得到的多数投票来确定用于第i个删余位pbi的位值:
其中是针对第i个删余位pbi估计的位值。对于其中ui=dv/2的情况,是否将/>设置为‘0’、‘1’或任何其他合适的启发式方法是任意的。在一些实施方案中,对于填充有‘0’的删余位pb,式(6)为真。
图9示出了实现图8的示例性删余位估计过程的示例性纠错操作。在框1102处,位估计器可执行图8的位估计过程。在框1104处,ECC模块124的解码器可基于其被删余的状态和/或其相应的变量度来识别删余位pb的可靠性(诸如LLR量值)。在一些实施方案中,ECC模块124的解码器可基于可由该码字或其他码字估计的其他度量(诸如,该码字的BER)来识别删余位pb的可靠性(诸如,LLR量值)。在框1106处,解码器可执行纠错过程以纠正在框1102处通过删余位估计过程生成的重构码字中的错误位。在框1106处执行纠错过程的解码器可以是执行位翻转的位翻转(硬)解码器或执行消息传递过程的消息传递(软)解码器,以便纠正错误位。
利用删余位估计过程执行的纠错过程为解码器提供了支持任何尺寸存储器(例如,NAND页)并且继而使用所有可用奇偶校验位的灵活性。与其中解码器仅填充读码字的实施方案相比,对于其中位翻转解码器执行纠错的实施方案,删余位估计过程减少了添加到重构码字的错误的数量。这使得位翻转解码器在原本无法对删余码字执行纠错的情况下能够对删余码字执行纠错,并且/或者使得位翻转解码器能够更快且以较小功率对删余码字执行纠错。最终,除增大ECC模块的纠错能力之外,将删余位估计过程作为初始阶段添加到编码还增大吞吐量并降低ECC模块124的功率,从而允许可靠性更高、产量增大和写入更快。
在一些实施方案中,即使第一纠错码可用于生成适合用于码字的可用存储空间的第一码字,也可通过使用生成大于可用存储空间的第二码字的第二纠错码,然后从该第二码字中删余奇偶校验位以将其尺寸减小到适合可用存储空间的尺寸,来改善解码性能,而无需增大未使用的奇偶校验计数。
图10总体上示出了实现图10的示例性删余位估计过程的示例性误码率估计过程的流程图。在框1402处,校正子权重计算模块计算初始重构码字(诸如在图8的框1004处已填充的码字)的初始校正子权重W。校正子权重W是由上文公式(4)确定的校正子向量的校正子值的总和。在框1404处,删余位估计器模块执行图8的删余位估计过程以确定用于删余位的估计位值,并且继而生成修改的重构码字。在框1406处,校正子权重计算模块重新计算或更新在框1404处生成的用于修改的重构码字的校正子权重W。如果给定的第i个删余位pbi的位值改变其逻辑值(即,框1404处确定的估计值不同于默认值),则校正子权重计算模块可更新通过(dvi–2ui)得到的校正子权重W,其中,dvi是与给定的第i个删余位pbi相关联的第i个变量vi的变量度,并且ui是与第i个变量vi相关的未满足校验的数量。
与在框1402处计算的校正子权重相比,在框1406处计算的新校正子权重W是用于BER的更准确的指示或估计。因此,ECC引擎通过执行删余位估计过程可将校正子权重计算用作估计BER的足够准确的方式。
为了实现删余位估计过程,最初可使用具有LDPC结构的纠错码来生成从存储器管芯104读取的码字,该LDPC结构具有高提升因子(例如,满足以下条件的高提升因子:通常可用于支持高并行性解码器/编码器,通常会导致码字尺寸的粒度变粗糙,这继而导致NAND中的可用页尺寸与支持的码字尺寸之间出现更大的不匹配)。附加地或另选地,LDPC码矩阵可被设计成使得删余位pb具有相对较高的程度(任选的)。此外,用于执行纠错和/或BER估计的解码器可被设计成具有相对较高的并行性。这些步骤可以是离线设计阶段或时期的一部分。
附加地或另选地,可在读取操作期间,诸如响应于主机读取命令,执行删余位估计过程,其中从存储器管芯104读取码字,并将该码字加载到RAM 116中,以用于由ECC模块124执行的纠错。为了读取码字,首先必须将码字编程到存储器管芯中。在编程期间,可生成初始码字,并且该初始码字可具有作为删余过程的一部分丢弃或移除的奇偶校验位,以便生成删余码字。至少在一些示例性实施方案中,该删余码字是存储在存储器管芯104中并随后被检索的删余码字,其经历删余位估计过程。在一些示例性实施方案中,存储器管芯可具有用于存储码字的预定尺寸。编码期间使用的纠错码可生成太多奇偶校验位,使得生成的初始码字超出预定尺寸。然后,删余模块可删余一定数量的奇偶校验位,以便减小初始码字的尺寸并创建具有大于或等于预定尺寸的尺寸的删余码字。
在一些实施方案中,用于删余位估计的方法包括接收删余码字。所述方法还包括使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字。所述方法还包括生成用于所述重构码字的校正子向量。所述方法还包括使用所述校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量。所述方法还包括至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
在一些实施方案中,所述默认逻辑值为0。在一些实施方案中,生成所述校正子向量包括对奇偶校验矩阵和当前位值向量执行点积运算。在一些实施方案中,所述奇偶校验矩阵与所述重构码字的奇偶校验位相关联。在一些实施方案中,所述当前位值向量包括所述重构码字的当前位值的向量。在一些实施方案中,针对所述至少一个删余位确定未满足的奇偶校验的所述数量包括针对所述至少一个删余位计算与所述至少一个删余位相关联的所述校正子向量的校正子值的总和。在一些实施方案中,确定用于所述至少一个删余位的位值包括使用与所述至少一个删余位相关联的变量度。在一些实施方案中,确定用于所述至少一个删余位的位值包括使用与所述至少一个删余位相关联的未满足的奇偶校验的数量和与所述至少一个删余位相关联的所述变量度来确定多数投票。
在一些实施方案中,存储器系统包括非易失性存储器和控制器。所述非易失性存储器包括至少一个存储器管芯,并且所述控制器与所述至少一个存储器管芯通信。所述控制器被配置为:接收删余码字;使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字;生成用于所述重构码字的校正子向量;使用所述校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量;以及至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
在一些实施方案中,所述默认逻辑值为0。在一些实施方案中,所述控制器被进一步配置为通过对奇偶校验矩阵和当前位值向量执行点积运算来生成所述校正子向量。在一些实施方案中,所述奇偶校验矩阵与所述重构码字的奇偶校验位相关联。在一些实施方案中,所述当前位值向量包括所述重构码字的当前位值的向量。在一些实施方案中,所述控制器被进一步配置为通过针对所述至少一个删余位计算与所述至少一个删余位相关联的所述校正子向量的校正子值的总和来针对所述至少一个删余位确定未满足的奇偶校验的所述数量。在一些实施方案中,所述控制器被进一步配置为使用与所述至少一个删余位相关联的变量度来确定用于所述至少一个删余位的位值。在一些实施方案中,所述控制器被进一步配置为通过使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量和与所述至少一个删余位相关联的所述变量度确定多数投票来确定用于所述至少一个删余位的位值。
在一些实施方案中,用于执行删余位估计的系统包括与至少一个存储器管芯通信的控制器。所述控制器被配置为接收删余码字;使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字;通过对奇偶校验矩阵和当前位值向量执行点积运算来生成用于所述重构码字的校正子向量;使用所述校正子向量通过计算与所述至少一个删余位相关联的所述校正子向量的校正子值的总和来确定针对所述至少一个删余位的未满足的奇偶校验的数量;以及至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
在一些实施方案中,所述默认逻辑值为0。在一些实施方案中,所述奇偶校验矩阵与所述重构码字的奇偶校验位相关联。在一些实施方案中,所述当前位值向量包括所述重构码字的当前位值的向量。
在一些实施方案中,用于误码率估计的方法包括使用与初始重构码字相关联的第一校正子向量的校正子值来计算初始重构码字的初始校正子权重。所述方法还包括使用删余码字和具有默认逻辑值的至少一个删余位来生成修改的重构码字。所述方法还包括通过对奇偶校验矩阵和当前位值向量执行点积运算来生成用于所述修改的重构码字的第二校正子向量。所述方法还包括使用初始校正子权重和所述修改的重构码字来计算更新的校正子权重。所述方法还包括使用所述更新的校正子权重来估计用于读码字的误码率。
预期将前面的详细描述理解为本发明可以采用的选定形式的说明,而不是作为本发明的定义。预期只有以下权利要求(包括所有等同物)限定要求保护的本发明的范围。最后,应当指出的是,本文所述的任何优选实施方案的任何方面均可单独使用或彼此组合使用。
Claims (20)
1.一种用于低密度奇偶校验码长度调节中的删余位估计的方法,包括:
接收删余码字;
使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字;
生成用于所述重构码字的校正子向量;
使用所述校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量;以及
至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
2.根据权利要求1所述的方法,其中所述默认逻辑值为0。
3.根据权利要求1所述的方法,其中生成所述校正子向量包括对奇偶校验矩阵和当前位值向量执行点积运算。
4.根据权利要求3所述的方法,其中所述奇偶校验矩阵与所述重构码字的奇偶校验位相关联。
5.根据权利要求3所述的方法,其中所述当前位值向量包括所述重构码字的当前位值的向量。
6.根据权利要求1所述的方法,其中针对所述至少一个删余位确定未满足的奇偶校验的所述数量包括针对所述至少一个删余位计算与所述至少一个删余位相关联的所述校正子向量的校正子值的总和。
7.根据权利要求1所述的方法,其中确定用于所述至少一个删余位的所述位值包括使用与所述至少一个删余位相关联的变量度。
8.根据权利要求7所述的方法,其中确定用于所述至少一个删余位的所述位值包括使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量和与所述至少一个删余位相关联的所述变量度来确定多数投票。
9.一种控制器,包括:
总线接口,所述总线接口被配置为接收删余码字;和
处理器,所述处理器被配置为:
使用所述删余码字和具有默认逻辑值的至少一个删余位来生成重构码字;
生成用于所述重构码字的校正子向量;
使用所述校正子向量来确定针对所述至少一个删余位的未满足的奇偶校验的数量;以及
至少使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量来确定用于所述至少一个删余位的位值。
10.根据权利要求9所述的控制器,其中所述默认逻辑值为0。
11.根据权利要求9所述的控制器,其中所述处理器被进一步配置为通过对奇偶校验矩阵和当前位值向量执行点积运算来生成所述校正子向量。
12.根据权利要求11所述的控制器,其中所述奇偶校验矩阵与所述重构码字的奇偶校验位相关联。
13.根据权利要求11所述的控制器,其中所述当前位值向量包括所述重构码字的当前位值的向量。
14.根据权利要求9所述的控制器,其中所述处理器被进一步配置为通过针对所述至少一个删余位计算与所述至少一个删余位相关联的所述校正子向量的校正子值的总和来针对所述至少一个删余位来确定未满足的奇偶校验的所述数量。
15.根据权利要求9所述的控制器,其中所述处理器被进一步配置为使用与所述至少一个删余位相关联的变量度来确定用于所述至少一个删余位的所述位值。
16.根据权利要求15所述的控制器,其中所述处理器被进一步配置为通过使用与所述至少一个删余位相关联的未满足的奇偶校验的所述数量和与所述至少一个删余位相关联的所述变量度确定多数投票来确定用于所述至少一个删余位的所述位值。
17.一种用于低密度奇偶校验码长度调节中的误码率估计的方法,包括:
使用与初始重构码字相关联的第一校正子向量的校正子值来计算初始重构码字的初始校正子权重;
使用删余码字和具有默认逻辑值的至少一个删余位来生成修改的重构码字;
通过对奇偶校验矩阵和当前位值向量执行点积运算来生成用于所述修改的重构码字的第二校正子向量;
使用所述初始校正子权重和所述修改的重构码字来计算更新的校正子权重;以及
使用所述更新的校正子权重来估计用于读码字的误码率。
18.根据权利要求17所述的方法,其中所述默认逻辑值为0。
19.根据权利要求17所述的方法,其中所述奇偶校验矩阵与所述修改的重构码字的奇偶校验位相关联。
20.根据权利要求17所述的方法,其中所述当前位值向量包括所述修改的重构码字的当前位值的向量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/357,522 | 2019-03-19 | ||
US16/357,522 US10979072B2 (en) | 2019-03-19 | 2019-03-19 | Punctured bit estimation and bit error rate estimation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111722956A CN111722956A (zh) | 2020-09-29 |
CN111722956B true CN111722956B (zh) | 2024-04-09 |
Family
ID=72334326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911272492.9A Active CN111722956B (zh) | 2019-03-19 | 2019-12-12 | Ldpc码长度调节 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10979072B2 (zh) |
KR (1) | KR102271215B1 (zh) |
CN (1) | CN111722956B (zh) |
DE (1) | DE102019133156A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210092391A (ko) * | 2020-01-16 | 2021-07-26 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치 |
US11068342B1 (en) * | 2020-06-01 | 2021-07-20 | Western Digital Technologies, Inc. | Redundancy data in integrated memory assembly |
US11455208B2 (en) | 2020-08-20 | 2022-09-27 | Western Digital Technologies, Inc. | Soft information for punctured bit estimation in a data storage device |
US11949429B2 (en) * | 2022-07-19 | 2024-04-02 | Macronix International Co., Ltd. | Memory device, error correction device and error correction method thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011010286A2 (en) * | 2009-07-21 | 2011-01-27 | Ramot At Tel Aviv University Ltd. | Compact decoding of punctured codes |
CN103165193A (zh) * | 2013-03-01 | 2013-06-19 | 中国空间技术研究院 | 一种探测修正存储器两位错误的低冗余加固方法及电路装置 |
CN103959656A (zh) * | 2011-10-14 | 2014-07-30 | 奥兰治 | 错误校正器编码和解码 |
CN104733051A (zh) * | 2013-12-19 | 2015-06-24 | 群联电子股份有限公司 | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 |
KR20160110788A (ko) * | 2015-03-12 | 2016-09-22 | 한밭대학교 산학협력단 | Nand 플래시 메모리의 qc-ldpc 코드 생성 방법 및 회로 |
CN110622425A (zh) * | 2017-05-12 | 2019-12-27 | 高通股份有限公司 | 构造具有用于速率兼容的qc-ldpc编码的行正交性的奇偶校验矩阵 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671852B1 (en) * | 2000-09-06 | 2003-12-30 | Motorola, Inc. | Syndrome assisted iterative decoder for turbo codes |
WO2013019560A2 (en) | 2011-07-29 | 2013-02-07 | Sandisk Technologies Inc. | Checksum using sums of permutation sub-matrices |
US9203435B2 (en) * | 2013-05-08 | 2015-12-01 | Broadcom Corporation | Multiple size and rate FEC code combination with minimum shortening and maximum combined code rate |
US9553613B2 (en) * | 2013-09-18 | 2017-01-24 | Samsung Electronics Co., Ltd. | Transmitter and puncturing method thereof |
US9176815B2 (en) * | 2013-11-28 | 2015-11-03 | Seagate Technology Llc | Flash channel with selective decoder likelihood dampening |
US9712187B2 (en) * | 2014-12-05 | 2017-07-18 | Samsung Electronics Co., Ltd. | SC-LDPC codes for wireless communication systems: framework and zigzag-window decoder |
US9787329B2 (en) * | 2015-10-15 | 2017-10-10 | Apple Inc. | Efficient coding with single-error correction and double-error detection capabilities |
US10432232B2 (en) * | 2016-03-04 | 2019-10-01 | Sandisk Technologies Llc | Multi-type parity bit generation for encoding and decoding |
KR102547369B1 (ko) * | 2016-05-18 | 2023-06-23 | 삼성전자주식회사 | 수신 장치 및 그의 디코딩 방법 |
US10277253B2 (en) * | 2016-12-21 | 2019-04-30 | PhazrIO Inc. | High performance data redundancy and fault tolerance |
-
2019
- 2019-03-19 US US16/357,522 patent/US10979072B2/en active Active
- 2019-12-05 DE DE102019133156.0A patent/DE102019133156A1/de active Pending
- 2019-12-12 CN CN201911272492.9A patent/CN111722956B/zh active Active
- 2019-12-16 KR KR1020190167738A patent/KR102271215B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011010286A2 (en) * | 2009-07-21 | 2011-01-27 | Ramot At Tel Aviv University Ltd. | Compact decoding of punctured codes |
CN103959656A (zh) * | 2011-10-14 | 2014-07-30 | 奥兰治 | 错误校正器编码和解码 |
CN103165193A (zh) * | 2013-03-01 | 2013-06-19 | 中国空间技术研究院 | 一种探测修正存储器两位错误的低冗余加固方法及电路装置 |
CN104733051A (zh) * | 2013-12-19 | 2015-06-24 | 群联电子股份有限公司 | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 |
KR20160110788A (ko) * | 2015-03-12 | 2016-09-22 | 한밭대학교 산학협력단 | Nand 플래시 메모리의 qc-ldpc 코드 생성 방법 및 회로 |
CN110622425A (zh) * | 2017-05-12 | 2019-12-27 | 高通股份有限公司 | 构造具有用于速率兼容的qc-ldpc编码的行正交性的奇偶校验矩阵 |
Also Published As
Publication number | Publication date |
---|---|
US20200304149A1 (en) | 2020-09-24 |
KR20200111610A (ko) | 2020-09-29 |
KR102271215B1 (ko) | 2021-06-29 |
DE102019133156A1 (de) | 2020-09-24 |
US10979072B2 (en) | 2021-04-13 |
CN111722956A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11244732B2 (en) | Single page read level tracking by bit error rate analysis | |
US10432232B2 (en) | Multi-type parity bit generation for encoding and decoding | |
US10691539B2 (en) | Grown defect detection and mitigation using ECC in memory systems | |
US10725860B2 (en) | Storage system and method for handling a burst of errors | |
CN111722956B (zh) | Ldpc码长度调节 | |
CN108153608B (zh) | 基于动态存储器错误模型估计的纠错码和读取调整 | |
US10896123B2 (en) | Enhancing the effectiveness of read scan performance and reliability for non-volatile memory | |
US10089177B2 (en) | Multi-stage decoder | |
US10403377B2 (en) | Non-volatile storage with adaptive redundancy | |
US10938421B2 (en) | Decoding optimization for channel mismatch | |
US10116333B2 (en) | Decoder with parallel decoding paths | |
US10110249B2 (en) | Column-layered message-passing LDPC decoder | |
US10452471B2 (en) | Non-volatile memory with dynamic write abort detection and recovery | |
CN108694098B (zh) | 对于存储设备的不同存储器区域的比特顺序修改 | |
US9792175B2 (en) | Bad column management in nonvolatile memory | |
US9766976B2 (en) | Data storage device and method for storing multiple codewords and redundancy information at a word line | |
CN109002369B (zh) | 基于汉明距离对数字进行二进制编码的方法和装置 | |
US9524794B1 (en) | Constrained data shaping | |
US10727872B2 (en) | Encoding and decoding of hamming distance-based binary representations of numbers | |
KR102478333B1 (ko) | 판독 임계치 교정 지원을 갖는 서브코드들 및 콘벌루셔널-기반 ldpc 인터리빙된 코딩 방식들을 사용하기 위한 저장 시스템 및 방법 | |
US20160006458A1 (en) | Decoding techniques for low-density parity check codes | |
US20230410869A1 (en) | Storage System and Method for Implementation of Symmetric Tree Models for Read Threshold Calibration | |
WO2024097494A1 (en) | Storage system and method for circuit-bounded-array-based time and temperature tag management and inference of read thresholds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240919 Address after: Delaware, USA Patentee after: SANDISK TECHNOLOGIES Inc. Country or region after: U.S.A. Address before: California, USA Patentee before: Western Digital Technologies, Inc. Country or region before: U.S.A. |
|
TR01 | Transfer of patent right |