CN110797075A - 具有可重新配置的邻区辅助llr校正的nand闪速存储器 - Google Patents
具有可重新配置的邻区辅助llr校正的nand闪速存储器 Download PDFInfo
- Publication number
- CN110797075A CN110797075A CN201910713108.8A CN201910713108A CN110797075A CN 110797075 A CN110797075 A CN 110797075A CN 201910713108 A CN201910713108 A CN 201910713108A CN 110797075 A CN110797075 A CN 110797075A
- Authority
- CN
- China
- Prior art keywords
- llr
- cell
- bit
- memory cell
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3927—Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- 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
- G11C2029/0409—Online test
-
- 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
- G11C2029/0411—Online error correction
-
- 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/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及具有可重新配置的邻区辅助LLR校正的NAND闪速存储器。本发明提供一种操作存储系统的方法,该存储系统包括存储器单元和存储器控制器。每个存储器单元是m位多层单元(MLC),其中m是整数。方法包括对目标存储器单元执行软读取操作,并且基于来自软读取操作的结果确定当前LLR(对数似然比)值。方法还包括基于相邻存储器单元对目标存储器单元的LLR的影响而将相邻存储器单元和目标存储器单元的m位单元值分组成各自的n位索引,其中n是整数并且n<m。基于n位索引来确定LLR补偿值,并且基于当前LLR值和LLR补偿值来确定补偿LLR值。方法还包括使用该补偿LLR值执行软解码。
Description
相关申请的交叉引用
本申请要求于2018年8月2日提交的申请号为62/713,964,标题为“具有利用下采样和流水线的可重新配置邻区辅助校正的NAND闪速存储器”的临时申请的优先权,该临时申请转让给本受让人,并且该临时申请通过引用整体而明确地并入本文。
本申请还涉及到于2016年1月3日提交的申请号为15/173,446,标题为“用于Turbo乘积码的低复杂度软解码器的技术”的美国专利申请,现在其美国专利号为10,218,388,该申请被转让给本受让人,并且该申请通过引用整体而明确地并入本文。本申请还涉及到于2017年7月19日提交的申请号为15/654,492,标题为“低复杂度LDPC编码器”的美国专利申请,该申请已转让给本受让人,并且该申请通过引用整体而明确地并入本文。
技术领域
本发明总体涉及一种用于存储装置的系统和方法,并且具体地涉及提高非易失性存储器装置的性能。
背景技术
固态存储器广泛应用于包括例如消费性电子装置(例如,蜂窝电话、照相机、计算机等)的各种电子系统和企业计算系统(例如,硬盘驱动器、随机存取存储器(RAM)等)中。固态存储器由于延迟、吞吐量、抗冲击性、封装和其它考虑因素而比机械或其它存储器存储技术更为普及。在这些非易失性存储器装置之中,NAND闪速存储器装置由于高集成度的低制造成本而受欢迎。
在NAND存储器中,在目标单元和相邻单元之间存在耦合电容。根据待编程至单元中的数据,随着电压阈值增加,电场可以影响相邻单元并且可能导致不同的读取单元电压。此外,在一些3D存储器中,在不同层的相邻单元之间可能发生电荷泄漏。因此,非常需要用于校正来自相邻单元的干扰的有效技术。
发明内容
在一些实施例中,描述了用于LLR(对数似然比)的邻区辅助校正(NAC)的技术,与传统方法相比,该技术降低了复杂性和存储空间。此外,本文描述的技术是可重新配置的,并且可以容易地适应于变化的存储器技术。
根据本发明的一些实施例,一种非易失性数据存储装置,包括:存储器单元和存储器控制器,该存储器控制器联接到存储器单元以控制存储器单元的操作。每个存储器单元是与字线和位线相关联的m位多层单元(MLC),其中m是整数。存储器控制器被配置成响应于来自主机的读取命令对目标存储器单元执行软读取操作,并且基于来自软读取操作的结果来确定当前LLR(对数似然比)值。存储器控制器还被配置成基于相邻存储器单元对目标存储器单元的LLR的影响,将相邻存储器单元和目标存储器单元的m位单元值分组成各自的n位索引,其中n是整数并且n<m。存储器控制器还被配置成基于n位索引确定LLR补偿值、基于当前LLR值和LLR补偿值确定补偿LLR值,并且使用该补偿LLR值执行软解码。
在非易失性数据存储装置的一些实施例中,存储器控制器进一步被配置成基于软解码来校正单元值以及将校正的单元值存储在存储器控制器中。
在一些实施例中,存储器控制器包括LLR(对数似然比)生成块,用于生成当前LLR值;下采样块,用于将相邻存储器单元和目标存储器单元的m位单元值转换成各自的n位索引;LLR补偿块,用于提供LLR补偿值,以及LLR校正块,用于接收当前LLR值和LLR补偿值以产生补偿LLR值。
在一些实施例中,下采样块包括将相邻存储器单元和目标存储器单元中的每一个的m位单元值映射为n位索引的查找表(LUT)。在一些实施例中,通过离线表征或在线训练确定相邻存储器单元对目标存储器单元的LLR的影响,来形成下采样块中的查找表。
在一些实施例中,LLR补偿块包括用于将LLR补偿值与n位索引相关联的查找表(LUT)。在一些实施例中,通过离线表征或在线训练确定相邻存储器单元对目标存储器单元的LLR的影响,来形成LLR补偿块中的查找表。
根据本发明的一些实施例,一种非易失性数据存储装置,包括:存储器单元,每个存储器单元是与字线和位线相关联的4位四层单元(QLC)。非易失性数据存储装置还包括存储器控制器,该存储器控制器联接到存储器单元以用于控制存储器单元的操作。存储器控制器包括LLR(对数似然比)生成块,用于生成当前LLR值;下采样块,用于基于相邻存储器单元对目标存储器单元的LLR的影响,将相邻存储器单元和目标存储器单元的4位单元值分组成各自的3位索引;LLR补偿LUT(查找表),用于提供LLR补偿值,以及LLR校正块,用于接收当前LLR值和LLR补偿值以产生补偿LLR值。存储器控制器被配置成响应于来自主机的读取命令对目标存储器单元执行软读取操作,并且基于来自软读取操作的结果、使用LLR生成块确定当前LLR值。存储器控制器还被配置成使用下采样块将相邻存储器单元和目标存储器单元的4位单元值转换成各自的3位索引,并且使用LLR补偿LUT、基于3位索引确定LLR补偿值。存储器控制器还被配置成使用LLR校正块以基于当前LLR值和LLR补偿值来确定补偿LLR值。存储器控制器还被配置成使用该补偿LLR值执行软解码,基于软解码来校正单元值,并且将校正的单元值存储在存储器控制器中。
根据本发明的一些实施例,提供了一种操作存储系统的方法。存储系统包括存储器单元和存储器控制器,该存储器控制器联接到存储器单元以用于控制存储器单元的操作。每个存储器单元是与字线和位线相关联的m位多层单元(MLC),其中m是整数。方法包括:响应于来自主机的读取命令对目标存储器单元执行软读取操作,并且基于来自软读取操作的结果确定当前LLR(对数似然比)值。方法还包括基于相邻存储器单元对目标存储器单元的LLR的影响而将相邻存储器单元和目标存储器单元的m位单元值分组成各自的n位索引,其中n是整数并且n<m。方法进一步包括基于n位索引确定LLR补偿值,并且基于当前LLR值和LLR补偿值来确定补偿LLR值。方法还包括使用该补偿LLR值执行软解码。
在上述方法的一些实施例中,方法还可以包括基于软解码来校正单元值以及将校正的单元值存储在存储器控制器中。
参照下面的详细描述和附图提供本发明的各种另外的实施例、特征和优点。
附图说明
图1A是示出根据本公开的某些实施例的示例TPC错误校正系统的简化框图;
图1B是示出根据本公开的某些实施例的示例LDPC错误校正系统的简化框图;
图2是示出根据本公开的某些实施例的示例BCH解码器200的简化框图;
图3是示出根据本公开的某些实施例的示例TPC软解码器的简化框图;
图4是根据本公开的某些实施例的存储器装置的简化框图;
图5是示出根据本公开的某些实施例的存储器阵列的简化示意图;
图6是示出根据本公开的某些实施例的3D非易失性存储器装置中的3D NAND存储器阵列的简化示意图;
图7是示出根据本公开的某些实施例的非易失性存储器装置中的存储器阵列的一部分的简化示意图;
图8A是示出根据本发明的一些实施例的闪速存储器装置中的具有3位三层单元(TLC)的存储器装置的单元电压分布的简化图;
图8B是示出根据本发明的一些实施例的闪速存储器装置中的具有4位四层单元(QLC)的存储器装置的单元电压分布的简化图;
图9A是示出根据本发明的一些实施例的基于闪速存储器装置中的具有相邻编程电压(PV)电平的存储器装置的单元电压分布的LLR确定的简化图;
图9B是示出根据本发明的一些实施例的基于存储器装置的单元电压分布的LLR确定的简化图;
图10是示出根据本发明的一些实施例的被配置用于QLC闪速存储器的LLR的邻区辅助校正(NAC)的存储器控制器的一部分的简化框图;
图11A是根据本发明的一些实施例的可以用于图10中的下采样块的查找表(LUT)的示例;
图11B是根据本发明的一些实施例的可以用于图10中的LLR补偿值生成块的查找表(LUT)的示例;
图12是示出根据本发明的一些实施例的存储系统的操作方法的简化流程图;
图13是示出根据本公开的某些实施例的固态存储系统的简化框图;以及
图14是示出可用于实施根据本公开的各个实施例的设备的简化框图。
具体实施方式
错误校正码经常用于通信,以及用于诸如CD、DVD、硬盘和随机存取存储器(RAM)、闪速存储器等介质中的可靠存储。错误校正码可以包括turbo乘积码(TPC)、低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码,里德-所罗门(Reed Solomon)码等。
Turbo乘积码(TPC)可以具有两个或更多个维度。每个维度可以对应于本文被称为分量码的一类错误校正码。作为示例,二维TPC码字可以包括与其第一维度相对应的多个错误校正码字(以下称为行码字),以及与其第二维度相对应的多个错误校正码字(以下称为列码字)。行码字和/或列码字中的每一个可以包括BCH码、里德-所罗门码等。
通常,TPC解码是不同维度错误校正码字之间的迭代解码。作为示例,如果BCH码用作TPC码的每个维度的分量码,则TPC解码器对TPC码的多个行码字和多个列码字执行BCH解码。在一个实施例中,公开了用于TPC码的低复杂度软解码器架构。在一个实施例中,本文提供的软解码架构可以用于通过使用一些NAND读取操作生成软信息来解码从NAND存储器获得的信息。
图1A是示出根据本公开的某些实施例的示例TPC错误校正系统的高级框图。在图1所示的错误校正系统100中,TPC编码器110接收包括被期望存储在存储系统120中或在通信通道中传输的数据的信息位。经TPC编码的数据由TPC编码器110输出并且写入到存储系统120。在各个实施例中,存储系统120可包括各种存储装置类型或介质,诸如(例如,磁性)磁盘驱动器存储装置,闪速存储装置等。在一些实施例中,本文描述的技术被使用在收发器中,而不是被写入到存储装置或从存储装置读取,数据通过有线和/或无线通道被传输并接收。在这种情况下,可以在传输码字期间引入所接收的码字中的错误。
当(例如,通过存储数据的应用或用户)请求或以其它方式期望存储的数据时,检测器130从存储系统接收数据。接收的数据可能包括一些噪声或错误。检测器130对接收的数据执行检测,并且输出与码字中的一个或多个位对应的判决和/或可靠性信息。例如,软输出检测器输出每个检测位的可靠性信息和判决。另一方面,硬输出检测器输出每个位的判决而没有提供相应的可靠性信息。作为示例,硬输出检测器可以输出特定位为“1”或“0”的判决,而不指示检测器在该判决中有多确定或肯定。相反,软输出检测器输出与判决相关的判决和可靠性信息。通常,可靠性值表示检测器在给定判决中有多确定。在一个示例中,软输出检测器输出对数似然比(LLR),其中符号指示判决(例如,正值对应于“1”判决而负值对应于“0”判决)并且幅值指示检测器在该判决中有多确定或肯定(例如,较大幅值表示高可靠性或确定性)。
判决和/或可靠性信息被传递到TPC解码器140,该TPC解码器140使用判决和/或可靠性信息执行TPC解码。软输入解码器利用判决和可靠性信息二者来解码码字。硬解码器仅利用解码器中的判决值来解码码字。在解码之后,由TPC解码器140生成的解码位被传递到适当的实体(例如,请求它的用户或应用)。通过适当的编码和解码,信息位与解码位匹配。
图1B是示出根据本公开的某些实施例的示例LDPC错误校正系统的高级框图。如图1B所示,错误校正系统150的LDPC编码器160可以接收包括期望被存储在存储系统170中的数据的信息位。LDPC编码数据可以由LDPC编码器160生成,并且可以写入到存储系统170。编码可以使用编码器优化的奇偶校验矩阵H'162。
在各个实施例中,与图1A中的存储系统120相似的存储系统170可以包括各种存储装置类型或介质。可能在数据存储或通道中出现错误。例如,错误可能由例如单元与单元的干扰和/或耦合引起。当(例如,通过存储数据的应用或用户)请求或以其它方式期望存储的数据时,检测器180从存储系统170接收数据。接收的数据可能包括一些噪声或错误。检测器180可以包括软输出检测器和硬输出检测器,并且可以对接收的数据执行检测并且输出判决和/或可靠性信息。
判决和/或可靠性信息可以被传递到LDPC解码器190,LDPC解码器190可以使用判决和/或可靠性信息来执行LDPC解码。软LDPC解码器可以利用判决和可靠性信息二者来解码码字。硬LDPC解码器可以仅利用来自检测器的判决值来解码码字。由LDPC解码器190生成的解码位可以被传递到适当的实体(例如,请求它的用户或应用)。解码可以利用奇偶校验矩阵H 192,该奇偶校验矩阵H 192可以针对LDPC解码器190通过设计而被优化。通过适当的编码和解码,解码位将与信息位匹配。在一些实施方式中,奇偶校验矩阵H 192可以与编码器优化奇偶校验矩阵H'162相同。在一些实施方式中,可以根据奇偶校验矩阵H 192来修改编码器优化奇偶校验矩阵H'162。在一些实施方式中,可以根据编码器优化奇偶校验矩阵H'162来修改奇偶校验矩阵H192。
LDPC解码的进一步细节可以在于2017年7月19日提交的申请号为15/654,492,标题为“低复杂度LDPC编码器”的美国专利申请中找到,该专利申请转让给本受让人,并且该申请通过引用整体而明确地并入本文。
在以下描述中,将作为分量码的具有BCH码的Turbo乘积码(TPC)作为示例进行描述。然而,理解的是,在不脱离本公开的教导的情况下,本文描述的技术适用于任何类别的代码,例如LDPC码。
图2是示出根据本公开的某些实施例的示例BCH解码器200的简化框图。如图所示,解码器接收BCH码字并且开始迭代解码进程。对于每次迭代,BCH解码器200对接收的码字执行校验子计算(步骤210)、确定错误位置多项式(步骤220)、并且执行Chien搜索或相似过程以确定错误位置多项式的根(步骤230)。错误位置多项式的根提供码字中的错误所在位置的指示。
在校正错误之后,在步骤240中,解码器检查解码进程是否已产生正确的码字。如果是,则解码器输出解码位。如果不是,则解码器可以生成位翻转模式,基于模式而翻转码字的一个或多个位并且计算新码字的校验子值。解码进程可以继续直到求出正确的码字和/或达到预定最大迭代次数。
在BCH解码中,通常在接收每个码字之后计算校验子值。在一个实施例中,可以基于先前的校验子值和校正的数据来更新校验子值。因此,校验子计算过程可以仅在解码进程开始时执行。可以基于先前的校验子值,在后续迭代中更新对应于每个码字的校验子。
给定自然数m和t,长度为n=2m-1的t-错误校正二进制BCH码可以定义为:
c(x)∈GF(2)[x]:degc(x)≤n-1,c(α)=c(α2)=c(α3)=…=c(α2t)=0
其中α∈GF(2m)是原始元素。换言之,它是所有次数最多为n-1的二元多项式的集合,使得当它们被视为关于GF(2m)的多项式时,它们必须具有α、α2、α2、......、α2t作为它们的根。
如果c(x)是传输的码字,则e(x)是误差多项式,并且R(x)=c(x)+e(x)是接收的码字,然后给定α、α2、α2、......、α2t是c(x)的根,初始分量校验子可以被计算为:
Si=r(αi+1)=e(αi+1),其中i=0,1,...,2t-1。
错误位置多项式生成器使用校验子S0、S1、S2t-1来生成错误位置多项式Λ(x),其定义为:
本领域中存在几种用于求出位置多项式的方法。例如,Berlekamp-Massey算法,Peterson算法等。错误位置多项式的根(即上面等式中的j0,j1,jv)表示错误的位置,因此求出错误位置多项式的根对应于找到相应码字中错误的位置。
通常使用Chien搜索求出错误位置多项式的根。对于二进制符号,一旦已经识别出错误位置,校正仅涉及在每个识别的错误位置处翻转该位。对于非二进制符号,需要例如使用Forney算法计算错误幅值,以求出待进行校正的幅值。
图3是示出根据本公开的某些实施例的示例TPC软解码器的简化框图。在该示例中,使用基于校验子更新的解码器。然而通常,可以在不脱离本公开的教导的情况下使用用于任何类型的码的任何其它类型的软解码器。
如图所示,解码器300包括LLR存储块310、校验子修改块320和325、关键等式求解器(KES)块330和533、Chien搜索块340和345,错误校正避免(MAT)块350、校验子存储器385、校验子数据更新(SDU)块390、通用位翻转(GBF)块370、最低可靠位(LRB)选择块380和数据区块存储器395。应当注意的是,可以在不脱离本公开的教导的情况下消除和/或修改图3中所示的块中的任何一个。
在一个实施例中,LRB选择块380基于从码字中的位接收的LLR值来选择L个最低可靠位。例如,LRB选择块可以从30个接收位中选择10个最低可靠位。GBF块370可以在L个位之中选择S个位(S=1、...、L)来翻转。在一个示例中,GBF块370可以生成可存储在翻转模式缓冲器360中的个翻转模式。作为示例,如果L=5,S=3,则GBF块370选择10个模式。
在图3中所示的示例TPC软解码器中,两个BCH解码器并行运行。第一BCH解码器包括校验子修改块320、KES块330和Chien搜索块340。第二BCH解码器包括校验子修改块325、KES块335和Chien搜索块345。因此,GBF块370每次生成两个翻转模式。应当注意的是,可以在不脱离本公开的教导的情况下,在TPC软解码器中使用任何数量的串行和/或并行BCH解码器。在P个并行解码器的情况下,GBF块每次可以生成P个翻转模式。在不脱离本公开的教导的情况下,P个翻转模式可以全部彼此不同,或者它们中的一些可以是相似的。
KES块330接收基于翻转模式修改的更新校验子值,并且求出错误位置多项式。然后应用Chien搜索340以求出错误位置多项式的根并且生成解码模式。
在一个实施例中,MAT块350用于通过将翻转和解码模式与LLR值进行比较来降低误校正的可能性。如果MAT块350检测到误校正,则声明解码模式是错误的。如果MAT块没有检测到误校正(例如,MAT条件通过),则数据和校验子值将根据翻转和解码模式而被更新。在一个实施例中,更新后的数据值可以被写入在数据区块存储器395中,并且更新后的校验子值可以被写入在校验子存储器385中。
硬解码和软解码的进一步细节可以在于2016年1月3日提交的申请号为15/173,446,标题为“用于TURBO乘积码的低复杂度软解码器的技术”的美国专利申请中找到,现在其美国专利号为10,218,388。该专利转让给本受让人,并且该专利通过引用整体而明确地并入本文。
图4是根据本公开的某些实施例的存储器装置的简化框图。如图4所示,闪速存储器装置400可以是图1中的错误校正系统100中的存储系统120的示例。闪速存储器装置400包括具有多个非易失性存储器单元的存储器单元阵列410。在一些实施例中,存储器单元布置在多个存储块中。每个存储块可以包括多个非易失性存储器单元,每个存储块与相应地址相关联。闪速存储器装置400还包括解码器420,例如行解码器。在示例中,解码器420接收用于存储器操作的命令与地址ADDR 430,例如读取地址与读取命令。地址430可以是逻辑地址。在实施例中,诸如读取命令、写入命令或编程命令以及擦除命令等的存储器操作针对一组存储器单元,例如页面或扇区,或者块。如上所述,块可以包括多个页面。读取命令或编程命令通常针对页面,并且擦除命令可以针对块。根据实施例,页面或扇区可以是0.5千字节到4千字节,或不同的大小。根据实施例,页面或扇区可以包括联接至相同字线的存储器单元。在这种情况下,解码器420基于关于ADDR 430的信息来选择字线(WL)440以用于选择存储器页面,该存储器页面可以是联接至被选择字线的一行存储器单元。因此,页面和字线可互换使用。
感测放大器块450通过位线452联接至存储器单元阵列410。缓冲块460联接至感测放大器块450并且将输出数据提供至外部装置。在读取操作中,感测放大器块450感测存储在存储器单元阵列410的每个存储器单元中的数据,并且将数据提供至缓冲块460。在写入操作或编程操作中,缓冲块460将待写入或编程的数据提交至存储器阵列410。
在存储器读取操作期间,读出由字线选择的非易失性存储器单元中的电荷。存储器单元的单元阈值电压可以根据存储器单元中存储的电荷而变化。高于单元阈值电压的读取电压可用于确定存储在存储器单元中的数据。在一些实施例中,非易失性存储器单元中的每一个可以是多层存储器单元,并且多个阈值电压用于确定由位模式表示的存储器单元的数据状态。在这些情况下,提供读取阈值478的阈值控制电路470可用于控制阈值电压。
图5是示出存储器阵列的简化示意图。图4是根据本公开的某些实施例的存储器装置的简化框图。如图5所示,存储器阵列500包括以具有行和列的二维阵列布置的存储器单元。每行存储器单元与字线(WL),例如WL0、WL1、WL2、WL3、......、WLN等相关联。每行存储器单元与字线(WL),例如WL0、WL1、WL2、WL3、......、WLN等相关联。每列存储器单元与位线(BL),例如BL1、BL2、BL3、...、BLM等相关联。在一些实施例中,与每个位线相关联的存储器单元可以包括多个数据位和从数据位导出的奇偶校验位。例如,与位线BL1相关联的存储器单元可具有在与字线WLN联接的存储器单元中存储的奇偶校验位。
图6是示出根据本公开的某些实施例的3D非易失性存储器装置中的3D NAND存储器阵列的简化示意图。存储器阵列600包括在多个存储器层(在该示例中,三个存储器层,L1、L2和L3)中,以串(STR)布置的多个存储器单元(MC)。存储层中的每一个包括多个通道线(CL),该多个通道线(CL)分别通过多个通道线(CL)的第一端联接至多个位线(BL)并且通过多个通道线(CL)的第二端联接至公共源极线(CSL)。存储器阵列600还包括联接至串选择晶体管(SST1-SST3)的多个串选择线(SSL1-SSL4)。此外,存储器层中的每一个还具有多个字线(WL1至WLn)和接地选择线(GSL)。多个串选择线(SSL)、多个字线(WL)和接地选择线(GSL)与多个通道线交叉。多个通道线中的每一个限定存储器串(STR),并且存储器串具有分别与多个串选择线(SSL)联接的串选择晶体管(SST)。公共接地线GSL可以接地以关断公共接地晶体管GST。
字线WL1至WLn可以连接以分别控制沿列方向布置的存储器单元的栅极。位线BL1至BL3可以分别连接至串选择晶体管的第一端。具有在行方向上与各个字线WL1至WLn联接的控制栅电极的多个存储器单元可以构成逻辑页面,其中可以通过存储器单元的存储容量来确定逻辑页面的数量。
在一些3D非易失性存储器中,存储器阵列600中的存储器单元可以将电荷存储在电荷俘获层中。在这些示例中,联接至相同位线的多个存储器单元可以堆叠在一列装置结构中。在这种装置结构中,可能随着存储数据的较长保留时间而在上部单元和下部单元之间发生电荷泄漏。3D非易失性存储器的进一步细节可以在专利号为9,754,673,标题为“利用时变擦除信号初始化和驱动3D非易失性存储器装置的方法”的美国专利中找到,该美国专利的内容通过引用整体并入本文。
图7是示出根据本公开的某些实施例的非易失性存储器装置中的存储器阵列的部分700的简化示意图。图7示出在字线N和位线K处的、被指定为单元(N,K)并且也被称为牺牲单元的目标单元705,该目标单元705被相邻字线和位线的邻近或相邻单元包围。例如,单元701处于字线N-1和位线K-1处并且被指定为单元(N-1,K-1)、单元702处于字线N-1和位线K处并且被指定为单元(N-1,K)、单元703处于字线N-1和位线K+1处并且被指定为单元(N-1,K+1)、单元704处于字线N和位线K-1处并且被指定为单元(N,K-1)、单元706处于字线N和位线K+1处并且被指定为单元(N,K+1)、单元707处于字线N+1和位线K-1处并且被指定为单元(N+1,K-1),单元708处于字线N+1和位线K处并且被指定为单元(N+1,K),单元709处于字线N+1和位线K+1处并且被指定为单元(N+1,K+1)。在NAND存储器中,在目标单元和相邻单元之间存在耦合电容。根据待编程到单元中的数据,目标单元的电场发生变化。该电场可以反映为电压阈值增加并且可以产生不同的读取单元电压。此外,在一些3D存储器中,诸如结合图6所述的具有电荷俘获层的存储器,在不同层的相邻单元之间可能发生电荷泄漏。在那种情况下,相邻单元的影响可以导致目标单元的阈值电压的负偏移。
在本公开的实施例中,通过使用每个存储器单元的对数似然比(LLR)的值来对目标单元中的来自相邻单元的干扰或影响进行建模。参照图7中的相邻存储器单元,
通过将单元调制到不同的状态或PV电平(编程电压电平),闪速存储器可以在每个单元存储多个位,这被称为多层单元(MLC)。每个存储器单元可仅存储一个位的单层单元(SLC)具有两个PV电平。例如,三层单元(TLC)闪存是具有8个PV电平的3位MLC,并且在四层单元(QLC)闪存中,存在16个PV电平并且每个电平对应于唯一4位元组。
图8A是示出根据本发明的一些实施例的闪速存储器装置中的具有3位三层单元(TLC)的存储器装置的单元电压分布的简化图800。在图8A中,针对擦除状态的目标单元编程电压(PV)被示为“PV0”,并且针对七个编程状态的编程电压(PV)被示为“PV1”至“PV7”。八个数据状态中的每一个的单元电压或者单元阈值电压的分布表示为与每个编程电压(PV)相关联的钟形曲线。可以由单元特性和操作历史的差异引起单元阈值电压的扩散。在图8A中,每个单元被配置成存储由下列三个位表示的八个数据状态:最高有效位(MSB)、中间有效位(CSB)和最低有效位(LSB)。图8A中还示出标记为“Vr1”、“Vr2”、……和“Vr7”、用于确定在存储器单元中存储的数据的参考电压的七个读取阈值。例如,两个阈值Vr1和Vr5用于读取MSB。如果单元存储的电压(编程电压或PV)小于Vr1或大于Vr5,则将MSB读取为1。如果电压在Vr1和Vr5之间,则将MSB读取为0。例如,两个阈值Vr3和Vr7用于读取LSB。如果单元存储的电压小于Vr3或大于Vr7,则将LSB读取为1。如果电压在Vr3和Vr7之间,则将LSB读取为0。类似地,三个阈值Vr2、Vr4和Vr6用于读取CSB。
图8B是示出根据本发明的一些实施例的闪速存储器装置中的具有4位四层单元(QLC)的存储器装置的单元电压分布的简化图850。在四层单元(QLC)闪存中,存在16个PV电平,每个电平对应于唯一的4位元组。在图8B中,针对擦除状态的目标单元编程电压(PV)被示为“PV0””,并且针对十五个编程状态的编程电压(PV)被示为“PV1”至“PV15””。将单元的第一位、第二位、第三位和第四位分别一起分组成LSB(最低有效位)页面、LCSB(最低中间有效位)页面,MCSB(最高中间有效位)和MSB(最高有效位)页面。图8B中还示出标记为“Vr1”、“Vr2”、……和“Vr15”、用于确定在存储器单元中存储的数据的参考电压的十五个读取阈值。与以上关于TLC的描述相似,在QLC中,通过使用读取阈值电压的各种组合来执行多次读取以在每个单元中确定16个PV电平中的一个来确定在单元中存储的四个位。
像先前的2D闪速存储器一样,3D闪速存储器中的邻区闪存单元的不同PV电平可能对相邻牺牲闪存单元具有不同的噪声变化,这可能导致牺牲单元或目标单元的阈值电压增加或减少。阈值电压的增加量可以取决于若干因素,例如(1)正在被编程的准确邻区值;(2)如何编程邻区值等。这可能会对设计支持变化的闪速存储器,特别是诸如QLC驱动器的新一代闪速存储器的闪存控制器带来挑战。
一些QLC驱动器使用基于堆叠电荷捕获的3-D NAND单元构建。在这些单元中,上部相邻单元和下部相邻单元的影响可能由进入或来自目标单元或牺牲单元的电荷泄漏而引起。随着保留时间增加,这些相邻单元可以使目标单元的阈值电压增加或减小。在这种情况下,上部相邻单元和下部相邻单元可能与目标单元共享位线。另外,作为例如编程操作的结果,沿着共享字线的相邻单元也可能影响目标单元的阈值电压。
如上文结合各个解码器所述,软判决解码使用对数似然比(LLR)值,其中符号指示判决(例如,正值对应于“1”判决而负值对应于“0”判决)并且幅值指示检测器在该判决中有多确定或肯定(例如,较大幅值表示高可靠性或确定性)。可以利用图8A和图8B中描述的读取电压来确定判决(“0”或“1”)。单元的阈值电压的LLR值可以通过若干个附加读取,也称为辅助读取来近似地识别,该附加读取将整个阈值电压区域划分成电压子区域的若干个小区间(bin)。
图9A是示出根据本发明的一些实施例的基于闪速存储器装置中的具有相邻编程电压(PV)电平的存储器装置的单元电压分布的LLR确定的简化图。例如在图9A中,电平0和电平1的单元编程电压(PV)分别示为分布901和902。使用不同的辅助读取阈值电压(Ar1-Ar7)执行多次读取操作以将单元划分成不同的区间,区间号为0-7。可以假设落入相同区间中的闪存单元具有相同的阈值电压,因此映射到与各个电压子区域对应的相同LLR值。在图9A的示例中,利用对应于各个电压子区域的八个区间,LLR可以用三位表示。在一些实施例中,3位LLR值可以由000、001、010、......和111表示。
参照图7,相邻单元之间的电荷泄漏可能影响单元编程电压(PV)。例如,如果以PV7对目标单元进行编程,并且以PV0对上部相邻单元和下部相邻单元进行编程,则随着存储器的保留时间增加,目标单元中的电荷可能泄漏到上部相邻单元和下部相邻单元。在这种情况下,目标单元将接收负噪声。相反,如果以PV0对目标单元进行编程,并且以PV7对上部相邻单元和下部相邻单元进行编程,则随着存储器的保留时间增加,上部相邻单元和下部相邻单元中的电荷可能泄漏到目标单元。在这种情况下,目标单元将接收正噪声。因此,由于来自相邻单元的影响,单元读取操作可能提供与最初编程到单元中的单元编程电压(PV)不同的PV。因此,从当前读取操作导出的LLR值可能不可靠。
本公开的实施例提供基于每个牺牲单元或目标单元的邻区单元值的信息来调整LLR值,从而考虑来自相邻单元的影响的技术。即使一组单元的阈值电压在特定时刻最终落入相同区域,但是它们的(可能已在一段时间之前被编程的)实际阈值电压可能不同。
图9B是示出基于存储器装置的单元电压分布的LLR确定的简化图。除了在LLR区域4中的、具有PV数据点的三个单元911、912和913之外,图9B与图9A相似。基于它们在邻区辅助校正(NAC)中的邻区值将区域4中的三个单元重新分类成区域3、区域4或区域5。例如,如果邻区值正在对牺牲单元产生正噪声,则可能最初在区域3中对单元913进行编程,但是邻区已经将这些单元推入区域4。因此,它被感测为在区域4中。在这种情况下,如在当前非NAC解决方案中,应当将单元913分类为在区间3而不是在区间4。类似地,如果邻区产生负噪声,则应当利用邻区辅助校正将区域4中的单元912重新分类为在区域5中。利用这种相邻噪声估计,可以更准确地估计单元的阈值电压,并且该方法可以产生更准确的LLR值以更高概率校正误差。
本公开的实施例提供重新配置解决方案,以考虑在多层闪速存储器中由邻区单元引起的阈值变化。新的闪速存储器编程方法可能会不时地发生变化,并且来自相邻单元的干扰可能会变化。但是,即使在控制器设计阶段尚未最终确定QLC闪速存储器编程方法,控制器也可以支持不同的驱动器代。因此,希望具有高度可重新配置的设计以支持大多数可能的QLC驱动器。
根据本发明的一些实施例,非易失性数据存储装置可以包括以具有行和列的二维阵列布置的存储器单元,并且每个存储器单元是与字线和位线相关联的4位四层单元(QLC)。非易失性数据存储装置具有存储器控制器,该存储器控制器联接到存储器单元以用于控制存储器单元的操作。下面参照图10描述存储器控制器的一部分。
图10是示出根据本发明的一些实施例的被配置用于QLC闪速存储器的LLR的邻区辅助校正(NAC)的存储器控制器的一部分的简化框图。在这些实施例中,基于查找表(LUT)的技术被用于基于相邻单元阈值电压的影响来实现可重新配置的、LLR值的邻区辅助校正。图10中示出流水线(pipeline)技术。如从图10中可看出,存储器控制器1000的一部分包括LLR生成块1010、下采样块1020、三个查找表(LUT)(1021、1022和1023)、LLR补偿值生成块1030以及LLR校正块1040。首先,将4位QLC的16个PV电平下采样到对应于3个位的8个PV电平。然后,多个3位用于生成4位LLR补偿值。AR(辅助读取)输入和区间计数器输入用于生成未NAC的LLR值。可以将这样的LLR与由邻区值生成的LLR补偿值相加,以生成具有NAC支持的补偿LLR值。
如图10所示,LLR生成块1010接收AR(辅助读取)输入1011和区间计数器输入1012,并且生成当前4位LLR值1015。在一些实施例中,LLR生成块1010接收AR输入1011以选择一个映射表。假设它是表1,然后它使用区间计数器输入1012从表1中选择LLR以输出4位LLR值1015。
在QLC中,每个存储器单元表示4位数据,该4位数据可以具有16种数据状态中的一种。相邻单元对目标单元的影响可以根据相邻单元的数据状态以及目标单元的数据状态而变化。因此,为了确定一个相邻单元对目标单元的影响,需要确定24×24或16×16=256种组合。类似地,为了确定两个相邻单元对目标单元的影响,需要确定212(24×24×24)或4,096种组合。可以实验性地确定这些影响。作为示例,可以将结果列入在具有12位输入地址的查找表(LUT)中,这将产生4,096个条目。为了减小LUT的大小,下采样块1020被配置成执行从12位值至9位值的下采样。12位值包括目标存储器单元的4位单元值、第一相邻存储器单元的4位单元值和第二相邻单元的4位单元值。下采样块被配置成将4位单元值中的每一个的16个可能状态(16个PV电平)聚类(cluster)成九个组,该九个组可以由(表示8个PV电平)的3位值表示。在该实施例中,将产生相似牺牲单元噪声的邻区状态分组在一起。例如,参照图8A,在TLC闪速存储器中的当前单触发编程方法中,PV6和PV7具有相似的效果,可以将PV6/PV7、PV5/PV4等聚类在一组中。参照图8B,在QLC闪速存储器中的当前编程方法中,可以将PV16/PV15聚类在一组中。如图10所示,可以将QLC中的4位邻区值下采样为3个位。
此外,下采样是可重新配置的,例如,也可以对LUT进行重新编程,使得PV15和PV7在一个组中。即使QLC闪速存储器编程方法将来可能改变,图10的相同硬件实施例可以利用可重新配置的LUT技术来用于支持多个闪速存储器。通常,“n”位邻区值可以通过被分组或聚类为“m”位值而进行下采样,使得“m”小于“n”,其中m和n是整数。例如,4位邻区值可以通过被分组或聚类为3位值来进行下采样,并且3位邻区值可以通过被分组或聚类为2位值来进行下采样。此外,“n”可以大于4。例如,“n”可以是5、6、......等。可以通过离线表征或在线学习来确定下采样或聚类,从而确定相邻单元的单元状态影响。结果可以取决于单元属性、编程方法等,这可导致相邻单元的不同干扰或影响。
在图10所示的实施例中,下采样块1020可包括三个查找表(LUT)(1021、1022和1023)。在该示例中,闪速存储器具有3-D单元结构,在该3-D单元结构中,目标存储器单元上方的相邻存储器单元和目标存储器单元下方的相邻存储器单元倾向于对目标存储器单元具有更显著的影响。因此,该示例使用上部相邻存储器单元和下部相邻存储器单元来说明邻区辅助的LLR补偿。然而,应该理解,该技术不限于该特定结构,并且可以使用本文描述的技术考虑两个以上的相邻单元。
如图10所示,LUT 1021被配置成将第一相邻存储器单元(NB1)的4位单元值(或PV值)1026转换成第一3位索引1031。LUT 1022被配置成将第二相邻存储器单元(NB2)的4位单元值1027转换成第二3位索引1032。LUT 1023被配置成将目标存储器单元的4位单元值(1028和1029)转换成第三3位索引1033。
图11A是可以用于图10中的LUT 1021、LUT 1022和LUT 1023的查找表(LUT)的示例。如图11A所示,将4位存储器单元的16个PV值中的每一个聚类成可以用3位索引表示的八个组G1、G2、......、G8中的一个。因此,LUT具有16行和3列,如具有粗边的矩形所示的。
图10还示出了LLR补偿值生成块1030。如图10所示,LLR补偿值生成块1030具有查找表(LUT)并且接收作为输入的第一3位索引1031、第二3位索引1032和第三3位索引1033。LLR补偿值生成块1030被配置成提供考虑相邻单元对目标单元的LLR值的影响的4位LLR补偿值1035。在一些实施例中,LLR补偿值生成块1030可以生成偏移LLR值或补偿值,该偏移LLR值或补偿值可以用于调谐来自LLR生成块1010的LLR位并且使得最终LLR输出更准确。基于来自块1031、1032、1033的输出信息生成偏移LLR。该信息用于从映射表中选择偏移LLR位。
图11B是可以在图10中的LLR补偿值生成块1030中使用的查找表(LUT)的示例。如图11B所示,查找表提供针对来自下采样块1020的输出的29个可能索引中的每一个的4位LLR值。因此,LUT具有29行和4列,如具有粗边的矩形所示的。
图10还示出了LLR校正块1040。LLR校正块1040基于当前LLR值1015和LLR补偿值1035来确定补偿LLR值1045。在示例中,可以将LLR补偿值1035与当前LLR值相加以获得补偿LLR值1045。在一些实施例中,在LLR校正块1040中,可以通过映射表生成输出值1045。可以通过来自1035和1015的两个4位输入来生成用于选择输出值1045的索引。
此时,存储器控制器可以使用补偿LLR来值执行软解码,并且如果需要则执行错误校正。可以将经校正的单元值存储在存储器控制器中,例如用于返回到请求读取操作的主机。
在一些实施例中,对于n位输入和m位输出,从n位输入到m位输出的映射可以基于可重新配置的LUT。可以通过固件/软件修改这种LUT,以便于现场更新。然而,这种可重新配置的LUT解决方案取决于输入位的数量,并且其区域随着输入位数的增加而指数地增长。对于每个单元具有高数量的位的闪速存储器,诸如每个单元具有四个位的QLC,为了识别邻区辅助的阈值电压变化,针对4位上部字线邻区、4位下部字线邻区和4位牺牲单元,总输入将至少有12位输入。对于m位输出,LUT的总存储量将为m*212=4096*m位。注意的是,这种m*4K位LUT仅用于一个单元计算,并且针对一个码字待处理数万个单元,则大小增加。如果以合理的并行方式支持NAC(邻区辅助校正),则需要大量的硬件资源。本公开的实施例提出了流水线NAC设计和实施方案,以实现高度可重新配置和区域有效设计。
正噪声的负噪声可以既取决于邻区值也取决于编程方法。如果在具有可重配置的LUT解决方案的系统中,未来的QLC闪速存储器改变了编程方法,则固件可以重新编程LUT而无需任何硬件改变。LUT的硬件实施成本可能很高。对于QLC(4位)闪速存储器,m*4096位的LUT可以用于校正仅一个闪存单元的值。在一些实施例中,为了节省该区域,提供如上所述的流水线和重新分组解决方案。通过下采样和流水线方案,LLR噪声生成仅具有两个阶段。在4位QLC中,第一阶段可以有三个LUT,每个LUT可以有48位SRAM。第二阶段可以有9位输入和4位输出。在该示例中,区域为4*29=2048位。总计是2192位。在没有用于可重配置的LUT解决方案的流水线和下采样方案的情况下,具有12位输入和4位输出,则该区域为4*212=16384位。仅对于LLR噪声补偿组件,该区域可以节约1-2048/16384=87%。
在没有这种流水线方案的情况下,该装置可以具有4位上部邻区、4位下部邻区、1位当前读取值、3位AR(辅助读取)读取和3位区间计数器,总共15位输入以生成4位LLR值。没有流水线的可重新配置设计将具有215*4=4*32*1024位LUT的大小。在上述实施例中,LLR生成将需要4*26=256位。在一些实施例中,由多个查找表而不是一个查找表生成LLR以减小区域。在传统方法中,它将需要15位作为输入并且在一个表中执行查找以输出最终的LLR4位值。因此LUT的大小为215*4=4*32*1024位。在一些实施例中,通过级联多个查找表,将查找动作划分成块1021、1022、1023、1030、1010和1040。下采样将需要三倍的3*24,总共为144位。LLR补偿LUT是4*29=2048位。总共位是2448位值。结果,该区域可以减少约98%。
在一些实施例中,提供了基于当前牺牲单元值和邻区单元值来补偿阈值电压变化的方法。
在一些实施例中,提供支持各种XLC(例如,QLC)闪速存储器的可重新配置解决方案。
在一些实施例中,可以通过普通LLR生成和邻区噪声生成来对邻区辅助的LLR生成进行流水线化。
在一些实施例中,可以通过首先将较大数量的邻区位下采样到较小数量的位来对LLR噪声生成进行流水线化,从而可任意地支持对邻区状态进行可重新配置地分组。然后,可以通过下采样的邻区位和当前位来查找LLR噪声生成,从而基于下采样位获得LLR补偿值。
图12是示出根据本发明的一些实施例的存储系统的操作方法的简化流程图。在一些实施例中,存储系统可以包括存储器单元和存储器控制器,该存储器控制器联接到存储器单元以用于控制存储器单元的操作,每个存储器单元是与字线和位线相关联的m位多层单元(MLC),其中m是整数。上面描述了3位三层单元(TLC)存储系统和四层单元(QLC)存储系统的示例。如图12所示,在步骤1210中,方法1200包括响应于来自主机的读取命令,对目标存储器单元执行软读取操作。在步骤1220中,该方法基于来自软读取操作的结果,确定当前LLR(对数似然比)值,并且在步骤1230中,该方法包括基于相邻存储器单元对目标存储器单元的LLR的影响,将相邻存储器单元和目标存储器单元的m位单元值分组成各个n位索引,其中n是整数并且n<m。在步骤1240中,方法还包括基于n位索引确定LLR补偿值。在步骤1250中,基于当前LLR值和LLR补偿值确定补偿LLR值。并且,在步骤1260中,使用补偿LLR值执行软解码。
在一些实施例中,在步骤1270中,方法还包括基于软解码来校正单元值以及将校正的单元值存储在存储器控制器中。
在一些实施例中,方法还包括基于相邻存储器单元对目标存储器单元的LLR的影响,形成查找表(LUT),该LUT用于将相邻存储器单元和目标存储器单元的m位单元值分组成各个n位索引。方法还可以包括通过离线表征或在线训练以确定相邻存储器单元对目标存储器单元的LLR的影响,来将m位单元值分组成各个n位索引。
在一些实施例中,方法还可以包括形成查找表(LUT)以用于将LLR补偿值与n位索引相关联。方法还包括通过离线表征或在线训练以确定相邻存储器单元对目标存储器单元的LLR的影响,来将LLR补偿值与n位索引相关联。
图13是示出根据本公开的某些实施例的固态存储系统的简化框图。如图所示,固态存储系统1300可以包括固态存储装置1350和存储控制器1360。例如,固态存储装置1350可以包括如图4所示的闪速存储器装置400。存储控制器1360,也称为存储器控制器,是执行本文描述的技术的系统的一个示例。在一些实施例中,存储控制器1360可以在诸如ASIC或FPGA的半导体装置上实施。一些功能也可以以固件实施。
控制器1304可以包括用于执行上述控制功能的一个或多个处理器1306和存储器1308。存储控制器1360还可以包括查找表1310,该查找表1310可以包括用于劣化块的表和用于坏块的表等。寄存器1314可以用于存储用于控制功能的数据,诸如用于劣化块计数的阈值等。
控制器1304可以通过存储接口1302联接至固态存储装置1350。错误校正解码器1312(例如,LDPC解码器或BCH解码器)可以对读取数据执行错误校正解码并且将校正后的数据发送到控制器1304。控制器1304可以将具有读取失败的页面识别到垃圾收集器1316,垃圾收集器1316对那些页面执行校正处理(例如,通过将经过或未经过错误校正解码的数据复制到新位置)。
图14是示出可用于实施根据本公开的各个实施例的设备的简化框图。图14仅仅是说明结合本公开的实施例,并不限制权利要求中所述的本发明的范围。本领域普通技术人员将认识到其它变型、修改和替代方案。在一个实施例中,计算机系统1400通常包括监视器1410、计算机1420、用户输出装置1430、用户输入装置1440、通信接口1450等。
如图14所示,计算机1420可以包括通过总线子系统1490与多个外围装置备通信的处理器1460。这些外围装置可以包括用户输出装置1430、用户输入装置1440、通信接口1450和诸如随机存取存储器(RAM)1470的存储子系统和磁盘驱动器1480。作为示例,磁盘驱动器可以包括利用诸如图1所示的、具有上述特征的存储器装置100的非易失性存储器装置实施的固态驱动器(SSD)。
用户输入装置1440包括用于向计算机系统1420输入信息的所有可能类型的装置和机构。这些装置和机构可以包括键盘,小键盘,结合到显示器中的触摸屏,诸如语音识别系统、麦克风的音频输入装置,和其它类型的输入装置。在各个实施例中,用户输入装置1440通常实现为计算机鼠标、轨迹球、跟踪板、操纵杆、无线遥控器、绘图板、语音命令系统、眼睛跟踪系统等。用户输入装置1440通常允许用户通过诸如点击按钮等的命令来选择出现在监视器1410上的对象、图标、文本等。
用户输出装置1430包括用于从计算机1420输出信息的所有可能类型的装置和机构。这些装置和机构可以包括显示器(例如,监视器1410),诸如音频输出装置的非可视显示器等。
通信接口1450提供到其它通信网络和装置的接口。通信接口1450可以用作用于从其它系统接收数据和向其它系统传输数据的接口。通信接口1450的实施例通常包括以太网卡,调制解调器(电话、卫星、电缆、ISDN),(异步)数字用户线(DSL)单元,火线接口,USB接口等。例如,通信接口1450可以联接至计算机网络、火线总线等。在其它实施例中,通信接口1450可以物理地集成在计算机1420的主板上,并且可以是软件程序,诸如软DSL等。
在各个实施例中,计算机系统1400还可以包括能够通过诸如HTTP、TCP/IP、RTP/RTSP协议等的网络进行通信的软件。在本发明的可选实施例中,还可以使用其它通信软件和传输协议,例如IPX,UDP等。在一些实施例中,计算机1420包括来自Intel的一个或多个Xeon微处理器作为处理器1460。此外,在一个实施例中,计算机1420包括基于UNIX的操作系统。
RAM 1470和磁盘驱动器1480是配置成存储诸如本发明的实施例的、包括可运行计算机代码,人类可读代码等的数据的有形介质的示例。其它类型的有形介质包括软盘、可移动硬盘,光学存储介质(诸如CD-ROM、DVD和条形码),半导体存储器(诸如闪速存储器),非暂时性只读存储器(ROMS),电池支持的易失性存储器,网络存储装置等。RAM 1470和磁盘驱动器1480可以被配置成存储提供本发明的功能的基本编程和数据结构。
提供本发明的功能的软件代码模块和指令可以存储在RAM 1470和磁盘驱动器1480中。这些软件模块可以由处理器1460运行。RAM1470和磁盘驱动器1480也可以提供用于存储根据本发明使用的数据的存储库。
RAM 1470和磁盘驱动器1480可以包括多个存储器,该多个存储器包括用于在编程运行期间存储指令和数据的主随机存取存储器(RAM)和存储固定的非暂时指令的只读存储器(ROM)。RAM 1470和磁盘驱动器1480可以包括为程序和数据文件提供持久(非易失性)存储的文件存储子系统。RAM 1470和磁盘驱动器1480还可以包括诸如可移动闪速存储器的可移动存储系统。
总线子系统1490提供用于使计算机1420的各种组件和子系统按预期彼此通信的机构。虽然总线子系统1490被示意性地示为单个总线,但总线子系统的可选实施例可以使用多个总线。总线子系统1490可以是可使用本公开的PCIe PHY实施例来实施的高速PCI总线。
图14是能够实现本发明的计算机系统的代表。对于本领域普通技术人员来说显而易见的是,许多其它硬件和软件配置适用于本发明。例如,计算机可以是台式、便携式、机架式或平板式配置。另外,计算机可以是一系列联网计算机。此外,考虑使用其它微处理器,诸如PentiumTM或ItaniumTM微处理器;先进微设备公司的OpteronTM或AthlonXPTM微处理器等。此外,考虑其它类型的操作系统,诸如来自微软公司的等,来自太阳微系统公司的Solaris、LINUX、UNIX等。在其它实施例中,上述技术可以在芯片或辅助处理板上实施。
本发明的各个实施例可以以软件或硬件的逻辑形式或两者的组合而实施。该逻辑可以存储在计算机可读或机器可读的非暂时性存储介质中,作为适于指示计算机系统的处理器执行本发明的实施例中公开的一组步骤的一组指令。该逻辑可以形成计算机程序产品的一部分,该计算机程序产品适于指示信息处理装置执行本发明的实施例中公开的一组步骤。基于本文提供的公开和教导,本领域普通技术人员将理解实施本发明的其它方式和/或方法。
本文描述的数据结构和代码可以部分或完全存储在计算机可读存储介质和/或硬件模块和/或硬件设备上。计算机可读存储介质包括但不限于易失性存储器,非易失性存储器,磁性和光学存储装置,诸如磁盘驱动器,磁带,CD(光盘),DVD(数字通用盘或数字视频盘)或现在已知或以后开发的能够存储代码和/或数据的其它介质。本文描述的硬件模块或设备包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器,和/或现在已知或以后开发的其它硬件模块或设备。
本文描述的方法和进程可以部分或完全实现为存储在计算机可读存储介质或装置中的代码和/或数据,使得当计算机系统读取并运行代码和/或数据时,计算机系统执行相关联的方法和进程。该方法和进程还可以部分或完全实现在硬件模块或设备中,使得当硬件模块或设备被激活时,它们执行相关联的方法和进程。本文公开的方法和进程可以使用代码、数据和硬件模块或设备的组合而实现。
本文公开的实施例不限于本文描述的具体实施例的范围。对于本领域普通技术人员而言,除了本文描述的实施例之外,本发明的实施例的各种修改根据前面的描述和附图将是显而易见的。此外,虽然已经在特定环境中针对特定目的的特定实施方式的场景下描述了本发明的一些实施例,但是本领域普通技术人员将认识到其应用不限于此并且为了任何数量的目的,本发明的实施例可以有利地在任何数量的环境中实施。
Claims (20)
1.一种非易失性数据存储装置,包括:
存储器单元,所述存储器单元中的每个为与字线和位线相关联的4位四层单元即QLC;以及
存储器控制器,联接到所述存储器单元以控制所述存储器单元的操作;
其中所述存储器控制器包括:
对数似然比生成块,即LLR生成块,生成当前LLR值;
下采样块,基于相邻存储器单元对目标存储器单元的LLR的影响,将所述相邻存储器单元和所述目标存储器单元的4位单元值分组成各自的3位索引;
LLR补偿查找表,即LLR补偿LUT,提供LLR补偿值,以及
LLR校正块,接收所述当前LLR值和所述LLR补偿值以产生补偿LLR值;
其中所述存储器控制器:
响应于来自主机的读取命令对所述目标存储器单元执行软读取操作,
使用所述LLR生成块、基于来自所述软读取操作的结果来确定所述当前LLR值;
使用所述下采样块将所述相邻存储器单元和所述目标存储器单元的4位单元值转换成各自的3位索引;
使用所述LLR补偿LUT、基于3位索引来确定所述LLR补偿值;
使用所述LLR校正块以基于所述当前LLR值和所述LLR补偿值确定所述补偿LLR值;
使用所述补偿LLR值来执行软解码;
基于所述软解码来校正所述单元值;并且
将所校正的单元值存储在所述存储器控制器中。
2.根据权利要求1所述的非易失性数据存储装置,其中所述下采样块包括:
第一查找表,即第一LUT,将第一相邻存储器单元的4位单元值转换成第一3位索引;
第二查找表,即第二LUT,将第二相邻存储器单元的4位单元值转换成第二3位索引;以及
第三查找表,即第三LUT,将所述目标存储器单元的4位单元值转换成第三3位索引。
3.根据权利要求2所述的非易失性数据存储装置,其中通过将对所述目标存储器单元具有相似影响的相邻存储器单元的两个或多个4位单元值分组成相同的3位索引而形成所述第一查找表、所述第二查找表以及所述第三查找表。
4.根据权利要求3所述的非易失性数据存储装置,其中通过使用离线表征确定所述相邻存储器单元对所述目标存储器单元的LLR值的影响,来形成所述第一查找表、所述第二查找表以及所述第三查找表。
5.根据权利要求3所述的非易失性数据存储装置,其中通过使用在线训练确定所述相邻存储器单元对所述目标存储器单元的LLR值的影响,来形成所述第一查找表、所述第二查找表以及所述第三查找表。
6.根据权利要求5所述的非易失性数据存储装置,其中通过响应于改变存储器技术来变化所述下采样块中的所述查找表中的条目而使所述下采样块是可重新配置的,其中基于通过离线表征或在线训练确定的所述相邻存储器单元对所述目标存储器单元的LLR值的影响来确定新条目。
7.根据权利要求1所述的非易失性数据存储装置,其中基于通过离线表征或在线训练确定的所述相邻存储器单元对所述目标存储器单元的LLR值的影响来确定所述LLR补偿LUT中的所述LLR补偿值。
8.根据权利要求7所述的非易失性数据存储装置,其中通过响应于改变存储器技术来变化所述LLR补偿LUT中的查找表中的条目而使所述LLR补偿LUT是可重新配置的,其中基于通过离线表征或在线训练确定的所述相邻存储器单元对所述目标存储器单元的LLR值的影响来确定新条目。
9.一种非易失性数据存储装置,包括:
存储器单元,其中所述存储器单元中的每个是与字线和位线相关联的m位多层单元即MLC,其中m是整数;以及
存储器控制器,联接到所述存储器单元以用于控制所述存储器单元的操作;
其中所述存储器控制器:
响应于来自主机的读取命令而对目标存储器单元执行软读取操作,
基于来自所述软读取操作的结果来确定当前对数似然比值,即当前LLR值;
基于相邻存储器单元对所述目标存储器单元的LLR的影响,将所述相邻存储器单元和所述目标存储器单元的m位单元值分组成各自的n位索引,其中n是整数并且n<m;
基于所述n位索引来确定LLR补偿值;
基于所述当前LLR值和所述LLR补偿值来确定补偿LLR值,并且
使用所述补偿LLR值来执行软解码。
10.根据权利要求9所述的非易失性数据存储装置,其中所述存储器控制器进一步:
基于所述软解码来校正所述单元值;
并且将所校正的单元值存储在所述存储器控制器中。
11.根据权利要求9所述的非易失性数据存储装置,其中所述存储器控制器包括:
LLR生成块,生成所述当前LLR值;
下采样块,用于将所述相邻存储器单元和所述目标存储器单元的m位单元值转换成各自的n位索引;
LLR补偿块,提供LLR补偿值,以及
LLR校正块,接收所述当前LLR值和所述LLR补偿值以产生所述补偿LLR值。
12.根据权利要求11所述的非易失性数据存储装置,其中所述下采样块包括查找表即LUT,所述LUT将所述相邻存储器单元和所述目标存储器单元中的每个的m位单元值映射为n位索引。
13.根据权利要求12所述的非易失性数据存储装置,其中通过离线表征或在线训练确定所述相邻存储器单元对所述目标存储器单元的LLR的影响,来形成所述下采样块中的所述查找表。
14.根据权利要求11所述的非易失性数据存储装置,其中所述LLR补偿块包括查找表即LUT,所述LUT将所述LLR补偿值与所述n位索引相关联。
15.根据权利要求14所述的非易失性数据存储装置,其中通过离线表征或在线训练确定所述相邻存储器单元对所述目标存储器单元的LLR的影响,来形成所述LLR补偿块中的查找表。
16.一种操作存储系统的方法,所述存储系统包括存储器单元和存储器控制器,所述存储器控制器联接到所述存储器单元以控制所述存储器单元的操作,其中所述存储器单元中的每个是与字线和位线相关联的m位多层单元即MLC,其中m是整数,所述方法包括:
响应于来自主机的读取命令对目标存储器单元执行软读取操作;
基于来自所述自软读取操作的结果确定当前对数似然比值,即LLR值;
基于相邻存储器单元对所述目标存储器单元的LLR的影响而将所述相邻存储器单元和所述目标存储器单元的m位单元值分组成各自的n位索引,其中n是整数并且n<m;
基于所述n位索引来确定LLR补偿值;
基于所述当前LLR值和所述LLR补偿值来确定补偿LLR值;
使用所述补偿LLR值来执行软解码。
17.根据权利要求16所述的方法,其中所述方法进一步包括:
基于所述软解码来校正所述单元值;并且
将所校正的单元值存储在所述存储器控制器中。
18.根据权利要求17所述的方法,进一步包括基于所述相邻存储器单元对所述目标存储器单元的LLR的影响来形成第一查找表即第一LUT,所述第一LUT将所述相邻存储器单元和所述目标存储器单元的m位单元值分组成各自的n位索引。
19.根据权利要求18所述的方法,进一步包括通过离线表征或在线训练确定所述相邻存储器单元对所述目标存储器单元的LLR的影响,来将m位单元值分组成各自的n位索引。
20.根据权利要求16所述的方法,进一步包括形成第二查找表即第二LUT,所述第二LUT将LLR补偿值与所述n位索引相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862713964P | 2018-08-02 | 2018-08-02 | |
US62/713,964 | 2018-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110797075A true CN110797075A (zh) | 2020-02-14 |
CN110797075B CN110797075B (zh) | 2023-08-25 |
Family
ID=69227540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910713108.8A Active CN110797075B (zh) | 2018-08-02 | 2019-08-02 | 具有可重新配置的邻区辅助llr校正的nand闪速存储器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10783972B2 (zh) |
CN (1) | CN110797075B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466352A (zh) * | 2020-11-25 | 2021-03-09 | 中国科学院微电子研究所 | 用于leps软译码估计的读写方法、装置及电子设备 |
CN115529046A (zh) * | 2021-06-24 | 2022-12-27 | 北京特纳飞电子技术有限公司 | 闪速存储系统中的对数似然比映射表 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11127471B2 (en) * | 2019-07-23 | 2021-09-21 | SK Hynix Inc. | Read retry threshold voltage selection |
JP2023116927A (ja) | 2022-02-10 | 2023-08-23 | キオクシア株式会社 | メモリシステムおよびメモリ制御方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847439A (zh) * | 2008-12-12 | 2010-09-29 | 三星电子株式会社 | 非易失性存储器件的存取方法 |
CN102449969A (zh) * | 2009-03-02 | 2012-05-09 | 三菱电机研究实验室股份有限公司 | 用于软逻辑函数的电路 |
CN102831932A (zh) * | 2011-06-14 | 2012-12-19 | 群联电子股份有限公司 | 数据读取方法、存储器控制器及存储器储存装置 |
US20130124944A1 (en) * | 2011-11-15 | 2013-05-16 | Samsung Electronics Co., Ltd. | Memory controller for nonvolatile memory device, memory system comprising memory controller, and related methods of operation |
US20140040704A1 (en) * | 2012-08-04 | 2014-02-06 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US20150149856A1 (en) * | 2013-11-27 | 2015-05-28 | Lsi Corporation | Decoding with log likelihood ratios stored in a controller |
US20160092301A1 (en) * | 2014-09-28 | 2016-03-31 | Apple Inc. | Correcting soft reliability measures of storage values read from memory cells |
US9450610B1 (en) * | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US20160276036A1 (en) * | 2015-03-17 | 2016-09-22 | Sk Hynix Memory Solutions Inc. | System optimization in flash memories |
US20160274969A1 (en) * | 2015-03-16 | 2016-09-22 | Sandisk Enterprise Ip Llc | Method and System for Determining Soft Information Offsets |
CN107068187A (zh) * | 2016-02-11 | 2017-08-18 | 希捷科技有限公司 | 似然值指派针对每一读取重试在不同读取电压处改变正负号的读取重试操作 |
CN107291573A (zh) * | 2016-04-11 | 2017-10-24 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107608818A (zh) * | 2016-07-12 | 2018-01-19 | 大心电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN110797074A (zh) * | 2018-08-02 | 2020-02-14 | 爱思开海力士有限公司 | 用于nand闪速存储装置的动态邻区和位线辅助校正 |
CN116230054A (zh) * | 2021-12-03 | 2023-06-06 | 美光科技公司 | 验证存储器装置中的读取电平电压 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102081415B1 (ko) | 2013-03-15 | 2020-02-25 | 삼성전자주식회사 | 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법 |
US9690697B2 (en) | 2014-07-10 | 2017-06-27 | Kabushiki Kaisha Toshiba | Memory controller, storage device and memory control method |
KR102265220B1 (ko) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10997017B2 (en) * | 2018-05-03 | 2021-05-04 | SK Hynix Inc. | Neighbor assisted correction error recovery for memory system and method thereof |
-
2019
- 2019-07-31 US US16/528,321 patent/US10783972B2/en active Active
- 2019-08-02 CN CN201910713108.8A patent/CN110797075B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847439A (zh) * | 2008-12-12 | 2010-09-29 | 三星电子株式会社 | 非易失性存储器件的存取方法 |
CN102449969A (zh) * | 2009-03-02 | 2012-05-09 | 三菱电机研究实验室股份有限公司 | 用于软逻辑函数的电路 |
CN102831932A (zh) * | 2011-06-14 | 2012-12-19 | 群联电子股份有限公司 | 数据读取方法、存储器控制器及存储器储存装置 |
US20130124944A1 (en) * | 2011-11-15 | 2013-05-16 | Samsung Electronics Co., Ltd. | Memory controller for nonvolatile memory device, memory system comprising memory controller, and related methods of operation |
US20140040704A1 (en) * | 2012-08-04 | 2014-02-06 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US9450610B1 (en) * | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US20150149856A1 (en) * | 2013-11-27 | 2015-05-28 | Lsi Corporation | Decoding with log likelihood ratios stored in a controller |
US20160092301A1 (en) * | 2014-09-28 | 2016-03-31 | Apple Inc. | Correcting soft reliability measures of storage values read from memory cells |
US20160274969A1 (en) * | 2015-03-16 | 2016-09-22 | Sandisk Enterprise Ip Llc | Method and System for Determining Soft Information Offsets |
US20160276036A1 (en) * | 2015-03-17 | 2016-09-22 | Sk Hynix Memory Solutions Inc. | System optimization in flash memories |
CN107068187A (zh) * | 2016-02-11 | 2017-08-18 | 希捷科技有限公司 | 似然值指派针对每一读取重试在不同读取电压处改变正负号的读取重试操作 |
CN107291573A (zh) * | 2016-04-11 | 2017-10-24 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107608818A (zh) * | 2016-07-12 | 2018-01-19 | 大心电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN110797074A (zh) * | 2018-08-02 | 2020-02-14 | 爱思开海力士有限公司 | 用于nand闪速存储装置的动态邻区和位线辅助校正 |
CN116230054A (zh) * | 2021-12-03 | 2023-06-06 | 美光科技公司 | 验证存储器装置中的读取电平电压 |
Non-Patent Citations (2)
Title |
---|
JUNLI PENG等: "Dynamic LLR scheme based on EM algorithm for LDPC decoding in NAND flash memory", vol. 14, no. 14, pages 1 - 8 * |
辛杰锋: "闪速存储系统中纠错编码技术研究", pages 137 - 82 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466352A (zh) * | 2020-11-25 | 2021-03-09 | 中国科学院微电子研究所 | 用于leps软译码估计的读写方法、装置及电子设备 |
CN112466352B (zh) * | 2020-11-25 | 2022-05-10 | 中国科学院微电子研究所 | 用于leps软译码估计的读写方法、装置及电子设备 |
CN115529046A (zh) * | 2021-06-24 | 2022-12-27 | 北京特纳飞电子技术有限公司 | 闪速存储系统中的对数似然比映射表 |
Also Published As
Publication number | Publication date |
---|---|
US20200043557A1 (en) | 2020-02-06 |
US10783972B2 (en) | 2020-09-22 |
CN110797075B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110797075B (zh) | 具有可重新配置的邻区辅助llr校正的nand闪速存储器 | |
US10877840B2 (en) | Dynamic neighbor and bitline assisted correction for NAND flash storage | |
KR102643457B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102559925B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102631407B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR102556479B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
CN111563004A (zh) | 存储器控制器 | |
CN110673979A (zh) | 存储器控制器及其操作方法 | |
CN112039532A (zh) | 错误校正解码器及具有错误校正解码器的存储器系统 | |
CN111756385A (zh) | 错误校正解码器 | |
CN110853690B (zh) | 解码器、解码器的操作方法和包括该解码器的存储器系统 | |
CN110931073A (zh) | 错误校正电路及其操作方法 | |
US11095316B2 (en) | Controller and operating method for performing read operation to read data in memory device | |
CN110277999B (zh) | Ldpc解码装置、包括其的存储器系统及其方法 | |
CN113821371A (zh) | 纠错码解码器和存储器系统 | |
CN111049530A (zh) | 纠错电路及其操作方法 | |
US11804857B2 (en) | Electronic device | |
CN115701588A (zh) | 控制器及其操作方法 | |
US11967970B2 (en) | Bit-flipping decoder and decoding method for irregular codes | |
US20240086101A1 (en) | System and method for history-based non-parametric channel information prediciton using a deep neural network | |
US11881871B1 (en) | On-the-fly scaling factor change for irregular LDPC codes | |
US11387845B2 (en) | LDPC decoder, operating method of LDPC decoder, and semiconductor memory system | |
KR102530269B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
CN116954984A (zh) | Crc终止时的准确ber报告 | |
CN115440289A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |