用于与非闪存的涡轮乘积码的制作方法

文档序号:12612781阅读:150来源:国知局
用于与非闪存的涡轮乘积码的制作方法与工艺

本申请要求于2015年12月8日提交的标题为“用于与非闪存的涡轮乘积码”(“TURBO PRODUCT CODES FOR NAND FLASH”)的第14/962,818号美国非临时申请的优先权,其全部内容通过引用合并于此。

技术领域

本公开的示例性实施例涉及一种信号处理和编码技术。



背景技术:

磁性储存技术最常用于储存数据,但对当前电子设备来说,更小的重量和更快的读取/写入操作需求使得磁性储存技术不够理想。基于NAND的技术能够满足对高密度数据储存设备的要求,但这种技术很昂贵。存在降低基于NAND的技术的成本同时维持性能水平的需要。



技术实现要素:

本发明的方面包括一种对数据块中的数据进行编码的方法。该方法可以包括:从对数据块中的所有数据位的XOR以及对数据块中除最后一行以外的所有行的所有行奇偶校验位的XOR来产生第一XOR奇偶校验位;将第一XOR奇偶校验位储存在最后一行中;以及从对数据块中的所有列的所有列奇偶校验位的XOR以及对最后一行的奇偶校验位的XOR来产生第二XOR奇偶校验位。

本发明的进一步的方面包括一种用于对数据块中的数据进行编码的装置。该装置可以包括编码器,该编码器被配置为:从对数据块中的所有数据位的XOR以及对数据块中除最后一行以外的所有行的所有行奇偶校验位的XOR来产生第一XOR奇偶校验位;将第一XOR奇偶校验位储存在最后一行中;以及从对数据块中的所有列的所有列奇偶校验位的XOR以及对最后一行的奇偶校验位的XOR来产生第二XOR奇偶校验位。

附图说明

图1图示了包括应用了本发明的实施例的存储系统的数据处理系统。

图2是根据本发明的实施例的包括编码器和解码器的存储系统的框图。

图3是图示根据本发明的方面的编码处理的示图。

图4是表示根据本发明的方面的编码处理的示图。

图5、图6、图7、图8、图9A、图9B和图10是图示根据本发明的方面的受阻错误图样的示图。

图11是图示根据本发明的方面的编码和解码方案的性能的图。

具体实施方式

以下将参照附图来更详细地描述各种实施例。然而,本公开可以以不同的形式实施,而不应当被解释为局限于所陈述的实施例。相反地,这些实施例被提供使得本公开将是彻底且完整的,并且将本发明的范围充分传达给本领域技术人员。贯穿本公开,相同的附图标记在本发明的各种附图和实施例中指相同的部分。

本发明可以以很多方式来实施,包括作为:过程;装置;系统;物的组合;在计算机可读储存媒介上实施的计算机程序产品;和/或处理器(诸如被配置用来运行储存在耦接至处理器的存储器上的指令和/或由耦接至处理器的存储器提供的指令的处理器)。在此说明书中,这些实施方式或本发明可以采用的任何其他形式可以被称作技术。一般地,可以在本发明的范围之内改变所公开的过程中的步骤的次序。除非另外说明,否则被描述为被配置用来执行任务的组件(诸如处理器或存储器)可以被实施为暂时被配置用来在给定时间执行该任务的常规组件或被制造用来执行该任务的特定组件。如本文中所使用的,术语“处理器”指被配置用来处理数据(诸如计算机程序指令)的一种或更多种器件、电路和/或处理核心。

一种降低基于NAND的技术的成本的方法包含缩减工艺,但缩减工艺降低性能。可以通过使用高级信号处理和编码技术来补偿这种性能损失。博斯-查德胡里-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)码和低密度奇偶校验(LDPC)码已经被用来保证数据完整性。对于BCH码,主要缺点在于它们不能用于软判决解码,这使得这些编码不理想。LDPC码提供良好的硬判决解码性能和软判决解码性能。然而,LDPC解码器的复杂度相当高,这使得此解决方案对于硬件实施而言太昂贵。下面公开和描述了高级编码技术,其可以利用较低硬件复杂度来提供高性能收益。

涡轮乘积码(TPC)被认为是可以以比LDPC码低得多的硬件复杂度来提供显著收益的高级编码技术。在硬判决解码中,相比于BCH码和LDPC码,TPC给出显著的性能收益。在软判决解码中,TPC实现接近于LDPC码的性能收益。

