CN101501784A - 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法 - Google Patents

用于利用乘积码来纠正非易失性存储器中的错误的系统和方法 Download PDF

Info

Publication number
CN101501784A
CN101501784A CNA200780029503XA CN200780029503A CN101501784A CN 101501784 A CN101501784 A CN 101501784A CN A200780029503X A CNA200780029503X A CN A200780029503XA CN 200780029503 A CN200780029503 A CN 200780029503A CN 101501784 A CN101501784 A CN 101501784A
Authority
CN
China
Prior art keywords
dimension
code word
code
demoder
product
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
CNA200780029503XA
Other languages
English (en)
Other versions
CN101501784B (zh
Inventor
吴子宁
潘塔斯·苏塔迪嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN101501784A publication Critical patent/CN101501784A/zh
Application granted granted Critical
Publication of CN101501784B publication Critical patent/CN101501784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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

Abstract

一种用于非易失性(NV)存储器的乘积码编码器包括第一编码器,该第一编码器将数据编码到存储在NV存储器中的第一维中的码字中。乘积码编码器还包括第二编码器,该第二编码器将数据编码到存储在NV存储器中的第二维中的码字中。乘积码码字基于第一维的码字和第二维的码字。

Description

用于利用乘积码来纠正非易失性存储器中的错误的系统和方法
相关申请的交叉引用
本申请是于2007年6月21日递交的申请号为11/820,934的美国发明申请的继续,其要求享受2006年8月7日递交的申请号为60/821,654的美国临时申请的优先权。以上申请的公开通过引用而被全部并入于此。
技术领域
本公开涉及存储器系统,并且更具体而言涉及对存储器系统的错误纠正。
背景技术
在此提供的背景描述是出于一般地呈现本公开的语境的目的。在此背景技术部分中描述的范围内的当前表明的发明人的工作以及在递交时不可以其他方式认为是现有技术的描述的各方面,既不明确地也不暗示地承认为相对于本公开的现有技术。
现在参考图1,非易失性半导体存储器10可包括闪存、静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、磁RAM、相变存储器(PRAM)等。存储控制器12可通过写通路14和读通路16来对NV存储器10写入和读出数据。NV存储器10中的数据讹误(data corruption)或错误可能以干扰的形式发生,诸如符号间干扰和/或噪声“n”。
现在参考图1和图2,写通路14的编码器18可接收数据流U并且可对数据应用纠错码(ECC)以生成所编码的信号Y。NV存储器10可存储所编码的数据。读通路16的解码器24可使用ECC来检测并纠正所读出的信号Y’中的错误以生成数据流U’。U’可类似U。
编码器18可以以一维(1D)阵列30的方式编码U。阵列30可包括长度为N的一系列的行31-1、31-2、…和31-M(共称行31)。每行可包含长度为K的用户数据区域32以及长度为N-K的开销数据(overheaddata)区域34,该开销数据区域34可包含ECC所编码的数据。K和N-K可基于存储在各个区域32、34中的比特的数目。
解码器24可在读操作期间分析ECC所编码的数据以确定是否存在错误和/或是否将纠正这样的错误。ECC可包括用于具体多项式方程的共同系数。当从NV存储器10读出数据时,通过从所读出的数据重新生成这些系数可校验数据完整性。如果所重新生成的ECC和所存储的ECC不“匹配”,那么可能已经检测到了错误。
示例性ECC包括Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码。其他的ECC包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(trellis codedmodulation,TCM)、块编码调制(BCM)等。
解码器24可恢复数据,但是可能存在一些可接受地小的不正确恢复的可能性。然而,随着错误的数目增加,可靠的数据恢复的可能性可能迅速降低。一检测到所读出数据中的错误,解码器24就可试图纠正和/或擦除错误。
Hamming距离是对一种码的错误检测和纠正能力的测度。两个数据字之间的Hamming距离是相应比特不同的位置的数目。换言之,Hamming距离测量了将一个字变为另一个所需要的代换的数目,或者将一个字变换为另一个的错误的数目。例如,1111和1001之间的Hamming距离是2。1111和0001之间的Hamming距离是3。
为了检测错误的E个数位,可能需要最小Hamming距离为(E+1)的代码。为了纠正E个错误,代码必须显示(2E+1)的最小Hamming距离。最小距离表明了在所存储的码字被错误解码之前系统能容许的噪声的量。
发明内容
一种用于非易失性(NV)存储器的乘积码编码器包括第一编码器,该第一编码器以存储在NV存储器中的第一维中的码字的方式编码数据。乘积码编码器还包括第二编码器,该第二编码器以存储在NV存储器中的第二维中的码字的方式编码数据。乘积码码字基于第一维的码字和第二维的码字。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,第一编码器和第二编码器中的至少一个包括乘积码编码器。乘积码码字基于第一维的码字与第二维的码字的乘积。第一维包括行,第二维包括列。
在其他特征中,一种NV存储器系统包括乘积码编码器和乘积码解码器。该乘积码解码器解码来自NV存储器的第一维码字和第二维码字。NV存储器包括闪存、静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、磁RAM以及相变存储器(PRAM)中的至少一个。突发码解码器并行于乘积码解码器操作。突发码解码器解码第一维码字和第二维码字中的至少一个。
在其他特征中,NV存储器系统包括调制器,该调制器在写操作期间调制来自乘积码编码器的信号。解调器在读操作期间解调存储在NV存储器中的数据。乘积码解码器包括解码第一维码字的行解码器,以及解码第二维码字的列解码器。
在其他特征中,当行解码器检测到第一维码字里的一个中的错误时,第一维码字里的一个被标记为擦除。列解码器基于该擦除来检测第二维码字里的一个中的另一个错误。乘积码解码器在行解码器和列解码器之间迭代以确定第一维码字和第二维码字中的其他错误。行解码器基于第一维码字中的错误数目来确定第一维码字中的一个被误纠正,并且擦除该第一维码字。
在其他特征中,当未能解码第二维码字中的一个时,乘积码解码器擦除若干最不可靠的第一维码字,并且重复对第二维码字中的一个的解码。当乘积码解码器解码了第二维码字中的一个但是变更了第一维码字里的一个中的符号时,乘积码解码器擦除若干最不可靠的第一维码字。乘积码解码器然后重复对第二维码字中的一个的解码。乘积码编码器还包括N个编码器,这N个编码器以存储在NV存储器中的N维中的码字的方式编码数据。乘积码码字基于N维的码字的乘积,其中N是大于或等于三的整数。
在其他特征中,一种乘积码解码器包括第一解码器,该第一解码器解码存储在NV存储器中的第一维码字。乘积码解码器还包括第二解码器,该第二解码器解码存储在NV存储器中的第二维码字。乘积码码字基于第一维码字和第二维码字。
在其他特征中,第一维包括行,第二维包括列。乘积码码字基于第一维码字与第二维码字的乘积。第一解码器和第二解码器中的至少一个包括乘积码解码器。当第一解码器检测到第一维码字里的一个中的错误时,第一维码字里的那一个被标记为擦除。第二解码器基于该擦除来检测第二维码字里的一个中的另一个错误。
在其他特征中,第一解码器和第二解码器迭代以确定第一维码字和第二维码字中的其他错误。第一解码器基于第一维码字中的错误数目来确定第一维码字中的一个被误纠正,并且擦除该第一维码字。当第二解码器未能解码第二维码字中的一个时,第一解码器和第二解码器中的一个擦除若干最不可靠的第一维码字。第二解码器然后重复对第二维码字中的一个的解码。
在其他特征中,当第二解码器解码了第二维码字中的一个但是变更了第一维码字里的一个中的符号时,第一解码器和第二解码器中的一个擦除若干最不可靠的第一维码字。第二解码器然后重复对第二维码字中的一个的解码。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,一种NV存储器系统包括乘积码解码器。NV存储器包括闪存、静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、磁RAM以及相变存储器(PRAM)中的至少一个。存储器系统还包括乘积码编码器,该乘积码编码器包括编码第一维码字的行编码器以及编码第二维码字的列编码器。乘积码解码器包括N个解码器,这N个解码器解码存储在NV存储器中的N维的码字中的数据。乘积码码字基于N维的码字的乘积,其中N是大于或等于三的整数。
在其他特征中,一种用于编码乘积码的方法包括以存储在NV存储器中的第一维中的码字的方式编码数据。该方法还包括以存储在NV存储器中的第二维中的码字的方式编码数据。乘积码码字基于第一维的码字和第二维的码字。该乘积码码字基于第一维的码字与第二维的码字的乘积。第一维包括行,第二维包括列。
在其他特征中,该方法包括以存储在NV存储器中的N维中的码字的方式编码数据。乘积码码字基于N维的码字的乘积,其中N是大于或等于三的整数。
在其他特征中,一种用于解码乘积码的方法包括解码存储在NV存储器中的第一维码字。该方法还包括解码存储在NV存储器中的第二维码字。乘积码码字基于第一维码字和第二维码字。第一维包括行,第二维包括列。乘积码码字基于第一维码字与第二维码字的乘积。
在其他特征中,该方法包括检测第一维码字里的一个中的错误,并且将第一维码字里的那一个标记为擦除。该方法还包括基于该擦除来检测第二维码字里的一个中的另一个错误。该方法还包括基于第一维码字中的错误数目来确定第一维码字中的一个被误纠正。该方法还包括擦除该第一维码字。
在其他特征中,该方法包括响应于未能解码第二维码字中的一个,擦除若干最不可靠的第一维码字。该方法还包括重复对第二维码字中的一个的解码。该方法还包括当第二维码字中的一个被解码但是第一维码字里的一个中的符号被变更时,擦除若干最不可靠的第一维码字。该方法还包括重复对第二维码字中的一个的解码。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,一种用于用来存储数据的NV装置的乘积码编码器包括第一编码装置,用于以存储在NV存储装置中的第一维中的码字的方式编码数据。乘积码编码器还包括第二编码装置,用于以存储在NV存储装置中的第二维中的码字的方式编码数据。乘积码码字基于第一维的码字和第二维的码字。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,第一编码装置和第二编码装置中的至少一个包括用于编码乘积码的编码装置。乘积码码字基于第一维的码字与第二维的码字的乘积。第一维包括行,第二维包括列。
在其他特征中,一种乘积码解码器包括第一解码装置,用于解码存储在用于存储数据的NV装置中的第一维码字。乘积码解码器还包括第二解码装置,用于解码存储在NV存储装置中的第二维码字。乘积码码字基于第一维码字和第二维码字。第一维包括行,第二维包括列。乘积码码字基于第一维码字与第二维码字的乘积。
在其他特征中,第一解码装置和第二解码装置中的至少一个包括用于解码的乘积码装置。当第一解码装置检测到第一维码字里的一个中的错误时,那个第一维码字被标记为擦除。第二解码装置基于该擦除来检测第二维码字里的一个中的另一个错误。第一解码装置和第二解码装置迭代以确定第一维码字和第二维码字中的其他错误。第一解码装置基于第一维码字中的错误数目来确定第一维码字中的一个被误纠正,并且擦除该第一维码字。
在其他特征中,当第二解码装置未能解码第二维码字中的一个时,第一解码装置和第二解码装置中的一个擦除若干最不可靠的第一维码字。第二解码装置然后重复对第二维码字中的一个的解码。当第二解码装置解码了第二维码字中的一个但是变更了第一维码字里的一个中的符号时,第一解码装置和第二解码装置中的一个擦除若干最不可靠的第一维码字。第二解码装置然后重复对第二维码字中的一个的解码。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,一种所存储的用于由处理器操作用于NV存储器的乘积码编码器的计算机程序包括以存储在NV存储器中的第一维的码字的方式编码数据。该计算机程序还包括以存储在NV存储器中的第二维的码字的方式编码数据。乘积码码字基于第一维的码字和第二维的码字。该乘积码码字基于第一维的码字与第二维的码字的乘积。第一维包括行,第二维包括列。
在其他特征中,该计算机程序包括以存储在NV存储器中的N维的码字的方式编码数据。乘积码码字基于N维的码字的乘积,其中N是大于或等于三的整数。
在其他特征中,一种用于解码乘积码的计算机程序包括解码存储在NV存储器中的第一维码字。该计算机程序还包括解码存储在NV存储器中的第二维码字。乘积码码字基于第一维码字和第二维码字。第一维包括行,第二维包括列。乘积码码字基于第一维码字与第二维码字的乘积。
在其他特征中,该计算机程序包括检测第一维码字里的一个中的错误,并且将第一维码字里的一个标记为擦除。该计算机程序还包括基于该擦除来检测第二维码字里的一个中的另一个错误。该计算机程序还包括基于第一维码字中的错误数目来确定第一维码字中的一个被误纠正。该计算机程序还包括擦除该第一维码字。
在其他特征中,该计算机程序包括响应于未能解码第二维码字中的一个,擦除若干最不可靠的第一维码字。该计算机程序还包括重复对第二维码字中的一个的解码。该计算机程序还包括当第二维码字中的一个被解码但是第一维码字里的一个中的符号被变更时,擦除若干最不可靠的第一维码字。该计算机程序还包括重复对第二维码字中的一个的解码。
在其他特征中,第一维码字和第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码以及Bose-Chaudhuri-Hochquenghem(BCH)二进制码组成的组中选出的码。该组还包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)。
在其他特征中,上述系统和方法通过一个或多个处理器所执行的计算机程序实现。计算机程序可驻留在计算机可读介质上,计算机可读介质例如但不限于存储器、非易失性数据存储装置和/或其他合适的实际的存储介质。
从以下所提供的详细描述中,本公开的进一步适用领域将会变得清楚。应当理解的是,详细描述和具体示例虽然指示了本公开的优选实施例,但是希望仅出于例示的目的,并且不希望限制本公开的范围。
附图说明
从详细描述和附图中将会更充分地理解本公开,其中:
图1是根据现有技术的存储器系统的功能框图;
图2是根据现有技术的存储阵列的示意图;
图3是根据本公开的存储器系统的功能框图;
图4是根据本公开的乘积码编码器的功能框图;
图5是根据本公开的乘积码解码器的功能框图;
图6A~图6B是根据本公开的存储阵列的示意图;
图7是根据本公开的乘积码解码器的功能框图;
图8是示出非易失性存储器系统的示例性性能的图;
图9是示出根据本公开的用于编码和解码非易失性存储器的方法的框图;
图10是根据本公开的三维(3D)乘积码的示意图;
图11A是硬盘驱动器的功能框图;
图11B是DVD驱动器的功能框图;
图11C是高清晰度电视的功能框图;
图11D是车辆控制系统的功能框图;
图11E是蜂窝电话的功能框图;
图11F是机顶盒的功能框图;以及
图11G是移动设备的功能框图。
具体实施方式
以下描述本质上仅是示例性的,并且决不希望限制本公开及其应用或使用。出于清楚的目的,在附图中将使用相同的标号来标识类似的元素。这里使用的术语“模块”指专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或成组的)和存储器、组合逻辑电路和/或提供所描述的功能的其他合适的部件。这里使用的短语“A、B和C中的至少一个”应当被解释为意思是使用非排他性逻辑或的逻辑(A或B或C)。应当理解的是,在不变更本公开的原理的情况下,可以按不同的顺序执行方法内的步骤。
本公开涉及利用乘积码在非易失性(NV)存储器中存储数据。
现在参考图3,存储器存储系统50包括写通路54和读通路56。写通路54具有接收来自存储控制器59的信息数据流U并且生成乘积码数据流X的乘积码编码器58。乘积码数据流X被调制器60接收,调制器60将数据流X调制为适用于NV存储器存储的信号。数据流X然后被写入单级单元(SLC)的或多级单元(MLC)的NV存储器62。
信号“n”表示NV存储器62内的经调制信号所经历的并且因此实际上增加到NV存储器62内的经调制信号中的噪声或失真。噪声n和经调制信号的组合被读通路56的解调器70接收。解调器70生成所接收的信号X’,X’被乘积码解码器72接收。解调器70可首先量子化来自NV存储单元的回读电压(或电流),并且将读数翻译为可能包括n造成的错误的二进制数据X’。
如果在回读处理/解调期间未发生错误,那么X’可与X相同。如果发生错误,那么乘积码解码器72可检测和/或清除X’中的错误,从而U’一般等于U。
现在参考图4和图5,乘积码的数据可按列和/或按行写入和/或读出。乘积码编码器58可包括行编码器74和列编码器76,它们编码将被写入NV存储器62的数据的行和列。乘积码解码器72可包括行解码器78、列解码器80以及纠错模块82。行解码器78和列解码器80解码从NV存储器62读出的数据的行和列,并且可检测数据错误。纠错模块82可纠正数据错误。
现在参考图6A,乘积码编码器58可在写操作期间以示例性二维(2D)乘积码(Cp)86的方式编码数据。Cp=C1×C2,其中C1可表示(N1,K1)码,该(N1,K1)码可以是二进制线性码,在纵向上码长N1、数据长K1。C2可表示(N2,K2)码,该(N2,K2)码也可以是二进制线性码,在水平方向上码长N2、信息长K2。乘积码86可表示(N1N2,K1K2)线性码。
也就是说,C1和C2可分别具有K1和K2数据位,编码后,K1和K2数据位分别变成N1和N2编码位。乘积码可通过首先将K1×K2数据位存储在具有K1行和K2列的块1的2D阵列中来构建。块1可通过如下矩阵表示,
Figure A200780029503D00171
其中D表示数据,i、j表示矩阵的行和列。Di,j(i=1,2,…,K1;j=1,2,…,K2)可以是0或1。块2可通过向从第1到第K2列的单独列提供C1码的(N1-K1)位校验来构建。块2可表示为具有N1-K1行和K2列的2D阵列。块3和4可通过随后向从第1到第N1行的单独行提供C2码的(N2-K2)位校验来构建。
块1标明了原始数据位K1×K2,块2-3每个标明了对原始数据位的校验。块4可标明对块2-3的冗余校验。块4因此可包括(N1-K1)×(N2-K2)校验数据。
现在参考图6B,进一步示出图6A的示例性乘积码86。行编码器74可编码数据的每一行88-1,88-2,…,和88-P,并且每一行可表示C2中的一个码字。列编码器76可编码每一行90-1,90-2,…,和90-Q,并且每一列可以是C1中的一个码字。C1和C2的任何一个或者两个都可包括Reed-Solomon(RS)码、Bose-Chaudhuri-Hochquenghem(BCH)二进制码以及Hamming码及其他。C1和C2还可包括循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)等。
乘积码的总体码率可以是(K1*K2)/(N1*N2)。如果C1具有d1的最小Hamming距离并且C2具有d2的Hamming最小距离,那么乘积码可具有d1×d2的最小Hamming距离。
再参考图4和图5,乘积码编码器58可一维一维地编码乘积码。例如,对于图6A和图6B中的2D乘积码,每行可首先利用行编码器74来编码。编码后的比特可被放入矩阵格式中。乘积码编码器58然后可利用列编码器76编码每一列。或者,列可在行之前被编码。
乘积码解码器72可首先利用行解码器78解码每一行,然后利用列解码器80解码每一列(或者反之亦然)。乘积码解码器72可从解调器70逐行地或者逐列地接收所存储的数据。解码器72可首先按行解码,当数据是按列接收的时候这可允许纠正突发错误(burst error),并且反之亦然。随后的列(或行)解码可清除行(或列)解码所导致的误纠正(miscorrection)。
在可供替代的实施例中,解码器72可基于仅对一个维度解码来检测错误。当行解码器78检测到一行上的错误时,行解码器(或纠错模块82)将那行标记为擦除(erasure)。然后,列解码器80和纠错模块82通过利用行解码器78所标记的擦除来执行错误和擦除解码。
乘积码解码器72可在行解码器78和列解码器80之间迭代(iterate)。首先,行解码器78可用来纠正每一行。对于每一行,行解码器78可存储数字mp,mp是在行88-P中所纠正的符号的数目。mp较大的值可与更可能已被误纠正的行相对应。不可纠正的行可被指定为mp=“无穷大”,并且纠错模块82可擦除那行中的所有符号。
列解码器80然后可用来顺序地利用错误和擦除纠正方法来纠正列。例如,如果因为列不可纠正而未能解码,或者如果成功解码但是解码改变了未擦除行中的符号,那么行解码有一些可能已是不正确的。在此情况下,纠错模块82可擦除两个最不可靠的未擦除行(具有最大值的mp的行)并且重复对此列的解码。
现在参考图7,乘积码可同时允许所解码的突发错误和随机错误。因此,突发错误解码器84可在解码器模块89中并行于迭代的乘积码解码器72而运行。如果解码器72、84的任何一个确定了有效的码字,那么解码可被认为是成功的。
现在参考图8,示出了C1和C2都包括BCH码的2D乘积码的示例性性能曲线150。曲线150示出了在乘积码解码器的输出处的错字率(WER)。基于错误率和信噪(SNR)比也图示了原始误码率(BER)156和原始WER 158。在本公开的一个示例中,C1和C2都包括(511,466)二进制BCH码。C1和C2的参数可包括N1=N2=511,K1=K2=466,d1=d2=11,即每个码可纠正多达5比特的错误。乘积码可具有最小Hamming距离dmin=121并且可纠正多达60比特的错误。码率则是0.83。结果的乘积码性能被绘作曲线150。编码增益在WER为1-10处可大于6.5dB,这可以是超过未编码系统性能的可观的改进。
来自乘积码的大编码增益可使得在非易失性存储器系统的能力和/或可靠性方面能提高。如果每个存储单元的级数从4级增加至8级,那么噪声容限可降低,因此增大了原始BER。当原始BER约为10-4时,来自乘积码解码器的最终WER可小于10-13
现在参考图9,框图200示出了用于编码和解码NV存储器的方法。当从存储控制器接收到数据时,方法在步骤204开始。在步骤206,数据被乘积码编码器编码为码字的行和列。在步骤208,调制器调制编码后的数据。在步骤210,调制后的数据通过写操作存储在NV存储器中。在步骤212,所存储的数据被从NV存储器读出并且被解调。在步骤214,解调后的数据被解码并且被纠错。
现在参考图10,虽然以上示例清楚说明了2D乘积码,但是本公开还可包括三个或更多的维度。例如,图10示出3维(3D)乘积码220。乘积码220基于三维的码字的乘积,使得Cp=C1×C2×C3,其中C1×C2×C3分别表示第一、第二和第三维上的码/码字222、224、226。此外,每一维可以是或可以不是“矩形”形式。如果编码器输入是X0,X1,…XN-1,其中N=N1*N2,那么矩形形式的维度可通过第一(行)维(Xi)来数学地表达,使得i=mN2+z,其中0≤m<N1是行标。0≤z≤N2枚举了同一行中的所有比特。此外,维度可通过第二(列)维(Xj)来表达,使得j=sN1+t,其中0≤s≤N2是列标;并且0≤t<N1枚举了同一列中的所有比特。
其他方法可用来定义每个维度。例如,行可用于第一维,对角线可用于第二维。对于这种布置,比特X0到XN-1首先以每比特可通过Xi,j来索引的矩阵形式排列。维度然后被数学地定义为第一(行)维(Xi,j),其中i是行标,j枚举了同一行中的所有比特。此外,定义了第二(对角线)维(Xi,j)以使得i-j=m,其中m是对角线标(diagonal index)。满足i-j=m的所有(i,j)组合可枚举同一对角线中的所有比特。
乘积码或其他的合成码还可用作对于一个或多个维度的成分码。例如,在图6A中,列维中的码1可以是乘积码。将乘积码用作成分码可简化对相应维度的解码,并且实现更高的编码增益。
现在参考图11A~图11G,示出合并了本公开的教导的各种示例性实现方式。现在参考图11A,本公开的教导可用来编码、解码和纠正用于硬盘驱动器(HDD)300的NV存储器312的数据。HDD 300包括硬盘组件(assembly)(HDA)301和HDD PCB 302。HDA 301可包括磁介质303,诸如存储数据的一个或多个盘(platter),以及读/写器件304。读/写器件304可布置在激励器臂305上,并且可在磁介质303上读出和写入数据。此外,HDA 301包括旋转磁介质303的主轴电机306,以及激励激励器臂305的音圈电机(VCM)307。前置放大器件308在读操作期间放大读/写器件304所生成的信号,并且在写操作期间将信号提供至读/写器件304。
HDD PCB 302包括读/写信道模块(下文中的“读信道”)309、硬盘控制器(HDC)模块310、缓冲器311、NV存储器312、处理器313和主轴/VCM驱动器模块314。读信道309处理从前置放大器件308接收的数据以及发送至前置放大器件308的数据。HDC模块310控制HDA 301的部件,并且经由I/O接口315与外部设备(未示出)通信。外部设备可包括计算机、多媒体设备、移动计算设备等。I/O接口315可包括有线和/或无线通信链路。
HDC模块310可从HDA 301、读信道309、缓冲器311、非易失性存储器312、处理器313、主轴/VCM驱动器模块314和/或I/O接口315接收数据。处理器313可处理数据,包括编码、解码、滤波和/或格式化。所处理的数据可输出至HDA 301、读信道309、缓冲器311、非易失性存储器312、处理器313、主轴/VCM驱动器模块314和/或I/O接口315。
HDC模块310可使用缓冲器311和/或非易失性存储器312来存储关于HDD 300的控制和操作的数据。缓冲器311可包括DRAM、SDRAM等。非易失性存储器312可包括闪存(包括NAND和NOR闪存)、相变存储器、磁RAM或多状态存储器,在多状态存储器中每个存储单元具有多于两种的状态。主轴/VCM驱动器模块314控制主轴电机306和VCM307。HDD PCB 302包括向HDD 300的部件提供电力的电源316。
现在参考图11B,本公开的教导可用来编码、解码和纠正用于DVD驱动器318的NV存储器323或者CD驱动器(未示出)的NV存储器323的数据。DVD驱动器318包括DVD PCB 319和DVD组件(DVDA)320。DVD PCB 319包括DVD控制模块321、缓冲器322、NV存储器323、处理器324、主轴/FM(进给电机)驱动器模块325、模拟前端模块326、写策略模块327和DSP模块328。
DVD控制模块321控制DVDA 320的部件,并且经由I/O接口329与外部设备(未示出)通信。外部设备可包括计算机、多媒体设备、移动计算设备等。I/O接口329可包括有线和/或无线通信链路。
DVD控制模块321可从缓冲器322、非易失性存储器323、处理器324、主轴/FM驱动器模块325、模拟前端模块326、写策略模块327、DSP模块328和/或I/O接口329接收数据。处理器324可处理数据,包括编码、解码、滤波和/或格式化。DSP模块328执行信号处理,诸如视频和/或音频编码/解码。所处理的数据可输出至缓冲器322、非易失性存储器323、处理器324、主轴/FM驱动器模块325、模拟前端模块326、写策略模块327、DSP模块328和/或I/O接口329。
DVD控制模块321可使用缓冲器322和/或非易失性存储器323来存储关于DVD驱动器318的控制和操作的数据。缓冲器322可包括DRAM、SDRAM等。非易失性存储器323可包括闪存(包括NAND和NOR闪存)、相变存储器、磁RAM或多状态存储器,在多状态存储器中每个存储单元具有多于两种的状态。DVD PCB 319包括向DVD驱动器318的部件提供电力的电源330。
DVDA 320可包括前置放大器件331、激光驱动器332和光器件333,光器件333可以是光学读/写(ORW)器件或光学只读(OR)器件。主轴电机334旋转光存储介质355,并且进给电机336相对于光存储介质355激励光器件333。
当从光存储介质355读出数据时,激光驱动器向光器件333提供读出功率。光器件333从光存储介质355检测数据,并且将数据发送至前置放大器件331。模拟前端模块326从前置放大器件331接收数据,并且执行诸如滤波和A/D转换之类的功能。为了写入光存储介质355,写策略模块327向激光驱动器332发送功率级别和定时数据。激光驱动器332控制光器件333以向光存储介质355写入数据。
现在参考图11C,本公开的教导可用来编码、解码和纠正用于高清晰度电视(HDTV)337的存储器341的数据。HDTV 337包括HDTV控制模块338、显示器339、电源340、存储器341、存储设备342、网络接口343以及外部接口345。如果网络接口343包括无线局域网接口,那么可包括天线(未示出)。
HDTV 337可以从可经由电缆、宽带因特网和/或卫星发送和接收数据的网络接口343和/或外部接口345接收输入信号。HDTV控制模块338可处理输入信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。输出信号可被通信至显示器339、存储器341、存储设备342、网络接口343和外部接口345中的一个或多个。
存储器341可包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多状态存储器之类的非易失性存储器,在多状态存储器中每个存储单元具有多于两种的状态。存储设备342可包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。HDTV控制模块338经由网络接口343和/或外部接口345与外部通信。电源340向HDTV 337的部件提供电力。
现在参考图11D,本公开的教导可用来编码、解码和纠正用于车辆346的NV存储器349的数据。车辆346可包括车辆控制系统347、电源348、NV存储器349、存储设备350以及网络接口352。如果网络接口352包括无线局域网接口,那么可包括天线(未示出)。车辆控制系统347可以是动力总成(powertrain)控制系统、车体控制系统、娱乐控制系统、防抱死制动系统(ABS)、导航系统、远程信息处理(telematics)系统、车道偏离系统、自适应巡航控制系统等。
车辆控制系统347可与一个或多个传感器354通信,并且生成一个或多个输出信号356。传感器354可包括温度传感器、加速度传感器、压力传感器、旋转传感器、气流传感器等。输出信号356可控制发动机操作参数、变速器操作参数、悬挂参数等。
电源348向车辆346的部件提供电力。车辆控制系统347可将数据存储在存储器349和/或存储设备350中。存储器349可包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多状态存储器之类的非易失性存储器,在多状态存储器中每个存储单元具有多于两种的状态。存储设备350可包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。车辆控制系统347可利用网络接口352与外部通信。
现在参考图11E,本公开的教导可用来编码、解码和纠正用于蜂窝电话358的NV存储器364的数据。蜂窝电话358包括电话控制模块360、电源362、NV存储器364、存储设备366以及蜂窝网络接口367。蜂窝电话358可包括网络接口368、麦克风370、诸如扬声器和/或输出插口之类的音频输出372、显示器374以及诸如键盘和/或点击设备之类的用户输入设备376。如果网络接口368包括无线局域网接口,那么可包括天线(未示出)。
电话控制模块360可从蜂窝网络接口367、网络接口368、麦克风370和/或用户输入设备376接收输入信号。电话控制模块360可处理信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。输出信号可被通信至存储器364、存储设备366、蜂窝网络接口367、网络接口368和音频输出372中的一个或多个。
存储器364可包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多状态存储器之类的非易失性存储器,在多状态存储器中每个存储单元具有多于两种的状态。存储设备366可包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。电源362向蜂窝电话358的部件提供电力。
现在参考图11F,本公开的教导可用来编码、解码和纠正用于机顶盒378的存储器383的数据。机顶盒378包括机顶控制模块380、显示器381、电源382、存储器383、存储设备384以及网络接口385。如果网络接口385包括无线局域网接口,那么可包括天线(未示出)。
机顶控制模块380可以从可经由电缆、宽带因特网和/或卫星发送和接收数据的网络接口385和外部接口387接收输入信号。机顶控制模块380可处理信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。输出信号可包括标准和/或高清晰度格式的音频和/或视频信号。输出信号可被通信至网络接口385和/或显示器381。显示器381可包括电视、投影仪和/或监视器。
电源382向机顶盒378的部件提供电力。存储器383可包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多状态存储器之类的非易失性存储器,在多状态存储器中每个存储单元具有多于两种的状态。存储设备384可包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。
现在参考图11G,本公开的教导可用来编码、解码和纠正用于移动设备389的NV存储器392的数据。移动设备389可包括移动设备控制模块390、电源391、NV存储器392、存储设备393、网络接口394以及外部接口399。如果网络接口394包括无线局域网接口,那么可包括天线(未示出)。
移动设备控制模块390可从网络接口394和/或外部接口399接收输入信号。外部接口399可包括USB、红外线和/或以太网。输入信号可包括压缩的音频和/或视频,并且可符合MP3格式。此外,移动设备控制模块390可从诸如键盘、触摸板或单独的按钮之类的用户输入396接收输入。移动设备控制模块390可处理输入信号,包括编码、解码、滤波和/或格式化,并且生成输出信号。
移动设备控制模块390可向音频输出397输出音频信号,并且向显示器398输出视频信号。音频输出397可包括扬声器和/或输出插口。显示器398可呈现可包括菜单、图标等的图形用户界面。电源391向移动设备389的部件提供电力。存储器392可包括随机存取存储器(RAM)和/或诸如闪存、相变存储器或多状态存储器之类的非易失性存储器,在多状态存储器中每个存储单元具有多于两种的状态。存储设备393可包括诸如DVD驱动器之类的光存储设备和/或硬盘驱动器(HDD)。移动设备可包括个人数字助理、媒体播放器、膝上式计算机、游戏机或其他的移动计算设备。
本领域技术人员现在可从上述描述认识到,可以以各种形式实现本公开的广泛教导。因此,虽然本公开包括具体示例,但是不应当这样限制本公开的真正范围,因为在研究了附图、说明书和权利要求后,其他修改对技术从业人员而言就会变得清楚。

