CN112331244B - 广义低密度奇偶校验码的软输入软输出分量代码解码器 - Google Patents

广义低密度奇偶校验码的软输入软输出分量代码解码器 Download PDF

Info

Publication number
CN112331244B
CN112331244B CN202010467018.8A CN202010467018A CN112331244B CN 112331244 B CN112331244 B CN 112331244B CN 202010467018 A CN202010467018 A CN 202010467018A CN 112331244 B CN112331244 B CN 112331244B
Authority
CN
China
Prior art keywords
error
codeword
distance
code
modes
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
Application number
CN202010467018.8A
Other languages
English (en)
Other versions
CN112331244A (zh
Inventor
吕宣宣
张帆
熊晨荣
美萨姆·阿沙迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112331244A publication Critical patent/CN112331244A/zh
Application granted granted Critical
Publication of CN112331244B publication Critical patent/CN112331244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了用于改进的二进制线性代码的解码的装置、系统和方法。示例性方法包括:接收噪声码字;基于噪声码字计算校正子;识别与校正子相对应的N个错误模式;从N个错误模式中选择M个错误模式,其中M≤N,M和N是正整数,其中对应于M个错误模式中的每个错误模式的码字与噪声码字之间的距离小于对应于任何其它错误模式的码字与噪声码字之间的距离,并且其中该距离不包括汉明距离;逐一地基于M个错误模式中的每个错误模式来修改噪声码字;并且逐一地对所修改的噪声码字进行解码,直到实现成功解码。

Description

广义低密度奇偶校验码的软输入软输出分量代码解码器
技术领域
本专利文件总体涉及非易失性存储器装置,并且更特别地,涉及非易失性存储器装置中的错误校正。
背景技术
数据完整性是任何数据存储装置和数据传输的重要特性。建议将强错误校正码(ECC)用于包括NAND闪速存储器装置的各种类型的数据存储装置。
固态驱动器(SSD)使用多层NAND闪存装置进行永久性存储。然而,多层NAND闪速存储器装置本质上是不可靠的,并且通常需要使用ECC以牺牲额外的ECC奇偶校验位存储空间来使数据可靠性显著提高。人们需要更高效的ECC控制机制,以最少的奇偶性和复杂度要求提供最大的数据保护。
发明内容
本公开的技术的实施例涉及用于对广义低密度奇偶校验(GLDPC)码的分量代码进行软输入软输出(SISO)解码的方法、装置和系统。除其它特征和优点外,本发明文件描述的方法和装置还能够有利地实现用于GLDPC的分量代码的SISO算法的低复杂度实施例。
在一个示例性方面,一种用于改进的二进制线性代码的解码的方法,包括:接收噪声码字;基于噪声码字计算校正子;识别与校正子相对应的N个错误模式;从N个错误模式中选择M个错误模式,其中M≤N,M和N是正整数,其中对应于M个错误模式中的每个错误模式的码字与噪声码字之间的距离小于对应于任何其它错误模式的码字与噪声码字之间的距离,并且其中距离不包括汉明距离;逐一地基于M个错误模式中的每个错误模式来修改噪声码字;并且逐一地对所修改的噪声码字进行解码,直到实现成功解码。
在另一个示例性方面,上述方法可以由包括处理器的视频编码器设备或视频解码器设备来实施。
在又一个示例性方面,这些方法可以以处理器可运行指令的形式来实施,并且存储在计算机可读编程介质中。
本专利文件中描述的主题可以通过提供以下一个或多个特征的特定方式来实施。
附图说明
图1示出存储器系统的示例。
图2是示例性非易失性存储器装置的图示。
图3是示出非易失性存储器装置的单元电压电平分布(Vth)的示例性示图。
图4是示出非易失性存储器装置的单元电压电平分布(Vth)的另一示例性示图。
图5是示出编程干扰之前和之后的非易失性存储器装置的单元电压电平分布(Vth)的示例性示图。
图6是示出非易失性存储器装置的单元电压电平分布(Vth)根据参考电压的示例性示图。
图7是广义低密度奇偶校验(G-LDPC)错误校正系统的高级框图。
图8是比较二进制对称信道(BSC)中的GLDPC码的码字失败率(CFR)的示例性特性图。
图9示出用于改进的二进制线性代码的解码的另一示例性方法的流程图。
具体实施方式
广义低密度奇偶校验(GLDPC)是通过将传统LDPC码的Tanner图中的部分或全部单一奇偶校验(SPC)约束节点替换成更强的广义约束节点来构成的,其中广义约束节点可以对应于任何具有块长K的线性块代码。与每个广义约束节点相关联的子代码称为分量代码。GLDPC码和传统的LDPC码一样,适用于低复杂度的消息传递解码,并且具有包括最小距离大、迭代解码性能优、解码收敛速度快等诸多潜在优点。广泛使用的分量代码的示例包括汉明代码。
图1至图6概述可以实施本公开的技术的实施例的非易失性存储器系统。
图1是根据本公开的技术的一些实施例的存储器系统100的示例的框图。存储器系统100包括存储器模块110,该存储器模块110可以用于存储供其它电子装置或系统使用的信息。存储器系统100可以被集成(例如,位于电路板上)到其它电子装置和系统中。可选地,存储器系统100可以被实施为诸如USB闪存驱动器和固态驱动器(SSD)的外部存储装置。
存储器系统100中包括的存储器模块110可以包括存储器区域(例如,存储器阵列)102、104、106和108。存储器区域102、104、106和108中的每个存储器区域可以被包括在单个存储器管芯中或多个存储器管芯中。存储器管芯可以被包括在集成电路(IC)芯片中。
存储器区域102、104、106和108中的每个存储器区域包括多个存储器单元。可以基于存储器单元组(memory unit)来执行读取操作、编程操作或擦除操作。因此,每个存储器单元组可以包括预定数量的存储器单元。存储器区域102、104、106或108中的存储器单元可以被包括在单个存储器管芯中或多个存储器管芯中。
存储器区域102、104、106和108中的每一个中的存储器单元可以在存储器单位中以行和列布置。存储器单元组中的每一个可以是物理单元组。例如,多个存储器单元的组可以形成存储器单元组。存储器单元组中的每一个也可以是逻辑单元组。例如,存储器单元组可以是可以通过诸如存储体(bank)地址、块地址和基于页面的地址的唯一地址来识别的存储体、块或页面。在读取或写入操作期间,与特定存储器单位相关联的唯一地址可以用于访问该特定存储器单元组。基于该唯一地址,可以将信息写入该特定存储器单元组中的一个或多个存储器单元或从中检索信息。
存储器区域102、104、106和108中的存储器单元可以包括非易失性存储器单元。非易失性存储器单元的示例包括闪速存储器单元、相变存储器(PRAM)单元、磁阻随机存取存储器(MRAM)单元或其它类型的非易失性存储器单元。在存储器单元被配置成NAND闪速存储器单元的示例性实施例中,可以基于页面执行读取操作或写入操作。然而,NAND闪速存储器中的擦除操作是基于块执行的。
非易失性存储器单元中的每一个可以被配置成单层单元(SLC)或多层存储器单元。单层单元可以每单元存储一位信息。多层存储器单元可以每单元存储多于一位的信息。例如,存储器区域102、104、106和108中的存储器单元中的每一个可以被配置成每单元存储2位信息的多层单元(MLC)、每单元存储3位信息的三层单元(TLC)、或者每单元存储4位信息的四层单元(QLC)。在另一个示例中,存储器区域111中的存储器单元中的每一个可被配置成存储至少一位信息(例如,一位信息或多位信息),并且存储器区域112中的存储器单元中的每一个可以被配置成存储多于一位的信息。
如图1所示,存储器系统100包括控制器模块120。控制器模块120包括与存储器模块110通信的存储器接口121、与主机(未示出)通信的主机接口126、执行固件级代码的处理器124以及临时地或永久地存储可运行的固件/指令和相关信息的高速缓存123和系统存储器122。在一些实施例中,控制器模块120可以包括对存储器模块110中存储的信息执行错误校正操作的错误校正引擎125。错误校正引擎125可以被配置成检测/校正单个位或多个位错误。在另一实施例中,错误校正引擎125可以位于存储器模块110中。
主机可以是包括一个或多个处理器的装置或系统,操作该一个或多个处理器以从存储器系统100中检索数据或将数据存储或写入存储器系统100。在一些实施例中,主机的示例可以包括个人计算机(PC)、便携式数码装置、数码相机、数字多媒体播放器、电视和无线通信装置。
在一些实施例中,控制器模块120还可以包括主机接口126,以与主机通信。主机接口126可以包括符合包括但不限于以下主机接口规范中的至少一种的组件:串行高级技术附件(SATA)、串列小型计算机系统接口(SAS)规范、高速外围组件互连(PCIe)。
图2示出根据本公开的技术的一些实施例实施的存储器单元阵列的示例。
在一些实施例中,存储器单元阵列可以包括NAND闪速存储器阵列,该NAND闪速存储器阵列被划分成许多块,并且每个块包含一定数量的页面。每个块包括多个存储器单元串,并且每个存储器单元串包括多个存储器单元。
在存储器单元阵列是NAND闪速存储器阵列的一些实施例中,基于页面执行读取和写入(编程)操作,基于块执行擦除操作。在对块中包含的任何页面执行编程操作之前,必须同时擦除相同块中的所有存储器单元。在实施例中,NAND闪速存储器可以使用偶数/奇数位线结构。在另一实施例中,NAND闪速存储器可以使用全位线结构。在偶数/奇数位线结构中,偶数和奇数位线沿着每条字线交错,并被交替访问,使得偶数和奇数位线中的每一对可以共享诸如页面缓冲器的外围电路。在全位线结构中,所有位线可以被同时访问。
图3示出多层单元装置中的阈值电压分布曲线的示例,其中将每个编程/擦除状态的单元数量绘制成阈值电压的函数。如图3所示,阈值电压分布曲线包括阈值电压最低的擦除状态(表示为“ER”并且对应于“11”),以及读取电压处于状态(由虚线表示的)之间的三个编程状态(分别表示为“P1”、“P2”和“P3”,分别对应于“01”、“00”和“10”)。在一些实施例中,因为存储器阵列的材料特性的差异,编程/擦除状态的阈值电压分布中的每一个具有有限的宽度。
在将多于一个数据位写入存储器单元中时,由于相邻分布之间的距离减小,需要精细设置存储器单元的阈值电压电平。这是通过使用增量步进脉冲编程(ISPP)来实现的,即,使用编程和校验方法,利用对字线施加的阶梯式编程电压,对相同字线上的存储器单元重复编程来实现的。每个编程状态与在验证操作中使用的验证电压相关联,并且设置每个阈值电压分布窗口的目标位置。
阈值电压分布失真或重叠可能导致读取错误。下文中将论述,由于诸如编程和擦除(P/E)周期、单元间干扰和数据保持错误等而使理想的存储器单元阈值电压分布可能显著地失真或重叠,并且在大多数情况下,这种读取错误可以通过使用错误校正码(ECC)来管理。
图4示出理想阈值电压分布曲线410的示例和失真的阈值电压分布曲线420的示例。纵轴表示存储器单元的数量,存储器单元具有在横轴上表示的特定阈值电压。
对于n位多层单元NAND闪速存储器,可以将每个单元的阈值电压编程为2n个可能值。在理想的多层单元NAND闪速存储器中,每个值对应于不重叠的阈值电压窗口。
闪速存储器P/E周期会导致单元晶体管的电荷撷取层的浮栅的隧道氧化层损坏,从而导致阈值电压偏移,并因此逐渐劣化存储器装置的噪声裕度。随着P/E周期的增加,不同编程状态下的相邻分布之间的裕度减小,并且最终这些分布开始重叠。具有被编程在相邻分布的重叠范围内的阈值电压的存储器单元中存储的数据位可能被误判为不同于原始目标值的值。
图5示出NAND闪速存储器中的单元间干扰的示例。单元间干扰还可能导致闪存单元的阈值电压失真。一个存储器单元晶体管的阈值电压偏移可以通过干扰单元与牺牲单元之间的寄生电容耦合效应来影响该存储器单元晶体管的相邻存储器单元晶体管的阈值电压。单元间干扰的量可能受NAND闪速存储器位线结构的影响。在偶数/奇数位线结构中,一条字线上的存储器单元交替地连接到偶数和奇数位线,并且在相同字线中,偶数单元先于奇数单元被编程。因此,偶数单元和奇数单元受到不同量的单元间干扰。与偶数/奇数位线结构的偶数单元相比,全位线结构中的单元受到的单元间干扰更小,并且全位线结构可以有效支持高速电流感测,从而提高存储器的读取和验证速度。
图5中的虚线表示所考虑的单元的P/E状态(在编程干扰之前)的标称分布,并且“相邻状态值”表示相邻状态已被编程到的值。如图5所示,如果将相邻状态编程为P1,则所考虑的单元的阈值电压分布偏移特定的量。然而,如果将相邻状态编程为具有比P1更高的阈值电压的P2,则与为P1的相邻状态相比,这导致更大的偏移。类似地,当将相邻状态编程为P3时,阈值电压分布的偏移最大。
图6示出通过比较正常的阈值电压分布和偏移的阈值电压分布的NAND闪速存储器中的保持错误的示例。NAND闪速存储器中存储的数据往往会随着时间的推移而损坏,这称为数据保持错误。保持错误是由单元晶体管的浮栅或电荷撷取层中存储的电荷损失导致的。由于浮栅或电荷撷取层的损耗,具有更多编程擦除周期的存储器单元更可能经历保持错误。在图6的示例中,比较上行的电压分布(损坏之前)和下行的电压分布(保持错误损害)显示出向左偏移。
在一些实施例中,图5和图6(例如,由于P/E周期)中描述的保持错误需要使用GLDPC来确保存储的位被正确读取。然而,使用SISO算法来实施GLDPC的分量代码通常需要高度的复杂度。本公开的技术的实施例通过使用校正子和信道信息两者来选择解码输出候选项,在保持良好的错误校正性能的同时降低了SISO汉明解码器的复杂度。
图7示出根据本公开的一些实施例的错误校正系统700的示例性高级框图。在示例中,结合数据存储来描述GLDPC码。然而,本公开的实施例并不限于此。相反,实施例类似地适用于GLDPC码的其它用途,包括例如数据传输。
如图7所示,GLDPC编码器710接收信息位,该信息位包括期望存储在存储系统720中的数据。GLDPC编码器710输出GLDPC编码的数据(例如,GLDPC码字),并且将其写入存储系统720。
在各个实施例中,存储系统720可以包括诸如(例如,磁性)磁盘驱动存储装置、闪存存储装置等的各种存储类型或介质。在一些实施例中,该技术被用在收发器中,并且数据通过有线和/或无线信道来传输和接收,而不是被写入存储装置或从存储装置中读取。在这种情况下,接收到的码字中的错误可能是在码字的传输期间被引入的。
当所存储的数据被(例如,由存储数据的应用或用户)请求或以其它方式需要时,检测器730从存储系统720接收数据。接收到的数据可能包括一些噪声或错误。检测器730对接收到的数据执行检测,并输出判决和/或可靠性信息。例如,软输出检测器针对每个所检测的位输出可靠性信息和判决。另一方面,硬输出检测器在不提供相应可靠性信息的情况下输出对每个位的判决。例如,硬输出检测器可以在不指示检测器对判决的确定程度或确定性的情况下输出特定位是“1”还是“0”的判决。相反,软输出检测器输出判决以及与判决相关联的可靠性信息。通常,可靠性值指示检测器对给定判决的确定程度。
判决和/或可靠性信息被传递到GLDPC解码器740,该GLDPC解码器740使用判决和可靠性信息执行GLDPC解码。软输入解码器使用判决和可靠性信息来解码码字。硬解码器仅在解码器中利用判决值来解码码字。在许多情况下,解码是迭代的,并且GLDPC解码器740包括多个组成解码器(constituent decoders),组成解码器中的每一个可以是硬解码器或软解码器。例如,当组成码字是BCH码时,BCH解码器可以被用于对这样的每个组成码字进行硬解码。另外地或可选地,最大后验概率(MAP)解码器可以被用于对组成码字中的每一个进行软解码。由GLDPC解码器740生成的经解码位被传递到适当的实体(例如,请求经解码位的用户或应用)。通过适当的编码和解码,信息位与经解码位相匹配。
在示例中,考虑具有代码长度n、信息长度k和最小距离d的汉明码。参数满足[n,k,d]=[2m-1,2m-1-m,m],其中m为正整数。在图7的上下文中,发送器将表示为c的汉明码字作为经调制码字x通过加性高斯白噪声AWGN信道发送。接收到的信号为y=x+n,其中n为高斯噪声。然后接收器根据接收到的信号y估计位序列在一些实施例中,这可以通过基于y计算校正子来实现。对于固定的校正子,收集所有可能的错误模式,然后选择最相邻的接收信号y的M个最可能的错误模式。
在示例中,(7,4,3)汉明码被用于阐明本公开的技术的某些特征和方面。假设(7,4,3)汉明码的失真位序列的校正子为z=(0 0 1)。因此,利用元素ei,j收集矩阵E中的可能的错误模式:
然后,对于所有错误模式(错误模式矩阵E中的每一行),选择最接近所接收信号y的M个相邻错误模式,而不是选择最少硬错误数量的错误模式。在示例中,选择非汉明距离最小的M个相邻错误模式。在示例中,任何不包括汉明距离的距离指标都可以被用来选择最接近的M个相邻错误模式。如果编码器和解码器之间的信道(例如,图7中的720)是AWGN信道,则用于选择最接近的M个相邻错误模式的距离是欧几里得距离。如果信道为非高斯信道,则该距离为非欧几里得距离,但不包括汉明距离。
在一些实施例中,计算矩阵中每个错误模式的可靠性。在示例中,可靠性可以是概率、对数似然比(LLR)等。如果可靠性大于第一阈值Ts,则将其选择为解码输出候选项,并在矩阵E中标记其相应的错误模式。在示例中,当所有候选项的可靠性的总和大于第二阈值Ta时,终止搜索,并且已经确定了待分析的M个错误模式的集合。
在示例中,令Pi表示每一行i的给定错误模式逐列相乘的概率值。在这M个错误模式中,将概率计算为:
归一化之后,将概率计算为:
对于第j位,对所有模式中x=1的概率Pi求和,并且对于第i行,计算出以下概率:
随后,可以计算对数似然比(LLR)为:
图8是比较二进制对称信道(BSC)中的GLDPC码的码字失败率(CFR)的示例性特性图。在图8所示的示例中,GLDPC分量代码是M=652的(63,57)汉明码。如此处所见,具有二次复杂度的本公开的技术(具有圆形标记)的性能接近具有指数复杂度的MAP算法(具有三角形标记)的性能。选择具有最小硬错误(具有方形标记)的错误模式的GLDPC具有与本文描述的某些错误相同的复杂度,但性能更差。
图9示出用于改进的二进制线性代码的解码的方法900的流程图。方法900包括,在操作910处,接收噪声码字。在示例中,噪声码字是已经受到电路级噪声影响的码字,电路级噪声可以是加性高斯白噪声AWGN或非高斯噪声、或其组合。在其它示例中,噪声码字是已经被错误污染的码字,从而导致一个位的值从“1”翻转成“0”,反之亦然。
方法900包括,在操作920处,基于噪声码字计算校正子。
方法900包括,在操作930处,识别与校正子相对应的N个错误模式。
方法900包括,在操作940处,从N个错误模式中选择M个错误模式,其中M≤N,M和N是正整数,其中对应于M个错误模式中的每个错误模式的码字与噪声码字之间的距离小于对应于任何其它错误模式的码字与噪声码字之间的距离,并且其中该距离不包括汉明距离;
方法900包括,在操作950处,逐一地基于M个错误模式中的每个错误模式修改噪声码字。
方法900包括,在操作960处,逐一地对所修改的噪声码字进行解码,直到实现成功解码。
在一些实施例中,二进制线性代码是(n,k,d)汉明码,其是广义低密度奇偶校验(G-LDPC)码的分量代码。在示例中,n=7、k=4并且d=3。
在一些实施例中,该距离是欧几里得距离。在其它实施例中,该距离是与汉明距离不同的非欧几里得距离。
在一些实施例中,从N个错误模式中选择M个错误模式,包括以下操作:针对N个错误模式中的每个错误模式计算可靠性指标;并且基于错误模式的可靠性指标与第一阈值的比较,在M个错误模式中选择错误模式。在示例中,可靠性指标是对数似然比。在另一示例中,可靠性指标是概率。在又一示例中,从N个错误模式中选择M个错误模式进一步基于M个错误模式中的每个错误模式的可靠性指标的总和与第二阈值的比较。
在一些实施例中,M是预定值。如果两个码字具有相同的可靠性指标,并且在M个错误模式中只可以包含其中一个码字,则可以随机选择两个码字之一。可选地,可以选择索引较小(或较大)的码字。在其它实施例中,可以增加M来选择具有相同可靠性指标的码字。
在一些实施例中,可以选择M的值来权衡性能与复杂度,反之亦然。例如,因为更多的候选错误模式被分析,所以可以使用更高的M值来提高性能,但这增加了复杂度。可选地,使用更小的M将会减少计算复杂度,但如果没有选择正确的错误模式,则可能会导致性能稍微劣化。
在一些实施例中,实现成功解码对应于非易失性存储器中成功的读取操作。在示例中,非易失性存储器是NAND闪速存储器。
本专利文件中描述的主题和函数运算的实施例可以被实施在各种系统、数字电子电路中或者在计算机软件、固件或硬件中,包括本说明书中所公开的结构以及它们的结构等同方案或者在它们中的一个或多个的组合中。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序产品,即,编码在有形的和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,以由数据处理设备执行或控制数据处理设备的操作。计算机可读介质可以是机器可读存储装置、机器可读存储衬底、存储器装置、影响机器可读传播信号的物质组成或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一项或多项的组合的代码。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言)来编写,并且可以以任何形式进行部署,包括独立运行程序或模块、组件、子程序或适用于计算环境的其它单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在文件的一部分中,该文件保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本说明书中描述的进程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作和生成输出来执行功能。进程和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适用于执行计算机程序的处理器包括通用和专用微处理器,以及任意种类的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括或可操作地联接到一个或多个用于存储数据的大容量存储装置,例如,磁性光盘、磁光盘或光盘,以从中接收数据或向其传送数据或者两者皆有。但是,计算机不必具有此类装置。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括例如诸如EPROM、EEPROM和闪速存储器装置的半导体存储器装置。处理器和存储器可以由专用逻辑电路补充或集成到专用逻辑电路中。
尽管该专利文件包含许多细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对专用于特定发明的特定实施例的特征的描述。在单独的实施例的上下文中,在该专利文件中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以分别以多个实施例单独或以任何合适的子组合来实施。此外,尽管以上将特征描述为在某些组合中发挥作用,甚至最初也这样声明,但是在某些情况下,可以从权利要求的组合中删除一个或多个特征,并且权利要求的组合可以针对子组合或子组合的变型。
类似地,尽管在附图中以特定顺序描述了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。此外,在该专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
仅描述了一些实施例和示例,并且基于该专利文件中所描述和示出的内容可以进行其它实施、提高和变化。

