错误校正电路和具有错误校正电路的存储器控制器的制作方法

文档序号:22681814发布日期:2020-10-28 12:43阅读:239来源:国知局
错误校正电路和具有错误校正电路的存储器控制器的制作方法

相关申请的交叉引用

本申请要求于2019年4月17日提交的申请号为10-2019-0044847的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。

所公开的技术总体上涉及一种错误校正电路和具有错误校正电路的存储器控制器,并且更具体地,涉及一种被配置为能够进行低复杂性错误校正编码和低复杂性错误校正解码的错误校正电路,以及具有错误校正电路的存储器控制器。



背景技术:

存储器系统可以存储从外部装置提供的数据,并且将存储的数据提供给外部装置。为了确保数据完整性,存储器系统可以包括错误校正电路,以对存储在存储器系统中的数据执行错误校正操作。错误校正电路可以通过使用错误校正码来执行错误校正编码和错误校正解码。

低密度奇偶校验(ldpc)编码是一种强大的错误校正方案,其允许存储器系统根据代码长度检测和校正一定数量的错误。ldpc编码方案可以通过增加代码长度来提高每个位的错误校正能力,同时保持每个位的计算复杂性。但是,ldpc码的计算复杂性仍然可能会导致存储产生成功解码所需的奇偶校验矩阵的效率低下。



技术实现要素:

本专利文件的实施例涉及一种用于低复杂性错误校正编码和解码的错误校正电路以及具有该错误校正电路的存储器控制器。

根据所公开技术的方面,提供了一种错误校正电路,该错误校正电路包括:错误校正解码器,被配置为在顺序选择包括多个子矩阵的奇偶校验矩阵的列层的同时,基于列层对读取向量执行错误校正解码,其中列层包括奇偶校验矩阵的列组,并且其中错误校正解码器包括:多个存储器区域,被配置为存储与奇偶校验矩阵相对应的多个校验节点的值;以及校验节点处理器,被配置为访问与当前选择的列层中包括的循环置换矩阵(cpm)相对应的多个存储器区域中的一个或多个,并更新存储在所访问的一个或多个存储器区域中的校验节点的值,其中奇偶校验矩阵中包括的行被分组成多个行组,并且在每个行组中针对每个列层包括至多一个cpm。

根据所公开技术的另一方面,提供了一种存储器控制器,该存储器控制器包括:错误校正编码器,被配置为使用包括多个子矩阵的奇偶校验矩阵,通过执行错误校正编码来生成码字;以及错误校正解码器,被配置为在错误校正解码中,在顺序选择用于错误校正编码的奇偶校验矩阵的列层的同时,基于列层对与码字相对应的读取向量执行错误校正解码,其中该列层包括奇偶校验矩阵的列组,其中奇偶校验矩阵中包括的行被分组成多个行组,并且在每个行组中针对每个列层包括至多一个循环置换矩阵(cpm)中。

附图说明

图1是示出基于所公开技术的实施例的错误校正电路的示例的示图。

图2是示出奇偶校验矩阵的示例的示图。

图3是示出与图2所示的奇偶校验矩阵相关的tanner图的示例的示图。

图4是示出使用图2所示的奇偶校验矩阵计算的校正子(syndrome)向量的示例的示图。

图5是示出在硬判决解码中通过使用一个读取值来生成初始值的示例进程的示图。

图6是示出在软判决解码中通过使用g个读取值来生成初始值的示例进程的示图。

图7是示出具有示例量化级别和相关的llr值的查找表的示例的示图。

图8a是基于列分层方案的示例的在第一次迭代的第一子迭代中使用的tanner图表示和对应的消息传递。

图8b是基于列分层方案的示例的在第一次迭代的第八子迭代中使用的另一tanner图表示和对应的消息传递。

图8c是基于列分层方案的示例的在第二次迭代的第一子迭代中使用的另一tanner图表示和对应的消息传递。

图8d是基于列分层方案的示例的第二次迭代的第八子迭代中使用的另一tanner图表示和对应的消息传递。

图9是示出通过使用奇偶校验矩阵进行的低复杂性错误校正编码的示例的示图。

图10是示出基于所公开技术的实施例的通过使用列分层方案进行的错误校正解码的示例的示图。

图11是示出基于所公开技术的实施例的通过使用列分层方案进行的错误校正解码的示例的示图。

图12是示出基于所公开技术的实施例的奇偶校验矩阵的示图。

图13是示出基于所公开技术的实施例的基础矩阵的奇偶校验区域的示图。

图14是示出基于所公开技术的实施例的通过使用列分层方案进行的错误校正解码的示例的示图。

图15是示出基于所公开技术的实施例的存储奇偶校验矩阵的示例的示图。

图16是示出基于所公开技术的实施例的错误校正解码器的示图。

图17是示出基于所公开技术的实施例的存储器系统的示图。

图18是示出基于所公开技术的实施例的存储器装置的示例的示图。

图19是示出存储块的示例的示图。

图20是示出包括图17所示的存储器控制器的存储器系统的另一示例的示图。

图21是示出包括图17所示的存储器控制器的存储器系统的另一示例的示图。

具体实施方式

本文中公开的特定结构或功能描述仅是说明性的,其目的是描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式实施,并且不能被解释为限于本文所阐述的实施例。

图1是示出基于所公开技术的实施例的错误校正电路的示例的示图。

参照图1,错误校正电路10可以包括错误校正编码器100和错误校正解码器200。

错误校正编码器100可以接收旨在被编码的原始消息。错误校正编码器100可以通过使用所接收的原始消息和错误校正码(ecc)的生成器矩阵来执行错误校正编码,或者可以通过使用所接收的原始消息和ecc的奇偶校验矩阵来执行错误校正编码。

错误校正编码能够使得基于所接收的数据来校正由于通过通信通道的传输而可能被引入到数字数据中的错误。通道是数据传送的介质。通道的示例有电话线、手机通道等。例如硬盘驱动器和固态存储器的数据存储装置和存储器装置是通道的其它示例。

错误校正码(ecc)用于nand闪速存储器中以检测和校正位错误。随着存储器复杂性的增加,位错误率继续增长。随着每个存储器单元存储多于一个位的存储器装置的使用增加,这个问题甚至变得更加严重。为了确定从存储器读取的值,阈值电压用于判决读取信息的值。例如,对于n位多层单元nand闪速存储器,每个单元的阈值电压可以被编程为2n个可能值。在理想的多层单元nand闪速存储器中,每个值对应于不重叠的阈值电压窗口。被编程为存储相同值的存储器单元的阈值电压落入相同窗口,但是其确切的阈值电压可能不同。随着编程/擦除周期的增加,不同编程状态的相邻阈值电压分布之间的余量减小,最终分布开始重叠。因此,阈值电压落入相邻分布的重叠范围内的存储器单元可以被读取为被编程为不同于原始目标值的值,从而引起读取错误。在大多数情况下,可以使用ecc来管理这种读取错误。

错误校正编码器100可以将通过执行错误校正编码而获得的码字输出到通道。

在实施方式中,通道可以包括通过其传送信息的有线或无线介质或者其中存储信息的存储介质。在一个示例中,当将错误校正电路10应用于存储器系统时,通道可以包括用于在错误校正电路10与存储器装置之间通信数据的接口。在另一示例中,通道可以包括存储器装置本身。该码字可以被存储在包括在该存储器装置中的多个存储器单元(例如,构成一个页面的存储器单元)。

