首页> 中国专利> 用于利用乘积码来纠正非易失性存储器中的错误的系统和方法

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

摘要

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

著录项

  • 公开/公告号CN101501784A

    专利类型发明专利

  • 公开/公告日2009-08-05

    原文格式PDF

  • 申请/专利权人 马维尔国际贸易有限公司;

    申请/专利号CN200780029503.X

  • 发明设计人 吴子宁;潘塔斯·苏塔迪嘉;

    申请日2007-08-06

  • 分类号G11C29/52(20060101);G06F11/10(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人李晓冬;南霆

  • 地址 巴巴多斯圣迈克尔

  • 入库时间 2023-12-17 22:27:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    专利权的转移 IPC(主分类):G11C29/52 登记生效日:20200424 变更前: 变更后: 申请日:20070806

    专利申请权、专利权的转移

  • 2013-10-23

    授权

    授权

  • 2009-10-07

    实质审查的生效

    实质审查的生效

  • 2009-08-05

    公开

    公开

说明书

相关申请的交叉引用

本申请是于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可通过如下矩阵表示,

其中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)。移动设备可包括个人数字助理、媒体播放器、膝上式计算机、游戏机或其他的移动计算设备。

本领域技术人员现在可从上述描述认识到,可以以各种形式实现本公开的广泛教导。因此,虽然本公开包括具体示例,但是不应当这样限制本公开的真正范围,因为在研究了附图、说明书和权利要求后,其他修改对技术从业人员而言就会变得清楚。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号