存储器系统和操作存储器系统的方法

文档序号:1186394 发布日期:2020-09-22 浏览:17次 >En<

阅读说明:本技术 存储器系统和操作存储器系统的方法 (Memory system and method of operating memory system ) 是由 阿密特·伯曼 阿里尔·道布恰克 于 2019-09-29 设计创作,主要内容包括:公开了一种存储器系统和操作存储器系统的方法。存储器控制器被配置为:对数据的多个第一帧执行第一纠错码(ECC)编码;生成分别与数据的所述多个第一帧对应的多个增量校验子单元;通过对所述多个增量校验子单元执行第二ECC编码生成增量校验子码字,其中,增量校验子码字包括一个或多个冗余数据单元;对数据的至少一个第二帧执行第三ECC编码,使得数据的编码的至少一个第二帧是位的第一向量;确定位的第二向量,使得将位的第二向量与位的第一向量相加形成位的组合向量,其中,位的组合向量是具有增量校验子的ECC码字,增量校验子的值基于所述一个或多个冗余数据单元中的至少一个预先固定。(A memory system and a method of operating a memory system are disclosed. The memory controller is configured to: performing a first Error Correction Code (ECC) encoding on a plurality of first frames of data; generating a plurality of delta-check subunits corresponding respectively to the plurality of first frames of data; generating a delta check sub-codeword by performing a second ECC encoding on the plurality of delta check sub-units, wherein the delta check sub-codeword includes one or more redundant data units; performing a third ECC encoding on at least one second frame of data such that the encoded at least one second frame of data is a first vector of bits; determining a second vector of bits such that adding the second vector of bits to the first vector of bits forms a combined vector of bits, wherein the combined vector of bits is an ECC codeword with an incremental syndrome whose value is fixed in advance based on at least one of the one or more redundant data units.)

存储器系统和操作存储器系统的方法

本申请要求于2019年3月13日提交到美国专利商标局的第16/352,052 号美国专利申请的权益,所述美国专利申请的公开通过引用整体包含于此。

技术领域

本公开涉及数据存储的技术领域,更具体地讲,涉及用于使用纠错码 (ECC)存储数据的方法和装置。

背景技术

当数据存储在存储器装置并且从存储器装置读取存储的数据时,可能出现错误。各种纠错码可被用于检测并纠正这样的错误。纠错码可包括Reed-Solomon(RS)码、博斯-乔赫里-霍克文黑姆 (Bose-Chaudhuri-Hocquenghem,BCH)码、低密度奇偶校验(LDPC)码、汉明乘积码(HPC)等。

随着数据的质量(例如,误码率)的提高,纠错码的性能可提高。然而,对于一些纠错码,存在纠错码的性能提高的速率下降或变平的点。这种现象被称为错误平层(errorfloor)。

发明内容

根据发明构思的至少一些示例实施例,一种存储器系统包括存储器控制器和存储器装置。根据发明构思的至少一些示例实施例,存储器控制器被配置为:对数据的多个第一帧执行第一纠错码(ECC)编码;生成分别与数据的所述多个第一帧对应的多个增量校验子单元;通过对所述多个增量校验子单元执行第二ECC编码生成增量校验子码字,其中,增量校验子码字包括所述一个或多个冗余数据单元;对数据的至少一个第二帧执行第三纠错码(ECC) 编码,使得数据的编码的至少一个第二帧是位的第一向量;确定位的第二向量,使得将位的第二向量与位的第一向量相加产生位的组合向量,并且基于位的组合向量生成的增量校验子单元的值基于所述一个或多个冗余数据单元中的至少一个被预先固定;以及生成位的组合向量。

根据发明构思的至少一些示例实施例,一种存储器系统包括存储器控制器和存储器装置。根据发明构思的至少一些示例实施例,存储器控制器被配置为:从存储器装置读取数据的多个帧;通过对数据的所述多个帧执行第一纠错码(ECC)解码,校正数据的所述多个帧之中的数据的一个或多个帧中的错误;在第一ECC解码之后,识别数据的所述多个帧之中的多个正确帧和至少一个错误帧;生成分别与所述多个正确帧对应的多个增量校验子单元;基于所述多个增量校验子单元生成包括信息位和冗余位的增量校验子ECC码字,使得增量校验子ECC码字的冗余位是生成的多个增量校验子单元之中的至少一个增量校验子单元的位,以及增量校验子ECC码字的信息位是生成的多个增量校验子单元之中的除了所述至少一个增量校验子单元之外的一个或多个增量校验子单元的位;以及通过对增量校验子ECC码字执行第二ECC 解码,来恢复与所述至少一个错误帧对应的增量校验子单元。

根据本发明构思的至少一些示例实施例,一种操作包括存储器控制器和存储器装置的存储器系统的方法包括:对数据的多个第一帧执行第一纠错码 (ECC)编码;生成分别与数据的所述多个第一帧对应的多个增量校验子单元;通过对所述多个增量校验子单元执行第二ECC编码生成增量校验子码字,其中,增量校验子码字包括一个或多个冗余数据单元;对数据的至少一个第二帧执行第三纠错码(ECC)编码,使得数据的编码的至少一个第二帧是位的第一向量;确定位的第二向量使得将位的第二向量与位的第一向量相加产生位的组合向量,并且基于位的组合向量生成的增量校验子单元的值基于所述一个或多个冗余数据单元中的至少一个被预先固定;以及生成位的组合向量。

附图说明

通过参照附图详细描述发明构思的示例实施例,发明构思的示例实施例的以上和其他特征和优点将变得更加清楚。附图意在描述发明构思的示例实施例,而不应被解释为限制权利要求的预期范围。除非明确指出,否则附图不应被认为按比例绘制。

图1是示出根据发明构思的至少一个示例实施例的存储器系统的示图。

图2示出根据发明构思的至少一些示例实施例的乘积码码字的示例。

图3A至图3F示出根据发明构思的至少一些示例实施例的用于执行投影博斯-乔赫里-霍克文黑姆(projected BCH)编码算法的操作。

图4是示出根据发明构思的示例实施例的包括存储器系统的计算机系统的框图。

图5是示出根据发明构思的至少一个示例实施例的存储卡的框图。

图6是示出根据发明构思的至少一个示例实施例的包括存储器系统的示例网络系统的框图。

具体实施方式

如在发明构思的领域中的传统,根据功能块、单元和/或模块描述实施例并在附图中示出实施例。本领域技术人员将理解,这些块、单元和/或模块通过电子(或光学)电路(诸如,逻辑电路、分立元件、微处理器、硬连线电路、存储器元件、布线连接等)被物理地实现,其中,电子(或光学)电路可使用基于半导体的制造技术或其他制造技术形成。在块、单元和/或模块由微处理器或类似物实现的情况下,它们可使用软件(例如,微代码)被编程以执行在此讨论的各种功能,并且可以可选地由固件和/或软件驱动。可选地,每个块、单元和/或模块可由专用硬件实现,或者被实现为用于执行一些功能的专用硬件和用于执行其他功能的处理器(例如,一个或多个编程的微处理器和相关联的电路)的组合。此外,在不脱离发明构思的范围的情况下,实施例的每个块、单元和/或模块可被物理地分成两个或更多个相互作用和离散的块、单元和/或模块。此外,在不脱离发明构思的范围的情况下,实施例的块、单元和/或模块可被物理地组合成更复杂的块、单元和/或模块。