Claims (22)

1.一种用于改进的二进制线性代码的解码的方法,包括:
接收噪声码字;
基于所述噪声码字计算校正子;
识别与所述校正子相对应的N个错误模式;
从所述N个错误模式中选择M个错误模式,其中M和N是正整数,其中M小于或等于N,其中对应于所述M个错误模式中的每个错误模式的码字与所述噪声码字之间的距离小于对应于任何其它错误模式的码字与所述噪声码字之间的距离,并且其中所述距离不包括汉明距离;
逐一地基于所述M个错误模式中的每个错误模式来修改所述噪声码字;以及
逐一地对所修改的噪声码字进行解码,直到实现成功解码。
2.根据权利要求1所述的方法,其中所述二进制线性代码是(n,k,d)汉明码,所述(n,k,d)汉明码是广义低密度奇偶校验码即G-LDPC码的分量代码。
3.根据权利要求2所述的方法,其中n=7、k=4并且d=3。
4.根据权利要求1所述的方法,其中所述距离是欧几里得距离。
5.根据权利要求1所述的方法,从所述N个错误模式中选择所述M个错误模式包括:
针对所述N个错误模式中的每个错误模式计算可靠性指标;以及
基于所述错误模式的所述可靠性指标与第一阈值的比较,选择所述M个错误模式中的错误模式。
6.根据权利要求5所述的方法,其中所述可靠性指标是对数似然比。
7.根据权利要求5所述的方法,其中所述可靠性指标是概率。
8.根据权利要求5所述的方法,其中从所述N个错误模式中选择所述M个错误模式进一步基于所述M个错误模式中的每个错误模式的所述可靠性指标的总和与第二阈值的比较。
9.根据权利要求1所述的方法,其中实现成功解码对应于非易失性存储器中成功的读取操作。
10.根据权利要求9所述的方法,其中所述非易失性存储器是NAND闪速存储器。
11.一种用于改进的二进制线性代码的解码的系统,包括:
处理器和存储器,所述存储器包括其上存储的指令,其中所述指令在被所述处理器运行时使所述处理器:
接收噪声码字;
基于所述噪声码字计算校正子;
识别与所述校正子相对应的N个错误模式;
从所述N个错误模式中选择M个错误模式,其中M和N是正整数,其中M小于或等于N,其中对应于所述M个错误模式中的每个错误模式的码字与所述噪声码字之间的距离小于对应于任何其它错误模式的码字与所述噪声码字之间的距离,并且其中所述距离不包括汉明距离;
逐一地基于所述M个错误模式中的每个错误模式来修改所述噪声码字;并且
逐一地对所修改的噪声码字进行解码,直到实现成功解码。
12.根据权利要求11所述的系统,其中所述二进制线性代码是(7,4,3)汉明码,所述(7,4,3)汉明码是广义低密度奇偶校验码即G-LDPC码的分量代码。
13.根据权利要求11所述的系统,其中所述处理器运行的所述指令进一步使所述处理器执行作为从所述N个错误模式中选择所述M个错误模式的一部分的以下操作:
针对所述N个错误模式中的每个错误模式计算可靠性指标;以及
基于所述错误模式的所述可靠性指标与第一阈值的比较,选择所述M个错误模式中的错误模式。
14.根据权利要求13所述的系统,其中所述可靠性指标是概率或对数似然比。
15.根据权利要求13所述的系统,其中从所述N个错误模式中选择所述M个错误模式进一步基于所述M个错误模式中的每个错误模式的所述可靠性指标的总和与第二阈值的比较。
16.根据权利要求11所述的系统,其中所述距离是欧几里得距离。
17.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储用于改进的二进制线性代码的解码的指令,包括:
用于接收噪声码字的指令;
用于基于所述噪声码字计算校正子的指令;
用于识别与所述校正子相对应的N个错误模式的指令;
用于从所述N个错误模式中选择M个错误模式的指令,其中M和N是正整数,其中M小于或等于N,其中对应于所述M个错误模式中的每个错误模式的码字与所述噪声码字之间的距离小于对应于任何其它错误模式的码字与所述噪声码字之间的距离,并且其中所述距离不包括汉明距离;
用于逐一地基于所述M个错误模式中的每个错误模式来修改所述噪声码字的指令;以及
用于逐一地对所修改的噪声码字进行解码直到实现成功解码的指令。
18.根据权利要求17所述的存储介质,其中所述二进制线性代码是(7,4,3)汉明码,所述(7,4,3)汉明码是广义低密度奇偶校验码即G-LDPC码的分量代码。
19.根据权利要求17所述的存储介质,其中用于从所述N个错误模式中选择所述M个错误模式的指令包括:
用于针对所述N个错误模式中的每个错误模式计算可靠性指标的指令;以及
用于基于所述错误模式的所述可靠性指标与第一阈值的比较,选择所述M个错误模式中的错误模式的指令。
20.根据权利要求19所述的存储介质,其中所述可靠性指标是概率或对数似然比。
21.根据权利要求19所述的存储介质,其中从所述N个错误模式中选择所述M个错误模式进一步基于所述M个错误模式中的每个错误模式的所述可靠性指标的总和与第二阈值的比较。
22.根据权利要求17所述的存储介质,其中实现成功解码对应于NAND闪速存储器中成功的读取操作。
CN202010467018.8A 2019-07-18 2020-05-28 广义低密度奇偶校验码的软输入软输出分量代码解码器 Active CN112331244B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/516,110 US10915396B1 (en) 2019-07-18 2019-07-18 Soft-input soft-output component code decoder for generalized low-density parity-check codes
US16/516,110 2019-07-18

