最优读取阈值估算的制作方法

文档序号:11924147阅读:243来源:国知局
最优读取阈值估算的制作方法与工艺

本申请要求2015年11月10日提交的第14/937,833号美国非临时专利申请的优先权,出于各方面的目的,其内容通过引用合并于此。

技术领域

各个实施例总体而言涉及一种固态储存系统,且更具体而言,涉及一种固态储存系统中的最优读取阈值估算。



背景技术:

对于满足未来数据储存需求来说,能提供如较低成本、较轻重量、较低功耗、较高产量等优点的数据储存技术一直都是一种有吸引力的解决方案。基于与非门(NAND)的技术可以提供上述所有优点,但一直不能以较低成本生产。需要通过缩减NAND工艺来降低成本。然而,这种成本优势往往导致NAND可靠性的降低,这影响数据完整性。数据完整性可通过采用先进的编码和信号处理技术来改善。因此,需要改进的编码和信号处理技术。



技术实现要素:

各个实施例针对一种固态储存系统中的最优读取阈值估算方法和系统。

在一个实施例中,一种最优读取阈值估算方法可以包括:确定与最优步长大小Δopt相对应的翻转差(flip difference);估算第一读取点处的第一斜率m1和第二读取点处的第二斜率m2;以及获得作为具有第一斜率m1的第一线与具有第二斜率m2的第二线的交叉点的最优读取阈值(XLPopt)。

在另一个实施例中,一种系统可以包括:固态储存器;最优读取阈值估算器;以及接口,所述接口适用于与固态储存器和最优读取阈值估算器通信;所述最优读取阈值估算器适用于:确定与最优步长大小Δopt相对应的翻转差;估算第一读取点处的第一斜率m1和第二读取点处的第二斜率m2;以及获得作为具有第一斜率m1的第一线与具有第二斜率m2的第二线的交叉点的最优读取阈值(XLPopt)。

在另一实施例中,一种用于估算最优读取阈值的计算机实施过程,包括程序指令来:确定与最优步长大小Δopt相对应的翻转差;估算第一读取点处的第一斜率m1和第二读取点处的第二斜率m2;以及获得作为具有第一斜率m1的第一线与具有第二斜率m2的第二线的交叉点的最优读取阈值(XLPopt)。

附图说明

图1是用于示出NAND器件上的不同回读阈值的直方图。

图2是说明用于估算最优阈值的过程的流程图。

图3A和图3B是示出SLC分布的示图。

图4是说明执行最优阈值估算的储存器控制器的示图。

图5是用于使用最小区间(bin)估算最优阈值的步骤的流程图。

图6是示出估算阈值的示图。

图7是示执行读取的示图。

图8是示出用于寻找最小区间的过程停止的示图。

图9是示出最小区间技术的性能的示图。

图10是示出标绘的计数差的示图。

图11是示出说明用于估算最优阈值的过程的流程图。

图12是示出最优读取阈值估算的示图。

图13是示出最优读取阈值估算的性能的示图。

具体实施方式

本发明可以用许多方式来实施,包括过程;装置;系统;组合物;在计算机可读储存媒介上体现的计算机程序产品;和/或处理器,诸如适用于执行储存在与处理器耦接的存储器上的和/或由与处理器耦接的存储器提供的执行指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其它形式可以被称为技术手段。总而言之,公开的过程的步骤的顺序可以在本发明的范围内改变。除非另外明示,否则描述为适用于执行任务的诸如处理器或存储器的组件可以实施为一般部件或特定部件,所述一般部件暂时地适用于在给定时间执行任务,所述特定部件被制造来执行该任务。如本文所用的,术语“处理器”指适用于处理数据(诸如,计算机程序指令)的一个或更多个设备、电路和/或处理核心。

