错误校正增强的存储器设备的制作方法

文档序号:21626879发布日期:2020-07-29 02:33阅读:172来源:国知局
错误校正增强的存储器设备的制作方法



背景技术:

提供以下描述是为了帮助读者理解。所提供的信息或引用的参考文献均未承认是现有技术。

存储在计算机存储器设备中的电子数据可能在不同程度上遭受数据损坏,这会在写入、读取、存储、传输或处理期间向数据引入意外错误。数据损坏会导致有价值的数据丢失和系统崩溃。与存储器设备相关联的控制器可以采用错误校正码(ecc)解码器来管理数据错误。诸如低密度奇偶校验(ldpc)解码器的ecc解码器可以基于每个位已翻转的概率(例如,一应为零,反之亦然)来进行错误校正。使用默认参数(其可以对应于数据均匀分布的情况)的ecc解码器不如使用更适合于对非均匀数据进行解码的解码参数的解码器有效。但是,基于要进行解码的噪声数据(即,从存储器读取并且具有潜在位翻转的编码数据)的特征来估计位翻转的概率可能会导致错误的估计,因为噪声数据可能具有大量的位翻转。根据错误估计的统计数据调整解码器参数可能会增加解码延迟和功耗,并且可能导致解码失败。



技术实现要素:

本文公开的实施方案涉及用于基于源统计数据来对数据进行解码的设备、系统和方法。在一个方面,特定位翻转的可能性因不同类型的数据而异,并且通过了解编码数据的基础源统计数据,可以增强解码器的性能。在另一方面,解码器基于关于数据类型的信息来调整其对每个位的估计,从而增强校正能力并且减少解码延迟和功耗。

本文所公开的各种实施方案涉及一种设备。存储器设备可以包括控制器。控制器可以被配置为计算第一数据块的第一源统计数据。第一数据块可以是第一错误校正码(ecc)编码数据块。控制器还可以被配置为将第一源统计数据与第二数据块的第二源统计数据进行比较。第二数据块可以是第二ecc编码数据块。此外,控制器可以被配置为基于第一源统计数据和第二源统计数据中的至少一个来确定第一数据块的解码器参数。解码器参数可以是ecc解码器参数。控制器可以被配置为响应于确定第一源统计数据和第二源统计数据之间的正相关性来确定解码器参数。存储器设备可还包括解码器。解码器可以是ecc解码器。解码器可以被配置为使用由控制器确定的解码器参数来对第一数据块进行解码。

在一个或多个实施方案中,第一数据块和第二数据块两者都包括第一类型的数据。第一类型可以对应于生成了该数据的应用程序。

在一个或多个实施方案中,控制器可以被配置为计算第一源统计数据而无需对第一数据块进行解码。

在一个或多个实施方案中,存储器设备还可以包括编码器。编码器可以是ecc编码器。编码器可以被配置为对数据进行编码以生成第二数据块。控制器可以被配置为在由编码器对第二数据块进行编码期间计算第二源统计数据。

在一个或多个实施方案中,控制器可以被配置为至少部分地通过识别适合于第二数据块的解码器参数来确定第一数据块的解码器参数。控制器可以被配置为响应于确定第一源统计数据与第二源统计数据正相关来确定解码器参数。

在一个或多个实施方案中,为了将第一源统计数据与第二源统计数据进行比较,控制器可以被配置为至少部分地计算第一源统计数据和第二源统计数据之间的相关性系数。控制器还可以被配置为将相关性系数与相关性阈值进行比较。另外,控制器可以被配置为确定第一源统计数据与第二源统计数据正相关。控制器可以被配置为响应于相关性系数满足相关性阈值,确定第一源统计数据与第二源统计数据正相关。

在一个或多个实施方案中,解码器可以被配置为在接收和解码第一数据块之前接收和解码第二数据块。

在一个或多个实施方案中,控制器可以被配置为独立于第二数据块在存储器设备中的物理位置来选择第二数据块。

在一个或多个实施方案中,控制器可以被配置为独立于相对于第一数据块对第二数据块进行编码的时间来选择第二数据块。

在一个或多个实施方案中,第一源统计数据可以选自字节直方图、位直方图和可变长度序列的重复。

本文所公开的各种实施方案涉及一种系统。该系统可以包括多个存储器单元,该多个存储器单元存储编码数据块,这些编码数据块包含由多个应用程序类型生成的数据。该系统还可以包括耦接到多个存储器单元的存储器接口电路。存储器接口电路可以被配置为接收存储在多个存储器单元中的第一编码数据块。第一编码数据块可以是第一ecc编码数据块。第一编码数据块可以包含由第一应用程序类型生成的数据。存储器接口电路还可以被配置为将第一编码数据块的第一源统计数据与对应于由多个对应应用程序类型生成的数据的多个源统计数据类别进行比较。另外,存储器接口电路可以被配置为至少部分地基于应用程序类型来识别与第一源统计数据正相关的第一源统计数据类别。存储器接口电路还可以被配置为基于第一源统计数据类别来修改解码器参数。解码器参数可以是ecc解码器参数。该系统还可以包括耦接到存储器接口电路的解码器。解码器可以是ecc解码器。解码器可以被配置为使用由存储器接口电路修改的解码器参数对第一编码数据块进行解码。

在一个或多个实施方案中,为了识别解码器参数,存储器接口电路可以被配置为至少部分地计算第一源统计数据与第二编码数据块的第二源统计数据的相关性。

在一个或多个实施方案中,该系统还可以包括编码器。编码器可以被配置为对写入存储器单元的数据进行编码。存储器接口电路还可以被配置为在对数据进行编码期间确定第一源统计数据以生成第一编码数据块。

在一个或多个实施方案中,存储器接口电路可以被配置为将第一源统计数据类别识别为与第一源统计数据正相关。存储器接口电路可以被配置为响应于第一源统计数据类别与第一源统计数据之间的相关性满足相关性阈值,将第一源统计数据类别识别为与第一源统计数据正相关。

在一个或多个实施方案中,解码器可以被配置为将用于成功解码第二编码数据块的解码器参数应用于第一编码数据块。解码器可以被配置为响应于确定相关性超过相关性阈值,将用于成功解码第二编码数据块的解码器参数应用于第一编码数据块。

在一个或多个实施方案中,第一应用程序类型生成包含一种或多种数据类型的数据,这些数据类型选自文本、图像、视频和音频。

本文所公开的各种实施方案涉及一种对编码数据进行解码的方法。编码数据可以是ecc编码数据。该方法可以包括确定编码数据块的源统计数据。编码数据块可以是ecc编码数据块。该方法还可以包括计算源统计数据与对应于第一参考编码数据块的第一参考源统计数据的第一相关性。第一参考编码数据块可以是第一参考ecc编码数据块。另外,该方法可以包括将第一相关性与相关性阈值进行比较。该方法还可以包括使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据块进行解码。解码参数可以是ecc解码参数。使用先前用于对第一参考编码数据块进行解码的解码参数对编码数据块进行解码可以响应于确定第一相关性满足相关性阈值。

在一个或多个实施方案中,该方法还可以包括计算源统计数据与对应于第二参考编码数据块的第二参考源统计数据的第二相关性。第二参考编码数据块可以是第二参考ecc编码数据块。当以下两项均满足时,可以使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据进行解码:(i)第一相关性满足相关性阈值;以及(ii)第一相关性大于第二相关性。

在一个或多个实施方案中,该方法还可以包括在编码数据块中的数据的编码期间确定编码数据块的源统计数据,以生成编码数据块。数据的编码可以是ecc编码。

在一个或多个实施方案中,该方法还可以包括确定使用解码参数成功解码了第一参考编码数据块,作为使用解码参数对编码数据块进行解码的前提。

在一个或多个实施方案中,该方法还可以包括使用先前用于对第一参考编码数据块进行解码的解码参数来确定未成功解码编码数据块。该方法还可以包括使用第二组解码参数来对编码数据块进行解码。第二组解码参数可以是第二组ecc解码参数。

在一个或多个实施方案中,第二组解码参数可能先前已用于对第二参考编码数据块进行解码。

