CN105247808B - 使用后期可靠性信息进行解码的系统和方法 - Google Patents

使用后期可靠性信息进行解码的系统和方法 Download PDF

Info

Publication number
CN105247808B
CN105247808B CN201480011709.XA CN201480011709A CN105247808B CN 105247808 B CN105247808 B CN 105247808B CN 201480011709 A CN201480011709 A CN 201480011709A CN 105247808 B CN105247808 B CN 105247808B
Authority
CN
China
Prior art keywords
variable node
decoding
time
decoding scheme
decoder
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
CN201480011709.XA
Other languages
English (en)
Other versions
CN105247808A (zh
Inventor
D·V·阮
S·K·奇拉帕加里
P·S·阮
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN105247808A publication Critical patent/CN105247808A/zh
Application granted granted Critical
Publication of CN105247808B publication Critical patent/CN105247808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] 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/29Coding, 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/2957Turbo codes and decoding
    • 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
    • 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

提供了用于对数据进行解码的系统和方法。在第一时间接收用于变量节点的变量节点值,在第二时间接收用于变量节点的可靠性数据。在第一时间之后并且在第二时间之前使用第一解码方案解码变量节点,并且在第二时间之后使用与第一解码方案不同的第二解码方案解码变量节点。

Description

使用后期可靠性信息进行解码的系统和方法
相关申请的交叉引用
本公开要求根据35U.S.C.§119(e)于2013年3月7日提交的美国临时申请号61/774,167、以及于2014年3月5日提交的美国申请号14/197,408的权益,其以整体内容通过引用并入本文。
使用领域
本公开一般涉及数据解码,更特别地涉及对于用低密度奇偶校验(LDPC)编码器编码的数据具有可靠性输入的解码器。
背景技术
LDPC码和用来解码LDPC码的解码器可以在许多应用和设备中使用。例如,数据存储、卫星通信、无线通信、有线通信、和电力线通信是每个可以使用LDPC码和LDPC解码器的应用。设备(诸如数码相机闪存存储器、卫星、移动电话、和其它移动设备)每个也可以使用LDPC码和LDPC解码器。
LDPC码可以用于纠正在噪声数据存储器或通信信道中传送的信息中的错误。该信息可以在传送之前(通过LDPC编码器)编码,然后当被接收时,(通过LDPC解码器)后续地解码。LDPC码是表现最好的错误纠正码之一,与Turbo码一起用于纠正在通信和数据存储信道上传送的信息中的错误。
常规的硬解码LDPC技术通常仅基于是否未满足给定数目的校验来确定是否翻转比特还是更新符号(symbol)值。例如,可以基于哪些更新后的符号的组合最有可能减少未满足的校验节点的数目来选择一个或多个符号值进行更新。
发明内容
根据本公开的实现方式,提供了用于对数据进行解码的系统和方法。在第一时间接收用于变量节点的变量节点值,而在第二时间接收用于变量节点的可靠性数据。在第一时间之后和在第二时间之前使用第一解码方案解码变量节点,并且在第二时间之后使用与第一解码方案不同的第二解码方案解码变量节点。
在一些实现方式中,第一解码方案是基于变量节点值的硬解码方案。第二解码方案是基于变量节点值和可靠性数据的软解码方案。
在一些实现方式中,在晚于第二时间的第三时间接收用于变量节点的附加的可靠性数据,并且在第三时间之后使用第三解码方案解码变量节点。
在一些实现方式中,接收用于变量节点的变量节点值包括:传送指令以在存储器上执行读取操作。接收用于变量节点的可靠性数据包括:传送指令以在存储器上执行一个或多个附加的读取操作。存储器可以是NAND闪存。
第一解码方案的结果可以被存储于缓存中,其中,使用第二解码方案解码变量节点包括:从缓存中取得第一解码方案的结果。
在一些实现方式中,如果第一解码方案成功,则在第二时间之前,终止解码。可以响应于确定第一解码方案未成功而执行在第二时间接收可靠性数据和使用第二解码方案解码变量节点。
根据本公开的实现方式,解码器包括解码电路。解码电路被配置成在第一时间接收用于变量节点的变量节点值并且在第二时间接收用于变量节点的可靠性数据。在第一时间之后和在第二时间之前使用第一解码方案解码变量节点,并且在第二时间之后使用与第一解码方案不同的第二解码方案解码变量节点。
附图说明
在结合附图考虑以下具体描述后,本公开的上述和其它特征将变得显而易见,包括其属性和其各种优点,附图中:
图1是根据本公开的实施例的采用LDPC解码的说明性通信系统的框图;
图2A和图2B是根据本公开的实施例的代表所接收的码字的符号的变量节点和用于解码所接收的码字的校验节点之间的通信的图形说明;
图3是根据本公开的实施例的基于后期(late)可靠性信息进行解码的说明性系统的框图;
图4是根据本公开的实施例的基于后期可靠性信息进行解码的说明性过程的流程图;和
图5是根据本公开的实施例的基于后期可靠性信息进行多阶段解码的说明性过程的流程图。
具体实施方式
本公开一般涉及在解码器处执行解码。为了提供本公开的总体理解,现在将描述某些说明性实施例,包括基于后期可靠性信息执行解码的多阶段解码器。然而,本领域的普通技术人员应当理解,对于正在处理的应用若适宜,则可以适应并且修改本文中所描述的系统和方法,而且应当理解,本文中所描述的系统和方法可以在其它合适的应用中采用,并且应当理解,这样的其它添加和修改将不会背离其范围。
在一些通信系统(诸如某些闪存单元)中,在可以获得关于硬判决的可靠性数据之前,解码器可以获得数据估计值(或硬判决数据)。本文中所描述的系统和方法允许在多个阶段进行解码,而不是在解码开始之前,迫使软解码器等待,直到可以获得硬判决和可靠性数据为止。当可以获得硬判决时,本公开的解码系统和方法在第一阶段中执行硬解码。之后,当可以获得一定量的可靠性数据时,在第二阶段执行使用硬判决和可靠性数据两者的软解码。任选地,当接收到附加的可靠性数据时,可以使用附加的软解码阶段。这样的多阶段解码器在本文中被称为后期(late)可靠性解码器。
图1示出了根据本公开的一些实施例的部分基于可靠性输入进行LDPC解码的说明性通信系统100。通信系统100用于将来自发送用户或应用102的信息传送到接收用户或应用130。发送用户或应用102代表产生信息的对象或实体。例如,发送用户或应用102可以与计算机系统中的软件程序或无线电系统中的无线通信发送器的组件相对应。发送用户或应用102产生数据流形式的信息,并且该数据流可以由已经被例如源编码器(图1中未示出)预处理过的符号值的序列来代表。由发送用户或应用102产生的信息可以与语音信息、视频信息、金融信息、或可以以数字或模拟形式来代表的任何其它类型的信息相对应,并且由发送用户或应用102产生的数据流可以是数字数据流。
发送用户或应用102可以将数据流分割或以其它方式划分成固定长度为k个符号的块。特别地,消息104(也被称为m)代表这些块中的一个。特别地,消息104的长度为k个符号,其中,每个符号可以是二进制数据或非二进制数据(诸如三元数据、四元数据、任何其它合适类型的数据、或其任何合适的组合)。编码器106用于对消息104进行编码以产生码字110。在本公开的一个实施例中,编码器106是LDPC编码器。然而,基于本公开和本文中所提供的教导,应该清楚的是,编码器106可以是任何其它合适的编码器。码字110(也被称为c)的长度为n个符号,其中n>k。编码器106使用生成器矩阵G108(为标记方便也称为G)来产生码字110。例如,编码器106可以执行一个或多个矩阵运算以将消息104转换成码字110。在实施例中,编码器106通过以下矩阵乘法使用生成器矩阵G108由消息104产生码字110:
c=Gm
码字110可以被调制或以其它方式由调制器112变换成适合在信道114上传送和/或存储的波形。例如,波形可以与模拟二进制相移键控(BPSK)信号、模拟相移键控(PSK)信号、模拟频移键控(FSK)信号、模拟正交幅度调制(QAM)信号、或任何其它合适的模拟或数字信号相对应。
信道114是指物理介质,在解调器116处被恢复之前,所传送的波形穿过该物理介质或者存储在该物理介质上。例如,信道114可以是代表计算机系统环境中的存储介质的存储信道、或代表无线通信环境中的无线传播环境的通信信道。信道114的各种特点可以损坏在其上通信或存储的数据。例如,信道114可以是非理想的无记忆信道或有记忆信道;信道114可以是擦除信道,并且可以是对称的或不对称的。信道114的输出由解调器116进行解调和处理以产生所接收的码字118。解调器116可以使用频率滤波器、借助周期函数的乘法和积分、和/或任何其它合适的解调技术来解调和/或处理信道114的输出。
所接收的码字118包含与码字110有关的信息并且可以是由编码器106最初输出的码字110的损坏的或以其它方式更改的版本。例如,所接收的码字118可以包含码字110的初步估计值或噪声版本、由编码器106产生的码字的可能值的概率分布矢量、或这些以及其它值的组合。
检测器120用于处理所接收的码字118,以产生检测器样本122,其可以是原始数据消息104的估计值,在本文中也被称为一个或多个硬判决。该检测器120采样所接收的码字118中的每个符号,并且基于符号值将每个符号分配给仓(bin)。在一些实施例中,仓基于概率分布进行分配。由检测器120采样的每个符号可以被分配给两个以上的可能的仓或状态中的一个。对于检测器样本122而确定的状态被存储在存储器中作为样本码字。该存储器被称为“硬判决存储器”,其可以处于与所接收的码字118不同的存储位置。
在一些实施例中,信道114被读取多次,并且多次读取可以由解调器116、检测器120、或两者共同或单独处理,以生成除了硬判决样本码字之外的可靠性数据。例如,为了确定存储在闪存存储器设备中的给定符号的输入状态,存储符号的所接收的值的存储器信元(memory cell)可以被读取多于一次。与相同符号相对应的信道114的多次读取可以由检测器120进行处理,以生成以可靠性数据和硬判决数据形式的检测器样本122。例如,在二进制码中,信道114的多次读取可以由解调器116、检测器120、或两者进行处理,以针对样本码字中的每个比特生成一个比特硬判决数据和一个比特可靠性数据。在另一示例中,针对样本码字中的每个比特,可以生成两个比特的可靠性数据。一般而言,针对样本码字中的每个比特,可以生成任何数目比特的可靠性数据。这样的可靠性数据可以被存储在与硬判决存储器分开的“可靠性数据存储器”位置,或者可以与硬判决一起存储在相同的存储器位置。检测器样本122形式的硬判决和可靠性数据两者被传送到解码器124作为用于后续解码操作的输入。
解码器124接收并且在多个阶段迭代处理检测器样本122。检测器120和解码器124可以是两个分开的处理器,或单个处理器可以用作检测器120和解码器124这两者。一般而言,解码器124包括用于迭代地纠正和/或检测例如由于通过信道114的传输而存在于检测器样本122中的错误的控制电路和/或解码电路。在一些实施例中,解码器124使用奇偶校验矩阵H 126和解码技术来产生解码消息128。一般而言,LDPC解码可以使用数学矢量模型进行描述,其中,c是长度为n的二进制串并且H是奇偶校验矩阵H 126,其是低密度的稀疏m×n矩阵,其中,如上所述,n是码字中的符号的数目,m是满足m≥n-k的校验节点的数目,k是消息中的符号的数目。仅当二进制串c是码字c 110时,满足该模型。奇偶校验矩阵H 126不一定是唯一的,并且为计算上方便,可以被选择以减少由解码器124的解码技术生成的错误的数目,或两者。
根据本公开,解码器124所使用的多阶段解码技术包含:基于一个或多个“更新规则”通过更新符号、可靠性数据、或两者来处理检测器样本122。在示例中,更新规则可以基于是否满足或未满足符号的校验、符号基于可靠性数据的值或者其合适的组合是否先前已经被更新、翻转、或切换(toggle)。一般地,如本文中所使用的,“翻转”或“切换”符号意味着将符号的值更新为与当前值不同的值。用于执行符号翻转或切换的更新规则和系统架构在Varnica等人于2014年2月4日提交的美国专利申请号14/172,420中进行了描述,其整体内容通过引用并入本文。
处理之后,解码后的消息128中的每个符号应该被分配作为一组可能状态中的一个状态。当输入到作为c的模型时,解码后的消息128满足该模型。参照图3至图5,对用于执行解码的合适的系统和过程进行描述。
解码后的消息128在被解码器124处理之后,被递送到接收用户或应用130。接收用户或应用130可以与和发送用户或应用102相同的设备或实体相对应,或者接收用户或应用130可以与不同的设备或实体相对应。进一步地,接收用户或应用130可以被共同定位或与发送用户或应用102物理上分开。如果解码器124纠正由信道114引起的所有错误和通信系统100中的其它通信影响,则解码后的消息128是消息104的逻辑复制品(replica)。否则,解码后的消息128可以与消息104不同,并且相应地解码器124可以声明错误。
图2A和图2B是根据本公开的实施例的代表示例码字的变量节点220-234与使用变量可靠性信息解码码字的校验节点200-210之间的通信的图形说明。
一旦初始化解码过程,如参照图1所描述的,使用检测器120分配给变量节点220-234输入状态,其中,硬判决和可靠性信息两者可以被考虑在内。如本文中所讨论的,“变量节点值”是指与变量节点相关联的硬判决,而“变量可靠性数据”是指与变量节点或变量节点值相关联的可靠性数据。输入状态可以包括变量节点值和变量可靠性数据中的一个或两个。
在一个说明性示例中,每个变量节点与由[b1b0]表示的二比特输入相关联,其中,比特b0的值指示硬判决而且比特b1的值指示硬判决的可靠性。在二进制码中,b0可以取值为0或1,代表解码后的比特的两种可能的硬判决状态。相应地,b1也可以取值为0或1,其中,0代表不可靠的硬判决,而1代表可靠硬判决。换句话说,输入10到变量节点可以被解释为可靠判决为0,输入00到变量节点可以被解释为不可靠判决为0,输入01到变量节点可以被解释为不可靠判决为1,并且输入11到变量节点可以被解释为可靠判决为1。一般而言,可以使用任何数目(k)的可靠性比特,并且(k+1)比特输入可以表示为:[bk bk-1…b1 b0]。
硬解码系统对硬判决数据执行解码,而软解码系统对硬判决数据以及可靠性数据两者执行解码。在本公开的多阶段解码器中,当仅可以获得硬判决数据时,解码器可以执行硬解码,并且当可靠性数据变得可用时,执行软解码。特别地,在一些系统(诸如某些闪存单元)中,在获得对应的可靠性数据之前,解码器可以获得硬判决数据。其发生是因为在单次读取信道114后,可以获得硬判决,并且在多个附加的读取之后,仅可以获得可靠性数据。在示例中,两次附加的读取可以足以渲染一个比特可靠性数据,并且进一步的,附加的读取可以渲染附加比特的可靠性数据。
用于执行每次读取的系统要求可以与比执行实际解码更高的成本相关联。例如,执行单次读取所花费的时间可以明显长于执行解码所花费的时间。因为在接收仅硬判决之后和接收任何可靠性数据之前,硬解码可以成功恢复有效码字,所以在执行任何附加的读取以恢复可靠性数据之前,可能需要确定硬解码是否已成功。同样,如果在一定数目的读取之后,软解码成功,则可能不需要执行附加的不必要读取。在具有吞吐量和功率约束的系统中,本公开的多阶段解码器当其被接收时,通过利用硬判决数据和可靠性数据提供有效解码。
硬判决和可靠性数据输入可以一起被存储在一个存储器位置中作为输入状态,或单独被存储在硬判决存储器和可靠性数据存储器中。如本文中所描述的,仅一个比特用于代表硬判决,仅一个比特用于代表硬判决的可靠性。然而,一般而言,任何数目的比特可以用于代表硬判决、可靠性、或两者。特别地,对于非二进制码,硬判决可以取两个以上的值,并且可靠性消息可以携带一个或多个比特或符号。
使用如参照图1所描述的检测器120分配给变量节点220-234输入状态之后,变量节点的校验由多组变量节点上的解码器124执行。解码器124使用处理规则来确定一组变量节点的条件。所确定的条件的指示被存储在校验节点(诸如校验节点200-210)处的校正子存储器(syndrome memory)。奇偶校验矩阵H 126(图1)标识哪些校验节点存储针对哪些校验节点所确定的条件的指示。例如,对于如图2A和图2B所示的节点和对于二进制码示例,奇偶校验矩阵H 126可以如下:
每行与校验节点中的一个相对应,而每列与变量节点中的一个相对应。如上所示,在二进制码的情况下,奇偶校验矩阵的元素是0或1。如本文中所使用的,变量节点的“相邻”校验节点是具有到变量节点连接的校验节点。同样,校验节点的“相邻”变量节点是具有到校验节点连接的变量节点。上文所示的奇偶校验矩阵H 126提供指示校验节点和变量节点之间的连接。特别地,如图2A所示,变量节点222,224,230和234是校验节点206的邻点,并且如图2B所示,校验节点200,206和210是变量节点224的邻点。此外,在二进制码中,每个校验节点有两种状态中的一个,如果满足校验,则状态为0,并且如果未满足校验,则状态为1。对于非二进制码,奇偶校验矩阵的元素是非二进制,并且每个校验节点是两个以上的状态中的一个。奇偶校验矩阵的每行形成在非二进制域中计算的奇偶校验方程的系数。
解码器124引用奇偶校验矩阵H 126以标识与特定校验节点相关联的变量节点,或应由特定校验节点校验的变量节点。例如,对于校验节点206,解码器124使用奇偶校验矩阵H 126的第四行来确定该校验节点206存储变量节点222,224,230和234(即,第二、第三、第六和第八变量节点)的校验结果。然后,解码器124取得存储在这些变量节点中的值。上述奇偶校验矩阵H的第四行中的值是奇偶校验方程的系数,其每个乘以变量节点的对应的值。为了说明,图2A中的箭头指示所取得的值从变量节点222,224,230和234流动到校验节点206,并且校验节点206可以被认为是“校验”变量节点222,224,230和234。变量节点值由解码器124进行取得,其根据处理规则处理代表校验节点206的值。
根据从变量节点222,224,230和234接收的值,解码器124确定是否满足或未满足用于校验节点206的所给定的条件。是否满足或未满足校验节点206的指示(即,校验节点的“校正子值”或“校验节点值”)被存储在校正子存储器中,其存储校验节点的校正子值或指示。另外,校验节点的校正子值的可靠性可以基于相关联的变量节点的值和可靠性进行更新。
在用于校验节点200-210的指示或校正子值已经被存储在该校正子存储器中之后,变量节点220-234的值可以基于校验节点的值和变量节点的可靠性进行更新。奇偶校验矩阵H 126被解码器124再次使用,以确定对于特定变量节点,应该访问哪些校验节点。如图2B所图示,为了更新变量节点224,上文所给出的校验矩阵H 126指示应当参考校验节点200,206和210(即,第一、第四和第六变量节点)。基于所参考的校验节点的指示,变量节点224的状态可以被更新。
在本公开的一些实施例中,变量节点224的值也可以部分基于变量节点224是否先前已经被更新、切换、或翻转来确定。校验节点和变量节点可以迭代地被更新,直到满足所有校验节点(即,实现全零校正子)为止或直到达到最大数目的迭代为止。解码器124的输出是终止解码过程时硬判决存储器的内容,或是解码后的消息128。
图3是根据本公开的实施例的使用后期可靠性输入进行LDPC解码的说明性多阶段解码器系统300的框图。系统300可以实施如图2A和图2B所图示的解码过程。当执行信道114的一次或多次读取时,接收器350接收硬判决数据和可靠性数据。因为硬判决数据由单次读取产生并且可靠性数据由多次读取产生,所以在接收可靠性数据(由[bk bk-1…b1]表示)之前,接收硬判决数据(由b0表示)。
多阶段解码器的第一阶段硬解码器356从接收器350中接收硬判决数据352并且执行硬解码。第一阶段硬解码器356可以通过确定是否基于是否满足或未满足与变量节点相关联的校验节点的数目而更新变量节点值来执行硬解码。在示例中,可以基于更新后的变量节点值的哪些组合最有可能减少未满足的校验节点的数目进行选择性地更新一个或多个变量节点的值。第一阶段硬解码器356输出更新后的硬判决358,其被存储在硬判决存储器360中并且任选地传送到第二阶段软解码器362。
第二阶段软解码器362从接收器350中接收可靠性数据354并且从第一阶段硬解码器356中接收更新后的硬判决358。第二阶段软解码器362基于可靠性数据354和硬判决358执行软解码。由第二阶段软解码器362执行的软解码可以包括:确定是否基于一个或多个更新规则更新硬判决358、可靠性数据354、或两者。在示例中,更新规则可以基于是否满足或未满足与变量节点相关联的校验节点,是否变量节点已经基于可靠性数据被先前更新,或它们的组合。第二阶段软解码器362的输出可以包括更新后的可靠性数据363,其被存储在可靠性数据存储器364中。而且,如果第二阶段软解码器362更新了硬判决358,则第二阶段软解码器362可以将更新后的硬判决存储在硬判决存储器360中。
如图3所示,使用单个第二阶段软解码器362。然而,一般而言,当接收附加的可靠性数据时,可以使用任何数目的附加的第二阶段软解码器。特别地,对于k个比特传入的可靠性数据,可以使用k个阶段的软解码器,每个阶段的软解码器与对应的数目的可靠性数据比特相关联。
在一些实施例中,使用第二阶段软解码器362和任何附加的软解码器是可选的。例如,由第一阶段硬解码器356执行的硬解码可能会成功,因此不需要附加的可靠性数据。在这种情况下,控制器可以被指令为对于当前变量节点,不执行信道114的任何附加的读取,并且可以不用第二阶段软解码器362。用于除了硬解码之外任选地执行软解码的混合系统架构在Chilappagari等人于2014年3月5日提交的美国专利申请号14/197,426中进行描述,其全篇内容通过引用并入本文。在另一示例中,由第n阶段软解码器所执行的软解码可能会成功,其中,n可以为1到k之间的任意整数。在这种情况下,对于当前变量节点,可以不执行信道114的任何附加的读取,并且可以不用剩余阶段的软解码器(即,n+1到k)。
在一些实施例中,与从NAND闪存单元读取数据有关,使用系统300的多阶段解码器。在示例中,每次读取产生一个比特的信息。特别地,第一次读取产生硬判决,或变量节点值,或b0。第二次读取产生第一比特可靠性数据、或b1。控制器可以与NAND闪存进行接口以读取存储在存储器单元中的数据页面。为了得到多个比特,控制器发出读取命令多次。
在示例中,控制器可以解析指令队列,其可以包括读取指令(诸如“读取页面0”、“读取页面1”、“读取页面2”等)。硬解码器可以确定当从页面0读取的数据的硬解码失败时,就没有必要存储结果,并且控制器可以继续尝试解码从页面1中读取的数据。在这种情况下,如果需要后期执行解码从页面0中读取的数据,则控制器将必须重新启动过程并且请求再次执行第一次读取操作。
在一些实施例中,本文中所描述的系统包括存储硬判决(由存储器的单次读取产生)和可靠性数据(由存储器的多次读取产生)的缓存。数据被存储在缓存中,而非丢弃从一个或多个读取操作产生的数据。特别地,在执行一个或多个读取操作之后,硬判决数据和/或可靠性数据被存储在缓存中,并且可以随后被取得,以使这些一个或多个读取操作不需要重复。在这种情况下,如果确定了附加的可靠性数据是期望的,则可以执行附加的读取操作,而无须重做原来的一个或多个读取操作。在一些实施例中,NAND闪存设备本身包括存储一个或多个读取结果的缓存。在这种情况下,从读取操作中产生的数据已经存储在NAND设备中,并且控制器只需要在需要时获取该数据。
图4是根据本公开的实施例的基于后期可靠性信息进行LDPC解码的说明性过程400的流程图。过程400可以使用如图3所示的系统300来实施。在402,计数器j被初始化为零。系统300被配置成当接收到数据并且尝试解码所接收的数据失败时,递增计数器j。计数器j的值递增,直到尝试的解码所接收的数据成功为止,或直到计数器j的值达到可靠性符号k的数目为止。
在404,接收变量节点值。变量节点值是指与变量节点相关联的硬判决。在示例中,与硬判决相对应的比特在本文中被称为b0,其可以在特定时间t0获得。在406,第一阶段硬解码器356使用解码方案处理在404处接收的变量节点值。特别地,系统300可以被配置成使用(k+1)个解码方案,其可以被称为第j解码方案。特别地,当j是零时,则第零解码方案是仅对所接收的硬判决操作的硬解码方案。
在408,该系统300确定是否满足一个或多个收敛或终止条件。在示例中,当实现全零校对子时,或者如果已经达到最大的迭代数目k,则可以达到收敛或终止。如果达到任何收敛或终止条件,则过程400进行到410以终止解码。
否则,如果未满足收敛或者终止条件,则过程400进行到412以递增j和进行到412以接收第j可靠性值。特别地,系统300可以被配置成接收最大数目的k个可靠性值,其中,每个随后的可靠性值与在信道114上执行的附加的读取相关联。当在414接收下一个第j可靠性值时,过程400返回到460以使用下一个第j解码方案。在示例中,第j可靠性值可以被称为在时刻tj=tj-1+Tj解码器可以获得的比特bj,其中,Tj是可以获得第(j-1)值的时刻与可以获得第j值的时刻之间的差。换句话说,当j=1时,可以在时刻t1=t0+T1获得比特b1,其是在可以获得硬判决b0的时刻之后的时刻T1。同样地,可以在时刻t2=t1+T2获得比特b2。在一些实现方式中,T1小于T2,该T2小于T3,等等。在其它实现方式中,T1、T2、……Tk均相似。一般而言,T1、T2、……Tk可以相同或不同。
当j大于零(即,j=1、2、......k)时,第j解码方案是可以由软解码器(诸如第二阶段软解码器362)执行的软解码方案。特别地,软解码器在确定是否更新硬判决数据和/或可靠性数据时要将硬判决数据以及可靠性数据两者考虑在内。
如图4所示,重复406、408、412和414,直到在408达到收敛或者终止条件为止。当达到收敛时,解码成功,并且在410终止解码过程。当解码在j小于k时成功时,忽略使用后期可靠性信息中的一些的软解码的后期阶段。通过启动解码过程以在接收到所有可靠性信息之前开始,并且通过允许在接收到所有可靠性信息之前终止解码过程,本公开的多阶段解码器高效利用系统资源。
图5是根据本公开的实施例的基于后期可靠性信息执行多阶段LDPC解码的说明性过程500的流程图。过程500可以使用如图3所示的系统300来实施。在502,在第一时间接收用于变量节点的变量节点值。在一些实施例中,接收用于变量节点的变量节点值包括:传送指令以在存储器上执行读取操作。特别地,存储器可以是NAND闪存设备,并且控制器可以指令NAND闪存设备执行读取操作并且向控制器传送读取操作(即,硬判决)的结果。
在504,在晚于第一时间的第二时间接收用于变量节点的可靠性数据。在一些实施例中,接收用于变量节点的可靠性数据包括:传送指令以在存储器上执行附加的读取操作。当存储器是NAND闪存设备时,控制器可以指令NAND闪存设备执行一个或多个附加的读取操作并且向控制器传送可靠性数据形式的附加的读取操作的结果。
在506,在第一时间之后并且在第二时间之前,使用第一解码方案解码变量节点。第一解码方案是硬解码方案,并且基于变量节点值,而非基于任何可靠性数据。在一些实施例中,硬解码方案的结果是更新后的硬判决值。最初接收的硬判决和/或更新后的硬判决值可以被存储在缓存(诸如图3中所示的硬判决存储器360)中。在一些实施例中,第一解码方案包括:评估硬解码是否成功,诸如例如通过确定是否实现全零校正子。如果硬解码成功,则可以在第二时间之前终止过程500,并且可以不执行504和508。否则,如果硬解码未成功(例如,其可以确定如果未实现全零校正子),则执行504和508,并且过程500进行到508以进一步解码变量节点。
在508,在第二时间之后,使用与第一解码方案不同的第二解码方案解码变量节点。与第一解码方案相反,第二解码方案是软解码方案,并且基于变量节点值和可靠性数据这两者。在一些实施例中,在502接收的硬判决被存储在硬判决存储器(诸如图3中示出的硬判决存储器360)中。在这种情况下,第二解码方案可以包括:从硬判决存储器360中取得硬判决或更新后的硬判决。
在一些实施例中,在晚于第二时间的第三时间接收用于变量节点的附加的可靠性数据。如果在第二阶段解码(即,使用第二解码方案解码)未成功,那么在第三时间之后,可以使用第三解码方案解码变量节点。如本文中所描述的,任何数目的附加的阶段可以用于接收附加的可靠性数据(例如,从存储器的附加的读取中产生)并且进一步用于解码变量节点。当解码成功时,或者当已经使用最大数目的阶段或已经执行最大数目的附加的读取时,终止解码过程。
尽管本文中已经显示并且描述了本公开的各种实施例,但是,对于本领域技术人员来说,显而易见的是,这样的实施例只是作为示例而提供。本领域技术人员现在将在不偏离本公开的基础上想到多种变型、变化、和替代。应当理解,本文中所描述的本公开的实施例的各种替代方案可以在实施本公开中使用。以下权利要求旨在限定本公开的范围并且因此覆盖了属于这些权利要求及其等同物的范围内的方法和结构。