错误校正编码器100可以使用低密度奇偶校验(ldpc)码作为ecc。通过示例而非限制的方式,错误校正编码器100可以使用准循环低密度奇偶校验(qc-ldpc)码作为ecc。

错误校正解码器200可以从通道接收与码字相对应的读取向量,并且通过使用所接收的读取向量和ecc的奇偶校验矩阵来执行错误校正解码。用于错误校正解码的奇偶校验矩阵和用于错误校正编码的奇偶校验矩阵可以是相同的。在所公开技术的实施方式中,读取向量可以指示从存储器装置读取的值;例如,对存储器单元进行的读取操作可以以二进制存储方案产生0或1的二进制值。在一个示例中,读取向量可以包括通过将指示存储器单元的多个阈值电压分布的读取向量进行组合而获得的多级别量化读取向量,其中可以使用多个读取电压将每个阈值电压分布与其它分布区分开。

错误校正解码器200可以通过使用采用迭代解码方案的各种算法来执行错误校正解码。例如,错误校正解码器200可以通过使用也称为置信传播算法(bpa)的消息传递算法(mpa)来执行错误校正解码。例如,错误校正解码器200可以通过使用和积算法或最小和算法来执行错误校正解码,但是所公开技术的实施例不限于此。

错误校正解码器200可以通过执行至少一次迭代且不超过迭代解码方案中指定的最大迭代次数i来执行错误校正解码。当在最大迭代次数i内生成满足ecc的奇偶校验矩阵的约束的码字时,该码字可以被称为“有效码字”,并且错误校正解码器200可以将所生成的有效码字作为解码的码字输出。当在最大迭代次数i内没有生成满足ecc的奇偶校验矩阵的约束的有效码字时,错误校正解码器200可以输出表示错误校正解码已失败的“失败”信号。错误校正解码器200可以使用ldpc码作为ecc。通过示例而非限制的方式,错误校正解码器200可以使用qc-ldpc码作为ecc。

错误校正解码器200可以执行硬判决解码或软判决解码。

错误校正解码器200可以通过使用列分层方案来执行错误校正解码。在实施方式中,错误校正解码器200可以在顺序选择配置有子矩阵的奇偶校验矩阵的列层的同时,基于列层对读取向量执行错误校正解码。稍后将参照相关附图描述列分层方案。在该专利文件的上下文中,单词“列层”可以指示奇偶校验矩阵的列组。

尽管在附图中未示出,但是错误校正电路10可以进一步包括后处理器,该后处理器被配置为支持错误校正解码器200,使得错误校正解码器200可以生成有效码字。后处理器可以校正用于错误校正解码的各种类型的参数,并且支持错误校正解码器200,使得可以使用校正后的参数来执行错误校正解码。

图2是示出奇偶校验矩阵的示例的示图。

(n,k)码可以被定义为大小为(n-k)×n的奇偶校验矩阵。这里,k表示原始消息的长度,并且n-k表示奇偶校验符号的数量。奇偶校验矩阵的每个条目可以为“0”或“1”。当“1”的数量相对小于“0”的数量时,(n,k)码可以被称为(n,k)ldpc码。这里,n和k可以是自然数。在示例中,在图2中示出了定义(24,12)码的奇偶校验矩阵。

当使用随机排列“1”的奇偶校验矩阵时,将需要大量存储器来存储奇偶校验矩阵。为了尽量减少所需存储器的量,可以使用qc-ldpc码。qc-ldpc码的奇偶校验矩阵可以配置有多个子矩阵,并且每个子矩阵可以是零矩阵或循环置换矩阵(cpm)。

可以通过从基础矩阵“提升”来构造qc-ldpc码的奇偶校验矩阵。在一些实施方式中,基础矩阵中包括的条目可以分别由子矩阵替换,从而生成奇偶校验矩阵。例如,基础矩阵中由“-1”指示的条目可以由零矩阵替换,并且基础矩阵中由“0”指示的条目可以由单位矩阵替换。另外,基础矩阵中由“1”指示的条目可以由通过对单位矩阵执行向右循环移位而获得的子矩阵替换,并且基础矩阵中由“2”指示的条目可以由通过对单位矩阵执行两个向右循环移位而获得的子矩阵替换。

在下文中,当子矩阵是cpm时,cpm可以指示单位矩阵或通过对单位矩阵执行预定数量的循环移位而获得的子矩阵。

在一些实施方式中,启用低复杂性错误校正编码的双对角线结构可以用于错误校正编码。例如,奇偶校验矩阵可以包括消息区域22和奇偶校验区域24。当在错误校正编码中使用在奇偶校验区域24中的双对角线结构中排列有“1”的奇偶校验矩阵时,可以执行低复杂性错误校正编码。

图3是示出与图2所示的奇偶校验矩阵相关的tanner图的示例的示图。

(n,k)码可以由作为等效二部图的表示的tanner图表示。tanner图可以使用(n-k)个校验节点、n个变量节点和边沿来表示。校验节点对应于奇偶校验矩阵的行,并且变量节点对应于奇偶校验矩阵的列。每个边沿将一个校验节点连接到一个变量节点,并在奇偶校验矩阵中表示由“1”表示的条目。

图2所示的(24,12)码的奇偶校验矩阵可以由如图3所示的包括12个校验节点cn1至cn12和24个变量节点vn1至vn24的tanner图表示。将校验节点cn1至cn12与变量节点vn1至vn24连接的实线表示边沿。

在所公开技术的一些实施例中,可以基于tanner图上的消息传递算法,通过在校验节点cn1到cn12与变量节点vn1到vn24之间的消息交换来执行迭代解码。例如,对于每次迭代,可以通过在校验节点cn1至cn12与变量节点vn1至vn24之间传送消息来执行迭代解码。

图4是示出使用图2所示的奇偶校验矩阵计算的校正子向量的示例的示图。

校正子向量si可以表示为奇偶校验矩阵h和与第i次迭代相对应的硬判决向量ci的转置向量cit的乘积,其中硬判决向量ci是行向量。

校正子向量si的所有符号si1到si12均为“0”表示在第i次迭代中校正子校验已通过(成功),表明在第i次迭代中已成功执行对读取向量的错误校正解码。因此,可以结束对对应读取向量的迭代解码,并且可以将与第i次迭代相对应的硬判决向量ci作为解码的码字输出。

相反,校正子向量si的所有符号si1至si12中的至少一个非零符号可以指示校正子校验已失败(例如,在第i次迭代中错误校正解码未成功)。因此,如果当前迭代尚未超过最大迭代次数i,则可以执行后续迭代。另一方面,在当前迭代已达到最大迭代次数i时,可以终止当前读取向量的迭代解码,并且认为错误校正解码操作已失败。

对于n位多层单元nand闪速存储器,可以将每个单元的阈值电压编程为2n个可能值。在理想的多层单元nand闪速存储器中,每个值对应于不重叠的阈值电压窗口。

失真的或重叠的阈值电压分布可能导致读取错误。理想的存储器单元阈值电压分布可能由于例如编程和擦除(p/e)周期、单元间干扰以及数据保持错误而严重失真或重叠,并且在大多数情况下可以通过使用错误校正码(ecc)来管理这种读取错误。

图5和图6示出重叠的阈值电压分布。编程为相同值的存储器单元的阈值电压落入相同窗口,但是其确切的阈值电压可能不同。随着编程/擦除周期的增加,不同编程状态的相邻阈值电压分布之间的余量减小,最终分布开始重叠。因此,阈值电压落入相邻分布的重叠范围内的存储器单元可以被读取为被编程为不同于原始目标值的值,从而引起读取错误。在大多数情况下,可以通过使用错误校正码(ecc)来管理这种读取错误。

