控制器、信息处理系统、控制器的控制方法以及程序的制作方法

文档序号:6535698阅读:158来源:国知局
控制器、信息处理系统、控制器的控制方法以及程序的制作方法
【专利摘要】本发明提供一种其中通过软判决解码算法提高纠错能力的控制器、信息处理系统、控制器的控制方法以及程序,所述控制器包括:低级纠错部,其用于执行低级纠错,在所述低级纠错中,码字中的错误采用预定解码算法进行纠正;以及高级软判决纠错部,其用于执行高级软判决纠错,在所述高级软判决纠错中,当所述低级纠错部执行的纠错失败时,所述码字中的错误就采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
【专利说明】控制器、信息处理系统、控制器的控制方法以及程序
【技术领域】
[0001]本发明涉及一种控制器、信息处理系统、控制器的控制方法以及程序。更具体地,本发明涉及一种其中通过软判决解码算法进行纠错的控制器、信息处理系统、控制器的控制方法以及程序。
【背景技术】
[0002]近年来,信息处理系统可采用非易失性存储器(NVM)或HDD (硬盘驱动器)作为储存器。在这些储存器中,储存的数据可能会受到毁坏,因而不能正确读取。因此,一种通常的信息处理系统基于待储存的数据生成错误检测和纠正码(ECC),并将ECC储存在储存器中。当再现数据时,信息处理系统可基于ECC检测并纠正数据中的错误。
[0003]当基于ECC纠正错误时,便可采用软判决解码算法。软判决解码算法为基于软判决值纠正错误的算法,该软判决值与数据中的位元为“I”的概率或为“O”的概率相对应。另一方面,基于表明数据中的位元为“I”或“O”的硬判决值来纠正错误的算法称为硬判决算法。
[0004]尽管软判决解码算法的纠错能力高于硬判决解码算法的纠错能力,但其处理比较复杂,从而增加了电路尺寸和处理时间。因此,已经提出了一种部分软判决解码算法被简化以便抑制电路尺寸等的增加的设备(例如,参照日本未经审查的专利申请公开N0.2010-28408)。更具体地,该设备采用重复模式软判决解码算法,其中,将变量节点和校验节点之中的一个节点处所生成的软判决值发送至另一节点来进行纠错的步骤被重复执行,以简化校验节点中的处理。
[0005]然而,在上述技术中很难提高纠错能力。添加至数据的奇偶校验信息的量增加得越多,即码率越小,纠错能力就越高,而储存区域的利用率就越低。为了在不改变码率的情况下提高纠错能力,可以使用采用具有更高纠错能力的算法的方法或者使用增加了重复模式软判决解码算法中的重复次数的方法。然而,在前者方法中,采用具有高纠错能力的算法进行处理会更加复杂从而增加了电路尺寸和处理时间。而且,在后者方法中,即在增加重复次数的方法中,处理时间增加了。因此,在不改变码率的情况下,在抑制电路尺寸和处理时间增加的同时提高纠错能力是很难的。

【发明内容】