Claims (20)

1.一种用于对数据进行解码的方法,包括:
在第一时间接收用于变量节点的变量节点值;
在第二时间接收用于所述变量节点的可靠性数据;
在所述第一时间之后并且在所述第二时间之前,基于所述变量节点值,使用第一解码方案解码所述变量节点以生成更新的变量节点值;以及
在所述第二时间之后,基于所述更新的变量节点值和所述可靠性数据,使用与所述第一解码方案不同的第二解码方案解码所述变量节点。
2.根据权利要求1所述的方法,其中所述第一解码方案是硬解码方案。
3.根据权利要求1所述的方法,其中所述第二解码方案是软解码方案。
4.根据权利要求1所述的方法,进一步包括:
在晚于所述第二时间的第三时间接收用于所述变量节点的附加的可靠性数据;以及
在所述第三时间之后,使用第三解码方案解码所述变量节点。
5.根据权利要求1所述的方法,其中接收用于所述变量节点的所述变量节点值包括:传送指令以在存储器上执行读取操作。
6.根据权利要求5所述的方法,其中接收用于所述变量节点的所述可靠性数据包括:传送指令以在所述存储器上执行一个或多个附加的读取操作。
7.根据权利要求5所述的方法,其中所述存储器是NAND闪存。
8.根据权利要求1所述的方法,进一步包括:将所述第一解码方案的结果存储在缓存中,其中使用所述第二解码方案解码所述变量节点包括:从所述缓存中取得所述第一解码方案的所述结果。
9.根据权利要求1所述的方法,进一步包括:
确定所述第一解码方案成功;以及
在所述第二时间之前终止所述解码。
10.根据权利要求1所述的方法,其中响应于确定所述第一解码方案不成功而执行:在所述第二时间接收所述可靠性数据并且使用所述第二解码方案解码所述变量节点。
11.一种解码器,包括:解码电路,所述解码电路被配置成:
在第一时间接收用于变量节点的变量节点值;
在第二时间接收用于所述变量节点的可靠性数据;
在所述第一时间之后并且在所述第二时间之前,基于所述变量节点值,使用第一解码方案解码所述变量节点以生成更新的变量节点值;以及
在所述第二时间之后,基于所述更新的变量节点值和所述可靠性数据,使用与所述第一解码方案不同的第二解码方案解码所述变量节点。
12.根据权利要求11所述的解码器,其中所述第一解码方案是硬解码方案。
13.根据权利要求11所述的解码器,其中所述第二解码方案是软解码方案。
14.根据权利要求11所述的解码器,其中所述解码电路进一步被配置成:
在晚于所述第二时间的第三时间接收用于所述变量节点的附加的可靠性数据;以及
在所述第三时间之后,使用第三解码方案解码所述变量节点。
15.根据权利要求11所述的解码器,其中所述解码电路通过传送指令以在存储器上执行读取操作来接收用于所述变量节点的所述变量节点值。
16.根据权利要求15所述的解码器,其中所述解码电路通过传送指令以在所述存储器上执行一个或多个附加的读取操作来接收用于所述变量节点的所述可靠性数据。
17.根据权利要求15所述的解码器,其中所述存储器是NAND闪存。
18.根据权利要求11所述的解码器,其中所述解码电路进一步被配置成将所述第一解码方案的结果存储在缓存中,并且其中所述解码电路被配置成通过从所述缓存中取得所述第一解码方案的所述结果来使用所述第二解码方案解码所述变量节点。
19.根据权利要求11所述的解码器,其中所述解码电路进一步被配置成:
确定所述第一解码方案成功;以及
在所述第二时间之前终止所述解码。
20.根据权利要求11所述的解码器,其中所述解码电路响应于确定所述第一解码方案不成功而在所述第二时间接收所述可靠性数据并且使用所述第二解码方案解码所述变量节点。
CN201480011709.XA 2013-03-07 2014-03-05 使用后期可靠性信息进行解码的系统和方法 Active CN105247808B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361774167P 2013-03-07 2013-03-07
US61/774,167 2013-03-07
PCT/US2014/020775 WO2014138246A1 (en) 2013-03-07 2014-03-05 Systems and methods for decoding with late reliability information