TPC被认为是以比LDPC码低得多的硬件复杂度来提供显著收益的高级编码技术。在硬判决解码中,相比于BCH码和LDPC码,TPC给出显著的性能收益。在软判决解码中,TPC实现接近于LDPC码的性能收益。

因此,在使用涡轮乘积码的系统中,需要高级编码技术来提供性能和吞吐量(throughput)方面的收益。

在一些实施例中,本发明将被应用至图1中所示的数据处理系统。

图1图示了包括应用了本发明的实施例的存储系统的数据处理系统100。图1中所示的数据处理系统100仅用于说明。在不脱离本公开的范围的情况下,可以使用数据处理系统100的其他结构。虽然图1图示了数据处理系统100的一个示例,但可以对图1作出各种改变。例如,在任何合适的布置中,数据处理系统100可以包括任何元件,或者可以不包括任何元件。

参见图1,数据处理系统100可以包括主机102和存储系统110。

主机102可以包括例如:诸如移动电话、MP3播放器和膝上型电脑的便携式电子设备或诸如台式电脑、游戏机、TV和投影仪的电子设备。

存储系统110可以响应于来自主机102的请求来操作,具体地,储存要由主机102访问的数据。换言之,存储系统110可以用作主机102的主存储系统或辅助存储系统。存储系统110可以根据要与主机102电耦接的主机接口的协议来用各种类型的储存设备中的任意一种来实施。存储系统110可以用各种类型的储存设备(诸如固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩减尺寸MMC(RS-MMC)和微型MMC、安全数字(SD)卡、迷你SD和微型SD、通用串行总线(USB)储存设备、通用快闪储存(UFS)设备、紧凑式闪存(CF)卡、智能媒体(SM)卡和记忆棒等)中的任意一种来实施。

用于存储系统110的储存设备可以用易失性存储器件(诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM))或非易失性存储器件(诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和电阻式RAM(RRAM))来实施。

存储系统110可以包括存储器件150和控制器130,存储器件150储存要由主机102访问的数据,控制器130控制将数据储存在存储器件150中。

控制器130和存储器件150可以被集成至一个半导体器件中。例如,控制器130和存储器件150可以被集成至一个半导体器件中,并配置固态驱动器(SSD)。当存储系统110用作SSD时,可以显著增加与存储系统110电耦接的主机102的操作速度。

控制器130和存储器件150可以被集成至一个半导体器件中,并配置存储卡。控制器130和存储器件150可以被集成至一个半导体器件中,并配置诸如个人计算机存储卡国际协会(PCMCIA)卡、紧凑式闪存(CF)卡、智能媒体(SM)卡(SMC)、记忆棒、多媒体卡(MMC)、RS-MMC和微型MMC、安全数字(SD)卡、迷你SD、微型SD和SDHC以及通用快闪储存(UFS)器件的存储卡。

又例如,存储系统110可以配置计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航仪、黑匣子、数字相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字录音机、数字音频播放器、数字图片记录器、数字图片播放器、数字录像机、数字视频播放器、配置数据中心的储存器、能够在无线环境下收发信息的设备、配置家庭网络的各种电子设备中的一种、配置计算机网络的各种电子设备中的一种、配置远程信息处理的各种电子设备中的一种、RFID设备或者配置计算系统的各种组成元件中的一种。

存储系统110的存储器件150可以在电源被中断时保持储存的数据,具体地,在写入操作期间储存从主机102提供的数据,以及在读取操作期间将储存的数据提供给主机102。存储器件150可以包括多个存储块152、154和156。存储块152、154和156中的每个可以包括多个页。页中的每个可以包括电耦接了多个字线(WL)的多个存储单元。存储器件150可以为非易失性存储器件,例如,快闪存储器。快闪存储器可以具有三维(3D)层叠结构。

存储系统110的控制器130可以响应于来自主机102的请求来控制存储器件150。控制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机102提供的数据储存在存储器件150中。为此,控制器130可以控制存储器件150的总体操作,诸如读取操作、写入操作、编程操作和擦除操作。

详细地,控制器130可以包括主机接口单元132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器控制器(MC)142和存储器144。

主机接口单元132可以处理从主机102提供的命令和数据,且可以通过下面的各种接口协议中的至少一种来与主机102通信:诸如通用串行总线(USB)、多媒体卡(MMC)、外围组件互连-快速(PCI-E)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小盘接口(ESDI)和集成驱动电路(IDE)。