I、概述

根据至少一些示例实施例,如下面更详细地讨论的那样,在对汉明乘积码(HPC)码字进行ECC编码的处理期间使用投影BCH编码操作可引起改善与对HPC码字执行ECC解码的处理相关联的错误平层。例如,如下面更详细地讨论的那样,通过针对HPC码字的帧生成增量校验子(delta syndrome),对生成的增量校验子本身执行ECC编码,并且存储对增量校验子进行编码产生的冗余数据,丢失的增量校验子可在对HPC码字进行解码的处理期间恢复。例如,如下面更详细地讨论的那样,当对HPC码字进行解码时,恢复的增量校验子可在解码操作期间被使用,以提高用于对HPC码字进行编码的ECC 码的纠错能力。因此,与ECC解码操作相关联的错误平层可被改善。

此外,根据发明构思的至少一些示例实施例,如下面更详细地讨论的那样,HPC码字的选择的帧可以以与选择的帧对应的增量校验子具有期望或预先固定的值的方式被编码。因此,通过将由于对其他帧的增量校验子进行编码产生的上述冗余数据的值选择为预先固定的值,冗余数据在实质上被嵌入到针对选择的帧生成的增量校验子中。因此,单独存储上述冗余数据的需要被减少或者可选地被消除。因此,与使用投影BCH来对HPC码字进行编码相关联的存储空间要求可被有利地降低。

下面在本公开的部分II中更详细地讨论用于执行上述编码和/或解码操作的示例存储器系统900。下面在本公开的部分III中更详细地讨论示例汉明乘积码(HPC)编码操作。下面在本公开的部分IV中更详细地讨论示例投影博斯-乔赫里-霍克文黑姆(BCH)编码操作。下面在本公开的部分V中更详细地讨论用于生成具有预先固定的增量校验子值的BCH码字的示例方法。下面在本公开的部分VI中更详细地讨论示例解码操作。下面在本公开的部分 VII中更详细地讨论与存储器系统900对应的实施示例。

现将在下面的本公开的部分II中讨论根据发明构思的至少一些示例实施例的存储器系统900。

II、示例存储器系统

图1是示出根据发明构思的至少一个示例实施例的存储器系统900的示图。参照图1,存储系统900包括存储器控制器1000和非易失性存储器装置 2000。

非易失性存储器装置2000可以是但不限于:闪存装置、NAND闪存装置、相变RAM(PRAM)、铁电RAM(FRAM)、磁性RAM(MRAM)等。根据发明构思的至少一个示例实施例,非易失性存储器装置2000可包括多个 NAND闪存装置。非易失性存储器装置2000可具有平面结构或者具有堆叠的存储器单元的三维(3D)存储器单元结构。

存储器装置2000可包括存储器单元阵列2100、X解码器121、电压生成器125、I/O缓冲器124、页缓冲器123和控制逻辑126,其中,存储器单元阵列2100、X解码器121、电压生成器125、I/O缓冲器124、页缓冲器123 和控制逻辑126中的每个可被实现为一个或多个电路。存储器装置还可包括输入/输出(I/O)焊盘(pad,又称为垫或焊垫)127。

存储器单元阵列2100包括多条字线和多条位线。存储器单元阵列2100 中的每个存储器单元可被实现为非易失性存储器单元。例如,存储器单元阵列2100中的每个存储器单元可具有浮置栅极或电荷存储层(诸如,电荷俘获层)。

存储器单元阵列2100可包括多个块和多个页。一个块包括多个页。页可以是编程操作和读取操作的单位,并且块可以是擦除操作的单位。例如,存储器单元阵列2100包括第一块2120和第二块2130。如图1中所示,第一块 2120包括页1至页N,第二块2130包括页1至页N,其中,N是大于1的正整数。

控制逻辑126控制存储器装置2000的整体操作。当从存储器控制器1000 接收到命令CMD时,控制逻辑126对命令CMD进行解释并根据解释的命令 CMD控制存储器装置2000执行操作(例如,编程操作、读取操作、读取重试操作或擦除操作)。

根据至少一个示例实施例,控制逻辑126可包括被配置为基于命令CMD 执行命令的硬件实现的处理器。根据发明构思的至少一个示例实施例,除了处理器之外,控制逻辑126还可包括用于存储指令的存储单元,其中,当所述步骤由包括在控制逻辑126中的处理器执行时使处理器执行特定操作。根据发明构思的至少一个示例实施例,在此描述的由存储器装置2000执行的任何操作可由控制逻辑126执行(例如,由包括在控制逻辑126中的驱动存储在包括在控制逻辑126中的存储单元中的固件的处理器执行),或者在控制逻辑126的控制下被执行。可选地,控制逻辑126可以是根据硬件被物理地编程以执行或控制在此描述的由存储器装置2000执行的任何操作的电路(例如,专用集成电路(ASIC))。

X解码器121由控制逻辑126控制,并根据行地址驱动存储器单元阵列 2100中的多条字线中的至少一条字线。

电压生成器125由控制逻辑126控制来生成写入操作、读取操作或擦除操作所需的一个或多个电压,并将生成的电压提供给由X解码器121选择的一个或多个行。

寄存器128由控制逻辑126控制,寄存器128是存储从存储器控制器1000 输入的信息的空间,并且可包括多个锁存器。例如,寄存器128可对读取电压(和/或参考电压)信息分组,并以表格的形式存储信息。

页缓冲器123由控制逻辑126控制,并根据操作模式(例如,读取操作或写入操作)作为感测放大器或写入驱动器进行操作。

I/O焊盘127和I/O缓冲器124可用作外部装置(例如,存储器控制器 1000或主机)与存储器装置2000之间交换的数据的I/O路径。I/O焊盘127 通过存储器系统总线连接到存储器控制器1000。数据和/或命令可经由I/O焊盘127和存储器系统总线从存储器装置2000输出到存储器控制器1000,或者在存储器装置2000处从存储器控制器1000接收。

根据发明构思的至少一些示例实施例,存储器装置2000响应于由存储器控制器1000生成的命令和/或控制信号进行操作。因此,在本公开中描述的由存储器装置2000执行、运行或控制的操作可被另外地或可选地称为由存储器控制器1000执行、运行或控制的操作。

存储器控制器1000可包括微处理器111、只读存储器(ROM)113、随机存取存储器(RAM)112、编码器1100、解码器1200、存储器接口116和控制器总线118。存储器控制器1000的元件111至116可通过控制器总线118 彼此电连接。

微处理器111控制包括存储器控制器1000的存储器系统900的整体操作。微处理器111是通过生成控制信号来控制其他元件的电路。当电力被供应给存储器系统900时,微处理器111在RAM 112上驱动用于操作存储器系统900 的(例如,存储在ROM 113中的)固件,从而控制存储器系统900的整体操作。根据发明构思的至少一个示例实施例,微处理器111还可发出命令或输出控制信号,以控制存储器控制器1000的其他元件(包括例如ROM 113、RAM 112、编码器1100、解码器1200、存储器接口116和控制总线118中的一些或全部)的操作。根据发明构思的至少一个示例实施例,在此描述的由存储器控制器1000执行的任何操作可由微处理器111执行(例如,由驱动以上提及的固件的微处理器执行),或者在微处理器111的控制下被执行。