Claims (44)

1.一种用于非易失性(NV)存储器的乘积码编码器,包括:
第一编码器,所述第一编码器将数据编码到存储在所述NV存储器中的第一维中的码字中;以及
第二编码器,所述第二编码器将数据编码到存储在所述NV存储器中的第二维中的码字中,其中乘积码码字基于所述第一维中的所述码字和所述第二维中的所述码字。
2.如权利要求1所述的乘积码编码器,其中所述第一维码字和所述第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码、Bose-Chaudhuri-Hochquenghem(BCH)二进制码、循环冗余码、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)组成的组中选出的码。
3.如权利要求1所述的乘积码编码器,其中,所述第一编码器和所述第二编码器中的至少一个包括乘积码编码器。
4.如权利要求1所述的乘积码编码器,其中,所述乘积码码字基于所述第一维中的所述码字与所述第二维中的所述码字的乘积。
5.如权利要求1所述的乘积码编码器,其中,所述第一维包括行,所述第二维包括列。
6.一种非易失性(NV)存储器系统,包括:
如权利要求1所述的乘积码编码器;以及
乘积码解码器,所述乘积码解码器解码来自所述NV存储器的所述第一维码字和所述第二维码字。
7.如权利要求6所述的NV存储器系统,还包括:
所述NV存储器,其中所述NV存储器包括闪存、静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、磁RAM以及相变存储器(PRAM)中的至少一个。
8.如权利要求6所述的NV存储器系统,还包括突发码解码器,所述突发码解码器并行于所述乘积码解码器操作,其中所述突发码解码器解码所述第一维码字和所述第二维码字中的至少一个。
9.如权利要求6所述的NV存储器系统,还包括:
调制器,所述调制器在写操作期间调制来自所述乘积码编码器的信号;以及
解调器,所述解调器在读操作期间解调存储在所述NV存储器中的数据。
10.如权利要求6所述的NV存储器系统,其中,所述乘积码解码器包括解码所述第一维码字的行解码器,以及
解码所述第二维码字的列解码器。
11.如权利要求10所述的NV存储器系统,其中,当所述行解码器检测到所述第一维码字中一个中的错误时,所述第一维码字中的所述一个被标记为擦除。
12.如权利要求11所述的NV存储器系统,其中,所述列解码器基于所述擦除来检测所述第二维码字中的一个中的另一错误。
13.如权利要求12所述的NV存储器系统,其中,所述乘积码解码器在所述行解码器和所述列解码器之间迭代,以确定所述第一维码字和所述第二维码字中的其他错误。
14.如权利要求10所述的NV存储器系统,其中,所述行解码器基于所述第一维码字中的错误数目来判断所述第一维码字中的一个被误纠正,并且擦除所述第一维码字。
15.如权利要求10所述的NV存储器系统,其中,当所述乘积码解码器未能解码所述第二维码字中的一个时,所述乘积码解码器擦除若干最不可靠的第一维码字,并且重复对所述第二维码字中的所述一个的解码。
16.如权利要求10所述的NV存储器系统,其中,当所述乘积码解码器解码了所述第二维码字中的一个,但是变更了所述第一维码字里的一个中的符号时,所述乘积码解码器擦除若干最不可靠的第一维码字,并且重复对所述第二维码字中的所述一个的解码。
17.如权利要求1所述的乘积码编码器,还包括N个编码器,所述N个编码器将数据编码到存储在所述NV存储器中的N维中的码字中,其中乘积码码字基于所述N维中的所述码字的乘积,其中N是大于或等于三的整数。
18.一种乘积码解码器,包括:
第一解码器,所述第一解码器解码存储在非易失性(NV)存储器中的第一维码字;以及
第二解码器,所述第二解码器解码存储在所述NV存储器中的第二维码字,其中乘积码码字基于所述第一维码字和所述第二维码字。
19.如权利要求18所述的乘积码解码器,其中,所述第一维包括行,所述第二维包括列。
20.如权利要求18所述的乘积码解码器,其中,所述乘积码码字基于所述第一维码字与所述第二维码字的乘积。
21.如权利要求18所述的乘积码解码器,其中,所述第一解码器和所述第二解码器中的至少一个包括乘积码解码器。
22.如权利要求18所述的乘积码解码器,其中,当所述第一解码器检测到所述第一维码字里的一个中的错误时,所述第一维码字里的所述一个被标记为擦除。
23.如权利要求22所述的乘积码解码器,其中,所述第二解码器基于所述擦除来检测所述第二维码字中的一个中的另一错误。
24.如权利要求23所述的乘积码解码器,其中,所述第一解码器和所述第二解码器迭代以确定所述第一维码字和所述第二维码字中的其他错误。
25.如权利要求18所述的乘积码解码器,其中,所述第一解码器基于所述第一维码字中的错误数目来判断所述第一维码字中的一个被误纠正,并且擦除所述第一维码字。
26.如权利要求18所述的乘积码解码器,其中,当所述第二解码器未能解码所述第二维码字中的一个时,所述第一解码器和所述第二解码器中的一个擦除若干最不可靠的第一维码字,并且所述第二解码器重复对所述第二维码字中的所述一个的解码。
27.如权利要求18所述的乘积码解码器,其中,当所述第二解码器解码了所述第二维码字中的一个,但是变更了所述第一维码字里的一个中的符号时,所述第一解码器和所述第二解码器中的一个擦除若干最不可靠的第一维码字,并且所述第二解码器重复对所述第二维码字中的所述一个的解码。
28.如权利要求18所述的乘积码解码器,其中,所述第一维码字和所述第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码、Bose-Chaudhuri-Hochquenghem(BCH)二进制码、循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)组成的组中选出的码。
29.一种非易失性(NV)存储器系统,包括:
如权利要求18所述的乘积码解码器;
所述NV存储器,所述NV存储器包括闪存、静态随机存取存储器(SRAM)、氮化物只读存储器(NROM)、磁RAM以及相变存储器(PRAM)中的至少一个;以及
乘积码编码器,所述乘积码编码器包括编码所述第一维码字的行编码器以及编码所述第二维码字的列编码器。
30.如权利要求18所述的乘积码编码器,还包括N个解码器,所述N个解码器解码存储在所述NV存储器中的N维中的码字中的数据,其中乘积码码字基于所述N维中的所述码字的乘积,其中N是大于或等于三的整数。
31.一种用于编码乘积码的方法,包括:
将数据编码到存储在NV存储器中的第一维中的码字中;以及
将数据编码到存储在所述NV存储器中的第二维中的码字中,其中乘积码码字基于所述第一维中的所述码字和所述第二维中的所述码字。
32.如权利要求31所述的方法,其中,所述第一维码字和所述第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码、Bose-Chaudhuri-Hochquenghem(BCH)二进制码、循环冗余码、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)组成的组中选出的码。
33.如权利要求31所述的方法,其中,所述乘积码码字基于所述第一维中的所述码字与所述第二维中的所述码字的乘积。
34.如权利要求31所述的方法,其中,所述第一维包括行,所述第二维包括列。
35.如权利要求31所述的方法,还包括将数据编码到存储在所述NV存储器中的N维中的码字中,其中乘积码码字基于所述N维中的所述码字的乘积,其中N是大于或等于三的整数。
36.一种用于解码乘积码的方法,包括:
解码存储在非易失性(NV)存储器中的第一维码字;以及
解码存储在所述NV存储器中的第二维码字,其中乘积码码字基于所述第一维码字和所述第二维码字。
37.如权利要求36所述的方法,其中,所述第一维包括行,所述第二维包括列。
38.如权利要求36所述的乘积码解码器,其中,所述乘积码码字基于所述第一维码字与所述第二维码字的乘积。
39.所述方法36还包括:
检测所述第一维码字中的一个中的错误;以及
将所述第一维码字里的所述一个标记为擦除。
40.如权利要求39所述的方法,还包括基于所述擦除来检测所述第二维码字中的一个中的另一错误。
41.如权利要求36所述的方法,还包括:
基于所述第一维码字中的错误数目来判断所述第一维码字中的一个被误纠正;以及
擦除所述第一维码字。
42.如权利要求36所述的方法,还包括:
响应于未能解码所述第二维码字中的一个,擦除若干最不可靠的第一维码字;以及
重复对所述第二维码字中的所述一个的解码。
43.如权利要求36所述的方法,还包括:
当所述第二维码字中的一个被解码,但是所述第一维码字里的一个中的符号被变更时,擦除若干最不可靠的第一维码字;以及
重复对所述第二维码字中的所述一个的解码。
44.如权利要求36所述的方法,其中,所述第一维码字和所述第二维码字中的至少一个基于从由Hamming码、Reed-Solomon(RS)码、Bose-Chaudhuri-Hochquenghem(BCH)二进制码、循环冗余码(CRC)、Golay码、Reed-Muller码、Goppa码、低密度奇偶校验(LDPC)码、turbo码、卷积码、网格编码调制(TCM)、块编码调制(BCM)组成的组中选出的码。
CN200780029503XA 2006-08-07 2007-08-06 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法 Active CN101501784B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82165406P 2006-08-07 2006-08-07
US60/821,654 2006-08-07
US11/820,934 2007-06-21
US11/820,934 US8046660B2 (en) 2006-08-07 2007-06-21 System and method for correcting errors in non-volatile memory using product codes
PCT/US2007/017450 WO2008021045A2 (en) 2006-08-07 2007-08-06 System and method for correcting errors in non-volatile memory using product codes