ECC单元138可以在读取操作期间检测并校正从存储器件150读取的数据中的错 误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元138不能校正错误位,且可以输出指示校正错误位失败的错误校正失败信号。

ECC单元138可以基于下面的编码调制来执行错误校正操作:诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格母(BCH,Bose-Chaudhuri-Hocquenghem)码、涡轮码、涡轮乘积码(TPC)、里德-索罗门(RS,Reed-Solomon)码、卷积码、递归系统码(RSC)、格码调制(TCM)和块码调制(BCM)等。ECC单元可以包括用于错误校正操作的所有电路、系统或器件。

PMU 140可以提供并管理用于控制器130的电源,即,用于控制器130中包括的组成元件的电源。

MC 142可以用作控制器130与存储器件150之间的存储器接口以允许控制器130响应于来自主机102的请求来控制存储器件150。MC 142可以产生针对存储器件150的控制信号,并在处理器134的控制下处理数据。当存储器件150是诸如NAND快闪存储器的快闪存储器时,MC 142可以产生针对NAND快闪存储器150的控制信号,并在处理器134的控制下处理数据。

存储器144可以用作存储系统110和控制器130的工作存储器,并储存用于驱动存储系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器件150。例如,控制器130可以将从存储器件150读取的数据提供给主机102,以及将从主机102提供的数据储存在存储器件150中。当控制器130控制存储器件150的操作时,存储器144可以储存由控制器130和存储器件150使用的数据以用于诸如读取操作、写入操作、编程操作和擦除操作的操作。

存储器144可以用易失性存储器来实施。存储器144可以用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。如上所述,存储器144可以储存由主机102和存储器件150使用的数据以用于读取操作和写入操作。为了储存该数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器和映射缓冲器等。

处理器134可以控制存储系统110的常规操作,以及响应于来自主机102的写入请求或读取请求来控制针对存储器件150的写入操作或读取操作。处理器134可以驱动被称作闪存转换层(FTL)的固件来控制存储系统110的常规操作。处理器134可以用微处理器或中央处理单元(CPU)来实施。

管理单元(未示出)可以被包括在处理器134中,且可以执行对存储器件150的坏 块管理。管理单元可以找出存储器件150中包括的坏存储块(其不满足进一步使用的条件),并对该坏存储块执行坏块管理。当存储器件150是快闪存储器(例如,NAND快闪存储器)时,在写入操作期间(例如,在编程操作期间)可能因NAND逻辑功能的特性而出现编程失败。在坏块管理期间,编程失败的存储块或坏存储块中的数据可以被编程至新的存储块中。此外,因编程失败而导致的坏块严重降低具有3D层叠结构的存储器件150的利用效率和存储系统110的可靠性,从而需要可靠的坏块管理。

图2是根据本发明的实施例的包括编码器和解码器的存储系统200的框图。例如,存储系统200对应于图1中所示的存储系统110。为了清楚,此处未示出图1中的与本发明的实施例直接相关的组件。

参见图2,存储系统200包括储存器210、写入控制器220和读取控制器230。例如,储存器210对应于图1中所示的存储器件150,以及写入控制器220和读取控制器230对应于图1中所示的ECC单元138。

储存器210可以包括诸如NAND闪存的固态储存器。写入控制器220从图1中的主机102接收数据,并处理储存器210上的数据。读取控制器230读取储存器210上的数据,并处理该数据。分别地,写入控制器220包括TPC编码器222,以及读取控制器230包括TPC解码器232,作为用于TPC方案的组件。

如此处所述,TPC码包括Nr个行码和Nc个列码。它们全部都是具有以下参数的BCH码:

行码:(nr,kr,Tr,mr);

列码:(nc,kc,Tc,mc);

XOR码:(nx,kx,Tx,mx);

其中,n表示编码的长度,k表示编码的维度,T表示编码的错误校正容量,以及m表示编码的有限域大小(finite field-size)。被组合用来产生列奇偶校验位的列数通过C#来指定,其中,C#是被组合的列数。

图3是图示根据本发明的一个实施例的TPC编码方案的流程图。

图4是表示矩形数据块的示例的示图。

下面参照图3和图4来描述编码方案。