图5是示出在硬判决解码中通过使用一个读取值来生成初始值的示例进程的示图。

在图5中,示出了每一个具有第一状态s1和第二状态s2中的任意一个的存储器单元的阈值电压(vth)分布。

在图5中,纵轴表示具有在横轴上表示的特定阈值电压的存储器单元(#cell)的数量。

为了获取与一个码字相对应的一个读取向量,可以向存储一个码字的多个存储器单元(例如,构成一个页面的存储器单元)施加一个读取电压vr1。因此,每个存储器单元可以获取一个读取值。该一个读取向量可以配置有与多个存储器单元相对应的读取值。

例如,当第一读取电压vr1被施加到多个存储器单元时,阈值电压低于第一读取电压vr1的存储器单元的读取值可以被表示为“1”,并且阈值电压高于第一读取电压vr1的存储器单元的读取值可以被表示为“0”。与第一读取电压vr1相对应的读取值可以是量化为2级的读取值。

错误校正电路10可以将量化为2级别的读取值转换为初始值(例如,初始llr值)。可以参考设置的查找表来执行转换成初始值。

图6是示出在软判决解码中通过使用g个读取值来生成初始值的示例进程的示图。

在图6中,纵轴表示具有在横轴上表示的特定阈值电压的存储器单元(#cell)的数量。

在图6中,示出了每个具有第一状态s1和第二状态s2中的任意一个的存储器单元的阈值电压(vth)分布。

当使用(g+1)级别量化时,可以将g个读取电压顺序地施加到多个存储器单元,以便获得与单个码字相对应的g个读取向量。这里,g可以是自然数。例如,如图6所示,当使用2级别量化时,可以施加一个读取电压vr1。当使用3级别量化时,可以顺序地施加两个读取电压vr1和vr2。类似地,当使用8级别量化时,可以顺序地施加七个读取电压vr1至vr7。因此,当使用(g+1)级别量化时,每个存储器单元可以获得g个读取值。

当将g个读取电压之中的任意一个读取电压施加到多个存储器单元时,可以将阈值电压低于所施加的读取电压的存储器单元的读取值表示为“1”,并且可以将阈值电压高于所施加的读取电压的存储器单元的读取值表示为“0”。

错误校正电路10可以通过联接与g个读取电压相对应的读取值来生成量化为g+1级别的读取值。例如,如图6所示,当使用七个读取电压vr1至vr7时,错误校正电路10可以通过联接与七个读取电压vr1至vr7相对应的读取值来生成量化为8级别的读取值。

错误校正电路可以将(g+1)级别量化的读取值转换成初始值(例如,初始llr值)。可以基于查找表执行转换成初始值。

图7是示出查找表的示例的示图。

参照图7,查找表可以定义与多个量化级别中的每个量化级别相对应的llr值。

错误校正电路10可以基于查找表将(g+1)级别量化的读取值中的每一个转换为与(g+1)量化级别相对应的g+1个llr值中的任意一个。

例如,当使用2级别量化时,错误校正电路可以将2级别量化的读取值中的一个转换为llr1,并且将2级别量化的读取值中的另一个转换为llr2。例如,可以将2级别量化的读取值的“1”转换为llr1值“-4”,并且2级别量化的读取值的“0”可以转换为llr2值“+4”。

在所公开技术的实施例中,“读取值”可以表示量化为g+1级别的读取值。

图8a至图8d是示出列分层方案的示例的示图。图8a是基于列分层方案的示例的在第一次迭代的第一子迭代中使用的tanner图表示和对应的消息传递。图8b是基于列分层方案的示例的在第一次迭代的第八子迭代中使用的另一tanner图表示和对应的消息传递。图8c是基于列分层方案的示例的在第二次迭代的第一子迭代中使用的另一tanner图表示和对应的消息传递。图8d是基于列分层方案的示例的在第二次迭代的第八子迭代中使用的另一tanner图表示和对应的消息传递。

根据调度方案,可以将mpa分类为泛洪方案(floodingscheme)、行分层方案和列分层方案。

在泛洪方案中,在每次迭代中对所有校验节点同时执行更新,并且在每次迭代中对所有变量节点同时执行更新。也就是说,在泛洪方案中,有必要在每次迭代更新所有校验节点的值之前更新所有变量节点的值。类似地,有必要在每次迭代更新所有变量节点的值之前更新所有校验节点的值。等待直到所有校验节点的值都被更新才更新所有变量节点的值,或者等待直到所有变量节点的值都被更新才更新所有校验节点的值可能是低效率的。

在行分层方案中,奇偶校验矩阵的行被分组成行层。在行分层方案中,可以基于属于前面行层的校验节点的值来更新与当前行层相关的变量节点的值,并且可以基于所更新的变量节点的值来更新属于当前行层的校验节点的值。行分层方案通常表现出高性能(例如,快速收敛),但是需要高存储器带宽以在行层之间交换信息。

在列分层方案中,奇偶校验矩阵的列被分组成列层。在列分层方案中,可以基于与前面列层相关的校验节点的值来更新属于当前列层或当前激活列层的变量节点的值,并且可以基于所更新的变量节点的值来更新与当前列层或当前激活列层相关的校验节点的值。也就是说,在列分层方案中,某个变量节点的计算结果会影响随后计算的变量节点的值。因此,列分层方案可以具有比泛洪方案更快的转换速率。另外,与行分层方案相比,由于在列分层方案中单独处理校验节点,所以列分层方案可以以更窄的存储器带宽工作。

在列分层方案中,每次迭代可以包括与多个列层中的每个列层相对应的子迭代。在下文中,词语“层”表示列层。将参照图8a至图8d更详细地描述列分层方案。在图8a至图8d中,示出了每个包括三个变量节点的八个层层1至层8。

如图8a所示,在属于层1的变量节点vn1、vn2和vn3中生成的变量节点到校验节点(v2c)消息可以在第一次迭代的第一子迭代中被传递到校验节点cn1、cn2、cn3、cn10、cn11和cn12。随后,在顺序执行的第一次迭代的第二子迭代至第七子迭代中,在属于层2至层7的变量节点中生成的v2c消息可以被传递到连接到相应变量节点的校验节点。然后,在属于层8的变量节点vn22、vn23和vn24中生成的v2c消息可以在第一次迭代的第八子迭代中被传递到校验节点cn10、cn11和cn12。

在参照图8a和图8b描述的第一次迭代中,v2c消息从变量节点传递到校验节点,但是校验节点到变量节点(c2v)消息没有从校验节点传递到变量节点。因此,在第一次迭代中,校验节点的值被更新,但是变量节点的值不被更新。

随后,如图8c所示,在校验节点cn1、cn2、cn3、cn10、cn11和cn12中生成的c2v消息可以在第二次迭代的第一子迭代中被传递到属于层1的变量节点vn1、vn2和vn3。可以基于从校验节点cn1、cn2、cn3、cn10、cn11和cn12接收的c2v消息来更新变量节点vn1、vn2和vn3的硬判决值,并且可以生成v2c消息以被传递到校验节点cn1、cn2、cn3、cn10、cn11和cn12。然后,可以基于从变量节点vn1、vn2和vn3接收的v2c消息来更新校验节点cn1、cn2、cn3、cn10、cn11和cn12的值。

随后,顺序执行第二次迭代的第二至第七子迭代,可以将在与层2到层7相关的校验节点中生成的c2v消息传递到属于层2至层7的变量节点。因此,可以更新属于层2至层7的变量节点的硬判决值,并且可以生成v2c消息以被传递到与层2至层7相关的校验节点。因此,可以更新与层2至层7相关的校验节点的值。

另外,如图8d所示,在第二次迭代的第八子迭代中,在校验节点cn10、cn11和cn12中生成的c2v消息可以被传递到属于层8的变量节点vn22、vn23和vn24。可以基于从校验节点cn10、cn11和cn12接收的c2v消息来更新变量节点vn22、vn23和vn24的硬判决值,并且可以生成v2c消息以被传递给校验节点cn10、cn11和cn12。另外,可以基于从变量节点vn22、vn23和vn24接收的v2c消息来更新校验节点cn10、cn11和cn12的值。

可以以类似于第二次迭代中所述的方式来执行第二次迭代之后的迭代。

图9是示出基于所公开技术的一些实施例的通过使用奇偶校验矩阵进行的低复杂性错误校正编码的示例的示图。

如图9所示,可以使用包括双对角线结构的奇偶校验区域的3×6奇偶校验矩阵h来执行基于所公开技术的一些实施例实施的错误校正编码。

假设待对其执行错误校正编码的原始消息为[111],并且待使用奇偶校验矩阵h和原始消息[111]生成的码字为[111p1p2p3]。

可以根据等式(1)确定第一奇偶校验位p1。

[1011]·[111p1]t=0

1+1+p1=0

p1=0等式(1)

在等式(1)中,[1011]表示与奇偶校验矩阵h的第一行中包括的条目之中的第一至第四列相对应的条目,并且[111p1]t表示通过将第一奇偶校验位p1与原始消息组合而获得的向量的转置。加法(+)表示模-2加法。可以根据等式(1)确定第一奇偶校验位p1为“0”。

当确定第一奇偶校验位(p1=0)时,可以根据等式(2)确定第二奇偶校验位p2。

[01011]·[1110p2]t=0

1+p2=0

p2=1等式(2)

在等式(2)中,[01011]表示与奇偶校验矩阵h的第二行中包括的条目之中的第一至第五列相对应的条目,并且[1110p2]t表示通过将第一奇偶校验位(p1=0)和第二奇偶校验位p2与原始消息组合而获得的向量的转置。可以根据等式(2)确定第二奇偶校验位p2为“1”。

当确定了第一奇偶校验位(p1=0)和第二奇偶校验位(p2=1)时,可以根据等式(3)确定第三奇偶校验位p3。

[001011]·[11101p3]t=0

1+1+p3=0

p3=0等式(3)

在等式(3)中,[001011]表示与奇偶校验矩阵h的第三行中包括的条目之中的第一至第六列相对应的条目,并且[11101p3]t表示通过将第一奇偶校验位(p1=0)、第二奇偶校验位(p2=1)和第三奇偶校验位p3与原始消息组合而获得的向量的转置。可以根据等式(3)确定第三奇偶校验位p3为“0”。

因此,当使用如图9所示的奇偶校验矩阵h和原始消息[111]执行低复杂性错误校正编码时,可以生成码字[111010]。

图10是示出基于所公开技术的实施例的通过使用列分层方案进行的错误校正解码的示例的示图。

在图10中,示出了大小为4×8的基础矩阵。当基础矩阵的条目被配置为具有3×3的大小的子矩阵时,与基础矩阵相对应的奇偶校验矩阵可以具有12×24的大小。基础矩阵和奇偶校验矩阵之间的关系与参照图2描述的相同。

为了便于描述,在图10中示出错误校正解码器的一些组件。

vn存储器可以存储变量节点的硬判决值。

变量节点单元vnu1至vnu3可以更新存储在vn存储器中的变量节点的硬判决值,并根据从校验节点单元cnu1至cnu12接收的c2v消息来生成v2c消息,并将v2c消息传递给校验节点单元cnu1至cnu12。

cn存储器可以存储校验节点的值。

校验节点单元cnu1至cnu12可以根据存储在cn存储器中的校验节点的值来生成c2v消息,并将c2v消息传递给变量节点vnu1至vnu3。校验节点单元cnu1至cnu12可以根据从变量节点单元vnu1至vnu3接收的v2c消息来更新存储在cn存储器中的校验节点的值。

路由器可以根据奇偶校验矩阵连接变量节点单元vnu1至vnu3和校验节点单元cnu1至cnu12。例如,路由器可以基于关于属于当前激活层的cpm的信息,连接变量节点单元vnu1至vnu3和校验节点单元cnu1至cnu12。

例如,当在属于当前激活层的行之中的第一行中包括具有循环移位量为0的cpm时,路由器可以连接变量节点单元vnu1至vnu3和与第一行相对应的校验节点单元cnu1至cnu3。路由器可以控制将变量节点单元vnu1连接到校验节点单元cnu1,控制将变量节点单元vnu2连接到校验节点单元cnu2,并且控制将变量节点单元vnu3连接到校验节点单元cnu3。

当属于当前激活层的行之中的第一行中包括具有循环移位量为1的cpm时,路由器可以控制将变量节点单元vnu1连接到校验节点单元cnu3,控制将变量节点单元vnu2连接到校验节点单元cnu1,并且控制将变量节点单元vnu3连接到校验节点单元cnu2。

在列分层方案中,可以针对每个子迭代激活与子迭代相对应的层。激活层可以指示在错误校正解码器中包括的几个单元之间执行信息交换,以便更新属于该层的变量节点的值和与该层相关的校验节点的值。

例如,当激活层1至层8之中的层6时,可以由校验节点单元cnu1至cnu6访问其中存储与层6相关的校验节点的值的存储器区域m1至m6。另外,可以由变量节点单元vnu1至vnu3访问其中存储属于层6的变量节点的硬判决值的存储器区域v16、v17和v18。

在列分层方案中,可以并行更新与在每个子迭代中激活层相关的所有校验节点的值。

在图10所示的示例中,存在分别与存储器区域m1至m12相对应的校验节点单元cnu1至cnu12。校验节点cnu1至cnu12中的每一个可以通过始终访问存储器区域m1至m12之中与其相对应的存储器区域来生成c2v消息或更新校验节点的值。

图11是示出基于所公开技术的实施例的通过使用列分层方案执行的错误校正解码的示例的示图。

如图11所示,可以进一步使用分组方案。参照图11描述的实施例可以包括与以上讨论的实施例相似的特征。因此,在一些情况下可能不会重复描述这些相似的特征。

在图11所示的示例中,基础矩阵的行可以被分组成多个行组。例如,基础矩阵的行1和行2可以分组成行组1,并且基础矩阵的行3和行4可以分组成行组2。

当通过对基础矩阵的行进行分组来执行错误校正解码时,可以节省硬件资源。例如,在图11所示的示例中,错误校正解码器可以包括与行组的行组1和行组2的数量相对应的校验节点单元组cnug1和cnug2。校验节点单元组1cnug1对应于行组1,校验节点单元组2cnug2对应于行组2。校验节点单元组cnug1和cnug2中的每一个可以包括其数量对应于子矩阵的大小的校验节点单元。例如,子矩阵可以是方矩阵,并且子矩阵的大小可以表示子矩阵中的行数或列数。例如,当子矩阵的大小为3时,校验节点单元组cnug1可以包括三个校验节点单元cnu1至cnu3,并且校验节点单元组cnug2可以包括三个校验节点单元cnu4至cnu6。

在图11所示的示例中,错误校正解码器包括六个校验节点单元cnu1至cnu6。也就是说,当如图11所示进一步使用分组方案时,与参照图10所述的不使用分组方案的情况相比,可以与每个组中包括的行数成比例地减少校验节点单元的数量。例如,当每个行组包括两行时,与不使用分组方案时相比,校验节点单元的数量可以减少两倍。当每个行组包括五行时,与不使用分组方案时相比,校验节点单元的数量可以减少五倍。

当使用分组方案时由于减少了校验节点单元的数量,因此每个校验节点单元将访问多个存储器区域。例如,属于与行组1相对应的校验节点单元组cnug1的校验节点单元cnu1将访问与行1相对应的存储器区域m1至m3之中的任意一个存储器区域m1和与行2相对应的存储器区域m4至m6之中的任意一个存储器区域m4。

当激活在行组1的层之中包括两个cpm的层6时,属于校验节点单元组1cnug1的校验节点单元cnu1至cnu3中的每一个将同时访问两个存储器区域。例如,校验节点单元cnu1将访问存储器区域m1和m4,校验节点单元cnu2将访问存储器区域m2和m5,并且校验节点单元cnu3将访问存储器区域m3和m6。也就是说,由于校验节点单元cnu1至cnu3中的每一个将同时访问两个存储器区域,因此在该进程中会发生冲突。但是,可以通过调度其中校验节点单元cnu1至cnu3访问存储器区域m1至m6的顺序或添加单独的硬件来避免该进程中的冲突。

图12是示出基于所公开技术的实施例的奇偶校验矩阵的示图。

在图12所示的示例中,如参照图2所述,在基础矩阵中由“-1”表示的条目表示相应的条目是零矩阵,在基础矩阵中由“0”表示的条目表示相应的条目是单位矩阵。另外,在基础矩阵中由“1”表示的条目表示相应的条目是通过对单位矩阵执行向右循环移位而获得的矩阵,在基础矩阵中由“2”表示的条目表示相应的条目是通过对单位矩阵执行向右两个循环移位而获得的矩阵。

基于所公开技术的一些实施例的奇偶校验矩阵可以相对于每个行组的每个层包括至多一个cpm。

在图12所示的示例中,在行组1的层1、层2、层4、层5、层6、层7和层8的每一个中包括一个cpm,并且在行组1的层3中不包括任何cpm。

在同一示例中,在行组2的层1、层3、层4、层5、层6、层7和层8中包括一个cpm,并且在行组2的层2中不包括任何cpm。

可以通过置换图2所示的奇偶校验矩阵的一些行来生成图12所示的奇偶校验矩阵。例如,可以通过彼此置换图2所示的基础矩阵的行2和行3来生成图12所示的基础矩阵。

图13是示出基于所公开技术的实施例的基础矩阵的奇偶校验区域的示图。为了便于描述,与cpm相对应的条目由阴影表示。未由阴影表示的条目表示单位矩阵。所有cpm的偏移量可以相同,或者至少一个cpm的偏移量可以与其它cpm的偏移量不同。

可以通过对具有双对角线结构的奇偶校验区域的一些行进行置换来生成图13所示的结构。因此,图13所示的结构能够进行低复杂性错误校正编码。

当图13所示的结构用于低复杂性错误校正编码时,编码顺序可以与使用双对角线结构时的编码顺序不同。例如,如参照图9所述,当将双对角线结构用于低复杂性错误校正编码时,可以在从第一行至最后一行顺序选择行的同时执行低复杂性错误校正编码。另一方面,当将图13所示的结构用于低复杂性错误校正编码时,可以根据置换行的原始位置(即,执行置换之前在双对角线结构上的位置)来确定编码顺序。

例如,图13所示的结构中的第一行是不对双对角线结构执行置换的行。因此,在低复杂性错误校正编码中可以首先选择第一行。同时,图13所示结构中的第四行是位于双对角线结构上的第二行的行。因此,在低复杂性错误校正编码中可以第二选择第四行。类似地,图13所示的结构中的第七行是位于双对角线结构上的第三行的行。因此,在低复杂性错误校正编码中可以第三选择第七行。可以使用相同原理来确定其它行的编码顺序。整个编码顺序在图13中示出。

在一些实施方式中,在设计奇偶校验区域之后,适当地设计消息区域,从而可以完成整个基础矩阵。例如,可以将基础矩阵设计为使得可以通过优化度分布来使基础矩阵的周长最大化。

在图13所示的结构中,在行组1至行组5的中的每一个行组中的每一层包括至多一个cpm。当使用分组方案时,该结构能够进行低复杂性解码。将参照图14对此进行详细描述。

图14是示出基于所公开技术的实施例的通过使用列分层方案执行的错误校正解码的示例的示图。

在参照图14描述的实施例中,参照图12描述的基础矩阵被用于执行错误校正解码。参照图14描述的实施例可以包括与上述实施例相似的特征。因此,在某些情况下可能不会重复描述这些相似的特征。

关于图14所示的基础矩阵中的每一行组,每一层包括至多一个cpm。这意味着,尽管激活了层1至层8中的任意层,但是属于校验节点单元组cnug1和cnug2的校验节点单元cnu1至cnu6中的每一个不可以访问两个或更多个存储器区域。

例如,当激活层6时,属于校验节点单元组cnug1和cnug2的校验节点单元cnu1至cnu6中的每一个可以仅访问一个存储器区域。例如,校验节点单元cnu1可以访问存储器区域m1,校验节点单元cnu2可以访问存储器区域m2,校验节点单元cnu3可以访问存储器区域m3,校验节点单元cnu4可以访问存储器区域m7,校验节点单元cnu5可以访问存储器区域m8,并且校验节点单元cnu6可以访问存储器区域m9。因此,与参照图11描述的实施例相比,可以避免该进程中的潜在冲突。也就是说,仅修改用于错误校正解码的矩阵,而无需单独调度或添加硬件,从而降低该进程中发生冲突的风险。

在一些实施方式中,cn存储器中包括的多个存储器区域m1至m12可以被分组以对应于行组。例如,存储器区域m1至m12可以被分组为与行组1相对应的存储器区域组mag1和与行组2相对应的存储器区域组mag2。

校验节点单元组cnug1可以通过访问存储器区域组mag1来更新校验节点的值,并且可以通过访问存储器区域组mag2来更新校验节点的值。

在一些实施方式中,存储器区域组mag1和mag2中的每一个可以包括两个或更多个存储器区域子组。每个存储器区域子组可以包括数量对应于子矩阵的大小的存储器区域。例如,存储器区域组mag1可以包括存储器区域子组masg1和存储器区域子组masg2,存储器区域子组masg1包括三个存储器区域m1至m3,存储器区域子组masg2包括三个存储器区域m4至m6。类似地,存储器区域组mag2可以包括存储器区域子组masg3和存储器区域子组masg4,存储器区域子组masg3包括三个存储器区域m7至m9,存储器区域子组masg4包括三个存储器区域m10至m12。

校验节点单元组cnug1和cnug2中的每一个可以访问包括在相应存储器区域组中的所有存储器区域子组。例如,校验节点组cnug1可以访问存储器区域子组masg1和masg2,并且校验节点单元组cnug2可以访问存储器区域子组masg3和masg4。校验节点单元组cnug1和cnug2中的每一个可以访问与可访问的存储器区域子组之中的当前激活层中包括的cpm相对应的存储器区域子组。另外,校验节点单元组cnug1和cnug2中的每一个可以并行更新被访问的存储器区域子组中包括的存储器区域中存储的校验节点的值。

例如,当层6被激活时,校验节点单元组cnug1可以访问与行1相对应的存储器区域子组masg1,并且校验节点单元组cnug2可以访问与行3相对应的存储器区域子组masg3。因此,可以并行地更新存储在存储器区域m1、m2、m3、m7、m8和m9中的校验节点的值。

图15是示出基于所公开技术的实施例的存储奇偶校验矩阵的示例的示图。

当奇偶校验矩阵被配置为使得相对于每个行组的每一层包括至多一个cpm时,可以减小存储奇偶校验矩阵所需的存储器容量。

在图15所示的示例中,使用4位存储关于行组1和行组2中的每一个行组的每一层的信息。4位信息中的前两位表示包括cpm的行的位置(或索引),并且4位信息中的后两位表示循环移位量。

例如,“0100”表示在属于行组的列层的第一行上存在单位矩阵(即,偏移量为0的cpm),“0110”表示在属于行组的列层的第一行上存在通过对单位矩阵执行两个循环移位而获得的cpm,“1000”表示在属于行组的列层的第二行上存在单位矩阵,“1001”表示在属于行组的列层的第二行上存在通过对单位矩阵执行循环移位而获得的cpm,并且“00xx”表示在属于行组的列层中不存在任何cpm。在这里,“xx”可以具有00、01、10和11之间的任意值。

参照图15,由于针对属于每个行组的每个列层存在至多一个cpm,所以可以仅存储包括cpm的行的位置和移位量,因此存储奇偶校验矩阵所需的存储器容量可以减少。

当属于每个行组的每个列层存在两个或更多cpm时,可能需要8位。因此,可能另外需要存储器来存储表示每个位对应的层的信息。

图16是示出基于所公开技术的实施例的错误校正解码器的示图。

在图16中,更详细地示出图14中所示的错误校正解码器。参照图16,错误校正解码器200可以包括映射器210、第一存储器220、节点处理器230、解码控制器240、第二存储器250、第三存储器260和校正子校验器270。

映射器210可以接收与码字相对应的读取向量,并且基于所接收的读取向量来生成初始向量。初始向量可以包括分别与包括在读取向量中的读取值相对应的初始值。初始值可以是包括符号位和幅值位的llr值。例如,映射器210可以参考查找表(lut)212将读取值转换成初始值。映射器210可以将所生成的初始向量存储在第一存储器220中。例如,第一存储器220可以利用静态随机存取存储器(sram)、动态随机存取存储器(dram)等来实施,但是所公开技术的实施例不限于此。

节点处理器230可以基于存储在第一存储器220中的初始向量来执行错误校正解码。节点处理器230可以包括变量节点处理器232、校验节点处理器234和路由器236。

路由器236可以路由在变量节点处理器232和校验节点处理器234之间通信的消息。例如,路由器236可以从解码控制器240接收关于当前激活层的信息,并且基于所接收的信息来控制v2c消息和c2v消息的传送。关于当前激活层的信息可以包括,例如关于当前激活层中包括的cpm的位置和循环移位量的信息。例如,路由器236可以基于关于当前激活层的信息来连接变量节点单元vnu和校验节点单元组cnug。

在第一次迭代中,变量节点处理器232可以从第一存储器220接收初始向量,并且将与所接收的初始向量相对应的硬判决值存储在第二存储器250中。例如,变量节点处理器232可以在第二存储器250中存储初始向量中包括的符号位和幅值位之中的幅值位的序列。变量节点处理器232可以基于从第一存储器220接收的初始向量,生成与在第一次迭代中顺序激活层相对应的v2c消息,并将所生成的v2c消息传送到校验节点处理器234。

在第一次迭代中,校验节点处理器234可以通过使用从变量节点处理器232接收的v2c消息来更新存储在第三存储器260中的校验节点的值。校验节点处理器234可以包括校验节点单元组cnug,其数量与行组的数量相对应。校验节点单元组cnug可以基于从解码控制器240接收的关于当前激活层的信息,来访问第三存储器260中包括的多个存储器区域之中的与当前激活层中包括的cpm相对应的存储器区域,并更新存储在所访问的存储器区域中的校验节点的值。例如,当使用最小和算法时,校验节点的值可以包括v2c消息之中的最小值、v2c消息之中的第二最小值、与最小值相对应的变量节点的索引以及与第二最小值相对应的变量节点的索引。

在第一次迭代之后的迭代中,校验节点处理器234可以基于关于当前激活层的信息来访问包括在第三存储器260中的多个存储器区域之中的与当前激活层相对应的存储器区域,基于存储在所访问的存储器区域中的校验节点的值生成c2v消息,并将所生成的c2v消息传送到变量节点处理器232。

在第一次迭代之后的迭代中,变量节点处理器232可以基于从校验节点处理器234接收的c2v消息和存储在第一存储器220中的初始值来计算属于当前激活层的变量节点的硬判决值,并更新存储在第二存储器250中的变量节点的硬判决值。另外,变量节点处理器232可以基于从校验节点处理器234接收的c2v消息和存储在第一存储器220中的初始值来生成v2c消息,并将所生成的v2c消息传送到校验节点处理器234。

解码控制器240可以控制映射器210接收与码字相对应的读取值并基于所接收的读取值来生成初始值。

解码控制器240可以控制节点处理器230,使得可以使用存储在第一存储器220中的初始值来执行错误校正解码。

解码控制器240可以为节点处理器230提供关于每个子迭代的当前激活层的信息。关于当前激活层的信息可以包括当前激活层中包括的cpm的位置和循环移位量。

当解码控制器240在最大迭代次数i内接收到校正子向量已通过校正子校验的通知时,解码控制器240可以控制第二存储器250,使得存储在第二存储器250中的变量节点的硬判决值可以作为解码的码字输出。当解码控制器240在最大迭代次数i内接收到校正子向量未通过校正子校验的通知时,解码控制器240可以控制节点处理器230,使得可以执行下一次迭代。当解码控制器240直到最大迭代次数i也没有接收到校正子校验已成功的通知时,解码控制器240可以输出表示与当前读取向量相对应的错误校正解码已失败的“失败”信号。

校正子校验器270可以通过使用存储在第二存储器250中的奇偶校验矩阵和变量节点的硬判决值来为每次迭代执行校正子校验。校正子校验器270可以通知解码控制器240校正子校验是否已成功/失败。

图17是示出基于所公开技术的实施例的存储器系统的示图。

参照图17,存储器系统2000可以包括:存储器装置2200,被配置为存储数据;以及存储器控制器2100,被配置为响应于来自主机1000的请求来控制存储器装置2200。

主机1000可以是被配置为将数据存储在存储器系统2000中或从存储器系统2000取回数据的装置或系统。作为示例而非限制的方式,主机1000可以包括计算机、便携式数字装置、平板电脑、数码相机、数字音频播放器、电视、无线通信装置或蜂窝电话中的至少一种。

存储器控制器2100可以控制存储器系统2000的全部操作。存储器控制器2100可以响应于来自主机1000的请求而执行各种操作。例如,存储器控制器2100可以对存储器装置2200执行编程操作、读取操作和擦除操作。在编程操作中,存储器控制器2100可以将编程命令、地址、码字或其它传送到存储器装置2200。在读取操作中,存储器控制器2100可以向存储器装置2200传送读取命令、地址或其它,并且从存储器装置2200接收与码字相对应的读取数据。在擦除操作中,存储器控制器2100可以将擦除命令、地址或其它传送到存储器装置2200。

存储器控制器2100可以包括主机接口2110、中央处理单元(cpu)2120、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160。主机接口2110、存储器接口2130、缓冲存储器2140、错误校正电路2150和内部存储器2160可以由cpu2120控制。

主机接口2110可以将从主机1000接收的编程请求、读取请求、擦除请求等传送到cpu2120。在编程操作中,主机接口2110可以从主机1000接收与编程请求相对应的原始数据,并且将所接收的原始数据存储在缓冲存储器2140中。在读取操作中,主机接口2110可以将存储在缓冲存储器2140中的解码的码字传送到主机1000。主机接口2110可以通过使用各种接口协议来执行与主机1000的通信。例如,主机接口2110可以通过使用以下之中的至少一种接口协议来与主机1000通信:高速非易失性存储器(nvme)、高速外围组件互连(pci-e)、高级技术附件(ata)、串行ata(sata)、并行ata(pata)、通用串行总线(usb)、多媒体卡(mmc)、增强型小型磁盘接口(esdi)、电子集成驱动器(ide)、移动产业处理器接口(mipi)、通用闪存(ufs)、小型计算机系统接口(scsi)和串列scsi(sas)。然而,所公开技术的实施例不限于此。

cpu2120可以执行各种计算或生成命令和地址,以便控制存储器装置2200。例如,响应于从主机接口2110传送的请求,cpu2120可以生成编程操作、读取操作、擦除操作等所需的各种命令和地址。

当cpu2120从主机接口2110接收到编程请求时,cpu2120可以控制错误校正电路2150对存储在缓冲存储器2140中的原始数据执行错误校正编码。当cpu2120从错误校正电路2150接收到已生成码字的通知时,cpu2120可以生成编程命令和地址,并且控制存储器接口2130,使得所生成的编程命令、所生成的地址和存储在缓冲存储器240中的码字可以被传送到存储器装置2200。

当cpu2120从主机接口2110接收到读取请求时,cpu2120可以生成读取命令和地址,并且控制存储器接口2130,使得可以将所生成的编程命令和所生成的地址传送到存储器装置2200。当cpu2120从存储接口2130接收到已接收到读取数据的通知时,cpu2120可以控制错误校正电路2150对存储在缓冲存储器2140中的读取数据执行错误校正解码。当cpu2120从错误校正电路2150接收到已生成解码的码字的通知时,cpu2120可以控制主机接口2110,使得可以将存储在缓冲存储器2140中的解码的码字传送到主机1000。

存储器接口2130可以通过使用各种接口协议来执行与存储器装置2200的通信。

在编程操作中,存储器接口2130可以将从cpu2120接收的编程命令和地址以及存储在缓冲存储器2140中的码字传送到存储器装置2200。

在读取操作中,存储器接口2130可以将从cpu2120接收的读取命令和地址传送到存储器装置2200。在读取操作中,存储器接口2130可以将从存储器装置2200接收的读取数据存储在缓冲存储器2140中,并且通知cpu2120已接收到读取数据。

在存储器控制器2100正在控制存储器装置2200的同时,缓冲存储器2140可以暂时存储数据。

在编程操作中,缓冲存储器2140可以存储从主机接口2110接收的原始数据,并且将所存储的原始数据传送到错误校正电路2150。在编程操作中,缓冲存储器2140可以存储从错误校正电路2150接收的码字,并且将所存储的码字传送到存储器接口2130。

在读取操作中,缓冲存储器2140可以存储从存储器装置2200接收的读取数据,并将所存储的读取数据传送到错误校正电路2150。在读取操作中,缓冲存储器2140可以存储从错误校正电路2150接收的解码的码字,并且将所存储的解码的码字传送到主机接口2110。

错误校正电路2150可以对原始数据执行错误校正编码,并且对读取数据执行错误校正解码。错误校正电路2150可以具有一定水平的错误校正能力。例如,当在读取数据中存在数量不超过错误校正能力的错误位时,错误校正电路2150可以检测并校正包括在读取数据中的错误。不超过错误校正电路2150的错误校正能力的最大错误位计数可以被称为最大允许错误位计数。作为示例而非限制的方式,错误校正电路2150可以是使用ldpc码,特别是qc-ldpc码的错误校正电路。

错误校正电路2150可以包括错误校正编码器2152和错误校正解码器2154。

错误校正编码器2152可以通过对从缓冲存储器2140接收的原始数据执行错误校正编码来生成码字。错误校正编码器2152可以将所生成的码字传送到缓冲存储器2140,并且通知cpu2120已生成码字。错误校正编码器2152的基本配置和基本操作与参照图1描述的错误校正编码器100相同。

错误校正解码器2154可以通过对从缓冲存储器2140接收的读取数据执行错误校正解码来生成解码的码字。错误校正解码器2154可以将解码的码字传送到缓冲存储器2140,并且通知cpu2120已生成解码的码字。当包括在读取数据中的错误不可校正时,错误校正解码器2154可以通知cpu2120错误校正解码已失败。错误校正解码器2154的基本配置和基本操作与参照图1和图16描述的错误校正解码器200相同。

错误校正编码器2152和错误校正解码器2154可以通过使用相同的奇偶校验矩阵来执行错误校正编码和错误校正解码。例如,错误校正编码器2152和错误校正解码器2154可以通过使用参照图12至图14描述的奇偶校验矩阵(或基础矩阵)来执行低复杂性错误校正编码和低复杂性错误校正解码。

内部存储器2160可以用作存储存储器控制器2100的操作所需的各种信息的存储装置。内部存储器2160可以存储多个表。在实施例中,内部存储器2160可以存储映射逻辑和物理地址的地址映射表。

存储器装置2200可以在存储器控制器2100的控制下执行编程操作、读取操作、擦除操作等。存储器装置2200可以利用当电力供应被中断时所存储的数据消失的易失性存储器装置或者即使在电力供应被中断时也保留所存储的数据的非易失性存储器来实施。

存储器装置2200可以从存储器控制器2100接收编程命令、地址和码字,并且基于所接收的编程命令和所接收的地址来存储码字。

存储器装置2200可以基于从存储器控制器2100接收的读取命令和地址,对码字执行读取操作,并将读取数据提供给存储器控制器2100。

图18是示出基于所公开技术的实施例的存储器装置的示图。图18所示的存储器装置可以应用于图17所示的存储器系统。

存储器装置2200可以包括控制逻辑2210、外围电路2220和存储器单元阵列2240。外围电路2220可以包括电压生成器2222、行解码器2224、输入/输出电路2226、列解码器2228、页面缓冲器组2232和电流感测电路2234。

控制逻辑2210可以在图17所示的存储器控制器2100的控制下控制外围电路2220。

控制逻辑2210可以响应于通过输入/输出电路2226从存储器控制器2100接收的命令cmd和地址add来控制外围电路2220。例如,控制逻辑2210可以响应于命令cmd和地址add输出操作信号op_cmd、行地址radd、列地址cadd、页面缓冲器控制信号pbsignals和允许位vry_bit<#>。控制逻辑2210可以响应于从电流感测电路2234接收的通过或失败信号pass或fail来确定验证操作是已通过还是失败。

外围电路2220可以执行用于将数据存储在存储器单元阵列2240中的编程操作、用于输出存储在存储器单元阵列2240中的数据的读取操作以及用于擦除存储在存储器单元阵列2240中的数据的擦除操作。

电压生成器2222可以响应于从控制逻辑2210接收的操作信号op_cmd而生成在编程、读取和擦除操作中使用的各种操作电压vop。例如,电压生成器2222可以将编程电压、验证电压、通过电压、读取电压、擦除电压、导通电压等传送到行解码器2224。

行解码器2224可以响应于从控制逻辑2210接收的行地址radd,将操作电压vop传送到与存储器单元阵列2240的存储块之中的所选择的存储块连接的局部线ll。局部线ll可以包括局部字线、局部漏极选择线和局部源极选择线。另外,局部线ll可以包括连接到存储块的各种线,诸如源极线。

输入/输出电路2226可以将从存储器控制器2100接收的命令cmd和地址add通过输入/输出线io传送到控制逻辑2210,或者与列解码器2228交换数据data。

列解码器2228可以响应于从控制逻辑2210接收的列地址cadd在输入/输出电路2226和页面缓冲器组2232之间传送数据。例如,列解码器2228可以通过数据线dl与页面缓冲器pb1至pbm交换数据,或者通过列线cl与输入/输出电路2226交换数据。

页面缓冲器组2232可以连接到共同连接到存储块blk1到blki的位线bl1到blm。页面缓冲器组2232可以包括连接到位线bl1至blm的多个页面缓冲器pb1至pbm。例如,一个页面缓冲器可以连接到每个位线。页面缓冲器pb1至pbm可以响应于从控制逻辑2210接收的页面缓冲器控制信号pbsignals而操作。例如,在编程操作中,页面缓冲器pb1至pbm可以临时存储从存储器控制器2100接收的编程数据,并根据编程数据来调整施加到位线bl1至blm的电压。另外,在读取操作中,页面缓冲器pb1至pbm可以临时存储通过位线bl1至blm接收的数据,或者感测位线bl1至blm的电压或电流。

在读取或验证操作期间,电流感测电路2234可以响应于从控制逻辑2210接收的允许位vry_bit<#>而生成参考电流,并且通过将从页面缓冲器组2232接收的感测电压vpb与由参考电流产生的参考电压进行比较,输出通过信号pass或失败信号fail。

存储器单元阵列2240可以包括存储数据的多个存储块blk1至blki。可以将执行存储器装置2200的操作所需的用户数据和各种信息存储在存储块blk1至blki中。存储块blk1至blki可以以二维结构或三维结构实施,并且被配置为彼此相同。

图19是示出存储块的示图。

存储器单元阵列可以包括多个存储块。为了便于描述,在图19中示出多个存储块之中的任意一个存储块blki。

在存储块blki中,可以将彼此平行布置的多条字线连接在第一选择线和第二选择线之间。第一选择线可以是源极选择线ssl,第二选择线可以是漏极选择线dsl。具体地,存储块blki可以包括连接在位线bl1至blm与源极线sl之间的多个串st。位线bl1至blm可以分别连接到串st,并且源极线sl可以共同连接到串st。串st可以彼此相同地配置,因此将通过示例的方式详细描述连接到第一位线bl1的串st。

串st可以包括在源极线sl和第一位线bl1之间彼此串联连接的源极选择晶体管sst、多个存储器单元f1至f16和漏极选择晶体管dst。可以在一个串st中包括至少一个源极选择晶体管sst和至少一个漏极选择晶体管dst,并且数量比附图中所示的存储器单元f1至f16更多的存储器单元可以包括在一个串st中。

源极选择晶体管sst的源极可以连接到源极线sl,并且漏极选择晶体管dst的漏极可以连接到第一位线bl1。存储器单元f1至f16可以串联连接在源极选择晶体管sst和漏极选择晶体管dst之间。包括在不同串st中的源极选择晶体管sst的栅极可以连接到源极选择线ssl,包括在不同串st中的漏极选择晶体管dst的栅极可以连接到漏极选择线dsl,包括在不同串st中的存储器单元f1至f16的栅极可以连接到多个字线wl1至wl16。包括在不同串st中的存储器单元之中、连接到相同字线的一组存储器单元可以是物理页面ppg。因此,存储块blki中可以包括数量对应于字线wl1至wl16的数量的物理页面ppg。

一个存储器单元可以存储一位数据。该存储器单元被称为单层单元(slc)。一个物理页面ppg可以存储一个逻辑页面(lpg)数据。一个lpg数据可以包括数量对应于一个物理页面ppg中包括的单元的数量的数据位。例如,当两个或更多位数据存储在一个存储器单元中时,一个物理页面ppg可以存储两个或更多lpg数据。例如,在以2位mlc类型驱动的存储器装置中,两个lpg数据可以被存储在一个物理页面ppg中。在以3位mlc(三层单元;tlc)类型驱动的存储器装置中,三个lpg数据可以存储在一个物理页面ppg中。

图20是示出包括图17所示的存储器控制器的存储器系统的另一示例的示图。

参照图20,存储器系统30000可以被实施为蜂窝电话、智能电话、平板pc、个人数字助理(pda)或无线通信装置。存储器系统30000可以包括存储器装置2200和能够控制存储器装置2200的操作的存储器控制器2100。

存储器控制器2100可以在处理器3100的控制下控制存储器装置2200的数据访问操作,例如编程操作、擦除操作、读取操作等。

编程在存储器装置2200中的数据可以在存储器控制器2100的控制下通过显示器3200输出。

无线电收发器3300可以通过天线ant传送/接收无线电信号。例如,无线电收发器3300可以将通过天线ant接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号,并且可以将处理后的信号传送到存储器控制器2100或显示器3200。存储器控制器2100可以将由处理器3100处理的信号传送到存储器装置2200。而且,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ant将经改变的无线电信号输出到外部装置。输入装置3400是能够输入用于控制处理器3100的操作的控制信号或由处理器3100处理的数据的装置,并且可以被实施为诸如触摸板或计算机鼠标的定点装置、小键盘或者键盘。处理器3100可以控制显示器3200的操作,使得可以通过显示器3200输出从存储器控制器2100输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据。

在一些实施例中,能够控制存储器装置2200的操作的存储器控制器2100可以被实施为处理器3100的一部分,或者被实施为独立于处理器3100的芯片。

图21是示出包括图17所示的存储器控制器的存储器系统的另一示例的示图。

参照图21,存储器系统70000可以被实施为存储卡或智能卡。存储器系统70000可以包括存储器装置2200、存储器控制器2100和卡接口7100。

存储器控制器2100可以控制存储器装置2200和卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(sd)卡接口或多媒体卡(mmc)接口,但是所公开技术不限于此。

卡接口7100可以根据主机60000的协议来接口连接主机60000和存储器控制器2100之间的数据交换。在一些实施例中,卡接口7100可以支持通用串行总线(usb)协议和芯片间(ic)-usb协议。卡接口7100可以表示能够支持由主机60000使用的协议的硬件、嵌入硬件的软件或信号传送方案的硬件。

当存储器系统70000连接到诸如pc、平板pc、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可以在微处理器6100的控制下通过卡接口7100和存储器控制器1200与存储器装置2200执行数据通信。

通过实施在本公开中所公开的技术,可以实现低复杂性错误校正编码和低复杂性错误校正解码。

通过实施在本公开中所公开的技术,可以提供一种能够实现低复杂性错误校正编码和低复杂性错误校正解码的奇偶校验矩阵。

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