Publications (2)

Publication Number Publication Date
CN112331244A CN112331244A (zh) 2021-02-05
CN112331244B true CN112331244B (zh) 2024-03-05

Family

ID=74302871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010467018.8A Active CN112331244B (zh) 2019-07-18 2020-05-28 广义低密度奇偶校验码的软输入软输出分量代码解码器

Country Status (2)

Country Link
US (1) US10915396B1 (zh)
CN (1) CN112331244B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114399445A (zh) * 2022-01-18 2022-04-26 东南大学 一种抗全局光照的自对齐异或码方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932177A (zh) * 2017-05-26 2018-12-04 爱思开海力士有限公司 具有可变长度分量的广义低密度奇偶校验码
CN109428605A (zh) * 2017-08-31 2019-03-05 爱思开海力士有限公司 利用校正子解码分量代码的用于g-ldpc码的位翻转解码器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856660B1 (en) * 1996-10-11 2005-02-15 Hitachi, Ltd. Signal processing method and apparatus and disk device using the method and apparatus
US5930272A (en) * 1997-06-10 1999-07-27 Efficient Channel Coding, Inc. Block decoding with soft output information
US7325183B2 (en) * 2004-07-21 2008-01-29 Hewlett-Packard Development Company, L.P. Error correction code generation method and apparatus
US8040953B2 (en) * 2005-09-29 2011-10-18 Marvell World Trade Ltd. Reliability metric generation for trellis-based detection and/or decoding
US7765458B1 (en) * 2005-09-29 2010-07-27 Marvell International Ltd. Error pattern generation for trellis-based detection and/or decoding
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
TW200947882A (en) * 2008-05-13 2009-11-16 Univ Ishou Decoding method of cyclic code weight decoder
RU2013108893A (ru) * 2013-02-27 2014-09-10 ЭлЭсАй Корпорейшн Формирователь тестовых сигналов для декодера на основе разреженного контроля четности
US9454428B2 (en) * 2013-11-26 2016-09-27 Agency For Science, Technology And Research Error correction method and module for non-volatile memory
US10567003B2 (en) * 2017-01-26 2020-02-18 Hewlett Packard Enterprise Development Lp List decode circuits
US10243587B2 (en) * 2017-02-08 2019-03-26 Hewlett Packard Enterprise Developmetn LP Managing results from list decode methods
US10608672B2 (en) * 2017-12-22 2020-03-31 Massachusetts Institute Of Technology Decoding concatenated codes by guessing noise
DE102018103408B3 (de) * 2018-02-15 2019-05-02 Infineon Technologies Ag Integrierte schaltung und verfahren zum verarbeiten eines codierten nachrichtenworts
US11444636B2 (en) * 2018-10-12 2022-09-13 Error Corp. System and methods for quantum post-selection using logical parity encoding and decoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932177A (zh) * 2017-05-26 2018-12-04 爱思开海力士有限公司 具有可变长度分量的广义低密度奇偶校验码
CN109428605A (zh) * 2017-08-31 2019-03-05 爱思开海力士有限公司 利用校正子解码分量代码的用于g-ldpc码的位翻转解码器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LDPC Decoding Scheduling for Faster Convergence and Lower Error Floor;Huang-Chang Lee等;IEEE Transactions on Communications;第62卷(第9期);全文 *
LDPC码稀疏奇偶校验矩阵与硬判决解码算法建模;彭立, 朱光喜;电讯技术(第02期);全文 *
一种检测和校正存储器双错的低冗余加固方法;祝名;朱恒静;刘迎辉;于庆奎;唐民;;宇航学报(第08期);全文 *
适用于空间机器人遥操作系统数据通信的纠错编码;张平;刘佑轩;;机器人(第06期);全文 *