在一个或多个实施方案中,第二组解码参数可以是当没有找到相关性超过相关性阈值时,用于对编码数据块进行解码的默认解码参数。

在一个或多个实施方案中,该方法还可以包括确定第一相关性满足相关性阈值。确定第一相关性满足相关性阈值可以是响应于确定编码数据块中的数据是由与第一参考编码数据块中的数据相同的应用程序类型生成的。

本文所公开的各种实施方案涉及一种存储器设备。存储器设备可以包括用于确定编码数据块的源统计数据的装置。编码数据块可以是ecc编码数据块。存储器设备还可以包括用于计算源统计数据与对应于第一参考编码数据块的第一参考源统计数据的第一相关性的装置。第一参考编码数据块可以是第一参考ecc编码数据块。另外,存储器设备可以包括用于计算源统计数据与对应于第二参考编码数据块的第二参考源统计数据的第二相关性的装置。第二参考编码数据块可以是第二参考ecc编码数据块。存储器设备还可以包括用于将第一相关性与相关性阈值进行比较的装置。存储器设备还可以包括用于使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据块进行解码的装置。解码参数可以是ecc解码参数。使用先前用于对第一参考编码数据块进行解码的解码参数对编码数据块进行解码可以响应于确定第一相关性满足相关性阈值。

本文所公开的各种实施方案涉及一种控制器。控制器可以被配置为确定第一数据块的第一源统计数据。第一数据块可以是ecc编码数据块。控制器还可以被配置为将第一源统计数据与第二源统计数据进行比较。第二源统计数据可以针对第二数据块。第二数据块可以是ecc编码数据块。此外,控制器可以被配置为基于第一源统计数据和第二源统计数据中的至少一个来确定第一数据块的解码器参数。解码器参数可以是ecc解码器参数。控制器可以被配置为响应于确定第一源统计数据和第二源统计数据之间的正相关性来确定解码器参数。另外,控制器可以被配置为使用所确定的解码器参数来对第一数据块进行解码。

在一个或多个实施方案中,第一数据块和第二数据块两者都可以包括第一类型的数据。第一类型可以对应于生成了该数据的应用程序。

在一个或多个实施方案中,第一数据块可以对应于第一应用程序。第二数据块可以对应于第二应用程序。第二应用程序可以不同于第一应用程序。第一数据块和第二数据块可以均为第一类型。第一类型可以对应于生成了该数据的用户。另选地或除此之外,第一类型可以对应于文件类型。

在一个或多个实施方案中,控制器可以被配置为确定第一源统计数据而无需对第一数据块进行解码。

在一个或多个实施方案中,控制器可以被配置为对数据进行编码以生成第二数据块。控制器可以被配置为对第二数据块进行ecc编码。控制器还可以被配置为在第二数据块的编码期间确定第二源统计数据。

在一个或多个实施方案中,控制器可以被配置为至少部分地通过识别适合于第二数据块的解码器参数来确定第一数据块的解码器参数。可以响应于确定第一源统计数据与第二源统计数据正相关来识别解码器参数。

在一个或多个实施方案中,为了将第一源统计数据与第二源统计数据进行比较,控制器可以被配置为至少部分地计算第一源统计数据和第二源统计数据之间的相关性系数。控制器还可以被配置为将相关性系数与相关性阈值进行比较。此外,控制器可以被配置为确定第一源统计数据与第二源统计数据正相关。控制器可以被配置为响应于相关性系数满足相关性阈值,确定第一源统计数据与第二源统计数据正相关。

在一个或多个实施方案中,控制器可以被配置为在接收和解码第一数据块之前接收和解码第二数据块。

在一个或多个实施方案中,控制器可以被配置为独立于第二数据块在存储器设备中的物理位置来选择第二数据块。

在一个或多个实施方案中,控制器可以被配置为独立于相对于第一数据块对第二数据块进行编码的时间来选择第二数据块。

在一个或多个实施方案中,第一源统计数据可以基于时间相关性。时间相关性可以在第一数据块编码的时间和第二数据块编码的时间之间。可以基于第一源统计数据来确定解码器参数。

在一个或多个实施方案中,控制器可以被配置为基于时间相关性来修改解码器参数。时间相关性可以是第一数据块编码的时间和第二数据块编码的时间之间的时间相关性。

在一个或多个实施方案中,将第一源统计数据与第二源统计数据进行比较可以包括比较第一数据块和第二数据块中的位、字节和可变长度序列中的至少一个的频率。

在一个或多个实施方案中,第一源统计数据可以是字节直方图。字节直方图可以对应于字节的频率。另选地或除此之外,第一源统计数据可以是位直方图。位直方图可以对应于位的频率。另选地或除此之外,第一源统计数据还可以是可变长度序列的重复。

本文所公开的各种实施方案涉及一种方法。该方法可以包括接收第一编码数据块。第一编码数据块可以是ecc编码数据块。第一编码数据块可以被存储在多个存储器单元中,该多个存储器单元存储包含由多个应用程序类型生成的数据的编码数据块。第一编码数据块可以包含由第一应用程序类型生成的数据。该方法还可以包括将第一编码数据块的第一源统计数据与对应于由多个对应应用程序类型生成的数据的多个源统计数据类别进行比较。此外,该方法可以包括识别与第一源统计数据正相关的第一源统计数据类别。可以至少部分地基于应用程序类型来识别第一源统计数据类别。另外,该方法可以包括修改解码器参数。解码器参数可以是ecc解码器参数。可以基于第一源统计数据类别来修改解码器参数。该方法还可以包括使用修改的解码器参数来对第一编码数据块进行解码。

在一个或多个实施方案中,识别解码器参数可以包括计算第二编码数据块的第一源统计数据与第二源统计数据的相关性。第二编码数据块可以是第二ecc编码数据块。

在一个或多个实施方案中,该方法可以包括对写入存储器单元的数据进行编码。编码可以是ecc编码。该方法还可以包括在数据编码期间确定第一源统计数据以生成第一编码数据块。

在一个或多个实施方案中,响应于第一源统计数据类别与第一源统计数据之间的相关性满足相关性阈值,可以将第一源统计数据类别识别为与第一源统计数据正相关。

在一个或多个实施方案中,响应于确定相关性超过相关性阈值,可以将用于成功解码第二编码数据块的解码器参数应用于第一编码数据块。

在一个或多个实施方案中,第一应用程序类型可以生成包含一种或多种数据类型的数据,这些数据类型选自文本、图像、视频和音频。

附图说明

图1为根据一个或多个示例性实施方案的计算机系统的框图。

图2为根据一个或多个示例性实施方案的包括解码控制器的存储器接口电路。

图3为根据一个或多个示例性实施方案的示出对编码数据进行解码的过程的流程图。

图4为根据一个或多个示例性实施方案的示出用于增强解码的过程的流程图。

图5为根据一个或多个示例性实施方案的示出用于增强解码的过程的流程图。

图6为根据一个或多个示例性实施方案的示出用于增强解码的过程的流程图。

图7为根据一个或多个示例性实施方案的示出用于增强解码的过程的流程图。

图8为根据一个或多个示例性实施方案的示出用于增强解码的过程的流程图。

图9a描绘了根据一个或多个示例性实施方案的记录在计算设备中的顺序写入。

图9b描绘了根据一个或多个示例性实施方案的记录在计算设备中的顺序写入。

图9c描绘了根据一个或多个示例性实施方案的记录在计算设备中的顺序写入。

图9d描绘了根据一个或多个示例性实施方案的记录在计算设备中的顺序写入。

图10a描绘了根据一个或多个示例性实施方案的代表性数据块与来自图9a至图9d的顺序写入的数据块之间的相关性。

图10b描绘了根据一个或多个示例性实施方案的代表性数据块与来自图9a至图9d的顺序写入的数据块之间的相关性。

图10c描绘了根据一个或多个示例性实施方案的代表性数据块与来自图9a至图9d的顺序写入的数据块之间的相关性。

图10d描绘了根据一个或多个示例性实施方案的代表性数据块与来自图9a至图9d的顺序写入的数据块之间的相关性。