数据300可以布置在矩形块中(见图4)。数据300包括行数据和列数据。可以用分量码(constituent code)来对第一行(行1至行R-1)编码。在一个实施例中,可以使用BCH作为分量码来对第一行编码,尽管本领域技术人员将明白,本发明不局限于对分量码的这种选择。

产生行1至行R-1的行奇偶校验位302,以及对所有的数据位和所有的行奇偶校验位(即,就此而言,所有的行奇偶校验位包括行1至行(R-1)的奇偶校验位)进行异或(XOR)。XOR位的数量通过C#来给出。由于行奇偶校验位将包含Tr*mr,且Tr*mr将不是C#的整数倍,因此可以对行奇偶校验位进行零填充(zero pad)以使得它们是C#的整数倍。例如,如果行奇偶校验位长度是42且C#给定为24,则可以对6个位进行零填充以使得行奇偶校验位是48位长,且可以从行奇偶校验位构建长度为24的两个块。

对数据300和行奇偶校验位302进行XOR,且该XOR将被包括在数据的最后一行406中。可以将此XOR认作XOR奇偶校验位1(306,450)。XOR奇偶校验位1(306,450)将具有长度C#

XOR奇偶校验位1(306,450)被包括在数据的最后一行406(即,行R)中,以及产生最后一行奇偶校验位(308,460)。值得注意的是,包括XOR奇偶校验位1(306,450)的最后一行奇偶校验位(308,460)被产生。