Also Published As

Publication number Publication date
US20210019224A1 (en) 2021-01-21
CN112331244A (zh) 2021-02-05
US10915396B1 (en) 2021-02-09
TW202105920A (zh) 2021-02-01

Similar Documents

Publication Publication Date Title
CN112783685B (zh) 快速收敛的低密度奇偶校验码的位翻转解码器
CN111538620B (zh) 存储器装置的鲁棒检测方法
US11184024B2 (en) Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
US8990668B2 (en) Decoding data stored in solid-state memory
CN111538621B (zh) 针对位线故障的软芯片猎杀恢复
CN112860474B (zh) 快速收敛的低密度奇偶校验码的软位翻转解码器
US11239865B2 (en) Error correction circuit and operating method thereof
KR20210115961A (ko) Ldpc 디코더 및 그것의 동작 방법
US11139831B2 (en) Fast fail support for error correction in non-volatile memory
KR102606829B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN114649047A (zh) 具有高度可变节点的低密度奇偶校验码的译码
CN112331244B (zh) 广义低密度奇偶校验码的软输入软输出分量代码解码器
CN111049530A (zh) 纠错电路及其操作方法
US11265015B2 (en) Out-of-order processing for bit-flipping decoders in non-volatile memory devices
TWI837354B (zh) 廣義低密度同位檢查碼的軟輸入軟輸出組件碼解碼器
CN114639435A (zh) 位翻转解码器中的振荡检测和缓解
CN115482866A (zh) 基于存储器装置中先前读取尝试的参数估计
US20240103727A1 (en) Out-of-order bit-flipping decoders for non-volatile memory devices
US11770133B1 (en) Exact ber reporting in the presence of CRC termination
US11881869B1 (en) Asymmetric bit errors in low-density parity-check codes for non-volatile memory devices
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US11574697B2 (en) Compression framework for log-likelihood ratio generation
KR102530269B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법

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