Publications (2)

Publication Number Publication Date
CN101501784A true CN101501784A (zh) 2009-08-05
CN101501784B CN101501784B (zh) 2013-10-23

Family

ID=38904795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780029503XA Active CN101501784B (zh) 2006-08-07 2007-08-06 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法

Country Status (4)

Country Link
US (2) US8046660B2 (zh)
CN (1) CN101501784B (zh)
TW (1) TWI451430B (zh)
WO (1) WO2008021045A2 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710264A (zh) * 2012-06-29 2012-10-03 华为技术有限公司 译码方法和装置
CN102934171A (zh) * 2010-06-04 2013-02-13 美光科技公司 具有非易失性存储器的多级系统中的高级逐位操作及设备
CN103198869A (zh) * 2013-03-04 2013-07-10 中国科学院长春光学精密机械与物理研究所 一种空间ccd图像存储器nand闪存纠错编解码器及纠错方法
CN103309766A (zh) * 2013-06-20 2013-09-18 中国科学院微电子研究所 基于并行编码译码的循环汉明码的纠错方法
CN103338046A (zh) * 2013-06-21 2013-10-02 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103618584A (zh) * 2013-04-28 2014-03-05 张涛 电力线通信信道编译码方法及系统
CN104067233A (zh) * 2011-11-18 2014-09-24 桑迪士克企业知识产权有限责任公司 用于多分层错误校正的系统、方法和设备
CN107408069A (zh) * 2015-03-27 2017-11-28 英特尔公司 用于检测和缓解闪速存储器中的位线开路的装置和方法
CN107743036A (zh) * 2016-08-24 2018-02-27 中国科学院微电子研究所 Bch码的译码方法
CN108073471A (zh) * 2016-11-15 2018-05-25 西部数据技术公司 链接的存储系统和主机系统错误校正码
CN108370252A (zh) * 2015-12-14 2018-08-03 国际商业机器公司 对乘积码诊断的后解码错误检查
CN110196783A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 使用ecc引擎执行可重配置的错误校正操作的存储系统

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7823043B2 (en) * 2006-05-10 2010-10-26 Sandisk Il Ltd. Corruption-resistant data porting with multiple error correction schemes
CA2672100A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8120989B2 (en) * 2007-06-25 2012-02-21 Qualcomm Incorporated Concurrent multiple-dimension word-addressable memory architecture
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8301963B2 (en) * 2007-10-23 2012-10-30 Spansion Llc Low-density parity-check code based error correction for memory device
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
JP4978576B2 (ja) * 2008-07-03 2012-07-18 株式会社Jvcケンウッド 符号化方法および符号化装置ならびに復号方法および復号装置
US8458536B2 (en) 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8166368B2 (en) * 2009-02-24 2012-04-24 International Business Machines Corporation Writing a special symbol to a memory to indicate the absence of a data signal
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8572460B2 (en) * 2009-03-17 2013-10-29 Broadcom Corporation Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein
US20100241923A1 (en) * 2009-03-17 2010-09-23 Broadcom Corporation Communication device employing LDPC (Low Density Parity Check) coding with Reed-Solomon (RS) and/or binary product coding
US20100251076A1 (en) * 2009-03-27 2010-09-30 Chao-Yi Wu Storage controller having soft decoder included therein, related storage control method thereof and system using the same
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8671328B2 (en) * 2011-08-15 2014-03-11 Marvell World Trade Ltd. Error correction code techniques for matrices with interleaved codewords
US8996952B2 (en) * 2012-01-04 2015-03-31 Marvell World Trade Ltd. High-throughput iterative decoding's defect scan in retry mode of storage system channel
US8954824B2 (en) * 2012-02-28 2015-02-10 Micron Technology, Inc. Error detection or correction of stored signals after one or more heat events in one or more memory devices
US8949704B2 (en) * 2012-03-22 2015-02-03 Lsi Corporation Systems and methods for mis-correction correction in a data processing system
US8327185B1 (en) * 2012-03-23 2012-12-04 DSSD, Inc. Method and system for multi-dimensional raid
US8854759B2 (en) 2012-04-24 2014-10-07 International Business Machines Corporation Combined soft detection/soft decoding in tape drive storage channels
CN102708028B (zh) * 2012-05-18 2015-01-07 中国人民解放军第二炮兵装备研究院第四研究所 一种可信冗余容错计算机系统
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9558782B2 (en) 2012-05-29 2017-01-31 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US9190076B2 (en) 2012-05-29 2015-11-17 International Business Machines Corporation Data format using an efficient reverse concatenated modulation code for magnetic tape recording
US9178534B2 (en) 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9041428B2 (en) 2013-01-15 2015-05-26 International Business Machines Corporation Placement of storage cells on an integrated circuit
US20140201599A1 (en) * 2013-01-15 2014-07-17 International Business Machines Corporation Error protection for integrated circuits in an insensitive direction
US9021328B2 (en) 2013-01-15 2015-04-28 International Business Machines Corporation Shared error protection for register banks
US9201727B2 (en) 2013-01-15 2015-12-01 International Business Machines Corporation Error protection for a data bus
US9043683B2 (en) 2013-01-23 2015-05-26 International Business Machines Corporation Error protection for integrated circuits
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9166627B2 (en) 2013-08-07 2015-10-20 International Business Machines Corporation Combination error and erasure decoding for product codes
US10275624B2 (en) * 2013-10-29 2019-04-30 Hand Held Products, Inc. Hybrid system and method for reading indicia
US9436550B2 (en) * 2013-10-31 2016-09-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for internal disk drive data compression
US9606868B2 (en) 2015-05-04 2017-03-28 International Business Machines Corporation Encoding and writing of data on multitrack tape
US9712188B2 (en) * 2015-05-04 2017-07-18 International Business Machines Corporation Decoding data stored with three orthogonal codewords
US10587288B1 (en) * 2015-06-04 2020-03-10 Marvell International Ltd. Systems and methods for iterative coding of product codes in nand FLASH controllers
US9792176B2 (en) 2015-11-13 2017-10-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in memory system
KR20180003320A (ko) * 2016-06-30 2018-01-09 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
CN107483188A (zh) * 2017-08-07 2017-12-15 浪潮(北京)电子信息产业有限公司 一种密钥安全存储方法及系统
CN107682020B (zh) * 2017-10-26 2020-09-04 北京邮电大学 一种基于Turbo码的编码、解码方法及装置
US10831596B2 (en) * 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US20190317857A1 (en) * 2019-04-26 2019-10-17 Intel Corporation Technologies for providing error correction for row direction and column direction in a cross point memory
TWI783895B (zh) * 2022-04-01 2022-11-11 國立勤益科技大學 隨機式rs碼之qr碼驗証系統及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6150293A (ja) * 1984-08-17 1986-03-12 Fujitsu Ltd 半導体記憶装置
US6017496A (en) * 1995-06-07 2000-01-25 Irori Matrices with memories and uses thereof
US5719884A (en) * 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
JPH10334607A (ja) 1997-05-30 1998-12-18 Matsushita Electric Ind Co Ltd 磁気ディスク装置
JP3165099B2 (ja) * 1998-02-05 2001-05-14 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 誤り訂正方法及びシステム
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US20020034269A1 (en) * 2000-07-28 2002-03-21 Victor Demjanenko Use of soft-decision or sum-product inner coders to improve the performance of outer coders
GB2370477B (en) * 2000-12-22 2004-03-03 Tandberg Television Asa Method and apparatus for encoding a product code
US7003712B2 (en) * 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
CA2493610C (en) * 2002-07-29 2014-01-14 Robert Halford Multi-dimensional data protection and mirroring method for micro level data
JP4056488B2 (ja) * 2004-03-30 2008-03-05 エルピーダメモリ株式会社 半導体装置の試験方法及び製造方法
US7415651B2 (en) * 2004-06-02 2008-08-19 Seagate Technology Data communication system with multi-dimensional error-correction product codes
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US7802163B2 (en) * 2006-07-31 2010-09-21 Agere Systems Inc. Systems and methods for code based error reduction

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102934171B (zh) * 2010-06-04 2016-05-11 美光科技公司 具有非易失性存储器的多级系统中的高级逐位操作及设备
CN102934171A (zh) * 2010-06-04 2013-02-13 美光科技公司 具有非易失性存储器的多级系统中的高级逐位操作及设备
CN104067233B (zh) * 2011-11-18 2016-12-14 桑迪士克科技有限责任公司 用于多分层错误校正的系统、方法和设备
CN104067233A (zh) * 2011-11-18 2014-09-24 桑迪士克企业知识产权有限责任公司 用于多分层错误校正的系统、方法和设备
CN102710264B (zh) * 2012-06-29 2014-11-19 华为技术有限公司 译码方法和装置
CN102710264A (zh) * 2012-06-29 2012-10-03 华为技术有限公司 译码方法和装置
CN103198869A (zh) * 2013-03-04 2013-07-10 中国科学院长春光学精密机械与物理研究所 一种空间ccd图像存储器nand闪存纠错编解码器及纠错方法
CN103198869B (zh) * 2013-03-04 2016-04-27 中国科学院长春光学精密机械与物理研究所 一种空间ccd图像存储器nand闪存纠错编/解码器及纠错方法
CN103618584A (zh) * 2013-04-28 2014-03-05 张涛 电力线通信信道编译码方法及系统
CN103309766A (zh) * 2013-06-20 2013-09-18 中国科学院微电子研究所 基于并行编码译码的循环汉明码的纠错方法
CN103338046B (zh) * 2013-06-21 2016-03-30 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103338046A (zh) * 2013-06-21 2013-10-02 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN107408069A (zh) * 2015-03-27 2017-11-28 英特尔公司 用于检测和缓解闪速存储器中的位线开路的装置和方法
CN107408069B (zh) * 2015-03-27 2021-07-06 英特尔公司 用于检测和缓解闪速存储器中的位线开路的装置和方法
CN108370252A (zh) * 2015-12-14 2018-08-03 国际商业机器公司 对乘积码诊断的后解码错误检查
CN107743036A (zh) * 2016-08-24 2018-02-27 中国科学院微电子研究所 Bch码的译码方法
CN107743036B (zh) * 2016-08-24 2020-09-25 中国科学院微电子研究所 Bch码的译码方法
CN108073471A (zh) * 2016-11-15 2018-05-25 西部数据技术公司 链接的存储系统和主机系统错误校正码
CN110196783A (zh) * 2018-02-26 2019-09-03 爱思开海力士有限公司 使用ecc引擎执行可重配置的错误校正操作的存储系统