图11a表示根据一个或多个示例性实施方案的与可以包括在编码数据块中的ascii文本文件相对应的数据。

图11b表示根据一个或多个示例性实施方案的可以由典型用户写入存储器的各种类型的数据。

图12提供了根据一个或多个示例性实施方案的示出增强解码的模拟结果。

图13提供了根据一个或多个示例性实施方案的示出增强解码的模拟结果。

结合附图,根据以下描述和所附权利要求书,本公开的前述和其他特征将变得显而易见。应当理解,这些附图仅描绘了根据本公开的若干个实施方案,因此,不应认为是对其范围的限制,通过使用附图,以附加的特异性和细节描述了本公开。

具体实施方式

在以下实施方式方式中,参考了构成该实施方式方式的一部分的附图。在附图中,除非上下文另外指明,否则类似符号通常标识类似的部件。在具体实施方式、附图和权利要求书中描述的示例性实施方案并非旨在进行限制。在不脱离此处提出的主题的实质或范围的情况下,可以利用其他实施方案,并且可以进行其他改变。应当容易理解,可以广泛多种不同配置来布置、替换、组合和设计如本文一般地描述的以及在附图中示出的本公开的各方面,所有这些都被明确地构想并且构成本公开的一部分。

本文公开了用于通过利用数据块之间的相关性来在保持高吞吐量的同时高精度地获得源统计数据的方法、设备和系统。因此,可以实现增强的校正能力,并且可以减少解码时间和功耗。本文中的解码是指将编码形式的数据转换成解码形式。解码的示例包括ecc(错误校正码)解码。编码的示例包括ecc编码。

在一个方面,数据块的源统计数据可以是表征数据块的内容(即,其中包含的数据)的任何数据。源统计数据可以至少部分地基于数据中的模式,或者可以与在数据块中的某些位置发现某些值的可能性相关。源统计数据可以表征数据块中数据未均匀分布的方式和程度。可以被跟踪以获悉源统计数据的示例性属性包括直方图以及可变长度序列的频率。例如,字节直方图可以指示256个可能字节中的每个字节的频率(二进制,从00000000到11111111),这表明较高频率的字节比较低频率的字节更有可能,因此得出较高频率字节的位校正更有可能是准确的。位直方图可以测量1和0的概率,并且序列的频率可以识别重复序列,使得如果校正得出相对于不那么频繁观察的重复频率更加频繁观察的重复频率,则更可能正确地校正位序列。

在另一方面,估计当前数据块的源统计数据以用于以更高的准确性和减少的延迟(或无延迟)进行解码。可以从已解码并且具有与当前数据块的统计数据高度相关的统计数据的不同数据块中获悉源统计数据。不同的数据块可能已经成功解码,但是不必成功解码。有利地,可以从数据块中获悉源统计数据而无需解码。在各种实施方式中,从成功解码的数据块中获悉的源统计数据可以更有信息量或更加准确。可以在从相同源或应用程序生成的不同数据块中找到与其对应的统计数据高度相关的数据块。这些统计数据可以用于调整解码器参数并且增强解码器校正能力,同时降低解码延迟和功耗。

了解编码数据的基础统计数据有助于提高解码器的性能和校正能力。作为用户信息的示例,在图11a中示出了ascii文本文件。ascii中的每个字符都为字节,并且最常见的字符通常只占用字节的七个最低有效位(lsb),而最高有效位(msb)的值为零(与图11a中圈出的第一列相对应)。例如,如果ecc解码器知道数据如例如图11a所示进行了整形,使得第一位全部为零(或换句话讲更可能为零),则解码器可以更改解码参数以反映该形状。例如,解码器可以更改每个字节的msb中1/0分布的概率(使得第一位的值为1的可能性为零或以其他方式降低),从而提高了性能和校正能力。

在不失一般性的前提下,现在将讨论使用字节直方图作为源统计数据的选项,以便展示在本发明的实施方案中可实现的增益。参考图9a至图9d,作为示例,示出了记录在计算设备中的顺序写入命令。此处所示的顺序写入由128个数据块组成,各自为4千字节(kb)。图9a至图9d的字节直方图表明字节在直方图中没有被均等地表示,因此拥有有价值的信息来校正与它们相关的其他数据块。只要源统计数据是有信息量的(例如,字节直方图情况的不均匀分布),源统计数据就可以用于校正其他数据块。图9a和图9b对应于来自文本文件的两个数据块(8和48)。图9c中的数据块全部(或几乎全部)为1,如字节255的尖峰所表示(即,11111111),而图9d中的数据块则大多为零,如字节0的尖峰所表示(即,00000000)。应当指出的是,即使数据块不是相邻写入的,它们也可以是类似的并且是上下文相关的,如通过数据块8(图9a)和数据块48(图9b)的类似模式可以看到,数据块8和数据块48相距40个块。也就是说,数据不必在时间上是顺序的或相关的,以使其类似,从而能够通知和增强解码参数。

图10a至图10d示出了来自图9a至图9d的顺序写入示例的四个代表性数据块(8、48、88和128)与全部128个数据块之间的相关性。也就是说,图10a、图10b、图10c和图10d提供数据块8、48、88和128分别与数据块1至128中的每一个(x轴)的相关性(y轴)。在图10a中,可以看出数据块8与数据块8具有1的相关性,并且与数据块8周围的数据块(例如,范围为约5至约15的数据块)高度相关,并且还与范围为约50至约75的数据块高度相关。类似地,在图10b中,可以看出数据块48与数据块48具有1的相关性,并且与数据块48附近的数据块(例如,范围为约48至约75的数据块)高度相关,并且还与范围为约1至约15的数据块高度相关。在图10c中,可以看出,数据块88与数据块88具有1的相关性,并且与88附近的数据块(例如,范围为约85至约95的数据块)高度相关,并且在图10d中,可以看出数据块128与数据块128具有1的相关性,并且与128附近的数据块(例如,范围为约95至约128的数据块)高度相关。这些说明顺序写入的数据块可能高度相关。所观察到的时间相关性(即,先前解码的数据块的字节直方图与当前数据块的字节直方图非常类似)可以用于增加校正能力并且减少解码延迟和功耗。

除了时间相关性之外,不同数据块之间的相关性还可以取决于数据的类型。有各种类型的数据被写入到存储器中,如图11b中的代表性饼图所示。不同类型的数据具有不同的属性。然而,来自同一类型的不同数据块具有类似的属性。在图11b中,所识别的数据类型为日志记录、相机、视频应用程序、电子邮件、浏览器、天气、社交网络应用程序1、社交网络应用程序2、图库、视频流等。例如,具有典型用户的日志记录数据的数据块预期具有与也包括日志记录数据的不同数据块类似的结构/统计数据/属性,但可能与具有图片数据的数据块明显不同。因此,在对特定数据块进行解码之前,可以从来自相同类型/应用程序/用户的其他数据块中获悉源统计数据,并且可以使用该信息来提高当前解码尝试的校正能力。由于可以观察到两个数据块之间的高度相关性,这些数据块在时间上不是连续的,而是来自相同源或相同应用程序的数据块,因此即使随机读取数据,数据块也可以高度相关。

图1为根据一个示例性实施方案的计算机系统100的框图。计算机系统100包括根据来自主机系统114的命令来操作的存储器系统112。计算机系统100可以是任何电子设备,诸如个人计算机、服务器计算机、膝上型计算机、智能电话、平板计算机、智能手表等。存储器系统114通过主机接口116与主机系统112(例如,在一些实施方式中,操作系统或应用程序)进行通信。存储器系统114可以是诸如存储卡或驱动器的可移动存储器的形式,或者可以是嵌入式存储器系统的形式。

存储器系统114包括存储器设备102和存储器控制器106。存储器控制器106是根据来自主机系统112的命令来控制存储器设备102的操作的电路。存储器设备102可以包括分布在一个或多个集成电路芯片上方的一个或多个存储器单元阵列。