[0006]本发明期望在采用软判决算法的信息处理系统中提高纠错能力。
[0007]根据本发明的实施例,提供了一种控制器,所述控制器包括:低级纠错部,其用于执行低级纠错,在所述低级纠错中,码字中的错误采用预定解码算法进行纠正;以及高级软判决纠错部,其用于执行高级软判决纠错,在所述高级软判决纠错中,当所述低级纠错部执行的纠错失败时,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
[0008]根据本发明的实施例,提供了一种控制器的控制方法,所述方法包括:执行低级纠错,在低级纠错中,码字中的错误采用预定解码算法纠正;以及执行高级软判决纠错,在高级软判决纠错中,当所述低级纠错执行的纠错失败时,所述码字中的错误采用高级算法纠正,所述高级算法为软判决算法,所述软判决算法的纠错能力高于所述预定解码算法的纠韦昔倉泛力。
[0009]根据本发明的实施例,提供了一种嵌入有程序的非暂存性有形记录介质,当所述计算机可读程序由计算机执行时,使得所述计算机实施一种方法,所述方法包括:执行低级纠错,在低级纠错中,码字中的错误采用预定解码算法纠正;以及执行高级软判决纠错,在高级软判决纠错中,当所述低级纠错执行的纠错失败时,所述码字中的错误采用高级算法纠正,所述高级算法为软判决算法,所述软判决算法的纠错能力高于所述预定解码算法的纠错能力。
[0010]因此,本发明实现了以下效果:当所述低级纠错部执行的纠错失败时,所述码字中的错误采用所述高级算法纠正。
[0011]而且,根据本发明的实施例的控制器可进一步包括:读取处理部,其用于从存储器中读取所述码字并将所述码字提供给所述低级纠错部,所述码字包括多个码元;码字获取部,其用于当所述低级纠错部执行的纠错失败时多次执行从所述存储器中读取所述码字的码字获取;以及软判决值生成部,其用于基于由所述码字获取部读取的每一个所述码字为每一个所述码元生成软判决值,所述软判决值与每一个所述码元的值为特定值的概率相对应,并将每一个所述码元的值被替换为所述软判决值的码字提供给所述高级软判决纠错部。因此,实现了以下效果:当所述低级纠错部的纠错失败时,多次执行读取码字的码字获取,且基于每一个读取的码字,生成了软判决值。
[0012]而且,在根据本发明的实施例的控制器中,所述软判决值生成部可为每一个所述码元求取所述码字获取部读取所述特定值的频率,并可基于所述频率生成所述软判决值。因此,实现了以下效果:基于所述特定值被读取的频率来生成所述软判决值。
[0013]而且,根据本发明的实施例的控制器可进一步包括:阈值控制部,其用于每次执行所述码字获取时在预定的范围内改变阈值,所述阈值为确定所述码元的值的阈值;以及软判决值生成部,所述软判决值生产部可基于读取具有所述特定值的码元时所述阈值的最大值或最小值来生成所述软判决值。因此,实现了以下效果:当读取具有所述特定值的所述码元时,基于所述阈值的最大值或最小值来生成所述判决值。
[0014]而且,在根据本发明的实施例的控制器中,所述软判决值生成部可在执行了多次所述码字获取之后生成所述软判决值,当生成所述软判决值时所述高级软判决纠错部可执行所述高级软判决纠错。因此,实现了以下效果:执行了多次所述码字获取,然后生成所述软判决值以执行所述高级软判决纠错。
[0015]而且,在根据本发明的实施例的控制器中,所述软判决值生成部在每次执行码字获取时可生成所述软判决值,所述高级软判决纠错部在每次生成软判决值时执行所述高级软判决纠错。因此,实现了以下效果:每次执行所述码字获取时便生成所述软判决值,以执行所述高级软判决纠错。
[0016]在根据本发明的实施例的控制器中,所述码字包括多个码元,所述低级纠错部可为每一个所述码元生成软判决值,所述软判决值与每一个所述码元的值为特定值的概率相对应,并将每一个所述码元的值被替换为所述软判决值的码字提供给所述高级软判决纠错部。因此,实现了以下效果:由上述低级纠错部生成的所述软判决值被提供给了上述高级软判决纠错部。
[0017]根据本发明的实施例,提供了一种信息处理系统,所述信息处理系统包括:主机,其用于发出用于指令从存储部中读取码字的读取命令;读取处理部,其用于响应于所述读取命令而从所述存储部读取所述码字;低级纠错部,其用于执行低级纠错,在所述低级纠错中,所述码字中的错误采用预定解码算法进行纠正;以及高级软判决纠错部,其用于执行高级软判决纠错,在所述高级软判决纠错中,当所述低级纠错部执行的纠错失败时,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。因此,实现了以下效果:当所述低级纠错部执行的纠错失败时,所述码字中的错误采用所述高级算法进行纠正。
[0018]在根据本发明的实施例的信息处理系统中,所述主机可基于所述高级软判决纠错的处理时间确定包括纠正开始命令的一个以上命令的执行顺序,并可将所述一个以上命令按照所述执行顺序提供给所述高级软判决纠错部,所述纠正开始命令用于当所述低级纠错部执行的纠错失败时指令所述高级软判决纠错的开始,当所述低级纠错部执行的纠错失败且所述纠正开始命令已提供给所述高级软判决纠错部时,所述高级软判决纠正部开始所述高级软判决纠错。因此,实现了以下效果:当所述低级纠错部执行的纠错失败时且所述纠正开始命令已提供时,执行所述高级软判决纠错。
[0019]在根据本发明的实施例的信息处理系统中,当所述低级纠错部执行的纠错失败且读取所述码字发生中断时,所述主机发出暂停所述高级软判决纠错的中止命令,当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部响应于所述中止命令暂停正在执行的高级软判决纠错。因此,实现了以下效果:当读取所述码字发生中断时,暂停所述高级软判决纠错。
[0020]而且,在根据本发明的实施例的信息处理系统中,所述主机可进一步基于所述码字的类型生成表明是否需要执行所述高级软判决纠错的使能命令,当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部可响应于所述使能命令执行所述高级软判决纠错。因此,实现了以下效果:当所述低级纠错部执行的纠错失败时,响应于所述使能信号执行所述高级软判决纠错。
[0021]进一步地,在根据本发明的实施例的信息处理系统中,所述高级算法可包括多种高级算法,所述主机可基于所述码字的类型指定所述多种高级算法中的一种,当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部可采用所述指定的高级算法纠正所述码字中的错误。因此,实现了以下效果:当所述低级纠错部执行的纠错失败时,所述码字中的错误采用所述指定的高级算法进行纠正。
[0022]根据本发明的实施例,提供了一种信息处理系统,所述信息处理系统包括:控制器,其用于从存储部读取码字并执行低级纠错,在所述低级纠错中,所述码字中的错误采用预定解码算法进行纠正;以及主机,其用于当所述控制器执行的纠错失败时执行高级软判决纠错,在所述高级软判决纠正中,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
[0023]在根据本发明的实施例的信息处理系统中,当所述控制器执行的纠错失败时,所述主机可发出码字输出命令,所述码字输出命令指令所述控制器输出所述码字,所述控制器响应于所述码字输出命令从所述存储部读取所述码字并将所述码字输出至所述主机,而不执行所述低级纠错。因此,实现了以下效果:所述控制器响应于所述码字输出命令从所述存储部读取所述码字并将所述码字输出至所述主机,而不执行所述低级纠错。
[0024]上述控制器可在所述低级纠错中生成纠正成功/失败信息,并可将所述纠正成功/失败信息输出至主机,所述纠正成功/失败信息表明对所述码字的纠错是否成功,所述主机可基于所述纠正成功/错误信息判断所述控制器执行的纠错是否失败。因此,实现了以下效果:上述控制器执行的纠错是否失败由所述主机基于所述纠正成功/失败信息来判断。
[0025]在本发明的实施例中,实现了以下优越效果,即纠错能力可在采用了软判决算法的信息处理系统中得到提高。
[0026]应理解,上述概述和接下来的详细说明都是示例性的,旨在进一步说明所要求保护的本发明。
【专利附图】