Publications (2)

Publication Number Publication Date
CN105247808A CN105247808A (zh) 2016-01-13
CN105247808B true CN105247808B (zh) 2019-03-22

Family

ID=51489442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480011709.XA Active CN105247808B (zh) 2013-03-07 2014-03-05 使用后期可靠性信息进行解码的系统和方法

Country Status (5)

Country Link
US (1) US9369152B2 (zh)
JP (1) JP6446730B2 (zh)
KR (1) KR20150128750A (zh)
CN (1) CN105247808B (zh)
WO (1) WO2014138246A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
US10084481B2 (en) 2014-12-18 2018-09-25 Apple Inc. GLDPC soft decoding with hard decision inputs
US10484129B2 (en) * 2016-01-21 2019-11-19 Qualcomm Incorporated Protocol layer packet coding for transmitter/receiver buffer optimization
CN105897277B (zh) * 2016-03-28 2019-06-14 北京交大思诺科技股份有限公司 解码器解码性能分析方法及装置
TWI594255B (zh) * 2016-07-01 2017-08-01 群聯電子股份有限公司 解碼方法、記憶體控制電路單元及記憶體儲存裝置
CN107590018B (zh) * 2016-07-07 2020-12-01 群联电子股份有限公司 译码方法、存储器控制电路单元及存储器存储装置
TWI670715B (zh) * 2017-04-06 2019-09-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10707899B2 (en) 2017-08-31 2020-07-07 SK Hynix Inc. Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US10511326B2 (en) * 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10491244B2 (en) * 2017-11-14 2019-11-26 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
KR20200020535A (ko) * 2018-08-17 2020-02-26 에스케이하이닉스 주식회사 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치
KR20200022136A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 에러 정정 장치 및 그것을 포함하는 전자 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713531A (zh) * 2004-06-23 2005-12-28 株式会社东芝 解码用ldpc码编码的数据的解码装置和方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1605624B1 (en) 2003-03-20 2012-07-25 Fujitsu Limited Error controller
US7441178B2 (en) * 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
US7587657B2 (en) 2005-04-29 2009-09-08 Agere Systems Inc. Method and apparatus for iterative error-erasure decoding
WO2009072103A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US8312354B1 (en) * 2007-12-27 2012-11-13 Marvell International Ltd. Method and apparatus for improved performance of iterative decoders on channels with memory
KR101436505B1 (ko) * 2008-01-03 2014-09-02 삼성전자주식회사 메모리 장치
US8230312B1 (en) * 2008-01-09 2012-07-24 Marvell International Ltd. Iterative decoder memory arrangement
KR101425020B1 (ko) * 2008-03-17 2014-08-04 삼성전자주식회사 메모리 장치 및 데이터 판정 방법
US20100037121A1 (en) 2008-08-05 2010-02-11 The Hong Kong University Of Science And Technology Low power layered decoding for low density parity check decoders
US8291285B1 (en) * 2008-09-18 2012-10-16 Marvell International Ltd. Circulant processing scheduler for layered LDPC decoder
KR101466270B1 (ko) 2008-09-19 2014-11-28 삼성전자주식회사 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
KR101535225B1 (ko) * 2009-01-06 2015-07-09 삼성전자주식회사 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
US8560917B2 (en) 2009-01-27 2013-10-15 International Business Machines Corporation Systems and methods for efficient low density parity check (LDPC) decoding
US8443267B2 (en) 2009-04-28 2013-05-14 Lsi Corporation Systems and methods for hard decision assisted decoding
US8438461B2 (en) * 2009-10-12 2013-05-07 Marvell World Trade Ltd. Power consumption in LDPC decoder for low-power applications
US8504887B1 (en) * 2009-12-24 2013-08-06 Marvell International Ltd. Low power LDPC decoding under defects/erasures/puncturing
US8572463B2 (en) * 2010-02-01 2013-10-29 Sk Hynix Memory Solutions Inc. Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
EP2545554A4 (en) 2010-03-12 2015-03-11 Lsi Corp LDPC CLEARANCE DECODING FOR FLASH MEMORY
US8341486B2 (en) 2010-03-31 2012-12-25 Silicon Laboratories Inc. Reducing power consumption in an iterative decoder
US8627175B2 (en) * 2010-09-27 2014-01-07 Seagate Technology Llc Opportunistic decoding in memory systems
US20120240007A1 (en) * 2010-10-20 2012-09-20 Stec, Inc. Ldpc decoding for solid state storage devices
US8694868B1 (en) * 2010-10-21 2014-04-08 Marvell International Ltd. Systems and methods for performing multi-state bit flipping in an LDPC decoder
KR101792868B1 (ko) * 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
JP2012181761A (ja) 2011-03-02 2012-09-20 Toshiba Corp 半導体メモリ装置および復号方法
US8806309B2 (en) 2011-06-13 2014-08-12 Silicon Motion Inc. Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
US8938660B1 (en) * 2011-10-10 2015-01-20 Marvell International Ltd. Systems and methods for detection and correction of error floor events in iterative systems
US8910028B1 (en) * 2011-10-27 2014-12-09 Marvell International Ltd. Implementation of LLR biasing method in non-binary iterative decoding
US9009578B1 (en) * 2011-11-11 2015-04-14 Marvell International Ltd. Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios
US8819515B2 (en) 2011-12-30 2014-08-26 Lsi Corporation Mixed domain FFT-based non-binary LDPC decoder
KR101968746B1 (ko) * 2011-12-30 2019-04-15 삼성전자주식회사 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템
US8739004B2 (en) 2012-05-10 2014-05-27 Lsi Corporation Symbol flipping LDPC decoding system
US9612903B2 (en) 2012-10-11 2017-04-04 Micron Technology, Inc. Updating reliability data with a variable node and check nodes
US8996969B2 (en) * 2012-12-08 2015-03-31 Lsi Corporation Low density parity check decoder with miscorrection handling
US9083383B1 (en) 2013-01-29 2015-07-14 Xilinx, Inc. Parity check matrix
US9124300B2 (en) * 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory
KR102349209B1 (ko) * 2013-03-21 2022-01-10 마벨 월드 트레이드 리미티드 멀티-스테이지 소프트 입력 디코딩을 위한 방법 및 시스템
US20150169406A1 (en) * 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
KR20150091693A (ko) * 2014-02-03 2015-08-12 삼성전자주식회사 플래쉬 메모리 읽기 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713531A (zh) * 2004-06-23 2005-12-28 株式会社东芝 解码用ldpc码编码的数据的解码装置和方法