存储器设备102是存储电子数据的硬件部件。在一个方面,存储器设备102体现为半导体存储器设备,该半导体存储器设备包括一个或多个易失性存储器设备,诸如动态随机存取存储器(dram)或静态随机存取存储器(sram)设备、非易失性存储器设备,诸如电阻式随机存取存储器(reram)、电可擦除可编程只读存储器(eeprom)、闪存存储器(也可以被认为是eeprom的子集)、铁电随机存取存储器(fram)和磁阻随机存取存储器(mram)、能够存储信息的其他半导体元件、或它们的某种组合。

存储器设备102可以由无源元件和/或有源元件以任何组合形成,并且可以包括多个存储器单元。在非限制性示例中,无源半导体存储器元件包括reram设备元件,这些设备元件在一些实施方案中包括电阻率切换存储元件诸如反熔丝、相变材料等,以及任选地包括导引元件诸如二极管等。此外,在另一个非限制性示例中,有源半导体存储器元件包括eeprom和闪存存储器设备元件,这些设备元件在一些实施方案中包括包含电荷存储区域的元件,诸如浮栅、导电纳米粒子或电荷存储介电材料。

多个存储器元件可被配置为使得它们串联连接或者使得每个元件可被单独访问。在非限制性示例中,nand配置中的闪存存储器设备(nand存储器)可包含串联连接的存储器元件。nand存储器阵列可以被配置为使得阵列包括一个或多个存储器串,其中串包括共享单个位线的多个存储器元件。另选地,可配置存储器元件,使得每个元件可被单独访问,例如nor存储器阵列。nand和nor存储器配置是示例性的,并且存储器元件可以其他方式配置。

位于基板内和/或上方的半导体存储器元件可被布置成两个或三个维度,诸如二维存储器结构或三维存储器结构。

在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器设备级中。通常,在二维存储器结构中,存储器元件被布置在平面中(例如,在x-z方向平面中),该平面基本上平行于支撑存储器元件的基板的主表面延伸。基板可以是在其上形成存储器元件的晶圆或者在其中形成存储器元件的层。基板也可以是承载基板,其在形成存储器元件之后附接到存储器元件。作为非限制性示例,基板可包括半导体,诸如硅。

存储器元件可被布置在处于有序阵列中(诸如在多个行和/或列中)的单个存储器设备级中。然而,存储器元件可以非常规配置或非正交配置排列。存储器元件可各自具有两个或更多个电极或接触线,诸如位线和字线。

三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三个维度(即,在x方向、y方向和z方向上,其中y方向基本上垂直于基板的主表面,并且x方向和z方向基本上平行于基板的主表面)的结构。

作为非限制性示例,三维存储器结构可被垂直地布置为多个二维存储器设备级的堆叠。作为另一个非限制性示例,三维存储器阵列可被布置为多个垂直列(例如,基本上垂直于基板的主表面延伸的列,即,在y方向上),其中在每一列中每一列均具有多个存储器元件。列可以二维配置例如在x-z平面中布置,从而得到存储器元件的三维布置,其中元件位于多个垂直堆叠的存储器平面上。三维存储器元件的其他配置也可构成三维存储器阵列。

在三维nand存储器阵列中,存储器元件可以耦接在一起以在单个水平(例如,x-z)存储器设备级内形成nand串。另选地,存储器元件可耦接在一起以形成横贯多个水平存储器设备级的垂直nand串。可设想到其他三维配置,其中一些nand串包含在单个存储器级中的存储器元件,而其他串则包含跨越多个存储器级的存储器元件。三维存储器阵列也可以nor配置以及reram配置来设计。

在单片三维存储器阵列中,一个或多个存储器设备级在单个基板上方形成。任选地,单片三维存储器阵列还可具有至少部分地在单个基板内的一个或多个存储器层。作为非限制性示例,基板可包括半导体,诸如硅。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可被共享或具有在存储器设备级之间的居间层。

二维阵列可单独形成,然后封装在一起以形成具有多层存储器的非单体存储器设备。例如,非单片的堆叠存储器可通过在单独的基板上形成存储器级并且然后将存储器级堆叠在彼此之上而构造。可在堆叠前将基板减薄或从存储器设备级移除,但由于存储器设备级在单独的基板上初始形成,因此所得的存储器阵列不是单片的三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可在单独的芯片上形成,并且然后封装在一起以形成堆叠的芯片存储器设备。

可以实施相关联的电路来操作存储器元件并且与存储器元件通信。作为非限制性示例,存储器设备可具有用于控制并且驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可与存储器元件位于同一基板上和/或位于单独的基板上。例如,用于存储器读取-写入操作的控制器可定位在单独的控制器芯片上和/或定位在与存储器元件相同的基板上。

应当认识到,以下内容不限于所描述的二维和三维示例性结构,而是涵盖了如本文所述的精神和范围内的所有相关存储器结构。

存储器控制器106控制存储器设备102的操作。在一个实施方案中,控制器106包括存储器接口电路110、处理器120、只读存储器(rom)122和随机存取存储器(ram)130。在一个方面,rom122和/或ram130构成存储指令的非暂时性计算机可读介质,这些指令在由处理器120执行时使处理器120执行本文公开的各种功能。这些部件可以体现为专用集成电路、现场可编程门阵列、本领域普通技术人员已知的其他控制器实施方案或这些实施方式中的一个或多个的组合。

存储器接口电路110是在主机系统112和存储器设备102之间交接的电路。在一种配置中,存储器接口电路110耦接在主机系统112和存储器设备102之间。在该配置中,存储器接口电路110根据来自主机系统112的请求在存储器设备102处存储数据或者从存储器设备102读取数据。

为了存储数据,响应于来自主机系统112的存储数据的请求,存储器接口电路110将数据存储在存储器设备102处。存储器接口电路110可以对数据进行编码并且将编码后的数据存储在存储器设备102处。为了读取数据,响应于来自主机系统112的读取数据的请求,存储器接口110从存储器设备102检索所存储的数据,并且将所检索的数据提供给主机系统112。存储器接口电路110可以使用一组解码参数来对编码后的数据进行解码,并且将解码后的数据提供给主机系统112。

图2是根据一个示例性实施方案的存储器接口电路110。存储器接口电路110包括接收器电路210、解码控制器220、编码控制器230和发射器电路240。这些部件一起操作以将数据存储在存储器设备102中或从中读取数据。这些部件可以体现为专用集成电路(asic)、现场可编程门阵列(fpga)或它们的组合。在其他实施方案中,存储器接口电路110包括比图2所示更多、更少或不同的部件。

接收器电路210可以是被配置为从主机112接收数据和/或指令、和/或接收存储在存储器设备102中的数据的任何电路。在一种配置中,接收器电路210耦接到存储器设备102的多个存储器单元。在其他实施方案中,可以利用接收器代替接收器电路210。如本文所用,接收器可以包括被配置为接收由一个或多个单元存储的数据的任何部件、逻辑、电路等。在一个实施方案中,接收器包括接收器电路210。在另一个实施方案中,两个或更多个部件可以配合用作接收器。

接收器电路210可以从主机112接收读取存储在存储器设备102中的数据的请求。当要读取数据时,主机112可以提供识别存储器设备102中要从其读取数据的位置的地址。在其他实施方案中,在不提供地址的情况下识别要读取的数据,并且存储器接口电路110通过例如交叉引用针对特定数据提供地址的表来确定存储器设备102中的位置。然后,接收器电路210可以从存储器设备102的一个或多个存储器单元中检索数据202,该数据可以编码形式存储并且可以具有位翻转。接收器电路210可以在将数据提供给主机112之前将编码数据202提供给解码控制器220。

接收器电路210还可以从主机112接收将数据写入存储器设备102的请求。主机112可以未编码形式提供要写入的数据204。在一些实施方式中,可以由存储器接口电路110确定存储器设备102中要存储未编码数据的位置,或者在其他实施方式中,可以由主机112提供识别存储器设备102中的位置的地址。接收器电路210可以将未编码数据204提供给编码控制器230以进行编码,然后再提供给存储器设备102。

