错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序的制作方法

文档序号:6537308阅读:128来源:国知局
错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序的制作方法
【专利摘要】本发明提供一种可以高速度精确地纠正数据中的错误的错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序,所述错误检测与纠正装置包括:第一码错误检测部,其用于检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的、并且是含有多个部分数据的码字;及第二码纠错部,其用于基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
【专利说明】错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序
【技术领域】
[0001]本发明涉及一种错误检测与纠正装置、错误检测与纠正方法、信息处理器及程序,该程序在由计算机执行时使得计算机在错误检测与纠正装置中实施错误检测与纠正方法。更具体而言,本发明涉及分别使用多种编码系统的一种错误检测与纠正装置、错误检测与纠正方法及信息处理器以及程序,该程序在由计算机执行时使得计算机在错误检测与纠正装置中实施错误检测与纠正方法。
【背景技术】
[0002]当再现存储于诸如磁光记录盘、硬盘及非易失性存储器等数据记录与再现装置中的数据时,所存储数据可因数据记录与再现装置的损坏、热噪声等而被损坏且无法被正确读取。为了处理此类数据损坏,通常的数据记录装置将要存储的数据编码为错误检测与纠正码(ECC),并保持ECC。当再现数据时,使得数据记录装置使用ECC来检测并纠正数据中的错误。
[0003]在编码时,可使用多个编码系统以提高纠错能力。例如,提出了一种非易失性存储器,其将多个数据编码为分组码字,将这些各个分组码字编码为各个卷积码字,并随后保持所述卷积码字(例如,参阅第日本未经审查的专利申请公开2010-287305号)。在非易失性存储器已对各个分组码字执行纠错,且对分组码字之一的纠错已失败的情况下,非易失性存储器通过对含有纠错已失败的分组码字的卷积码字进行解码来可靠地纠正数据中的错误。
[0004]在上述技术中,纠正数据中的错误可能需要很长时间。在上述非易失性存储器中,对其中有多个分组码字被交错的序列作为用于编码的对象进行卷积编码。由于对如此交错的序列进行卷积编码,因而必须在对一个分组码字进行解码之前对所有卷积码字进行解码。因此,在上述非易失性存储器中,为了可靠地纠正数据,即使对一个分组码字的纠正已失败,必须纠正所有卷积码字。因此,纠正数据中的错误需要很长时间,且很难以高速度精确地纠正数据中的错误。
[0005]技术内容
[0006]本发明期望以高速度精确地纠正数据中的错误。
[0007]根据本发明的实施例,提供一种错误检测与纠正装置,其包括:第一码错误检测部,其用于检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的,并且是含有多个部分数据的码字;和第二码纠错部,其用于基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
[0008]根据本发明的实施例,提供一种错误检测与纠正方法,其包括:检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的,并且是含有多个部分数据的码字;以及基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
[0009]根据本发明的实施例,提供一种其中嵌入有程序的非暂存性有形记录媒介,所述计算机可读程序在由计算机执行时使得计算机实施一种方法,所述方法包括:检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的,并且是含有多个部分数据的码字;以及基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
[0010]因此,达到基于所述毗邻部分数据来纠正所述错误的效果。
[0011]此外,在根据本发明实施例的错误检测与纠正装置中,为所述多个部分数据中彼此毗邻的部分数据所共有的数据部分可为共同码字,且所述第二码纠错部可基于为所述一个部分数据与所述毗邻部分数据所共有的所述数据部分,纠正含有检测到所述错误的所述第一码字的所述一个部分数据中的所述错误。因此,达到基于为彼此毗邻的所述部分数据所共有的所述数据部分来纠正所述错误的效果。
[0012]此外,在根据本发明实施例的错误检测与纠正装置中,所述第二码纠正部可纠正所述毗邻部分数据中的错误,且当对所述毗邻部分数据的纠错成功时,所述第二码纠错部可基于所述毗邻部分数据来纠正由所述第一码错误检测部检测到的所述错误。因此,达到当对所述毗邻部分数据的纠错成功时基于所述毗邻部分数据来纠正所述错误的效果。
[0013]此外,在根据本发明实施例的错误检测与纠正装置中,当对所述毗邻部分数据的纠错已失败时,所述第二码纠错部可纠正新毗邻部分数据中的错误,且可判断对所述新毗邻部分数据的纠错是否成功,所述新毗邻部分数据是与所述毗邻部分数据毗邻的部分数据。因此,达到在对所述毗邻部分数据的纠错已失败的情况下使用与所述毗邻部分数据毗邻的部分数据作为所述新毗邻部分数据的效果。
[0014]在根据本发明的实施例的错误检测与纠正装置中,当未检测到含于所述毗邻部分数据中的所述第一码字中的错误时,所述第二码纠错部可基于所述毗邻部分数据来纠正由所述第一码错误检测部检测到的所述错误,且当检测到含于所述毗邻部分数据中的所述第一码字中的错误时,所述第二码纠错部可判断是否在含于新毗邻部分数据中的所述第一码字中检测到错误,所述新毗邻部分数据为与所述毗邻部分数据毗邻的部分数据。因此,达到在含于所述毗邻部分数据中的所述第一码字中检测到所述错误的情况下、将与所述毗邻部分数据毗邻的部分数据用作所述新毗邻部分数据的效果。
[0015]在根据本发明的实施例的错误检测与纠正装置中,所述第二码纠错部可在对所述毗邻部分数据的纠错已失败时纠正所述第二码字中的错误。因此,达到在对所述毗邻部分数据的纠错已失败的情况下纠正所述第二码字中的所述错误的效果。
[0016]在根据本发明的实施例的错误检测与纠正装置中,所述第二码纠错部可判断基于所述毗邻部分数据所执行的对所述错误的纠正是否成功,且当所述纠正已失败时,所述第二码纠错部可基于各自含有所述第一码字的第三码字来纠正所述错误。因此,达到在基于所述毗邻部分数据所执行的纠错已失败的情况下基于各自含有所述第一码字的所述第三码字来纠正所述错误的效果。[0017]在根据本发明的实施例的错误检测与纠正装置中,所述第二码字可为卷积码字,且所述第二码纠错部可基于对所述毗邻部分数据所执行的卷积运算的结果来纠正所述错误。因此,达到基于对所述毗邻部分数据所执行的所述卷积运算的所述结果来纠正所述错误的效果。
[0018]在根据本发明的实施例的错误检测与纠正装置中,所述第二码字可为turbo码字。因此,达到在所述turbo码字中纠正所述错误的效果。
[0019]在根据本发明的实施例的错误检测与纠正装置中,所述第二码纠错部可纠正含有检测到所述错误的所述第一码字的所述一个部分数据与所述毗邻部分数据的组合中的所述错误,所述组合作为一个解码单位。因此,达到纠正含有检测到所述错误的所述第一码字的所述一个部分数据与所述毗邻部分数据的所述组合中的所述错误的效果,所述组合作为一个解码单位。
[0020]在根据本发明的实施例的错误检测与纠正装置中,所述多个部分数据中的每一个可含有用于纠正所述部分数据中的每一个中的错误的第二奇偶校验和用于纠正所述第二奇偶校验中的错误的第一奇偶校验,且所述第二码纠错部可使用所述第一奇偶校验来纠正所述第二奇偶校验中的所述错误,且可使用所述纠正后的第二奇偶校验来纠正所述一个部分数据中的所述错误。因此,达到使用通过使用所述第一奇偶校验被纠正的所述第二奇偶校验来纠正所述部分数据中的所述错误的效果。
[0021]在根据本发明的实施例的错误检测与纠正装置中,所述多个部分数据中的每一个可含有所述多个第一码字中的两个或更多个。因此,达到纠正含有所述多个分组码字的所述部分数据中的错误的效果。
[0022]根据本发明的实施例,提供一种信息处理器,其包括:第二编码部,其用于通过连锁方式对多个第一码字进行编码来生成第二码字,所述第二码字是含有多个部分数据的码字;第一码错误检测部,其用于检测所述第二码字中的所述第一码字中的每一个是否具有错误;及第二码纠错部,其用于基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。因此,达到基于所述毗邻部分数据来纠正所述错误的效果O
[0023]在本发明的实施例中,使得所述错误检测与纠正装置达到可以高速度精确地纠正数据的优异效果。
[0024]应理解,上述总体说明和下述详细说明为示例性的,且旨在为所主张的技术提供
进一步的解释。
【专利附图】