Also Published As

Publication number Publication date
TW200816212A (en) 2008-04-01
US8566664B2 (en) 2013-10-22
CN101501784B (zh) 2013-10-23
US20120042224A1 (en) 2012-02-16
WO2008021045A2 (en) 2008-02-21
US20080034272A1 (en) 2008-02-07
WO2008021045A3 (en) 2008-04-17
TWI451430B (zh) 2014-09-01
US8046660B2 (en) 2011-10-25

Similar Documents

Publication Publication Date Title
CN101501784B (zh) 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法
US8381069B1 (en) Absorb decode algorithm for 10GBase-T LDPC decoder
JP5232014B2 (ja) 符号化及び信号処理機能を有するフラッシュメモリ
US9129654B1 (en) Systems and methods for data-path protection
US8255763B1 (en) Error correction system using an iterative product code
US7644337B2 (en) Error correction device, encoder, decoder, method, and information storage device
US7340665B2 (en) Shared redundancy in error correcting code
CN100386735C (zh) 对存储于存储设备中的数据进行编码和解码的方法
US8055982B2 (en) Error correction system and method
CN1779838B (zh) 执行可变数量的纠错重复的数字信号处理方法和装置
CN108370252B (zh) 对乘积码诊断的后解码错误检查
JPH11508712A (ja) ディスクドライブバッファ内のデータを保護するための方法および装置
EP0864125A1 (en) Data integrity and cross-check code with logical block address
JP2008300020A (ja) 再生装置
US7694209B2 (en) Decoding device for decoding codeword
US7478313B2 (en) Encoding apparatus and method, and decoding apparatus and method for error correction
CN101405810B (zh) 在闪存中用于纠错的方法和系统
US8458553B2 (en) Systems and methods for utilizing circulant parity in a data processing system
US20070198904A1 (en) Error correction processing apparatus and error correction processing method
US8910013B1 (en) Methods and apparatus for providing multi-layered coding for memory devices
US8315003B1 (en) Bit patterned magnetic media data format
US8176395B2 (en) Memory module and writing and reading method thereof

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

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

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

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Michael

Patentee before: MARVELL WORLD TRADE Ltd.

TR01 Transfer of patent right