虽然存储器系统900的驱动固件代码被存储在ROM 113中,但是发明构思的一个或多个示例实施例不限于此。固件代码还可被存储在存储器系统900 的除了ROM 113之外的一部分中。因此,微处理器111的控制或干预不仅可包括微处理器111的直接控制,还可包括作为由微处理器111驱动的软件的固件的干预。

可选地,微处理器111可以是根据硬件被物理地编程以执行或控制在此描述的由存储器控制器1000执行的任何操作的电路(例如,(ASIC))。

作为用作缓冲器的存储器的RAM 112可存储从主机或微处理器111输入的初始命令、数据和各种变量,或者存储从存储器装置2000输出的数据。根据发明构思的至少一些示例实施例,RAM 112可存储输入到存储器装置2000 的数据、各种参数和变量以及从存储器装置2000输出的数据、各种参数和变量。

存储器接口116可用作存储器控制器1000与存储器装置2000之间的接口。存储器接口116经由存储器系统总线连接到存储器装置2000的I/O焊盘 127并且可经由存储器系统总线与I/O焊盘127交换数据。此外,存储器接口 116可创建适用于存储器装置2000的命令,并将创建的命令提供给存储器装置2000的I/O焊盘127。存储器接口116提供将由存储器装置2000执行的一个或多个命令以及存储器装置2000的一个或多个地址ADD。

根据发明构思的至少一个示例实施例,解码器1200可以是纠错码(ECC) 解码器,并且编码器1100可以是ECC编码器。根据发明构思的至少一个示例实施例,解码器1200和编码器1100执行错误位校正。在数据被提供给存储器装置2000之前,编码器1100可通过对数据执行纠错编码,来生成添加有一个或多个奇偶校验位和/或冗余位的数据。一个或多个奇偶校验位和/或冗余位可被存储在存储器装置2000中。

解码器1200可对输出数据执行纠错解码,基于纠错解码的结果确定纠错解码是否成功,并且基于确定结果输出指令信号。读取数据可被发送至解码器1200,解码器1200可使用一个或多个奇偶校验位和/或冗余位来校正数据的错误位。当错误位的数量超过可被校正的错误位的限制时,解码器1200不能校正错误位,导致纠错失败。

编码器1100和解码器1200中的每个可包括纠错电路、系统或装置。编码器1100和解码器1200可使用例如低密度奇偶校验(LDPC)码、博斯-乔赫里-霍克文黑姆(BCH)码、turbo码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)和编码调制(诸如,网格编码调制(TCM)或分组编码调制(BCM))中的一个或多个来执行纠错。此外,如下面更详细地讨论的那样,编码器1100和解码器1200可使用汉明乘积码(HPC)执行纠错。

现将在下面的本公开的部分III中讨论根据发明构思的至少一些示例实施例的示例编码操作。

III、示例编码操作

通常,乘积码(或迭代码)是串行级联码。乘积码的概念相对简单且相对有效,它通过使用两个或更多个短的块码(block code)来构建非常长的块码。例如,乘积码P可被定义为其中,C1和C2分别是第一系统线性块码和第二系统线性块码,第一码C1具有参数(n1,k1,δ1),第二码C2具有参数(n2,k2,δ2),ni、ki和δi分别表示码字长度、信息位的数量和最小汉明距离。乘积码的一种类型是汉明乘积码(HPC)。例如,当第一码C1和第二码C2均为扩展汉明码时,乘积码P是HPC。使用HPC对数据进行编码产生 HPC码字。图2示出HPC码字200的示例。现在将在下面参照算法1和HPC 码字200讨论使用HPC对数据进行编码的处理。

下面使用伪代码示出算法1的操作。根据发明构思的至少一些示例实施例,算法1的每个操作可由存储器控制器1000(例如,使用微处理器111) 执行或者在存储器控制器1000的控制下被执行。

Figure RE-GDA0002263642630000081

将针对以下情况来讨论算法1:第一码C1和第二码C2均为扩展汉明码, k1=183,k2=183,n1=192,n2=192。因此,产生的乘积码P的参数是n=n1×n2、 k=k1×k2、δ=δ1×δ2,码率R通过R=R1×R2来给出,其中,Ri是第i码Ci的码率。此外,在本公开中,“冗余”数据、“冗余”位等还可被称为“奇偶校验”数据、“奇偶校验”位等。此外,在本公开中,“冗余”数据、“冗余”位或“奇偶校验”数据、“奇偶校验”位等通常可被称为(例如,类似于BCH码或RS 码的ECC码的)“开销”。

参照算法1,在操作(A1)中,存储器控制器1000(例如,从外部装置) 接收信息位210并将信息位210布置成k1行和k2列。因此,如图2中的HPC 码字200所示,存储器控制器1000将信息位210布置成183列和183行。在本公开中,数据的行(例如,HPC码字200的行)还可被称为“帧”。

在操作(A2)中,存储器控制器1000使用第二码C2对k1行进行编码。例如,参照图2中的HPC码字200,存储器控制器1000使用第二码C2对信息位210的183行进行编码,从而生成图2中示出的冗余数据的183个相应的行作为冗余行230。在图2中示出的示例中,183个冗余行230均包括9个冗余位。例如,因为如上所述,第二码C2是扩展汉明码,所以9个冗余位可包括8个扩展汉明码奇偶校验位和一个附加奇偶校验位,作为总共8+1=9个冗余位。因此,HPC码字200的每行包括n2(即,183+9=192=n2)个位。因此,HPC码字200包括n2列。

在操作(A3)中,存储器控制器1000使用第一码C1对n2列进行编码。例如,参照图2中的HPC码字200,存储器控制器1000使用第一码C1对信息位210的183列进行编码,从而产生183个冗余列220。在图2中示出的示例中,183个冗余列220均包括9个位。此外,存储器控制器1000使用第一码C1对包括在183个冗余行230中的9列的位进行编码,从而产生9×9位的校验上校验块(check-on-check block)240。

虽然上面参照信息位210的行首先被编码(例如,在操作(A2)中),此后编码的行的列被编码(例如,在操作(A3)中)的示例情况描述了算法 1,但是根据发明构思的至少一些示例实施例,操作(A3)可在操作(A2) 之前被执行(即,操作(A3)可包括使用码C1对k2列进行编码,操作(A2) 可包括在操作(A3)之后使用码C2对n1行进行编码)。

根据发明构思的至少一些示例实施例,在操作(A1)至操作(A3)之后,存储器控制器1000将HPC码字200存储在存储器装置2000上。例如,存储器控制器1000可将HPC码字200和一个或多个写入命令发送至存储器装置 2000,存储器装置2000可通过将HPC码字200写入存储器单元阵列2100(例如,将HPC码字200写入存储器单元阵列2100的存储器页)来响应一个或多个写入命令。

如上所述,产生的乘积码P的参数是n=n1×n2、k=k1×k2、δ=δ1×δ2,码率R通过R=R1×R2来给出,其中,Ri是第i码Ci的码率。因此,通过组合具有小的最小汉明距离的短码,可构造具有相对大的最小汉明距离的相对长的块码。给定用于构造乘积码P的过程,HPC码字200的最后(n2-k2)个列是第一码C1的码字。通过使用矩阵生成器,可示出HPC码字200的最后(n1-k1) 个行是第二码C2的码字。因此,HPC码字200的所有行是第二码C2的码字,并且HPC码字200的所有列是第一码C1的码字。