【附图说明】
[0027]附图用于进一步理解本发明,其包含在本说明书中并构成本说明书的一部分。附图与说明书一起对实施例进行了说明并用于解释本发明的原理。
[0028]图1是图示了根据第一实施例的信息处理系统的配置示例的方框图。
[0029]图2是图示了根据第一实施例的主机的配置示例的方框图。
[0030]图3是图示了根据第一实施例的存储控制器的配置示例的方框图。
[0031]图4是图示了根据第一实施例的存储控制器的功能配置示例的方框图。
[0032]图5是图示了根据第一实施例的纠错代码的数据结构示例的示意图。
[0033]图6A和6B是图示了根据第一实施例的校验矩阵的示意图。
[0034]图7A和7B是描述了根据第一实施例的生成纠错代码的方法的示例的示意图。
[0035]图8是图示了根据第一实施例的纠错部的配置示例的方框图。
[0036]图9是图示了根据第一实施例的低级纠错部的配置示例的方框图。
[0037]图10是图示了根据第一实施例的低级纠错电路的配置示例的示意图。
[0038]图1lA和IlB是图示了根据第一实施例的变量节点和校验节点之间的消息交换的示例的示意图。
[0039]图12是图示了根据第一实施例的高级软判决纠错部的配置示例的方框图。
[0040]图13是图示了根据第一实施例的主机的操作示例的流程图。
[0041]图14是图示了根据第一实施例的存储控制器的操作示例的流程图。
[0042]图15是图示了根据第一实施例的读取处理的示例的流程图。
[0043]图16是图示了根据第一实施例的低级纠错的示例的流程图。
[0044]图17是图示了根据第一实施例的高级软判决纠错的示例的流程图。
[0045]图18是图示了根据第一实施例的第一变型例的纠错部的配置示例的方框图。
[0046]图19是图示了根据第一实施例的第一变型例的低级纠错部的示例的方框图。
[0047]图20是图示了根据第一实施例的第一变型例的高级软判决纠错部的方框图。
[0048]图21是图示了根据第一实施例的第二变型例的纠错部的配置示例的方框图。[0049]图22是图示了根据第一实施例的第二变型例的主机的操作示例的流程图。
[0050]图23是图示了根据第一实施例的第二变型例的读取处理的示例的流程图。
[0051]图24是图示了根据第二实施例的纠错部的配置示例的方框图。
[0052]图25是图示了根据第二实施例的主机的操作示例的流程图。
[0053]图26是图示了根据第二实施例的读取处理的示例的流程图。
[0054]图27是图示了根据第二实施例的第一变型例的纠错部的配置示例的方框图。
[0055]图28是图示了根据第二实施例的第一变型例的主机的操作示例的流程图。
[0056]图29是图示了根据第二实施例的第一变型例的高级软判决纠错的示例的流程图。
[0057]图30是图示了根据第二实施例的第二变型例的纠错部的配置示例的方框图。
[0058]图31是图示了根据第二实施例的第二变型例的主机的操作示例的流程图。
[0059]图32是图示了根据第二实施例的第二变型例的读取处理的示例的流程图。
[0060]图33是图示了根据第二实施例的第三变型例的主机的操作示例的流程图。
[0061]图34是图示了根据第二实施例的第三变型例的高级软判决纠错的示例的流程图。
[0062]图35是图示了根据第三实施例的主机的配置示例的方框图。
[0063]图36是图示了根据第三实施例的存储控制器的配置示例的方框图。
[0064]图37是图示了根据第三实施例的纠错部的配置示例的方框图。
[0065]图38是图示了根据第三实施例的主机的操作示例的流程图。
[0066]图39是图示了根据第三实施例的存储控制器的操作示例的流程图。
[0067]图40是图不了根据第二实施例的读取处理的不例的流程图。
[0068]图41是图示了根据第四实施例的主机的配置示例的方框图。
[0069]图42A?42D是图示了根据第四实施例的读取数据和软判决值的示例的示意图。
[0070]图43是图示了根据第四实施例的存储控制器的配置示例的方框图。
[0071]图44是图示了根据第四实施例的主机的操作示例的流程图。
[0072]图45是图示了根据第四实施例的高级软判决纠错的示例的流程图。
[0073]图46是图示了根据第四实施例的存储控制器的操作示例的流程图。
[0074]图47是图示了根据第四实施例的读取处理的示例的流程图。
[0075]图48是图示了根据第四实施例的一个变型例的主机的操作示例的流程图。
[0076]图49是图示了根据第五实施例的主机的配置示例的方框图。
[0077]图50是图示了根据第五实施例的存储控制器的配置示例的方框图。
[0078]图51是图示了根据第五实施例的可变电阻器的电阻分布的示例的示意图。
[0079]图52是描述了根据第五实施例的生成软判决值的方法的示意图。
[0080]图53是图示了根据第五实施例的主机的操作示例的流程图。
[0081]图54是图示了根据第五实施例的读取处理的示例的流程图。
[0082]图55是图示了根据第五实施例的一个变型例的主机的操作示例的流程图。
【具体实施方式】
[0083]下面将对本发明的某些实施例进行描述。描述顺序如下:[0084]1.第一实施例(存储控制器通过多种软判决解码算法执行纠错的示例)
[0085]2.第二实施例(存储控制器基于主机的控制执行纠错的示例)
[0086]3.第三实施例(主机通过软判决解码算法执行纠错的示例)
[0087]4.第四实施例(从采用相同阈值读取的数据生成软判决值并采用该软判决值执行纠错的示例)
[0088]5.第五实施例(从采用不同阈值读取的数据生成软判决值并采用该软判决值执行纠错的示例)
[0089](1、第一实施例)
[0090](信息处理系统的配置示例)
[0091]图1是图示了根据第一实施例的信息处理系统的配置示例的方框图。信息处理系统包括主机100和储存器200。
[0092]主机100用于控制整个信息处理系统。更具体地,主机100生成命令和写入数据,并通过信号线109将该命令和写入数据提供给储存器200。而且,主机100接收来自储存器200的读取数据。该命令可用于控制储存器200,该命令的示例可包括用于将写入数据写入的写入命令以及用于对读取数据进行读取的读取命令。
[0093]储存器200包括存储控制器300和非易失性存储器400。存储控制器300用于控制非易失性存储器400。当存储控制器300从主机100接收写入命令和写入数据时,存储控制器300从该写入数据生成错误检测和纠正代码(ECC)。更具体地,存储控制器300将写入数据转换(即编码)为包含写入数据和奇偶校验的码字。存储控制器300通过信号线309访问非易失性存储器400以将已编码的数据写入非易失性存储器400。
[0094]而且,当存储控制器300接收来自主机100的读取命令时,存储控制器300通过信号线309访问非易失性存储器400以读取已编码的数据。然后,存储控制器300将已编码的数据转换(即解码)为编码前的原始数据。在解码过程中,存储控制器300基于ECC检测并纠正数据中的错误。存储控制器300将纠正后的数据提供给主机100。
[0095]要注意的是,存储控制器300与本发明的实施例中的“控制器”的具体示例相对应。
[0096]非易失性存储器400基于存储控制器300的控制保持数据。例如,可将ReRAM用作非易失性存储器400。要注意的是,除了 ReRAM,快闪存储器、PCRAM和MRAM等都可用作非易失性存储器400。而且,存储控制器300将数据储存在非易失性存储器400中;然而,除了非易失性存储器400,数据也可储存在任何能够保持数据的储存介质或储存装置中。这种储存装置的一个示例可为硬盘驱动器(HDD)。
[0097](主机的配置示例)
[0098]图2是图示了根据第一实施例的主机100的配置示例的方框图。主机100包括ROM (只读存储器)102、RAM (随机存取存储器)103和CPU (中央处理单元)104。而且,主机100包括用户接口 101、总线105和储存器接口 106。
[0099]用户接口 101是在信息处理系统和信息处理系统的用户之间进行相互交换输入数据和输出数据的接口。R0M102对由CPU104等执行的程序进行保持。RAM103临时保持CPU104执行处理所需的数据。CPU104用于控制整个主机100。总线105是用于在用户接口101、R0M102、RAM103和CPU104与储存器接口 106之间相互交换数据的公共路径。储存器接口 106是用于在主机100与储存器200之间相互交换数据和命令的接口。
[0100](存储控制器的配置示例)
[0101]图3是图示了根据第一实施例的存储控制器300的配置示例的方框图。存储控制器300包括主机接口 301、RAM302、CPU303、ECC处理部304、R0M305、总线306和非易失性存储器接口 307。
[0102]主机接口 301使存储控制器300与主机100相互交换数据和命令。RAM302临时保持CPU303执行处理所需的数据。
[0103]ECC处理部304用于对写入数据编码和对读取数据解码。在对写入数据编码时,ECC处理部304通过对各个写入数据添加奇偶校验以预定单位对多个写入数据进行编码。采用能够通过软判决解码算法纠正错误的算法进行编码。而且,以预定单位编码后的各个数据称为“码字”。然后,ECC处理部304通过总线306将已编码的写入数据提供给非易失性存储器400。
[0104]进一步地,ECC处理部304将已编码的读取数据解码为原始数据。在该解码过程中,ECC处理部304采用软判决解码算法纠正码字中的错误。ECC处理部304通过总线306将表明纠错是否失败的纠正成功/失败信息提供给CPU303。而且,当纠错成功时,ECC处理部304通过总线306将已解码的数据提供给主机100。
[0105]CPU303用于控制整个存储控制器300。而且,当CPU303从ECC处理部304接收表明纠错失败的纠正成功/失败信息时,CPU303采用软判决解码算法纠正码字中的错误,该软判决解码算法的纠错能力高于ECC处理部304采用的算法的纠错能力。
[0106]R0M305对由CPU303执行的程序等进行保持。例如,R0M305可保持用于通过软判决解码算法执行纠错的步骤的程序。
[0107]总线306是用于主机接口 301、RAM302、CPU303、ECC处理部304、R0M305与非易失性存储器接口 307之间相互交换数据的公共路径。非易失性存储器接口 307是用于使存储控制器300和非易失性存储器400之间相互交换数据和命令的接口。
[0108]图4是图示了根据第一实施例的存储控制器300的功能配置示例的方框图。存储控制器300包括编码部310、写入处理部320、读取处理部330和纠错部340。图4中的编码部310由图3中的ECC处理部304实现。而且,图4中的写入处理部320和读取处理部330由图3中的主机接口 301、RAM302、CPU303、R0M305、总线306和非易失性存储器接口 307等实现。图4中的纠错部340由图3中的RAM302、CPU303、ECC处理部304和R0M305等实现。
[0109]编码部310用于将写入数据编码为码字。在该编码过程中,将写入数据编码为代码,该代码中的错误将通过软判决解码算法进行纠正。更具体地,写入数据被编码为LDPC(低密度奇偶检验)代码等。编码部310将生成的码字提供给写入处理部320。
[0110]要注意的是,编码部310将写入数据编码为LDPC代码;然而,除了 LDPC代码,写入数据也可被编码为采用软判决解码算法能够纠正错误的任何代码。例如,编码部310可将写入数据编码为卷积码或turbo码。
[0111]写入处理部320响应于写入命令执行将已编码的写入数据写入非易失性存储器400的步骤。当写入处理部320从主机100接收写入命令时,写入处理部320从编码部310获取被编码为码字的写入数据,并访问非易失性存储器400以将码字写入由命令指定的存储地址。[0112]读取处理部330用于响应于读取命令执行从非易失性存储器400读取读取数据的步骤。当读取处理部330从主机100接收读取命令时,读取处理部330访问非易失性存储器400以读取数据,该数据与来自由该命令指定的存储地址的作为读取数据的码字相对应。码字中各个位元的值可为“O”或“1”,即由硬判决值读取的值。读取处理部330将读取数据提供给纠错部340。
[0113]纠错部340纠正读取数据(相当于码字的数据)中的错误。纠错部340首先采用多个解码算法中具有低纠错能力(以下称为“低级算法”)的算法纠正读取数据中的错误。在采用低级算法进行的纠错失败的情况下,纠错部340采用比低级算法具有更高纠错能力的软判决解码算法(以下称为“高级算法”)纠正读取数据中的错误。在采用高级算法进行的纠错成功的情况下,纠错部340将原始数据(k位)输出至主机100,该原始数据为纠正后的无奇偶校验的码字。而且,纠错部340生成一种状态,该状态被写入表明纠正是否成功的信息,并且将该状态输出至主机100。
[0114]软判决解码算法的纠错能力等级可由诸如BER (比特误码率)等数据错误率或诸如CNR (载波噪声比)等通信质量表示。例如,在采用软判决解码算法的情况下,将错误率(t匕如BER)抑制至特定值或更低值所需的通信质量(例如CNR)越低,软判决解码算法的纠错能力越高。或者,具有固定通信质量的错误率越低,软判决解码算法的纠错能力越高。
[0115]图5是图示了根据第一实施例的码字的数据结构示例的示意图。如图5所示,编码部310将各个k位数据编码为η位码字,其中k为整数,η为比k大的整数。各个码字包括k位数据和n-k位奇偶校验。各个码字为错误检测和纠正代码(ECC)。因此,码字包含待编码的原样的数据,能够轻易将码字分为数据和奇偶校验的代码称为“系统码”。要注意的是,数据可被编码为非系统码。
[0116]图6A和6B是图示了根据第一实施例的纠错代码的数据结构示例的示意图。在LDPC编码系统中,校验矩阵H由纠错部340生成。校验矩阵H为其中的各行各列中的“I”(以下称为“权重”)的数量是固定的校验矩阵。各行和各列的权重设定为使整个校验矩阵中“I”的数量是稀疏的。图6A是图示了校验矩阵H的权重的示例的示意图。在该示例中,各列的权重为“3”,各行的权重为“6”。图6B是图示了具有图6A所示权重的校验矩阵H的示例的示意图。
[0117]图7A和7B是描述了采用根据第一实施例的生成矩阵的方法的示意图。图7A是图示了根据第一实施例的生成矩阵G的示例的示意图。编码部310采用以下表达式从图6A和6B中示例的校验矩阵H生成图7A所示的生成矩阵G。要注意的是,编码不限于采用必须用到以下表达式的校验矩阵的编码。例如,可采用具有LDGM (低密度生成矩阵)配置的校验矩阵进行编码。
[0118]GXHt=O
[0119]如图7A所示,在校验矩阵H中列数和行数分别为η和n_k的情况下,由校验矩阵H生成具有η列和k行的生成矩阵G。图7B图示了用于从生成矩阵和数据生成码字的表达式的示例。如图7B所示,码字由生成矩阵G和待编码数据的乘积生成。码字包含k位数据和n-k位奇偶校验。要注意的是,编码部310用于生成生成矩阵G ;然而,编码部310的配置并不限于此。编码部310可用于将预先生成的生成矩阵G储存在如ROM等生成矩阵存储部中,然后从生成矩阵存储部读取该生成矩阵。[0120](纠错部的配置示例)
[0121]图8是图示了根据第一实施例的纠错部340的配置示例的方框图。纠错部340包括读取数据缓冲器350、低级纠错部360、纠错程序存储部370和高级软判决纠错部380。
[0122]读取数据缓冲器350用于保持由读取处理部330读取的读取数据。
[0123]低级纠错部360用于采用比在高级软判决纠错部380中的算法具有更低纠错能力的解码算法(低级算法)纠正读取数据中的错误。例如,可采用作为一种软判决解码算法的Min-Sum算法作为低级算法。要注意的是,低级算法不限于软判决解码算法。例如,还可采用除软判决算法外的任何能够纠正读取数据中的错误的解码算法,比如采用位翻转(Bit-flipping)算法。低级纠错部360从读取数据缓冲器350中读取出读取数据并采用低级算法纠正读取数据中的错误。在纠错成功的情况下,低级纠错部360将原始数据(k位)输出至主机100,该原始数据为纠正后的无奇偶校验的读取数据。而且,低级纠错部360将表明纠正是否成功的纠正成功/失败信息提供给高级软判决纠错部380。
[0124]纠错程序存储部370用于保持通过高级算法执行纠错的步骤的纠错程序。
[0125]高级软判决纠错部380用于采用比低级纠错部360中的算法具有更高纠错能力的软判决解码算法(高级算法)纠正读取数据中的错误。例如,可采用BP (置信传播)算法作为该高级算法。BP算法也称为“和-积算法”。当高级软判决纠错部380从低级纠错部360接收表明纠正失败的纠正成功/失败信息时,高级软判决纠错部380读取纠错已经失败的读取数据。高级软判决纠错部380通过从纠错程序存储部370读取纠错程序然后执行纠错程序,开始对读取数据进行纠错。在纠错成功的情况下,高级软判决纠错部380将原始数据(k位)输出至主机100,该原始数据为纠正后的无奇偶校验的读取数据。而且,高级软判决纠错部380生成一种状态,该状态被写入表明纠正是否成功的信息,并将该状态输出至主机 100。
[0126]如上所述,因为读取数据中的各个位元的值都为硬判决值,所以将硬判决值输入低级纠错部360和高级软判决纠错部380。
[0127]要注意的是,除了 Min-Sum算法,低级纠错部360允许采用任何比高级软判决纠错部380中的算法具有更低纠错能力的软判决解码算法进行纠错。而且,除了 BP算法,高级软判决纠错部380允许采用任何比低级纠错部360中的算法具有更高纠错能力的软判决解码算法进行纠错。
[0128](低级纠错部的配置示例)
[0129]图9是图示了根据第一实施例的低级纠错部360的配置示例的方框图。低级纠错部360包括低级纠错电路361和纠正成功/失败判定部366。
[0130]低级纠错电路361是用于采用软判决解码算法纠正读取数据中的错误的电路。例如,在低级纠错电路361中,可采用Min-Sum算法作为软判决解码算法。在采用Min-Sum算法的情况下,低级纠错电路361包括变量节点处理部362和校验节点处理部364。
[0131]变量节点处理部362用于基于校验节点处理部364中的奇偶校验结果对读取数据中的错误进行检测和纠正。而且,校验节点处理部364用于对读取数据进行奇偶校验。
[0132]更具体地,变量节点处理部362从读取数据缓冲器350获取读取数据并基于该读取数据生成消息消息Uti a为实数变量,其表示纠正前的码字中的第i码元(例如,位元)的值为“O”或“I”的似然值。而且,“i”为O至η-1之间的整数,其中,η为码字的码长。码元可为构成码字的最小单位,也称为“符号”。
[0133]变量节点处理部362基于消息Utl和校验节点处理部364的奇偶校验结果生成消息να,并将消息输出至校验节点处理部364。消息为实数变量,其表示纠正后的码字中第iL码元(例如,位元)的似然值。例如,对数似然比Λ0-α)可生成为消息U(l j。对数似然比Λ (riL)为码字的第iL位元的值为“O”的概率与码字的第iL位元的值为“I”的概率之比值的对数,对数似然比可由以下表达式确定,例如:
[0134][数学式I]
[0135]
【权利要求】
1.一种控制器,其包括: 低级纠错部,其用于执行低级纠错,在所述低级纠错中,码字中的错误采用预定解码算法进行纠正;以及 高级软判决纠错部,其用于执行高级软判决纠错,在所述高级软判决纠错中,当所述低级纠错部执行的纠错失败时,所述码字中的错误采用高级算法纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
2.如根据权利要求1所述的控制器,其还包括: 读取处理部,其用于从存储器中读取所述码字并将所述码字提供给所述低级纠错部,所述码字包括多个码元; 码字获取部,其用于当所述低级纠错部执行的纠错失败时多次执行从所述存储器中读取所述码字的码字获取;以及 软判决值生成部,其用于基于由所述码字获取部读取的每一个所述码字而为每一个所述码元生成软判决值,所述软判决值与每一个所述码元的值为特定值的概率相对应,并将每一个所述码元的值被替换为所述软判决值的码字提供给所述高级软判决纠错部。
3.根据权利要求2所述的控制器,其中,所述软判决值生成部为每一个所述码元求取所述码字获取部读取所述特定值的频率,并基于所述频率生成所述软判决值。
4.根据权利要求2所 述的控制器,其还包括阈值控制部,所述阈值控制部用于在每次执行所述码字获取时在预定的范围内改变阈值,所述阈值为判断所述码元的值的阈值, 其中,所述软判决值生成部基于读取具有所述特定值的所述码元时所述阈值的最大值或最小值来生成所述软判决值。
5.根据权利要求2所述的控制器,其中, 所述软判决值生成部在执行了多次所述码字获取之后生成所述软判决值,以及 所述高级软判决纠错部在生成所述软判决值时执行所述高级软判决纠错。
6.根据权利要求2所述的控制器,其中, 所述软判决值生成部在每次执行所述码字获取时生成所述软判决值,以及 所述高级软判决纠错部在每次生成所述软判决值时执行所述高级软判决纠错。
7.根据权利要求1所述的控制器,其中, 所述码字包括多个码元,以及 所述低级纠错部为每一个所述码元生成软判决值,所述软判决值与每一个所述码元的值为特定值的概率相对应,并将每一个所述码元的值被替换为所述软判决值的码字提供给所述高级软判决纠错部。
8.—种信息处理系统,其包括: 主机,其用于发出用于指令从存储部读取码字的读取命令; 读取处理部,其用于响应于所述读取命令而从所述存储部读取所述码字; 低级纠错部,其用于执行低级纠错,在所述低级纠错中,所述码字中的错误采用预定解码算法进行纠正;以及 高级软判决纠错部,其用于执行高级软判决纠错,在高级软判决纠错中,当所述低级纠错部执行的纠错失败时,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
9.根据权利要求8所述的信息处理系统,其中, 所述主机基于所述高级软判决纠错的处理时间确定包括纠正开始命令的一个以上命令的执行顺序,并将所述一个以上命令按照所述执行顺序提供给所述高级软判决纠错部,所述纠正开始命令用于当所述低级纠错部执行的纠错失败时指令所述高级软判决纠错的开始,以及, 当所述低级纠错部执行的纠错失败且所述纠正开始命令已提供给所述高级软判决纠错部时,所述高级软判决纠错部开始所述高级软判决纠错。
10.根据权利要求8所述的信息处理系统,其中, 当所述低级纠错部执行的纠错失败且读取所述码字发生中断时,所述主机发出暂停所述高级软判决纠错的中止命令,以及 当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部响应于所述中止命令暂停正在执行的所述高级软判决纠错。
11.根据权利要求8所述的信息处理系统,其中, 所述主机还基于所述码字的类型生成表明是否执行所述高级软判决纠错的使能命令,以及, 当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部响应于所述使能信号执行所述高级软判决纠错。
12.根据权利要求8所述的信息处理系统,其中, 所述高级算法包括多种高级算法, 所述主机基于所述码字的类型指定所述多种高级算法中的一种,以及 当所述低级纠错部执行的纠错失败时,所述高级软判决纠错部采用所述指定的高级算法纠正所述码字中的错误。
13.—种信息处理系统,其包括: 控制器,其用于从存储部读取码字并执行低级纠错,在所述低级纠错中,所述码字中的错误采用预定解码算法进行纠正;以及, 主机,其用于当所述控制器执行的纠错失败时执行高级软判决纠错,在所述高级软判决纠错中,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决解码算法,所述软判决解码算法的纠错能力高于所述预定解码算法的纠错能力。
14.根据权利要求13所述的信息处理系统,其中, 当所述控制器执行的纠错失败时,所述主机发出码字输出命令,所述码字输出命令用于指令所述控制器输出所述码字,以及 所述控制器响应于所述码字输出命令从所述存储部读取所述码字并将所述码字输出至所述主机,而不执行所述低级纠错。
15.根据权利要求13所述的信息处理系统,其中, 所述控制器在所述低级纠错中生成纠正成功/失败信息并将所述纠正成功/失败信息输出至所述主机,所述纠正成功/失败信息表明对所述码字的纠错是否成功,以及 所述主机基于所述纠正成功/失败信息判断所述控制器执行的纠错是否失败。
16.—种控制器的控制方法,所述方法包括: 执行低级纠错,在所述低级纠错中,码字中的错误采用预定解码算法进行纠正;以及当所述低级纠错中执行的纠错失败时执行高级软判决纠错,在所述高级软判决纠错中,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决算法,所述软判决算法的纠错能力高于所述预定解码算法的纠错能力。
17.—种嵌入有程序的非暂存性有形记录介质,当所述计算机可读程序由计算机执行时,使得所述计算机实施一种方法,所述方法包括: 执行低级纠错,在所述低级纠错中,码字中的错误采用预定解码算法进行纠正;以及当所述低级纠错中执行的纠错失败时执行高级软判决纠错,在所述高级软判决纠错中,所述码字中的错误采用高级算法进行纠正,所述高级算法为软判决算法,所述软判决算法的纠错能 力高于所述预定解码算法的纠错能力。
【文档编号】G06F12/06GK103942154SQ201410016125
【公开日】2014年7月23日 申请日期:2014年1月14日 优先权日:2013年1月21日
【发明者】阪井塁, 藤波靖, 池谷亮志 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1