解码控制器220是被配置为接收编码数据202的任何电路。在一种配置中,解码控制器220耦接到接收器电路210并且从接收器电路210接收编码数据202(其可以为噪声数据)。在一个方面,解码控制器220确定使用哪些解码参数来对编码数据202进行解码,然后再开始对编码数据202进行解码。在一种方法中,解码控制器220使用解码器数据分析器222而至少部分地基于数据的特性来确定使用哪些解码参数。编码数据202的特性可以基于例如数据的源(例如,生成了数据的应用程序或者提供了数据的设备或用户,该数据经编码以生成编码数据202)。在一些实施方式中,源统计数据可以用作表征数据的量度(诸如,当数据由同一应用程序生成或以其他方式来自同一源时,在数据中产生的模式)。可以将数据块的源统计数据相互比较,以识别合适的解码器参数,这些参数可以更有效和/或更准确地对编码数据进行解码。在各种实施方案中,解码器数据分析器222被配置为确定源统计数据并且比较数据块的源统计数据以确定数据块之间的相关性。

基于数据块之间的相关性,可以由参数调整器224调整将用于对编码数据进行解码的解码器参数。在一些实施方案中,如果在要解码的当前数据块和另一数据块之间发现正相关性,则可以调整解码器参数以对准或以其他方式对应于适合另一个数据块的解码器参数。解码控制器220可以将编码数据202提供给ecc解码器226,以使用由参数调整器224设定的调整后的参数进行解码。

ecc解码器226是被配置为根据来自解码控制器220的解码参数(和/或其他解码配置数据)执行解码的任何电路。在一种配置中,ecc解码器226耦接到参数调整器224和/或解码器数据分析器222。如本文所用,解码器可以包括被配置为根据解码配置数据执行解码的任何部件、逻辑、电路等。在另一个实施方案中,两个或更多个部件可以配合用作解码器。ecc解码器226从参数调整器224接收编码数据202和解码配置数据,并且根据解码配置数据来对编码数据202进行解码。在一些实施方案中,ecc解码器226是用于根据编码数据的统计数据来对数据进行解码的装置。在一个方面,解码配置数据指示编码数据的统计数据,其中这些统计数据与编码数据的内容(例如,所包含的内容)或类型(或其他特性)相关。因此,ecc解码器226可以通过根据基于数据特性的解码配置数据而对编码数据202进行解码来执行内容感知解码。

编码控制器230是被配置为接收未编码数据204的任何电路。在一种配置中,编码控制器230耦接到接收器电路210,并且从接收器电路210接收未编码数据204。在一个方面,编码控制器230识别数据的特性。可以由编码器数据分析器232确定这些特性。这些特性可以是用作用于表征数据的量度的源统计数据(诸如当数据由同一应用程序生成或以其他方式来自同一源时,在数据中产生的模式)。

ecc编码器236是被配置为根据ecc编码参数或其他编码器配置数据来对数据进行编码的任何电路。在一种配置中,ecc编码器236耦接到编码器数据分析器232。如本文所用,编码器可以包括被配置为根据编码配置数据(其可以由例如编码控制器230提供)来执行编码的任何部件、逻辑、电路等。在另一个实施方案中,两个或更多个部件可以配合用作编码器。ecc编码器236接收未编码数据204,并且根据编码参数来对未编码数据204进行编码。在各种方法中,编码器数据分析器232在ecc编码器236对未编码数据204进行编码之前、期间或之后,识别未编码数据204的特性。

发射器电路240是被配置为将数据传输到主机112或存储器设备102的任何电路。在一种配置中,发射器电路240耦接到解码控制器220和编码控制器230。在其他实施方案中,可以利用发射器来代替发射器电路240。如本文所用,发射器可以包括被配置为将数据传输到主机112(例如,作为读取操作的一部分)或存储器设备102(例如,作为写入操作的一部分)的任何部件、逻辑、电路等。在一个实施方案中,发射器包括发射器电路240。在另一个实施方案中,两个或更多个部件可以配合用作发射器。发射器电路240可以从解码控制器220接收解码数据并且将解码数据206传输到主机112,并且可以从编码控制器230接收编码数据并且将编码数据208传输到存储器设备102。

图3提供了根据一个示例性实施方案的示出对编码数据进行解码的过程300的流程图。在各种实施方式中,可以由图2的存储器接口电路110执行过程300。在其他实施方案中,可以由其他部件执行过程300。在各种实施方式中,过程300包括比图3所示更多、更少或不同的操作。在操作310处,接收编码数据。在一些实施方式中,以块的形式接收编码数据。可以由接收器电路210接收编码数据。

在操作320处,识别编码数据块中的数据内容的特性。在各种实施方案中,可以在解码控制器220从接收器电路210接收到编码数据202之后,至少部分地由解码器数据分析器222识别数据的特性。在其他实施方案中,可以在编码控制器230从接收器电路210接收到未编码数据204以便编码从而生成编码数据后,由编码器数据分析器232另选地或另外地识别数据的特性,随后可以由解码控制器220接收该编码数据(可能作为噪声数据)以便解码。在某些实施方案中,可以通过确定数据类型或者以编码数据块的形式生成了数据的应用程序、源或用户或对它们进行分类来识别特性。在各种版本中,通过确定表征数据块中的数据模式的源统计数据,可以更好地理解数据。在其中在编码期间要收集源统计数据的一些实施方式中,可以将未编码数据分为t个不同的数据类型/数据类别。对于每个类别,可以对来自相同类别的不同数据块的源统计数据求平均并且将其保存在存储器设备102或ram130中以备后用(例如,在将对该类型/类别的数据块进行解码时使用)。在其中将从噪声读取数据中收集源统计数据(而无需解码)的某些实施方式中,可以对相同数据类型的数据块的源统计数据求平均,以显著降低噪声水平。在示例性实施方式中,可以从先前成功解码的数据块(与当前数据块的类型相同)中获悉源统计数据。

在操作330处,确定适合具有在操作320处识别的特性的数据块的解码器参数。在各种实施方案中,可以在确定源统计数据之后,由解码器数据分析器222确定解码器参数。在各种实施方案中,可以至少部分地通过计算当前数据块的源统计数据与一个或多个其他数据块的源统计数据的一种或多种相关性来确定解码器参数。在一些实施方式中,识别最高(正)相关的数据块。在某些实施方式中,将最高相关性与阈值相关性进行比较,以确定最高相关的数据块是否充分相关。在各种版本中,如果发现足够高的相关性,则可以将用于充分相关的数据块的解码器参数视为用于要解码的当前编码数据块的解码器参数。

在各种实施方式中,通过以下公式(方程1)来定义不同数据块的源统计数据之间的相关性系数,其中x为数据块x的源统计数据,并且y为数据块y的源统计数据:

在其中将字节直方图用作源统计数据的某些实施方式中,可以将ai和bi定义为两个不同数据块的字节直方图,其中i=0,…255。然后可以将相关性系数cxy计算为(方程2):

在方程2中,cxy可以用作量化两个或更多个数据块之间的源统计数据的相关性的量度。

在操作340处,使用在操作330处确定的解码器参数来对编码数据块进行解码。在各种实施方案中,使用解码控制器220的参数调整器224和ecc解码器226来对编码数据进行解码。例如,参数调整器224可以将解码器参数修改或设定为基于正在解码的编码数据块中的数据的特性而确定的解码器参数。然后,可以由ecc解码器226使用由参数调整器224修改或设定的解码器参数来对编码数据块进行解码。在操作350处,可以传输解码数据。在各种实施方案中,由发射器电路240传输解码数据。例如,可以将解码数据块作为解码数据206传输到主机112。

图4为根据示例性实施方案的示出用于增强解码的过程400的流程图。如所指出的,许多不同的数据块可能具有彼此高度相关的源统计数据。在各种实施方式中,可以使用先前数据块的源统计数据,以便更改下一数据块的解码器参数,如图4所示。可以由图2的存储器接口电路110执行过程400。在其他实施方案中,可以由其他实体执行过程400。在各种实施方案中,过程400包括比图4所示更多、更少或不同的操作。