根据发明构思的至少一些示例实施例,可使用投影BCH编码来执行算法 1的操作(A2),现将在下面的本公开的部分IV中更详细地讨论投影BCH编码。

IV、投影BCH编码

根据发明构思的至少一些示例实施例,例如,根据下面讨论的算法2,投影BCH编码算法被应用于例如HPC码字200的行。例如,根据发明构思的至少一些示例实施例,除了上面参照算法1的操作(A2)讨论的扩展汉明码编码以外,投影BCH编码算法被应用,或者可选地,投影BCH编码算法代替上面参照算法1的操作(A2)讨论的扩展汉明码编码。例如,根据发明构思的至少一些示例实施例,算法1的操作(A2)包括:对与HPC码字200 对应的数据的k1行执行下面讨论的算法2的投影BCH编码操作(即,不是对 k1行执行扩展汉明码编码);并且针对HPC码字200的每行生成奇偶校验位并存储奇偶校验位。奇偶校验位可根据已知的方法来生成。

此外,根据发明构思的至少一些示例实施例,关于算法1的操作(A3),对码字(例如,HPC码字200)的列执行上面参照算法1讨论的扩展汉明码编码,但是下面针对算法2讨论的投影BCH编码未被应用于码字(例如, HPC码字200)的列。

因此,根据发明构思的至少一些示例实施例,在算法1中:通过存储器控制器1000对码字的信息位的行执行根据算法2的投影BCH编码,然后,通过存储器控制器1000对信息位的投影BCH编码的行之中的位的列执行扩展汉明码编码,从而生成二维HPC码字。

此外,根据发明构思的至少一些其他示例实施例,在算法1中:通过存储器控制器1000对码字的信息位的列执行扩展汉明码编码,然后,通过存储器控制器1000对信息位的扩展汉明码编码的列之中的位的行执行根据算法2 的投影BCH编码,从而生成二维HPC码字。

如下面参照算法2更详细地讨论的那样,投影BCH编码算法包括对信息位210之中的数据的行执行BCH编码,从而针对每行生成BCH冗余数据。此外,投影BCH编码算法包括生成用于提高上述BCH冗余数据的纠错能力的增量校验子(ds)。每个增量校验子可对应于多个级(stage)i中的一个。在级i的相应的增量校验子的帮助下可被适当地校正的每行的错误位的总数被表示为ti(或ti)。此外,如下面参照算法2更详细地讨论的那样,使用RS 码对同一级的增量校验子进行级联和编码,从而生成RS冗余数据。RS码的纠错能力随着编码的增量校验子的级变化而变化。使用上面提及的用于级i 的RS冗余数据可适当地校正级的增量校验子数据的错误行的总数被表示为 Fi(或Fi)。

因此,投影BCH编码算法的参数可由向量F和t来表示。为了简明的目的,如图3A至图3F中所示,下面将仅参照码字300的数据的8帧(即,第一帧31至第八帧38)来解释算法2。此外,下面将参照向量F=[F0 F1 F2]=[8 3 1]和向量t=[t0 t1 t2]=[6 7 9]的示例来解释算法2。

虽然为了简明起见,下面参照包括在码字300中的信息位的8帧来解释算法2,但是可针对多于数据的8帧来执行算法2。例如,存储器控制器1000 可针对包括在图2中示出的HPC码字200中的位的192帧来执行算法2。

下面使用伪代码示出算法2的操作。根据发明构思的至少一些示例实施例,算法2的每个操作可由存储器控制器1000(例如,使用微处理器111) 执行或者在存储器控制器1000的控制下被执行。

算法2

Figure RE-GDA0002263642630000121

根据发明构思的至少一些示例实施例,算法2具有三个部分:部分0、部分1和部分2。参考部分0,在操作(B1)中,存储器控制器1000利用t0 位的纠错能力对F0-F1帧进行编码。例如,F0-F1=8-3=5。因此,如图3A中所示,使用能够校正t0位的BCH码对第一帧31至第五帧35(例如,第一个 F0-F1=5帧)的信息位(INFO)310进行编码,从而生成BCH冗余数据315。因此,如图3A的项(b)中所示,针对第一帧31至第五帧35中的每帧生成 mBCH×t0位的BCH冗余数据,其中,mBCH表示与BCH码对应的伽罗瓦域 (Galois field)中的位数。在图3A至图3F中示出的示例中,mBCH=8。因此,针对第一帧31至第五帧35中的每个,存储器控制器1000生成mBCH×t0=8 ×6=48位的BCH冗余数据。在本公开中,值mBCH有时也可被简称为m。

然后,参照算法2的部分1,在操作(B2)中,存储器控制器1000针对 F0-F1帧生成增量校验子。例如,如图3B的项(c)中所示,针对第一个F0-F1=5 帧(即,第一帧31至第五帧35)中的每个,存储器控制器1000生成级1增量校验子317A、第一级2增量校验子317B和第二级2增量校验子317C。在本公开中,增量校验子还可被称为“ds”或“DS”。根据发明构思的至少一些示例实施例,如图3B中所示,级1ds 317A可包括F0-F1=5个单独的增量校验子单元,并且可在BCH解码操作期间被使用,以将BCH冗余数据315的纠错能力从t0位增加到t1位。根据发明构思的至少一些示例实施例,如图 3B中所示,第一级2ds 317B和第二级2ds 317C均可包括F0-F1=5个单独的 ds单元,并且可在BCH解码操作期间与级1ds 317A一起被使用,以将BCH 冗余数据315的纠错能力增加到t2位。ds 317A至ds 317C可根据用于生成 ds的已知方法来生成。

在操作(B3)中,存储器控制器1000针对ds的t1-t0个列生成F1个单元的里德-所罗门(RS)码开销(即,F1个单元的RS冗余数据)。例如,根据发明构思的至少一些示例实施例,如图3B的项(d)中所示,存储器控制器1000可对级1ds 317A(即,ds 317A至ds 317C中的第一[t1-t0=7-6=1]列 ds)的单独的单元进行级联,并且使用RS码对级1ds 317A的级联的单元进行编码。作为编码的结果,存储器控制器1000生成RS开销320。如图3B中的项(d)中所示,RS开销320包括F1=3个单元的RS开销(第一RS开销单元至第三RS开销单元320A、320B和320C)。根据发明构思的至少一些示例实施例,第一RS开销单元320A至第三RS开销单元320C中的每个可与包括在ds 317A至ds 317C中的单独的ds单元具有相同的大小(例如,相同的位数)。在本公开中,术语“RS开销单元”被认为与“RS冗余数据单元”同义,并且还可被称为“RS冗余数据单元”。根据发明构思的至少一些示例实施例,图3B至图3F中的被标记“ds”的每个框表示单独的ds单元。根据发明构思的至少一些示例实施例,单个增量校验子可包括一个或多个ds单元。例如,根据发明构思的至少一些示例实施例,组合的第一级2ds 317B和第二级2ds 317C可被认为是均包括5个ds单元的多个级2增量校验子。

