CN117153232A - 用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 - Google Patents
用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 Download PDFInfo
- Publication number
- CN117153232A CN117153232A CN202310631400.1A CN202310631400A CN117153232A CN 117153232 A CN117153232 A CN 117153232A CN 202310631400 A CN202310631400 A CN 202310631400A CN 117153232 A CN117153232 A CN 117153232A
- Authority
- CN
- China
- Prior art keywords
- sense word
- bit
- parity check
- sense
- parity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001788 irregular Effects 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 82
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims abstract description 57
- 238000012937 correction Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 abstract description 183
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/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/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
-
- 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
-
- 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/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6511—Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值。一种存储器子系统中的处理装置从存储器装置读取感测字,且对所述感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果。所述处理装置进一步使用所述多个奇偶校验方程式结果确定所述感测字的校正子,且确定所述感测字的所述校正子是否满足码字准则。响应于所述感测字的所述校正子不满足所述码字准则,所述处理装置使用缩放位翻转阈值执行迭代性低密度奇偶校验LDPC校正过程以校正所述感测字中的一或多个错误。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,更具体地,涉及存储器子系统中用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一个方面中,本申请提供一种系统,其包括:存储器装置;及处理装置,其以操作方式与存储器装置耦合以执行包括以下各项的操作:从存储器装置读取感测字;对感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;使用多个奇偶校验方程式结果确定感测字的校正子;确定感测字的校正子是否满足码字准则;及响应于感测字的校正子不满足码字准则,使用缩放位翻转阈值执行迭代性低密度奇偶校验(LDPC)校正过程以校正感测字中的一或多个错误。
在另一方面中,本申请提供一种方法,其包括:从存储器装置读取感测字;对感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;使用多个奇偶校验方程式结果确定感测字的校正子;确定感测字的校正子是否满足码字准则;及响应于感测字的校正子不满足码字准则,使用缩放位翻转阈值执行迭代性低密度奇偶校验(LDPC)校正过程以校正感测字中的一或多个错误。
在另一方面中,本申请提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使得处理装置执行包括以下各项的操作:从存储器装置读取感测字;对感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;确定多个奇偶校验方程式结果是否指示感测字中的错误;及响应于奇偶校验方程式结果指示感测字中的错误,使用缩放位翻转阈值执行迭代性低密度奇偶校验(LDPC)校正过程以校正感测字中的错误。
附图说明
根据下文给出的详细描述且根据本公开的各种实施例的随附图式将更加充分地理解本公开。
图1A绘示根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图1B为根据本公开的一些实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。
图2为根据本公开的一些实施例的起始存储器子系统中的错误校正操作的实例方法的流程图。
图3为绘示根据本公开的一些实施例的用于配置迭代性错误校正参数的感测字校正子矩阵的图。
图4为根据本公开的一些实施例的使用跨列缩放的位翻转阈值用于不规则低密度奇偶校验解码的迭代性错误校正过程的实例方法的流程图。
图5为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及存储器子系统中用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1A描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供待存储于存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有电力供应到存储器装置时需要保留数据。举例来说,例如3D快闪NAND存储器的NAND存储器以紧凑的高密度配置形式提供存储。非易失性存储器装置为一或多个裸片的封装,每一裸片包含一或多个平面。对于一些类型的非易失性存储器装置(例如,NAND存储器),每一平面包含一组物理块。每一块包含页集合。每一页包含存储器单元集合(“单元”)。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位的数目相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”和“1”)或此类值的组合表示。
存储器装置可由以二维或三维网格布置的位构成。存储器单元以列(下文中也称为位线)和行(下文中也称为字线)的阵列形成于硅晶片上。字线可指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以产生存储器单元中的每一个的地址。位线和字线的相交点构成存储器信元的地址。下文中,块是指用于存储数据的存储器装置的单元,且可包含存储器单元的群组、字线群组、字线或个别存储器单元。可将一或多个块分组在一起以形成存储器装置的单独分区(例如,平面),以便允许在每一平面上进行并行操作。
存储器子系统的一个实例为包含一或多个非易失性存储器装置和管理非易失性存储器装置的存储器子系统控制器的固态硬盘(SSD)。存储器子系统控制器可将数据编码成可存储于存储器装置处的格式。举例来说,可使用一类错误检测和校正码(ECC)(例如低密度奇偶校验(LDPC)码)来编码数据。LDPC码为容量逼近码,这意指存在允许将错误阈值设定为极接近于理论最大值的实际构造。此错误阈值定义数据中的错误的上限,由此可使丢失信息的概率尽可能地变小。LDPC码可靠且高效,这使其可用于带宽受限的应用中。举例来说,写入到存储器装置的物理存储器单元的经编码数据可称为码字。从单元读取的可能包含错误且不同于码字的数据可称为感测字。感测字可包含用户数据、错误校正码、元数据或其它信息中的一或多个。
在执行错误校正码操作时,包含作为读取操作的部分,可将存储于存储器装置上的经编码数据从存储器装置传输到存储器子系统控制器。存储器子系统控制器可执行将经编码数据解码成原始位序列的解码操作,所述原始位序列经编码以存储于存储器装置上。由存储器子系统控制器所接收的经解码数据的位的数目可能已由于噪声、干扰、失真、位同步错误或来自媒体自身(固有和外在)的错误而翻转。举例来说,最初可能已存储为0的位可翻转为1,或反之亦然。
许多存储器子系统执行尝试校正从存储器装置读取的感测字中的位翻转错误的错误校正码操作。举例来说,存储器子系统可对所存储数据执行错误校正码操作以检测和校正经编码数据中的错误。在许多情况下,使用迭代过程对数据进行解码。可对数据阵列的片段进行解码以产生对应位串(例如,感测字)。
一般来说,存储器子系统中的错误校正为时间和资源密集型过程。错误校正过程利用若干奇偶校验方程式,每一奇偶校验方程式适用于感测字的位子集,所述奇偶校验方程式一起用以识别感测字中的位翻转错误。在某些实施方案中,感测字的每一位具有相同数目个相关联奇偶校验方程式。此类实施方案可称为“规则”LDPC解码。在此错误校正过程的每一迭代中,存储器子系统控制器可识别与感测字的每一位相关联的能量且识别与感测字的任何一位相关联的最大能量。在一个实施例中,与给定位相关联的能量(在本文中也称为能级)可由与所述位相关联的未满足奇偶校验方程式的数目表示。在另一实施例中,能量可为未满足奇偶校验方程式的数目加上当前位值与其原始值的XOR。存储器子系统控制器可将每一位的能量与所识别的最大能量进行比较,翻转具有匹配最大能量的能量的那些位,且进行到所述过程的下一迭代。这在感测字的每一位具有相同数目个相关联奇偶校验方程式时是有效的,这是由于容易地确定最大能量。然而,在其它实施方案中,感测字的不同位可具有不同数目个相关联奇偶校验方程式。此类实施方案可称为“不规则”LDPC解码。当与每一位相关联的奇偶校验方程式的数目存在变化时,简单地使用与任一位相关联的最大能量作为用于识别翻转感测字的哪些位会导致存储器子系统中的降低的解码性能和次佳的错误校正能力的阈值。
本公开的方面通过在存储器子系统中实施跨列缩放的位翻转阈值用于不规则低密度奇偶校验解码来解决上述和其它缺陷。在一个实施例中,存储器子系统控制器的奇偶校验组件从存储器子系统的存储器装置读取感测字且对感测字的对应子集执行若干奇偶校验方程式。在一个实施例中,奇偶校验方程式中的每一个对应于感测字的位的不同子集,但不同子集可共享一或多个位,且每一位可潜在地与不同数目个奇偶校验方程式相关联。举例来说,感测字中的至少两个位可与不同数目个奇偶校验方程式相关联。每一奇偶校验方程式产生指示感测字的对应子集中的设定为值‘1’的位的数目是偶数还是奇数的奇偶校验方程式结果。在一个实施例中,如果对应子集中的设定为值‘1’的位的数目为偶数,那么奇偶校验方程式结果称为处于满足状态(即,指示感测字的对应子集中不存在错误的状态),且如果对应子集中的设定为值‘1’的位的数目为奇数,那么奇偶校验方程式结果称为处于未满足状态(即,指示感测字的对应子集中存在错误的状态)。由于感测字的任一位可以是多个不同子集的部分,因此所述位可促成多个奇偶校验方程式结果或与多个奇偶校验方程式结果相关联。在一个实施例中,奇偶校验组件逻辑地组合所有奇偶校验方程式结果以确定感测字的校正子。如果感测字的校正子不满足码字准则(例如,不指示所有奇偶校验方程式结果处于满足状态),那么奇偶校验组件确定感测字中存在一或多个错误且起始迭代性LDPC校正过程。
一旦奇偶校验组件开始翻转感测字中的位,那么位序列可称为经校正字。在一个实施例中,LDPC校正过程的每一迭代使用一些准则来识别翻转经校正字的哪些位(即,从‘1’改变为‘0’,或反之亦然)。在一个实施例中,准则可包含例如来自先前迭代(即,紧接在当前迭代之前执行的迭代)的经校正字的任一位的但被缩放以说明与每一位相关联的奇偶校验方程式的数目的差异的最大能量。在一个实施例中,奇偶校验组件可在识别最大值之前对来自先前迭代的每一位的能级进行归一化。举例来说,能量(即,与所述位相关联的未满足奇偶校验方程式的数目)可被计算为与所述位相关联的奇偶校验方程式的总数目的百分比或分数,且与任一位相关联的最高百分比或分数可用作位翻转准则。因此,在当前迭代中,奇偶校验组件可翻转满足位翻转准则的那些位(即,百分比或分数大于或等于来自先前迭代的最大分数或百分比的那些位)。奇偶校验组件可执行LDPC校正过程的多个迭代,直到经校正字的校正子满足码字准则,或直到达到阈值迭代数目。
本文中所描述的方法的优点包含但不限于存储器子系统中的改进的性能。举例来说,通过在不规则LDPC解码中跨列缩放位翻转阈值,可在解码操作期间实现时间和能量节省。因此,与未缩放的方法相比,LDPC解码器可在更短时间内校正更多错误,这导致改进的解码性能。这也减少奇偶校验和错误校正过程的时间和复杂性,由此释放存储器子系统控制器的资源以执行其它操作。
图1A绘示根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或其组合。
存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1A绘示耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110来例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口存取存储器组件(例如,一或多个存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1A绘示存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元(例如,单层级单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如,多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
尽管描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含配置成执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令以用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程的嵌入式存储器。
在一些实施例中,本地存储器119可包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1A中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统所接收的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器135结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为具有用于同一存储器装置封装内的媒体管理的控制逻辑(例如,本地控制器135)的原始存储器装置(例如,存储器阵列104)。受管理存储器装置的实例为受管理NAND(MNAND)装置。举例来说,存储器装置130可各自表示具有体现于其上的一些控制逻辑(例如,本地媒体控制器135)的单个裸片。在一些实施例中,可省略存储器子系统110的一或多个组件。
在一个实施例中,存储器子系统110包含奇偶校验组件113,所述奇偶校验组件113可在不规则低密度奇偶校验(LDPC)解码操作中实施跨列缩放的位翻转阈值,以识别和校正存储于存储器装置130上的数据中的错误。在一个实施例中,响应于从存储器装置130读取的感测字的校正子不满足码字准则(例如,奇偶校验方程式结果中的一或多个处于未满足状态),奇偶校验组件113可执行迭代性LDPC校正过程。在一个实施例中,奇偶校验组件113确定感测字的每一位的处于未满足状态的奇偶校验方程式结果的数目,且确定感测字的任一位的处于未满足状态的奇偶校验方程式结果的最大数目。在一个实施例中,奇偶校验组件113可在识别最大值之前对来自先前迭代的每一位的能级进行归一化以说明与感测字的每一位相关联的奇偶校验方程式的总数目的差异。奇偶校验组件113可翻转具有满足能量阈值条件(例如,大于或等于阈值能级)的能级(例如,处于未满足状态的奇偶校验方程式结果的阈值数目)的感测字中的任何位,且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,阈值能级等于来自当前或先前迭代的感测字的任一位的最大能量(例如,处于未满足状态的奇偶校验方程式结果的最大数目),且根据相关联奇偶校验方程式的总数目进行归一化。奇偶校验组件113进一步确定在迭代性LDPC校正过程中执行的迭代的数目是否满足迭代准则(例如,小于阈值迭代数目),且如果是,那么通过进行到下一迭代而继续LDPC校正过程。响应于所执行的迭代的数目不满足迭代准则(例如,满足或超过阈值迭代数目),那么奇偶校验组件113可结束LDPC校正过程。下文描述关于奇偶校验组件113的操作的其它细节。
图1B为根据实施例的与呈存储器子系统(例如,图1A的存储器子系统110)的存储器子系统控制器115形式的第二设备通信的呈存储器装置130形式的第一设备的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(PDA)、数字相机、数字媒体播放器、数字记录器、游戏、电气设备、车辆、无线装置、移动电话等。存储器子系统控制器115(例如,存储器装置130外部的控制器)可为存储器控制器或其它外部主机装置。
存储器装置130包含以行和列逻辑地布置的存储器单元阵列104。逻辑行的存储器单元通常连接到相同存取线(例如,字线),而逻辑列的存储器单元通常选择性地连接到相同数据线(例如,位线)。单个存取线可与超过一个逻辑行的存储器单元相关联,且单个数据线可与超过一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图1B中未展示)能够被编程为至少两个目标数据状态中的一个。
提供行解码电路系统108和列解码电路系统109以解码地址信号。接收地址信号且对地址信号进行解码以存取存储器单元阵列104。存储器装置130还包含输入/输出(I/O)控制电路系统160以管理命令、地址和数据向存储器装置130的输入以及数据和状态信息从存储器装置130的输出。地址寄存器114与I/O控制电路系统160和行解码电路系统108以及列解码电路系统109通信以在解码之前锁存地址信号。命令寄存器124与I/O控制电路系统160和本地媒体控制器135通信以锁存传入命令。
控制器(例如,存储器装置130内部的本地媒体控制器135)响应于命令而控制对存储器单元阵列104的存取且产生外部存储器子系统控制器115的状态信息,即,本地媒体控制器135配置成对存储器单元阵列104执行存取操作(例如,读取操作、编程操作和/或擦除操作)。本地媒体控制器135与行解码电路系统108和列解码电路系统109通信,以响应于地址而控制行解码电路系统108和列解码电路系统109。
本地媒体控制器135还与高速缓存寄存器172通信。高速缓存寄存器172锁存如由本地媒体控制器135引导的传入或传出数据以暂时存储数据,同时存储器单元阵列104正忙于分别写入或读取其它数据。在编程操作(例如,写入操作)期间,可将数据从高速缓存寄存器172传递到数据寄存器170以用于传送到存储器单元阵列104;接着可将新数据从I/O控制电路系统160锁存于高速缓存寄存器172中。在读取操作期间,可将数据从高速缓存寄存器172传递到I/O控制电路系统160以用于输出到存储器子系统控制器115;接着可将新数据从数据寄存器170传递到高速缓存寄存器172。高速缓存寄存器172和/或数据寄存器170可形成存储器装置130的页缓冲器(例如,可形成其部分)。页缓冲器可进一步包含感测装置(在图1B中未展示),以例如通过感测连接到存储器单元阵列104的存储器单元的数据线的状态来感测所述存储器单元的数据状态。状态寄存器122可与I/O控制电路系统160和本地存储器控制器135通信以锁存状态信息用于输出到存储器子系统控制器115。
存储器装置130经由控制链路132从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,控制信号可包含芯片启用信号CE#、命令锁存启用信号CLE、地址锁存启用信号ALE、写入启用信号WE#、读取启用信号RE#和写入保护信号WP#。取决于存储器装置130的性质,可进一步经由控制链路132接收额外或替代控制信号(未展示)。在一个实施例中,存储器装置130经由多路复用的输入/输出(I/O)总线236从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)和数据信号(其表示数据),且经由I/O总线236将数据输出到存储器子系统控制器115。
举例来说,可在I/O控制电路系统160处经由I/O总线236的输入/输出(I/O)引脚[7:0]接收命令,且接着可将所述命令写入到命令寄存器124中。可在I/O控制电路系统160处经由I/O总线236的输入/输出(I/O)引脚[7:0]接收地址,且接着可将所述地址写入到地址寄存器114中。可在I/O控制电路系统160处经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]接收数据,且接着可将所述数据写入到高速缓存寄存器172中。随后可将数据写入到数据寄存器170中以用于对存储器单元阵列104进行编程。
在实施例中,可省略高速缓存寄存器172,且可将数据直接写入到数据寄存器170中。还可经由用于8位装置的输入/输出(I/O)引脚[7:0]或用于16位装置的输入/输出(I/O)引脚[15:0]输出数据。尽管可参考I/O引脚,但其可包含实现通过外部装置(例如,存储器子系统控制器115)电连接到存储器装置130的任何导电节点,例如常用的导电衬垫或导电凸块。
本领域的技术人员应了解,可提供额外的电路系统和信号,且已简化图1B的存储器装置130。应认识到,参考图1B所描述的各种块组件的功能性可不必与集成电路装置的不同组件或组件部分分离。举例来说,集成电路装置的单个组件或组件部分可适于执行图1B的多于一个块组件的功能性。替代地,可组合集成电路装置的一或多个组件或组件部分以执行图1B的单个块组件的功能性。另外,虽然根据各种信号的接收和输出的流行惯例描述特定I/O引脚,但应注意,可在各种实施例中使用I/O引脚(或其它I/O节点结构)的其它组合或其它数目个I/O引脚(或其它I/O节点结构)。
图2为根据本公开的一些实施例的起始存储器子系统中的错误校正操作的实例方法的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1A的奇偶校验组件113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行地执行。另外,可在各个实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程是可能的。
在操作205处,接收请求。举例来说,处理逻辑(例如,奇偶校验组件)从请求方接收从存储器装置(例如,存储器装置130)读取数据的请求。在一个实施例中,存储器子系统控制器115从主机系统120或从连接到存储器子系统110或在存储器子系统110内的某一其它组件接收请求。所述请求可识别待从存储器子系统110的存储器装置130读取的数据。
在操作210处,读取数据。举例来说,处理逻辑从存储器装置130读取感测字。在一个实施例中,感测字包含表示在操作205处请求的数据的位序列。在一个实施例中,奇偶校验组件113识别存储所请求数据的存储器装置130中的物理地址,从存储器装置130读取感测字,且在可执行奇偶校验和/或错误校正过程的同时将感测字暂时存储于缓冲器或其它存储位置中。图3中展示实例感测字310。感测字310被说明为包含八个感测字位的序列(即,SWB0到SWB7),但应理解,这仅为用于说明性目的的实例。在其它实施例中,感测字可包含任何数目个位,例如数千个位(例如,36k个位)。
在操作215处,执行一或多个方程式。举例来说,处理逻辑对感测字的对应子集执行若干奇偶校验方程式。在一个实施例中,奇偶校验方程式中的每一个对应于感测字的位的不同子集,但不同子集可共享一或多个位。举例来说,在一个实施例中,子集可包含感测字中的36k个位中的40个位。可存在例如各自配置成在40个位的不同子集上操作的数千(例如,3k)个奇偶校验方程式。在一个实施例中,与感测字的一或多个位相关联的奇偶校验方程式的数目可不同于与其它位相关联的奇偶校验方程式的数目。举例来说,如果感测字的一个位具有五个相关联奇偶校验方程式,那么感测字的另一位可具有八个相关联奇偶校验方程式。每一奇偶校验方程式产生指示感测字的对应子集中的设定为值‘1’的位的数目是偶数还是奇数的奇偶校验方程式结果。在一个实施例中,如果对应子集中的设定为值‘1’的位的数目为偶数,那么称奇偶校验方程式结果处于满足状态,且如果对应子集中的设定为值‘1’的位的数目为奇数,那么称奇偶校验方程式结果处于未满足状态。在另一实施例中,这些值(即,逻辑状态)可反转。由于感测字的任一位可以是多个不同子集的部分,因此所述位可促成多个奇偶校验方程式结果或与多个奇偶校验方程式结果相关联。在一个实施例中,感测字的每一位是由奇偶校验方程式所使用的相同数目个子集的部分(例如,4个子集)。在另一实施例中,感测字的一或多个位为不同数目个子集的部分。
在操作220处,确定校正子。举例来说,处理逻辑使用所确定奇偶校验方程式结果确定感测字的校正子。在一个实施例中,奇偶校验组件113逻辑地组合奇偶校验方程式结果以确定校正子,例如通过附接或串接奇偶校验方程式结果。图3中展示实例校正子320。校正子320被说明为包含八个校正子位的序列(即,SB0到SB7),但应理解,这仅为用于说明性目的的实例。在其它实施例中,校正子可包含任何数目个位,例如数千个位(例如,3k个位)。
图3为绘示根据本公开的一些实施例的用于配置迭代性错误校正参数的感测字校正子矩阵300的框图。如上文所描述,感测字310包含从存储器装置读取的若干位,且校正子320包含表示奇偶校验方程式结果的若干位。在所说明实例中,存在八个奇偶校验方程式,每一奇偶校验方程式对应于感测字310的位的不同子集。举例来说,由SB0表示的第一子集包含SWB0、SWB1、SWB2和SWB4。由SB1表示的第二子集包含SWB0、SWB1、SWB2和SWB5。由SB2表示的第三子集包含SWB0、SWB1、SWB2和SWB6。存在由校正子320的每一位表示的额外子集。在矩阵300中,值‘1’可指示感测字310的给定位是由校正子320的位表示的子集的部分,而值‘0’可指示感测字310的所述位并非所述子集的一部分。
在一个实施例中,奇偶校验方程式各自识别感测字310的作为每一对应子集的部分的位的逻辑状态,将那些位加在一起且确定结果是偶数还是奇数。换句话说,每一奇偶校验方程式确定感测字310的作为对应子集的部分且具有某一逻辑状态的位的数目是偶数还是奇数。举例来说,奇偶校验组件113可确定感测字310的对应子集中的设定为逻辑值‘1’的位的数目是偶数还是奇数。在一个实施例中,如果感测字310的对应子集中的设定为逻辑值‘1’的位的数目为偶数,那么奇偶校验方程式结果可为‘0’,指示满足奇偶校验方程式。如果感测字310的对应子集中的设定为逻辑值‘1’的位的数目为奇数,那么奇偶校验方程式结果可为‘1’,指示不满足奇偶校验方程式。校正子320的每一位表示这些奇偶校验方程式结果中的一个。因此,对于SB0,由于SWB0被设定为值‘1’,SWB1被设定为值‘0’,SWB2被设定为值‘1’,且SWB4被设定为值‘0’,因此在对应子集中存在感测字310的被设定为值‘1’的两个位。两个位为偶数,因此由SB0表示的奇偶校验方程式结果为‘0’,指示满足对应奇偶校验方程式。举例来说,对于SB2,由于SWB0被设定为值‘1’,SWB1被设定为值‘1’,SWB2被设定为值‘1’,且SWB6被设定为值‘1’,因此在对应子集中存在感测字310的被设定为值‘1’的三个位。三个位为奇数,因此由SB2表示的奇偶校验方程式结果为‘1’,指示不满足对应奇偶校验方程式。
如图3中所绘示,与感测字310的每一位相关联的奇偶校验方程式的数目不相同。换句话说,存在感测字310的与不同数目个奇偶校验方程式相关联的某些位。举例来说,SWB0与由SB0到SB7表示的八个不同奇偶校验方程式相关联。SWB1与由SB0、SB1、SB2、SB4、SB6和SB7表示的六个不同奇偶校验方程式相关联。SWB2与由SB0、SB1、SB2和SB5表示的四个不同奇偶校验方程式相关联。SWB3与由SB3、SB4、SB6和SB7表示的四个不同奇偶校验方程式相关联。SWB4与由SB0和SB5表示的两个不同奇偶校验方程式相关联。SWB5与由SB1、SB4、SB5和SB7表示的四个不同奇偶校验方程式相关联。SWB6与由SB2、SB3、SB4和SB7表示的四个不同奇偶校验方程式相关联。SWB7与由SB1、SB3、SB6和SB7表示的四个不同奇偶校验方程式相关联。
再次参考图2,在操作225处,进行确定。举例来说,处理逻辑确定感测字的校正子是否满足码字准则。在一个实施例中,奇偶校验组件113确定校正子中的所有奇偶校验方程式结果是否处于满足状态(例如,具有值‘0’)。在一个实施例中,如果校正子中的所有奇偶校验方程式结果处于满足状态,那么奇偶校验组件113确定校正子满足码字准则。相反,如果校正子中的所有奇偶校验方程式结果不处于满足状态(例如,一或多个具有值‘1’),那么奇偶校验组件113确定校正子不满足码字准则。如果感测字的校正子满足码字准则,那么奇偶校验组件113确定感测字中不存在错误,且在操作230处,将感测字作为所请求数据返回到请求方。
然而,如果感测字的校正子不满足码字准则,那么奇偶校验组件113确定感测字中存在一或多个错误,且在操作235处,使用经缩放位翻转阈值起始迭代性LDPC位翻转解码过程。在一个实施例中,每一迭代使用准则确定翻转经校正字的哪些位(即,从‘1’改变为‘0’,或反之亦然),且可包含例如来自先前完整迭代(即,紧接在当前迭代之前执行的迭代)的经校正字的任一位的处于未满足状态的且经归一化以说明与每一位相关联的奇偶校验方程式的数目的差异的奇偶校验方程式结果的最大数目。奇偶校验组件113可执行LDPC校正过程的多个迭代,直到在操作225处经校正字的校正子满足码字准则,或直到达到阈值迭代数目。下文关于图4描述迭代性LDPC校正过程的额外细节。
图4为根据本公开的一些实施例的使用跨列缩放的位翻转阈值用于不规则低密度奇偶校验解码的迭代性错误校正过程的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的奇偶校验组件113执行方法400。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行地执行。另外,可在各个实施例中省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程是可能的。
在操作405处,处理逻辑确定感测字的校正子是否满足码字准则。如果感测字的校正子满足码字准则(即,如果校正子中的所有奇偶校验方程式结果处于满足状态(例如,具有值‘0’)),那么在操作410处,处理逻辑确定感测字中不存在错误。然而,如果感测字的校正子不满足码字准则(即,校正子中的所有奇偶校验方程式结果不处于满足状态(例如,一或多个具有值‘1’)),那么奇偶校验组件113确定感测字中存在一或多个错误且起始迭代性LDPC校正过程。迭代性LDPC校正过程可包含若干迭代,以第一迭代开始且继续到一或多个后续迭代。
在操作415处,处理逻辑确定感测字的每一位的处于未满足状态的奇偶校验方程式结果的数目。使用上文和图3中所绘示的实例,感测字310的SWB0为对应于校正子320的SB0到SB7的子集的部分,感测字310的SWB1为对应于校正子320的SB0、SB1、SB2、SB4、SB6和SB7的子集的部分,且感测字310的SWB7为对应于校正子320的SB1、SB3、SB6和SB7的子集的部分。感测字310的额外位是由校正子320的每一位表示的不同子集的部分。对于SWB0,由于SB0被设定为值‘0’,SB1被设定为值‘0’,SB2被设定为值‘1’,SB3被设定为值‘1’,SB4被设定为值‘1’,SB5被设定为值‘0’,SB6被设定为值‘0’,且SB7被设定为值‘1’,因此存在校正子320的被设定为值‘1’的四个位,指示对应奇偶校验方程式结果处于未满足状态(即,SWB0的能量为四)。对于SWB1,由于SB0被设定为值‘0’,SB1被设定为值‘0’,SB2被设定为值‘1’,SB4被设定为值‘1’,SB6被设定为值‘0’,且SB7被设定为值‘1’,因此存在校正子320的被设定为值‘1’的三个位,指示对应奇偶校验方程式结果处于未满足状态。对于SWB7,由于SB1被设定为值‘0’,SB3被设定为值‘1’,SB6被设定为值‘0’,且SB7被设定为值‘1’,因此存在校正子320的被设定为值‘1’的两个位,指示对应奇偶校验方程式结果处于未满足状态。在另一实施例中,处理逻辑确定感测字的每一位的能量。取决于实施例,给定位的能量可表示与所述位相关联的未满足奇偶校验方程式的数目或未满足奇偶校验方程式的数目加上当前位值与其原始值的XOR。
在操作420处,处理逻辑确定感测字的每一位的处于未满足状态的奇偶校验方程式结果的最大数目。由于SWB0具有四个未满足奇偶校验方程式,SWB1具有三个未满足奇偶校验方程式,且SWB7具有两个未满足奇偶校验方程式,因此奇偶校验组件113可确定在当前迭代中最大数目为四个未满足奇偶校验方程式。应注意,将考虑感测字310的所有位,但此处为简洁起见而省略。奇偶校验组件113可存储(例如,在本地存储器119中或存储器子系统110中的其它地方)此最大数目的指示以供在后续迭代中使用。在另一实施例中,处理逻辑确定感测字的任一位的最大能量。
在操作425处,处理逻辑确定LDPC校正过程的当前迭代是否为第一迭代。如果当前迭代为第一迭代,那么在操作430处,处理逻辑翻转具有处于未满足状态的奇偶校验方程式结果的满足能量阈值条件的数目(或能级)的感测字中的任何位,且翻转与那些位相关联的奇偶校验方程式结果中的每一个。在一个实施例中,当能级大于或等于阈值能级时,满足能量阈值条件。在一个实施例中,阈值能级等于感测字的任一位的处于未满足状态的奇偶校验方程式结果的最大数目,如在操作425处所确定,但经缩放以说明与每一位相关联的奇偶校验方程式的数目的差异。在一个实施例中,能量(即,与所述位相关联的未满足奇偶校验方程式的数目)可被计算为与所述位相关联的奇偶校验方程式的总数目的百分比或分数,且与任一位相关联的最高百分比或分数可用作位翻转准则。下文提供缩放操作的额外细节。在操作430处翻转位后,处理逻辑返回到操作405且确定经更新校正子是否满足码字准则。
然而,如果处理逻辑在操作425处确定当前迭代并非第一迭代,那么在操作435处,处理逻辑缩放与感测字310的每一位相关联的未满足奇偶校验的数目。使用上述实例,奇偶校验组件113可确定与感测字的每一位相关联的相应能级和与感测字的每一位相关联的奇偶校验方程式的相应数目。奇偶校验组件113可进一步确定表示与感测字的每一位相关联的相应能级与奇偶校验方程式的相应数目之间的关系的相应值。举例来说,相应值可包含表示相对于感测字的每一位的相关联奇偶校验方程式的总数目的未满足奇偶校验方程式的数目的百分比或分数。此百分比或分数可称为百分比权重。下文在表1中呈现完整结果。奇偶校验组件113可进一步削减具有满足经缩放位翻转阈值的相应值的感测字中的任何位。在一个实施例中,奇偶校验组件113使用来自先前迭代的最大百分比权重作为经缩放阈值,且可翻转具有大于或等于经缩放阈值的百分比权重的经校正字中的任何位。举例来说,如果来自先前迭代的最大百分比权重为1.0,那么对于SWB6,奇偶校验组件113可重新计算经校正字的每一位的百分比权重,将那些百分比权重与最大百分比权重(即,经缩放位翻转阈值)进行比较,且接着翻转百分比权重为1.0的那些位。在其它实施例中,并非使用百分比或分数,奇偶校验组件113可基于相应列权重将缩放因数应用于每一位的能级,以便在将能级保持在整数值的同时对所述能级进行归一化,这在某些实施方案中可更有效地处理。
表1
在操作440处,处理逻辑确定在迭代性LDPC校正过程中所执行的迭代的数目是否满足迭代准则(例如,小于阈值迭代数目)。在一个实施例中,奇偶校验组件113维持计数器,所述计数器在执行每一迭代之后递增。奇偶校验组件113可将计数器的值与阈值(例如,30)进行比较以确定是否满足迭代准则。如果迭代的数目满足迭代准则,那么处理逻辑通过确定经更新校正子是否满足码字准则且进行到下一迭代而继续LDPC校正过程。然而,如果所执行的迭代的数目不满足迭代准则(例如,迭代的数目满足或超过阈值迭代数目),那么奇偶校验组件113可在操作445处确定无法完全校正经校正字且结束LDPC校正过程。
图5绘示计算机系统500的实例机器,在所述计算机系统内可执行指令集以用于使得所述机器执行本文中所论述的方法中的任何一或多种。在一些实施例中,计算机系统500可对应于包含、耦合到或利用存储器子系统(例如,图1A的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1A的奇偶校验组件113的操作)的主机系统(例如,图1A的主机系统120)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定待由所述机器进行的动作的指令集(依序或以其它方式)的任何机器。此外,虽然绘示单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的一或多种。
实例计算机系统500包含经由总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统518。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502配置成执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含用以经由网络520通信的网络接口装置508。
数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),所述机器可读存储媒体524上存储有一或多个指令集526或体现本文中所描述的方法或功能中的一或多个的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留于主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1A的存储器子系统110。
在一个实施例中,指令526包含实施对应于图1A的奇偶校验组件113的功能性的指令。虽然在实例实施例中将机器可读存储媒体524展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且通常将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较及以其它方式操纵的电或磁信号的形式。已证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等有时是便利的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标记。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于所需目的而专门构造,或其可包含通过存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于各自耦合到计算机系统总线的包含软盘、光盘、CD-ROM和磁性光盘的任何类型的磁盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁性卡或光学卡或适合于存储电子指令的任何类型的媒体。
本文中所呈现的算法和显示器本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造更加专用的设备以执行所述方法是方便的。将如下文描述中所阐述的那样呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种系统,其包括:
存储器装置;及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:
从所述存储器装置读取感测字;
对所述感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
使用所述多个奇偶校验方程式结果确定所述感测字的校正子;
确定所述感测字的所述校正子是否满足码字准则;及
响应于所述感测字的所述校正子不满足所述码字准则,使用缩放位翻转阈值执行迭代性低密度奇偶校验LDPC校正过程以校正所述感测字中的一或多个错误。
2.根据权利要求1所述的系统,其中所述处理装置用于执行进一步包括以下各项的操作:
从请求方接收从所述存储器装置读取数据的请求,其中所述感测字与所述数据相关联;及
响应于所述感测字的所述校正子满足所述码字准则,将所述感测字作为所请求数据返回到所述请求方。
3.根据权利要求1所述的系统,其中所述多个奇偶校验方程式中的每一个对应于所述感测字的不同子集,且其中所述多个奇偶校验方程式结果中的每一个指示所述感测字的对应子集中的设置为值‘1’的位的数目是偶数还是奇数。
4.根据权利要求1所述的系统,其中确定所述感测字的所述校正子包括逻辑地组合所述多个奇偶校验方程式结果,且其中确定所述感测字的所述校正子是否满足所述码字准则包括确定所述校正子中的所有所述多个奇偶校验方程式结果是否处于满足状态。
5.根据权利要求1所述的系统,其中执行所述迭代性LDPC校正过程包括:
确定与所述感测字的每一位相关联的相应能级;
确定与所述感测字的每一位相关联的奇偶校验方程式的相应数目;
确定表示与所述感测字的每一位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的关系的相应值;及
翻转所述感测字中的具有满足所述缩放位翻转阈值的相应值的任何位。
6.根据权利要求5所述的系统,其中所述缩放位翻转阈值包括表示与来自所述迭代性LDPC校正过程的先前迭代的所述感测字的一个位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的所述关系的最大值。
7.根据权利要求5所述的系统,其中与所述感测字的每一位相关联的所述相应能级包括每一位的处于未满足状态的奇偶校验方程式结果的相应数目。
8.根据权利要求1所述的系统,其中所述处理装置用于执行进一步包括以下各项的操作:
确定在所述迭代性LDPC校正过程中执行的迭代的数目是否满足迭代准则;
响应于所执行的迭代的所述数目满足所述迭代准则,继续所述LDPC校正过程;及
响应于所执行的迭代的所述数目不满足所述迭代准则,结束所述LDPC校正过程。
9.一种方法,其包括:
从存储器装置读取感测字;
对所述感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
使用所述多个奇偶校验方程式结果确定所述感测字的校正子;
确定所述感测字的所述校正子是否满足码字准则;及
响应于所述感测字的所述校正子不满足所述码字准则,使用缩放位翻转阈值执行迭代性低密度奇偶校验LDPC校正过程以校正所述感测字中的一或多个错误。
10.根据权利要求9所述的方法,其进一步包括:
从请求方接收从所述存储器装置读取数据的请求,其中所述感测字与所述数据相关联;及
响应于所述感测字的所述校正子满足所述码字准则,将所述感测字作为所请求数据返回到所述请求方。
11.根据权利要求9所述的方法,其中所述多个奇偶校验方程式中的每一个对应于所述感测字的不同子集,且其中所述多个奇偶校验方程式结果中的每一个指示所述感测字的对应子集中的设置为值‘1’的位的数目是偶数还是奇数。
12.根据权利要求9所述的方法,其中确定所述感测字的所述校正子包括逻辑地组合所述多个奇偶校验方程式结果,且其中确定所述感测字的所述校正子是否满足所述码字准则包括确定所述校正子中的所有所述多个奇偶校验方程式结果是否处于满足状态。
13.根据权利要求9所述的方法,其中执行所述迭代性LDPC校正过程包括:
确定与所述感测字的每一位相关联的相应能级;
确定与所述感测字的每一位相关联的奇偶校验方程式的相应数目;
确定表示与所述感测字的每一位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的关系的相应值;及
翻转所述感测字中的具有满足所述缩放位翻转阈值的相应值的任何位。
14.根据权利要求13所述的方法,其中所述缩放位翻转阈值包括表示与来自所述迭代性LDPC校正过程的先前迭代的所述感测字的一个位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的所述关系的最大值。
15.根据权利要求13所述的方法,其中与所述感测字的每一位相关联的所述相应能级包括每一位的处于未满足状态的奇偶校验方程式结果的相应数目。
16.根据权利要求9所述的方法,其进一步包括:
确定在所述迭代性LDPC校正过程中执行的迭代的数目是否满足迭代准则;
响应于所执行的迭代的所述数目满足所述迭代准则,继续所述LDPC校正过程;及
响应于所执行的迭代的所述数目不满足所述迭代准则,结束所述LDPC校正过程。
17.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使得所述处理装置执行包括以下各项的操作:
从存储器装置读取感测字;
对所述感测字的对应子集执行多个奇偶校验方程式以确定多个奇偶校验方程式结果;
确定所述多个奇偶校验方程式结果是否指示所述感测字中的错误;及
响应于所述奇偶校验方程式结果指示所述感测字中的错误,使用缩放位翻转阈值执行迭代性低密度奇偶校验LDPC校正过程以校正所述感测字中的所述错误。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中执行所述迭代性LDPC校正过程包括:
确定与所述感测字的每一位相关联的相应能级;
确定与所述感测字的每一位相关联的奇偶校验方程式的相应数目;
确定表示与所述感测字的每一位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的关系的相应值;及
翻转所述感测字中的具有满足所述缩放位翻转阈值的相应值的任何位。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中所述缩放位翻转阈值包括表示与来自所述迭代性LDPC校正过程的先前迭代的所述感测字的一个位相关联的所述相应能级与奇偶校验方程式的所述相应数目之间的所述关系的最大值。
20.根据权利要求18所述的非暂时性计算机可读存储媒体,其中与所述感测字的每一位相关联的所述相应能级包括每一位的处于未满足状态的奇偶校验方程式结果的相应数目。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/829,924 | 2022-06-01 | ||
US17/829,924 US11996860B2 (en) | 2022-06-01 | 2022-06-01 | Scaled bit flip thresholds across columns for irregular low density parity check decoding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117153232A true CN117153232A (zh) | 2023-12-01 |
Family
ID=88885028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310631400.1A Pending CN117153232A (zh) | 2022-06-01 | 2023-05-31 | 用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11996860B2 (zh) |
CN (1) | CN117153232A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806569A (zh) * | 2024-02-29 | 2024-04-02 | 合肥康芯威存储技术有限公司 | 一种存储设备以及数据处理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407290B2 (en) * | 2013-03-15 | 2016-08-02 | Sandisk Technologies Llc | Error-correction decoding with conditional limiting of check-node messages |
US9564931B1 (en) * | 2014-01-09 | 2017-02-07 | Marvell International Ltd. | Systems and methods for using decoders of different complexity in a hybrid decoder architecture |
US10089177B2 (en) * | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US10075190B2 (en) * | 2015-10-27 | 2018-09-11 | Sandisk Technologies Llc | Adaptive scheduler for decoding |
US20180032396A1 (en) * | 2016-07-29 | 2018-02-01 | Sandisk Technologies Llc | Generalized syndrome weights |
US10116333B2 (en) * | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
US10547332B2 (en) * | 2017-02-01 | 2020-01-28 | Tsofun Algorithm Ltd. | Device, system and method of implementing product error correction codes for fast encoding and decoding |
US10848182B2 (en) * | 2018-09-13 | 2020-11-24 | Apple Inc. | Iterative decoding with early termination criterion that permits errors in redundancy part |
-
2022
- 2022-06-01 US US17/829,924 patent/US11996860B2/en active Active
-
2023
- 2023-05-31 CN CN202310631400.1A patent/CN117153232A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806569A (zh) * | 2024-02-29 | 2024-04-02 | 合肥康芯威存储技术有限公司 | 一种存储设备以及数据处理方法 |
CN117806569B (zh) * | 2024-02-29 | 2024-05-07 | 合肥康芯威存储技术有限公司 | 一种存储设备以及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230396269A1 (en) | 2023-12-07 |
US11996860B2 (en) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113345513B (zh) | 使用来自先前迭代的准则配置迭代性错误校正参数 | |
CN111081308A (zh) | 用于混合非易失性存储系统的系统和方法 | |
US11676679B2 (en) | Two-layer code with low parity cost for memory sub-systems | |
US10120753B2 (en) | Methods and apparatuses for error correction | |
US11699491B2 (en) | Double interleaved programming of a memory device in a memory sub-system | |
CN113127254A (zh) | 存储器子系统中多平面奇偶校验数据的存储管理 | |
CN116775368A (zh) | 用于以不同码率在分区之间回拷的多层码率架构 | |
CN117153232A (zh) | 用于不规则低密度奇偶校验解码的跨列缩放的位翻转阈值 | |
US11750218B2 (en) | Iterative error correction with adjustable parameters after a threshold number of iterations | |
CN117149059A (zh) | 非易失性存储器装置中的功率高效码字加扰 | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
CN112328508B (zh) | 多层存储器中的层交错 | |
US20230396271A1 (en) | Early stopping of bit-flip low density parity check decoding based on syndrome weight | |
US11394403B1 (en) | Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices | |
CN115273925B (zh) | 存储器子系统刷新 | |
US11861239B2 (en) | Encoding and decoding data bits stored in a combination of multiple memory cells | |
US20240296093A1 (en) | Error correction decoder, storage device including error correction decoder, and operating method thereof | |
CN113126899B (zh) | 完全多平面操作启用 | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US20240202073A1 (en) | Read recovery | |
US20230134281A1 (en) | Shortened single-level cell memory programming | |
CN117594100A (zh) | 存储器装置中的读取验证节奏及时序 | |
CN118260156A (zh) | 存储器装置中的多层级健康状态 | |
KR20240135252A (ko) | 에러 정정을 수행하는 에러 정정 디코더, 에러 정정 디코더를 포함하는 저장 장치 및 그 동작 방법 | |
CN115729459A (zh) | 管理存储器子系统中的页地址和分区号的分布 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |