CN102623067A - 用于基于闪存的存储器系统的软解码系统和方法 - Google Patents

用于基于闪存的存储器系统的软解码系统和方法 Download PDF

Info

Publication number
CN102623067A
CN102623067A CN2012100637097A CN201210063709A CN102623067A CN 102623067 A CN102623067 A CN 102623067A CN 2012100637097 A CN2012100637097 A CN 2012100637097A CN 201210063709 A CN201210063709 A CN 201210063709A CN 102623067 A CN102623067 A CN 102623067A
Authority
CN
China
Prior art keywords
demoder
decoder
code word
main
decoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100637097A
Other languages
English (en)
Other versions
CN102623067B (zh
Inventor
阳学仕
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 CN102623067A publication Critical patent/CN102623067A/zh
Application granted granted Critical
Publication of CN102623067B publication Critical patent/CN102623067B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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
    • 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
    • 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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
    • 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
    • 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/51Constant weight codes; n-out-of-m codes; Berger codes

Abstract

本发明涉及用于基于闪存的存储器系统的软解码系统和方法。特别地,提供了用于使用包括主要解码器和辅助解码器的解码器对数据进行解码的系统和方法。从存储设备获取码字。主要解码器尝试使用与码字相关联的硬数据来对码字进行解码。如果主要解码器失败,则解码控制器接收到对失败的指示,该指示激活辅助解码器。辅助解码器尝试使用与码字相关联的硬数据或软数据来对码字进行解码。主要解码器被设计为比辅助解码器消耗更少的能量、消耗更少的硅面积以及具有更高的吞吐量。主要解码器被配置为,相比失败并需要辅助解码器对码字进行解码,更有可能在对码字进行解码的第一次尝试中对存储在存储设备中的码字进行成功解码。

Description

用于基于闪存的存储器系统的软解码系统和方法
相关申请的交叉引用
本公开要求2011年1月28日提交的第61/437,518号美国临时申请的权益,其内容在此通过引用而全部合并于此。
技术领域
本公开总体上涉及通信和/或存储系统和方法,并且更特别地,涉及用于对错误校正代码进行解码的系统和方法。
背景技术
在此出于总体上呈现本公开的上下文的目的提供背景技术描述。就本背景技术部分中所描述的工作而言,发明人的工作以及在提交时可能并未以其它方式构成现有技术的描述的各方面,并不被明示或暗示地承认为相对于本公开的现有技术。
传统闪存存储器设备中的数据错误率取决于,闪存存储器设备操作的持续时间、数据保留在存储器中的持续时间、以及数据所驻留页面的编程-擦除(PE)循环的数量和许多其它因素。例如,由于闪存存储器设备的操作,原始闪存存储器的可靠性显著降低。特别是,在正常PE循环和数据保留持续时间下降期间,原始位错误率(BER)和信噪比(SNR)变得更差。为了满足针对数据存储应用的严格可靠性要求,存储控制器可以贯穿对存储设备的使用,并且不管实际BER、相似或一致的校正的位错误率(CBER),来负责维护,其中该校正的位错误率是用户察觉到的错误率。
传统存储应用使用错误校正代码电路(ECC)来对存储的数据进行编码,使用解码引擎来检测/校正在从闪存存储器存储设备读取数据时遇到的数据错误。存储应用可以使用日益增强的错误校正编码和解码技术,以便保持相似或一致的CBER。例如,存储应用和/或存储控制器可以使用低密度奇偶校验(LDPC)编码技术来实现这些目标。此类LDPC编码技术涉及使用软迭代解码技术,该软迭代解码技术涉及解码器进行若干迭代以对所存储的编码信息进行解码。正如在此所使用的,编码信息可以被分组为被称为“码字”的单元。码字可以包括“符号”,其为一个或多个位的分组。
软迭代解码使用与所存储的码字相关联的软数据来对码字进行解码。正如在此所使用的,软数据或信息是指示码字中的符号是特别的数据符号(诸如二进制系统中的“0”或“1”)的概率的数据。对比与软迭代解码,硬判定解码(相当于硬数据解码)基于与所存储的码字相关联的硬数据(即,硬判定)。正如在此所使用的,硬数据、硬判定包括对应于原始码字符号的数据。
当传统闪存存储器存储系统使用软迭代可解码代码用于存储应用时,解码器的复杂度可能变得比当例如使用代数码(诸如BCH代码或里德-所罗门(Reed-Solomon)代码)时高出很多,该代数码需要使用硬数据的硬判定解码。此外,当传统闪存存储器存储系统使用软迭代可解码代码用于存储应用时,软数据输入(关于要被解码的所存储码字的软数据)可能是难于获取的(即,可能需要非常长的时段来获取软数据和/或可能消耗许多能量来获取软数据)。这是因为大多数闪存存储被优化为输出硬判定而非软数据。因为在使用软迭代可解码代码中的这些困难,由于对用于闪存存储器存储应用的此类代码进行解码而可能导致的能量使用的增长和吞吐量的下降,因此对此类代码的实现可能不是非常期望的。
发明内容
提供了用于在存储系统中使用混合解码方式实现软迭代解码的系统和方法。特别是,系统和用于与系统一起使用的方法实现了在复杂度(例如,功耗和系统使用的硅面积)和性能(例如,吞吐量和信噪比增益)之间的适当平衡。
在一些实施方式中,使用存储系统来对存储于存储设备中的码字进行解码。从存储设备中接收码字。解码器系统的主要解码器尝试对码字进行解码。接收主要解码器对码字进行解码失败的指示。基于所接收到的指示,使用解码器系统的辅助解码器对码字进行解码。主要解码器比辅助解码器的复杂度更低。在一个实施方式中,主要解码器比辅助解码器具有更高的用于对码字进行解码的吞吐量。在一个实施方式中,主要解码器比辅助解码器消耗更少的能量。在一个实施方式中,响应于接收主要解码器对码字进行解码失败的指示来激活辅助解码器。
在一些实施方式中,用于对存储于解码存储设备中的码字进行解码的解码器系统包括主要解码器、解码器控制器和辅助解码器。主要解码器被配置为尝试对码字进行解码。解码器控制器被配置为接收主要解码器对码字进行解码失败的指示。辅助解码器被配置为基于该指示对码字进行解码。主要解码器比辅助解码器具有更低的复杂度。在一个实施方式中,主要解码器比辅助解码器占据更少的硅面积。在一个实施方式中,主要解码器包括多个可以并行运作的解码器。在一个实施方式中,辅助解码器包括多个可以并行运作的解码器。在一个实施方式中,解码器控制器被配置为响应于主要解码器对码字进行解码失败的指示来激活辅助解码器。
附图说明
结合附图考虑以下具体实施方式,本公开的上述的和其它目标和优点将会容易理解,在附图中相似的参考标记始终指代相似的部分,并且其中:
图1示出了根据本公开的一些实施方式的说明性解码器系统;
图2示出了根据本公开的一些实施方式的用于解码器系统的解码区域的说明性图表;
图3示出了根据本公开的一些实施方式的、用于使用如本公开中描述解码器对数据进行解码的过程的说明性流程图;
图4示出了根据本公开的一些实施方式的说明性解码器系统;以及
图5示出了根据本公开的一些实施方式的说明性主要解码器和辅助解码器。
具体实施方式
本公开总体上涉及使用混合解码器执行高效解码。出于说明性目的,在电子存储系统的上下文中描述本公开,其中所使用的存储设备可以是闪存存储器设备。然而,应当理解,本文的教示同样可应用于任何其它电子存储系统(例如,随机访问存储器设备、可编程逻辑设备、非易失性存储器、易失性存储器、FeRAM、CBRAM、PRAM、SONOS、RRAM、赛道存储器(Racetrackmemory)、NRAM和Millipede存储设备),其中写入存储系统的数据容易出现读取错误。
图1示出了根据本公开的一些实施方式的说明性系统100。系统100包括存储设备110、输入缓冲器120、主要解码器电路130、解码器控制顶端(control top)135、辅助解码器电路140和输出缓冲器150。主要解码器电路130、解码器控制顶端135和辅助解码器电路140可以共同组成解码器系统。存储设备110可以包括电子存储设备(例如,闪存存储器设备、随机访问存储器设备、可编程逻辑设备、非易失性存储器、易失性存储器、FeRAM、CBRAM、PRAM、SONOS、RRAM、赛道存储器、和/或NRAM和Millipede存储设备)。
存储于存储设备110中的数据可以被编码并可以因此包括码字。以编码形式存储数据增加了存储于电子存储器中的数据的可靠性。一旦从存储器获取了码字,则需要对码字进行解码以输出由码字所表示的信息的集合。
在一些实施方式中,控制电路(未示出)可以指示存储设备110输出存储在给定地址位置的数据。例如,控制电路可以指示存储设备110获取一个页面的数据。在给定地址(或多个地址)处存储的码字(例如,该页的编码数据)由存储设备110输出,并被存储在输入缓冲器120中。输入缓冲器120可以是如下临时存储位置,从存储器获取的给定集合的码字在被解码前存储在该临时存储位置中。
主要解码器130可以读取存储于输入缓冲器120中的码字。主要解码器130可以是以非常高效的方式对码字进行解码的解码器。特别是,主要解码器130与辅助解码器140相比较可以使用更少量的能量,可以与辅助解码器140相比较使用更少的迭代来对码字进行解码,以及可以具有比辅助解码器140更低的复杂度。虽然主要解码器130可以具有比辅助解码器140更低的错误校正能力,但主要解码器可以比辅助解码器140具有更高的吞吐量(例如,25.6Gbps)并且可以占据更少量的硅面积。
主要解码器130可以是一个解码器。主要解码器130可以是独立或组合使用、串行或并行使用的不止一个解码器。主要解码器130可以是Viterbi解码器、LDPC解码器、AN解码器(被用来对用于算法应用的AN代码进行解码的解码器,其中A和N是整数)、BCH解码器、恒定权重解码器、卷积解码器、或任何其它类型的使用硬数据或软数据的编码信息的解码器。在一些实现中,主要解码器130可以耦合到存储设备110,并且可以配置为从存储设备获取与所存储码字相关联的附加软数据输入(例如,当解码器130是使用软数据而非硬数据的解码器时)。在其他实现中,解码器控制顶端135可以发起从存储设备110的读取操作,以读取软数据并向解码器130提供该数据。如果主要解码器130将其从输入缓冲器120接收的码字成功解码,则主要解码器130可以向输出缓冲器150输出经解码数据。输出缓冲器150可以是如下临时存储位置,将经解码数据集存储于该临时存储位置以供利用电路(例如,处理器或控制电路)消费。
如果主要解码器130对来自输入缓冲器120的码字进行解码失败,则可以向解码器控制顶端135通知该失败。在一些实施方式中,解码器控制顶端135可以监控主要解码器130以确定是否对码字进行了成功解码。解码器控制顶端135可以运行以激活辅助解码器140。在一些实施方式中,解码器控制顶端135可以追踪主要解码器130未能对码字进行成功解码的次数,并且可以在尝试了此类不成功的解码达到阈值次数后,宣告主要解码器130对该码字进行解码失败。在一些实施方式中,当主要解码器130未能对信息进行成功解码时,可以激活辅助解码器140(例如,由解码器控制顶端135)。在一些实施方式中,辅助解码器140可以是激活的,但直到主要解码器130在对码字进行解码失败,才尝试对来自输入缓冲器120的码字进行解码。
辅助解码器140可以读取存储于输入缓冲器120中的码字。辅助解码器140可以是使用更强大和更复杂的解码技术来对码字进行解码的解码器。特别是,辅助解码器140与主要解码器130相比较使用更大量的能量,与主要解码器130相比较使用更多的迭代以对码字进行解码,并且与主要解码器130相比较具有更大的复杂度。虽然辅助解码器140与主要解码器130相比可以具有增强的错误校正能力,但辅助解码器与主要解码器130相比可能具有更低的吞吐量(例如,800Mbps)并且占据更大量的硅面积。
辅助解码器140可以是一个解码器。辅助解码器140可以是独立或组合使用、串行或并行使用的不止一个解码器。在一些实施方式中,辅助解码器140可以是Viterbi解码器、LDPC解码器、AN解码器(被用于对用于算法应用的AN代码进行解码的解码器,其中A和N是整数)、BCH解码器、恒定权重解码器、卷积解码器、或任何其它类型的使用硬数据或软数据的编码信息的解码器。在一些实现中,辅助解码器140可以耦合到存储设备110,并且可以配置为从存储设备获取与所存储码字相关联的附加软数据输入(例如,当解码器140是使用软数据而非硬数据的解码器时)。在其他实现中,解码器控制顶端135可以发起从存储设备110的读取操作,以读取软数据并向解码器140提供该信息。如果辅助解码器140将其从输入缓冲器120接收的码字成功解码,则辅助解码器140可以向输出缓冲器150输出经解码数据144。输出缓冲器150可以是如下临时存储位置,将经解码数据集存储于该临时存储位置中以供利用电路(例如,处理器或控制电路)消费。
应当理解,解码器130和解码器140中的任何一个解码器可以包括可以实现任何合适的解码过程或技术的电路,该合适的解码过程或技术不同于来自解码器130和解码器140中的另一个解码器的技术。在一些实施方式中,解码器130和解码器140可以同时运作以对码字进行解码。在一些实施方式中,解码器140可以在解码器130之前运行以对码字进行解码。例如,如果已知码字具有高BER或低SNR,则解码器140可以在解码器130之前运行以对码字进行解码。对用于使用混合解码器对码字进行解码的技术的类似使用在2011年11月7日提交的第13/290,672号的共同未决的、共同转让美国专利申请中进一步描述,其内容在此通过引用而全部合并于此。
具有比第二码字的信号质量等级(BER或者SNR)更差的码字可能要求比对第二码字进行解码所需的解码器(例如,可以基于硬数据输入来对信息进行解码的解码器,诸如主要解码器130)更强、更复杂、更耗时并且更耗能量的解码器(例如,可以够基于软数据输入来对信息进行解码和使用多重迭代的解码器,诸如辅助解码器140)才能被成功解码。
图2示出了根据本公开的一些实施方式的用于解码器系统的解码区域的说明性图表200。图表200包括曲线210,该曲线210示出了存储于存储设备(例如,图1的存储设备110)中的码字的BER的一般概率分布。特别是,曲线210将从存储设备读取的码字的原始位错误率(X轴)映射到码字出现原始位错误率的概率(Y轴)。
图200还示出了三个区域:即时主要解码区域220(此处即时模式解码是成功的)、转换(主要/辅助)解码区域230(此处扩展模式解码是成功的)、和辅助解码区域240(此处重试模式解码是成功的)。这些区域/模式中的每一个是码字的BER的区间,在该区间上主要解码器(例如,图1的主要解码器130)和/或辅助解码器(例如,图1的辅助解码器140)能够对码字进行成功解码。特别是,对于具有在即时解码区域220中BER的码字而言,主要解码器(例如,使用硬数据输入)可以能对码字进行成功解码(按照即时模式解码)。对于具有在转换(主要/辅助)解码区域230中BER的码字而言,尽管即时模式解码失败,但主要解码器或辅助解码器(例如,使用硬数据输入)可以能对码字进行成功解码(按照扩展模式解码)。对于具有在辅助区域240中BER的码字而言,尽管即时模式解码和扩展模式解码两者都失败了,但辅助解码器(例如,使用软数据输入)可以能对码字进行成功解码(按照重试模式解码)。每个解码区域(例如图2中所示的)可以有助于定义将在解码器系统(例如,图1中示出的系统)中使用的主要和/或辅助解码器的类型。
可以定义解码区域(和/或使用的主要解码器和辅助解码器),从而使得在即时解码区域220中的码字的BER的累积概率(基于曲线210下方的区域)可以大于在转换解码区域230中的BER的累积概率。此外,在转换解码区域230中的码字的BER的累积概率(基于曲线210下方的区域)可以大于在辅助解码区域240中的BER的累积概率。这意味着按照这样的方式将解码器系统(例如,图1中所示的系统)设计为使主要解码器对所存储的码字解码成功的概率高于主要解码器对所存储的码字解码失败,从而依靠辅助解码器对码字进行解码的概率。正因为如此,可以减少将激活和/或使用辅助解码器来对码字进行解码的机会。因此,解码器系统被设计为允许以相当高的比率来对码字进行解码。
图3示出了根据本公开的一些实施方式的、用于使用如在此描述的解码器对数据进行解码的过程300的说明性流程图。
在310处,从存储设备读出关于码字(即,码字的符号)的硬数据输入(也称为硬判定输入)。例如,码字的符号可以从图1的存储设备110中的存储位置读出,并存储在图1的输入缓冲器120中。
在320处,主要解码器(例如,图1的主要解码器130)读取或接收硬数据(例如,在310中),并尝试对与硬数据相关联的码字进行解码。例如,如参考图2所讨论的,这种对码字进行解码的尝试可以被认为是即时模式解码。
在330,可以判定(例如,通过主要解码器或辅助解码器、或解码器控制器)主要解码器在320处的对码字的解码是成功还是失败。例如,图1的解码器控制顶端135可以监控图1的主要解码器130,以确定主要解码器130对码字的解码是否成功。作为另一示例,图1的主要解码器130可以确定对码字的解码失败,并且可以将其失败报告给图1的解码器控制顶端135。在一些实施方式中,在判定主要解码器对码字的解码失败之前,主要解码器可以多次不成功地尝试对码字进行解码。如果确定主要解码器对码字的解码失败,则可以执行操作340。如果确定主要解码器对码字的解码成功,则可以执行操作380。
在340处,可以激活辅助解码器(例如,图1的辅助解码器140)。辅助解码器可以读取或接收硬数据(例如,在310处读取的硬数据),并尝试对与硬数据相关联的码字进行解码。例如,如参考图2所描述的,这种对码字进行解码的尝试可以被认为是扩展模式解码。
在350处,可以判定(例如,通过主要解码器或辅助解码器、或解码器控制器)辅助解码器在340处对码字的解码是成功还是失败。例如,图1的解码器控制顶端135可以监控图1的辅助解码器140,以确定辅助解码器140对码字的解码是否成功。作为另一示例,图1的辅助解码器140可以确定对码字的解码失败,并且可以将其失败报告给图1的解码器控制顶端135。在一些实施方式中,在判定辅助解码器对码字的解码失败之前,辅助解码器可以多次不成功地尝试对码字进行解码。如果确定辅助解码器对码字的解码失败,则可以执行操作360。如果确定辅助解码器对码字的解码成功,则可以执行操作380。
在360处,可以激活辅助解码器(例如,图1的辅助解码器140)。辅助解码器可以读取或接收软数据(例如,来自操作310的关于码字的软数据)。例如,图1的辅助解码器140可以从图1的存储设备110获取与所存储码字相关联的附加软数据输入。作为另一示例,图1的解码器控制顶端135可以发起从存储设备110的读取操作,以读取与码字相关联的软数据,并向图1的解码器140提供该数据。从存储设备获取或读取软数据可以涉及对读取关于存储于存储设备中的关于码字的信息的多次通过。辅助解码器可以尝试对与所读取或接收到的软数据相关联的码字进行解码。例如,如参考图2所讨论的,这种对码字进行解码的尝试可以被认为是重试模式解码。
在370处,可以判定(例如,通过主要解码器或辅助解码器、或解码器控制器)辅助解码器在360处的对码字的解码是成功还是失败。例如,图1的解码器控制顶端135可以监控图1的辅助解码器140,以确定辅助解码器140对码字的解码是否成功。作为另一示例,图1的辅助解码器140可以确定对码字的解码失败,并且可以将其失败报告给图1的解码器控制顶端135。在一些实施方式中,在判定辅助解码器对码字的解码失败之前,辅助解码器可以多次不成功地尝试对码字进行解码。如果确定辅助解码器对码字的解码失败,则可以执行操作390。如果确定辅助解码器对码字的解码成功,则可以执行操作380。
在380处,包括主要解码器和辅助解码器以及可能还有解码器控制顶端的解码系统宣告对码字的解码成功。继而,经解码的数据可以被输出到对解码系统进行主控的系统。例如,可以由成功对数据进行解码的解码器将经解码的数据输出到图1的缓冲器150。继而,过程300可以针对另一码字重复或者退出。
在390处,解码系统宣告对码字的解码失败。继而,过程300可以针对另一码字重复或者退出。
应当理解,过程300的以上操作可以按照任何次序或顺序执行或实施,而不限于在该附图中示出和描述的次序或顺序。同样,过程300的一些以上操作可以在合适时基本同时或者并行地被执行或实现,以减少等待时间和处理时间。此外,过程300的一些或全部以上操作可以由解码器使用的监控或控制电路和/或由低能量电路来执行。例如,操作320和330可以被跳过,而操作340可以在过程300中的操作310之后立即执行。如果解码器控制顶端、主要解码器或辅助解码器知道主要解码器对在操作310处所选的码字的解码失败的可能性非常大,这就可能发生。作为另一示例,操作320、330、340和350可以被跳过,而操作360可以在过程300中的操作310之后立即执行。如果解码器控制顶端、主要解码器或辅助解码器知道在操作310处所选的码字具有相当低的SNR或相当高的BER,这就可能发生。
图4示出了根据本公开的一些实施方式一致的说明性系统400,系统400类似于图1中示出的系统100。系统400包括输入缓冲器420、主要解码器电路430、中间缓冲电路435、辅助解码器电路440以及输出缓冲器450。输入缓冲器420在设计和运作上都相当类似于图1的输入缓冲器120。在一些实施方式中,主要解码器430和辅助解码器440可以分别代替图1的主要解码器130和图1的辅助解码器140运作。在一些实施方式中,主要解码器430和辅助解码器440可以使用图3的过程300中所描述的技术来运作。
主要解码器430可以包括一定数量(m)个并行或串行运作的解码器电路432,其中m是正整数。主要解码器430中的每个解码器432可以读取存储于输入缓冲器420中的码字。每个解码器432都可以按照非常高效的方式对码字进行解码。特别是,主要解码器430的解码器432可以与辅助解码器440中的解码器442相比较使用更少量的能量,可以与辅助解码器440中的解码器442相比较使用更少的迭代来对码字进行相比较,以及可以与辅助解码器440中的解码器442相比较具有更低的复杂度。虽然主要解码器430和/或解码器432与辅助解码器440和/或解码器442相比可能具有更低的错误校正能力,但主要解码器和/或其中的解码器与辅助解码器和/或其中的解码器相比可以具有更高的吞吐量(例如,25.6Gbps)并占用更少量的硅面积。
在一些实施方式中,主要解码器430中包括的任何一个解码器432可以是Viterbi解码器、LDPC解码器、AN解码器、BCH解码器、恒定权重解码器、卷积解码器、或使用硬数据或软数据的编码信息的任何其它类型的解码器中的任何一个。在一些实现中,每个解码器432被配置为从存储码字的存储设备获取与所存储的码字相关联的附加软数据输入(例如,当解码器432的特定解码器是使用软数据而非硬数据的解码器时)。尽管并未示出,但是在一些实施方式中,如果任何解码器432成功地对其从输入缓冲器420接收的码字进行解码,则解码器可以将经解码数据直接输出到输出缓冲器450。输出缓冲器450可以非常类似于图1的输出缓冲器150,并且输出缓冲器450可以是如下临时存储位置,将经解码数据集存储于该临时存储单元以供利用电路(例如,处理器或控制电路)消费。在一些实施方式中,如果任何解码器432成功地对其从输入缓冲器420接收的码字进行解码,则该解码器可以将经解码数据输出到中间缓冲器435。如果解码器432对码字的解码失败,则可以将码字输出到中间缓冲器435。中间缓冲器435可以是其中存储被成功解码数据集以供消费的临时存储单元。中间缓冲器435也可以是其中存储未被解码器432成功解码的码字以用于由辅助解码器440中的解码器442进行随后处理的临时存储单元。
如果主要解码器430对码字的解码失败,则可以激活辅助解码器440。辅助解码器440可以包括一定数量(n)个并行或串行运作的解码器电路442,其中n是正整数。辅助解码器440中的每个解码器442可以读取存储于中间缓冲器420中的码字。该码字可以是没有被主要解码器430中的解码器432成功进行解码的码字。辅助解码器440中的每个解码器442可以是使用更强力和更复杂的解码技术(例如,与主要解码器430中的解码器相比使用更多迭代、与主要解码器430中的解码器相比使用更多能量等)来对码字进行解码的解码器。特别是,辅助解码器440中的解码器442可以与主要解码器430中的解码器432相比使用更大量的能量,可以与主要解码器430中的解码器432相比使用更多的迭代来对码字进行解码,以及可以与主要解码器130中的解码器432相比具有更大的复杂度。虽然辅助解码器440与辅助解码器430相比可能具有增强的错误校正能力,但辅助解码器与主要解码器430相比可能具有更低的吞吐量(例如,800Mbps)并且占用更大量的硅面积。
在一些实施方式中,辅助解码器440中的任何解码器442可以是Viterbi解码器、LDPC解码器、AN解码器、BCH解码器、权重恒定解码器、卷积解码器、或使用硬数据或软数据的编码信息的任何其它类型的解码器。在一些实现中,每个解码器442可以被配置为从存储码字的存储设备获取与所存储码字相关联的附加软数据输入(例如,当解码器442的特定解码器是使用软数据而非硬数据的解码器时)。在一些实施方式中,如果任何解码器442成功对其从中间缓冲器435接收的码字进行解码,则解码器可以将经解码数据输出到输出缓冲器450。输出缓冲器450可以非常类似于图1的输出缓冲器150,并且输出缓冲器450可以是如下临时存储位置,将经解码数据集存储于该临时存储位置以供利用电路(例如,处理器或控制电路)消费。
图5示出了根据本公开的一些实施方式的说明性主要解码器530和辅助解码器540。主要解码器530在运作上非常类似于图1的主要解码器130或图4的主要解码器430。辅助解码器540在运作上非常类似于图1的辅助解码器140或图4的辅助解码器440。主要解码器530可用于代替图1中所示系统中的主要解码器130或图4中所示系统中的主要解码器430。辅助解码器540可用于代替图1中所示系统中的辅助解码器140或图4中所示系统中的辅助解码器440。在一些实施方式中,主要解码器530和辅助解码器540可以使用图3的过程300中所描述的技术来运作。
主要解码器530和辅助解码器540被用于涉及存储信息的存储设备的应用中,该信息使用LDPC代码连接BCH代码来进行编码。主要解码器530可以包括与BCH解码器534串行连接的LDPC软迭代解码器532。辅助解码器540可以包括与BCH解码器544串行连接的LDPC软迭代解码器542。主要解码器530和辅助解码器540可以作为替代各自包括任何数量和任何类型的串行连接的解码器。在运作中,主要解码器530可以使用与码字相关联的硬数据作为输入。到主要解码器530的输入可以在由解码器534处理之前,首先由解码器532处理。如果成功对码字进行解码,则主要解码器530可以输出经解码数据。如果主要解码器530未能成功对码字进行解码,则可以激活辅助解码器540。辅助解码器540可以使用与码字相关联的硬数据和/或软数据(其读取或接收到的)作为输入。到辅助解码器540的输入可以在由解码器544处理之前,首先由解码器542处理。如果成功对码字进行解码,则辅助解码器540可以输出经解码数据。如果辅助解码器540未能成功对码字进行解码,则其可以宣告其对码字进行解码失败。
应当理解,在此描述的主要解码器和辅助解码器的实施方式(例如,图1的主要解码器130、图4的主要解码器430或图5的主要解码器530,以及图1的辅助解码器140、图4的辅助解码器440或图5的辅助解码器540)可以按照不同于在此描述的实施方式的形式实施。例如,每个主要解码器和辅助解码器在它们的实现中可以共享组件。主要解码器和辅助解码器可以使用相同类型的电路实现,但可以按照不同的模式运作。例如,主要解码器(例如,主要解码器130、430或530)可以是一个或多个LDPC软迭代解码器,每个LDPC软迭代解码器都以每个码字进行三次解码迭代来运作,并且辅助解码器(例如,辅助解码器140、440或540)可以是一个或多个LDPC软迭代解码器,每个LDPC软迭代解码器都以每个码字进行十次迭代来运作。作为另一示例,使用具有0.9的比率的代码的LDPC编码,将数据编码并存储于存储设备中。在这个示例中,解码器系统可以包括一个或多个LDPC软迭代主要解码器和一个或多个LDPC软迭代辅助解码器,该主要解码器以每码字两次解码迭代来运作,并具有25.6Gbps的吞吐量,该辅助解码器以每码字八次迭代来运作,并具有6.4Gbps的吞吐量。
应当进一步理解,当主要解码器对码字的解码失败或例如已知码字具有差的BER或SNR时,可以激活并使用辅助解码器。此外,当需要消除不必要的读取操作时,对用于对码字进行解码(例如,由辅助解码器解码)的软数据的读取(例如,从存储设备)就可能发生。此类不必要的读取操作会降低系统吞吐量,增加功耗,并造成对存储设备的读取干扰。由于存储于存储设备的码字的BER的概率分布(即,图2的曲线210),大多数码字将使用主要解码器和输入到解码器的硬数据来解码。正因为如此,以及因为主要解码器与辅助解码器相比具有相当高的吞吐量和相当低的功耗,使用在此描述的解码系统对数据进行解码将在具有相当高的吞吐量和相当低的功耗的情况下完成。
也应当理解,对于相似的吞吐量而言,在此描述的主要解码器与在此描述的辅助解码器相比具有更低的复杂度。如以上所述,主要解码器对所存储码字进行解码的概率要高于主要解码器对码字解码失败并且要求辅助代码器对码字进行解码的概率。而且,因为辅助解码器与主要解码器相比使用的频率少得多,辅助解码器的吞吐量要求也显著少于主要解码器的该要求。正因为如此,整个解码系统保持了高吞吐量。这也可以有助于显著减少辅助解码器占据的硅面积。包括主要解码器、辅助解码器和可能的解码器控制电路的解码器系统,可以具有与完全(fu1l-blown)软迭代解码器类似的性能,同时提供高吞吐量,并保持最小化的功耗和硅面积占用。
前文描述了用于使用包括主要解码器和辅助解码器的解码器系统来对数据进行解码的系统和方法。本领域技术人员将领会到,本公开的所描述的实施方式可以通过与出于说明而非限制目的呈现的所述实施方式以外的其他实施方式实现。
此外,本公开并不限于特定的实现。例如,上文所描述方法的一个或多个步骤可以按照不同顺序(或同时)执行,并且仍能实现期望的结果。此外,本公开可以用硬件实现,诸如在专用集成电路(ASIC)或现场可编程门阵列(FPGA)上实现,它们都可以包括附加的通讯电路(例如,射频电路)。备选的,本公开也可以实现在运行于任何适当的硬件处理器上的软件中。因此,在适合时可以在此由本领域技术人员使用等效的方案和进行替换,而不会背离本公开的在以下权利要求中详述的范围。

Claims (20)

1.一种用于使用解码器系统对存储于存储设备中的码字进行解码的方法,所述方法包括:
从所述存储设备接收所述码字;
使用所述解码器系统的主要解码器尝试对所述码字进行解码;
接收所述主要解码器对所述码字进行解码失败的指示;以及
基于所接收的指示,使用所述解码器系统的辅助解码器对所述码字进行解码,其中所述主要解码器比所述辅助解码器具有更低的复杂度。
2.根据权利要求1所述的方法,其中所述主要解码器比所述辅助解码器具有更高的用于对码字进行解码的吞吐量。
3.根据权利要求1所述的方法,其中所述主要解码器比所述辅助解码器消耗更少的能量。
4.根据权利要求1所述的方法,其中所述主要解码器包括与BCH码解码器串行运作的低密度奇偶校验(LDPC)码解码器。
5.根据权利要求1所述的方法,其中所述辅助解码器包括与BCH码解码器串行运作的低密度奇偶校验(LDPC)码解码器。
6.根据权利要求1所述的方法,其中用低密度奇偶校验(LDPC)码连接BCH码来对所述码字进行编码。
7.根据权利要求1所述的方法,其中所述主要解码器接受与所述码字相关联的硬数据作为输入,并且所述辅助解码器接受与所述码字相关联的软数据作为输入。
8.根据权利要求1所述的方法,进一步包括响应于接收主要解码器对所述码字进行编码失败的指示来激活所述辅助解码器。
9.根据权利要求1所述的方法,其中所述主要解码器被配置为对所述码字进行解码的概率高于对所述码字进行解码失败的概率。
10.根据权利要求1所述的方法,其中所述主要解码器和所述辅助解码器各自包括低密度奇偶校验(LDPC)码解码器,并且其中所述主要解码器比所述辅助解码器对每个码字进行执行更少的迭代。
11.一种用于对存储于存储设备中的码字进行解码的解码器系统,所述系统包括:
主要解码器,配置为尝试对所述码字进行解码;
解码器控制器,配置为接收所述主要解码器对所述码字进行解码失败的指示;以及
辅助解码器,配置为基于所述指示对所述码字进行,其中所述主要解码器比所述辅助解码器具有更低的复杂度。
12.根据权利要求11所述的系统,其中所述主要解码器比所述辅助解码器占据更少的硅面积。
13.根据权利要求11所述的系统,其中所述主要解码器包括多个解码器。
14.根据权利要求13所述的系统,其中包括在所述主要解码器中的所述多个解码器并行运作。
15.根据权利要求13所述的系统,其中所述辅助解码器包括多个并行运作的解码器。
16.根据权利要求15所述的系统,其中包括在所述辅助解码器中的所述多个解码器并行运作。
17.根据权利要求11所述的系统,其中所述主要解码器接受与所述码字相关联的硬数据作为输入,并且所述辅助解码器接受与所述码字相关联的软数据作为输入。
18.根据权利要求11所述的系统,其中所述解码器控制器被配置为响应于所述指示来激活所述辅助解码器。
19.根据权利要求11所述的系统,其中所述主要解码器被设计为对所述码字进行解码的概率高于对所述码字进行解码失败的概率。
20.根据权利要求11所述的系统,其中所述主要解码器耦合到所述辅助解码器,并且所述主要解码器和所述辅助解码器的每一个都耦合到所述解码器控制器。
CN201210063709.7A 2011-01-28 2012-01-29 用于基于闪存的存储器系统的软解码系统和方法 Active CN102623067B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161437518P 2011-01-28 2011-01-28
US61/437,518 2011-01-28

Publications (2)

Publication Number Publication Date
CN102623067A true CN102623067A (zh) 2012-08-01
CN102623067B CN102623067B (zh) 2016-12-14

Family

ID=46562929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210063709.7A Active CN102623067B (zh) 2011-01-28 2012-01-29 用于基于闪存的存储器系统的软解码系统和方法

Country Status (2)

Country Link
US (1) US8812939B2 (zh)
CN (1) CN102623067B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105023613A (zh) * 2014-04-22 2015-11-04 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN109508253A (zh) * 2017-09-14 2019-03-22 爱思开海力士有限公司 错误校正电路、其操作方法以及包括其的数据存储装置
CN110275796A (zh) * 2018-03-16 2019-09-24 爱思开海力士有限公司 具有混合解码方案的存储器系统及其操作方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI594256B (zh) 2010-04-19 2017-08-01 慧榮科技股份有限公司 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US11869584B2 (en) 2010-04-19 2024-01-09 Silicon Motion, Inc. Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
US10797728B1 (en) 2012-07-25 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for diversity bit-flipping decoding of low-density parity-check codes
CN103839594A (zh) * 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
US9065483B2 (en) 2013-01-21 2015-06-23 Micron Technology, Inc. Determining soft data using a classification code
US9229848B2 (en) 2013-01-21 2016-01-05 Micron Technology, Inc. Determining soft data for fractional digit memory cells
US9362954B1 (en) * 2013-03-15 2016-06-07 Seagate Technology Llc Digital communications channel
US9344117B2 (en) * 2013-03-15 2016-05-17 Mellanox Technologies, Ltd. Methods and systems for error-correction decoding
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
US9201729B2 (en) 2013-10-21 2015-12-01 Seagate Technology, Llc Systems and methods for soft data utilization in a solid state memory system
US9553608B2 (en) 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
TWI541819B (zh) 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
TWI523018B (zh) 2013-12-31 2016-02-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置、記憶體控制電路單元
US10084481B2 (en) 2014-12-18 2018-09-25 Apple Inc. GLDPC soft decoding with hard decision inputs
US9647694B2 (en) 2014-12-28 2017-05-09 International Business Machines Corporation Diagonal anti-diagonal memory structure
CN104575617B (zh) * 2015-01-06 2017-06-27 北京大学 赛道存储位置错误纠正码的编码方法和纠错方法
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
US9792176B2 (en) 2015-11-13 2017-10-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in memory system
CN107070592B (zh) * 2017-02-08 2020-05-08 扬智科技股份有限公司 混合译码方法及其高速以太网络接收器
JP6957392B2 (ja) * 2018-03-15 2021-11-02 キオクシア株式会社 メモリシステム
CN113364471B (zh) * 2020-03-05 2024-04-12 华为技术有限公司 一种译码系统、译码控制器及译码控制的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658605B1 (en) * 1999-11-05 2003-12-02 Mitsubishi Denki Kabushiki Kaisha Multiple coding method and apparatus, multiple decoding method and apparatus, and information transmission system
US20070283227A1 (en) * 2006-05-21 2007-12-06 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
CN101800901A (zh) * 2009-02-09 2010-08-11 联发科技股份有限公司 信号处理装置及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
US6721373B1 (en) * 2000-03-29 2004-04-13 Tioga Technologies Ltd. Multi-tone receiver and a method for operating the same
US7823043B2 (en) * 2006-05-10 2010-10-26 Sandisk Il Ltd. Corruption-resistant data porting with multiple error correction schemes
US8327234B2 (en) * 2009-02-27 2012-12-04 Research In Motion Limited Code block reordering prior to forward error correction decoding based on predicted code block reliability
US8497787B2 (en) 2010-11-12 2013-07-30 Marvell World Trade Ltd. Systems and methods for performing efficient decoding using a hybrid decoder
US9048876B2 (en) * 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658605B1 (en) * 1999-11-05 2003-12-02 Mitsubishi Denki Kabushiki Kaisha Multiple coding method and apparatus, multiple decoding method and apparatus, and information transmission system
US20070283227A1 (en) * 2006-05-21 2007-12-06 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
CN101800901A (zh) * 2009-02-09 2010-08-11 联发科技股份有限公司 信号处理装置及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105023613A (zh) * 2014-04-22 2015-11-04 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN105023613B (zh) * 2014-04-22 2019-06-14 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN109508253A (zh) * 2017-09-14 2019-03-22 爱思开海力士有限公司 错误校正电路、其操作方法以及包括其的数据存储装置
CN109508253B (zh) * 2017-09-14 2022-07-29 爱思开海力士有限公司 错误校正电路、其操作方法以及包括其的数据存储装置
CN110275796A (zh) * 2018-03-16 2019-09-24 爱思开海力士有限公司 具有混合解码方案的存储器系统及其操作方法
CN110275796B (zh) * 2018-03-16 2023-08-08 爱思开海力士有限公司 具有混合解码方案的存储器系统及其操作方法

Also Published As

Publication number Publication date
US8812939B2 (en) 2014-08-19
CN102623067B (zh) 2016-12-14
US20120198314A1 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
CN102623067A (zh) 用于基于闪存的存储器系统的软解码系统和方法
CN107040261B (zh) 调整延伸极化码的码长度的方法及装置
US10176042B2 (en) Using reliability information from multiple storage units and a parity storage unit to recover data for a failed one of the storage units
EP1506621B1 (en) Decoding of chain reaction codes through inactivation of recovered symbols
US9298552B2 (en) Using read values from previous decoding operations to calculate soft bit information in an error recovery operation
US20140223255A1 (en) Decoder having early decoding termination detection
US9141467B2 (en) Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof
US8560930B2 (en) Systems and methods for multi-level quasi-cyclic low density parity check codes
US8788922B2 (en) Error correction codes for incremental redundancy
US9166626B2 (en) Encoding, decoding, and multi-stage decoding circuits for concatenated BCH, and error correction circuit of flash memory device using the same
CN102138282B (zh) 减小复杂性的ldpc解码器
US8321746B2 (en) Systems and methods for quasi-cyclic LDPC code production and decoding
KR20090087386A (ko) 하이브리드 자동 반복 요구 방식을 사용하는 통신시스템에서 신호 송수신 방법 및 장치
US9654147B2 (en) Concatenated error correction device
WO2007126328A1 (en) Multi-theshold message passing decoding of low density parity check codes using the min-sum principle
US20130124940A1 (en) Memory controller with low density parity check code decoding capability and relevant memory controlling method
KR20080072392A (ko) 통신 시스템에서 신호 수신 장치 및 방법
US20160329910A1 (en) Non-binary ldpc decoder using binary subgroup processing
US9639421B2 (en) Operating method of flash memory system
KR20160004338A (ko) 조기 디코딩 종료 검출을 갖는 디코더
US9350390B2 (en) Encoder, decoder and semiconductor device including the same
US20090245400A1 (en) Method for selection of error-correction code in mimo wireless communication systems
US9619317B1 (en) Decoder having early decoding termination detection
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로
KR101670615B1 (ko) 블록 데이터 어레이를 이용한 오류 정정 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
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.

TR01 Transfer of patent right