在操作(B4)中,针对F1-F2帧,存储器控制器1000使用具有t1位的纠错能力的码对该帧进行编码,并将编码的结果设置为向量x(其中,向量x 可被称为向量X)。例如,存储器控制器1000可使用具有t1=7位的纠错能力的BCH码对F1-F2=3-1=2帧进行编码。根据发明构思的至少一些示例实施例,在操作(B4)中编码的F1-F2帧可以是在操作中(B1)中已被编码的F0-F1 (例如,5)帧之后的下一个F1-F2(例如,2)帧。例如,在图3A至图3F 中示出的示例中,在操作(B4)中,存储器控制器1000对第六帧36和第七帧37的信息位310进行编码,从而生成如图3C的项(e)中所示的中间BCH 冗余数据332。如图3C的项(e)中所示,针对第六帧36和第七帧37中的每个,中间BCH冗余数据332包括mBCH×t1=8×7=56位。然后,存储器控制器1000可将第六帧36和第七帧36中的每个的信息位310和中间冗余数据 332设置为向量x(即,分别对应于第六帧36和第七帧37的向量)。例如,图3C中示出的项(e)的第六帧36可对应于向量x6,图3C中示出的项(e) 的第七帧37可对应于向量x7

在操作(B5)中,针对F1-F2帧,存储器控制器1000计算多个y向量 (其中,向量y可被称为向量Y)。根据发明构思的至少一些示例实施例,如将在下面的本公开的部分V中更详细地讨论的那样,在操作(B5)中针对第 r(r是正整数)帧计算的y向量yr是当与在操作(B4)中针对第r帧设置的相应的x向量xr相加时产生第r帧组合向量vr使得针对第r帧组合向量vr生成的一个或多个单元的ds的值与期望的(例如,预先固定的)值匹配的向量。具体地讲,如下面将参照图3C和图3D更详细地讨论的那样,在操作(B5) 中,存储器控制器1000确定第6帧y向量和第7帧y向量(向量y6 334A和向量y7 334B),使得在第6帧y向量y6 334A和第7帧y向量y7 334B分别与第6帧x向量x6和第7帧x向量x7(即,图3C的项(e)的帧36和帧37的数据)相加之后,针对第六帧36(即,组合向量v6)生成的级1ds单元的值和针对第七帧37(即,组合向量v7)生成的级1ds单元的值将分别等于在操作(B3)中生成的第一RS开销单元320A的值和第二RS开销单元320B的值。

再次参照操作(B5),如图3C的项(f)中所示,存储器控制器1000可使用第一RS开销单元320A来生成与第六帧36对应的第6帧y向量y6 334A,使用第二RS开销单元320B来生成与第七帧37对应的第7帧y向量y7 334B。然后,在操作(B6)中,如图3C中的项(g)所示,存储器控制器1000将与第六帧36和第七帧37对应的y向量(即,第6帧y向量y6 334A和第7 帧y向量y7 334B)和与第六帧36和第七帧37对应的x向量(在算法2的操作(B4)中生成的x6和x7(即,与第六帧36和第七帧37对应的信息位310 和中间BCH冗余数据332))进行组合,从而分别生成与第六帧36和第七帧 37对应的组合向量v6和组合向量v7。组合向量v6包括与第六帧36对应的信息位310和最终BCH冗余数据333,并且组合向量v7包括与第七帧37对应的信息位310和最终BCH冗余数据333。如图3C中的项(f)所示,最终BCH冗余数据333可包括与第六帧36对应的第一最终BCH冗余数据336A 和与第七帧37对应的第二最终BCH冗余数据336B。此时,如上面所讨论的那样,如果级1ds单元基于第六帧36和第七帧37(即,组合向量v6和组合向量v7)来生成,则级1ds单元的值将分别等于第一RS开销单元320A的值和第二RS开销单元320B的值。

然后,参照算法2的部分2,在操作(B7)中,存储器控制器1000针对 F1-F2帧生成增量校验子。例如,如图3D的项(h)中所示,针对F1-F2=2 帧(即,在操作(B2)中针对其生成增量校验子的F0-F1=5帧之后的下一个 2帧(第六帧36至第七帧37))中的每个,存储器控制器1000生成第一RS 开销单元320A和第二RS开销单元320B作为级1增量校验子,生成第一级2增量校验子337A,并生成第二级2增量校验子337B。根据发明构思的至少一些示例实施例,如图3D中所示,第一级2ds 337A和第二级2ds 337B均可包括F1-F2=2个单独的ds单元,并且可在BCH解码操作期间被使用以将第六帧36和第七帧37的最终BCH冗余数据333的纠错能力从t1位增加到 t2位。ds 337A至ds 337B可根据用于生成ds的已知方法来生成。

在操作(B8)中,存储器控制器1000针对ds的t2-t1个列生成F2个单元的里德-所罗门(RS)码开销(即,F2个单元的RS冗余数据)。例如,如图3D的项(i)中所示,存储器控制器1000可生成包括第一帧31至第七帧 37中的每个的第一级2ds单元的第一级2ds 347A。此外,还如图3D的项(i) 中所示,存储器控制器1000可生成包括第一帧31至第七帧37中的每个的第二级2ds单元的第二级2ds 347B。此外,根据发明构思的至少一些示例实施例,如图3D的项(i)中所示,存储器控制器1000可对ds的尚未使用RS码进行编码的下[t2-t1=9-7=2]列进行编码。例如,存储器控制器1000可将第一级2ds 347A的七个单独的单元进行级联,并且使用RS码对第一级2ds 347A 的级联的单元进行编码,从而生成F2=1个第四RS开销单元350A。此外,存储器控制器1000可对第二级2ds 347B的七个单独的单元进行级联,并且使用RS码对第二级2ds 347B的级联的单元进行编码,从而生成F2=1个第五RS开销单元350B。根据发明构思的至少一些示例实施例,第四RS开销单元350A至第五RS开销单元350B中的每个可与包括在ds 347A至ds 347B 中的单独的ds单元具有相同的大小(例如,相同的位数)。

在操作(B9)中,针对F2帧,存储器控制器1000使用具有t2位的纠错能力的码对该帧进行编码,并将编码的结果设置为向量x。例如,存储器控制器1000可使用具有t2=9位的纠错能力的BCH码对F2=1帧进行编码。根据发明构思的至少一些示例实施例,在操作(B9)中编码的F2帧可以是F0= 8帧(即,第一帧31至第八帧38中的全部)中的尚未编码的下一个F2(例如,1)帧。例如,在图3A至图3F中示出的示例中,如图3E的项(j)中所示,在操作(B9)中,存储器控制器1000对尚未根据算法2的当前迭代进行编码的唯一帧(例如,第八帧38)的信息位310进行编码,从而生成中间BCH 冗余数据362。如图3E的项(j)中所示,针对第八帧38,中间BCH冗余数据362包括mBCH×t2=8×9=72位。然后,存储器控制器1000可将第八帧38的信息位310和中间冗余数据362设置为x向量x8

在操作(B10)中,针对F2帧中的每个,存储器控制器1000计算y向量,并将向量yvec设置为向量y。根据发明构思的至少一些示例实施例,如将在下面的本公开的部分V中更详细地讨论的那样,在操作(B10)中针对第r帧计算的y向量yr是当与在操作(B9)中针对第r帧设置的相应的x向量xr相加时产生组合向量vr,使得针对向量vr生成的ds的一个或多个单元的值与期望的(例如,预先固定的)值匹配的向量。