以下与示出本发明的原理的附图一起提供本发明的一个或更多个实施例的详细描述。连同这些实施例来描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求来限制,且本发明包括许多替换物、变型和等同物。为了提供对本发明的透彻理解,在下面的描述中阐述了许多具体细节。出于示例的目的提供这些细节,且可以在没有这些特定细节中的一些或全部的情况下,根据权利要求来实践本发明。出于简洁的目的,在与本发明相关的技术领域中已知的技术材料不会详细描述,使得本发明不会被不必要的模糊。

本文使用的术语仅仅是用于描述特定的实施例,且并非意在限制发明构思。如本文所用的,除非上下文明确另外指示,否则单数形式的“一(a)”、“一(an)”、“该(the)”也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,指示存在所陈述的特征,但不排除存在或增加一个或更多个其它特征。

在基于NAND的器件中,低密度奇偶校验(LDPC)编码技术最常用于改善数据完整性。在多电平单元(MLC)NAND中,两个位(最低有效位(LSB)和最高有效位(MSB))可以被编程在NAND上。从MLC NAND回读编程数据时,使用三次估算(一次用于A阈值,一次用于B阈值,一次用于C阈值)。

在图1中,直方图示出了NAND器件上的不同的回读阈值。可以通过使用B阈值来回读LSB,可以通过同时使用A阈值和C阈值来回读MSB。在理想的情况下,最优读取阈值应当位于不同单元分布的交叉点处(见图1)。但是在解码LSB和MSB时,直方图信息是未知的。