在操作410处,发起n个数据块的读取命令。在各种实施方案中,读取可以为顺序的。在其他实施方案中,读取可以是随机的或以其他方式非顺序的。数据块i的统计数据可能对于对数据块i+1进行解码是有用的,以进行顺序读取和非顺序读取。在某些实施方案中,可以由接收器电路210响应于例如由主机112发送到存储器接口电路110的命令来执行操作410。例如,主机112可以将指令传输到接收器电路210以读取存储器设备102中的某些数据。来自主机112的指令可以包括允许存储器接口电路110识别要读取的数据(和/或其在存储器设备102中的位置)的地址或其他信息。在一些实施方式中,一旦从主机112接收到指令,接收器电路210或存储器接口电路110的另一部件就可以确定应该如何从存储器设备102读取数据,诸如要读取的数据块的大小和数量(即,n)。在一些实施方式中,数据块具有默认大小(例如,4kb),而在其他实施方式中,该大小是基于要从存储器设备102读取的数据的类型和数量来动态确定的。然后,接收器电路210(或存储器接口电路110的另一个部件)可以将i的值设定为1,并且从1到n顺序地读取数据块。

在操作420处,对数据块i进行解码。在一些实施方式中,接收器电路210将数据块i提供给解码控制器220,以供ecc解码器226进行解码。在各种实施方案中,对于第一数据块(即,i=1),可以使用解码器数据分析器222来确定数据块i的源统计数据(然后再进行解码)。然后,可以将源统计数据与代表包含已知数据类型的数据块的一个或多个参考源统计数据的源统计数据进行比较。如果数据块i的源统计数据与参考数据块的源统计数据相关,则参数调整器224可以将解码器参数更改为与最相关的参考数据块相对应的参数。在某些实施方式中,对于第一数据块(即,i=1),可以使用默认解码器参数。在各种实施方式中,默认解码器参数可以是例如最近用于对来自存储器设备102的相同或附近存储器单元的数据进行解码的解码器参数。在某些实施方式中,可以基于哪个应用程序正在请求读取数据来确定解码器参数。例如,如果经由在主机112上运行的文字处理器来请求数据,则可以使用适合文本文件的解码器参数。

在操作430处,一旦数据块i已解码,就可以确定并且保存解码之后的数据块i的源统计数据。在一些实施方式中,可以由解码器数据分析器222确定源统计数据并且将其保存在例如ram130或存储器设备102处。

如果i小于n,则在操作440处,可以根据数据块i的源统计数据来更改解码器参数。在一些实施方式中,参数调整器224将解码器参数更改为适合数据块i的源统计数据的参数,以用于后续数据块的解码。然后,由例如存储器接口电路110(例如,由解码控制器220)将i加1。

在操作420处,在i的值大于一时(即,在第一数据块已解码之后),使用如参数调整器224所更改的解码器参数来对数据块i进行解码。在各种实施方式中,每个数据块i都使用对应于前一个数据块(即,数据块i减1)的源统计数据的解码器参数来进行解码。在操作430处,保存解码数据块i(值大于等于2)的源统计数据以供后续使用。对于i从1到n的值进行操作420、430和440。一旦i等于n,则过程400在450处结束。

有利的是,对于利用了图4的过程400的实施方案,可以在解码期间即时实现对特定数据块的源统计数据的获悉以及相应地针对下一个数据块的解码器参数的更改。由于更改解码器参数可以在解码期间即时执行,因此不会有延迟。另外,由于更改解码器参数获得更好的性能,因此解码延迟将减少。

在各种另选的实施方案中,可以保存并且使用不同源统计数据类别的集合(标记为t)。对于每个类别,可能存在代表性源统计数据(例如,字节直方图)。例如,该代表性源统计数据可以为已观察到并且与特定类别相关的所有源统计数据的平均值。可以在编码阶段或解码阶段期间执行该求平均。在各种实施方式中,平均值示例可以进一步扩展到使用了移动平均值的情况,并且代表性源统计数据将仅基于最新的源统计数据。将在下面进一步讨论移动平均值示例。

在对特定数据块进行解码期间,可以尝试根据来自t的特定类别的源统计数据来对数据块进行解码。在解码失败的情况下,可以尝试来自t的不同类别,直到数据块解码成功为止。在某些实施方式中,可以确定当前数据块的源统计数据(在解码之前并且带有噪声)与来自t个源统计数据类别中的每个源统计数据之间的相关性系数。例如,这可以得出当前数据块和来自t的第一源统计数据类别之间的相关性的第一相关性系数、当前数据块和来自t的第二源统计数据类别之间的相关性的第二相关性系数等等。在各种实施方式中,可以使用对应于来自t的具有最高相关性的类别的解码器参数。在一些实施方式中,如果所有相关性都过低(即,如果没有相关性超过相关阈值),则可以使用默认解码器参数来对当前数据块进行解码。

图5为根据示例性实施方案的示出用于利用对应于不同源统计数据类别的集合t来增强解码的过程500的流程图。可以由图2的存储器接口电路110执行过程500。在其他实施方案中,可以由其他实体执行过程500。在各种实施方案中,过程500包括比图5所示更多、更少或不同的操作。

在操作505处,将i的值设定为1。在一些实施方式中,这可以由接收器电路210或存储器接口电路110的另一个部件来执行。在操作510处,读取n个数据块中的数据块i(在图5中缩写为“dci”)。可以由例如接收器电路210读取数据块i。在操作515处,可以确定数据块i(图5中缩写为“ssi”)的源统计数据(图5中缩写为“ss”)。在各种实施方式中,确定噪声(即,编码数据预期有错误)数据块i的源统计数据。在各种实施方式中,可以由解码控制器222的解码器数据分析器220执行操作515。

在操作520处,可以计算数据块i的源统计数据与其他源统计数据(其可以用作例如参考源统计数据)的相关性。在各种实施方式中,计算相关性的集合c,其中集合t中的每个源统计数据类别具有集合c中的一个相关性。在各种实施方式中,由解码控制器220的解码器数据分析器222计算相关性。

在操作525处,识别最相关的源统计数据类别。在各种实施方式中,集合t中的最相关的源统计类别在集合c中具有最高的对应的相关性值。在各种实施方式中,由解码器数据分析器222执行操作525。

在操作530处,可以确定最相关的类别是否充分相关。在各种实施方式中,操作530涉及确定具有最高相关性的类别的相关性是否超过相关性阈值。在某些实施方式中,由解码器数据分析器222执行操作530。在各种实施方案中,如果最相关的类别具有相对较小的相关性,则源统计数据不充分类似。在各种实施方案中,相关性阈值的示例值可以为例如0.7、0.8等。在一些实施方式中,相关性阈值可以基于正解码的数据和/或基于先前的相关性。例如,在一些实施方式中,可以确定某个相关性阈值(例如,0.9)过高,因为太少的源统计数据被发现充分相关,并且可以将相关性阈值降低(例如,降低到0.85)以尝试对后续数据块进行解码。

在操作535处,如果最相关的类别充分相关,则可以选择最相关类别的解码器参数以用于对数据块i进行解码。可以由参数调整器224(其可以相应地修改ecc解码器226的解码器参数)和ecc解码器226(其可以使用如由参数调整器224所修改的解码器参数来对数据块i进行解码)执行操作535。解码器参数可以包括一个或多个参数值,诸如(除了别的之外)超时参数值、对数似然比(llr)值、解码模式参数值或它们的组合。

在操作540处,在已经在操作535处对数据块i进行解码之后,可以确定i是否已经达到n(即,是否还有任何数据块尚待解码)。在各种实施方式中,可以由解码器数据分析器222执行操作540。如果i已经达到n,则过程500可以在操作545处结束。如果i尚未达到n,则将i加1,并且过程500返回到操作510。

在操作550处,如果在操作530处最相关的类别不满足相关性阈值,则可以使用默认解码器参数来对数据块i进行解码。在各种实施方式中,这可以由ecc解码器226执行。默认解码器参数可以是旨在一般适用于对包含任何(或多种)数据类型的数据块进行解码的参数。