具体地讲,如下面将参照图3E更详细地讨论的那样,在操作(B10)中,存储器控制器1000确定第三y向量y8 364,使得在向量y8 364与x向量x8 (即,图3E的项(j)的第八帧38的数据)相加之后,针对第八帧38(即,组合向量v8)生成的级1ds单元的值、第一级2ds单元的值和第二级2ds单元的值将分别等于在操作(B3)中生成的第三RS开销单元320C的值、在操作(B8)中生成的第四RS开销单元350A的值和第五RS开销单元350B的值。

再次参照操作(B10),如图3E的项(k)中所示,存储器控制器1000 可使用第三RS开销单元320C、第四RS开销单元350A和第五RS开销单元 350B来生成与第八帧38对应的第三y向量y8 364。然后,在操作(B11)中,如图3E中的项(l)所示,存储器控制器1000将与第八帧38对应的y向量 (即,第三y向量y8 364)和与第八帧38对应的x向量(在算法2的操作(B9)中生成的x向量x8(即,与第八帧38对应的信息位310和中间BCH冗余数据362))进行组合,从而生成与第八帧38对应的组合向量v8。组合向量v8包括与第八帧38对应的信息位310和最终BCH冗余数据363。此时,如上面所讨论的那样,如果级1ds单元、第一级2ds单元和第二级2ds单元基于第八帧38(即,组合向量v8)来生成,则级1ds单元的值、第一级2ds单元的值和第二级2ds单元的值将分别等于第三RS开销单元至第五RS开销单元 320C、350A和350B的值。

图3F示出由使用算法2对第一帧31至第八帧38的信息位执行根据发明构思的至少一些示例实施例的投影BCH编码算法产生的示例码字300。如图 3F中所示,根据发明构思的至少一些示例实施例,帧中的信息位的量可随着帧中的冗余数据(例如,与第一帧31至第五帧35对应的BCH冗余数据313、与第六帧36和第七帧37对应的最终BCH冗余数据333以及与第八帧38对应的最终BCH冗余数据363)的量的增加而减小。

接下来,下面在本公开的部分V中讨论用于生成具有期望的或者可选地预先固定的增量校验子值的BCH码字的示例方法。

V、用于生成具有预先固定的增量校验子值的BCH码字的示例方法

将被解决的问题可被视为确定如何创建BCH码字,使得BCH码字的增量校验子值保证具有期望的或者可选地预先固定的(即,预定的)值。

现将在下面参照表达式1至表达式7讨论以上提及的问题的示例解决方案。在下面的表达式1至表达式7中,符号A[B x C]或AB x C表示具有大小B× C的矩阵(或向量)A。

可参照以下约束来定义上面提及的问题的一种解决方案,该问题确定如何创建BCH码字,使得BCH码字的增量校验子值具有期望的或者可选地预先固定的值:

令v=[u,p]为n位向量,其中,u是数据位,p是奇偶校验位(例如,具有mBCH×t1位的大小);并且

满足下面的表达式1。

Figure RE-GDA0002263642630000171

参照表达式1,值Δs表示增量校验子约束。例如,根据发明构思的至少一些示例实施例,增量校验子约束Δs可与上述期望的或者可选地预定的增量校验子值相关联。例如,根据发明构思的至少一些示例实施例,增量校验子约束Δs本身可以是上述期望的或者可选地预定的增量校验子值。

根据发明构思的至少一些示例实施例,可通过将问题分解为两个部分来实现上面提到的解决方案:

1、信息部分x应满足下面的表达式2。

2、约束部分

Figure RE-GDA0002263642630000183

应满足下面的表达式3。

Figure RE-GDA0002263642630000184

可通过根据下面的表达式4对具有mBCH×t1个奇偶校验位的数据u进行编码来实现满足表达式2。

Figure RE-GDA0002263642630000185

满足表达式3可通过代数解来实现。例如,根据发明构思的至少一些示例实施例,是满秩。因此,表达式5可如下所示地确定。

Figure RE-GDA0002263642630000187

因此,可导出下面的表达式6。

Figure RE-GDA0002263642630000188

结果,与增量校验子约束Δs对应的y值可根据下面的表达式7来确定。

参照上面的表达式7,根据发明构思的至少一些示例实施例,存储器控制器1000可存储针对每个纠错能力t的矩阵U。根据发明构思的至少一些示例实施例,矩阵U是预定矩阵。例如,在算法1和/或算法2的操作被执行之前,矩阵U可被确定并被存储在存储器控制器1000中。根据发明构思的至少一些示例实施例,矩阵U由存储器控制器1000和/或存储器系统900的制造商或用户来确定(例如,离线),并且在存储器控制器1000执行ECC解码操作之前,矩阵U由存储器控制器1000存储(例如,在ROM 113和/或RAM 112)中。根据发明构思的至少一些示例实施例,本公开中讨论的矩阵U可根据已知方法来确定。例如,根据发明构思的至少一个示例实施例,可使用第 2019/0007062号美国专利申请公开中描述的方法来确定本公开中讨论的矩阵 U。

因此,根据发明构思的至少一些示例实施例,存储器控制器1000可基于增量校验子约束Δs和可被存储在存储器控制器1000中的适当的U矩阵来确定上面参照算法2讨论的y向量。例如,现将在下面提供将根据至少一些示例实施例的用于生成具有预先固定的增量校验子值的BCH码字的方法应用于算法2的操作(B4)至(B6)和操作(B9)至(B11)的讨论。

如在上面的算法2的讨论中指出的那样,如图3C的项(e)所示,在操作(B4)中,通过使用具有t1=7位的纠错能力的BCH码对第六帧36和第七帧37进行编码来生成x向量x6和x7

通过将上面的表达式2应用于操作(B4),可看出

Figure RE-GDA0002263642630000191

(其中,x6和x7是长度为n的行向量,Ht1是大小为m·t1×n的矩阵)。

如在上面的算法2的讨论中指出的那样,如图3B至图3D所示,在操作 (B5)中,存储器控制器1000确定第6帧y向量y6 334A和第7帧y向量y7 334B,使得将第6帧y向量y6 334A和第7帧y向量y7 334B分别与第6帧x 向量x6和第7帧x向量x7相加产生第6帧组合向量v6和第7帧组合向量v7,并且针对第6帧组合向量v6生成的级1ds单元的值将等于第一RS开销单元320A的值,针对第7帧组合向量v7生成的级1ds单元的值将等于第二RS开销单元320B的值。此外,在操作(B6)中,存储器控制器1000通过将第6 帧x向量x6和y向量y6相加在一起来生成第6帧组合向量v6,并且存储器控制器1000通过将第7帧x向量x7和y向量y7相加在一起来生成第7帧组合向量v7

通过将上面的表达式7应用于操作(B5),存储器控制器1000可通过根据下面的表达式8确定第6帧y向量y6和第7帧y向量y7来执行操作(B5):

y6=Δs6·Ut1

y7=Δs7·Ut1。 (表达式8)

根据发明构思的至少一些示例实施例,在表达式8中,第6帧增量校验子约束Δs6由在操作(B3)中预先确定的第一RS开销单元320A的值来定义;第7帧增量校验子约束Δs7由也在操作(B3)中预先确定的第二RS开销单元 320B的值来定义;矩阵Ut1可以是被存储在存储器控制器1000中并且具有大小m·(t1-t0)×m·t1(即,m·Δt×m·t1)的预先计算的矩阵。

