CN105247793B - 针对错误校正码的误校正检测 - Google Patents
针对错误校正码的误校正检测 Download PDFInfo
- Publication number
- CN105247793B CN105247793B CN201480030003.8A CN201480030003A CN105247793B CN 105247793 B CN105247793 B CN 105247793B CN 201480030003 A CN201480030003 A CN 201480030003A CN 105247793 B CN105247793 B CN 105247793B
- Authority
- CN
- China
- Prior art keywords
- accidentally
- decoder
- reliability
- bit sequence
- reading value
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/2975—Judging correct decoding, e.g. iteration stopping criteria
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3784—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 for soft-output decoding of block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
公开一种针对错误校正码的使用位可靠度的误校正检测,该误校正检测包括:接收与多个读取值中的各个读取值相对应的多个可靠度;接收与多个读取值中的一个或更多个读取值相对应的一个或更多个建议校正;以及至少部分地基于多个可靠度中的与多个读取值中的一个或更多个读取值相对应的一个或更多个可靠度来确定误校正度量。
Description
相关申请的交叉引用
本申请要求于2013年5月24日提交的名称为“MISCORRECTION DETECTION FORERROR CORRECTING CODES USING BIT RELIABILITIES(针对错误校正码的使用位可靠度的误校正检测)”的美国临时专利申请No.61/827,428(代理人案号No.LINKP137+)的优先权(其通过引用合并于此以用于所有目的)以及要求于2013年7月23日提交的名称为“SOFTINPUT HARD OUTPUT(SIHO)DECODING FOR MULTI-LEVEL TURBO PRODUCT CODES(TPC)(用于多级涡轮乘积码(TPC)的软输入硬输出(SIHO)解码)”的美国临时专利申请No.61/857,629(专利代理人案号No.LINKP141+)的优先权(其通过引用合并于此以用于所有目的)。
背景技术
错误校正码(诸如,BCH码、里德-索罗门(Reed-Solomon)码和汉明码)例如被广泛用在储存和通信的各种领域中。在错误校正码的解码期间,解码器通常将接收到的字报告为不可校正的或可校正的。然而,当解码器断定接收到的字是可校正的时,存在解码器被错误地解码为与传输来的码字不同的另一码字的可能性。这被称作误校正。
附图说明
在下面的具体实施方式和附图中公开了本发明的各种实施例。
图1是示出具有小T(对于行和列码T=3,对于主码T=2)的作为BCH码的成员码(constituent code)的多级涡轮乘积码(MTPC)与主码(MTPC+主)的故障率曲线的示例。
图2是示出用于针对错误校正码的使用可靠度信息的误校正检测的***的示图。
图3是示出用于使用可靠度信息来确定误校正度量的过程的实施例的流程图。
图4是示出用于针对错误校正码的使用可靠度信息的误校正检测的过程的实施例的流程图。
图5示出与码字相关联的硬判决组和对应的可靠度组。
图6是对于T=3、<<=1023的BCH码的通过硬判决BCH解码器的用于AWGN信道中的正确校正和误校正的误校正度量的示例性直方图。
图7是描述使用软判决BCH解码器来解码的示例性过程的流程图。
图8是示出追逐(Chase)m解码器和误校正检测***的示图。
图9示出与码字相关联的硬判决组和对应的可靠度组以及在Chase解码中确定的m个位。
图10示出被输入至Chase解码器的硬判决错误校正BCH解码器(T=3)的位序列以及由Chase解码器输出的解码的位序列。
图11示出具有误校正检测的示例性性能曲线,且如所示的,其几乎与精灵(genie)解码曲线重叠。
具体实施方式
本发明能够以许多方式(包括作为过程;装置;***;物质的组合;在计算机可读储存介质上体现的计算机程序产品;和/或处理器(诸如,被配置为执行储存在耦接至处理器的存储器上的指令和/或由耦接至处理器的存储器提供的指令的处理器))来实施。在此说明书中,这些实施例或本发明可以采用的任何其他形式可以被称作技术。一般而言,所公开的过程中的步骤的次序可以在本发明的范围之内变化。除非另有说明,否则被描述为被配置为执行任务的组件(诸如,处理器或存储器)可以被实施为被临时配置为在给定时间处执行该任务的常规组件或被制造为执行该任务的专用组件。如本文中所使用的,术语“处理器”指被配置为处理数据(诸如,计算机程序指令)的一个或更多个器件、电路和/或处理核。
下面连同图示本发明的原理的附图提供了对本发明的一个或更多个实施例的详细描述。关于这些实施例来描述本发明,但本发明不局限于任何的实施例。本发明的范围仅受权利要求的限制,且本发明包含大量的替代、修改和等价。在下面的描述中陈述了大量的具体细节以提供对本发明的透彻理解。这些细节被提供以用于示例的目的,且本发明可以在无这些具体细节的一些或全部的情况下根据权利要求来实践。为了清楚的目的,未详细描述与本发明相关的技术领域中已知的技术材料,使得本发明不被不必要地混淆。
图1是示出具有小T(对于行和列码T=3,对于主码T=2)的作为BCH码的成员码的多级涡轮乘积码(MTPC)与主码(MTPC+主)的故障率曲线的示例。在左边的性能曲线为实际的BCH解码器的仿真结果(其中将发生针对成员BCH码的误校正),而在右边的性能曲线使用精灵解码器(其中通过与精灵数据相比较而移除了误校正(即,实际上未出现成员码的误校正))。在各种实施例中,“精灵数据”是指与传输来的码字相同的仿真数据,精灵解码器可以使用传输来的码字来最小误校正或无误校正地解码读取的信号。如图1中所示,在两个曲线之间存在性能差距。
误校正问题不容易解决。在一些传统的***中,除了由编码产生的奇偶性之外,还添加奇偶校验位以检测由解码器输出的可校正码字中的误校正。例如,循环冗余检验(CRC)可以被添加至用户数据部分,且循环冗余码(CRC)和用户数据一起由主码来保护。在解码之后,还校验CRC。如果校验失败,则检测到误校正。另一个传统示例为添加一个或两个单奇偶校验至码字。类似于CRC校验,如果解码的码字不满足奇偶校验,则检测到误校正。然而,这些传统技术的缺点是额外开销(overhead)的成本。在一些开销敏感的应用中,不能使用这些传统技术。由于对涡轮乘积码(TPC)***中的每个成员码使用如此小量的开销(即,使用小值Tis),因此这里不能使用这种方法。
在此处描述使用可靠度信息的误校正检测的实施例。在各种实施例中,在不添加额外的奇偶校验位至要被编码的用户数据的情况下执行误校正检测。在各种实施例中,已经被写入介质(例如,硬盘或快闪)的编码码字被处理为硬判决(hard decision)组。每个“硬判决”为包含值“0”或值“1”的位,且与码字的长度之内的特定位置相关联。硬判决也可以被称作“硬输出”或“硬信息”。在各种实施例中,每个硬判决的可靠度是已知的。硬判决的“可靠度”指对应的硬判决正确的概率(从0到1的值)。“可靠度”也可以被称作“软信息”或“软输出”。如下面将更详细描述的,可靠度可以被用来检测误校正。例如,在NAND信道中,每个位的可靠度通过使用不同的阈值的多次读取来获得。
在各种实施例中,接收到与码字相对应的多个读取值。例如,与要被解码的码字相对应的多个读取值包括与该码字相对应的硬判决。与多个读取值中的各个读取值相对应的多个可靠度被接收到。例如,多个可靠度包括与对应于码字的硬判决中的每个相对应的软信息。与多个读取值中的一个或更多个相对应的一个或更多个建议校正(proposedcorrection)被接收到。例如,建议校正包括对硬判决的特定位置(位)的建议位翻转。例如,如下面将更详细描述的,从硬判决解码器或软判决解码器来接收建议校正。误校正度量(miscorrection metric)基于多个可靠度中的与多个读取值中的一个或更多个读取值(该一个或更多个读取值与建议校正的位置相关联)相对应的可靠度来确定。在一些实施例中,建议校正是否要被施加至多个读取值是基于确定的误校正度量与误校正阈值的比较。如下面将更详细描述的,通过将误校正度量与阈值相比较,可以判断阻止将建议校正施加至多个读取值以潜在地避免输出实际上为误校正的可校正码字是否是适当的。
在过去,TPC因其在低编码/解码复杂度情况下的显著性能提升而已经广泛地用在无线通信中。类似地,基于NAND的储存器件需要可以在低实施复杂度的情况下提供高性能增益的错误校正解码(ECC)方案。这样,对于NAND闪存应用,TPC为可行的选择。在一些情况下,TPC将编码数据布置在逻辑行和逻辑列中。这样,在解码期间,解码每行(或列)中的读取数据片段,然后解码每列(或行)以增大在后续的解码迭代中解码读取数据片段的成功。解码可以迭代地且重复地处理数据读取片段的行和列以输出尽可能多的可校正码字。如果硬判决解码失败,则可以进行多次读取以获取位的软信息。该软信息可以被用来解码故障页。甚至在TPC解码器中使用软信息也是不简单的,且在过去未充分地研究。在一些实施例中,误校正检测可以与解码与TPC相关联的码字一起使用。
图2是示出用于针对错误校正码的使用可靠度信息的误校正检测的***的示图。在示例中,***200包括错误校正解码器202和误校正检测器204。错误校正解码器202和误校正检测器204中的一个或二者可以用或通过半导体器件(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))来实施。
在一些实施例中,错误校正解码器202包括成员解码器(constituent decoder)。例如,错误校正解码器202可以为与TPC解码相关联的成员(即,行或列)解码器中的一种。例如,错误校正解码器202包括BCH解码器。错误校正解码器202被配置为接收与码字(例如,用成员码编码的码字)相对应的硬判决组作为输入。在各种实施例中,硬判决组对应于当前正被解码的码字。例如,可以从存储器接收或从介质读取硬判决组。硬判决组包含一系列位。如果错误校正解码器202确定输入的硬判决组是可校正的,则错误校正解码器202输出对输入的硬判决组的一个或更多个建议校正。如果建议的一个或更多个校正被施加至硬判决组,则被修改的硬判决组将包括可校正码字(或者有时被称作“解码的码字”)。
建议校正包括建议位翻转,其中每个建议位翻转对应于硬判决组之内的其值(0或1)由错误校正解码器202建议为翻转的位置。例如,假定建议位翻转与输入的硬判决组之内的与值“1”相关联的位置相关联。如果建议位翻转被施加至该位置处的值,则该位置的值将改变为“0”。相反地,假定建议位翻转与输入的硬判决组之内的与值“0”相关联的位置相关联。如果建议位翻转被施加至该位置处的值,则该位置的值将改变为“1”。在一些实施例中,由错误校正解码器202输出的建议校正的数目由与使用的码类型(例如,对于BCH码,由错误校正解码器202输出的建议校正的数目被限制为T)和/或与错误校正解码器202相关联的解码器类型相关联的参数来限制。
在一些实施例中,错误校正解码器202可以为硬判决解码器或软判决解码器。在一些实施例中,如果错误校正解码器202包括软判决解码器(例如,Chase解码器),则除输入硬判决组之外,错误校正解码器202也将接收与硬判决组相对应的可靠度组(在图中未示出)作为输入。下面更详细地描述与Chase解码一起使用误校正检测的示例。无论错误校正解码器202是包括硬判决解码器还是包括软判决解码器,错误校正解码器202都输出对输入的硬判决组(错误校正解码器202将其确定为可校正的)的至少一个或更多个建议校正。
虽然将由错误校正解码器202输出的建议校正施加至硬判决组可能导致可校正码字,但产生的码字可以是与传输来的码字不同的码字。换言之,在一些情况下,施加由错误校正解码器202输出的建议校正可能导致误校正。如下面将描述的,如果误校正检测器204确定对硬判决组的建议校正能够导致误校正,则可以阻止由错误校正解码器202输出的建议校正被施加至硬判决组。
误校正检测器204被配置为确定与由错误校正解码器202确定的可校正码字(例如,用成员码编码的码字)相对应的误校正度量。可校正码字是将由错误校正解码器202建议的校正施加至输入的硬判决组的结果。误校正检测器204被配置为基于输入的与输入至错误校正解码器202的硬判决组相对应的可靠度组来确定误校正度量。然后,误校正检测器204被配置为使用确定的误校正度量来判断将由错误校正解码器202输出的建议校正施加至硬判决组以产生可校正码字是否合适。在各种实施例中,误校正检测器204确定可靠度组中的与硬判决组的已经被建议由错误校正解码器202来校正以产生可校正码字的那些位置相对应的可靠度。误校正检测器204基于将可靠度组中的与硬判决组的已经被建议为被校正的那些位置相对应的确定的可靠度进行结合来确定误校正度量。误校正检测器204被配置为使用此误校正度量来判断对硬判决组的建议校正将可能导致正确的可校正码字还是误校正的可校正码字。因为允许输出误校正的可校正码字可以产生后续的解码故障或错误,因此如果误校正检测器204确定对硬判决组的建议校正将可能导致误校正的可校正码字,则误校正检测器204被配置为阻止建议校正被施加/提交至硬判决组,并且使不可校正状态的码字被输出。尽管输出了不可校正状态的码字,但假定潜在地避免了误校正,这可以降低解码的总故障率。另外,如果误校正检测器204确定对硬判决组的建议校正将不可能导致误校正的可校正码字,则误校正检测器204被配置为允许将建议校正施加至硬判决组,并且使可校正码字被输出。
在一些实施例中,误校正检测器204被配置为基于将误校正度量与误校正阈值相比较来判断将由错误校正解码器202输出的建议校正施加至硬判决组是否合适。例如,误校正阈值可以由***管理员来配置。在一些实施例中,误校正阈值的值可以响应于一个或更多个事件来调节。例如,误校正阈值的值可以被调节以随着解码迭代的数目增大而减小,或随着电流当前信噪比(SNR)增大而增大。在一些实施例中,如果误校正检测器204确定误校正度量低于或等于误校正阈值,则允许将建议校正施加至硬判决组,且使可校正码字被输出。另外,如果误校正检测器204确定误校正度量大于误校正阈值,则阻止将建议校正施加至硬判决组,且使不可校正状态的码字被输出。
这样,误校正检测器204可以被添加至解码器和/或与解码器合并以降低误校正率。
图3是示出用于使用可靠度信息来确定误校正度量的过程的实施例的流程图。在一些实施例中,过程300由与储存控制器(例如,NAND闪存控制器)相关联的读取控制器来执行。在一些实施例中,过程300由半导体器件(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))来执行。在一些实施例中,过程300在诸如图2的***200的***中实施。
在302处,接收与多个读取值中的各个读取值相对应的多个可靠度,其中,多个读取值对应于码字。在各种实施例中,多个读取值包括与要被解码的码字(例如,用成员码来编码的码字)相对应的硬判决组(例如,一系列位)。接收可靠度组(软信息),其中,每个可靠度包括与硬判决组中的特定位位置相对应的概率。
在304处,接收与多个读取值中的一个或更多个相对应的一个或更多个建议校正。在各种实施例中,错误校正解码器确定硬判决组为可校正的,并因此建议对硬判决组的一个或更多个校正。如果建议校正被施加至硬判决组,则可校正码字(例如,解码的码字)可以被输出。在一些实施例中,解码器可以为硬判决解码器或软判决解码器。每个建议校正包括对硬判决组中的特定位位置的建议位翻转。在一些实施例中,解码器包括成员解码器。
在306处,至少部分地基于多个可靠度中的与多个读取值中的一个或更多个相对应的一个或更多个可靠度来确定误校正度量。在各种实施例中,通过将与硬判决组中的与建议校正相关联的位置相对应的可靠度合并来确定误校正度量。例如,将与硬判决组中的与建议校正相关联的位置相对应的可靠度合并可以为将与硬判决组中的与建议校正相关联的位置相对应的可靠度中的每个可靠度的绝对值加在一起。在一些实施例中,将误校正度量与误校正阈值相比较以判断建议校正是应当被施加至硬判决组以产生可校正码字还是不应当被施加至硬判决组以产生不可校正码字状态。
图4是示出用于针对错误校正码的使用可靠度信息的误校正检测的过程的实施例的流程图。在一些实施例中,过程400由与储存控制器(例如,NAND闪存控制器)相关联的读取控制器来执行。在一些实施例中,过程400由半导体器件(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))来执行。在一些实施例中,过程400在诸如图2的***200的***中实施。
在402处,确定与对多个读取值(其与(下一个)码字相对应)的一个或更多个建议校正相对应的误校正度量。解码器已经将多个读取值(例如,硬判决组)确定为可校正的且因此已经输出对硬判决组的对应位置的一个或更多个建议校正。可以基于与硬判决组中的与由解码器建议的校正相关联的位置相对应的可靠度来确定误校正度量。在一些实施例中,至少部分地基于使用诸如图3的过程300的过程来确定误校正度量。
在404处,确定误校正度量是否小于或等于误校正阈值。例如,误校正阈值的值可以由***管理员来配置。例如,误校正阈值的值可以基于一个或更多个事件来调节。如果误校正度量小于或等于误校正阈值,则控制被转移至406。另外,如果误校正度量大于误校正阈值,则控制被转移至410。
在406处,将一个或更多个建议校正施加至多个读取值以获得可校正码字。因为误校正度量小于或等于误校正阈值且因此确定将由解码器建议的校正施加至多个读取值将不可能产生误校正,因此建议校正被施加至多个读取值以获得可校正码字,该可校正码字在408处被输出。
在410处,未将一个或更多个建议校正施加至多个读取值。因为误校正度量大于误校正阈值且因此确定将建议校正施加至多个读取值将可能产生误校正的可校正码字,因此建议校正不被施加至多个读取值,且码字被确定为不可校正。在412处,输出码字不可校正状态。
在414处,判断是否还存在至少一个码字要解码。如果还存在至少一个码字要解码,则控制返回至402,在402处确定与要被解码的下一个码字相关联的多个读取值的误校正度量。另外,如果不存在要解码的码字,则过程400结束。
假定编码码字为x=(io,ii,...,3/4-i),3/4=0或1,其中n为编码的码字长度。接收到的矢量可以表示为r=(r0,r1…rn.i)。解码器将接收到的矢量r解码为矢量(其包括来自接收到的矢量r的一个或更多个位翻转)。现在让我们考虑假定解码器解码至时x不等于的概率:P(x≠x|r)。如果我们假定码字中的位是独立的,且将概率分解至每个位,则概率可以写作:
概率将由x与不相同的那些位主导。如果概率较大,则接收到的矢量可能被误校正。为了更实用,我们使用对数似然比而非概率来导出度量。假定的每个位的可靠度(例如,对数似然比LLR)可以被写为y={y0,y1…yn-i),其中,yi=log(p(xi=0|ri)/p(xi=1|ri))。误校正度量(Θ)能够写为:
由于在接受器端不知道传输来的码字,因此我们使用信道输出的硬判决矢量z,z被定义为:
因此,等式(2)中的度量可以分成三项:
第一项为对在解码期间被翻转的那些位(其中i=0、1、…n-l)的可靠度的求和。第二项包括是错误的但解码的码字未校正他们的那些位(其中i=0,1,…n-l)。此第二项应当被加至第一项。第三项包括由解码的码字校正的那些位(其也有错误)(其中z=0,1,…n-l)。应当从第一项减去第三项。通常第二项和第三项来自具有小的可靠度的那些位。因此,我们可以通过省略第二项和第三项、仅留下(4)中的第一项来简化(Θ):
此度量(其在本文中描述的各种实施例中被称作误校正度量)可以非常好地区分误校正的码字和正确的码字。误校正检测器可以对(5)中的误校正度量(Θ)使用误校正阈值(A)以检测误校正。例如,如果Θ≤A,则误校正检测器可以确定建议位翻转应当被施加以将码字确定为可校正。否则,如果Θ>A,则误校正检测器可以确定建议位翻转不应当被施加,而将码字确定为不可校正。误校正检测器可以被添加至解码器或与解码器结合以降低误校正率。
在各种实施例中,可以根据应用来选择误校正阈值A以更严格或更宽松地过滤掉误校正。例如,在TPC解码情况下,因为在之后的迭代中不可校正的能够进一步被校正,因此在行/列解码迭代的开始可以紧凑地设置误校正阈值A,然后在接近解码的终点处较宽松地设置,以避免卡住情形(stuck situation),在卡住情形中,码字实际上是可校正的,但经常被误校正检测器报告为不可校正。
图5示出与码字相关联的硬判决组和对应的可靠度组。在该示例中,使用具有参数T=3(其表示对应的解码器可以对与该码字相关联的硬判决组z建议多达三个校正(例如,位翻转))的BCH码来编码码字。在该示例中,码字具有长度n,且硬判决组z的位与位置i=0,1,…n-1相关联。硬判决组z中的每个位与可靠度组y中的对应的可靠度相关联。例如,硬判决zQ对应于可靠度y3/4。
例如,硬判决错误校正解码器(仅使用硬判决来解码的解码器)可以接收图5中示出的硬判决组z作为输入,并输出对位置i=3、6和8(在图中硬判决组z中的这些位置用更粗的边框表示)处的z的建议位翻转。然后,误校正检测器可以实施以上的图3的过程300以基于与硬判决错误校正解码器建议的位翻转相对应的可靠度来确定误校正度量。在此示例中,与z3、z6和z8处的建议位翻转相对应的可靠度分别为y3、ye和y3/4。例如,误校正检测器可以使用以上的(5)中的误校正度量公式来具体实施图4的过程400以确定Θ=|y3|+|y6|+|y8|。在一些实施例中,为了判断z3、z6和z8处的建议位翻转是否应当被施加以获得可校正码字,误校正检测器被配置为将Θ与误校正阈值A相比较。如果Θ≤A,则许可建议位翻转并输出可校正码字。但是如果Θ>A,则不许可建议位翻转并输出不可校正状态。
图6是对于T=3、n=1023的BCH码的通过硬判决BCH解码器的针对AWGN信道中的正确的校正和误校正的误校正度量的示例性直方图。图6示出对于可以校正1023位中的多达三个错误的BCH码、假定码字正确且被误校正的等式(5)中的误校正度量的直方图的示例。该信道为每个位具有可靠度的AWGN信道。BCH解码器是标准的硬判决解码器(其仅使用来自信道的硬判决来解码)。两个不同的SNR(SNR=3dB和SNR=4dB)被包括。我们可以看到对于不同的SNR,最优误校正阈值A仅移动一点点。然而,对于较高的SNR,误校正阈值A的最化值可以较高,而对于较低的SNR,误校正阈值A的最优值可以较低。如直方图中所示,可以将误校正阈值A的期望值选择为比仿真的误校正的码字中的大多数(或特定比例)的对应误校正度量低。这样,大多数的误校正的码字可以通过为误校正阈值A选择期望值来避免被输出。
在一些实施例中,误校正度量可以与硬判决解码器以及软判决解码器一起使用。软判决解码器也可以用来产生对硬判决组的建议校正。与仅使用来自信道的硬判决来解码的硬判决解码器不同的是,软判决解码器使用硬判决以及对应的软判决(可靠度)二者来解码。在一些实施例中,当使用硬判决解码器不能成功执行解码时,可以使用软判决解码器。软判决解码器的示例为Chase解码器。Chase解码可以增大硬判决解码器可以接收输入的位序列(其可能解码为正确的码字)的机会。下面描述使用软判决解码器、Chase解码器来确定误校正度量的示例。
Chase解码示例
图7是描述使用软判决BCH解码器来解码的示例性过程的流程图。在该示例中,过程700由Chase-m解码器(在下面使用图8来更详细地描述其示例)来实施。Chase-m解码器包括至少翻转组件和硬判决错误校正解码器组件。在一些实施例中,过程700由与储存控制器(例如,NAND闪存控制器)相关联的读取控制器来执行。在一些实施例中,过程700由半导体器件(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))来执行。在一些实施例中,在诸如图2的***200的***处实施过程700。
在702处,至少部分地基于Chase解码器参数m以及与多个读取值(其与码字相关联)中的各个读取值相对应的多个可靠度来确定与多个读取值相对应的多个位序列。在一些实施例中,Chase解码器接收多个读取值(例如,硬判决组)和对应的多个可靠度(与硬判决组中的每个相对应的可靠度)作为输入。参数m可以被选择为任意整数。在BCH码的Chase解码中,Chase解码器的翻转组件使用可靠度组来确定输入的硬判决组之中的最不可靠位的m个位置。然后,由Chase解码器的翻转组件对输入的硬判决组的m个最不可靠位进行所有可能的位翻转以形成2m个位序列。每个位序列包括输入的具有值0的硬判决组以及确定的m个被翻转位的位置中的更多个。
在704处,通过解码多个位序列来确定候选解码位序列组。候选位序列组可以表示为K={Kw,j=0,1,…,2m-1}。2m个位序列的组中的每个位序列被输入Chase解码器的硬判决错误校正解码器组件中。然后Chase解码器的硬判决错误校正解码器组件尝试对2m个位序列中的每个位序列解码。对于每个解码尝试,存在两种可能性:如果解码器认为输入的位序列不可校正,则该特定的解码尝试被舍弃。如果解码器认为输入的位序列可校正,则解码器将建议对输入的位序列的一个或更多个位翻转。假定Chase解码器的硬判决错误校正解码器组件是具有T=3的BCH解码器,则该解码器可以建议可校正的输入的位序列中的多达^个要被翻转的位置。注意由解码器指示的位翻转的位置(例如,T个位置)可以在码字的任意地方,而非仅在m个最不可靠位置中。组 表示由Chase解码器的硬判决错误校正解码器组件输出的解码位序列组。因为不是每个位序列都是可解码的,因此解码位序列的数目l可以小于位序列的总数2m。另外,组X中的解码位序列中的至少一些是相同的,因为多个位序列可以解码为同一码字。组X的解码位序列可以被当做“候选码字”或“候选解码位序列”,其中的一个要被选中并由Chase解码器来输出。
在706处,从候选解码位序列组选择解码位序列,其中选中的解码位序列包括与多个读取值中的一个或更多个相对应的一个或更多个建议校正。如果解码的组X为空白的,则码字不可校正。如果X不是空白的,则可以从候选解码位序列组中选择一个解码位序列以从Chase解码器输出,并且用来确定误校正度量。例如,从组X选择解码位序列使得其具有距接收到的矢量的最小欧几里得距离。在一些实施例中,“接收到的矢量”包括输入至Chase解码器的硬判决组。在另一示例中,从组X选择具有最高可靠度的解码位序列。
注意,由Chase解码器的翻转组件将输入的硬判决组中的m个最不可靠的位置翻转。然后Chase解码器的硬判决错误校正解码器组件将输入的硬判决组中的多达T个位置翻转。因此,组X的候选解码位序列中的每个位序列(包括选中的解码位序列)可以在多达(T+m)个位置与硬判决组不同。其中在输入的硬判决组与选中的解码位序列之间位不同的多达(T+m)个位置形成Chase解码器输出的对输入的硬判决组的建议校正组。
在708处,至少部分地基于多个可靠度中的与多个读取值中的一个或更多个读取值相对应的一个或更多个可靠度来确定误校正度量。确定与多达(T+m)个建议校正(其中在输入的硬判决组与选中的解码位序列之间位的值不同)中的每个相对应的可靠度。然后,所有的确定的可靠度都被结合以确定误校正度量(例如,Θ)。换言之,误校正度量基于输入的硬判决组与选中的解码位序列之间的所有差异来计算,因此误校正度量的计算可以将与对硬判决组的多达(T+m)个建议校正相对应的可靠度进行结合。
在各种实施例中,708可以由诸如图3的过程300的过程来实施。然后确定的误校正度量可以被用来判断是输出解码位序列还是输出不可校正状态而不输出解码的码字以避免潜在的误校正。在一些实施例中,这种误校正检测可以使用诸如图4的过程400的过程来实施。
Chase解码器的校正能力随着m的值较大而增大,但Chase解码器的复杂度也随着m的值较大而指数增加。因此,在一些实施例中,期望具有较小的m值。Chase解码可能加剧误校正问题,因为通过将多达m个接收到的位翻转,错误实际上可能被添加。因此,正常误校正(例如,通过BCH硬判决解码器)可以将最多T个位错误引入(通过误校正)解码矩阵中,但Chase-m可以添加多达(T+m)个错误。
图8是示出Chase解码器和误校正检测***的示图。在该示例中,***800包括Chase-m解码器,Chase-m解码器包括至少Chase解码翻转器(flipper)802、硬判决错误校正解码器804和选择器806。***800也包括误校正检测器808。在一些实施例中,图2的***200的错误校正解码器202可以使用Chase解码翻转器802、硬判决错误校正解码器804和选择器806来实施。在一些实施例中,图2的***200的误校正检测器204可以使用误校正检测器808来实施。
Chase解码翻转器802被配置为基于可靠度组y来确定硬判决组z中的m个最不可靠位,其中可靠度组y中的每个对应于硬判决组z中的对应的一个硬判决的可靠度。在该示例中,m被选择为2。通过对硬判决组z中的被确定的m=2个位置处的位翻转作出不同的概率来产生2m=2(=4)个位序列k(0)、k(1)、k(2)和k(3)。在该示例中,位序列k(0)、k(1)、k(2)和k(3)中的每个通过将硬判决组z与对应的t矢量(t(0)、t(1)、t(2)和t(3))(其包括在被确定的m=2个位置处的不同概率的“0”和“1”以及在所有其他位置处的“0”)进行合并(例如,异或(XOR))来构建。构建的位序列k(0)、k(1)、k(2)和k(3)的每个被输入至硬判决错误校正解码器804。硬判决错误校正解码器804被配置为确定可以解码位序列k(0)、k(1)、k(2)和k(3)中的那个。在该示例中,假定位序列k(0)、k(1)、k(2)和k(3)中的每个都可以被解码,这样,硬判决错误校正解码器804输出相应的候选解码位序列 和在该示例中,硬判决错误校正解码器804包括具有参数T的BCH解码器。候选解码位序列和中的每个包括与硬判决组z的多达(T+m)个净差异(net difference)(其由来自Chase解码翻转器802的多达m个位翻转以及来自硬判决错误校正解码器804的多达T个位翻转引起)。选择器806被配置为基于与Chase解码器相关联的选择标准(selection criteria)来选择候选解码位序列和中的一个。例如,选择标准可以被配置为选择具有距硬判决组z的最小欧几里得距离的解码位序列,或者选择标准可以被配置为选择具有最高可靠度的解码位序列。
在该示例中,选择器806选择解码位序列作为Chase解码器的输出。然后选中的解码位序列被输入至误校正检测器808。可靠度组y也被输入至误校正检测器808中。在各种实施例中,误校正检测器808被配置为确定其中在硬判决组z与选中的解码位序列之间位不同的多达(T+m)个位置。这些其中位不同的多达(T+m)个位置包括由Chase解码器建议的对硬判决组z的校正组。误校正检测器808被配置为基于可靠度组y中的可靠度(其对应于被确定的由Chase解码器建议的对硬判决组z的多达(T+m)个净位翻转)来计算误校正度量。误校正检测器808被配置为基于误校正度量来判断由Chase解码器建议的对硬判决组z的多达(T+m)个净位翻转是否应当被施加/提交。在一些实施例中,误校正检测器808被配置为将误校正度量与误校正阈值相比较以基于误校正度量来判断由Chase解码器建议的对硬判决组z的多达(T+m)个净位翻转是否应当被施加/提交。在一些实施例中,如果误校正检测器808确定误校正度量小于或等于误校正阈值,则允许由Chase解码器建议的位翻转被提交至硬判决组z,且使选中的解码位序列被输出作为可校正码字。另外,如果误校正检测器808确定误校正度量大于误校正阈值,则阻止建议的校正被提交至硬判决组z,且使码字的不可校正状态被输出。在一些实施例中,误校正检测器808被配置为执行图3的过程300和图4的过程400中的至少一种。
图9示出与码字相关联的硬判决组和对应的可靠度组以及在Chase解码中确定的m个位。在该示例中,码字的长度为n且硬判决组z中的位与位置i=0,1,…n-1相关联。硬判决组z中的每个位与可靠度组y中的对应的可靠度相关联。例如,硬判决zQ对应于可靠度y3/4。在该示例中,m=2,且硬判决组z中的两个最不可靠位与位置i=6和i=8(位置6和8的每个在硬判决组z中用粗下划线表示)相关联。返回参见图8的示例,为了产生2m=2(=4)个位序列k(0)、k(1)、k(2)和k(3),矢量t(0)、t(1)、t(2)和t(3)被构建。如该示例中所示,矢量t(0)、t(1)、t(2)和t(3)中的每个包括位置i=6和i=8处的不同概率的“0”和“1”以及在除位置i=6和i=8的所有其他位置处的“0”。因此,位序列k(0)、k(1)、k(2)和k(3)可以通过将硬判决组z与各个矢量t(0)、t(1)、t(2)和t(3)中的每个进行合并(例如,异或(XOR))来产生。结果,位序列k(0)、k(1)、k(2)和k(3)中的每个包括在位置i=6和i=8处的不同概率的位翻转。
图10示出被输入至Chase解码器的硬判决错误校正BCH解码器(T=3)的位序列以及由Chase解码器输出的解码位序列。在该示例中,使用具有参数T=3的BCH码来编码该码字,该BCH码表示Chase解码器的硬判决错误校正解码器组件可以对每个输入的位序列建议多达三个校正(例如,位翻转)。位序列k(3)通过Chase解码器的翻转组件将硬判决组z与来自图9的矢量t(3)合并(例如,异或(XOR))来产生。这样,位序列k(3)包括在位置i=6处具有位翻转的硬判决组z(在示图中被翻转的位表示为z^’)。硬判决错误校正BCH解码器(T=3)的输出为图8的示例中的解码位序列解码位序列包括具有由硬判决错误校正BCH解码器对位置i=1、i=5和i=6(这些被翻转的位的位置在示图中用粗边框来表示)做出的位翻转的位序列k(3)。继续图8的示例,候选解码位序列组之中的解码位序列被选中以由Chase解码器输出,且用来确定误校正度量。误校正检测器(例如,图8的误校正检测器808)可以实施以上的图3的过程300以基于与通过使用Chase解码器的翻转组件和Chase解码器的硬判决错误校正解码器组件处理硬判决组z而对硬判决组z做出的净位翻转相对应的可靠度来确定误校正度量以输出解码位序列在该示例中,虽然硬判决组z中的z6被Chase解码器的翻转组件翻转为z6’,但z6’被Chase解码器的硬判决错误校正解码器组件翻转回到z6。这样,在硬判决组z的位置i=6处未找到净位翻转,因此与z6相对应的可靠度将不被用来确定误校正度量。然而,在位置i=1和i=5处可以找到对硬判决组z的净位翻转,因此与位置i=1和i=5相对应的可靠度被用来确定误校正度量。与z1和z5处的位翻转相对应的可靠度分别为y1和y5。例如,误校正检测器(例如,图8的误校正检测器808)可以使用以上的(5)中的误校正度量公式来具体实施图4的过程400以确定Θ=|y1|+|y5|。在一些实施例中,为了判断是否应当允许对z1和z5的净位翻转以获得可校正码字,误校正检测器(例如,图8的误校正检测器808)被配置为将Θ与误校正阈值A相比较。如果Θ≤A,则允许位翻转并输出解码位序列但如果Θ>A,则不允许位翻转,并输出不可校正状态。
图11示出具有误校正检测的示例性性能曲线,且如所示的,其几乎与精灵解码曲线重叠。从该示例可以看出,作为在解码过程中添加误校正检测(例如,如果误校正检测器确定码字被误校正,则该码字将不被校正)的结果,该解码性能几乎与精灵解码器的性能相当。
误校正检测可以被用来改善解码的性能。误校正检测可以与硬判决解码或软判决解码结合。在各种实施例中,基于阈值来执行误校正检测。误校正检测可以是灵活的,因为可以选择误校正阈值来更严格或更宽松地过滤,且误校正阈值可以随时间或响应于特定事件来调节。
尽管出于清楚理解的目的而已经较详细地描述了前述的实施例,但本发明不局限于所提供的细节。存在很多实施本发明的替代方法。所公开的实施例是说明性的而非限制性的。
Claims (21)
1.一种针对错误校正码的误校正检测***,包括:
错误校正解码器,被配置为:
至少部分地基于Chase解码器参数m和与多个读取值中的各个读取值相对应的多个可靠度来产生与所述多个读取值中的一个或更多个读取值相对应的一个或更多个建议校正,其中,所述多个读取值对应于码字,m是任意整数;以及
误校正检测器,被配置为:
接收与所述多个读取值中的各个读取值相对应的所述多个可靠度;
接收与所述多个读取值中的所述一个或更多个读取值相对应的所述一个或更多个建议校正;以及
至少部分地基于所述多个可靠度中的与所述多个读取值中的所述一个或更多个读取值相对应的一个或更多个可靠度来确定误校正度量。
2.如权利要求1所述的***,其中,所述***包括半导体器件,所述半导体器件包括下面中的一种或更多种:现场可编程门阵列FPGA或专用集成电路ASIC。
3.如权利要求1所述的***,其中,所述多个读取值包括多个硬判决。
4.如权利要求1所述的***,其中,所述一个或更多个建议校正包括与所述多个读取值之内的一个或更多个位置相对应的一个或更多个建议位翻转。
5.如权利要求1所述的***,其中,所述多个可靠度中的至少一个包括对数似然比LLR。
6.如权利要求1所述的***,其中,至少部分地基于所述多个可靠度中的与所述多个读取值中的所述一个或更多个读取值相对应的所述一个或更多个可靠度来确定误校正度量包括:将所述多个可靠度中的所述一个或更多个可靠度的绝对值进行合并。
7.如权利要求1所述的***,其中,误校正检测器还被配置为:
将误校正度量与误校正阈值相比较,其中:
如果误校正度量小于或等于误校正阈值,则将所述一个或更多个建议校正施加至所述多个读取值以获得可校正码字并输出可校正码字;以及
如果误校正度量大于误校正阈值,则不将所述一个或更多个建议校正施加至所述多个读取值,并输出码字不可校正状态。
8.如权利要求7所述的***,其中,误校正阈值能够响应于下面中的一种或更多种来调节:解码迭代的改变以及信噪比SNR的改变。
9.如权利要求1所述的***,其中,码字使用涡轮乘积码TPC来编码。
10.如权利要求1所述的***,其中,错误校正解码器还被配置为:
至少部分地基于所述Chase解码器参数m和所述多个可靠度来确定与所述多个读取值相对应的多个位序列;
通过解码所述多个位序列来确定候选解码位序列组;以及
从候选解码位序列组选择解码位序列,其中,选中的解码位序列包括所述一个或更多个建议校正。
11.如权利要求10所述的***,其中,选中的解码位序列是至少部分地基于选中的解码位序列对应于正确的码字的可靠度来从候选解码位序列组中选择的。
12.如权利要求10所述的***,其中,选中的解码位序列是至少部分地基于选中的解码位序列与所述多个读取值之间的欧几里得距离来从候选解码位序列组中选择的。
13.如权利要求10所述的***,其中,所述一个或更多个建议校正包括所述多个读取值与选中的解码位序列之间的一个或更多个位翻转。
14.如权利要求10所述的***,其中,所述一个或更多个建议校正包括对所述多个读取值的一个或更多个净位翻转,其中通过使用错误校正解码器的翻转组件将所述多个读取值中的多达m个最不可靠位置位翻转且然后使用错误校正解码器的硬判决错误校正解码器组件将多达T个位置位翻转来确定所述一个或更多个净位翻转,其中T是硬判决错误校正解码器组件的参数,指示要建议的位翻转的位置的最大数目。
15.一种针对错误校正码的误校正检测方法,包括:
至少部分地基于Chase解码器参数m和与多个读取值中的各个读取值相对应的多个可靠度来产生与所述多个读取值中的一个或更多个读取值相对应的一个或更多个建议校正,其中,所述多个读取值对应于码字,m是任意整数;
接收与多个读取值中的各个读取值相对应的所述多个可靠度;
接收与所述多个读取值中的一个或更多个读取值相对应的一个或更多个建议校正;以及
至少部分地基于所述多个可靠度中的与所述多个读取值中的所述一个或更多个读取值相对应的一个或更多个可靠度来确定误校正度量。
16.如权利要求15所述的方法,其中,至少部分地基于所述多个可靠度中的与所述多个读取值中的所述一个或更多个读取值相对应的所述一个或更多个可靠度来确定误校正度量包括:将所述多个可靠度中的所述一个或更多个可靠度的绝对值进行合并。
17.如权利要求15所述的方法,还包括:
将误校正度量与误校正阈值相比较,其中:
如果误校正度量小于或等于误校正阈值,则将所述一个或更多个建议校正施加至所述多个读取值以获得可校正码字,并输出可校正码字;以及
如果误校正度量大于误校正阈值,则不将所述一个或更多个建议校正施加至所述多个读取值,并输出码字不可校正状态。
18.如权利要求17所述的方法,其中,误校正阈值能够响应于下面中的一种或更多种来调节:解码迭代的改变以及信噪比SNR的改变。
19.如权利要求15所述的方法,还包括:
至少部分地基于所述Chase解码器参数m和所述多个可靠度来确定与所述多个读取值相对应的多个位序列;
通过解码所述多个位序列来确定候选解码位序列组;以及
从候选解码位序列组选择解码位序列,其中,选中的解码位序列包括所述一个或更多个建议校正。
20.如权利要求19所述的方法,其中,所述一个或更多个建议校正包括所述多个读取值与选中的解码位序列之间的一个或更多个位翻转。
21.如权利要求19所述的方法,其中,所述一个或更多个建议校正包括对所述多个读取值的一个或更多个净位翻转,其中通过将所述多个读取值中的多达m个最不可靠位置位翻转且然后将所述多个读取值中的多达T个位置位翻转来确定所述一个或更多个净位翻转,其中T是硬判决错误校正解码器组件的参数,指示要建议的位翻转的位置的最大数目。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361827428P | 2013-05-24 | 2013-05-24 | |
US61/827,428 | 2013-05-24 | ||
US201361857629P | 2013-07-23 | 2013-07-23 | |
US61/857,629 | 2013-07-23 | ||
PCT/US2014/036181 WO2014197140A1 (en) | 2013-05-24 | 2014-04-30 | Miscorrection detection for error correcting codes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247793A CN105247793A (zh) | 2016-01-13 |
CN105247793B true CN105247793B (zh) | 2019-05-28 |
Family
ID=51936248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480030003.8A Active CN105247793B (zh) | 2013-05-24 | 2014-04-30 | 针对错误校正码的误校正检测 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9337873B2 (zh) |
CN (1) | CN105247793B (zh) |
TW (1) | TWI516914B (zh) |
WO (1) | WO2014197140A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9231623B1 (en) * | 2013-09-11 | 2016-01-05 | SK Hynix Inc. | Chase decoding for turbo-product codes (TPC) using error intersections |
US9954556B2 (en) | 2015-02-25 | 2018-04-24 | SK Hynix Inc. | Scheme to avoid miscorrection for turbo product codes |
US9935659B2 (en) * | 2015-05-18 | 2018-04-03 | SK Hynix Inc. | Performance optimization in soft decoding for turbo product codes |
KR102296738B1 (ko) * | 2015-06-01 | 2021-09-01 | 삼성전자 주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법 |
KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10218388B2 (en) | 2015-12-18 | 2019-02-26 | SK Hynix Inc. | Techniques for low complexity soft decoder for turbo product codes |
US10326477B2 (en) | 2015-12-30 | 2019-06-18 | SK Hynix Inc. | Techniques for miscorrection detection for constituent codewords in product codes |
US10090862B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Hybrid soft decoding algorithm for multiple-dimension TPC codes |
US10084485B2 (en) | 2016-03-23 | 2018-09-25 | SK Hynix Inc. | Soft decoder parameter optimization for product codes |
US10090865B2 (en) | 2016-03-23 | 2018-10-02 | SK Hynix Inc. | Performance optimization in soft decoding of error correcting codes |
US10303364B2 (en) | 2016-03-25 | 2019-05-28 | SK Hynix Inc. | Techniques for low-latency chase decoding of turbo product codes with soft information |
CN107733573B (zh) * | 2016-08-10 | 2022-03-01 | 中兴通讯股份有限公司 | 数据处理方法、装置及节点 |
KR20180069179A (ko) * | 2016-12-14 | 2018-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 에러 정정 방법 |
TWI632780B (zh) | 2016-12-30 | 2018-08-11 | 慧榮科技股份有限公司 | 解碼方法與相關解碼裝置 |
EP3596830A4 (en) * | 2017-03-15 | 2020-11-18 | Nokia Technologies Oy | EARLY TERMINATION WITH DISTRIBUTED CRC POLAR CODES |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR20190036259A (ko) * | 2017-09-27 | 2019-04-04 | 에스케이하이닉스 주식회사 | 캘리브레이션 회로를 이용하는 전송 장치, 이를 포함하는 반도체 장치 및 시스템 |
US10715182B2 (en) * | 2018-07-27 | 2020-07-14 | Innogrit Technologies Co., Ltd. | Systems and methods for decoding error correcting codes with self-generated LLR |
KR20200016606A (ko) | 2018-08-07 | 2020-02-17 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템 |
US11734107B2 (en) * | 2019-03-15 | 2023-08-22 | Kioxia Corporation | Decoding scheme for error correction code structure |
TWI777519B (zh) * | 2021-04-26 | 2022-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI808483B (zh) * | 2021-09-08 | 2023-07-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
JP2023040796A (ja) | 2021-09-10 | 2023-03-23 | キオクシア株式会社 | メモリシステム |
CN113724774B (zh) * | 2021-09-14 | 2023-08-29 | 群联电子股份有限公司 | 解码方法、存储器存储装置及存储器控制电路单元 |
CN114116137B (zh) * | 2021-12-03 | 2023-03-14 | 北京得瑞领新科技有限公司 | 存储***中纠错码的仿真方法及装置、存储介质、设备 |
KR102598093B1 (ko) * | 2022-01-04 | 2023-11-06 | 숭실대학교 산학협력단 | 비트 플리핑 장치, 방법 및 이를 위한 컴퓨터 판독가능 프로그램 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228836A (ja) * | 1987-03-18 | 1988-09-22 | Mitsubishi Electric Corp | 通信システム |
CN1122025A (zh) * | 1993-12-28 | 1996-05-08 | 三菱电机株式会社 | 纠错译码器和纠错译码方法 |
CN1293835A (zh) * | 1999-01-26 | 2001-05-02 | 松下电器产业株式会社 | 数据错误校正装置 |
TW200519595A (en) * | 2003-12-02 | 2005-06-16 | Hewlett Packard Development Co | Data storage system with error correction code and replaceable defective memory |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5222069A (en) * | 1990-09-20 | 1993-06-22 | Ampex Systems Corporation | Miscorrection arrangement for the concealment of misdetected or miscorrected digital signals |
US20060156171A1 (en) | 2004-12-15 | 2006-07-13 | Seagate Technology Llc | Combining spectral shaping with turbo coding in a channel coding system |
JP4700562B2 (ja) | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
US8108759B2 (en) | 2006-12-14 | 2012-01-31 | Regents Of The University Of Minnesota | Error detection and correction using error pattern correcting codes |
US8055982B2 (en) * | 2007-02-21 | 2011-11-08 | Sigmatel, Inc. | Error correction system and method |
US8255760B2 (en) | 2008-11-05 | 2012-08-28 | Broadcom Corporation | Header encoding for single carrier (SC) and/or orthogonal frequency division multiplexing (OFDM) using shortening, puncturing, and/or repetition |
US8713413B1 (en) * | 2010-02-09 | 2014-04-29 | Sk Hynix Memory Solutions Inc. | Generation of interpolated samples for decision based decoding |
US8700970B2 (en) | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8510639B2 (en) * | 2010-07-01 | 2013-08-13 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
-
2014
- 2014-04-29 US US14/265,249 patent/US9337873B2/en active Active
- 2014-04-30 WO PCT/US2014/036181 patent/WO2014197140A1/en active Application Filing
- 2014-04-30 CN CN201480030003.8A patent/CN105247793B/zh active Active
- 2014-05-16 TW TW103117384A patent/TWI516914B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228836A (ja) * | 1987-03-18 | 1988-09-22 | Mitsubishi Electric Corp | 通信システム |
CN1122025A (zh) * | 1993-12-28 | 1996-05-08 | 三菱电机株式会社 | 纠错译码器和纠错译码方法 |
CN1293835A (zh) * | 1999-01-26 | 2001-05-02 | 松下电器产业株式会社 | 数据错误校正装置 |
TW200519595A (en) * | 2003-12-02 | 2005-06-16 | Hewlett Packard Development Co | Data storage system with error correction code and replaceable defective memory |
Also Published As
Publication number | Publication date |
---|---|
TW201510717A (zh) | 2015-03-16 |
WO2014197140A1 (en) | 2014-12-11 |
CN105247793A (zh) | 2016-01-13 |
US9337873B2 (en) | 2016-05-10 |
TWI516914B (zh) | 2016-01-11 |
US20140351672A1 (en) | 2014-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247793B (zh) | 针对错误校正码的误校正检测 | |
US10135465B2 (en) | Error correction methods and apparatuses using first and second decoders | |
US9170876B1 (en) | Method and system for decoding encoded data stored in a non-volatile memory | |
US8621318B1 (en) | Nonvolatile memory controller with error detection for concatenated error correction codes | |
US7904783B2 (en) | Soft-input soft-output decoder for nonvolatile memory | |
US7818653B2 (en) | Methods of soft-input soft-output decoding for nonvolatile memory | |
US9124298B2 (en) | Low complexity error correction using cyclic redundancy check (CRC) | |
US9772900B2 (en) | Tiered ECC single-chip and double-chip Chipkill scheme | |
US9166623B1 (en) | Reed-solomon decoder | |
TWI381273B (zh) | 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 | |
US8190963B1 (en) | Error correction using error detection codes | |
US20090241009A1 (en) | Encoding and/or decoding memory devices and methods thereof | |
EP1931034A2 (en) | Error correction method and apparatus for predetermined error patterns | |
US8533557B2 (en) | Device and method for error correction and protection against data corruption | |
US20100235718A1 (en) | Decoding Techniques for Correcting Errors Using Soft Information | |
US8127216B2 (en) | Reduced state soft output processing | |
US20090132894A1 (en) | Soft Output Bit Threshold Error Correction | |
US8806295B2 (en) | Mis-correction and no-correction rates for error control | |
US7793201B1 (en) | Bit error detector for iterative ECC decoder | |
US8255741B2 (en) | Facilitating error detection and correction after a memory component failure | |
WO2018200132A1 (en) | Optimized error-correcting code (ecc) for data protection | |
KR20170035795A (ko) | 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로 | |
US20170192858A1 (en) | Computing system with data protection mechanism with soft information and method of operation thereof | |
US8918705B1 (en) | Error recovery by modifying soft information | |
US8631308B2 (en) | Apparatus and method for determination of a position of a 1 bit error in a coded bit sequence, apparatus and method for correction of a 1-bit error in a coded bit sequence and decoder and method for decoding an incorrect, coded bit sequence |
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 |