在操作555处,可以确定数据块i的源统计数据。在各种实施方案中,在操作550处使用默认参数对数据块i进行解码之后确定源统计数据。在各种实施方式中,可以由数据分析器222执行操作555。

在操作560处,确定在操作555处确定的源统计数据是否与集合t中的源统计数据类别中的一个并不类似。在各种实施方案中,分析数据块的解码数据以确定数据块的源统计数据是否指示数据块中包含的数据的类型不同或者特征/模式以其他方式独特。在某些实施方式中,可以由解码器数据分析器222执行操作560。在各种实施方案中,可以通过计算数据块i的源统计数据与t中的源统计数据类别之间的另一相关性集合来确定独特性,并且如果所有相关性都在最小相关性阈值以下,则可以认为数据块i具有充分不同的源统计数据。

在操作565处,如果在操作560处确定数据块i的源统计数据充分独特,则可以生成新的源统计数据类别并且将其保存在t中。在各种实施方式中,将使用具有新类别的集合t对后续数据块i进行解码。在某些实施方案中,可以由解码器分析器222执行操作565。在一些实施方式中,集合t可以包含预定的最大数量的值。例如,集合t可能仅允许用于不同的源统计数据类别具有有限数量的时隙。在为了存储t类别的相关数据(例如,存储在ram或存储器本身中)而需要分配的存储器与支持许多不同类别的能力之间存在折衷选择。

如果在560处数据块i的源统计数据未被确定为充分独特,或者在操作565中在集合t中保存了新的类别之后,则在操作540处可以确定i是否已达到n(即,是否还有任何数据块尚待解码)。如果i已达到n,则过程500可以在操作545处结束,或者如果i尚未达到n,则将i加1并且过程500返回到操作510。

在另选的实施方案中,一旦发现具有相同统计数据的新的解码数据块,则可以使用移动平均值来改变所保存的源统计数据(例如,在过程400中的操作430处或过程500中的操作565处)。在各种实施方式中,改变保存的源统计数据可以使过程更加适应变化,并且放宽对特定数据块的等待。此外,在各种实施方案中,可以在编码期间确定t类别,其中每个数据块的源统计数据都是已知的。可以将这些t类别保存在存储器设备102和/或130中,以用于增强对这些数据块的解码,而不管数据块是顺序地读取(诸如例如在过程400中)还是随机地读取。

图6为根据示例性实施方案的示出用于增强解码的过程600的流程图。可以由例如图2的存储器系统114来执行过程600。在其他实施方案中,可以由其他实体执行过程600。在各种实施方案中,过程600包括比图6所示更多、更少或不同的操作。

在操作610处,计算第一数据块的第一源统计数据。在各种实施方式中,可以由存储器控制器106或其部件(例如,解码控制器220的解码器数据分析器222)执行操作610。在不同的实施方式中,可以对第一数据块进行编码(例如,第一数据块可以包含编码数据202),并且可能已经顺序地、随机地或以其他方式读取了第一数据块(例如,由接收器电路210)。在操作620处,将在操作610处计算的第一源统计数据与用于第二数据块的第二源统计数据进行比较。在各种实施方式中,可以由解码控制器220或其部件(例如,解码器数据分析器222)执行操作610。在不同的实施方式中,第二源统计数据可以为代表某种类型的数据(例如,由某个应用程序类别生成的数据)的源统计数据。在一些实施方式中,第二数据块是先前读取和/或先前解码的数据块。在其他实施方式中,第二数据块为参考数据块,用作要解码的数据块将针对其进行比较的代表性样本。

在操作630处,如果第一源统计数据和第二源统计数据充分(或“正”)相关,则确定第一数据块的解码器参数。在各种实施方式中,可以由存储器控制器106或其部件(例如,解码控制器220的解码器数据分析器222)执行操作610。在各种实施方式中,数据块之间的正相关性表明数据块具有显著的类似性。例如,如果相当的模式和特性(由于例如具有共同源而引起)可以通知并且增强解码过程,则类似性可能是显著的。在某些实施方案中,可以通过计算数据块之间的相关性c(例如,使用方程1)并且确定相关性是否超过相关性阈值来确定正相关性。

在各种实施方案中,可以基于第一数据块或第二数据块的特性来确定用于第一数据块(即,要解码的当前数据块)的解码器参数。在某些实施方式中,该特性为在数据块之间赋予类似性的共同数据类型/共享数据源(例如,生成了数据的共享的应用程序或应用程序类型、用户或设备,该数据经编码以生成编码数据块)。在各种实施方式中,用于确定解码器参数的特性可以为第一数据块和第二数据块中的一个或两个的源统计数据(例如,字节直方图或其他量度)。在某些实施方式中,由于第一数据块和第二数据块的特性是类似的(例如,它们的源统计数据充分相关),因此解码器参数可以基于第一数据块或第二数据块的特性。

在操作640处,使用在操作630处针对第一数据块所确定的解码器参数来对第一数据块进行解码。在各种实施方式中,可以由解码控制器220或其部件(例如,ecc解码器226)执行操作640。在各种实施方式中,可以使用能够成功解码第二数据块的解码器参数来对第一(明显类似的)数据块进行解码。在一些实施方式中,适用于对数据块进行解码的解码器参数也可以用作数据块的特性。如果第一数据块和第二数据块的源统计数据没有充分相关,则默认解码器参数可以是被确定为将用于对第一数据块进行解码的参数的解码器参数。

图7为根据示例性实施方案的示出用于增强解码的过程700的流程图。可以由例如图2的存储器系统114来执行过程700。在其他实施方案中,可以由其他实体执行过程700。在各种实施方案中,过程700包括比图7所示更多、更少或不同的操作。

在操作710处,接收包含由第一应用程序类型生成的数据的第一编码数据块。在各种实施方式中,可以由存储器接口电路110或其部件(例如,接收器电路210)执行操作710。在不同的实施方式中,第一编码数据块被存储在存储器设备102的一个或多个存储器单元中,并且第一编码数据块为编码数据202。

在操作720处,将第一编码数据块的第一源统计数据与对应于由多个对应的源类型生成的数据的多个源统计数据类别进行比较。应当指出的是,在某些实施方案中,特定的应用程序可以生成多个不同的源。在各种实施方式中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222)执行操作720。在某些实施方式中,源统计数据类别可以是源统计数据类别的集合t的一部分。

在操作730处,至少部分地基于应用程序类型来识别与第一源统计数据正相关的第一源统计数据类别。在各种实施方式中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222)执行操作730。在某些实施方式中,计算一个或多个相关性,并且相关性充分高至少部分地表明数据块中包含的数据是由相同类型的应用程序生成的。

在操作740处,基于第一源统计数据类别来修改解码器参数。在各种实施方式中,可以由存储器接口电路110或其部件(例如,解码控制器220的参数调整器224)执行操作740。在各种实施方式中,修改解码器参数,使得它们将适合于数据块的解码器参数与第一源统计数据类别中的源统计数据进行匹配。在操作750处,对第一编码数据块进行解码。在各种实施方式中,可以由存储器接口电路110或其部件(例如,解码控制器220的ecc解码器226)执行操作750。可以使用操作740的经修改的解码器参数来对第一编码数据块进行解码。

图8为根据示例性实施方案的示出用于增强解码的过程800的流程图。可以由例如图2的存储器系统114来执行过程800。在其他实施方案中,可以由其他实体执行过程800。在各种实施方案中,过程800包括比图8所示更多、更少或不同的操作。