因此,存储器控制器1000可通过根据下面的表达式9确定第6帧组合向量v6和第7帧组合向量v7来执行操作(B6):

v6=[0 y6]+x6

v7=[0 y7]+x7, (表达式9)

其中,如例如图3C的项(f)和(g)中所示,第6帧y向量y6和第7帧y 向量y7均可利用n-m·t1个零来填充。

如在上面的算法2的讨论中指出的那样,如图3E的项(j)所示,在操作(B9)中,通过使用具有t2=9位的纠错能力的BCH码对第八帧38进行编码来生成第8帧x向量x8

当上面的表达式2被应用于操作(B9)时,可看出

Figure RE-GDA0002263642630000201

(其中, x8是长度为n的行向量,Ht2是大小为m·t2×n的矩阵)。

如在上面的算法2的讨论中指出的那样,如图3D至图3E所示,在操作 (B10)中,存储器控制器1000确定第8帧y向量y8 364,使得将向量y8 364 以第八帧x向量x8相加产生第8帧组合向量v8,并且针对第8帧组合向量 v8生成的级1ds单元的值、第一级2ds单元的值和第二级2ds单元的值将分别等于在操作(B3)中生成的第三RS开销单元320C的值、在操作(B8) 中生成的第四RS开销单元350A的值和第五RS开销单元350B的值。

此外,在操作(B11)中,存储器控制器1000通过将第8帧x向量x8和y向量y8相加在一起来生成第8帧组合向量v8

通过将上面的表达式7应用于操作(B10),第8帧y向量y8可根据下面的表达式10来确定:

y8=Δs8·Ut2。 (表达式10)

根据发明构思的至少一些示例实施例,在表达式10中,第8帧增量校验子约束Δs8由在操作(B3)中生成的第三RS开销单元320C的值、在操作(B8) 中生成的第四RS开销单元350A的值和第五RS开销单元350B的值来定义;矩阵Ut2可以是被存储在存储器控制器1000中并且具有m·(t2-t0)×m·t2 (即,m·Δt×m·t2)的大小的预先计算的矩阵。

因此,存储器控制器1000可通过根据下面的表达式11确定第8帧组合向量v8来执行操作(B11)

v8=[0 y8]+x8, (表达式11)

其中,如例如图3E的项(k)和(l)中所示,第8帧y向量y8可利用n-m·t2个零来填充。

下面在本公开的部分VI中讨论根据发明构思的至少一些示例实施例的示例解码操作。

VI、示例解码操作

根据发明构思的至少一些示例实施例,在已对HPC码字200执行扩展 HPC编码和投影BCH编码(即,以上面参照算法1和算法2讨论的方式) 并且存储器控制器1000已将HPC码字200存储在存储器装置2000中之后的某个时刻,存储器控制器1000可从存储器装置2000读取存储的HPC码字200。例如,存储器控制器可将一个或多个读取命令发送到存储器装置2000。然后,存储器装置2000可通过从存储器单元阵列2100的存储HPC码字200的存储器单元(例如,存储器页)读取HPC码字200的位并且将读取的HPC码字 200的位发送到存储器控制器1000,来响应一个或一个读取命令。此外,根据发明构思的至少一些示例实施例,存储器控制器1000可通过(例如,使用解码器1200)执行内码解码操作之后执行外码解码操作,来对接收到的HPC 码字200进行解码。

例如,内码解码操作可包括顺序地对HPC码字200的行和列进行解码(例如,通过对HPC码字200的行和列执行扩展汉明码解码)以便降低解码复杂度。此外,可通过执行分量码的最大似然解码(MLD)(例如,软解码)来实现提高的性能。例如,根据至少一些示例实施例,解码器1200可能能够执行可用于在对HPC码字200的行和列进行解码时获得提高的性能的软输入/ 软输出(SISO)解码(例如,作为内码解码操作的一部分)。例如,根据至少一些示例实施例,解码器1200可以是或包括SISO解码器。关于CTC(卷积 Turbo码),使用用于对HPC码字200的行和列进行解码的SISO解码器(例如,解码器1200),存储器控制器1000可迭代HPC码字200的行和列的顺序解码,从而在每次迭代之后降低误码率(BER)。

例如,存储器控制器1000可使用解码器1200来对行执行SISO解码,然后对列执行SISO解码,反之亦然。在每次这样的迭代中,软数据可从行/ 列移动到列/行,并且在多次迭代之后,算法可以(以高概率)收敛到满足用于扩展汉明码的行条件和列条件二者的码字。

然后,在上述内码解码完成之后,存储器控制器1000可使用解码器1200 来执行外码解码,以便校正仍存在于HPC码字200中的错误(如果有的话)。外码解码操作可用于改善整个解码操作的错误平层,并且还验证HPC码字 200没有错误。当解码器1200发现满足用于扩展汉明码的行条件和列条件二者的码字但是剩余的错误模式具有太多错误以至于外码不能校正时,可能引起错误平层。然而,根据发明构思的至少一些示例实施例,通过根据上面讨论的算法2对HPC码字200的行执行投影BCH编码,由存储器控制器1000 执行的外码解码操作的有效性可被提高,因此与外码解码操作相关联的错误平层的影响可被减小。下面通过算法3示出根据发明构思的至少一些示例实施例的示例外码解码操作。下面使用伪代码来示出算法3的操作。根据发明构思的至少一些示例实施例,算法3的每个操作可由存储器控制器1000(例如,使用微处理器111)执行或者在存储器控制器1000的控制下被执行。

算法3

Figure RE-GDA0002263642630000221

为了简明起见,下面参照码字300描述算法3。下面将参照已根据算法1 和算法2(即,在使用算法2完成算法1的操作A2的情况下)对图3F的码字300进行编码的情况描述算法3。

虽然为了简明起见,下面参照包括在码字300中的位的8帧来解释算法 3,但是可针对多于8帧的数据来执行算法3。例如,存储器控制器1000可针对包括在图2中示出的HPC码字200中的位的192帧来执行算法3。

在操作(C1)中,在存储器控制器1000完成对码字300的行和列的上述内码解码操作之后,存储器控制器1000对码字300的帧(即,第一帧31 至第八帧38)执行BCH解码操作。

在操作(C2)中,存储器控制器1000根据已知的BCH解码方法,确定第一帧31至第八帧38中的哪些帧已被正确解码(在本公开中被称为“正确帧”)以及第一帧31至第八帧38中的哪些帧包括错误(在本公开中被称为“错误帧”)。

在操作(C3)中,针对第一帧31至第八帧38中的每个正确帧,存储器控制器1000生成与正确帧对应的级1增量校验子至级N增量校验子。根据发明构思的至少一些示例实施例,N表示生成增量校验子的最大级。在上面参照图3A至图3F讨论的码字300的示例中,存在两个级的增量校验子(例如,图3B中的项(c)中示出的级1增量校验子317A以及图3D中的项(i) 中示出的第一级2增量校验子347A和第二级2增量校验子347B),因此N=2。

操作(C3)还包括生成作为增量校验子的嵌入的RS冗余数据。具体地讲,如上面参照图3A至图3F和本公开的部分V讨论的那样,针对组合向量 v6和组合向量v7(其分别对应于码字300的第六帧36和第七帧37),针对组合向量v6生成的级1ds单元的值将等于第一RS开销单元320A的值,并且针对组合向量v7生成的级1ds单元的值将等于第二RS开销单元320B的值。因此,在操作(C3)中,RS冗余数据被嵌入到针对第六帧36和第七帧37 生成的级1ds单元中。

