用于存储器系统的软信息生成
技术领域
本公开涉及在存储器系统中使用错误控制,尤其涉及生成并使用用于对从存储器读取的数据进行解码的软信息。
背景技术
不断出现的对消费电子和企业运算系统的持续增长的需求常常伴随着改进数据存储容量的需求。对更大存储容量的需求转而激起对更大存储密度(storage density)的需求,因此可保持并且优选地降低诸如功耗和波形因素之类的规范。因为非易失性存储器,尤其是快闪存储器已能够增大消费电子的便携性,并且就在最近,它们已被应用在适于云计算的相对低功率的企业大规模存储系统以及其它大规模存储应用中,所以非易失性存储器,尤其是快闪存储器变得越来越受欢迎。因此,增大诸如快闪存储器之类的非易失性存储器的存储密度以便进一步利用这种装置的有益属性存在额外的压力。
包括快闪存储器的半导体存储器装置通常利用存储器单元(memory cell)来将数据存储为诸如电荷或电压之类的电性值(electrical value)。例如,快闪存储器单元包括具有浮动栅极的单晶体管,所述浮动栅极用于存储代表数据值的电荷。已通过多种方式来促进存储密度的增大,包括:减小半导体制造工艺的最小特征尺寸(minimum feature size)以便增大特定区域中可包括的晶体管的数量,并且由此增大存储器单元的数量。此外,为了进一步增大存储密度,快闪存储器已经从单级快闪存储器(single-level flash memory)发展为多级快闪存储器(multi-level flash memory),以便可由每个存储器单元存储两位或更多位。
增大存储密度的缺陷是:所存储的数据越来越倾向于被错误地存储和/或读取。已经利用错误控制编码(ECC)来限制由伪随机波动(pseudo-randomfluctuation)、存储介质中的缺陷、操作条件、装置历史、和/或读写电路等所引起的无法校正的错误的数量。因为软信息解码可改进特定错误控制编码的错误检测和校正能力,并由此改进系统的容量,所以使用软信息的错误控制方法特别有前景。然而,由于一些以前无法解决的缺陷,所以软信息解码的应用受到了限制。例如,软信息解码的实施方式趋向于引入不受欢迎的延迟,所述实施方式通常为功率密集型并且具有相对大的半导体占位空间(semiconductor footprint)。因此,由于这些和其它的物理约束,软信息解码方法依然相对不受欢迎。
发明内容
所附权利要求的范围内的系统、方法和装置的各种实施方式中的每个实施方式均具有数个方面,所述数个方面中没有任何单个一个方面单独为本文所述的属性负责。对一些显著的特点进行了描述,而非限制所附权利要求的范围。在考虑本公开之后,特别是在考虑标题为“详细说明”的部分之后,将理解如何使用各种实施方式的特点来使:(i)生成并利用用于对从存储介质读取的错误控制编码数据进行解码的软信息;(ii)确定并利用与一个或多个存储介质特征相关联的统计意义上经确定的读取比较信号值;以及(iii)确定并利用与一个或多个存储介质特征相关联的统计意义上经确定的已移位的读取比较信号值。
一些实施方式包括能够利用软信息错误校正解码来支持快闪存储器或其他存储介质的使用的系统、方法和/或装置。更具体地,在一些实施方式中,软信息生成系统、方法和/或装置利用与对应组的存储介质特征参数值对应的预先生成的特征向量的集合,所述集合包括用于可从存储介质读取的位元组的软信息值。在一些实施方式中,软信息值由对特定制造工艺所生产的存储器装置的装置特征处理所生成,并被存储在特征模块或查找表中。通过使用存储介质特征参数值对特征模块或查找表进行索引。在读操作期间,通过基于与存储介质的当前状态相关联的一个或多个存储介质特征参数值来从特征模块取回特定的特征向量,并且为从存储介质读取的原始数据中的每个位元组来从所选择的特征向量选择相应的软信息值,从而生成软信息。
一些实施方式包括能够根据特征向量来生成以对数似然比(LLR)和/或转移概率的形式的软信息的系统、方法和/或装置,所述特征向量包括有用于与多级快闪存储器装置的单页读取和联合页读取中的至少一种读取相关联的位元组的软信息值。然后,软信息值可被转至ECC解码器,例如低密度奇偶校验(LDPC)码解码器或一些其它错误校正码解码器中的任意一种。一些实施方式利用来自装置特征处理的统计数据来生成由一个或多个存储介质特征参数值所索引的、与装置条件和处理变化的一些结合对应的特征向量的集合。在一些实施方式中,多个特征向量中的每个特征向量均包括软信息值(例如,LLR值和/或转移概率)。在一些实施方式中,多个特征向量中的每个特征向量均包括根据装置特征处理的统计数据所确定的至少一组读取比较信号值(例如电压)。在一些实施方式中,多个特征向量中的每个特征向量均包括根据装置特征处理的统计数据所确定的两组读取比较信号值。根据从装置特征处理所得到的转移概率的函数,第二组读取比较信号值从第一组读取比较信号值移位。
一些实施方式能够使之前生成的两个序列的软信息值的结合产生第三序列软信息值,以便限制用于从存储介质中的特定组的数据位置提供错误校正数据的读取操作的数量。为此,在一些实施方式中,多个特征向量中的至少一个特征向量(或者可选择地,多个特征向量中的每个特征向量)包括一组权重因子,所述权重因子可被用于从之前生成的两个序列的软信息值来生成第三序列软信息值。一些实施方式基于一个或多个当前的存储介质特征来动态地计算权重因子。此外和/或可选择地,在一些实施方式中,第三序列的软信息值响应于经识别的错误条件而生成。
在一些实施方式中,通过显示读取操作的数量(例如,最多两个读取操作)可以控制与读取数据相关联的总的等待时间。此外,在一些实施方式中,由于一个或多个读取比较信号值以及用于特定位元组的软信息值基于一个或多个存储介质特征参数值,所以所生成的软信息值可比在之前的方法中所使用的软信息值更可靠,所述一个或多个存储介质特征参数值例如如下各项中的至少一个项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型、以及与存储介质的至少一部分相关联的位置。
一些实施方式包括能够通过使用基于与存储介质的当前状态相关联一组一个或多个存储介质特征参数值所选择的、统计意义上经确定的读取比较信号值来从存储介质读取数据的系统、方法和/或装置。在一些实施方式中,统计意义上经确定的读取比较信号值被存储在特征向量的集合中,并且由对特定制造工艺所生产的装置的特征处理所生成。
一些实施方式包括能够通过使用统计意义上经确定的已移位的读取比较信号值来从存储介质读取数据的系统、方法和/或装置,所述已移位的读取比较信号值相对于标定读取比较信号值或基于转移概率的统计意义上经确定的第一读取比较信号值而偏移并且响应于经识别的错误条件而被使用。在一些实施方式中,统计意义上经确定的已移位的读取比较信号值基于与存储介质的当前相关联的一组一个或多个存储介质特征参数值而被选择。在一些实施方式中,各种已移位的读取比较信号值被存储在特征向量的集合中,并且由对特定制造工艺所生产的装置的特征处理来生成。
附图说明
因此,通过参考各种实施方式的特点,其中一些实施方式的特点已在附图中示出,可形成更具体的描述,由此能够更加详细地理解本公开。然而,因为本说明书可允许其它有效特点,所以附图仅示出本公开的更相关的特点,因此并不被视为进行限制。
图1是数据存储环境的实施方式的示图。
图2是随着时间可在多级快闪存储器单元中发现的电压分布200的示图.
图3是包括软信息生成模块的数据存储环境的实施方式的示图。
图4是图3中所包括的软信息生成模块的实施方式的示图。
图5A是与单级存储器单元或与多级存储器单元的单页读取相关联的转移概率表。
图5B是可从图5A的转移概率表产生的特征向量的实施方式的示意图。
图6A是可与多级存储器单元的联合页读取相关联的转移概率表。
图6B是可从图6A的转移概率表产生的特征向量的实施方式的示意图。
图7是表现根据从存储介质所读取的数据来生成软信息值的方法的实施方式的流程图。
图8是表现根据之前生成的软信息值来生成软信息值的方法的实施方式的流程图。
图9是可操作来为存储介质生成软信息值和读取比较电压的特征环境的实施方式的示图。
图10是表现生成一个或多个特征向量的方法的实施方式的流程图。
图11是表现为了从多级存储器单元进行读取而生成已移位的读取比较电压的方法的实施方式的流程图。
图12是表现使用存储在特征向量中的多组读取比较电压的方法的实施方式的流程图。
根据公共实践,附图中所示的各种特点可能不会按比例示出。因此,为了清楚起见,可对各种特点的尺寸进行任意延伸或缩小。此外,一些附图可能没有描绘出给定的系统、方法或装置的全部组件。最后,在贯穿说明书和附图中,相似的参考数字将用于表示相似的特点。
详细说明
本文所述的各种实施方式包括可提高用于改进存储和读取数据的可靠性的错误控制编码的性能的系统、方法和/或装置。一些实施方式包括用于生成并利用软信息的系统、方法和/或装置,所述软信息用于对从存储介质读取的错误控制编码数据进行解码。更具体地,一些实施方式利用特征向量(characterization vector)的集合,所述特征向量包括用于可从存储介质读取的位元组(bit-tuple)的软信息值,每个特征向量均对应于一组不同的存储介质特征参数值。此外和/或可选择地,使一些实施方式能够确定并利用读取比较信号值(read comparison signal value)以便产生第一序列软信息值,所述读取比较信号值从与一个或多个存储介质特征参数值相关联的对应组的统计分布来确定。此外和/或可选择地,使一些实施方式能够确定并利用已移位的读取比较信号值以产生第二序列软信息值,所述已移位的读取比较信号值与经识别的错误条件和一个或多个存储介质特征参数值相关联。此外和/或可选择地,使一些实施方式能够响应于经识别的错误条件,将第一序列软信息值与第二序列软信息值相结合以产生第三序列软信息值。
本文描述了许多细节以便为附图中所示的示例性实施方式提供全面理解。然而,无需很多具体细节也可以实践本发明。而且,并未以详尽细节的方式描述已知的方法、组件和电路,以免不必要地使本文所述的实施方式的更多相关方面难以理解。
图1是数据存储环境100的实施方式的示图。尽管示出了一些示例性特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,未示出各种其它特点。为此,作为非限制性实例,数据存储环境100包括数据处理系统110、存储器控制器120以及存储介质130。在一些实施方式中,存储介质130包括一个或多个快闪存储器装置。在一些实施方式中,存储介质130包括NAND型快闪存储器和NOR型快闪存储器中的至少一种。
数据处理系统110通过数据连接件(data connection)101耦接于存储器控制器120。并且,本领域技术人员将从本公开理解的是:在各种实施方式中,数据处理系统110包括存储器控制器120作为组件。数据处理系统110可以是任意适当的计算机装置,例如计算机、便携式计算机、平板装置、上网本、上网亭(internet kiosk)、个人数字助理、移动电话、智能手机、游戏装置、计算机服务器、或任何其它运算装置。在一些实施方式中,数据处理系统110包括:显示器和/或其它用户接口组件、一个或多个处理器、一种或多种类型的存储器,所述显示器和/或其它用户接口组件例如键盘、触摸屏显示器、鼠标、跟踪板、数码相机和/或用以增加功能的任意数量的补充装置。
存储介质130通过数据连接件103耦接于存储器控制器120。并且,本领域技术人员将从本公开理解的是:在各种实施方式中,存储器控制器120和存储介质130被包括在同一装置中作为该装置的构成组件。存储介质130可包括任意数量的(即,一个或多个)存储器装置,所述存储器装置包括但不限于诸如快闪存储器之类的非易失性半导体存储器装置。例如,快闪存储器装置可被配置用于适于诸如云计算之类的应用的企业存储。此外和/或可选择地,快闪存储器还可被配置用于相对小规模的应用,例如个人闪存驱动器或者个人硬盘替代物、便携式计算机和平板计算机。
存储介质常常被分成一些可寻址并可单独选择的块,例如可选择部分131。在一些实施方式中,对于快闪存储器而言,可单独选择的块是快闪存储器装置中最小尺寸的可擦除单元(erasable unit)。换言之,每个块均包含能够被同时擦除的最少数量的存储器单元。通常,每个块被进一步分成多个页,其中通常每个页是所述块中可单独访问的最小子块的最小单元的实例。然而,数据组(data set)的最小单元还可以是一些类型的快闪存储器中的扇区(sector)。也就是说,每个页包含多个扇区,并且每个扇区是数据组的最小单元,如此,页是用于对快闪存储器装置进行数据写入或读取的最小单元。
通常,一个块可包括任意数量的页,例如,64页、128页、256页或其它适当数量的页。通常,多个块被分组为多个区。每个块区可在一定程度上独立地进行管理,这增大了并行操作的并行度(degree of parallelism)并且简化了存储介质130的管理。
如上所述,当非易失性半导体存储器装置的数据存储密度逐渐增大时,增大存储密度的缺陷是:所存储的数据越来越倾向于被错误地存储和/或读取。正如在下文更加详细地描述的,可利用错误控制编码来限制无法校正的错误的数量,所述无法校正的错误由伪随机波动、存储介质中的缺陷、操作条件、装置历史、读写电路等、或这些因素的组合所引起。
在一些实施方式中,存储器控制器120包括管理模块121、输入缓冲器123、输出缓冲器124、错误控制模块125以及存储介质接口(I/O)128。本领域技术人员将从本公开理解的是:存储器控制器120可包括各种附加特点并且特点的不同配置是可能的,为了简洁起见以及不使本文所公开的示例性实施方式的更多相关特点难以理解,未示出所述各种附加特点。输入缓冲器123和输出缓冲器124通过数据连接件101为数据处理系统110提供接口。相似地,存储介质I/O128通过数据连接件103为存储介质130提供接口。在一些实施方式中,存储介质I/O128包括读写电路,所述读写电路包括能够将读取比较信号值提供给存储介质130的电路。
在一些实施方式中,管理模块121包括处理器122,所述处理器122被配置用以执行一个或多个程序中的指令,例如管理模块121中的指令。然而,本领域技术人员将从本公开理解的是:处理器122可由存储器控制器120的功能范围内的一个或多个组件所共享,并且在一些情形中可由存储器控制器120的功能范围外的一个或多个组件所共享。管理模块121耦接于输入缓冲器123、输出缓冲器124、错误控制模块125以及存储介质I/O128,以便协调这些组件的操作。
错误控制模块125耦接在存储介质I/O128与输入缓冲器123、输出缓冲器124之间。错误控制模块125被提供用以限制被无意中引入到数据中的无法校正的错误的数量。为此,错误控制模块125包括编码器126和解码器127。编码器126通过应用错误控制编码来对数据进行编码,从而产生码字(codeword),所述码字随后被存储在存储介质130中。当从存储介质读取经编码的数据时,解码器127应用解码处理,从而恢复数据并在错误控制编码的错误校正能力范围内校正已恢复的数据中的错误。本领域技术人员将从本公开理解的是:各种错误控制编码具有不同的错误检测和校正能力,并且由于超出本公开的必要范围的原因,特定的编码被选择用于各种应用。因此,为了简洁起见,并未提供各种类型错误控制编码的详尽评论。此外,本领域技术人员将理解的是:每种类型或者每种同族(family)的错误控制编码可具有特定于该类型或该同族的错误控制编码的编码算法和解码算法。另一方面,诸如维特比算法(Viterbi algorithm)之类的一些算法至少在一定程度上可被用于解码一些不同类型或不同族的错误控制编码。因此,为了简洁起见,本文并未提供本领域技术人员通常可获得或已知的各种类型的编码算法和解码算法的详尽描述。
在写入操作期间,输入缓冲器123从数据处理系统110接收将被存储在存储介质130中的数据。输入缓冲器123中的数据可由编码器126获得,所述编码器126对所述数据进行编码从而产生码字。所述码字可由存储介质I/O128获得,所述存储介质I/O128以根据所利用的存储介质的类型而确定的方式将所述码字传输至存储介质130。在同一数据的读取操作期间,存储介质I/O128访问存储介质130的其中存储有对应码字的部分,从而读取码字并且将码字提供给解码器127。
如果解码成功,则经解码的数据被提供给输出缓冲器124,其中经解码的数据可由数据处理系统110获得。在一些实施方式中,如果解码不成功,则如下文更详细描述的,存储器控制器120使用不同的解码或错误校正再次从存储介质读取码字。
对于很多错误控制编码而言,通过使用软信息能够改进解码处理。硬信息解码通常意味着做出关于数据值(例如,数据位或代码位)是否为特定符号字母表中的一个符号还是另一符号的绝对性判定(absolute decision)。例如,在二进制系统中,即使从存储位置读取的原始电性模拟值并不表示代表数据值的电性值足以肯定地判定数据值是“0”还是“1”,那么特定数据值也可以为“0”或“1”。换言之,对特定数据值的硬判定(hard-decision)是基于与从存储介质读取的模拟电性值对应的最可能的符号,并且供选择的判定将为真的可能性被硬判定处理所忽略。硬判定常常基于从模拟读取值到定义符号的电性电平的欧几里得距离(Euclidian distance)。相比之下,软信息的使用考虑到从存储介质所读取的内容从而不忽略不同的结果为真的可能性。由于软信息解码常常改进特定错误控制编码的错误检测和校正能力,并由此改进系统的容量,所以使用软信息的错误控制方法特别有前景。
然而,如上所述,由于一些以前无法解决的缺陷,所以软信息解码的应用受到了限制。一个特别困难的挑战始终是管理之前必要的延迟,从而产生具有足够统计精度的软信息,以便使软信息的使用有益处。由于来自伪随机电性波动、操作条件和装置历史的影响,所以任何一个数据读取的结果可能并不在统计意义上代表对已存储的数据的当前组的累积影响。由此,使用以前的方法,软信息生成需要将同一数据读取一些次并且将所读取的结果相结合,从而为每位或每个符号生成统计意义上精确的软信息值。软信息的精度通常随着读取次数而改进。但是,每次读取均增加延迟,并且用于为整个序列的数据值生成精确的软信息的合计延迟使得软信息的使用不受欢迎。
相比之下,如下所述,一些实施方式包括能够利用软信息错误校正解码以支持快闪存储器或其它存储介质的使用的系统、方法和/或装置。更具体地,在一些实施方式中,软信息生成系统、方法和/或装置利用包括用于可从存储介质读取的位元组的软信息值的预先生成的特征向量的集合,所述预先生成的特征向量的集合对应于各种组合的存储介质特征参数值。在一些实施方式中,通过对由特定的制造工艺所生产的存储器装置的装置特征处理来生成软信息,并将软信息存储在特征模块或查找表中,所述特征模块或查找表通过使用存储介质特征参数值而被索引。在读取操作期间,通过基于与存储介质的当前状态相关联的一个或多个存储介质特征参数值来从特征模块取回特定的特征向量并且通过从已选择的特征向量中为在从存储介质读取的原始数据中的每个位元组选择相应的软信息值,来生成一序列软信息。由于存储介质特征参数值仅代表存储介质的状态的一些方面,所以有时将与存储介质的当前状态相关联的存储介质特征参数值称为与存储介质的当前状态相关联。
快闪存储器装置利用存储器单元来将数据存储为诸如电荷或电压之类的电性值。通常,每个快闪存储器单元包括具有用于存储电荷的浮动栅极的单晶体管,所述浮动栅极改变晶体管的阈值电压(即,导通晶体管所需的电压)。电荷的量以及所述电荷产生的对应的阈值电压可被用于代表一个或多个数据值。在读取操作期间,读取电压被应用于晶体管的控制栅极并且因而产生的电流或电压被映射至数据值。
为了增大快闪存储器中的存储密度,快闪存储器已经从单级快闪存储器发展为多级快闪存储器,以便可由每个存储器单元存储两位或更多位。单级快闪存储器单元(SLC)存储一位信息(“0”或“1”)。换言之,SLC存储器装置的存储密度为每单元(或每个晶体管)一位。多级快闪存储器单元(MLC)可通过使用一单元的总的电压范围内的不同范围存储两位或更多位,从而代表多位的位元组。转而,MLC存储装置的存储密度为每单元多位(例如,每个晶体管2位)。
如下文参照图2所述,通过使用存储器单元的总的电压范围内的多个电压范围,MLC存储器装置被用于存储多位,从而代表不同的位元组。由于对于MLC存储器装置而言被用于存储不同的数据值的电压之间的有效电压差更小,所以通常MLC存储器装置比通过使用相同的制造工艺生产的SLC存储器装置更易于出现错误。此外,由于诸如伪随机电性波动、存储介质中的缺陷、操作条件、装置历史、和/或读写电路之类的任意数量的因素的组合,典型的错误包括:特定的MLC中的所存储的电压电平处于与反之代表特定位元组的正确存储的电压范围相邻的电压范围内。如下文参照图2的更详细论述的,可通过对数据进行灰度编码来减小这种错误的影响,由此相邻的电压范围代表位元组之间的单个位变化。
图2是随着时间可在多级快闪存储器单元中发现的电压分布200的示图。本领域技术人员将从本公开理解的是:出于图示的目的已将电压分布200进行了简化。MLC的单元电压大致从NMOS晶体管的源极端子的电压VSS210延伸至漏极端子的电压VDD214。
在源极电压VSS210与漏极电压VDD214之间的连续的电压范围201、202、203、204用于分别代表对应的位元组“11”、“01”、“00”、“10”。电压范围201、202、203、204中的每个电压范围均具有各自的中心电压201b、202b、203b、204b。电压范围201、202、203、204中的每个电压范围还具有各自的电压分布201a、202a、203a、204a,所述电压分布201a、202a、203a、204a可出现作为以下任意数量的因素的组合的结果:所述因素例如伪随机电性波动、存储介质中的缺陷、操作条件、装置历史(例如,大量编程-擦除(P/E)周期)、和/或读写电路的有缺陷的性能或设计。
理想地,在写入操作期间,可对MLC的浮动栅极上的电荷进行设置,使得所产生的单元电压处于范围201、202、203、204中的一个范围的中心处,以便将对应的位元组写入MLC。具体地,将所产生的单元电压设置为V11201b、V10202b、V00203b、V10204b中的一个,以便写入位元组“11”、“01”“00”和“10”中对应的一个位元组。事实上,由于上述因素,初始单元电压可能与用于被写入MLC中的数据的所述中心电压不同。
读取比较电压VR1211、VR2212和VR3213处于相邻的中心电压之间,例如,处于或接近于相邻的中心电压之间的中间点,并且由此定义电压范围201、202、203、204之间的阈值电压。在读取操作期间,通过使用比较处理来应用读取比较电压VR1211、VR2212和VR3213以确定单元电压。然而,由于上述各种因素,所以实际的单元电压和/或当读取MLC时所接收的单元电压可能与对应于写入到单元中的数据值的各个中心电压V11201b、V10202b和V00203b或V10204b不同。例如,实际的单元电压可能处在完全不同的电压范围中,强烈地表明MLC正在存储与过去被写入MLC的位元组不同的位元组。更常见地,实际的单元电压可能接近读取比较电压中的一个电压,使得难以肯定地确定两个相邻的位元组中哪一个由MLC存储。
在写入操作期间、读取操作期间,或者由于在数据被写入MLC的时间与执行读取操作以读取存储在MLC中的数据的时间之间的单元电压的“驱动”,可出现单元电压中的错误、和/或当读取MLC时所接收的单元电压。为了便于论述,单元电压中的错误和/或当读取MLC时所接收的单元电压有时统称为“单元电压漂移”(cell voltage drift)。
减小单元电压从一个电压范围漂移到相邻的电压范围的影响的一种方式是为位元组进行灰度编码。对位元组进行灰度编码包括:迫使位元组赋值,使得特定电压范围的相应的位元组与相邻的电压范围的相应的位元组相差仅一位。例如,如图2中所示,相邻的范围201和202的对应的位元组分别为“11”和“01”,相邻的范围202和203的对应的位元组分别为“01”和“00”,并且相邻的范围203和204的对应的位元组分别为“00”和“10”。通过使用灰度编码,如果单元电压漂移接近读取比较电压电平,则错误通常被限制于2位的位元组内的单个位。
图3是数据存储环境200的实施方式的示图,所述数据存储环境200利用来自在多级快闪存储器装置中出现的电压分布的信息。图3中所示的数据存储环境200与图1中所示的数据存储环境100相似,并且所述数据存储环境200是从所述数据存储环境100修改而来。两者所共有的元件包括共同的参考数字,并且为了简洁起见,本文仅描述图1与图3的不同之处。并且,尽管示出了某些特定的特点,但是本领域技术人员从本公开将理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。
为此,作为非限制性实例,已进一步使数据存储环境200,特别是存储器控制器120能够利用下面三者中的至少一个:软信息,所述软信息用于对从存储介质130读取的错误控制编码数据进行解码;统计意义上经确定的读取比较信号值,所述读取比较信号值与存储介质的一个或多个特征相关联;以及统计意义上经确定的已移位的读取比较信号值,所述已移位的读取比较信号值与存储介质的一个或多个特征和经识别的错误条件相关联。
更具体地,存储器控制器120另外还包括软信息生成模块229。如下文参照图4和图7更详细描述的,在一些实施方式中,软信息生成模块229通过将预先生成的特征向量的集合对应于各种组合的存储介质特征参数值的来为从存储介质130读取的每组数据生成软信息值,所述预先生成的特征向量的集合包括用于可从存储介质读取的位元组的软信息值。如下文参照图4和图9更详细描述的,软信息由对通过特定的制造工艺所生产的存储装置的装置特征处理来生成并被存储在软信息生成模块229中所包括的特征模块或查找表中。
软信息生成模块229与管理模块121、错误控制模块125和存储介质I/O128耦接。更具体地,管理模块121被连接用以在控制线225上为软信息生成模块229提供控制信号并且在数据线226上为软信息生成模块229提供一个或多个存储介质特征参数。存储介质I/O被连接用以通过数据线227接收读取比较电压,所述读取比较电压将被提供给存储介质130以供读取数据时使用,并且存储介质I/O被连接用以通过数据线228为软信息生成模块229提供由读取操作所产生的原始读取数据。软信息生成模块229被连接用于为解码器127提供与从存储介质I/O128所接收的原始读取数据相对应的至少一个序列的软信息。此外和/或可选择地,在一些实施方式中,软信息生成模块229还被连接用于为存储介质I/O128提供一组或多组读取比较信号值(例如,电压电平或电压电平的表示等)。在一些实施方式中,管理模块121包括软信息生成模块229。
在写入操作期间,如上所述,输入缓冲器123从数据处理系统110接收将被存储在存储介质130中的数据。输入缓冲器123中的数据可由编码器126获得,所述编码器126对所述数据进行编码从而产生码字。码字通过存储介质I/O128被传送至存储介质,所述存储介质I/O128以根据所利用的存储介质的类型而确定的方式将码字传输至存储介质130。例如,对于MLC快闪存储器而言,通过改变相应的存储器单元的浮动栅极上的电荷来将码字的每个位元组写入相应的存储器单元。
当数据处理系统110(诸如此类)通过在控制线111上将控制信号发送至存储器控制器120从而请求来自存储介质130的数据时,读取操作开始。在一些实施方式中,存储器控制器120与读取请求一起从数据处理系统110接收与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,存储器控制器120响应于从数据处理系统110接收读取请求来取回与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。转而,存储器控制器120的管理模块121将读取请求转至软信息生成模块229。在一些实施方式中,软信息生成模块229与读取请求一起接收与存储介质130的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,软信息生成模块229响应于接收读取请求来从管理模块121、数据处理系统110和/或存储介质特征参数值存储模块中的一个来取回一个或多个存储介质特征参数值。在一些实施方式中,一个或多个存储介质特征参数值提供如下各项中的至少一项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型、以及与存储介质的至少一部分相关联的位置。在一些实施方式中,一个或多个存储介质特征参数值包括:正被访问的存储介质位置的指示符、正被访问的存储介质位置的之前编程/擦除周期的数量的指示符、以及存储介质130的当前温度的指示符。
软信息生成模块229基于一个或多个存储介质特征参数值来取回特征向量并且促使存储介质I/O128从存储介质130的一部分,例如可选择部分131进行读取。存储介质I/O128从存储介质进行读取并且将一序列原始硬判定读取数据提供给软信息生成模块229。值得注意的是:由于对于给定的读取操作而言,在很多情况下存储在特征模块中的特征向量中的软信息在统计意义上比从单独的存储器单元读取的原始电性模拟值更加精确,所以在一些实施方式中原始读取数据可以为硬判定数据。而且,与需要多个读取操作以生成单组统计意义上精确的软信息值的以前的系统相比,软信息生成模块229可通过使用单页读取操作来生成统计意义上精确的软信息值。在一些实施方式中,软信息生成模块229通过为在从存储介质130读取的原始硬判定数据中的每个位元组从所选择的特征向量中选择相应的软信息值,从而生成与原始硬判定读取数据相对应的一序列软信息值。
此外和/或可选择地,在读取操作期间,软信息生成模块229将统计意义上经确定的读取比较信号值提供给存储介质I/O128。通常,基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值来选择统计意义上经确定的读取比较信号值。由此,对于存储介质130的给定的当前状态而言,统计意义上经确定的读取比较信号值可产生比无需考虑一个或多个存储介质特征参数值而选择的标定设计值(nominal design value)更精确的读取数据。在一些实施方式中,统计意义上经确定的读取比较信号值被存储在由一个或多个存储介质特征参数值所索引的特征向量的集合中。如下文参照图4和图10更详细描述的,在一些实施方式中,通过使用对由特定制造工艺所生产的装置的特征处理来确定统计意义上经确定的读取比较信号值。
此外和/或可选择地,在第一次读取操作之后响应于经识别的错误条件,软信息生成模块229将统计意义上经确定的已移位的读取比较信号值提供给存储介质I/O128。通常,统计意义上经确定的已移位的读取比较信号值相对于标定设计值或第一统计意义上经确定的读取比较信号值而被偏移,并且所述已移位的读取比较信号值基于一组转移概率(transition probability),所述转移概率通过使用对由特定制造工艺所生产的装置的特征处理所确定。
图4是图3中所包括的软信息生成模块229的实施方式的示图。再次,如上所述,尽管示出了某些特定的特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。为此,作为非限制性实例,软信息生成模块229包括软信息管理控制器410、特征模块420、计算/调整模块430、以及输出多路复用(MUX)440。如图3中所示,软信息生成模块229与错误控制模块125、存储器管理模块120和存储介质I/O128耦接。
软信息管理控制器410与特征模块420、计算/调整模块430以及MUX440中的每一个耦接,以便协调软信息生成模块229的操作。更具体地,软信息管理控制器410被连接用以在控制线401上接收读取请求并且在数据线402上接收一个或多个存储介质特征参数。软信息管理控制器410还被连接用以在控制线411上为特征模块420提供选择控制信号,并且用以在数据线412上接收所选择的特征向量。在一些实施方式中,软信息管理控制器410进一步被连接用以通过数据线414将读取比较信号值(例如,比较电压或别的电性值)提供给存储介质I/O128,并且通过数据线415从存储介质I/O128接收原始读取数据。软信息管理控制器410还被连接用以通过相应的数据线416和417将多个序列的软信息值提供给计算/调整模块430和输出MUX440,并且通过控制线403将控制信号提供给输出MUX440。输出MUX440还被连接用以在数据线431上接收来自计算/调整模块430的经调整的序列的软信息值。输出MUX440还被连接用以根据在控制线403上所接收的控制信号来在数据线441上选择性地提供来自转换模块433和计算/调整模块430中的一个模块的软信息值。
特征模块420包括对应于一个或多个存储介质特征参数值的特征向量421-1、421-2、421-3、…421-n的集合,所述特征向量421-1、421-2、421-3、…421-n中的每个特征向量均存储诸如用于位元组的软信息值之类的特征数据以及与存储介质130相关联的读取比较信号值。在一些实施方式中,存储在特征向量421中的特征数据经统计得出。下面将参照图5A、图5B、图6A和图6B描述特征向量421的更加详细的示例性实施方式。
软信息管理控制器410包括选择模块431、读取控制器432和转换模块433。选择模块431经配置以根据存储介质130的当前状态使用一个或多个存储介质特征参数值来从所存储的特征向量421-1、421-2、421-3、…421-n的集合中选择特征向量。在一些实施方式中,选择控制信号包括一个或多个存储介质特征参数值和/或与一个或多个存储介质特征参数值的组合相关联的索引关键字(index key),所述索引关键字使特征模块420能够基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值来选择特征向量。
读取控制器432经配置用以通过存储介质I/O128来读取存储介质130的一部分。在一些实施方式中,读取控制器432经配置用来为存储介质I/O128提供用于读取操作的读取比较信号值。在一些实施方式中,对于第一读取而言,读取控制器432从基于与存储介质130的当前状态相关联的一个或多个存储介质特征参数值而选择的特征向量中选择一个或多个统计意义上经确定的读取比较信号值。在一些实施方式中,读取控制器432经配置以响应于确定从第一读取所生成的软信息值包括无法由错误控制解码器127校正的错误来第二次读取存储介质130的同一部分。对于第二读取而言,读取控制器432从所选择的特征向量中选择一个或多个已移位的读取比较信号值。如下文参照图8更详细地描述的,在一些实施方式中,已移位的读取比较信号值基于一组转移概率相对于相应的标定或默认的读取信号值或统计意义上经确定的第一读取比较信号值来分别进行偏移。即使对存储介质的同一部分进行了第二次读取,所述同一部分在第一读取之后未被写入,那么在一些情况下,也可在第二读取期间使用一个或多个已移位的读取比较信号值产生从存储介质130读取的原始硬判定读取数据,所述原始硬判定读取数据不同于作为第一次读取操作的结果的所读取的原始硬判定读取数据。
转换模块433经配置以生成与原始硬判定读取数据相对应的一系列软信息值。该序列软信息值至少部分地通过从所选择的特征向量中为原始硬判定读取数据的每个位元组选择相应的软信息值来生成。更具体地,在第一读取的一些实施方式中,转换模块433将至少一个软信息值以LLR的形式赋值给来自第一次读取的硬判定读取数据中的每个位元组,从而产生第一序列的其中n是码字的长度。在一些实施方式中,如果第一序列软信息值被确定为包括无法校正的错误,则转换模块433将至少一个软信息值以LLR的形式赋值给来自第二读取的硬判定读取数据中的每个位元组,从而产生第二序列软信息值,其中n是码字的长度。
计算/调整模块430经配置以通过将第一序列软信息值与第二序列软信息值相结合来生成第三序列软信息值。在一些实施方式中,第三序列软信息值响应于确定第二序列软信息值包括至少一个无法校正的错误而生成。在一些实施方式中,当来自第二序列软信息值的至少一部分的信息变得可获取时,生成第三序列软信息值。如在下文更详细论述的,参照图7,在一些实施方式中,通过如下方式生成第三序列软信息值中的每个软信息值:将来自第一序列和第二序列的对应的软信息值进行比较,并且当该比较满足第一条件时使第三序列软信息值中相应的一个软信息值等于第一软信息值与第二软信息值的第一结合,并且当该比较满足第二条件时使第三序列软信息值中相应的一个软信息值等于第一软信息值与第二软信息值的第二结合。
作为实例,在一些实施方式中,第三序列软信息值是根据方程式(1)所生成的第三(且最终的)序列其中n是码字的长度:
其中α1和α2是权重因子,该权重因子满足α1+α2=1(或者某个等效常数)。在一些实施方式中,这两个权重因子是预先确定的常数,而在其它实施方式中,它们基于两个序列的LLR,和而生成。如方程式1中所示,软信息值的第一结合仅包括第一软信息值与第二软信息值中的一种软信息值,而软信息值的第二结合包括第一软信息值与第二软信息值的加权结合。
例如,在一些实施方式中,权重因子α1和α2这样生成:
以及
在一些实施方式中,基于最终序列的LLR,不用对经解码的数据进行测试以确定解码是否成功。而是,无需考虑任何这种确定,所产生的经解码的数据被发送至数据处理系统110(图1、图3)。如此,在一些实施方式中,由软信息生成模块229响应于来自数据处理系统110的读取请求所提供的软信息被限制为从两次读取操作所生成的第一序列LLR、第二序列LLR和第三序列LLR。本领域技术人员将从本公开理解的是:更多数量的读取操作是可能的,并且随后的每次读取操作均增加了完成读取操作所需要的最大时间量,所述最大时间量有时被称为最大等待时间(maximum latency)。即使很少遇到最大等待时间,数据处理系统110也必须被设计成适应存储器控制器120的最大等待时间。通常,与较长的最大等待时间相比优选较短的最大等待时间。
在一些实施方式中,可根据转移概率来生成LLR,所述转移概率通过对由制造工艺在各种条件下生产的存储器装置进行统计意义上的特征采样来确定。为此,特征处理的基本原理(basis)可被建立如下。使X成为Q=2q级的组,在该级中,q位的位元组被写入快闪存储器单元中,其中q位中的每个位来自q个页中的相应的一个页。例如,当q=2时,X={11,01,00,10}。在另一实例中,当q=3时,X={111,011,001,000,010,110,100,101}。使Y成为Q级的组,其中基于读取比较电压q位的位元组从快闪存储器单元读出,所述读取比较电压例如上文参照图2所述的读取比较电压VR1、VR2和VR3。由于伪随机波动、存储介质中的缺陷、操作条件、装置历史、和/或读写电路等,来自快闪存储器单元的读出电压电平y∈Y可不同于写入电压电平x∈X。如上文参照图2所述,通常在存储器单元中的每个电平的实际电压的组具有可能值的分布或组。电压分布受诸如页位置、页类型、编程/擦除(P/E)周期、数据模式(操作、保持)温度等之类的因素影响。在一些实施方式中,电压分布和电压分布的变化可被用于基于装置特征处理来生成诸如转移概率和/或LLR之类的软信息值。
下文描述了一实例用以描述软信息生成方法的实施方式,在该实例中q=2(即,MLC快闪存储器中每单元2位)。然而,本领域技术人员将从本公开理解的是:2位的实施方式可被扩展至每个存储器单元多位(q≥3)的其它类型的MLC快闪存储器。
存储介质特征参数值的每个组合均代表存储介质(例如快闪存储器装置)的相应的状态,所述相应的状态可在装置特征处理中被表征并且可存在于由相同制造工艺所生产的其它装置。如下文参照图9-图11所述的,为了将存储介质表征为一组特征参数值的组合,在与特征参数值的组合中的每个组合近似的测试条件下从存储介质读写数据,所述测试条件包括各种操作模式(例如,操作模式、保持模式等)
关于MLC快闪存储器(例如存储介质130),通常存在可于MLC快闪存储器上执行的两种类型的读取操作,所述两种类型的读取操作造成转移概率的没有交集的多个组。一种是单页读取,所述单页读取包括从一些q页MLC快闪存储器单元读取特定页的各个位。例如,对于2页快闪存储器而言,两个组成页被称为下页和上页,其中下页的位通常为2位的位元组的最不重要的位,而上页的位是最重要的位。对于单页读取的情形而言,一些MLC快闪存储器单元的上页位和下页位中的一位被读取。因此,下页读取从一些2页MLC快闪存储器单元提供一序列相应的下页位。其它类型的读取是联合页(joint-page)读取,所述联合页读取通常包括从一些q页MLC快闪存储器单元读取两页或更多页的各个位。所以对于2页(即q=2)快闪存储器而言,联合页读取从一些2页MLC快闪存储器单元提供一序列各自2位的位元组。通过比较写入数据和读取数据来为每种类型的读取以及存储介质特征参数值的组合生成一个或多个转移概率表。
例如,图5A是针对存储介质特征参数值的特定组合的、与MLC快闪存储器单元的单页读取或与SLC快闪存储器单元相关联的转移概率表50。在转移概率表50中的转移概率值p00、p10、p01、p11是如下这样确定的。使xb和yb分别为被写入下页的数据位和从同一下页读取的数据。每个转移概率值p00、p10、p01、p11由条件概率pi,j=p(yb=j|xb=i)来确定,其中当位xb=i被写入时,特定位值yb=j被读取。例如,转移概率p00是当“0”被写入时“0”被读取的概率,并且转移概率p01是当“0”被写入时“1”被读取的概率,等。此外,即使MLC快闪存储器单元存储包括两位或更多位的位元组,转移概率和随后为单页读取所生成的LLR也与其中每个位元组均包括单个位的多个位元组相对应。本领域技术人员将从本公开理解的是:通过读写上页数据来针对存储介质特征参数值的组合相似地获得用于上页的转移概率表。本领域技术人员还将从本公开理解的是:对于每个可能的写入位值而言,转移概率满足方程式(4):
图6A是与MLC快闪存储器单元的联合页读取相关联的转移概率表60。再次,联合页读取通常包括从一些q页MLC快闪存储器单元读取两个或多个页的各个位。因此,读取数据的序列包括多位的位元组,并且为联合页读取所生成的转移概率和LLR与其中每个位元组均包括两位或更多位的多个位元组相对应。因此,对于2页MLC快闪存储器而言,例如通过在读取操作期间确定由2位快闪存储器单元所产生的电压电平来一起读取上页和下页的位。再次,特征处理包括将读取电平y∈Y与写入电平x∈X进行比较,并且转移概率pi,j=p(y=j|x=i)是在给定写入电平x=i的情况下,读出电平y=j的条件概率。此外,对于联合页读取而言,读写电平{11,01,00,10}被映射至所述表中的相应指标{3,1,0,2}。因此,例如,转移概率p13是当“1”(或“01”)被写入时,“3”(或“11”)被读取的概率。并且,如上所述,对于每个写入电平而言,转移概率满足方程式(4)。
一旦为存储介质特征参数值的组合生成了转移概率,对应的LLR可被生成并被存储在特征向量的集合中。本领域技术人员将从本公开理解的是:在一些实施方式中,转移概率存储在特征向量的集合中而不是LLR中,或者转移概率除了存储在LLR中以外还存储在特征向量的集合中。然而,LLR提供由转移概率所提供的软信息的更紧凑的呈现。
在一些实施方式中,用于存储介质特征参数值的组合的LLR可通过使用如下方程式(5)来生成:
在方程式(5)中,yk代表从q位多级存储单元读取的第k位,其中第k位与针对0≤k<q的读出的电压电平y∈Y相对应。方程式(5)可被改写为(5a),在方程式(5a)中,表示第k位为0的电压电平X的子组,表示第k位为1的电压电平X的子组,并且
对于单页读取而言,方程式(5a)简化为方程式(6)和(7):
对于联合页读取而言,方程式(5a)并不如上述yb=0和yb=1那样简单地进行简化。然而,作为y=11的实例,方程式(5a)可被写为:
本领域技术人员将从本公开,特别是方程式(5a)、(8)和(9)理解如何获得y=01、00和10的LLR。
图5B是特征向量500(例如,与图4中所示的特征向量421中的任意一个相对应)的实施方式的示意性示图;在一些实施方式中,特征向量包括从图5A的表中的转移概率值所产生的软信息值532、533。在一些实施方式中,特征向量500包括存储介质特征参数域510、读取比较电压域520、单页读取LLR值域530以及权重因子域540。进一步参照图3和图4,在一些实施方式中,特征向量是如下这样的数据结构:所述数据结构促进从存储介质读取原始数据值和/或促进生成与所读取的数据相对应的一序列软信息值。在一些实施方式中,单页读取和/或联合页读取的各个LLR值(例如LLR(yb=0)和LLR(yb=1))被存储在关于存储介质特征参数值的组合的相应的特征向量中,所述存储介质特征参数值用于从特定制造工艺所生产的装置。转而,存储器控制器或存储器控制器的软信息生成模块通过从已选择的特征向量中为所读取的数据的每个位元组选择相应的LLR值来生成与原始读取数据相对应的一序列软信息值。如上所述,在一些实施方式中,对于给定的读取操作而言,由于诸如LLR之类的预先生成的软信息值可比从单独的存储器单元读取的原始电性值在统计意义上更精确,所以原始读取数据是硬判定数据。统计意义上更大的精度是受控的装置特征处理的结果。
存储介质特征参数域510被提供用于存储一个或多个存储介质特征参数值。例如,存储介质特征参数域510包括温度域511和P/E周期域512。然而,本领域技术人员将从本公开理解的是:存储介质特征参数域510中可包括任意数量的存储介质特征参数值域。例如,一组一个或多个存储介质特征参数值没有限制地提供如下各项中的至少一项的指示:与存储介质的至少一部分相关联的物理特征、与存储介质的至少一部分相关联的操作模式、与存储介质的至少一部分相关联的使用历史、与存储介质的至少一部分相关联的条件特征、与存储介质的至少一部分相关联的读取类型以及与存储介质的至少一部分相关联的位置。如上所述,域510中的存储介质特征参数值与存储介质的状态相对应,其中特征向量500中的剩余数据可应用于所述存储介质。为此,在一些实施方式中,通过在各个域中所存储的一个或多个存储介质特征参数值,可对特征向量的集合做索引,因此使所述特征向量的集合可检索并可选择。
在一些实施方式中,特征向量500并不包括存储介质特征参数域510,而是,与特征向量500对应的存储介质特征参数值由特征向量表或特征向量数据库中的特征向量500的位置来暗示。例如,如果存在分别具有3、4和5的潜在值的三个存储介质特征参数(a、b和c),则将存在针对存储介质的60个不同状态的一组60(即,3×4×5)个不同特征向量。通过根据与存储介质的当前状态相对应的三个存储介质特征参数(a、b和c)来形成索引并且读取或者以另外的方式获得与该索引相对应的特征向量,从而访问60个特征向量中的任意一个特征向量。
读取比较电压域520被提供用以存储读取比较电压和/或读取比较电压的指示,所述读取比较电压和/或读取比较电压的指示可应用于由被用于定义特征向量500的一个或多个存储介质特征参数值所表征的存储介质的相应的状态。在一些实施方式中,读取比较电压域520包括用于不同读取操作的比较电压。例如,读取比较电压域520包括第一读取比较电压域521和第二读取比较电压域522。在一组快闪存储器单元的第一读取期间使用域521中的第一读取比较电压。有时,第一读取被称为“正常读取”。在一些实施方式中,第一读取比较电压是默认读取比较电压值,例如通过使用特定的制造工艺所生产的装置的默认读取比较电压值。在其它一些实施方式中,第一读取比较电压域521包括第一统计意义上经确定的读取比较电压值,VR1-1521a、VR2-1521b和VR3-1521c,它们由对特定的制造工艺所生产的装置的特征处理所生成。例如,在一些实施例中,在装置特征处理期间选择第一读取比较电压值,以满足相应的阈值错误率。在一些实施方式中,第二读取比较电压域522包括第一统计意义上经确定的已移位的读取比较电压值,VR1-2522a、VR2-2522b和VR3-2522c,它们相对于正常的读取比较信号值或者基于转移概率组的统计意义上经确定的第一读取比较信号值而被偏移,并且它们响应于经识别的错误条件而被使用。如上所述,通常仅在第一读取产生具有一个或多个无法校正的错误(即,如果不从一个或多个额外的读取操作接收数据,则无法由错误控制模块125校正)的数据的条件下才执行使用已移位的读取比较电压值的第二读取。在一些实施方式中,读取比较电压域520包括实际读取比较电压电平,例如上文参照图2所述的读取比较电压VR1、VR2和VR3。在一些实施方式中,读取比较电压域520包括读取比较电压的指示,例如偏移值、百分比值和/或离散值。
单页读取LLR值域530存储分别用于下页读取和上页读取的下页LLR值532和上页LLR值533,所述LLR值532和533由读取数据值531(例如,“0”和“1”)索引。通过为读取数据中的每个位元组选择适当的LLR值来从原始读取数据生成多个序列的软信息值。例如,对于下页读取而言,下页LLR值532中的相应的一个值将被选择用于原始数据的每个位。
如上所述,响应于经识别的错误条件(例如,在由第二读取所产生的数据中的无法校正的错误),第一序列软信息值和第二序列软信息值被结合从而产生第三序列软信息值。在一些实施方式中,第一序列软信息值与第二序列软信息值的结合利用在特征向量500中所存储的权重因子。权重因子域540包括用于下页读取的下页权重因子541和用于上页读取的上页权重因子542。
图6B是特征向量600(例如,与图4中所示的特征向量421中的任意一个相对应)的实施方式的示意图;在一些实施方式中,特征向量600包括从图6A的表中的转移概率值所产生的软信息值632、633。图6B中所示的特征向量600与图5B中所示的特征向量500相似。这两个特征向量共同的元素已被赋值有相同的参考数字,并且为了简洁起见,本文仅描述图5B和图6B中所示的特征向量500与600之间的差异。此外,尽管示出了一些特定的特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。
与特征向量500相比,特征向量600包括联合页读取LLR值域630,所述域630存储分别用于下页读取和上页读取的下页LLR值632和上页LLR值633,所述LLR值632、633由读取数据值631索引。如上所述,通过为所读取的数据中的每个位元组选择适当的对(pair)的LLR值来从原始读取数据生成多个序列的软信息值。此外,在一些实施方式中,权重因子域640存储可应用于下页读取和上页读取的权重因子641a、641b。
图7是表现根据从存储介质所读取的数据来生成软信息值的方法700的流程图。在一些实施方式中,方法700由存储器控制器或与存储器控制器相关联的模块来执行。简单地说,方法700包括:通过使用基于存储介质的当前状态所选择的一个或多个读取比较信号值来从存储介质读取数据、根据所读取的数据以及存储介质的当前状态来生成对应序列的软信息值、以及确定是否产生一个或多个额外序列的软信息值。如上所述,在一些实施方式中,用于各个位元组的读取比较信号值和软信息值被存储在特征向量中,所述特征向量可基于一个或多个存储介质特征参数值来选择。转而,根据原始读取数据所生成的多个序列的软信息值是基于与存储介质(例如快闪存储器)的当前状态相关联的一个或多个存储介质特征参数值。
为此,如有框7-1所表现的,方法700包括接收读取数据请求。例如,进一步参照图3和图4,存储器控制器120从数据处理系统110接收读取数据请求,并且将该请求转至软信息生成模块229。如框7-2所表现的,方法700包括接收或取回与存储介质的当前状态相关联的一个或多个存储介质特征参数值。在一些实施方式中,一个或多个存储介质特征参数值与读取数据请求一起被接收。在一些实施方式中,响应于接收读取数据请求来取回一个或多个存储介质特征参数值。
如框7-3所表现的,方法700包括使用一个或多个一个或多个存储介质特征参数值来取回特征向量(例如,分别在图4、图5B或图6B中所示的向量421、500或600)。例如,进一步参照图4,软信息管理控制器410使用一个或多个存储介质特征参数值以在控制线411上将选择控制信号发送至特征模块420。作为回应,特征模块420通过数据线412将特征向量(与一个或多个存储介质特征参数值相对应的)的至少一部分提供给软信息管理控制器410。
如框7-4所表现的,方法700包括从所选择的特征向量中选择一个或多个第一读取比较电压。转而,如框7-5所表现的,方法700包括:将所选择的一个或多个第一读取比较电压(以及地址或其它位置值)提供给读取电路(例如存储介质I/O128),以及从存储介质130接收原始读取数据(例如码字)。如框7-6所表现的,方法700包括通过将来自特征向量(7-3处所取回的)的至少一个软信息值赋值给来自第一读取的原始读取数据中的每个位元组从而生成第一序列软信息值。更具体地,例如由框7-6a所表现的,可通过将至少一个LLR值赋值给原始数据中的每个位元组来生成第一序列
如框7-7所表现的,方法700包括将从存储介质130所读取的原始读取数据(例如码字)以及对应的第一序列软信息值提供给ECC解码器(例如图3的解码器127)。如框7-8所表现的,方法700包括确定ECC解码器是否通过使用第一序列软信息值成功地对码字进行解码。如果该解码是成功的(框7-8的“是”路径),则如框7-9所表现的,由于不需要进一步的动作以读取相关联的数据,所以方法700成功结束于第一序列软信息值相对应的码字。另一方面,如果该解码不成功(框7-8的“否”路径),则如框7-10所表现的,方法700包括接收错误指示符。转而,如框7-11所表现的,方法700包括从之前选择的特征向量中选择一个或多个第二读取比较电压。转而,如框7-12所表现的,方法700包括:将所选择的一个或多个第二读取比较电压提供给读取电路(例如存储介质I/O128),以及从存储介质130接收一组新的原始读取数据。如框7-13所表现的,方法700包括通过将来自特征向量的至少一个软信息值赋值给来自第二读取的原始读取数据的每个位元组从而生成第二序列软信息值。更具体地,如框7-13a所表现的,在一些实施方式中,通过将至少一个LLR值赋值给原始数据中的每个位元组来生成第二序列
如框7-14所表现的,方法700包括将第二序列软信息值提供给ECC解码器(例如图3的解码器127)。如框7-15所表现的,方法700包括确定ECC解码器是否通过使用第二序列软信息值成功地对码字(从第二读取所获得)进行解码。如果该解码是成功的(框7-15的“是”路径),则如框7-9所表现的,由于不需要进一步的动作以读取相关联的数据,所以方法700成功结束于来自第二读取的码字。另一方面,如果该解码是不成功的(框7-15的“否”路径),则如框7-16所表现的,方法700包括:如上文参照方程式(1)和(2)所描述的以及下文参照图8所进一步描述的,通过将第一序列软信息值与第二序列软信息值相结合来生成第三序列的软信息值。
图8是表现根据之前生成的软信息值来生成软信息值的方法800的实施方式的流程图。在一些实施方式中,通过存储器控制器或与存储器控制器相关联的模块来执行方法800。简单地说,方法800包括基于之前生成的两个序列的软信息值的结合来生成第三序列的软信息值。为此,如框8-1所表现的,方法800包括从之前生成的第一序列软信息值中选择软信息值,以及如框8-2所表现的,方法800包括从之前生成的第二序列软信息值中选择对应的软信息值。如框8-3所表现的并且参照上文方程式(1),方法800包括确定从第一序列和第二序列所选择的软信息值的标记(即,正或负)是否匹配。如果标记匹配(例如,均是正数或者均是负数),则如框8-5所表现的,方法800包括:将第三序列的相应的软信息值设置为仅从第二序列软信息值中所选择的软信息值,或者使第三序列的相应的软信息值与仅从第二序列软信息值中所选择的软信息值相等(框8-5的“是”路径)。另一方面,如果标记不匹配,则如框8-4所表现的并且参照方程式(1)、(2)和(3),方法800包括:将第三序列的相应的软信息值设置为从第一序列软信息值和第二序列软信息值所选择的值的加权结合,或者使第三序列的相应的软信息值与从第一序列软信息值和第二序列软信息值所选择的值的加权结合相等。
图9是存储介质特征环境900的实施方式的示图,所述存储介质特征环境900可操作以生成用于诸如MLC快闪存储器之类的存储介质的软信息值以及统计意义上经确定的读取比较信号值。尽管示出了一些特定特点,但是本领域技术人员将从本公开理解的是:为了简洁起见并且不使本文所公开的示例性实施方式的更多相关方面难以理解,并未示出各种其它特点。为此,作为非限制性实例,特征环境900包括测试下的存储介质930和特征控制器920。
测试下的存储介质930包括一个存储器装置或由相同制造工艺生产的多个存储器装置(例如MLC快闪存储器装置)。特征控制器920包括管理模块921、测试数据生成器923、统计表生成器926、存储介质I/O928、写入缓冲器924、读取缓冲器925以及特征向量数据库929。
在一些实施方式中,特征控制器920包括用于执行一个或多个程序的一个或多个处理器(未示出),所述特征控制器920包括管理模块921、测试数据生成器923以及统计表生成器926。在一些实施方式中,管理模块921、测试数据生成器923以及统计表生成器926是在诸如一个或多个DRAM装置和/或非易失性存储器装置之类的非易失性计算机可读存储介质(未示出)中存储的程序,并且所述非易失性计算机可读存储介质通过多条通信总线(未示出)中的一条总线与一个或多个处理器耦接。管理模块921与统计表生成器926、测试数据生成器923以及存储介质I/O128耦接,以便协调特征控制器920的操作。存储介质I/O928通过数据连接件903为测试下的存储介质930提供接口。在一些实施方式中,存储介质I/O928包括读写电路,所述读写电路包括如下这样的电路:所述电路能够将诸如电压之类的读取比较信号值提供给与测试下的存储介质930耦接的信号线。写入缓冲器924和读取缓冲器923在I/O928和统计表生成器926之间并联耦接。写入缓冲器924和读取缓冲器923可由统计表生成器926读取。写入缓冲器924可由存储介质I/O928读取,并且读取缓冲器923可由存储介质I/O928写入。另外,写入缓冲器924可由测试数据生成器923写入。统计表生成器926可将特征向量写入到特征向量数据库929中。
在操作中,对于每种类型的读取以及对于存储介质特征参数值的特定组而言,通过将写入数据与读取数据进行比较来生成一个或多个转移概率表。为此,测试数据生成器924将写入数据提供给写入缓冲器924。存储介质I/O928将写入缓冲器924中的数据写入到测试下的存储介质930中。转而,存储介质I/O928从测试下的存储介质930读取数据并且将所读取的数据提供给读取缓冲器923。统计表生成器926将写入缓冲器924与读取缓冲器923的内容进行比较,从而确定所读取的数据中的错误的存在(presence)和位置。在与特征向量相对应的一个或多个存储介质特征参数值的限度(bound)内,该处理被重复多次,以便产生统计意义上的大量测试数据,根据该大量测试数据,可为包含特征向量而计算转移概率值、LLR值以及基于统计意义的读取比较电压。
图10是表现根据一些实施例的基于特征数据来生成包括软信息值和读取比较电压的一个或多个特征向量的方法1000的流程图。在一些实施方式中,方法1000由与存储器控制器相关联的模块来执行。简单地说,方法1000包括统计意义上表征由特定制造工艺所生产的存储器装置。
为此,如框10-1所表现的,方法1000包括选择一组(本文有时称为特定组)一个或多个存储介质特征参数值,以便为特征向量定义测试条件。如框10-2所表现的,方法1000包括生成数据向量(即,测试数据)。在一些实施方式中,伪随机地生成数据向量。如框10-3所表现的,方法1000包括写入数据向量和读取数据向量。如框10-4所表现的,方法1000包括:记录在所读取的数据向量中的错误的存在和位置以及生成与所读取的数据向量中的错误的存在和位置相关联的统计表。如框10-5所表现的,方法1000包括在写入和读取之后记录与所存储的数据向量相对应的原始读取电压值。如框10-6所表现的,方法1000包括确定是否已经关于特定组的存储电压特征参数值为存储介质收集了足够的数据,在该情形中,对特定组的存储介质特征参数的测试已经完成。在一些实施方式中,当所收集的信息满足预定级别的统计精度时,测试完成。在一些实施方式中,测试的完成进一步需要所收集的信息足够生成满足相应的阈值错误率的第一读取比较电压值。在一些实施方式中,测试的完成进一步需要:所收集的信息应当足够生成具有预定级别的统计精度的转移概率值。
如果测试还没有完成(框10-6的“否”路径),方法1000包括重复方法1000的由框10-2至10-5所表现的部分,以便生成更多的测试数据。另一方面,如果测试完成了(步骤10-6的“是”路径),则如框10-7所表现的,方法1000包括生成用于特征向量(即,与特定组的一个或多个存储介质特征参数值相对应的特征向量)的转移概率。如框10-8所表现的,在一些实施方式中,方法1000包括将转移概率转换为LLR值。如框10-9所表现的,方法1000包括:生成已记录的读取电压(所述读取电压在其被记录时选择性地生成)的分布,以及根据已记录的读取电压的分布来识别各个电压的波谷(trough)从而用作第一读取比较电压值。例如,进一步参照图2,读取比较电压VR1211、VR2212和VR3213是位于相邻的中心电压之间的电压波谷,并且在电压范围201、202、203、204之间定义阈值电压。在一些实施方式中,除了或者作为选择地将相应的中心电压对之间的中间点处或中间点附近的读取比较电压隔开,方法1000还将读取比较电压的选择基于每个所述读取比较电压是否处于两个电压分布之间的波谷。在一些是实施方式中,方法1000根据预先定义的错误最小标准(例如,根据已记录的信息,通过选择使读取错误最小化的读取比较电压)来选择读取比较电压。如上所述,在一些实施方式中,方法1000选择满足相应的(例如预先定义的)阈值错误率的读取比较电压。在本文中,有时将所生成的已记录的读取电压的分布称为统计表。
图11是表现基于转移概率为从多级存储器单元读取数据而生成已移位的读取比较信号值(例如电压)的方法1100的流程图。在一些实施方式中,方法1100由与存储器控制器相关联的模块来执行。简单地说,方法1100包括统计意义上表征由特定制造工艺所生产的存储器装置,以便确定第二组读取比较信号值,如果第一组读取比较信号值未能提供不具有至少一个无法校正的错误的数据,则可使用所述第二组读取比较信号值。
为此,如框11-1所表现的,方法1100包括为特征向量选择定义测试条件的一组(本文有时称为特定组)一个或多个存储介质特征参数值。如框11-2所表现的,方法1100包括为特定组的一个或多个存储介质特征参数值生成转移概率。例如,可通过使用上文参照图10所述的方法来生成转移概率。如框11-3所表现的,如上所述,方法1100包括取回或选择各个电压波谷,以便用作第一组读取比较电压值。此外和/或可选择地,第一组读取比较电压值可以是标定值,所述标定值基于将读取比较电压值从存储器单元的电压范围的一侧到另一侧均等地隔开。如框11-4所表现的,方法1100包括选择多个电压波谷中的一个,为此方法1100将为将要被存储在特征向量(即,与特定组的一个或多个存储介质特征参数值相对应的特征向量)中的第二组读取比较电压值生成对应的已移位的读取比较电压值。
如框11-5所表现的,方法1100包括基于转移概率确定与所选择的电压波谷相关的相应的已移位的读取比较电压的偏移方向。在一些实施方式中,确定偏移方向包括确定表现MLC快闪存储器单元中的相邻的电压电平的两个转移概率之间的差异的标记。例如,进一步参照图2和图6A,如上所述,减小单元电压从一个电压范围漂移到相邻的电压范围的影响的一种方式是对位元组进行灰度编码。对位元组进行灰度编码包括迫使位元组赋值,使得特定电压范围的相应的位元组与相邻电压范围的相应的位元组相差仅一位。例如,如图2中所示,相邻范围201和202的对应的位元组分别为“11”和“01”,相邻范围202和203的对应的位元组分别为“01”和“00”,并且相邻范围203和204的对应的位元组分别为“00”和“10”。因此,如果单元电压漂移至接近最近的读取比较电压,则因而发生的错误被限制于2位的位元组内的单个位。参照图6A,在一些实施方式中,进行灰度编码使将要使用的转移概率生成第二或可依靠的(fallback)(即已移位的)的读取比较电压值,如果第一读取比较电压未能产生所需的结果,则可使用所述第二或可依靠的读取比较电压值。如上所述,进行灰度编码通常将多位的位元组的最可能的错误限制为单个位的错误。由此,与这种错误相关联的转移概率对被设置成沿(即,相邻但并不在其上)图6A中的表60的对角线而相邻。例如,在一些实施方式中,转移概率对(p31、p13)被用于生成从读取比较电压值VR1偏移的相应的已移位的读取比较电压值的方向。更具体地,在一些实施方式中,从读取比较电压值VR1偏移的方向由(p31-p13)的差的标记来提供。相似的,使用转移概率对(p10、p01)和(p02、p20)来生成分别从对应的读取比较电压值VR2、VR3偏移的各个已移位的读取比较电压值的各个方向。
如框11-6所表现的,方法1100包括基于转移概率来确定与已选择的读取比较电压相关的已移位的读取比较电压的偏移的大小。在一些实施方式中,偏移的大小基于相同的两个转移概率(pij-pji),所述两个转移概率被用于确定前述偏移的方向。在一个实例中,从读取比较电压值VR1的偏移的大小由转移概率对(p31、p13)的函数来确定。
在一些实施方式中,偏移的大小被确定为转移概率对(例如(p31、p13))的概率之间的差值的绝对值。换言之,偏移的大小跟踪绝对值(例如|p31-p13|)。例如,当对应的绝对值较大时,偏移的大小较大。相似地,当对应的绝对值较小时,偏移的大小较小。
在一些实施方式中,偏移的大小被确定为转移概率对(pij,pji)的概率之间的差的绝对值的线性或非线性函数。在一些实施方式中,偏移的大小是相应的转移概率对(pij,pji)之间的差的线性函数。例如,在一些实施方式中,偏移的大小被线性确定为β×|Pij-pji|,其中β是用以将绝对值|Pij-pji|转换为电压值的系数。在一些实施方式中,β由快闪特征数据来确定。在一些实施方式中,β由制造工艺特征数据来确定。在一些实施方式中,偏移的大小是相应的转移概率对(pij,pji)的差的非线性函数。例如,在一些实施方式中,偏移的大小被非线性确定为β×|Pij-pji|γ,其中指数γ用于包括装置和/或系统模型的非线性特征。在一些实施方式中,从快闪特征数据和制造工艺特征数据中的至少一种特征数据来确定由γ所表现的非线性特征。在一些实施方式中,曲线相称处理(curve fitting process)与一种或多种类型的特征数据相结合使用来产生更高等级(higher-order)的非线性模型,所述更高等级的非线性模型可被用于确定从给定的概率对(pij,pji)的偏移的大小。在一些实施方式中,相应的数学模型包括多个项(term),每个项均具有相应的缩放系数和/或指数值。因此,曲线相称处理被用于确定非线性模型的一个或多个系数和/或一个或多个指数值。在一些实施方式中,通过使用机器学习方法来确定偏移方程式(或模型)。例如,通过使用诸如快闪特征数据和/或基于历史数据的数据模式之类的之前确定的信息与读出数据的结合来使所述方程式公式化。
如框11-7所表现的,方法1100包括将已移位的读取比较电压(或者在已移位的读取比较电压与对应的读取比较电压之间的偏移)存储在特征向量中。如框11-8所表现的,方法1100包括确定是否存在要考虑的额外的读取比较电压电平。如果存在要考虑的额外的读取比较电压电平(框11-8的“是”路径),则方法1100包括重复所述方法的由框11-4至11-7所表现的部分,以便针对特定组的一个或多个存储介质特征参数值来确定将要存储在特征向量中的额外的已移位的读取比较电压。另一方面,如果不存在要考虑的其它读取比较电压电平(框11-8的“否”路径),则如框11-9所表现的,方法1100停止于特定组的一个或多个存储介质特征参数值。
图12是表现通过使用在存储介质的特征向量中所存储的多组读取比较电压来从存储介质读取数据的方法1200的实施方式的流程图。在一些实施方式中,方法1200由存储器控制器或与存储器控制器相关联的模块来执行,所述存储器控制器或与存储器控制器相关联的模块与存储介质耦接,并且当第一读取操作(参见框12-3、12-4和12-5)未能获得不具有无法恢复的错误的数据时,通常执行方法1200。简单地说,方法1200包括:从与特定组的一个或多个存储介质特征参数值对应(例如,与存储介质的当前状态对应)的特征向量取回至少两个读取比较电压,以及将所述至少两个读取比较电压应用于读取电路以便在两个不同时间从存储介质的相同组的存储位置取回原始数据。
为此,如框12-1所表现的,方法1200包括接收或取回特定组的一个或多个存储介质特征参数值,所述特定组的一个或多个存储介质特征参数值与数据将要从中读取的存储介质的当前状态对应。如框12-2所表现的,方法1200包括基于特定组的存储介质特征参数值来选择特征向量。如框12-3所表现的,方法1200包括从已选择的特征向量中获取第一读取比较电压值。如框12-4所表现的,方法1200包括将第一读取比较电压值提供给数据将要从中读取的存储介质的读取电路。如框12-5所表现的,方法1200包括基于第一读取比较电压值从存储介质的一个或多个特定地址或存储器位置接收第一读取数据值。如框12-6所表现的,方法1200进一步包括从已选择的特征向量获取第二读取比较电压值。如框12-7所表现的,方法1200包括将第二读取比较电压值提供给存储介质的读取电路。如框12-8所表现的,方法1200包括基于第二读取比较电压值来从与框12-5中所访问的那些存储介质的一个或多个特定地址或存储器位置相同的一个或多个特定地址或存储器位置接收第二读取数据值。如上所述,但并未在图12中示出,在一些实施方式中,使用至少第二读取数据值来恢复用于存储介质的一个或多个特定地址或存储器位置的数据值。
尽管上文描述了所附权利要求的范围内的实施方式的各个方面,但是应显而易见的是,可以以广泛的形式具体实施上文所述的实施方式的各个特点,并且上文所述的任意特定结构和/或功能仅为示例性的。基于本公开,本领域技术人员应当理解的是:本文所描述的方面可以单独地以其它方面来实现,并且可以各种方式包含这些方面中的两个或更多个方面。例如,通过使用本文所阐明的任意数量的方面可实现一种设备和/或可实践一种方法。此外,通过使用除了本文所阐明的一个或多个方面以外还有的其它结构和/或功能或者通过使用不同于本文所阐明的一个或多个方面的其它结构和/或功能可实现所述设备和/或所述方法。
还将理解的是,尽管在本文中术语“第一”、“第二”等可用于描述各种元素,但是这些元素并不受限于这些术语。这些术语仅用于将一个元素与另一元素进行区分。例如,第一接触可以用术语表示为第二接触,并且相似地,第二接触可以用术语表示为第一接触,这改变了描述的意思,只要所有出现的“第一接触”均被一致重新命名并且所有出现的第二接触均被一致重新命名即可。第一接触和第二接触均为接触,但是它们并非相同的接触。
本文所使用的技术仅出于描述特定实施例的目的并且并不意在限制权利要求。如在实施例的描述和所附权利要求中所使用的,单数形式的“一”、“一个”和“该”也意在包括复数形式,除非上下文清楚地另外指出。还将理解的是:如在本文所使用的,术语“和/或”涉及并且包括一个或多个相关联所列项的任一个或者所有可能的组合。还将进一步理解的是:当术语“包括”和/或“包含”在本说明书中使用时,该术语指定所述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其群组的存在或添加。
如在本文中所使用的,根据上下文,术语“如果”可以解释为意为“当所述前提条件为真时”、或“一旦所述前提条件为真”、或“响应于确定所述前提条件为真”、或“根据确定所述前提条件为真”、或“响应于检测到所述前提条件为真”。相似地,根据上下文,短语“如果确定[所述前提条件为真]”或“如果[所述前提条件为真]”或“当[所述前提条件为真]时”可以解释为意为“一旦确定所述前提条件为真”、或“响应于确定所述前提条件为真”、或“根据确定所述前提条件为真”、或“一旦检测到所述前提条件为真”、或“响应于检测到所述前提条件为真”。