通过对列进行组合来产生列奇偶校验位304。对于给定的列数C(例如,C#),列奇偶校验位可以包括列奇偶校验位1 440、列奇偶校验位2 442、列奇偶校验位(C-1)444和列奇偶校验位C 446。在此方案的示例中,在包括XOR奇偶校验位1(450)的情况下产生列奇偶校验位(C-1)444,以及在包括行奇偶校验位中的每个的情况下产生列奇偶校验位C 446(其包括行R奇偶校验位460,且如上所述,行R奇偶校验位在包括XOR奇偶校验位1 450的情况下产生)。假设对于行奇偶校验位和列奇偶校验位,校正容量(T)和伽罗瓦域(Galois field)(m)相同。

可以通过对所有的列奇偶校验位和最后一行奇偶校验位进行XOR来产生XOR奇偶校验位2(310,470)。XOR奇偶校验位2(310,470)的长度被给定为Tr*mr(=Tc*mc)。为了简化,假设Tr*mr=Tc*mc。如果Tr*mr≠Tc*mc,则可以使用零填充来产生XOR奇偶校验位2(310,470)。

可以将另一分量码应用至XOR奇偶校验位2(310,470)(例如,对XOR奇偶校验位2(312,480)的奇偶校验位),XOR奇偶校验位2(310,470)的编码参数被给定为(nx,kx,Tx,mx)。总体而言,用于XOR奇偶校验位2的此BCH码的伽罗瓦域相当小,因此该编码的编码/解码的复杂度最小。应当注意的是,对XOR奇偶校验位2的此奇偶校 验位仅被写入至NAND。在这种方法中,可以通过不写入XOR奇偶校验位2来节约奇偶校验位。此方案的奇偶校验位开销(overhead)被给定为:

所提出的方案的总的奇偶校验位=Tr*mr+Tc*mc+C#+Tx*mx

相比于先前实施的方案,除行奇偶校验位和列奇偶校验位以外的XOR奇偶校验位开销(C#+Tx*mx)相当小。因此,此方案相比于其他方案具有显著的性能收益。

参见图5至图10,描述了针对以上所公开的编码方案的各种解码处理。解码程序类似于规则TPC解码,在规则TPC解码中,列解码以迭代循环接着行解码,直到数据被成功解码或者迭代次数超过最大迭代次数为止。存在特定的错误图样,即使该错误图样的权重(weight)小,该错误图样也将在解码中受阻。

在图5至图8中,示出了(1,1)受阻错误图样(stuck error pattern)。(1,1)受阻错误图样是在其中正好存在一行和一列故障的受阻错误图样。在图9A和图9B中,示出了(2,2)受阻错误图样,其中,存在两行和两列故障。在图10中,示出了(0,2)受阻错误图样。

在图5中,示出了数据中的可能在解码中受阻的错误图样500。在此示例中,假设行编码和列编码的错误校正容量等于2。尽管错误图样500的权重是4,但其将在解码中受阻。可以使用XOR奇偶校验位1 450来校正错误图样500。因为故障行和故障列是已知的,所以行/列相交部分是已知的。首先,对除故障的行/列相交部分之外的所有数据、行奇偶校验位和XOR奇偶校验位1进行XOR。此产生的XOR奇偶校验位可以取代故障的行/列相交部,这将校正行/列相交部分中的所有错误位。

类似地,在图6中,示出了受阻错误图样。受阻错误图样600存在于行奇偶校验位部分中。使用以上参照图5所描述的解码处理,也可以校正受阻错误图样600。

在图7中,示出了存在于第R行奇偶校验位中的受阻错误图样700。为了校正此图样700,可以在解码端处产生XOR奇偶校验位2,通过对第R行奇偶校验位和所有的列奇偶校验位进行XOR来获得XOR奇偶校验位2。在此XOR奇偶校验位2上运行BCH解码,该BCH解码将校正所有的错误,因为对XOR奇偶校验位2的BCH具有大的校正容量。一旦获得了正确的XOR奇偶校验位2,此奇偶校验位就可以用来校正受阻图样700。

在图8中,示出了在列奇偶校验部分中的受阻错误图样800,该受阻图样800可以通过以上参照图7所描述的处理来校正。这样,在解码程序中存在的所有(1,1)受阻错误图样都可以被解码。

接下来参见图9A,示出了(2,2)受阻错误图样。即,数据包括错误图样900和错误图样902。XOR奇偶校验位1和XOR奇偶校验位2不能用来校正这种受阻错误图样900、902。在图9A中,为了简单而示出了C#等于6的示例。目标是通过识别最可能的错误位置来校正这种受阻错误图样900、902。一旦错误位置已知,就可以使用简单的翻转算法来校正这种受阻错误图样900、902。在图9A中,受阻错误图样具有出现在行和列相交部分中的不同位置处的6个错误。

由于正确的XOR奇偶校验位1已知,因此可以找到对所有数据和行奇偶校验位(行1至行(R-1))的XOR,并将其与XOR奇偶校验位1进行比较。在至多6个位置处XOR奇偶校验位1与这些计算出的XOR奇偶校验位不同。现在,错误的位置已知,然而错误在行/列相交部分中的准确位置未知。

如图9B中所示,在(2,2)受阻错误图样中,存在可能具有错误的4个行/列相交部分(910,912,914,916)。可以使用位翻转处理(例如,Chase解码),在位翻转处理中,在通过XOR奇偶校验位1确定的错误位位置处的位被翻转。在Chase解码中,将尝试所有的2^翻转位(flip_bits),其中翻转位(flip_bits)是从储存的xor或数据计算的xor检测到的翻转的位的数量。

在本发明的另一示例中,将从翻转位选择一个位(例如,nchoosek(翻转位,1)),将在所有故障的n*m个受阻错误相交部分处尝试这种位翻转,然后尝试解码。接下来,将对n*m个故障的受阻错误图样尝试nchoosek(翻转位,2),且将对所有的n*m个故障的受阻错误图样重复此处理(例如,nchoosek(翻转位,翻转位))。必须在故障的相交部分内部作出所有的校正,以避免在错误相交部分外部引入更多的错误。

在第一次运行中,可以对所有的4个行/列故障相交部分(910,912,914,916)的6个错误位置位中的单个位进行翻转。在一个位翻转之后,可以对故障的行/列解码使用规则解码。在解码时,保证在BCH解码期间解码的位必须位于行/列故障相交部分中。按照这种方式,不会在TPC结构中引入误校正。

在图9A中所示的错误图样中,第一行/列相交部分中的一个位翻转是不够的。然后利用一个位翻转来处理第二行/列相交部分,这将对该行编码进行解码并满足列编码。一旦一个行/列相交部分中的错误被校正,受阻错误图样就变成(1,1)错误图样,该(1,1)错误图样可以通过使用XOR奇偶校验位1来容易地校正。

如果通过在所有故障的行/列相交部分中尝试所有的单个位翻转而图样未被解码,则此图样通常通过单个位翻转而得到解码。可以对故障的行/列相交部分尝试两个位或更多个位翻转。

在图9A和图9B中,C#的值等于6。然而,在规则TPC码设计中,C#的值更大。在那些类型的情况中,相比于随机位翻转处理,来自所公开的位翻转算法的优势将是实质性的。与随机位翻转不同的是,通过XOR奇偶校验位1和XOR奇偶校验位2的帮助,最可能的错误位置是已知的,这显著降低了整合所提出的方案的复杂度。以上所公开的方案可以容易地推广为(n,n)受阻错误图样,在(n,n)受阻错误图样中,n行和n列有故障。然而,如果n的值大,则复杂度将增大。因此,在硬件复杂度之内的图样使用这种提出的方案来校正。

接下来参见图10,示出了(0,2)的备选错误图样。为了简化解码,也可以进行对(0,k)受阻错误图样解码的备选方法。在(0,k)受阻错误图样(例如,1000,1002)中,所有的行是正确的,而k个列是故障的。这种图样可以使用正确的数据来校正。数据的正确性通过XOR奇偶校验位1和行奇偶校验位来验证。可以通过数据来产生(k-1)个列奇偶校验位,以及可以通过XOR奇偶校验位2来产生最后故障的列奇偶校验位。被校正的第k列奇偶校验位可以从第k列数据来验证。如果第k列数据的奇偶校验位与被校正的第k奇偶校验位匹配,则宣布TPC被成功解码。XOR奇偶校验位2的校正容量不是很大,因此可以应用该程序来对(0,k)受阻错误图样解码。图10中所示的受阻错误图样1000、1002可以通过上述方案来校正。一般而言,(0,k)出现的可能性相当低,所以在解码中很少使用所提出的方案。

虽然公开了对(n,n)和(0,k)的错误码图样的解码,但本文中所描述的处理也可以用来对(n,m)、(m,n)等的错误码图样进行解码。

作为进一步描述,对(n,m)故障图样(其中,n行和m列有故障)的解码可以执行如下。首先,计算对所有数据和行奇偶校验位的XOR,并将其与储存的奇偶校验位(例如,XOR_data)进行比较。一旦接收到XOR_data,就将其与XOR_stored进行比较以找出错误位位置。现在错误位位置是已知的,但是需要确定这些错误位于n*m个故障相交部分中的何处。这样,采用从上述比较中找到的错误位,并在所有的n*m个故障相交部分中的特定位置处的这些位被翻转。如果分量码字得到解码,且所有的校正都在故障的分量码字之内做出,则校正被应用。如果任意一行码字通过尝试校正对应的列码字经由对位进行翻转而被校正,则可以执行进一步的检查,以及在故障的相交部分中做出所有的校正。可以根据来自XOR_data与XOR_stored的不匹配的位数量而同时对1个错误位、2个错误位、3个错误位等进行这些位翻转。

此外,对于(0,k)错误图样,解码处理可以执行如下。如果所有的行合格,且XOR_stored与对数据和行奇偶校验位计算出的XOR匹配,则k个故障的列码字被编码以得到对应的k个列奇偶校验位。在这种情况下,所有的错误位于奇偶校验位中,以及 可以通过XOR奇偶校验位2来确定以此方式产生的奇偶校验位的正确性。

测试以上所公开的方案的性能,并与2K BCH码进行比较。基于以上所公开的方案构建的TPC码的值被测试为:

数据长度=32864。

允许的奇偶校验位=308字节。

行编码:(nr,kr,Tr,mr)=(1310,1266,4,11)。

列编码:(nc,kc,Tc,mc)=(1318,1274,4,11)。

Nr=26,Nc=27,以及C#=49。

XOR奇偶校验位2上的编码:(nx,kx,Tx,mx)=(121,44,11,7)。

该性能在图11中示出。图11中的图1100示出2k BCH的性能1102和如上所述的方案的性能1104。编码设计中的发现:具有伽罗瓦域(m)和等于(11,4)的校正容量(T)的编码通过显著缩短的位而已经合适。更大的校正容量降低误校正容量,以及缩短的位可以用于误校正检测。如果在BCH解码期间在缩短的位中存在翻转的位,则知道BCH解码器已经误校正了码字,而在TPC解码中可以避免这种误校正。

虽然已经参照本发明的示例性实施例而特别地示出和描述了本发明,但本领域技术人员将理解的是,在不脱离由所附权利要求书中所限定的本发明的精神和范围的情况下,在其中可以作出形式和细节上的各种改变。因此,前述内容仅作为示例,而非意在进行限制。例如,本文中所示出并描述的元件的任何数目仅作为示例。本发明仅由所附权利要求及其等价物来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1