【附图说明】
[0025]包括附图以提供对本发明的进一步的理解,且并入本说明书并构成本说明书的一部分。附图图示实施例,且与说明书一起用来解释本发明的原理。
[0026]图1为图示根据第一实施例的信息处理系统的配置示例的方块图。
[0027]图2为图示根据第一实施例的存储控制器的配置示例的方块图。
[0028]图3为图示根据第一实施例的ECC处理部的配置示例的方块图。
[0029]图4为用于描述根据第一实施例的分组编码的图示。[0030]图5为图示根据第一实施例的第二编码部的配置示例的方块图。
[0031]图6A和图6B为图示根据第一实施例的正则校验矩阵的示例的图示。
[0032]图7为图示根据第一实施例的带状矩阵的示例的图示。
[0033]图8A和图SB为描述根据第一实施例使用生成矩阵的方法的图示。
[0034]图9为用于描述根据第一实施例的第二码中的数据依赖关系的示例的图示。
[0035]图10为图示根据第一实施例的第二码的数据结构的示例的图示。
[0036]图11为图示根据第一实施例的第二码错误检测与纠正部的配置示例的方块图。
[0037]图12为图示根据第一实施例的第二码错误检测与纠正器的配置示例的方块图。
[0038]图13A和图13B为图示根据第一实施例在变量节点与校验节点之间交换消息的示例的图示。
[0039]图14为用于描述根据第一实施例纠正第二码的方法的图示。
[0040]图15为图示根据第一实施例的存储控制器的操作的示例的流程图。
[0041]图16为图示根据第一实施例的编码的示例的流程图。
[0042]图17为图示根据第一实施例的解码的示例的流程图。
[0043]图18为图示根据第一实施例的第二码错误检测与纠正的示例的流程图。
[0044]图19为图示根据第一实施例的第一变型例的第二码的数据结构的示例的图示。
[0045]图20为用于描述根据第一实施例的第二变型例的第二码字的数据结构的示例的图示。
[0046]图21为用于描述根据第一实施例的第三变型例的第二码字的数据结构的示例的图示。
[0047]图22为图示根据第一实施例的第四变型例的第二码错误检测与纠正的示例的流程图。
[0048]图23为用于描述根据第一实施例的第五变型例纠正第二码的方法的图示。
[0049]图24为图示根据第二实施例的第二码错误检测与纠正部的配置示例的方块图。
[0050]图25为图示根据第二实施例的第二码错误检测与纠正的示例的流程图。
[0051]图26为用于描述根据第二实施例纠正第二码的方法的图示。
[0052]图27为图示根据第二实施例的第一变型例的第二码错误检测与纠正的示例的流程图。
[0053]图28为用于描述根据第二实施例的第一变型例纠正第二码的方法的图示。
[0054]图29为图示根据第二实施例的第二变型例的第二码错误检测与纠正的示例的流程图。
[0055]图30为图示根据第三实施例的第二编码部的配置示例的方块图。
[0056]图31为图示根据第三实施例的第二编码器的状态转换的示例的状态转换图。
[0057]图32为用于描述根据第三实施例生成第二码的示例的图示。
[0058]图33为图示根据第三实施例的第二码错误检测与纠正部的配置示例的方块图。
[0059]图34A和图34B为图示根据第三实施例的第二编码部的状态转换的网格图的示例。
[0060]图35为图示根据第四实施例的第二编码部的配置示例的方块图。
[0061]图36为图示根据第四实施例的第二码错误检测与纠正部的配置示例的方块图。[0062]图37为图示根据第五实施例的第二编码部的配置示例的方块图。
[0063]图38为图示根据第五实施例的第二码的数据结构的示例的图示。
[0064]图39为图示根据第五实施例的第二码错误检测与纠正部的配置示例的方块图。
[0065]图40为图示根据第六实施例的第二编码部的配置示例的方块图。
[0066]图41为图示根据第六实施例的校验矩阵的示例的图示。
[0067]图42为图示根据第六实施例的第二码错误检测与纠正部的配置示例的方块图。
【具体实施方式】
[0068]下面将阐述本发明的某些实施例。阐述将按照下列顺序给出:
[0069]1.第一实施例(其中基于毗邻部分数据执行纠错的示例)
[0070]2.第二实施例(其中基于所追溯的毗邻部分数据来执行纠错直到纠正成功为止的示例)
[0071]3.第三实施例(其中将卷积码字用作第二码字且基于毗邻部分数据来执行纠错的示例)
[0072]4.第四实施例(其中将turbo码字用作第二码字且基于毗邻部分数据来执行纠错的示例)
[0073]5.第五实施例(其中基于在毗邻部分数据中所纠正的奇偶校验来执行纠错的示例)
[0074]6.第六实施例(其中当基于毗邻部分数据所执行的纠错已失败时基于第三码字来执行纠错的示例)
[0075](1.第一实施例)
[0076](信息处理系统的配置示例)
[0077]图1为图示根据第一实施例的信息处理系统的配置示例的方块图。信息处理系统包括主机系统100和储存系统200。
[0078]主机系统100用于控制整个信息处理系统。更具体而言,主机系统100生成命令和数据,并通过信号线109将命令和数据供应给储存系统200。此外,主机系统100从储存系统200接收数据。命令可用于控制储存系统200,且命令的示例可包括用于数据写入的写入命令和用于数据读取的读取命令。
[0079]储存系统200包括存储控制器300和非易失性存储器600。存储控制器300用于控制非易失性存储器600。当存储控制器300从主机系统100接收写入命令和写入数据时,存储控制器300从写入数据生成错误检测与纠正码(ECC)。更具体而言,存储控制器300将写入数据转换(即,编码)成含有写入数据和奇偶校验的ECC。存储控制器300通过信号线309来访问非易失性存储器600,以将编码数据写入到非易失性存储器600。
[0080]此外,当存储控制器300从主机系统100接收读取命令时,存储控制器300通过信号线309来访问非易失性存储器600以读取编码数据。然后,存储控制器300将编码数据转换(即,解码)成编码之前的原始数据。在此解码中,存储控制器300基于ECC来检测并纠正数据中的错误。存储控制器300将纠正后的数据供应给主机系统100。
[0081]非易失性存储器600用于基于存储控制器300的控制来保持数据。
[0082](存储控制器的配置示例)[0083]图2为图示根据第一实施例的存储控制器300的配置示例的方块图。存储控制器300包括主机接口 310、RAM(随机访问存储器)320、CPU (中央处理器)330、ROM(只读存储器)340、非易失性存储器接口 350和总线360。存储控制器300还包括ECC处理部400。
[0084]主机接口 310用于与主机系统100互换数据和命令。RAM320用于临时保持由CPU330执行的处理中必要的数据。CPU330用于控制整个存储控制器300。R0M340用于保持由CPU330执行的程序等等。非易失性存储器接口 350用于与非易失性存储器600互换数据和命令。总线360为用于在主机接口 310、RAM320、CPU330、R0M340、非易失性存储器接口 350和ECC处理部400之间互换数据的共同路径。
[0085]ECC处理部400用于对写入数据进行编码并对读取数据进行解码。在对写入数据进行编码时,ECC处理部400将多个写入数据作为用于分组编码的对象数据,通过向所述用于分组编码的对象数据中的每一者添加奇偶校验而以预定单位将所述多个写入数据编码为分组码。下文中,将以预定单位编码为分组码的数据中的每一个称作“第一码字”。然后,ECC处理部400以预定单位对第一码字中的每一个以连锁方式进行编码。下文中,将以连锁方式编码的数据称作“第二码字”。应注意,ECC处理部400对应于本发明实施例中的“错误检测与纠正装置”的具体示例。
[0086]“以连锁方式进行编码”意指按照固定的顺序通过使用从当前编码的数据之前的数据获得的状态和当前编码的数据而进行编码,从而对多个数据依次进行编码。编码顺序取决于接收或生成数据的时间、其中记录数据的地址的值等等。此外,第二码字含有用于检测并纠正第二码字中的错误的第一码字和奇偶校验。换句话说,由ECC处理部400生成的ECC含有第一码字和第二码字。下文中,将用于校验第一码字的奇偶校验称作“第一奇偶校验”,且将用于校验第二码字的奇偶校验称作“第二奇偶校验”。
[0087]ECC处理部400通过总线360来将编码后的写入数据供应给非易失性存储器600。
[0088]当读取编码后的读取数据时,ECC处理部400使用第一奇偶校验来检测并纠正第一码字中的错误。在对第一码字的纠错已失败的情况下,ECC处理部400使用第二奇偶校验来纠正第二码字,以纠正纠错已失败的第一码字中的错误。ECC处理部400通过总线360来将纠正后的第一码字供应给主机系统100。
[0089](ECC处理部的配置示例)
[0090]图3为图示根据第一实施例的ECC处理部400的配置示例的方块图。ECC处理部400包括第一编码部410、第二编码部420、编码数据缓冲器460和编码数据供应部470。ECC处理部400还包括第一码错误检测与纠正部520、第二码错误检测与纠正部530、解码数据缓冲器570和解码数据供应部580。
[0091]第一编码部410用于将作为用于第一编码的对象数据的多个写入数据编码为第一码字。在此第一编码中,例如,可使用二进制BCH(Bose Chaudhuri Hocquenghem)码作为第一码。第一编码部410将通过编码所生成的第一码字通过信号线419来供应给第二编码部 420。
[0092]应注意,第一编码部410使用能够检测并纠正错误的BCH码作为第一码;然而,第一码不仅限于BCH码,且可为具有错误检测能力的任一码。第一码的示例包括含有不具有纠错能力的奇偶校验位的码、汉明(hamming)码和RS(Reed-Solomon)码。此外,第一编码部410可使用比二进制高的码作为第一码。[0093]第二编码部420用于将第一码字编码为第二码字。更具体而言,第二编码部420通过空间耦合LDPC编码系统来将多个第一码字编码为第二码字。在解码时,纠正第二码字的整个或部分中的错误。下文中,将第二码字的部分解码的部分中的每一个称作“部分数据”。
[0094]编码数据缓冲器460用于保持被编码为第二码字的数据。编码数据供应部470用于从编码数据缓冲器460读取第二码字,且将第二码字供应给总线360。
[0095]第一码错误检测与纠正部520用于检测并纠正第一码字中的错误。第一码错误检测与纠正部520可例如使用硬判决解码方法来纠正错误,在所述硬判决解码方法中,将第一码字的每一符号的值唯一性地判断为“I”或“O”。所述符号为构成码字的最小单位,且可例如为I位。第一码错误检测与纠正部520对第一码字进行解码,且第一码错误检测与纠正部520将解码后的第一码字输出到第二码错误检测与纠正部530,并将解码后的第一码字存储于解码数据缓冲器570中。此外,如果存在纠错已失败且只可实施错误检测的第一码字,则第一码错误检测与纠正部520通过总线360将第一码字的错误检测通知输出到CPU330。当ECC处理部400在错误检测通知中通知CPU330已检测到错误时,CPU330读取第二奇偶校验的部分(用于与已尝试解码的第一码字一起构成部分数据的第二奇偶校验),并将第二奇偶校验的部分输入到第二码错误检测与纠正部530。
[0096]应注意,第一码错误检测与纠正部520对应于本发明实施例中的“第一码错误检测部”的具体示例。
[0097]此外,第一码错误检测与纠正部520通过硬判决解码方法来纠正第一码中的错误;然而,可通过软判决解码方法来纠正错误,在所述软判决解码方法中,判断每一符号的值的似然(诸如对数似然比)。例如,可使用“Makiko Kan等人,Hardware Implementationof Soft-Decision Decoding for Reed-Solomon Code,20085th International Symposiumon Turbo Codes and Related Topics) ”中所述的方法。在此文献中,装置基于诸如RS码的第一码的每一符号的似然(诸如对数似然比),通过诸如和积算法的置信传播方法来纠正数据中的错误。在此文献中,执行校验矩阵的对角化;然而,当该方法应用于本发明实施例时,对角化并非必要。当也使用软判决解码方法来纠正第一码中的错误时,提高了纠错能力。
[0098]第二码错误检测与纠正部530用于基于与第一码错误检测与纠正部520检测到错误的纠正的对象部分数据毗邻的部分数据之一或两者来纠正对象部分数据中的错误。部分数据A与部分数据B “毗邻”意指按照编码顺序紧接着部分数据B之前或之后生成部分数据A。下文中,将以如此毗邻的部分数据称作“毗邻部分数据”。当第二码错误检测与纠正部530接收第二奇偶校验时,第二码错误检测与纠正部530生成含有由第一码错误检测与纠正部520解码的第一码字和那个第二奇偶校验的部分数据。例如,第二码错误检测与纠正部530可使用软判决解码方法来纠正部分数据中的错误。稍后将详细阐述纠错的方法。第二码错误检测与纠正部530将错误被纠正的部分数据通过信号线539输出到第一码错误检测与纠正部520。第一码错误检测与纠正部520将部分数据中的第一码字存储于解码数据缓冲器570中。
[0099]应注意,第二码错误检测与纠正部530对应于本发明实施例中的“第二码纠错部”的具体示例。
[0100]解码数据缓冲器570用于保持解码后的第一码字。解码数据供应部580用于从解码数据缓冲器570读取错误被纠正的第一码字,并将对应于用于第一编码的对象数据的解码数据供应给总线360。
[0101]图4为用于描述根据第一实施例的第一编码的图示。如图4所图示,第一编码部410将用于第一编码的各个对象Kf位数据编码为各个Nf位第一码字,其中Kf为整数,且Nf为大于Kf的整数。第一码字各自含有用于第一编码的对象Kf位数据和Nf-Kf位第一奇偶校验。因此,码字含有用于编码的原样对象数据,并且将能够轻易地将码字分成数据和奇偶校验的码称作“系统码”。应注意,第一码可为非系统码。
[0102](第二编码部的配置示例)
[0103]图5为图示根据第一实施例的第二编码部420的配置示例的方块图。第二编码部420包括第二编码对象数据生成部421和第二编码器422。
[0104]第二编码对象数据生成部421用于将来自第一编码部410的多个第一码一起地作为第二编码对象数据供应给第二编码器422。
[0105]第二编码器422用于将用于第二编码的对象数据编码为第二码字。在编码为第二码时,例如,可使用将数据编码为二进制空间耦合LDPC (低密度奇偶校验)码的编码系统。稍后将参考图6A与图6B、图7和图8A与图8B等等详细阐述编码为空间耦合LDPC码的方法。
[0106]假定第二编码器422保持生成矩阵。然而,第二编码器422可从校验矩阵产生生成矩阵。所述校验矩阵为在对第二码执行奇偶校验的过程中所使用的矩阵,且所述生成矩阵为用于对编码的对象数据进行编码的矩阵。生成矩阵可通过下列表达式I从校验矩阵求出。
[0107][数学式I]
[0108]GXHt = O…表达式 I
[0109]其中“G”为生成矩阵,且“Ητ”为通过反转校验矩阵H而形成的矩阵。
[0110]第二编码器422求出通过表达式I所得到的生成矩阵和用于第二编码的对象数据的乘积。第二编码器422将所得到的乘积作为第二码字通过信号线429输出到编码数据缓冲器460。
[0111]应注意,只要第二码为通过连锁方式对多个数据进行编码而生成的码,第二码就不仅限于空间耦合LDPC码。例如,可使用稍后将阐述的卷积码或turbo码来代替空间耦合LDPC码。此外,第二编码部420可使用高于二进制的码作为第二码。这也适用于第一实施例的稍后将阐述的变型例。
[0112]图6A和图6B为图示根据第一实施例的正则校验矩阵H,eg的示例的图示。在空间耦合LDPC编码系统中,第二码错误检测与纠正部530生成多个正则校验矩阵H,eg。这些正则校验矩阵Hms为其中各行和各列中“I”的数目(下文中称作“权重”)为固定的校验矩阵。图6A为图示正则校验矩阵Hreg中的权重的示例的图示。在此示例中,每一列的权重为“3”,且每一行的权重为“6”。
[0113] 第二码错误检测与纠正部530通过将正则校验矩阵Hreg对角划分两个部分来生成上三角矩阵Hu和下三角矩阵扎。图6B为图示划分后的正则校验矩阵H,eg的示例的图示。下文中,将每一三角矩阵中形成直角的两条边中的一条边称作“底边”,且将另一条边称作“毗邻边”。[0114]在空间耦合LDPC中,可以使用从带状矩阵Hb中切出的部分矩阵Hp来执行部分解码。当在第二码错误检测与纠正部530中设定部分数据的大小Ns时,第二码错误检测与纠正部530从带状矩阵Hb上切出具有等同于Ns的大小的部分矩阵。例如,在部分数据的大小Ns等于两倍于三角矩阵的底边的长度的情况下,可使用通过将四个三角矩阵彼此组合而形成的部分矩阵作为用于对部分数据进行解码的校验矩阵。校验矩阵Hp为与部分数据的大小Ns具有相等的列数和Ns-Ks行数的矩阵。此外,在对整个第二码字进行解码的情况下,可使用带状矩阵Hb作为校验矩阵。带状矩阵Hb中的列数N为第二码字的码长。
[0115]Ks为作为不具有第二奇偶校验的部分数据的数据的大小。换句话说,Ns-Ks为部分数据中的第二奇偶校验的大小。此外,部分数据的大小Ns可设定为例如非易失性存储器600的访问单位的除数。应注意,部分数据的大小Ns可设定为非易失性存储器600的访问单位的倍数。
[0116]图8A和图8B为用于描述根据第一实施例使用生成矩阵的方法的图示。图8A为图示根据第一实施例的生成矩阵G的示例的图示。图8A中所示例的生成矩阵G为基于表达式I从图7中所示例的带状校验矩阵Hb生成。如图8A中所图示,在校验矩阵Hb中的列数和行数分别为N和N-K的情况下,从校验矩阵Hb生成具有N列及K行的生成矩阵G。图8B图示用于从生成矩阵和用于第二编码的对象数据求出第二码的计算表达式的示例。如图SB中所图示,第二码字为由生成矩阵G与用于第二编码的对象数据的乘积生成。第二码字含有用于第二编码的k位对象数据及N-K位第二奇偶校验。因此,第二码为含有用于编码的原样对象数据的系统码。当第二码为由系统码构成时,ECC处理部400可以在解码中轻易地仅仅分离第一码并纠正第一码中的错误。
[0117]图9为用于描述根据第一实施例的第二码中的数据依赖关系的示例的图示。在图9中,箭头表示依赖关系。每个部分数据为依据与其毗邻的部分数据的状态通过图8A和图8B中所图示的矩阵运算而生成。然而,端部处的部分数据不含有与其毗邻的第二奇偶校验;因此,端部处的部分数据的大小小于其他部分数据的大小。应注意,在将端部处的部分大小的大小调整为等于其他部分数据的大小的情况下,可添加与第二奇偶校验的大小具有相等大小的假数据以取代第二奇偶校验。
[0118]例如,部分数据#1由第一码字#1构成。第二部分数据#2依赖于与其毗邻的第二奇偶校验#1。第三部分数据#3依赖于与其毗邻的第二奇偶校验#2。因此,除第一部分数据以外的每一个部分数据依赖于与其毗邻的部分数据的部分(例如,第二奇偶校验)。这些部分数据的组合对应于一个第二码字。因此,在空间耦合LDPC编码系统中,第二码字以连锁方式生成。应注意,依赖关系不仅限于图9中所示例的关系。例如,每一个部分数据可依赖于与其毗邻的整个部分数据或多个其他部分数据。
[0119]图10为图示根据第一实施例的非易失性存储器600中的第二码的数据结构的示例的方块图。如图10中所图示,第二码字含有多个部分数据。部分数据中的每一个依赖于与其毗邻的第二奇偶校验。因此,生成其中数据的部分(即,第二奇偶校验)为彼此毗邻的部分数据所共有的码作为第二码。
[0120](第二码错误检测与纠正部的配置示例)
[0121]图11为图示根据第一实施例的第二码错误检测与纠正部530的配置示例的方块图。第二码错误检测与纠正部530包括校验矩阵生成部531、部分数据生成部532和第二码错误检测与纠正器540。
[0122]校验矩阵生成部531用于生成校验矩阵。在校验矩阵生成部531中,设定部分数据的大小Ns。校验矩阵生成部531生成具有Ns列的校验矩阵。校验矩阵生成部531将所生成的校验矩阵供应给第二码错误检测与纠正器540。
[0123]部分数据生成部532用于对部分数据中包含的第一码进行解码,所述部分数据与含有解码已经失败的第一码的部分数据毗邻。假定对毗邻部分数据的读取由CPU330控制,且对含于所读取的部分数据中的第一码的解码成功。接下来,部分数据生成部532将用于纠正的对象部分数据及与该对象部分数据毗邻的部分数据输出到第二码错误检测与纠正器540。此时,将解码成功的第一码的每一位指定为已知位,且将含有该已知位的部分数据输出到第二码错误检测与纠正器540。
[0124]已知位意指其中错误已被纠正且纠正后的值是已知的位。如上所述,彼此毗邻的部分数据彼此共享第二奇偶校验;因此,当纠正与用于纠正的对象部分数据毗邻的部分数据中的错误时,也相应地纠正对象部分数据中的第二奇偶校验中的错误。因此,部分数据生成部532可以将第一码的每一位指定为已知位。对用于纠正的对象部分数据的纠错容易通过指定已知位来执行。
[0125]此外,在生成部分数据时,在与该部分数据毗邻的部分数据已由第二码错误检测与纠正器540纠正的情况下,部分数据生成部532无需再次将纠正后的毗邻部分数据输入到第二码错误检测与纠正器540便可获取纠正后的毗邻部分数据的第二奇偶校验。例如,考虑这样一种情况,即对部分数据#1、#2、#3和M中的部分数据#1和#3中的第一码字的纠错已失败、且执行对毗邻部分数据#1和#3的部分数据#2的纠错。在存储控制器300对部分数据#2和#1依次进行纠正、并且对部分数据#2和#1两者的纠正成功之后存储控制器300对部分数据#3进行纠错的情况下,与部分数据#3毗邻的部分数据#2和M中的部分数据#2已被纠正。在此情况下,由于对部分数据#2的纠正并非必要,因而存储控制器300可依次纠正部分数据#4和#3,而无需再次纠正部分数据#2。部分数据生成部532可为每一部分数据生成标志以表示是否已实施纠正,且可将该标志存储于解码数据缓冲器570中,且可参考该标志以判断是否已实施纠正。
[0126]在由于毗邻部分数据已被纠正因而不执行对毗邻部分数据的纠正的情况下,部分数据生成部532从所读取的第一码字及所读取的第二奇偶校验中生成部分数据,所读取的第一码字在第一码错误检测与纠正部中的解码已失败,并将如此生成的部分数据输出到第二码错误检测与纠正部。
[0127]第二码错误检测与纠正器540用于使用校验矩阵来检测并纠正第二码字中的部分数据中的错误。第二码错误检测与纠正部530可使用和积(sum-product)算法来纠正部分数据中的错误。在使用和积算法的配置中,第二码错误检测与纠正器540包括变量节点处理部541和校验节点处理部543。分类为和积算法的算法可包括诸如概率域和积算法和对数域和积算法的各种算法。变量节点处理部541和校验节点处理部543可使用例如从这些算法中选择的对数域和积算法来纠正第二码中的错误。
[0128]应注意,变量节点处理部541和校验节点处理部543可使用除对数域和积算法以外的任何和积算法。
[0129]此外,只要算法可以检测并纠正第二码字中的错误,第二码错误检测与纠正器540可使用除和积算法以外的诸如位翻转算法(bit-flipping algorithm)的任何算法。此外,可使用其中和积算法的部分被简化的算法(诸如min-sum算法)。或者,可使用“ShuheiTanakamaru 等人,Over-1OX-Extended-Lifetime 76 % -Reduced-Error Solid-StateDrives(SSDs)with Error-Prediction LDPC Architecture and Error-Recovery Scheme,ISSCC 2012”中所述的技术。在此文献中所述的EP (错误预测)-LDPC方法中,装置预先测量数据被重写的次数和每存储单元的数据保持时间,且以表格形式存储数据被重写的次数和数据保持时间。然后,装置基于这些表格来预测BER(位错误率),然后使用BER来纠正LDPC码中的错误。
[0130]变量节点处理部541用于基于校验节点处理部543的奇偶校验的结果来检测并纠正第二码字中的错误。此外, 校验节点处理部543用于对第二码字执行奇偶校验。第二码字中的部分数据输入到变量节点处理部541。应注意,如稍后将阐述,在对部分数据的纠正已失败的情况下,部分数据生成部532可将整个第二码字输入到变量节点处理部541。
[0131]更具体而言,当变量节点处理部541接收第二码字时,变量节点处理部541基于第二码字来生成消息Utl消息Utl i为表示在纠正前的第二码字中的第i符号(例如,位)的值为“O”或“I”的似然的实变量。此外,“i”为O~Ns-1的整数,其中Ns为第二码字的大小。然而,在第i位由部分数据生成部532指定为已知位的情况下,消息Utl」的似然设定为最大值。变量节点处理部541基于消息Utl」和校验节点处理部543的奇偶校验的结果来生成消息Vi,并将消息Vi输出到校验节点处理部543。消息Vi为表示纠正后的第二码字中的第i位的值的似然的实变量。在对数域和积算法中,生成对数似然比A(ri)作为消息Utl对数似然比Λ (r,)为码字的第i符号(例如,位)的值为“O”的概率相对于码字的第i符号的值为“ I ”的概率的比值的对数,且可通过例如下列表达式2来求出。
[0132][数学式2]
【权利要求】
1.一种错误检测与纠正装置,其包括: 第一码错误检测部,其用于检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的、并且是含有多个部分数据的码字;及 第二码纠错部,其用于基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
2.如权利要求1所述的错误检测与纠正装置,其中, 为所述多个部分数据中彼此毗邻的部分数据所共有的数据部分为共同码字,且 所述第二码纠错部基于为所述一个部分数据与所述毗邻部分数据所共有的所述数据部分,纠正含有检测到所述错误的所述第一码字的所述一个部分数据中的所述错误。
3.如权利要求1所述的错误检测与纠正装置,其中,所述第二码纠错部纠正所述毗邻部分数据中的错误,且当对所述毗邻部分数据的纠错成功时,所述第二码纠错部基于所述毗邻部分数据来纠正由所述第一码错误检测部检测到的所述错误。
4.如权利要求3 所述的错误检测与纠正装置,其中,当对所述毗邻部分数据的纠错已失败时,所述第二码纠错部纠正新毗邻部分数据中的错误,并判断对所述新毗邻部分数据的纠错是否成功,所述新毗邻部分数据是与所述毗邻部分数据毗邻的部分数据。
5.如权利要求3所述的错误检测与纠正装置,其中,当未检测到包含在所述毗邻部分数据中的所述第一码字中的错误时,所述第二码纠错部基于所述毗邻部分数据来纠正由所述第一码错误检测部检测到的所述错误,且当检测到包含在所述毗邻部分数据中的所述第一码字中的错误时,所述第二码纠错部判断是否在包含在新毗邻部分数据中的所述第一码字中检测到错误,所述新毗邻部分数据是与所述毗邻部分数据毗邻的部分数据。
6.如权利要求3所述的错误检测与纠正装置,其中,在对所述毗邻部分数据的纠错已失败时,所述第二码纠错部纠正所述第二码字中的错误。
7.如权利要求1所述的错误检测与纠正装置,其中,所述第二码纠错部判断基于所述毗邻部分数据执行的对所述错误的纠正是否成功,且当所述纠正已失败时,所述第二码纠错部基于分别含有所述第一码字的第三码字纠正所述错误。
8.如权利要求1所述的错误检测与纠正装置,其中, 所述第二码字为卷积码字,且 所述第二码纠错部基于对所述毗邻部分数据所执行的卷积运算的结果纠正所述错误。
9.如权利要求8所述的错误检测与纠正装置,其中,所述第二码字为turbo码字。
10.如权利要求1所述的错误检测与纠正装置,其中,所述第二码纠错部纠正含有检测到所述错误的所述第一码字的所述一个部分数据与所述毗邻部分数据的组合中的所述错误,所述组合作为一个解码单位。
11.如权利要求1所述的错误检测与纠正装置,其中, 所述多个部分数据中的每一个含有用于纠正所述部分数据中的每一个中的错误的第二奇偶校验及用于纠正所述第二奇偶校验中的错误的第一奇偶校验,及 所述第二码纠错部使用所述第一奇偶校验来纠正所述第二奇偶校验中的所述错误,且使用所述纠正后的第二奇偶校验来纠正所述一个部分数据中的所述错误。
12.如权利要求1所述的错误检测与纠正装置,其中,所述多个部分数据中的每一个含有所述多个第一码字中的两个或更多个。
13.—种信息处理器,其包括: 第二编码部,其用于通过连锁方式对多个第一码字进行编码来生成第二码字,所述第二码字是含有多个部分数据的码字; 第一码错误检测部,其用于检测所述第二码字中的所述第一码字中的每一个是否具有错误;及 第二码纠错部,其用于基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
14.一种错误检测与纠正方法,其包括: 检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的,并且是含有多个部分数据的码字;及 基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数 据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
15.一种具有程序的非暂存性有形记录媒介,所述计算机可读程序在由计算机执行时使得计算机实施一种方法,所述方法包括: 检测第二码字中的多个第一码字中的每一个是否具有错误,所述第二码字是通过以连锁方式对所述多个第一码字进行编码而生成的,并且是含有多个部分数据的码字;及 基于与所述第二码字中的所述多个部分数据中的一个部分数据毗邻的毗邻部分数据来纠正所述一个部分数据中的所述错误,所述一个部分数据含有检测到所述错误的所述第一码字。
【文档编号】G06F11/32GK103970645SQ201410042243
【公开日】2014年8月6日 申请日期:2014年1月28日 优先权日:2013年2月5日
【发明者】阪井塁, 池谷亮志, 新桥龙男, 中西健一, 藤波靖, 山本真纪子 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1