CN105052066B - 用于多阶段软输入解码的系统和方法 - Google Patents

用于多阶段软输入解码的系统和方法 Download PDF

Info

Publication number
CN105052066B
CN105052066B CN201480016609.6A CN201480016609A CN105052066B CN 105052066 B CN105052066 B CN 105052066B CN 201480016609 A CN201480016609 A CN 201480016609A CN 105052066 B CN105052066 B CN 105052066B
Authority
CN
China
Prior art keywords
decoder
data
hard decision
symbol
input
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
CN201480016609.6A
Other languages
English (en)
Other versions
CN105052066A (zh
Inventor
S·K·奇拉帕加里
G·伯德
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 CN105052066A publication Critical patent/CN105052066A/zh
Application granted granted Critical
Publication of CN105052066B publication Critical patent/CN105052066B/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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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月21日提交的美国临时申请号61/803,894和于2014年3月5日提交的美国申请号14/197,426的权利,其以整体内容通过引用并入本文。
技术领域
本公开总体涉及数据解码,更特别地涉及具有软输入的闪存控制器中的多阶段(multi-stage)解码器。
背景技术
数据存储、卫星通信、无线通信、有线通信、以及电力线通信是每个可以使用诸如LDPC码来编码和解码数据的应用。设备(诸如数码相机闪存存储器、卫星、移动电话、和其它移动设备)每个也可以使用LDPC码和LDPC解码器。
错误校正码用于纠正在噪声数据存储器或通信信道中传送的信息中的错误。该信息可以在传送之前(通过LDPC编码器)编码,然后当被接收时,随后(通过LDPC解码器)解码。LDPC码是表现最好的错误纠正码之一,与Turbo码一起用于校正在通信和数据存储信道上传送的信息中的错误。
常规的硬解码LDPC技术通常仅基于是否未满足给定数目的校验来确定是否翻转比特或者更新符号(symbol)值。例如,可以基于哪些更新后的符号的组合最有可能减少未满足的校验节点的数目来选择一个或多个符号值进行更新。
发明内容
根据本公开的实现方式,提供了用于对数据进行解码的系统和方法。第一解码器尝试基于用于符号的硬判决输入来解码数据。当基于硬判决输入来解码数据的尝试失败时,传送针对用于符号的可靠性信息的请求。接收电路接收用于符号的可靠性信息,并且第二解码器基于可靠性信息来解码数据。
在一些实现方式中,当第一解码器尝试基于用于符号的硬判决输入来解码数据失败时,可以丢弃用于符号的硬判决输入,并且可以传送针对另一硬判决输入的请求。在一些实现方式中,当第一解码器基于用于符号的硬判决输入来解码数据的尝试失败时,硬判决输入被存储在存储器中。
在一些实现方式中,第二解码器基于硬判决输入和可靠性信息来解码数据。在一些实现方式中,在传送对存储器执行读取操作的指令之后,接收用于符号的硬判决输入。通过对存储器执行一个或多个附加的读取操作来获得可靠性信息。在一些实现方式中,可靠性信息包括至少两个比特。
根据本公开的实现方式,系统包括第一解码器、发送器、接收器、和第二解码器。第一解码器被配置成尝试基于用于符号的硬判决输入来解码数据。发送器被配置成当第一解码器基于用于符号的硬判决输入来解码数据的尝试失败时,传送针对用于符号的可靠性信息的请求。接收器被配置成接收用于符号的可靠性信息。第二解码器被配置成基于可靠性信息来解码数据。
在一些实现方式中,在传送对存储器执行读取操作的指令之后,接收用于符号的硬判决输入。该存储器是NAND闪存。在一些实现方式中,通过对存储器执行一个或多个附加的读取操作来获得可靠性信息。
附图说明
在结合附图考虑以下具体实施方式后,本公开的包括其性质和其各种优点的上述和其它特征将变得更明显,附图中:
图1是根据本公开的实施例的采用LDPC解码的说明性通信系统的框图;
图2A和图2B是根据本公开的实施例的代表所接收的码字的符号的变量节点和用于解码所接收的码字的校验节点之间的通信的图形说明;
图3是根据本公开的实施例的用于多阶段解码的说明性系统的框图;
图4是根据本公开的实施例的用于混合码字解码的说明性过程的流程图;和
图5是根据本公开的实施例的用于多阶段解码的说明性过程的流程图。
具体实施方式
本公开一般涉及在解码器处执行解码。为了提供本公开的总体理解,现在,将描述某些说明性实施例,包括基于硬判决输入和任选地软信息执行解码的多阶段解码器。然而,本领域的普通技术人员应当理解,对于正在处理的应用若适宜,则可以适应并且修改本文中所描述的系统和方法,而且应当理解,本文中所描述的系统和方法可以在其它合适的应用中采用,并且应当理解,这样的其它添加和修改将不会背离其范围。
在一些通信系统(诸如某些闪存单元)中,在可以获得关于硬判决的可靠性数据之前,解码器可以获得数据估计值(或硬判决数据)。本文中所描述的系统和方法允许在多个阶段进行解码,而不是在解码开始之前,迫使软解码器等待,直到可以获得硬判决和可靠性数据两者为止。当可以获得硬判决时,本公开的解码系统和方法在第一阶段中执行硬解码。如果在第一阶段的解码失败,则可以传送针对可靠性信息的请求,并且可以在使用硬判决和可靠性信息的组合的第二阶段尝试解码。
图1示出了根据本公开的一些实施例的部分基于可靠性输入进行解码的说明性通信系统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。作为示例,解码器124是LDPC解码器。一般而言,LDPC解码可以使用数学矢量模型进行描述,其中,c是长度为n的二进制串并且H是奇偶校验矩阵H 126,其是低密度的稀疏n×m矩阵,其中,如上所述,n是码字中的符号的数目,m是满足m≥n-k的校验节点的数目,k是消息中的符号的数目。仅当二进制串c是码字c110时,满足该模型。奇偶校验矩阵H 126不一定是唯一的,并且为计算上方便,可以被选择以减少由解码器124的解码技术生成的错误的数目,或两者。尽管LDPC解码在本文中详细地进行了描述,但是本领域普通技术人员将理解,本公开可适用于能够使用软信息(诸如Turbo码)进行解码的任何编码方案、格子(trellis)编码调制方案、或任何其它合适的编码方案。
根据本公开,解码器124可以被配置成基于一个或多个“更新规则”通过更新符号、可靠性数据、或两者来处理检测器样本122。在示例中,更新规则可以基于是否满足或未满足符号的校验、符号基于可靠性数据的值是否先前已经更新、翻转、或切换(toggle),或者其合适的组合。一般地,如本文中所使用的,“翻转”或“切换”符号意味着将符号的值更新为与当前值不同的值。用于执行符号翻转或切换的更新规则和系统架构在Varnica等人于2014年2月4日提交的美国专利申请号14/172,420中进行了描述,其整体内容通过引用并入本文。
而且,解码器124可以使用多阶段解码技术,其中,第一阶段可以用于执行硬解码,紧跟第一阶段的第二阶段可以用于执行软解码。特别地,一些通信系统(诸如某些闪存单元)使得在可以获得关于硬判决的可靠性数据之前,解码器可以获得数据估计值(或硬判决数据)。解码器124可以在多个阶段进行解码,而不是在解码开始之前,迫使软解码器等待,直到可以获得硬判决和可靠性数据两者为止。当可以获得硬判决时,第一阶段执行硬解码。稍后,当可以获得可靠性数据时,在使用硬判决和可靠性数据这两者的第二阶段进行软解码。任选地,当接收到传入可靠性数据时,使用附加的软解码阶段。这样的多阶段解码器在本文中可以被称为后期可靠性解码器并且在Nguyen等人于2014年3月5日提交的美国专利申请号14/197,408(代理人案号MP5249)中进行了描述,其全篇内容通过引用并入本文。
处理之后,解码后的消息128中的每个符号应该作为一组可能状态中的一个状态进行分配。当输入到作为c的模型时,解码后的消息128满足该模型。参照图3至图5,对用于执行解码的合适的系统和过程进行描述。
解码后的消息128在被解码器124处理之后,被递送到接收用户或应用130。接收用户或应用130可以与和发送用户或应用102相同的设备或实体相对应,或接收用户或应用130可以与不同的设备或实体相对应。进一步地,接收用户或应用130可以被共同定位或与发送用户或应用102物理上分开。如果解码器124校正由信道114引起的所有错误和通信系统100中的其它通信影响,则解码后的消息128是消息104的逻辑复制品,否则,解码后的消息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)中。奇偶校验矩阵H126(图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使用奇偶校验矩阵H126的第四行来确定该校验节点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是根据本公开的实施例的使用后期可靠性输入进行解码的说明性多阶段解码器系统300的框图。系统300可以实施如图2A和图2B所图示的解码过程。当执行信道114的一次或多次读取时,接收器350接收硬判决数据和可靠性数据。因为硬判决数据由单次读取产生和可靠性数据由多次读取产生,所以在接收可靠性数据(由[bk bk-1 … b1]表示)之前,接收硬判决数据(由b0表示)。
多阶段解码器的第一阶段硬解码器356从接收器350中接收硬判决数据352并且执行硬解码。第一阶段硬解码器356可以通过确定是否基于是否满足或未满足与变量节点相关联的校验节点的数目而更新变量节点值来执行硬解码。在示例中,可以基于更新后的变量节点值的哪些组合最有可能减少未满足的校验节点的数目进行选择性地更新一个或多个变量节点的值。第一阶段硬解码器356输出更新后的硬判决358,其被存储在硬判决存储器360中并且任选地传送到第二阶段软解码器362。在一些实施例中,第一阶段硬解码器356被配置成确定解码成功,并且终止解码。作为示例,当达到全零校正子时,可以确定解码成功。
第二阶段软解码器362从接收器350中接收可靠性数据354并且从第一阶段硬解码器356中接收更新后的硬判决358。第二阶段软解码器362基于可靠性数据354和硬判决358执行软解码。由第二阶段软解码器362执行的软解码可以包括:确定是否基于一个或多个更新规则更新硬判决358、可靠性数据354、或两者。在示例中,更新规则可以基于是否满足或未满足与变量节点相关联的校验节点,是否变量节点已经基于可靠性数据被先前更新,或它们的组合。第二阶段软解码器362的输出可以包括更新后的可靠性数据363,其被存储在可靠性数据存储器364中。而且,如果第二阶段软解码器362更新了硬判决358,则第二阶段软解码器362可以将更新后的硬判决存储在硬判决存储器360中。
如图3所示,使用单个第二阶段软解码器362。然而,一般而言,当接收附加的可靠性数据时,可以使用任何数目的附加的第二阶段软解码器。特别地,对于k个比特传入的可靠性数据,可以使用k个阶段的软解码器,每个阶段的软解码器与对应的数目的可靠性数据比特相关联。在示例中,如本文中所描述的多阶段解码器包括具有不同吞吐量特点的至少两个阶段解码器。特别地,因为一次处理少量比特(例如,一个比特),所以第一阶段解码器(例如诸如第一阶段硬解码器356)可以与高吞吐量相关联。因为第二阶段解码器可以被配置成比第一阶段解码器一次处理更多个比特,所以第二阶段解码器(例如诸如第二阶段软解码器362)可以与比第一阶段解码器低的吞吐量相关联。备选地,第一阶段解码器和第二阶段解码器可能具有相似的吞吐量,即使第二阶段解码器被配置成对比第一阶段解码器更多的输入进行操作。在这种情况下,即使第二阶段解码器比第一阶段解码器处理更多的输入,但是第一阶段解码器和第二阶段解码器的解码速度相似。这意味着,第一阶段解码器和第二阶段解码器处理相同量的数据所花费的时间量相似。而且,多阶段解码器可以包括第三阶段解码器,该第三阶段解码器被配置成对多个比特(例如,超过两个比特)输入进行操作,并且与比第一或第二阶段解码器低的吞吐量值相关联。在示例中,第三阶段解码器的吞吐量值可以是比第一阶段解码器、第二阶段解码器、或两者的吞吐量低4到400倍。
在示例中,多阶段解码器包括第一数目的高吞吐量硬输入解码器、对两个比特输入进行操作的第二数目的高吞吐量解码器、以及对两个以上比特的输入进行操作的第三数目的低吞吐量解码器。因为只有未能在第一硬输入阶段成功解码的码字通过软阶段解码器处理,所以第二数目和第三数目可以小于第一数目。在示例中,第一数目的高吞吐量硬输入解码器可以被替换成若干被配置成对硬输入和两个比特输入进行操作的高吞吐量解码器。图4中的流程图是能够对硬输入或多个输入进行操作的混合码字途径的示例。
在一些实施例中,使用第二阶段软解码器362和任何附加的软解码器是任选的。例如,由第一阶段硬解码器356执行的硬解码可能会成功,因此不需要附加的可靠性数据。在这种情况下,控制器可以被指令成对于当前变量节点,不执行信道114的任何附加的读取,并且可以不用第二阶段软解码器362。在另一示例中,由第n阶段软解码器所执行的软解码可能会成功,其中,n可以为1到k之间的任意整数。在这种情况下,对于当前变量节点,可以不执行信道114的任何附加的读取,并且可以不用其余阶段的软解码器(即,n+1到k)。
在一些实施例中,与从NAND闪存单元读取数据有关,使用系统300的多阶段解码器。在示例中,每次读取产生一个比特的信息。特别地,第一次读取产生硬判决,或变量节点值,或b0。第二次读取产生第一比特可靠性数据、或b1。控制器可以与NAND闪存进行接口以读取存储在存储器单元中的数据页面。为了得到多个比特,控制器多次发出读取命令。
在示例中,控制器可以解析指令队列,其可以包括读取指令(诸如“读取页面0”、“读取页面1”、“读取页面2”等)。硬解码器可以确定当从页面0读取的数据的硬解码失败时,就没有必要存储结果,并且控制器可以继续尝试解码从页面1中读取的数据。在这种情况下,如果需要后期执行解码从页面0中读取的数据,则控制器将必须重新启动过程并且要求再次执行第一次读取操作。这可能是浪费的,因为执行读取操作所花费的时间量会显著地超过执行解码所花费的时间量,从而控制器的资源可能通过在执行读取操作的同时,迫使控制器等待而被浪费。
在一些实施例中,NAND闪存具有可以独立地与控制器通信的多个信道。在这种情况下,控制器可以发起读取页面1(信道中的一个之上)的读取指令,而同时请求第二读取操作在页面0(信道中的另一个之上)上执行。以这种方式,控制器不再等待,同时执行第二读取操作,并且系统资源没有被浪费。
在一些实施例中,本文中所描述的系统包括存储硬判决(由存储器的单次读取产生)和可靠性数据(由存储器的多次读取产生)的缓存。数据被存储在缓存中,而非丢弃从一次或多次读取操作产生的数据。特别地,在执行一个或多个读取操作之后,硬判决数据和/或可靠性数据被存储在缓存中,并且可以随后被取得,以使那些一个或多个读取操作不需要重复。在这种情况下,如果确定了附加的可靠性数据是理想的,则可以执行附加的读取操作,而无须重复原来的一个或多个读取操作。在一些实施例中,NAND闪存设备本身包括存储一个或多个读取结果的缓存。在这种情况下,从读取操作中产生的数据已经存储在NAND设备中,并且控制器只需要在需要时获取该数据。
图4是根据本公开的实施例的使用混合码字途径进行解码的说明性过程400的流程图。过程400可以使用如图3所示的系统300来实施。特别地,系统300可以被配置成接收一组码字,其中的一些码字是硬输入码字,而且其中的一些是多比特输入码字。硬输入码字是单个比特输入码字,并且可以与多比特输入码字混合。当接收到码字时,系统300可以被配置成采用在本文中被称为“即时地(on-the-fly)”途径的途径在硬输入码字和多比特输入码字之间进行区分。
在402,接收第一输入。在示例中,第一输入是一个比特,并且可以是硬输入码字或多比特输入码字的一部分。在404,系统300确定在402接收的第一输入是硬输入码字还是多比特输入码字的一部分。在示例中,在402接收的第一输入用指示第一输入是硬输入码字还是多比特输入码字的一部分的信息来标记(tagged)。该标记还可以提供多比特输入码字中的比特的数目、或多比特输入码字的哪个部分与第一输入相对应的指示。
在406,如果系统确定第一输入是硬输入码字,则在408解码第一输入。否则,如果第一输入是多比特输入码字的一部分,则系统在410确定在解码之前,是否等待接收到完整的码字为止。如果这样,则系统等待直到在416接收到完整的码字为止并且在418执行完整的码字的解码。在420完成当前的码字的解码。
否则,系统可以被配置成选择在开始解码过程之前,不等待接收到完整的码字为止。在这种情况下,在412解码第一输入。如果在412第一输入解码失败(414),则系统可以等待在416接收到完整的码字为止并且在418解码完整的码字。在420完成当前的码字的解码。备选地,如果完整的码字包括两个以上的比特输入,则系统可以被配置成当接收到每个附加的比特时,尝试解码,而不是等待完整的码字被接收。
在示例中,如果在412第一输入解码失败(414),则第一输入可以被丢弃,并且系统可以请求另一硬判决输入被接收。请求另一硬判决输入可以引起对NAND闪存单元执行另一读取操作。备选地,如果在412第一输入解码失败(414),则系统可以将解码结果存储在硬判决存储器中并且继续接收并解码其它码字。系统可以识别当接收到第一输入时的与相同码字相对应的接收的附加的输入,从硬判决存储器中取得结果,并且继续尝试解码码字。被接收的附加的输入可以包括附加的硬判决输入、软件信息、或两者。当附加的输入被接收时,解码可以在任一点上获得成功。每当解码成功时,或当即使在使用与码字相关联的所有输入尝试解码之后,解码已经失败时,在420完成解码。
图5是根据本公开的实施例的用于多阶段解码的说明性过程500的流程图。过程500可以使用如图3所示的系统300来实施。在502,第一解码器尝试基于用于符号的硬判决输入来解码数据。在一些实施例中,在传送对存储器执行读取操作的指令之后,接收用于符号的硬判决输入。特别地,存储器可以是NAND闪存设备,并且控制器可以指令NAND闪存设备执行读取操作并且向控制器传送读取操作(即,硬判决)的结果。
在一些实施例中,第一解码器尝试基于硬判决输入解码数据不基于任何可靠性数据。硬解码方案的结果可以包括更新后的硬判决值。最初被接收的硬判决和/或更新后的硬判决值可以储存在缓存(诸如图3中所示出的硬判决存储器360)中。在一些实施例中,第一解码方案包括评估硬解码是否成功,诸如例如通过确定是否达到全零校正子。如果硬解码成功,则可以终止过程500,并且可以不执行504、506、508。否则,如果硬解码不成功(例如,如果没有达到全零校正子,则可以确定),则执行504、506、508。
在504,当在502基于硬判决输入解码数据的尝试失败时,发送器传送针对用于符号的可靠性信息的请求,并且在506,接收电路接收用于符号的可靠性信息。在一些实施例中,传送针对可靠性信息的请求包括:传送对存储器执行附加的读取操作的指令。当存储器是NAND闪存设备时,控制器可以指令NAND闪存设备执行一个或多个附加的读取操作并且向控制器以可靠性数据的形式传送附加的读取操作的结果。
在508,第二解码器基于可靠性数据来解码数据。在示例中,第二解码器可以使用在502使用的硬判决输入和在506接收的可靠性信息的组合来解码数据。在这种情况下,当第一解码器尝试解码数据失败时,在502使用的硬判决输入可以存储在硬判决存储器中。例如,存储器单元(诸如在图3中所示出的硬判决存储器360)可以用于存储硬判决输入,并且第二解码器可以被配置成从存储器中取得硬判决输入。
在另一示例中,当在502,第一解码器基于硬判决输入来解码数据的尝试失败时,硬判决输入可以被丢弃,并且在504传送的针对可靠性信息的请求还可以包括针对硬判决输入的另一读取的请求。在这种情况下,在506接收第二硬判决输入,并且第二解码器使用所接收的第二硬判决输入和用于符号的可靠性信息的组合来解码数据。
在一些实施例中,在晚于第二时间的第三时间接收用于变量节点的附加的可靠性数据。如果在第二阶段解码(即,使用第二解码方案解码)未成功,那么在第三时间之后,可以使用第三解码方案解码变量节点。如本文中所描述的,任何数目的附加的阶段可以用于接收附加的可靠性数据(例如,从存储器的附加的读取中产生)并且进一步用于解码变量节点。当解码成功时,或者当已经使用最大数目的阶段或已经执行最大数目的附加的读取时,终止解码过程。
在一些实施例中,本公开的系统和方法包括在不同类型的码字之间进行区分的机构。在示例中,用于符号的硬判决输入可以由一个比特数据代表,并且可靠性信息可以由另一比特数据代表。在这种情况下,系统300可以接收混合组。
尽管本文中已经显示并且描述了本公开的各种实施例,但是,对于本领域技术人员来说,显而易见的是,这样的实施例只是作为示例而提供。本领域技术人员将在不偏离本公开的情况下想到多种变型、变化、和替代。应当理解,本文中所描述的本公开的实施例的各种替代方案可以在实施本公开中使用。以下权利要求旨在限定本公开的范围并且因此覆盖了属于这些权利要求及其等同物的范围内的方法和结构。

Claims (20)

1.一种用于对数据进行解码的方法,包括:
使用第一解码器尝试基于用于符号的硬判决输入来解码所述数据;
当基于所述硬判决输入来解码所述数据的所述尝试失败并且当所述数据指示所述符号的可靠性信息存在时,传送针对用于所述可靠性信息的请求;
用接收电路接收用于所述符号的所述可靠性信息;以及
使用第二解码器基于所述可靠性信息来解码所述数据。
2.根据权利要求1所述的方法,其中,当基于用于所述符号的所述硬判决输入来解码所述数据的所述尝试失败时,所述方法还包括:丢弃用于所述符号的所述硬判决输入,以及传送针对用于所述符号的另一硬判决输入的请求。
3.根据权利要求1所述的方法,其中所述第二解码器基于所述硬判决输入和所述可靠性信息来解码所述数据。
4.根据权利要求1所述的方法,其中当基于用于所述符号的所述硬判决输入来解码所述数据的所述尝试失败时,所述方法还包括:将所述硬判决输入存储在存储器中。
5.根据权利要求1所述的方法,还包括:在传送对存储器执行读取操作的指令之后,用所述接收电路接收用于所述符号的所述硬判决输入。
6.根据权利要求1所述的方法,其中通过对存储器执行一个或多个附加的读取操作来获得所述可靠性信息。
7.根据权利要求1所述的方法,其中响应于确定所述硬判决输入是还包括所述可靠性信息的码字的一部分,所述方法还包括:在尝试解码所述数据之前等待直至接收到所述可靠性信息。
8.根据权利要求1所述的方法,其中当所述第一解码器基于用于所述符号的所述硬判决输入成功地解码所述数据,所述方法还包括:终止所述解码,而不传送针对所述可靠性信息的所述请求。
9.根据权利要求1所述的方法,其中所述可靠性信息包括至少两个比特。
10.一种用于对数据进行解码的系统,包括:
第一解码器,所述第一解码器被配置成尝试基于用于符号的硬判决输入来解码所述数据;
发送器,所述发送器被配置成当基于所述硬判决输入来解码所述数据的所述尝试失败并且当所述数据指示所述符号的可靠性信息存在时,传送针对用于所述可靠性信息的请求;
接收器,所述接收器被配置成接收用于所述符号的所述可靠性信息;以及
第二解码器,所述第二解码器被配置成基于所述可靠性信息来解码所述数据。
11.根据权利要求10所述的系统,其中当所述第一解码器基于所述硬判决输入来解码所述数据失败时,所述第一解码器还被配置成丢弃用于所述符号的所述硬判决输入,以及所述发送器还被配置成传送针对用于所述符号的另一硬判决输入的请求。
12.根据权利要求10所述的系统,其中所述第二解码器基于所述硬判决输入和所述可靠性信息来解码所述数据。
13.根据权利要求10所述的系统,其中当所述第一解码器基于所述硬判决输入来解码所述数据失败时,所述系统还包括存储器,所述存储器被配置成存储所述硬判决输入。
14.根据权利要求10所述的系统,其中在传送对存储器执行读取操作的指令之后,接收用于所述符号的所述硬判决输入。
15.根据权利要求14所述的系统,其中所述存储器是NAND闪存。
16.根据权利要求10所述的系统,其中通过对存储器执行一个或多个附加的读取操作来获得所述可靠性信息。
17.根据权利要求10所述的系统,其中所述第一解码器和所述第二解码器具有基本上相似的吞吐量。
18.根据权利要求10所述的系统,其中响应于确定所述硬判决输入是还包括所述可靠性信息的码字的一部分,所述第一解码器被配置成在尝试解码所述数据之前等待直至接收到所述可靠性信息。
19.根据权利要求10所述的系统,其中当所述第一解码器基于用于所述符号的所述硬判决输入成功地解码所述数据,所述系统终止所述解码,而所述发送器不传送针对所述可靠性信息的所述请求。
20.根据权利要求10所述的系统,其中所述可靠性信息包括至少两个比特。
CN201480016609.6A 2013-03-21 2014-03-05 用于多阶段软输入解码的系统和方法 Active CN105052066B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361803894P 2013-03-21 2013-03-21
US61/803,894 2013-03-21
PCT/US2014/020644 WO2014149738A1 (en) 2013-03-21 2014-03-05 Systems and methods for multi-stage soft input decoding
US14/197,426 2014-03-05
US14/197,426 US9323611B2 (en) 2013-03-21 2014-03-05 Systems and methods for multi-stage soft input decoding

Publications (2)

Publication Number Publication Date
CN105052066A CN105052066A (zh) 2015-11-11
CN105052066B true CN105052066B (zh) 2018-12-25

Family

ID=51570064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480016609.6A Active CN105052066B (zh) 2013-03-21 2014-03-05 用于多阶段软输入解码的系统和方法

Country Status (5)

Country Link
US (1) US9323611B2 (zh)
JP (1) JP6451955B2 (zh)
KR (2) KR102349209B1 (zh)
CN (1) CN105052066B (zh)
WO (1) WO2014149738A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014126750A1 (en) 2013-02-14 2014-08-21 Marvell World Trade Ltd. Bit flipping decoding with reliability inputs for ldpc codes
WO2014138246A1 (en) * 2013-03-07 2014-09-12 Marvell World Trade Ltd. Systems and methods for decoding with late reliability information
JP6451955B2 (ja) 2013-03-21 2019-01-16 マーベル ワールド トレード リミテッド 多段ソフト入力デコードのためのシステムおよび方法
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 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
US10089177B2 (en) 2014-06-30 2018-10-02 Sandisk Technologies Llc Multi-stage decoder
US9614547B2 (en) * 2014-06-30 2017-04-04 Sandisk Technologies Llc Multi-stage decoder
EP3221987A1 (en) * 2014-11-21 2017-09-27 Telefonaktiebolaget LM Ericsson (publ) Signal processing apparatus and method
CN105162492B (zh) * 2015-05-26 2018-05-18 中国科学院微电子研究所 一种无线体域网重复码解扩频系统和方法
US20180032396A1 (en) * 2016-07-29 2018-02-01 Sandisk Technologies Llc Generalized syndrome weights
CN107249144B (zh) * 2017-05-12 2020-05-15 北京小鸟看看科技有限公司 多媒体文件解码的方法、多媒体播放器和播放设备
JP6847796B2 (ja) * 2017-09-20 2021-03-24 キオクシア株式会社 メモリシステム
US10574274B2 (en) * 2017-09-29 2020-02-25 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10511326B2 (en) * 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10637511B2 (en) * 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
KR20200020535A (ko) * 2018-08-17 2020-02-26 에스케이하이닉스 주식회사 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치
US11184024B2 (en) * 2019-12-02 2021-11-23 SK Hynix Inc. Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
CN113364471B (zh) 2020-03-05 2024-04-12 华为技术有限公司 一种译码系统、译码控制器及译码控制的方法
US11811424B2 (en) * 2021-04-05 2023-11-07 Micron Technology, Inc. Fixed weight codewords for ternary memory cells
CN113872611B (zh) * 2021-12-02 2022-04-15 阿里云计算有限公司 一种ldpc解码方法、设备、系统及存储介质
US12094544B2 (en) * 2022-03-17 2024-09-17 Samsung Electronics Co., Ltd. Programming by self adjusting program voltage targets compensating for cell-to-cell interference and PE cycles
US12126361B2 (en) 2022-03-21 2024-10-22 Intel Corporation Techniques to improve latency of retry flow in memory controllers

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084478A1 (ja) * 2003-03-20 2004-09-30 Fujitsu Limited 誤り制御装置
JP4050726B2 (ja) * 2004-06-23 2008-02-20 株式会社東芝 復号装置
US7441178B2 (en) 2005-02-24 2008-10-21 Keyeye Communications Low complexity decoding of low density parity check codes
JP4727655B2 (ja) 2005-03-03 2011-07-20 パナソニック株式会社 無線通信装置
US7587657B2 (en) * 2005-04-29 2009-09-08 Agere Systems Inc. Method and apparatus for iterative error-erasure decoding
KR100931442B1 (ko) * 2005-05-10 2009-12-11 콸콤 인코포레이티드 Sps 데이터의 dpsk 복조를 개선하기 위한 비트연판정의 사용
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 삼성전자주식회사 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
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
KR101541040B1 (ko) * 2010-03-12 2015-08-03 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
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
US10902179B2 (en) 2012-12-10 2021-01-26 Microsoft Technology Licensing, Llc Modification of file graphic appearance within a collection canvas
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
JP6451955B2 (ja) 2013-03-21 2019-01-16 マーベル ワールド トレード リミテッド 多段ソフト入力デコードのためのシステムおよび方法
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 삼성전자주식회사 플래쉬 메모리 읽기 방법

Also Published As

Publication number Publication date
US9323611B2 (en) 2016-04-26
CN105052066A (zh) 2015-11-11
US20140289584A1 (en) 2014-09-25
KR102349209B1 (ko) 2022-01-10
KR20150131370A (ko) 2015-11-24
KR20200093688A (ko) 2020-08-05
JP2016519481A (ja) 2016-06-30
WO2014149738A1 (en) 2014-09-25
JP6451955B2 (ja) 2019-01-16

Similar Documents

Publication Publication Date Title
CN105052066B (zh) 用于多阶段软输入解码的系统和方法
CN105247808B (zh) 使用后期可靠性信息进行解码的系统和方法
CN104995844B (zh) 具有对于ldpc码可靠性输入的比特翻转解码
CN103444087B (zh) 使用弹性代码与柔性源块映射进行编码和解码
US8650457B1 (en) Methods and systems for reconfigurable LDPC decoders
US9300328B1 (en) Methodology for improved bit-flipping decoder in 1-read and 2-read scenarios
US8667361B1 (en) Systems and methods for performing bit flipping in an LDPC decoder
US9614548B1 (en) Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
WO2014139123A1 (en) Method and apparatus of ldpc decoder with lower error floor
KR20150076583A (ko) 비이진 패리티 검사 부호의 복호 방법 및 장치
WO2014172874A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
US8935601B1 (en) Post-processing methodologies in decoding LDPC codes
TW201729545A (zh) 用於對低密度奇偶校驗資料進行解碼以對碼字進行解碼的方法以及解碼器
US9379738B2 (en) Systems and methods for decoding using partial reliability information
Yang et al. A new two‐stage decoding scheme with unreliable path search to lower the error‐floor for low‐density parity‐check codes
JP2008141668A (ja) 光受信装置
KR20160024711A (ko) Ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법
KR102506686B1 (ko) 길이가 64800이며, 부호율이 2/15인 ldpc 복호화기 및 이를 이용한 ldpc 복호화 방법
Lim et al. UIBF decoding to lower the error floors of high‐rate systematic LDPC codes
Courtade et al. A deterministic approach to rate-compatible fountain communication
Nagaraj et al. Multiscale unit‐memory convolutional codes
KR20160020992A (ko) 길이가 16200이며, 부호율이 4/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법
KR20160020993A (ko) 길이가 16200이며, 부호율이 5/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법
KR20160020990A (ko) 길이가 16200이며, 부호율이 2/15인 ldpc 부호화기 및 이를 이용한 ldpc 부호화 방법

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

Effective date of registration: 20200428

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: 20200428

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: 20200428

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right