Also Published As

Publication number Publication date
CN105247808A (zh) 2016-01-13
US20140258809A1 (en) 2014-09-11
JP6446730B2 (ja) 2019-01-09
US9369152B2 (en) 2016-06-14
JP2016514428A (ja) 2016-05-19
WO2014138246A1 (en) 2014-09-12
KR20150128750A (ko) 2015-11-18

Similar Documents

Publication Publication Date Title
CN105247808B (zh) 使用后期可靠性信息进行解码的系统和方法
CN105052066B (zh) 用于多阶段软输入解码的系统和方法
CN104995844B (zh) 具有对于ldpc码可靠性输入的比特翻转解码
CN102412847B (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
JP4627317B2 (ja) 通信装置および復号方法
CN1953336B (zh) 在低密度奇偶校验解码器中更新校验节点的方法
US8667361B1 (en) Systems and methods for performing bit flipping in an LDPC decoder
CN103684476B (zh) 非二进制低密度奇偶校验(ldpc)码的符号翻转解码器
US8984378B1 (en) Systems and methods for performing multi-state bit flipping in an LDPC decoder
US9300328B1 (en) Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios
US10797728B1 (en) Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
CN112953554B (zh) 一种基于分层置信度传播的ldpc译码方法、系统和介质
CN105227191B (zh) 基于修正最小和算法的准循环ldpc码译码方法
US9614548B1 (en) Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
KR20150076583A (ko) 비이진 패리티 검사 부호의 복호 방법 및 장치
WO2014172874A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
CN104052497A (zh) 使用部分可靠性信息解码的系统和方法
Marchand Implementation of an LDPC decoder for the DVB-S2,-T2 and-C2 standards
Kang The Advanced Decoding Schemes for Low-density Parity-check Codes
WO2020008006A1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200426

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.