关于寻找最优读取阈值的更多信息可以在标题为“使用梯度下降而不使用边带信息来产生读取阈值(Generating Read Thresholds Using Gradient Descent and without Side Information)”的美国专利第8923062号、标题为“使用梯度下降而不使用边带信息来产生读取阈值(Generating Read Thresholds Using Gradient Descent and without Side Information)”的美国专利公布文本第2015/0078084号、以及标题为“使用位翻转计数和最小值的阈值估算(Threshold Estimation Using Bit Flip Counts and Minimums”的美国专利公布文本第2015/0131376号中找到,其通过引用其整体合并于此。

这些技术的一个主要缺点在于,它会由于含噪声的回读数据而陷入局部最小值。关于NAND数据,已观察到,针对各种读取阈值或MLC中的A阈值的读取输出是含噪声的,且针对“11”电平的单元分布与针对“01”电平的单元分布大不相同。在这种情况下,很难预测最优读取布置阈值。因此,始终需要能更准确地预测最优读取阈值的更好的技术。

在软解码器的情况下,因为读取位于预测的最优读取阈值周围以获取关于写入数据的软信息,所以寻找最优读取阈值分布的问题变得更加重要。在解码过程中,这种软信息还用在LDPC解码器中。如果最优阈值的估算不准确,则软LDPC解码器不能改善数据完整性。因此,为硬判决解码以及软解码寻找最优读取阈值非常重要。

公开了能准确地预测最优读取阈值的新技术,并且该技术提供与使用精灵读取阈值(genie read threshold)的性能接近的性能收益。在精灵性能中,假设精灵给出实际的最优读取阈值。

接下来参照图2,示出了用于估算最优阈值的步骤的流程图。当对固态储存系统执行读取时,使用一个或更多个阈值来执行读取。例如,在单电平单元(SLC)系统(其中单元储存单个位)中,使用单个阈值来执行读取。如果给定单元具有比阈值小的电压时,则值1被读取。如果单元所储存的电压大于阈值时,则值0被读取。返回最少的位错误(例如,当回读位序列与正确位序列或实际位序列进行比较时)的阈值被称为最优阈值,且图2的过程估算该最优阈值的值。

在步骤200,为多个区间中的每个区间确定位翻转计数。可以通过(1)对处在与给定区间的下界相对应的第一阈值处的固态储存单元组执行第一读取,以及(2)对处在与给定区间的上界相对应的第二阈值处的同一固态储存单元组执行第二读取,来确定位翻转计数。基于来自(1)处的第一读取的回读值和(2)处的第二读取的回读值来计算位翻转计数。

例如,参见图3A和图3B,图3A和图3B是示出SLC分布的一个实施例的示图。因为最优阈值对应于分布302和分布304交叉点处的电压,所以可以执行图2的方法以估算两个分布交叉点处的电压。在示图300中,分布302对应于正确储存1的单元,且分布304对应于正确储存0的单元。可以使用任何位映射,且本文描述的位映射仅仅是示例性的。

在示图300中,针对区间B1-B4中的每个,可以确定相应的位翻转计数。为了确定用于区间B1的位翻转计数,在阈值电压R1处执行第一读取,而在阈值电压R2处执行第二读取。如果任何位在阈值电压R1处的读取与阈值电压R2处的读取之间翻转(即,变化),则位翻转计数增大。

图350示出示例性的由阈值电压R1处的读取和阈值电压R2处的读取返回的回读位序列。在此示例中,被读取的单元组包括四个单元。单元1和单元4的回读值始终是0和1,因而不对应于位翻转,使得位翻转计数不增大。

在一些实施例中,在图2的步骤200,只对看似合理的或期望的位翻转进行计数。例如,参见示图350中的单元2的回读值,由单元2的读取在阈值电压R1处返回了值0。因此,可以推断出单元2储存大于R1的电压(即,储存电压(单元2)>R1)。由单元2的读取在阈值电压R2处返回了1,这对应于单元2储存小于R2的电压(即,储存电压(单元2)<R2)。因为范围R1<储存电压(单元2)<R2满足这两个不等式,所以这两个不等式是不矛盾的。这是看似合理的位翻转的一个示例。

相反地,由单元3示出的位翻转是难以置信的。在阈值电压R1处的返回值1对应于小于R1的储存电压(即,储存电压(单元3)<R1)。然而,阈值电压R2处的返回值0对应于大于R2的储存电压(即,储存电压(单元3)>R2)。不存在满足两个不等式的储存电压(单元3)的值,因为这个值不能既小于R1又大于R2。这是难以置信的位翻转的一个示例,且在一些实施例中,在图2的步骤200处,不对这种难以置信的位翻转进行计数。

时常地,难以置信的位翻转是由于读取噪声引起的,且如果两个阈值电压(例如,R1和R2)充分分离,则难以置信的位翻转将不会发生。因此,在一些实施例中,在合理的位翻转与难以置信的位翻转之间没有区别。在这些实施例中,对所有的位翻转进行计数。

回到图2,在步骤202,最小值(例如,最小位、最小区间等)使用与多个区间相对应的位翻转计数来确定。在步骤204,最小值(例如,最小位、最小区间等)用来估算最优阈值。下面参照图3A-图6B来详细描述步骤202和步骤204。

尽管图3A和其它附图中示出的布置阈值的下标编号(即,R1-R5)可以暗示读取的某一顺序或次序(例如,从左至右),但这仅仅是出于说明的目的。任何顺序或次序的读取将可以如本领域技术人员从本公开中理解的那样来执行。例如,如果需要,可以首先执行在阈值电压R2处的读取,其次可以执行在阈值电压R1处的读取。

图4是说明包括储存器控制器401和固态储存器450的系统400的实施例的示图。储存器控制器401可以执行最优阈值估算。在一些实施例中,在诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的半导体器件上实施储存器控制器401。在一些实施例中,储存器控制器401包括第一半导体器件(即,第一“芯片”),且固态储存器450包括第二半导体器件(即,第二“芯片”)。在一些实施例中,单个储存器控制器管理固态储存器的多个“芯片”。

系统400可以包括固态储存器450。在一个示例中,固态储存器450包括NAND闪存。在各个实施例中,固态储存器450包括其中单元储存1个位的SLC储存器、其中单元储存2个位的多电平单元(MLC)储存器或其中单元储存3个位的三电平单元(TLC)储存器。在一些实施例中,固态储存器450包括多种类型的储存器(例如,SLC储存器以及MLC储存器)。

在所示的示例中,储存器控制器401可以包括产生布置阈值的布置阈值发生器402。参见图3A中的示图300作为示例,布置阈值发生器402产生布置阈值R1-R5。在一些实施例,布置阈值发生器402包括用来产生布置阈值的一个或更多个可编程区间参数。在一个示例中,所述区间参数包括区间宽度(例如,Δ)、产生的区间数量(N)以及默认阈值(R(默认))。例如,如果Δ=10,N=5,以及R(默认)=78,则可以在53、63、73、83、93以及103处产生布置阈值。示例性的布置阈值对应于5个区间,每个区间具有10个单位宽度,其中,中心区间(即,[73,83])具有默认阈值78处的中心。

储存器控制器401可以包括储存器接口404。储存器接口404从布置阈值发生器402接收布置阈值,且使用布置阈值对固态储存器450执行读取。

储存器控制器401可以包括位翻转计算器406和最优阈值估算器408。储存器接口404可以将回读位序列传送至位翻转计算器406。图3B中的示图350示出回读位序列的一个示例。位翻转计算器406为每个区间计算位翻转计数,且将区间(例如,B1-B5)和相应的位翻转计数传送到最优阈值估算器408。最优阈值估算器408包括通过确定最小值(例如,最小位、最小区间等)来依次产生估算阈值。

在下文描述的第一示例中,选择和使用与具有最小位翻转计数的区间相对应的最小区间来产生估算最优阈值。在下文描述的第二示例中,将与位翻转计数相对应的数据点或基于位翻转计数的数据点拟合成曲线,且使用拟合曲线的最小值来估算最优阈值。

图5是用于使用最小区间来估算最优阈值的步骤的流程图。在步骤500,为多个区间中的每个区间确定位翻转计数。可以通过(1)在与给定区间的下界相对应的第一阈值处对固态储存单元组执行第一读取,以及(2)在与给定区间的上界相对应的第二阈值处对固态储存单元组执行第二读取,来确定位翻转计数。

在步骤502,使用与多个区间相对应的位翻转计数来确定最小值。可以通过确定与具有最小位翻转计数的区间相对应的最小区间来确定最小值。

参见图5,在步骤504,使用最小值来估算最优阈值。可以使用最小值来通过将最优阈值的估算设置为最小区间的中心来估算最优阈值。

将解释寻找最优A、B和C阈值的最小区间技术。

让Rk表示第k读取阈值。用于读取R1和R2的1计数差的函数被定义为:

1CD(R1,R2)=|#1R1-#1R2|

其中,#1R1是读取阈值R1处的读取输出中的1的数量,且#1R2是读取阈值R2处的读取输出中的1的数量。这里,使用1计数差来估算单元直方图上的斜率,然而本领域技术人员将会认识到,本发明不限于1计数差的这种定义。例如,还可以使用异或(XOR)运算来估算单元直方图上的斜率。步长大小Δ用来在不同的读取阈值处执行读取,使得例如,如果在读取阈值R1和R2处的两次读取以步长大小Δ来执行,则|R1-R2|=Δ。

在此技术中,为了简单起见,假设在读取MSB数据时,对A阈值和C阈值使用相同值的步长大小(Δ)。然而,可以通过分别为A阈值和C阈值选择不同的步长大小ΔA和ΔC来简单地对这种技术进行相应地修改。

第一步骤是寻找执行读取的方向。如图6中所示,可以以步长大小Δ来执行三次读取(R1、R2、R3)。R1和R2的1计数差被给定为A=1CD(R1,R2)。类似地,B=1CD(R2,R3)。将方向(D)设置为,

D=-1如果B<A且A-B>T1

D=1如果B>A且B-A>T1

D=0如果|A-B|≤T1

其中,T1是根据NAND数据而启发式选择的停止阈值。如果方向值为0(D=0),则该技术结束,且针对读取阈值的最优读取阈值(Xminbinopt)被给定为,

kmin=argmin k∈(2,3)(1CD(Rk,Rk-1))

下面描述用于估算最优读取阈值的一个实施例。如果D的值不等于0,则执行进一步的读取以寻找最优读取阈值。第k次的读取阈值被给定为,

Rk=Rk-1+D*Δ

其中,Rk-1是第(k-1)次的读取,D是执行读取的方向,且Δ是步长大小。在第n次读取(n>2)的最小区间(A(n)min)提供从R1至Rn读取的最小的1计数差值,且被给定为,

A(n)min=Min k∈(2,n)(1CD(Rk,Rk-1))

kmin=argmin k∈(2,n)(1CD(Rk,Rk-1))

如图7中所示,如果(Bn-A(n)min)>T2,其中Bn=1CD(Rn-1,Rn),则用于寻找最小区间的过程可以在第n次读取处停止。T2的值可以根据NAND数据来启发式地选择。在寻找最小区间之后,最优读取阈值被给定作为最小区间的中心,

该最小区间技术可以用来为所有的A阈值、B阈值和C阈值寻找最优读取阈值。

在图8中,将最小区间技术的性能与LSB和MSB数据二者的精灵性能相比较。LDPC解码器用于在描绘结果中解码。可以观察到,最小区间技术实现LSB硬判决解码、LSB软判决解码以及MSB硬判决解码的精灵性能,但是其不能实现MSB软判决解码的精灵性能。

在图9中,针对A阈值描绘出1计数差。可以清楚地观察到,使用最小区间的估算的A读取阈值与精灵最优读取阈值相差很远。最小值技术陷入局部最小值且针对A阈值给出含噪声的最优读取阈值估算。可以通过增加针对读取阈值布置的步长大小来减少这种读取输出中的噪声。在增加步长大小与最小区间技术之间存在折衷。如果使用更小值的步长大小,则其给出含噪声的1计数差且最小区间陷入局部最小值,然而,如果使用更大值的步长大小,则单元分布之间的谷将会淹没在1计数差中,且将会变得很难从该数据估算最优阈值。

可以在图10中观察到这种折衷效果。因此,应该为A DAC估算适当地选择步长大小的值。关于NAND数据,观察到,等于12的步长大小值给出最好的性能。我们称其为最优步长大小值且被表示为Δopt。Δopt的值可以在不同的NAND器件上改变。

在下面参照图11、图12和图13描述使用最小值技术预测和最优步长大小Δopt来寻找关于A读取阈值的准确估算最优的过程。

图11是说明用于估算最优阈值的过程的一个实施例的流程图。

在步骤1102,寻找与最优步长大小Δopt相对应的翻转差。让F(Rk)表示读取(Rkopt/2)和读取(Rkopt/2)处的翻转差。则F(Rk)被给定为,

F(Rk)=1CD(Rkopt/2,Rkopt/2)/Δopt

在步骤1104,分别估算在两个读取点Xminbinopt–LL和读取点Xminbinopt+LR处的斜率m1和斜率m2

m1=(F(Xminbinopt–LLm)-F(Xminbinopt–LL))/Δm

m2=(F(Xminbinopt+LRm)-F(Xminbinopt+LR))/Δm

其中,根据NAND来启发式地选择LL、LR和Δm的值。

在步骤1106,最优读取阈值估算(XLPopt)被给出作为在读取点(x1,y1)处具有斜率m1的线和在读取点(x2,y2)处具有斜率m2的线的交叉点最优。

XLPopt=(x2m2-x1m1+y1-y2)/(m2-m1)

其中,x1=Xminbinopt–LL,x2=Xminbinopt+LR,y1=F(x1)且y2=F(x2)见图12)。

在图12中,可以观察到,从该技术得出的最优读取阈值估算接近精灵读取阈值。

在图13中,将从上述公开的过程得出的性能与与精灵性能相比较。本文公开的过程解决含噪声的A读取阈值估算问题,并且提供明显的性能收益。

尽管以上已描述了各种实施例,但本领域技术人员将会理解,所描述的实施例仅仅是示例。因此,不应基于描述的实施例来限制本文所描述的数据储存器件及其操作方法。

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