此外,还如上面参照图3A至图3F和本公开的部分V讨论的那样,如图 3D至3E所示,针对组合向量v8(其对应于码字300的第八帧38),针对组合向量v8生成的级1ds单元的值、第一级2ds单元的值和第二级2ds单元的值将分别等于在算法2的操作(B3)中生成的第三RS开销单元320C的值、在算法2的操作(B8)中生成的第四RS开销单元350A的值和第五RS开销单元350B的值。因此,在操作(C3)中,RS冗余数据被嵌入到针对第八帧 38生成的级1ds单元和级2ds单元中。

在操作(C4)中,存储器控制器1000使用嵌入在第一帧31至第八帧38 中的正确帧的增量校验子中的RS冗余来恢复错误帧的增量校验子。例如,如果第一帧31是错误帧,则存储器控制器1000可能无法使用包括错误的第一帧31的数据可靠地生成级1增量校验子至级N增量校验子。然而,如果第六帧36至第八帧38是正确帧,则存储器控制器1000可使用RS开销单元 320(在图3B的项(d)中示出)以及其他正确帧的级1ds单元来生成RS增量校验子码字,使得RS增量校验子码字包括作为冗余位的RS开销单元320 的位,并且包括作为信息位的其他正确帧的级1ds单元的位。此外,只要第一帧31至第八帧38中的错误帧的总数不超过级1的错误行限制F1(如本公开的部分IV中讨论的那样,对于码字300是3),存储器控制器1000就可对上述RS增量校验子码字执行RS解码操作,从而恢复与第一帧31对应的级1 ds单元。

在操作(C5)中,针对与在操作(C4)中恢复的至少一个增量校验子对应的错误帧,存储器控制器1000使用恢复的增量校验子,来以由与错误帧对应的至少一个恢复的增量校验子提供的附加的纠错能力Δt再次执行BCH解码。例如,因为在操作(C1)中执行的BCH解码操作具有t0=6(小于7) 的纠错能力,所以如果第一帧31包括7个错误位,则在操作(C1)中针对第一帧31执行的BCH解码操作将不成功。然而,在操作(C4)中恢复的第一帧31的级1增量校验子的帮助下,在操作(C5)中由存储器控制器1000执行的BCH解码操作将具有t1=7的纠错能力,这将足以校正第一帧31中的7 个错误位。

然后,在操作(C6)中,如果存储器控制器1000确定结束条件已被满足,则存储器装置可结束外码解码操作。示例结束条件包括但不限于:存储器控制器1000确定所有的错误帧已被校正;以及存储器装置确定错误帧的总数超过外码解码操作的当前级i的错误行限制Fi。

此外,在操作(C6)中,如果存储器控制器1000确定结束条件未被满足,则存储器控制器1000返回至操作(C2)以确定第一帧至第八帧中的错误帧的数量。如果在操作(C5)中执行的纠错能力提高的BCH解码操作针对校正一个或多个错误帧是成功的,则与操作(C2)的先前的迭代相比,在操作(C2)的随后的迭代中确定的错误帧的总数将被减少。

当操作(C2)至操作(C6)被迭代地执行时,更多的错误帧可在每次迭代期间被校正。此外,随着更多的错误帧被校正,更多的增量校验子可由存储器控制器1000生成,因此,能够恢复更高级增量校验子的机会增大。当更高级增量校验子被恢复时,可通过在操作(C5)中执行的BCH解码操作校正的错误位的数量增加,因此在操作(C5)的早期迭代期间具有太多错误位而无法被校正的错误帧可通过操作(C5)的后来的迭代来校正。根据发明构思的至少一些示例实施例,操作(C2)至操作(C6)的第i次迭代对应于第 i级外码解码操作。

现将在下面的本公开的部分VII中讨论存储器系统900的示例实施。

VII、实施示例

图4是示出根据发明构思的至少一个示例实施例的包括存储器系统的计算机系统3000的框图。计算机系统3000(诸如,移动装置、台式计算机和服务器)可采用根据发明构思的至少一个示例实施例的存储器系统3400。

计算机系统3000可包括电连接到总线3500的中央处理器(CPU)3100、 RAM 3200、用户接口3300和存储器系统3400。如上所述的主机可包括计算机系统3000中的中央处理器3100、RAM 3200和用户接口3300。中央处理器3100可控制整个计算机系统3000并且可执行与经由用户接口3300输入的用户命令对应的计算。RAM 3200可用作中央处理器3100的数据存储器,并且中央处理器3100可将数据写入存储器系统3400/从存储器系统3400读取数据。

如在上述发明构思的示例实施例中那样,存储器系统3400可包括存储器控制器3410和存储器装置3420。

根据发明构思的至少一个示例实施例,存储器控制器3410可由上面参照图1至图2讨论的存储器控制器1000来实现,存储器装置3420可由上面参照图1至图2讨论的存储器装置2000来实现。

图5是示出根据发明构思的至少一个示例实施例的存储卡4000的框图。根据上面参照图1至图3F讨论的发明构思的至少一些示例实施例的存储器系统900可以是存储卡4000。例如,存储卡4000可包括嵌入式多媒体卡(eMMC) 或安全数字(SD)卡。如图5中所示,存储卡4000可包括存储器控制器4100、非易失性存储器4200和端口区域4300。根据发明构思的至少一个示例实施例,图5中示出的存储器控制器4100可由上面参照图1至图3F讨论的存储器控制器1000来实现,图5中示出的非易失性存储器4200可由上面参照图1至图3F讨论的存储器装置2000来实现。

存储器控制器4100可根据预设协议经由端口区域4300与外部主机通信。该协议可以是eMMC协议、SD协议、SATA协议、SAS协议或USB协议。

图6是示出根据发明构思的至少一个示例实施例的包括存储器系统的示例网络系统5000的框图。如图6中所示,网络系统5000可包括经由网络5200 连接的服务器系统5100以及多个终端5300、5400和5500。服务器系统5100 可包括服务器5110和SSD 5120,其中,服务器5110用于处理从连接到网络 5200的多个终端5300、5400和5500接收的请求,SSD 5120用于存储与从终端5300、5400和5500接收的请求对应的数据。这里,SSD 5120可以是根据发明构思的至少一个示例实施例的存储器系统。

根据发明构思的至少一个示例实施例,SSD 5120可由上面参照图1至图 3F讨论的存储器系统900来实现。

同时,根据发明构思的示例实施例的存储器系统可经由各种封装中的任何一种来安装。例如,根据发明构思的至少一个示例实施例的存储器系统可经由包括以下多种封装中的任何一种封装来安装:层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、带引线的塑料芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫裸片封装、晶片形式的裸片、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄四方扁平封装(TQFP)、小外形集成电路(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、薄型四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)、晶片级处理堆叠封装(WSP) 等。

已经如此描述了发明构思的示例实施例,显然可以以多种方式改变发明构思的示例实施例。这些改变不应被视为脱离发明构思的示例实施例的预期精神和范围,并且对本领域技术人员明显的是,所有这样的修改意在包括在权利要求的范围内。

33页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:制造接头处的泄漏存储器孔修复

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!