在操作810处,确定编码数据块的源统计数据。在各种实施方案中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222)执行操作810。在某些实施方式中,存储器接口电路110或其部件是用于确定编码数据块的源统计数据的装置。在一些实施方式中,解码控制器220的解码器数据分析器222是用于确定编码数据块的源统计数据的装置。在操作820处,计算源统计数据与对应于第一参考编码数据块的第一参考源统计数据的第一相关性。在各种实施方案中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222)执行操作820。在某些实施方式中,存储器接口电路110是用于计算源统计数据与对应于第一参考编码数据块的第一参考源统计数据的第一相关性的装置。在一些实施方式中,解码控制器220的解码器数据分析器222是用于计算源统计数据与对应于第一参考编码数据块的第一参考源统计数据的第一相关性的装置。在操作830处,将第一相关性与相关性阈值进行比较。在各种实施方案中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222)执行操作830。在某些实施方式中,存储器接口电路110是用于将第一相关性与相关性阈值进行比较的装置。在一些实施方式中,解码控制器220的解码器数据分析器222是用于将第一相关性与相关性阈值进行比较的装置。在操作840处,如果确定第一相关性满足相关性阈值(例如,第一相关性的值超过相关性阈值),则可以使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据块进行解码。在各种实施方案中,可以由存储器接口电路110或其部件(例如,解码控制器220的解码器数据分析器222、参数调整器224和ecc解码器226)执行操作840。在某些实施方式中,存储器接口电路110是用于响应于确定第一相关性满足相关性阈值,使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据块进行解码的装置。在一些实施方式中,解码控制器220的解码器数据分析器222、参数调整器224和ecc解码器226是用于响应于确定第一相关性满足相关性阈值,使用先前用于对第一参考编码数据块进行解码的解码参数来对编码数据块进行解码的装置。在各种实施方式中,先前对参考数据块的成功解码使当前数据块(在它具有相同类型的数据或者其他方面充分类似的情况下)更有可能也使用相同的解码器参数成功解码。在某些实施方式中,利用适合类似数据块的解码器参数进行的解码过程将是更有效的,即使原本就可以成功。

图12和图13对应于使用本文所讨论的增强解码器的各种实施方案可实现的代表性改进的示例性描述。图12展示了校正能力的相对改进。图表1200的示例性x轴对应于数据块中的位翻转的相对数量,而示例性y轴对应于相对解码成功率。曲线1210对应于代表性默认解码器,而无需知道任何源统计数据。曲线1220对应于代表性情况,其中解码器获得“神助”并且准确知道每个数据块的源统计数据。曲线1230对应于代表性增强解码器,其中根据上面讨论的各种实施方案,解码器接收相关数据块的统计数据。如图12中可见,曲线1230(其代表这里讨论的增强解码器的实施方案的性能)与“神助”算法的性能基本上重合或以其他方式相当。在图表1200中,在默认解码器(曲线1210)不再能够成功解码的点(其中曲线1210开始与x轴重叠),增强解码器(曲线1230)保持与“神助”速率(曲线1220)相当的相对解码成功率,如虚线所描绘。

在图13中,可以观察到解码延迟的相对改进。图表1300的示例性x轴对应于数据块中的位翻转的相对数量,而示例性y轴对应于相对平均解码延迟。曲线1310对应于示例性默认解码器,而无需知道任何源统计数据,并且曲线1320对应于其中解码器接收相关数据块的统计数据的示例性情况。如从图13可见,即使在其中代表性默认解码器(1310)和代表性增强解码器(1320)两者均以高成功率解码的区域1330中,增强解码器也以相对更低的延迟收敛(如曲线1310和曲线1320之间的垂直间隔1340所表示)。

本文讨论的各种实施方案提供了耐久性改进且与错误处理有关的固件开销减少的存储系统。随着数据变得更密集并且对存储设备的需求不断增长,解码功能的改进变得更加重要。

出于描述本公开的创新方面的目的,先前的描述针对某些实施方式。然而,本领域普通技术人员将容易认识到,本文的教导可以多种不同方式应用。所描述的实施方式可以包括在各种电子设备中或与之相关联,这些电子设备诸如但不限于:移动电话;支持多媒体互联网的蜂窝电话;移动电视接收器;无线设备;智能电话;设备;个人数据助理(pda);无线电子邮件接收器;手持式或便携式计算机;上网本;笔记本;智能本;平板电脑;打印机;复印机;扫描仪;传真设备;全球定位系统(gps)接收器/导航器;相机;数字媒体播放器(诸如mp3播放器);摄录像机;游戏机;手表;可穿戴设备;时钟;计算器;电视监视器;平板显示器;电子阅读设备(诸如电子阅读器);计算机监视器;自动显示器(诸如里程表和速度计显示器);座舱控件和显示器;摄像头视图显示器(诸如车辆中的后视摄像头的显示器);电子照片;电子公告牌或标牌;投影仪;建筑结构;微波炉;冷藏机;立体声系统;盒式录音机或播放器;dvd播放器;cd播放器;vcr;收音机;便携式存储器芯片;洗衣机;干衣机;洗衣机/干衣机;停车计时器;封装(诸如机电系统(ems)应用,除非ems应用之外还包括微机电系统(mems)应用);美学结构(诸如在一件珠宝或衣服上显示图像);以及各种ems设备。

如本文所用,引用了项列表中的“至少一个”的短语是指那些项的任意组合,包括单个成员。作为一个示例,“a、b或c中的至少一个”旨在涵盖:a、b、c、a-b、a-c、b-c和a-b-c。

结合本文公开的实施方式所描述的各种示例性逻辑、逻辑块、模块、电路和算法过程可以实现为电子硬件、计算机软件或两者的组合。硬件和软件的互换性已经在功能方面进行了总体描述,并在上述各种示例性部件、块、模块、电路和过程中进行了说明。将此功能性在硬件中还是软件中实施取决于特定应用和强加于整个系统的设计约束。虽然某些实施方案可以在控制器中实施,但其他实施方案可以在主机系统中实施。

可以通过通用单芯片或多芯片处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或设计来执行本文所述功能的其他可编程逻辑设备、离散门或晶体管逻辑、离散硬件部件或它们的组合来实施或执行用于实施结合本文所公开的方面所描述的各种示例性逻辑、逻辑块、模块和电路的硬件和数据处理装置。通用处理器可以为微处理器,或者任何传统的处理器、控制器、微控制器或状态机。处理器还可以实施为计算设备的组合,诸如dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp内核、或任何其他这样的配置。在一些实施方式中,可以由特定于给定功能的电路执行特定的过程和方法。

在一个或多个方面,所描述的功能可以在以下项中实施:硬件、数字电子电路、计算机软件、固件,包括本说明书中公开的结构及其等同结构、或它们的任意组合。本说明书中描述的主题的实施方式还可以实施为一个或多个计算机程序(即,计算机程序指令的一个或多个模块),该一个或多个计算机程序在计算机存储介质上进行编码以便由数据处理装置执行或者控制数据处理装置的操作。

对本公开中所描述的实施方式的各种修改对于本领域的技术人员而言可能是显而易见的,并且在不脱离本公开的实质或范围的情况下,本文所定义的一般原理可以应用于其他实施方式。因此,权利要求书并非旨在限于本文所示的实施方式,而是应被赋予符合本公开、本文所公开的原理和新颖特征的最广泛范围。

另外,本领域普通技术人员将很容易理解,方向性术语有时会被使用以便于描述附图,并在适当定向的页面上指示与附图的定向相对应的相对位置,并且可能不反映所实施的任何设备的适当定向。

在本说明书中在单独实施方式的上下文中描述的某些特征也可以组合地在单个实施方式中实施。相反,在单个实施方式的上下文中描述的各种特征也可以分别或以任何合适的子组合在多个实施方式中实施。此外,尽管特征可以在上文被描述为以某些组合作用并且甚至最初如此要求,但在某些情况下,可以从该组合中除去所要求保护的组合中的一个或多个特征,并且所要求保护的组合可能涉及子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但这不应理解为要求以所示的特定顺序或按顺序执行此类操作,或执行所有示出的操作以实现期望的结果。另外,附图可以示意性地描绘流程图形式的一个或多个示例性过程。然而,未描绘的其他操作也可以结合在示意性示出的示例性过程中。例如,可以在任何示出的操作之前、之后、同时或之间执行一个或多个附加操作。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统部件的分离不应理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序部件和系统一般可以在单个软件产品中集成在一起或封装到多个软件产品中。另外,其他实施方式也在所附权利要求书的范围内。在一些情况下,权利要求书中所述的动作可以不同的顺序执行,并且仍然实现期望的结果。

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