自动学习对数似然比的制作方法

文档序号:17745020发布日期:2019-05-24 20:34阅读:453来源:国知局
自动学习对数似然比的制作方法

使用软信息的纠错法已被宽泛采用以获得客户端和企业固态驱动器(ssd)所需要的低水平的不可校正的误比特率(uber)。使用软信息的纠错法通常需要在实验室中测试样本闪存存储器器件以标识指示被测试设备的误比特率(ber)的对数似然比(llr)值。这些llr随后被存储在每个ssd中的表中,这些表由存储器控制器用来解码对nand闪存存储器芯片的读取。

表征nand闪存存储器芯片的过程是昂贵且耗时的。另外,nand闪存存储器芯片的特性在nand闪存存储器器件的寿命期间变化,从而使准确表征变得困难并且需要存储大量llr表。此外,存储llr表所需要的存储空间增加了ssd的开销。

因此,需要一种将允许使用不需要对示例性nand闪存存储器芯片的实验室测试的软信息来进行纠错、并且将提供准确地指示nand闪存存储器芯片的ber的llr值的方法和装置。

概述

公开了一种用于标识对数似然比(llr)值以及用于使用所标识的llr值来解码码字的方法。该方法包括:响应于接收到主机请求写入指令而将码字编程到非易失性存储器器件中,以及在默认阈值电压下、在小于默认阈值电压的一个或多个阈值电压偏移下、以及在大于默认阈值电压的一个或多个阈值电压偏移下执行对非易失性存储器器件的块中的经编程码字中的至少一个码字的后台读取。后台读取的结果被存储并且至少一个后台读取被解码以标识(诸)码字。使用所存储的读取结果和所标识的(诸)码字来标识llr值集合,并且执行后台读取、存储、解码和标识的过程被重复以标识针对非易失性存储器器件的每个块的llr值集合,并标识经更新llr值集合。执行主机请求读取并使用来自与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码主机请求读取。

一种非易失性存储器控制器,包括:耦合到多个非易失性存储器器件的写入电路,该写入电路被配置成:响应于接收到主机请求写入指令而将码字编程到每个非易失性存储器器件中。读取电路被配置成:在默认阈值电压下、在小于默认阈值电压的一个或多个阈值电压偏移下、以及在大于默认阈值电压的一个或多个阈值电压偏移下执行对非易失性存储器器件的块中的至少一个经编程码字的后台读取。解码器电路被配置成:解码至少一个后台读取以标识(诸)码字。llr电路被配置成:使用读取结果和所标识的(诸)码字来标识与默认阈值电压相对应的llr值集合。该非易失性存储器控制器继续执行后台读取、解码至少一个后台读取、以及标识llr值集合,以标识针对非易失性存储器器件的每个块的llr值集合,并在非易失性存储器系统的寿命期间标识经更新llr值集合。读取电路被配置成:执行对非易失性存储器器件的主机请求读取,并且解码器电路被配置成:使用与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

公开了一种非易失性存储器系统,包括:多个非易失性存储器器件、耦合到非易失性存储器器件的非易失性存储器控制器、写入电路、读取电路、以及对数似然比(llr)电路。该写入电路被配置成:响应于接收到包括用户数据的主机请求写入指令而对非易失性存储器器件进行编程以将用户数据存储在非易失性存储器器件中。该读取电路被配置成:在读取页面群的代表性页面所需要的每个阈值电压区域内的默认阈值电压下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要小的一个或多个阈值电压偏移下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要大的一个或多个阈值电压偏移下执行对代表性页面的后台读取。该解码器电路被配置成:解码来自对代表性页面的后台读取中的一些后台读取的结果以标识存储在代表性页面中的码字。该llr电路被配置成:使用读取结果和所标识的码字来标识与读取代表性页面所需要的每个阈值电压区域相对应的llr值集合。该读取电路被配置成:继续执行后台读取并解码来自一些后台读取的结果,并且该llr电路被配置成:继续标识llr值集合,以标识与读取每个页面群的代表性页面所需要的每个阈值电压区域相对应的llr值集合,并且被进一步配置成:继续执行后台读取并标识经更新的llr值集合。该读取电路被配置成:执行对非易失性存储器器件的主机请求读取,并且该解码器电路被配置成:使用来自与在主机请求读取中被读取的页面的页面群相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

本发明的方法和装置允许使用在非易失性存储器系统的操作期间获得的软信息来进行纠错,并且不需要对样本nand闪存存储器芯片的实验室测试以生成用于非易失性存储器器件的寿命期间的不同时间段的llr表。另外,通过对正在使用的实际nand器件执行llr计算、并通过在nand器件老化时执行后台测试,本发明的方法和装置提供准确地指示在非易失性存储器系统的整个寿命期间的误差概率的llr值。这降低了误比特率(ber)并延长了nand闪存存储器芯片的使用寿命。另外,减少了读取误差数目,从而得到减少的读取等待时间。

附图简述

所包括的附图用于提供对本发明的进一步理解,且并入到本说明书中并构成其一部分。附图解说了本发明的各实施例,并与说明书一起用于解释本发明的原理。

图1是解说了根据本发明的一实施例的非易失性存储器系统的框图。

图2是解说了根据本发明的一实施例的非易失性存储器控制器和非易失性存储器器件的示图并解说了该非易失性存储器控制器与该非易失性存储器器件之间的通信。

图3是解说了根据本发明的一实施例的存储器逻辑组织的框图。

图4是解说了根据本发明的一实施例的nand阵列的示图。

图5是解说了根据本发明的一实施例的用于计算llr并用于读取非易失性存储器器件以及解码读取结果的方法的流程图。

图6a是解说了根据本发明的一实施例的电压分布以及计算电压分布的四个区域的llr值的示图。

图6b是解说了根据本发明的一实施例的电压分布以及计算电压分布的六个区域的llr值的示图。

图7是解说了根据本发明的一实施例的计算电压分布的四个区域的llr的流程图。

图8是解说了根据本发明的一实施例的llr电路的各部分的示图。

图9a是解说了根据本发明的一实施例的tlcnand器件的电压分布和默认阈值电压的示图。

图9b是解说了根据本发明的一实施例的计算tlcnand器件的llr的示图。

图9c是解说了根据本发明的一实施例的计算tlcnand器件的llr的示图。

图10a是解说了根据本发明的一实施例的计算tlcnand器件的llr的示图,其中针对六个区域计算llr。

图10b是解说了根据本发明的一实施例的计算tlcnand器件的llr的示图,其中针对六个区域计算llr。

图10c是解说了根据本发明的一实施例的计算tlcnand器件的brp的示图。

图11是解说了根据本发明的一实施例的在关闭块处发生耐久性事件、保留定时器事件和读取干扰事件之际执行后台读取的方法的流程图。

图12是解说了根据本发明的一实施例的用于执行后台参考定位和计算llr、以及用于读取结果和解码读取结果的方法的流程图。

图13是解说了根据本发明的一实施例的用于执行后台参考定位和计算llr、以及用于读取结果和解码读取结果的方法的流程图,其中后台读取是在关闭块处发生耐久性事件、保留定时器事件和读取干扰事件之际执行的。

图14是解说了根据本发明的一实施例的用于后台参考定位的方法的流程图。

图15是解说了根据本发明的一实施例的随着水平轴上示出的时间的示例性耐久性事件、保留定时器事件和读取干扰事件的示图。

图16是解说了根据本发明的一实施例的示例性后台读取的示图。

图17是解说了根据本发明的一实施例的llr电路的各部分的示图。

详细描述

图1中示出了非易失性存储器系统1以包括非易失性存储器控制器11,该非易失性存储器控制器11耦合到用于存储数据的多个非易失性存储器器件20。在本实施例中,非易失性存储器器件20是nand器件,并且非易失性存储器系统1是包括一个或多个电路板的固态驱动器(ssd),主机连接器插座12、非易失性存储器控制器11和非易失性存储器器件20被附连到这些电路板上。非易失性存储器系统1还可包括附连到电路板和非易失性存储器控制器11的一个或多个易失性存储器器件13,诸如动态随机存取存储器(dram)。

非易失性存储器控制器11被配置成:通过图1的主机连接器插座12从主机计算机接收读取和写入指令,并对非易失性存储器器件20的存储器单元执行编程操作、擦除操作和读取操作以完成来自主机计算机的指令。例如,在经由主机连接器插座12从主机计算机接收到写入指令之际,存储器控制器11可操作用于通过对一个或多个非易失性存储器器件20执行编程操作(并且在需要时,执行擦除操作)来将数据存储在非易失性存储器系统1中,并且在接收到读取指令之际,非易失性存储器控制器11可操作用于通过对一个或多个非易失性存储器器件20执行主机请求读取操作来从非易失性存储器系统1读取数据。如本申请中使用的术语“主机请求读取”仅包括响应于从外部设备接收的(例如,在主机连接器插座12处接收的)指令而执行的那些读取,并且特别包括从主机计算机或其他外部计算设备接收的读取请求。主机请求读取不包括在后台参考定位操作期间执行的后台读取,或者依照诸如但不限于垃圾收集、损耗均衡和块回收的内务操作而执行的读取。

每个非易失性存储器器件20可以是经封装的半导体管芯或“芯片”,其通过耦合每个非易失性存储器器件20与非易失性存储器控制器11之间的指令、数据和其它信息的导电通路被耦合到非易失性存储器控制器11。在图2中所示的实施例中,每个非易失性存储器器件20包括寄存器24、微控制器25和存储器阵列26,并且每个非易失性存储器器件20通过芯片使能信号线(ce#)、命令锁存使能信号线(cle)、读取使能信号线(re#)、地址锁存使能信号线(ale)、写入使能信号线(we#)、读取/繁忙信号线(r/b)以及输入和输出信号线(dq)被耦合到非易失性存储器控制器11。在从主机计算机接收到写入指令之际,写入电路2可操作用于将接收到的数据编码成码字,该码字连同对应的程序指令一起被发送到寄存器24。微控制器25可操作用于执行所请求的nand写入指令并通过对存储器阵列26的单元进行编程来将码字存储在存储器阵列26中。响应于从主机计算机接收到读取指令,读取电路9可操作用于向nand20发送读取指令。微控制器25响应于该读取指令而读取存储器阵列26并在寄存器24处输出读取结果。读取结果被发送到解码器8,该解码器8可操作用于解码读取结果以获得所存储的码字。

现在参照图3,每个非易失性存储器器件20包括被组织成块22和页面23的nand存储器单元,其中每个块22由共享相同字线群的nand串构成。每个逻辑页面23由属于相同字线的单元构成。逻辑块22内的逻辑页面23的数目通常是16的倍数(例如,64、128)。在本实施例中,逻辑页面23是用于从nand存储器读取和向nand存储器写入的最小可寻址单元,并且逻辑块22是最小可擦除单元。然而,要领会,在本发明的各实施例中,取决于nand阵列的结构,对小于整个页面进行编程也许是可能的。

图4示出了由串联连接以形成nand串的nand存储器单元组成的示例性存储器阵列30。每个nand串通过选择晶体管(诸如举例而言,选择晶体管31和选择晶体管32)与阵列的其余部分隔离。多个存储器单元通过字线共享栅极电压(vg),并且一个存储器单元的漏极是毗邻存储器单元的源极。例如,图4的存储器单元34-39共享字线0(wl0)。存储器单元34-39可以是各自存储单比特信息的单级单元,或者存储每单元2比特、每单元3比特、或每单元4比特的nand器件。nand阵列的结构可以是平面的或3d。

在图1中所示的实施例中,非易失性存储器控制器11包括读取电路9,该读取电路9被配置成执行对非易失性存储器器件20的读取。标准读取指令(例如,readpage(读取页面)指令)(其在本文中也可被称为硬读取指令)在定义存储器单元的比特所需要的每个阈值电压区域内的默认阈值电压下执行对该存储器单元的读取。

阈值电压移位读取通过向nand器件20发送阈值电压移位读取指令来执行,该阈值电压移位读取指令包括要由nand器件20用于执行读取的一个或多个读取偏移值。读取偏移值(后文也可简称为“偏移值”或“偏移”)指示用于执行读取的阈值电压将与由nand器件20的制造商指定的对应默认阈值电压偏移的量。如本申请中使用的术语“默认阈值电压”是由非易失性存储器器件20的制造商确立的用于执行常规读取操作(诸如read指令或readpage指令)的阈值电压。通常这等同于在偏移0下进行的阈值电压移位读取的阈值电压。对于mlc或tlc非易失性存储器器件20,将有多个默认阈值电压。

在本实施例中,nand器件20能够执行宽泛范围的阈值电压移位读取,包括但不限于由诸如-2、-1、0、+1、+2之类的整数偏移值指定的读取。对于多级单元(mlc)nand器件和三级单元(tlc)nand器件,需要在一个以上阈值电压下的读取以标识特定比特的值。因此,针对mlcnand或tlcnand器件20的阈值电压移位读取指令将包括两个或更多个读取偏移值,针对标识正被读取的特定比特所需要的每个阈值电压区域有一个读取偏移值。响应于接收到包括所需要的读取偏移值的阈值电压移位读取指令,nand器件20可操作用于在与所指示的读取偏移值相对应的阈值电压下执行读取,以生成指示读取结果的输出。

nand20的已擦除块可被称为“空闲块”。当数据被编程到块中时,该块被称为“开放块(openblock)”,直至该块的所有页面已被编程。一旦块的所有页已被编程,该块被称为“关闭块”,直至它被擦除。

非易失性存储器控制器11包括写入电路2、存储器存储装置4、耦合到读取电路9的状态电路3、耦合到状态电路3和读取电路9的后台参考定位(brp)电路6、耦合到读取电路9的解码器电路8、以及对数似然比(llr)电路7。llr电路7耦合到brp电路6、读取电路9和存储器存储装置4,并且可操作用于计算由解码器电路8用来解码对非易失性存储器器件20的读取的llr。为清楚起见,未示出各种耦合。

状态电路3被配置成确定非易失性存储器器件20的使用特性。所确定的使用特性可被存储在非易失性存储器控制器11的存储器存储装置4中。替换地,所确定的使用特性可以被存储在一个或多个非易失性存储器器件20中或分开的易失性存储器器件13中。如本发明中使用的术语“使用特性”是在非易失性存储器器件的使用期间确定的值,该值指示非易失性存储器器件直至特定时间点的历史使用,其可以是但不限于非易失性存储器器件20的块或块群的编程和擦除循环数目或误比特率(ber)。

读取电路9被配置成:在默认阈值电压下、在小于默认阈值电压的一个或多个阈值电压偏移下、以及在大于默认阈值电压的一个或多个阈值电压偏移下执行对非易失性存储器器件的块中的至少一个经编程码字的后台读取。解码器电路8被配置成:解码至少一个后台读取以标识至少一个码字。llr电路7被配置成:使用读取结果和所标识的(诸)码字来标识与默认阈值电压相对应的llr值集合。读取电路9被配置成:执行对非易失性存储器器件的主机请求读取,并且解码器电路8被配置成:使用来自与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

图5解说了根据本发明的一实施例的方法100。响应于主机请求写入指令,码字被编程到非易失性存储器器件20中,如由步骤101-102所示。在图1所示的实施例中,在主机连接器插座12处从主机计算机接收包括用户数据的写入指令。响应于接收到写入指令,写入电路2可操作用于向非易失性存储器器件20发出编程指令以将包括用户数据和ecc比特的码字编程到非易失性存储器器件20中。在非易失性存储器器件20处接收到编程指令和码字之际,微控制器25可操作用于将码字存储在存储器阵列26中(例如,存储为逻辑页面)。

执行对码字的多个后台读取(109)。如本发明中使用的术语“后台读取”是以使得不干扰目前在非易失性存储器控制器11处待决的主机请求操作的方式来执行的任何读取,并且该术语特别包括以使得不延迟待决的主机请求读取的方式来执行的读取(例如,不影响等待时间的那些读取),并且该术语特别包括被指派有比向主机请求读取指派的优先级要小的优先级的读取(以使得向任何待决的主机请求读取给予优先级(例如,首先执行待决的主机请求读取)),并且特别包括在没有待决的主机请求读取时执行的读取。要领会,主机请求写入操作和主机请求擦除操作可以由非易失性存储器控制器11存储并在稍后时间执行而不会影响ssd1的等待时间。因此,在本发明的各实施例中,“后台读取”是以如下方式执行的读取:不延迟对主机请求读取的执行,而不考虑待决的主机请求写入操作或待决的主机请求擦除操作,除非待决的主机请求写入操作或待决的主机请求擦除操作的存储接近存储容量。

在本实施例中,一旦标识了供读取的码字,在步骤109,就在读取该码字所需要的每个阈值电压区域内执行多个后台读取,包括在默认阈值电压下的读取、在小于默认阈值电压的阈值电压偏移下的读取、以及在大于默认阈值电压的阈值电压偏移下的读取。后台读取的结果随后被存储。使用后台读取来标识经编程码字,如由步骤110所示。码字可通过解码步骤109的一个后台读取来标识。

现在参照图6a,单级单元(slc)非易失性存储器器件仅需要在单个阈值电压区域14(其在针对1的电压分布的中心与针对0的电压分布的中心延伸)中的读取来标识比特的值(该单元是存储1还是0)。非易失性存储器控制器11可通过向要被读取的非易失性存储器器件20发送读取命令(例如,readpage)连同要被读取的码字的地址来执行在默认阈值电压15下的读取。在一个实施例中,llr电路7可操作用于与读取电路9进行通信,该读取电路9生成并发送readpage(例如,00h-30h)指令、接收读取结果(其可以由变量r表示)并将读取结果存储在临时存储装置中(例如,存储器存储装置4中、易失性存储器13中或寄存器92中)。替换地,在默认阈值电压下的读取可通过使用具有指示读取重试和电压偏移0的子特征指示符(例如,p1)的阈值电压移位读取指令(例如,setfeatures(设置特征)或efh指令)来执行。读取结果随后被发送到解码器电路8,该解码器电路8可操作用于解码读取结果以获得初始存储的码字。经解码的码字(cw)随后被存储在临时存储装置中(例如,存储器存储装置4中、易失性存储器13中或寄存器90中)。

在图6a所示的实施例中,在小于默认阈值电压的阈值电压下的该一个或多个读取是在偏移-1(被示为默认阈值电压16)下执行的读取。读取可由读取电路9执行,该读取电路9生成并发送具有指示读取重试和电压偏移-1的子特征指示符(例如,p1)的阈值电压移位读取指令(例如,setfeatures或efh指令),接收读取结果r_n,并将读取结果存储在临时存储装置(例如,存储器存储装置4、易失性存储器13或寄存器91)中。

在图6a所示的实施例中,在大于默认阈值电压的阈值电压下的该一个或多个读取是在偏移+1(被示为默认阈值电压17)下执行的读取。读取可由读取电路9执行,该读取电路9生成并发送具有指示读取重试和电压偏移+1的子特征指示符(例如,p1)的阈值电压移位读取指令(例如,setfeatures或efh指令),接收读取结果r_p,并将读取结果存储在临时存储装置中(例如,存储器存储装置4中、易失性存储器13中或寄存器93中)。

使用所存储的读取结果和所标识的cw针对每个默认阈值电压标识(111)llr值集合。随后存储(112)所标识的llr值集合。在图6a所示的示例中,在读取15-17中所标识的误差被用于标识以默认阈值电压15为中心的每个区域a、b、c和d的llr。

图7示出了用于针对图6a中所示的slcnand分布执行步骤109-112的方法200。在步骤109,在默认阈值电压15下读取阈值电压区域14以获得读取结果r、在阈值电压16下读取阈值电压区域14以获得读取结果r_n,并且在阈值电压17下读取阈值电压区域14以获得读取结果r_p。对r进行解码(202)以获得所存储的码字cw。虽然对r进行解码以获得cw,但要领会,替换地可以对r_n或r_p进行解码以获得cw。cw、r_n、r和r_p被存储(203)。选择区域z(204),该区域z可以是例如图6a中所示的区域a、b、c和d中的一者,并执行针对所选择区域的逻辑运算(205)。在本实施例中,逻辑运算包括执行分子函数以获得分子比特值并执行分母函数以获得分母比特值。对分子比特值中1的数目进行计数(206)以获得分子值num,并对分母比特值中1的数目进行计数(207)以获得分母值den。将这两个数值相除(208)以标识结果x,并且结果x的对数被计算为该区域的llr。重复该过程(如由步骤211和线213所示),直至已针对每个区域计算了llr值。

以下是使用公式来计算区域a的llr(llr_a)的示例:

这可以使用逻辑函数来计算,其中~指示按位非(not),并且其中&指示按位与(and),并且其中分子比特值=(~(cw)&r_n)并且分母比特值=(cw&r_n)。所计算的分子比特值中具有值1的比特计数(如步骤206所示)给出了可由逻辑num=count(~(cw)&r_n)表示的数值。所计算的分母比特值中具有值1的比特计数(如步骤207所示)给出了可由逻辑den=count(cw&r_n)表示的数值。如由步骤208所示,步骤206的计数被除以步骤207的计数。计算步骤208的相除结果的对数,如由步骤209所示。

如由步骤210、211、213所示,将z递增并且重复该过程以使用下式来计算区域b的llrllr_b:

这可以使用逻辑函数来计算,其中分子n=count(~(cw)&r&~(r_n))并且分母den=count(cw&r&~(r_n))。

区域c的llrllr_c可使用下式来计算:

这可以使用逻辑函数来计算,其中分子num=count(~(cw)&~(r)&r_p)并且分母den=count(cw&~(r)&r_p)。

如由步骤210、211、213所示,将z递增,并且可使用下式来计算区域d的llrllr_d:

这可以使用逻辑函数num=count(~(cw)&~(r_p))和den=count(cw&~(r_p))来计算。在步骤211,z=3,从而指示已计算所有llr值,因此该过程结束(212)。

在图8中所解说的一个实施例中,存储器存储装置4包括用于存储cw、r、r_n和r_p的逻辑,被示为寄存器90-93。寄存器90-93耦合到llr逻辑94以用于执行步骤205的逻辑运算并耦合到一个或多个计数器95以用于对来自llr逻辑94所执行的llr逻辑运算的输出中1的数目进行计数。计数器95耦合到除法和对数逻辑96,该除法和对数逻辑96可操作用于执行步骤208-209以获得可被存储在图1的llr表10中的llr值97。

以下是对llr_a的示例性计算,其中在默认阈值电压15下的读取产生读取结果r、码字cw、r_n和r_p。

cw=00010101011111000

r=00110101111110000

r_n=00110101111110110

r_p=00110101100010000

在该示例中,分子比特值=(~(cw)&r_n)=00100000100000110并且分子比特值中1的计数num=4。分母比特值=(w&r_n)=00010101011111000并且分母比特值中1的计数den=8,从而给出llr_a=log(4/8)。

在本发明的各实施例中,在图5的步骤109中读取一个以上码字并将其用于在步骤110-111计算llr。在该实施例中,在步骤109读取每个页面群的若干示例性页面,并且标识和存储读取结果和多个码字cw。在针对每个码字的读取标识误差之后,这些误差被组合以计算llr值。在使用r_n、r、r_p来计算四个llr区域的上述示例中,针对每个区域计算分子比特值,并确定每个分子比特值中1的计数,并且对每个代表性页面的1的计数求和以获得分子误差和。类似地,针对每个区域计算分母比特值,并确定每个分母比特值中1的计数,并对每个代表性页面的1的计数求和以获得分母误差和。所得到的llr式将包括针对被读取的n个页面中的每个页面的分子值n和分母值den。由此,对于被读取的第一页面,将计算num1和den1,对于被读取的第二示例性页面,将计算num2和den2,并且该过程继续,直至所有n个页面已被读取,从而给出num1、num2…numn和den1、den2…denn。每个区域的llr将为llr=log10(num1+num2…+numn/den1+den2…+denn)。用于计算每个页面群的llr的示例性页面的数目越大,所得到的llr值的准确性就越高。然而,随着页面数目增加,执行步骤109-112所需要的时间增加。已发现,使用每个页面群三个示例性页面(n=3)给出良好结果。

在本发明的各实施例中,块被划分成逻辑页面,并且逻辑页面是能够被编程的最小数据量。在该实施例中,每个码字是逻辑页面或者其部分。因此,用于解码对页面的每个读取的llr值集合将是包括正被读取的页面的块的llr值集合。具体而言,步骤109将执行对每个块的一个或多个代表性页面的后台读取,并且步骤110-111将标识用于读取块的代表性页面所需要的每个默认阈值电压区域的llr值集合。

在ssd1包括128个非易失性存储器器件20、每个非易失性存储器器件20包括2048个块的一个示例性实施例中,块可以被指派块号0到262,143。在该实施例中,llr表10可包括块号以及与每个块号相对应的llr值集合,其中要用于解码的llr值通过用正被解码的页面的块号对llr表进行索引来确定。

执行后台读取109并存储结果、解码至少一个后台读取以标识码字110、以及标识llr值集合111的各步骤继续,以标识针对非易失性存储器器件的每个块的llr值集合。所标识的llr值集合可连同对应的块号一起被存储(112)在llr表10中。因此,在ssd1包括128个非易失性存储器器件20、每个非易失性存储器器件20包括2048个块的实施例中,表包括262,144个llr值集合以及对应的块号索引0到262,143。

步骤109-112的过程在ssd1的整个寿命期间继续,从而标识经更新llr值集合。在每个经更新llr值集合被标识时,它通过覆写任何先前存储的对应llr值集合来被存储在llr表10中。例如,当针对特定的块标识经更新llr值集合时,被存储在llr表10中先前确定的针对该块的llr值集合被该经更新llr值集合覆写。因此,llr表10将总是包括针对每个块的最新近确定的llr值集合。

在一个实施例中,仅对关闭块(当块为关闭时)执行步骤109-112。在另一实施例中,仅对关闭块并且仅在发生耐久性事件、保留定时器事件和读取干扰事件中的一个或多个事件时执行步骤109-112。由此,足够频繁地执行后台读取以保持针对每个块的准确的llr值集合,但不会如此频繁以不利地影响ssd1的等待时间。

在本发明的一实施例中,当ssd1被组装并且首次发起对ssd1的操作时,没有llr表被存储在ssd1中。在该实施例中,非易失性存储器控制器11可操作用于标识该非易失性存储器控制器11所耦合到的每个非易失性存储器器件20的特性,并且可操作用于以自动方式(在没有任何用户输入的情况下)确定每个非易失性存储器器件20上的块数目,并且可操作用于向每个块指派唯一性编号(块号)。在ssd1的组装之后、在ssd1的用户操作ssd1期间也以自动方式(在没有用户输入的情况下)执行步骤109-112的过程,以创建并更新单个llr表10。在该实施例中,llr表10中的值在ssd1的组装之后、在ssd1的首次初始化之后被计算,并且在ssd1的首次初始化(这可以在ssd1已被运送到ssd1的用户之后)之后整体上构造llr表10。

当没有主机请求读取待决时(103、123),非易失性存储器器件的正常操作继续,其中在后台执行步骤109-112以便不影响非易失性存储器系统1的等待时间。当接收到主机请求读取指令并且针对要被读取的块已计算了llr时,执行主机请求读取(105)。可在不同的偏移值下使用阈值电压移位读取指令来执行主机请求读取,以获得硬读取结果和软信息。如本申请中使用的术语“软信息”是指示在小于默认阈值电压的阈值电压下的一个或多个读取以及在大于默认阈值电压的阈值电压下的一个或多个读取的结果的信息。在本实施例中,步骤105由读取电路9执行。主机请求读取的结果使用来自与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码(106)。因此,当非易失性存储器器件是slc器件时,每个码字使用来自与用于执行主机请求读取的默认阈值电压相对应的llr值集合中的llr值来解码。在本实施例中,步骤106由解码器电路8执行,该解码器电路8将使用llr表10中最新近确定的llr值集合来执行解码(即,针对被读取的块计算的初始llr值集合,或者针对被读取的块的最新近更新的llr值集合)。

在ssd1的早期寿命期间,对于可能还未计算llr的码字可能需要读取(104、107)。在该情况下,使用常规读取指令(诸如readpage指令(硬读取))来执行读取并且使用默认的llr值集合来执行解码。由于这仅在ssd1的寿命早期期间才会需要,因此即使在使用不准确的llr值时,在默认阈值电压下的读取也不太可能导致读取误差。已发现,在该时段期间,只要不使用接近0的llr值,解码就成功。在一个实施例中,对于默认阈值电压左侧的llr区域,可以使用从-6到-15的任何负数来执行解码,并且对于默认阈值电压右侧的llr区域,可以使用从+6到+15的任何正数来执行解码。在使用2个llr区域的一个示例性实施例中,在步骤108,默认的llr值集合为llr_a=-6,llr_b=+6。

替换地,可以使用阈值电压移位读取来执行步骤107的读取以获得硬读取结果和软信息。在使用4个llr区域的实施例中,在步骤108,默认的llr值集合为llr_a=-6,llr_b=-6,llr_c=+6和llr_d=+6。在该实施例中,使用阈值电压移位读取指令来执行所有主机请求读取。由此,不需要专用逻辑来确定针对正被读取的页面的块是否已计算了llr。

因此,在非易失性存储器器件系统1包括128个slc非易失性存储器器件、并且每个非易失性存储器器件有2048个块的实施例中,系统1将包括262,144(128x2048)个llr值集合。在图6a的实施例中,每个llr值集合将包含四个llr值,从而需要对1,048,576(128x2048x4)llr值的存储(在块未被编群为块群的情况下,如后续将描述的)。

方法100在每个非易失性存储器器件20的寿命期间计算llr值集合,这些llr值集合特定于非易失性存储器器件本身,并且llr值集合在非易失性存储器器件20的整个寿命跨度期间持续更新。因此,准确的llr值集合总是可供用于解码。另外,由于llr值集合针对每个块计算并重复地更新、并被用于解码存储在该特定块中的码字,因此在非易失性存储器系统的整个寿命期间考虑了不同块的误差特性之间的变化,从而给出了比使用现有技术方法所获得的不可校正误比特率(uber)优越的uber。另外,通过在非易失性存储器器件20的操作期间、以及在非易失性存储器控制器11已被销售给客户并集成到非易失性存储器系统1中之后计算llr值,避免了在测试实验室中对类似于非易失性存储器器件20的测试芯片进行测试以生成针对非易失性存储器器件20的寿命的不同时段的llr表的需要,并且避免了将预先生成的针对ssd1的寿命的不同时段的llr表存储在非易失性存储器系统上的需要。尽管上述实施例仅针对四个区域计算了llr值,但应领会,可以针对更多区域计算llr值。在图6b所示的示例中,针对以每个默认阈值电压15为中心的六个区域(被示为区域a-f)计算了llr值。在该实施例中,使用在小于硬读取阈值电压的两个阈值电压(被示为阈值电压18、16,其可具有读取偏移值-2、-1)下的读取,以及在大于默认阈值电压的两个阈值电压(被示为阈值电压17、19,其可具有读取偏移值+1、+2)下的读取。因此,在非易失性存储器系统1包括128个slc非易失性存储器器件、并且每个非易失性存储器器件有2048个块的实施例中,每个llr值集合将包含六个llr值,从而需要对1,572,864(128x2048x6)llr值的存储(在块未被编群为块群的情况下,如后续将描述的)。

在使用阈值电压移位读取指令来执行所有主机请求读取105、107以获得软信息的一个替换实施例中,在ssd1的初始化之后,自动生成llr表10,其中所有llr值被设置为相同的默认llr值集合。在使用4个llr区域的实施例中,每个块的默认llr值集合为llr_a=-6,llr_b=-6,llr_c=+6和llr_d=+6。在使用6个llr区域的实施例中,每个块的默认llr值集合为llr_a=-6,llr_b=-6,llr_c=-6,llr_d=+6,llr_e=+6和llr_f=+6。这些初始llr值随后使用方法100在ssd1的寿命期间被更新。

多级单元(mlc)和三级单元(tlc)非易失性存储器器件20需要在一个以上阈值电压区域的读取以标识比特的值。当非易失性存储器器件20是mlc或tlc器件时,在步骤109,对块的代表性页面的后台读取在读取代表性页面所需要的每个阈值电压区域内的默认阈值电压下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要小的一个或多个阈值电压偏移下、以及在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要大的一个或多个阈值电压偏移下执行。在该实施例中,在步骤111,使用所存储的读取结果和所标识的(诸)码字来标识与读取代表性页面所需要的每个阈值电压区域相对应的llr值集合。继续步骤109-111的过程以标识与读取每个块的代表性页面所需要的每个阈值电压区域相对应的llr值集合(例如,以创建初始llr表10),并且在ssd1的整个寿命期间继续步骤109-112的过程以标识与读取代表性页面所需要的每个阈值电压区域相对应的经更新llr值集合。主机请求读取使用与在主机请求读取中被读取的块相对应的最新近更新的llr值集合来执行(105)。

在图9a所示的示例性实施例中,非易失性存储器器件20是tlcnand器件,该tlcnand器件需要在阈值电压区域1-7中的每个区域中的读取来标识所存储比特的值。用于读取阈值电压区域1-7的制造商指定的默认阈值电压被示为默认阈值电压41-47。图9b-9c解说了针对示例性tlcnand器件20执行方法100,其中下部页面比特通过在阈值电压区域1和5(默认阈值电压41和45)的读取来定义,上部页面比特通过在阈值电压区域3和7(默认阈值电压43和47)的读取来定义,并且中部页面比特通过在阈值电压区域2、4和6(默认阈值电压42、44和46)的读取来定义。

图9b-9c解说了对下部页面的后台读取,其中读取在小于默认阈值电压的一个阈值电压下、在默认阈值电压下、以及大于中心阈值电压的一个阈值电压下执行,以允许计算四个llr值(例如,针对区域a-d的llr值)。由于下部页面读取需要在阈值电压区域1和5中的读取,因此针对下部页面的每个阈值电压移位读取指令将包括两个阈值电压偏移,并且阈值电压移位读取指令可被表示为tvsr(vo1,vo5),其中“vo1”是用于读取区域1的阈值电压偏移,并且“vo5”是用于读取区域5的阈值电压偏移。

在本示例中,区域1的默认阈值电压和区域5的默认阈值电压是与阈值电压偏移0相对应的区域1和5的默认阈值电压。首先选择阈值电压区域5来计算llr值。在图9b中所示的示例中,在步骤109,执行三个后台读取:在区域1的偏移0和区域5的偏移-1(被示为阈值电压41、50)下的第一后台读取tvsr(0,-1)以获得读取结果r_5n,在区域1的偏移0和区域5的偏移0(被示为阈值电压41、45)下的第二后台读取tvsr(0,0)以获得读取结果r_5,以及在区域1的偏移0和区域5的偏移+1(被示为阈值电压41、51)下的第三后台读取tvsr(0,+1)以获得读取结果r_5p。当在非易失性存储器控制器11处接收到读取结果r_5n、r_5、r_5p中的每一者时,这些读取结果被存储在临时存储装置中。读取结果r_5n、r_5、r_5p中的一者被发送到解码器电路8来进行解码以获得码字cw。执行步骤110-112以获得阈值电压区域5的llr值集合,其可以用形式llr_5a、llr_5b、llr_5c、llr_5d来表示。

现在参照图9c,重复该过程以获得阈值电压区域1的llr,同时将阈值电压区域5的值保持在默认阈值电压。执行三个示例性页面读取:在区域1的偏移-1和区域5的偏移0(被示为阈值电压55、45)下的第一后台读取tvsr(-1,0)以获得读取结果r_1n,在区域1的偏移0和区域5的偏移0(被示为阈值电压41、45)下的第二后台读取tvsr(0,0)以获得读取结果r_1,以及在区域1的偏移+1和区域5的偏移0(被示为阈值电压56、45)下的第三后台读取tvsr(+1,0)以获得读取结果r_1p。当在非易失性存储器控制器11处接收到读取结果r_1n、r_1、r_1p中的每一者时,这些读取结果被存储在临时存储装置中。使用在计算区域5的llr值中获得的码字cw来执行步骤110-112以获得阈值电压区域1的llr值集合,其可用形式llr_1a、llr_1b、llr_1c、llr_1d来表示。

以下是可用于针对区域1计算tlcnand的下部页面的4区域llr值的示例性等式:

llr_1a=log[比特计数==(not(cw)andbrp_nand上耦合比特)中的1/比特计数==(cwandbrp_nand上耦合比特)中的1]

llr_1b=log[比特计数==(not(cw)andbrpandnot(brp_n)and上耦合比特)中的1/比特计数==(cwandbrpandnot(brp_n)and上耦合比特)中的1]

llr_1c=log[比特计数==(not(cw)andnot(brp)andbrp_pand上耦合比特)中的1/比特计数==(cwandnot(brp)andbrp_pand上耦合比特)中的1]

llr_1d=log[比特计数==(not(cw)andnot(brp_p)and上耦合比特)中的1/比特计数==(cwandnot(brp_p)and上耦合比特)中的1]

以下是可用于针对区域5计算tlcnand的下部页面的llr的示例性等式:

llr_5a=log[比特计数==(not(cw)andbrp_nandnot(上耦合比特))中的1/比特计数==(cwandbrp_nandnot(上耦合比特))中的1]

llr_5b=log[比特计数==(not(cw)andbrpandnot(brp_n)andnot(上耦合比特))中的1/比特计数==(cwandbrpandnot(brp_n)andnot(上耦合比特))中的1]

llr_5c=log[比特计数==(not(cw)andnot(brp)andbrp_pandnot(上耦合比特))中的1/比特计数==(cwandnot(brp)andbrp_pandnot(上耦合比特))中的1]

llr_5d=log[比特计数==(not(cw)andnot(brp_p)andnot(上耦合比特))中的1/比特计数==(cwandnot(brp_p)andnot(上耦合比特))中的1]

在上述示例中,针对每个块获得并更新单个llr值集合,并连同被用于计算llr值的示例性页面的块号一起存储。

虽然使用方法100来保持针对每个块的经更新llr值集合提供了与常规方法相比优越的uber,但已发现,块内的ber经常有变化,其中每个块的某些页面具有共同的ber特性。因此,在本发明的各实施例中,每个块的页面被划分成页面群,其中每个页面群内的页面具有类似的ber特性。

在一个实施例中,每个非易失性存储器器件20的每个块22被划分成包括具有类似误差特性的页面的页面群。llr表10可包括标识每个页面群的索引,其可以是例如从1到3,145,728(128x2048x12)的数值,该索引将同时标识页面群和块以及非易失性存储器器件20(这是由于ssd1的所有非易失性存储器器件20内的所有页面群将具有唯一性索引)。页面群索引连同读取页面群的页面所需要的每个电压区域的对应llr值一起被存储在llr表10中。当非易失性存储器器件20是slc器件时,步骤109包括:在默认阈值电压下、在小于默认阈值电压的一个或多个阈值电压偏移下、以及在大于默认阈值电压的一个或多个阈值电压偏移下执行对页面群的代表性页面的后台读取。在步骤110,标识(110)一个或多个码字,并且通过使用读取结果和在步骤110标识的(诸)码字来标识每个页面群的llr值集合来执行步骤111。在步骤106,主机请求读取的结果使用来自与被读取页面的页面群相对应的经更新llr值集合中的llr值来解码。在该实施例中,方法100可包括:生成llr表10并将所标识的llr值集合中的每一者连同标识对应页面群的索引一起存储(112)在llr表10中。每次在步骤111标识经更新llr值集合时,该经更新llr值集合通过覆写先前存储在llr表中的对应llr值集合来被存储在llr表10中。由此,步骤106的解码可包括使用与被读取页面的页面群相对应的索引值对llr表进行索引。

当非易失性存储器器件20是mlc或tlc器件时,页面群可通过将字线分成拓扑类型(上部页面、中部页面和下部页面)并根据其拓扑行为(即,误差特性与块内的物理位置的关系)分成各类别来标识。在本实施例中,拓扑行为通过将不同字线指派给不同类别来进行分类。类别可在研究拓扑位置与误差行为的关系的表征阶段期间在闪存实验室中确定。在一个解说性实施例中,字线被编群为以下类别:

第一:字线0到字线24。

第二:字线25到字线84。

第三:字线85到字线119。

第四:字线120到字线127。

可以看出,不同的字线群不一定包括相同数目的字线或相同数目的存储器单元。在本实施例中,字线群通过在实验室中分析nand器件的特性以标识具有类似误差行为的编群来确定。在本解说性实施例中,非易失性存储器器件20是tlcnand器件,其中每个存储器单元可以存储三个不同的信息比特。由于tlcnand器件中存在三种页面类型,这给出了以下页面群:

页面群1:字线0-24的上部页面。

页面群2:字线0-24的中部页面。

页面群3:字线0-24的下部页面。

页面群4:字线25-84的上部页面。

页面群5:字线25-84的中部页面。

页面群6:字线25-84的下部页面。

页面群7:字线85-119的上部页面。

页面群8:字线85-119的中部页面。

页面群9:字线85-119的下部页面。

页面群10:字线120-127的上部页面。

页面群11:字线120-127的中部页面。

页面群12:字线120-127的下部页面。

因此,在非易失性存储器器件系统1包括128个非易失性存储器器件、并且每个非易失性存储器器件有2048个块的实施例中,系统1将包括3,145,728(128x2048x12)页面群(在块未被编群为块群的情况下,如后续将描述的)。

当非易失性存储器器件20是mlc或tlc器件时,在步骤109,对页面群的代表性页面的后台读取在读取代表性页面所需要的每个阈值电压区域内的默认阈值电压下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要小的一个或多个阈值电压偏移下、以及在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要大的一个或多个阈值电压偏移下执行。在该实施例中,在步骤111,使用所存储的读取结果和所标识的(诸)码字来标识与读取代表性页面所需要的每个阈值电压区域相对应的llr值集合。重复步骤109-112的过程以标识与读取每个页面群的代表性页面所需要的每个阈值电压区域相对应的llr值集合(例如,以创建完整的初始llr表10),并且在ssd1的整个寿命期间继续步骤109-112的过程以标识与读取代表性页面所需要的每个阈值电压区域相对应的经更新llr值集合。主机请求读取使用与在主机请求读取中被读取的页面的页面群相对应的最新近更新的llr值集合来执行(105)。

在一个实施例中,对于mlc和tlc非易失性存储器器件,针对读取页面群的页面所需要的每个电压区域的llr值被级联并存储在llr表中,以使得每个经级联的llr值集合与单个页面群索引相关联。在步骤106,使用来自与正被读取的页面的页面群相对应的llr值集合中的llr值来解码每个码字。例如,如果第二块的第一页面群内的页面正被读取和解码(这需要阈值电压区域1和5中的读取)(下部页面),则标识该块的第一页面群的索引并用于对llr表进行索引(例如,索引2049)以获得llr值集合llr_1a、llr_1b、llr_1c、llr_1d、llr_5a、llr_5b、llr_5c、llr_5d。

在上述示例中,针对每个阈值电压区域计算4个llr区域。当使用6个电压区域来计算llr时,如图10a-10b中所示,需要以下附加读取:tvsr(0,-2)(被示为参考电压41、49),tvsr(0,+2)(被示为参考电压41、52),tvsr(-2,0)(被示为参考电压54、45)以及tvsr(+2,0)(被示为参考电压57、45)。llr表将包括针对读取页面群的各页面所需要的每个阈值电压区域的六个llr值,这些llr值被级联并与对应的页面群索引相关联。对于仅包括下部页面的页面群,图10a-10b中所示的示例性实施例的llr表将包括区域1的llr值集合(llr_1a、llr_1b、llr_1c、llr_1d、llr_1e、llr_1f)和区域5的llr值集合(llr_5a、llr_5b、llr_5c、llr_5d、llr_5e、llr_5f)。

在一个替换实施例中,除了对页面编群之外,块也可被编群以减少需要管理的页面群数目。例如,每个非易失性存储器器件的块可被划分成可与非易失性存储器系统1的通道相对应的32个块群,从而将每个非易失性存储器器件20的页面群数目减少到768并将非易失性存储器系统1中的页面群数目减少到98,304。在图11中,解说了方法300,该方法300包括标识每个块的页面群(301)。非易失性存储器控制器11可通过查询非易失性存储器器件20以确定非易失性存储器器件20的类型,并基于非易失性存储器器件20的页面的误差特性来指派页面群,来标识页面群。对编程和擦除循环数目进行计数(302)。在本实施例中,状态电路3可操作用于对每个非易失性存储器器件20的每个块的编程和擦除(p/e)循环数目进行计数。每个非易失性存储器器件20的每个块的读取次数被计数(306)。在图1中所示的实施例中,状态电路3可操作用于确定每个块的读取次数(blockreadcount(块读取计数))并将每个块的读取次数存储在存储器存储装置4中。在本实施例中,当块为开放时(305,306)以及当块为关闭(318,306)时,每次每个块的页面被读取时,该块的读取次数被递增,并且块读取计数器直到块被擦除才被重置(320)。

当块为开放时,确定该块开放的时间,并且如果块开放的时间超过预定阈值(例如,1小时),则关闭该开放块,以确保块不会保持开放太久。可以通过用虚设数据来编程开放块的所有未编程页面来将块关闭。此外,在本发明的各实施例中,如果块读取计数超过预定的开放块读取计数阈值(例如,150,000次读取),则块被发送以供回收并被复制和擦除以防止开放块中的读取误差。

当块被关闭时(313),块保留定时器开始(314)。在图1中所示的实施例中,状态电路3包括块保留定时器,该定时器在每个非易失性存储器器件20的每个块22被关闭时开始定时。每个块22的块保留时间指示每个关闭块已经保持关闭的时间,并且不会停止或被重置,直至块变得空闲320(诸如当块被擦除时)。

在关闭块处发生耐久性事件315、保留定时器事件316和读取干扰事件317中的一个或多个事件之际,执行llr操作,如由步骤309-312所示。在图1中所示的实施例中,llr电路7被配置成:通过确定块p/e计数是否超过耐久性阈值来在步骤315确定耐久性事件何时发生,并且被配置成:通过确定块保留时间是否超过保留时间阈值来确定保留定时器事件316是否已发生。当块读取计数超过块读取阈值时,读取干扰事件被确定为已发生317。在一个实施例中,耐久性阈值、保留时间阈值和块读取阈值是用户可编程的,以使得它们可被改变以容适不同类型的nand器件20的特性。

一旦页面被标识成要被读取,对于mlc和tlc非易失性存储器器件20,由读取电路6在一个或多个默认阈值电压下、在小于每个默认阈值电压的一个或多个阈值电压偏移下、以及在大于每个默认阈值电压的一个或多个阈值电压偏移下执行对关闭块的每个页面群的代表性页面的后台读取。代表性页面中的码字被标识(310),解码器电路8被配置成:解码对每个页面群的代表性页面的读取中的一个读取以标识每个页面群中的至少一个码字,并且llr电路7被配置成:使用读取结果和每个页面群中标识的(诸)码字来标识针对每个页面群的至少一个经更新llr值集合(311),并且存储经计算的llr值集合(312)。

只要块为关闭,就继续在耐久性、保留定时器和读取干扰事件时执行后台llr操作309-312,如由线323所示,从而计算每个页面群的初始llr值集合,并继续执行步骤309-312以在ssd1的寿命期间标识经更新llr值集合。当块变得空闲时(320)(诸如当块被擦除时),不再执行后台llr操作309-312(如由线322所示),直至块再次被关闭(313)。主机请求读取318由读取电路9执行,并且解码器电路8使用来自与在主机请求读取中被读取页面的页面群相对应的经更新llr值的经更新集合中的llr值来解码(308)每个主机请求读取的结果。

在本实施例中,针对读取页面群的页面所需要的每个阈值电压区域计算单个llr值集合,并且该单个llr值集合通过在经更新的llr值被计算时覆写先前针对该特定页面群存储的llr值来在ssd1的寿命期间进行更新。这可以是在ssd1的寿命期间被重复更新的单个llr表10。例如,方法100的单个llr表10对于ssd1的每个块可包括块索引和单个经级联的llr值集合,该经级联的llr值集合包括解码对应块的页面所需要的所有llr值集合。方法300的单个llr表10对于ssd1的每个页面群包括页面群索引和单个经级联的llr值集合,该经级联的llr值集合包括解码对应页面群的页面所需要的所有llr值集合。对于使用块群和页面群的实施例,单个llr表10对于单个页面群将包括页面群索引和单个经级联的llr值集合,该经级联的llr值集合包括解码对应页面群的页面所需要的所有llr值集合。本发明的方法和装置不像现有技术系统中所要求的那样存储用于非易失性存储器器件的寿命中的不同时刻的llr值集合。因此,本发明的方法和装置需要比现有技术ssd(其存储用于ssd的寿命中的不同时刻的多个llr值集合)少的存储空间。

在使用阈值电压移位读取指令来执行所有主机请求读取(步骤105、107、307)以获得软信息(或提供软信息的任何其它类型的读取指令)的一个替换实施例中,在ssd1的组装之后、以及在非易失性存储器控制器11的初始化之际,通过查询非易失性存储器器件20以标识非易失性存储器器件20的特性来(在没有用户输入的情况下)自动生成llr表,以在该llr表中生成并存储用于每个页面群的唯一性页面群索引以及用于该页面群的默认llr值集合。在使用4个llr区域的实施例中,每个页面群的默认llr值集合为llr_a=-6,llr_b=-6,llr_c=+6和llr_d=+6,其中在初始生成表时所有页面群包括相同的默认值集合。在使用6个llr区域的实施例中,每个页面群的默认llr值集合为llr_a=-6,llr_b=-6,llr_c=-6,llr_d=+6,llr_e=+6和llr_f=+6。在该实施例中,在生成新的llr值时,默认llr值集合被经更新llr值替代。

在本实施例中,步骤105、107和307的主机请求读取是使用阈值电压移位读取指令来执行的。然而,要领会,一些非易失性存储器器件20可以能够使用其他类型的指令来执行软读取。在这些实施例中,针对ssd1的特性类型的非易失性存储器器件20的软读取指令可以被用于生成读取输出以及要在解码过程中使用的软信息。

图12-16解说了执行后台读取并且将其用于计算llr以及用于标识要用于执行主机请求读取的最佳阈值电压的各实施例。现在参照图12,在与执行后台读取所需要的每个默认阈值电压的多个不同偏移下执行(411)对码字的后台读取,并且存储(412)读取结果。码字被标识(413)并且在图1中所示的实施例中,brp电路6被配置成:使用后台读取的结果来针对每个默认阈值电压标识产生最小误差总数的偏移。这可包括:通过藉由ecc对步骤411的每个读取的结果进行解码来标识每个后台读取中的误差。在一个实施例中,brp电路6可操作用于接收步骤411的每个读取的结果,存储读取结果,并且可操作用于将读取结果耦合到解码器电路8。解码器电路8随后可操作用于解码来自步骤411的每个读取的结果以获得码字以及读取中的误差数。步骤413中标识的码字随后连同在不同偏移下的读取结果一起被存储在临时存储装置中(例如,存储器存储装置4或dram13中或者寄存器90中)。

使用每个读取中标识的误差来针对每个非易失性存储器器件20的每个块(或每个页面群)标识(414)至少一个经更新偏移集合。这可通过将在与阈值电压的偏移下的每个读取的误差相加以获得误差和,并针对每个阈值电压确定具有最小数目误差的误差和来完成。每个经更新偏移集合中的经更新偏移值随后被标识为等于具有最小数目误差的误差和的偏移值。由于经更新的偏移值是采用可以被称为“参考定位过程”的过程、使用后台读取来标识的,因此经更新的偏移值在后文也可被称为“后台参考定位偏移值”或“brp偏移值”,并且经更新偏移集合在后文可被称为“后台参考定位偏移集合”或“brp偏移集合”。在本实施例中,步骤414由brp电路6执行。

使用所存储的来自步骤412的读取结果和在步骤413标识的码字来针对每个非易失性存储器器件20的每个块(或页面群)的brp偏移集合中的每个brp偏移值标识(416)llr值集合。在本实施例中,步骤416由图1中所示的llr电路7使用图1-11中所讨论的各方法来执行。然而,llr分布并非以默认阈值电压为中心,而是llr分布以brp偏移值(这将是用于执行步骤405和407的读取的阈值电压)为中心。在图17所示的示例性实施例中,示出了llr电路7,其中并非用在默认阈值电压下的读取结果来加载寄存器92,而是用在brp偏移值下的读取结果来加载。类似地,用在小于brp偏移值的偏移值(brp_n)下的读取(其可以是在brp偏移值-1下的读取)的结果来加载寄存器91,并且用在大于brp偏移值的偏移值(brp_p)下的读取(其可以是在brp偏移值+1下的读取)的结果来加载寄存器93。这产生了具有以产生最小误差总数的偏移为中心的分布的llr值集合。

当没有主机请求读取待决时(如由步骤403所示),非易失性存储器器件的正常操作继续,其中在后台执行步骤411-416以便不影响非易失性存储器系统1的等待时间。当接收到主机请求读取指令并且针对要被读取的块(或页面群)已计算了llr时,在与正被读取的码字的块(或页面群)相对应的产生最小误差总数的所标识偏移下使用阈值电压移位读取指令来执行主机请求读取。可在与正被读取的块(或页面群)相对应的brp偏移集合中的每个brp偏移值相等的偏移值下、以及在以brp偏移值为中心的软信息偏移值下(例如,在brp偏移-1下、在brp偏移0下、以及在brp偏移+1下的读取),使用阈值电压移位读取指令来执行主机请求读取。在本实施例中,步骤405由读取电路9执行。

使用来自步骤416中所计算的llr值集合中的llr值来解码(406)码字。由此,使用来自与用于执行主机请求读取的brp偏移相对应的llr值集合中的llr值来解码每个码字。在本实施例中,步骤406由解码器电路8执行。在ssd1的早期寿命期间,可能需要针对可能还未计算llr的码字的读取(404、407)。在该情况下,使用常规读取指令(诸如readpage指令(硬读取))来执行读取并且使用默认的llr值集合来执行解码。替换地,使用以brp偏移值为中心的阈值电压移位读取指令来执行读取以获得在brp偏移值下的读取结果和软信息。由于这仅在ssd1的寿命早期期间才会需要,因此即使在使用不准确的llr值时,在默认阈值电压下的读取也不太可能导致读取误差。已发现,在该时段期间,只要不使用接近0的llr值,解码就成功。在一个实施例中,对于brp左侧的llr区域,可以使用从-6到-15的任何负数来执行解码,并且对于brp右侧的llr区域,可以使用从+6到+15的任何正数来执行解码。在一个示例性实施例中,在步骤408,默认的llr值集合为llr_a=-6,llr_b=-6,llr_c=+6和llr_d=+6。

在使用页面群的实施例中,brp电路6在与读取码字所需要的阈值电压的偏移下执行对该码字的后台读取以标识产生最小误差总数的偏移,并且被配置成:将brp偏移值设置成等于产生最小误差总数的对应偏移,以在非易失性存储器器件20是slc器件时标识针对每个页面群的单个brp偏移以及针对每个页面群的单个llr值集合。当非易失性存储器器件20是mlc或tlc非易失性存储器器件时,在步骤414针对每个页面群将存在一个以上brp偏移,并且步骤416将标识一个以上对应的llr值集合,这些llr值可被级联并存储为经组合的llr值集合。因此,每个经组合的llr值集合将包括解码mlc或tlc码字所需要的所有llr值。在图1中所示的实施例中,llr电路7被配置成:使用在brp偏移值下执行的后台读取中标识的误差、在小于对应brp偏移值的偏移下执行的后台读取中标识的误差、以及使用在大于对应brp偏移值的偏移下执行的后台读取中标识的误差来标识与每个brp偏移值相对应的llr值集合。

当没有主机请求读取待决时,非易失性存储器器件的正常操作继续,其中在后台执行步骤411-417以便不影响非易失性存储器系统1的等待时间。当在主机连接器插座12处接收到一个或多个主机请求读取指令时,在与正被读取的块(或页面群)相对应的brp偏移集合中的(诸)brp偏移值相等的偏移值下使用阈值电压移位读取指令来执行对存储在非易失性存储器器件20中的码字的主机请求读取。在一个实施例中,brp电路6被配置成:在存储器存储装置4中将产生最小误差总数的每个所标识偏移存储为brp表中的brp偏移值,该brp表包括每个所标识的brp偏移值和对应的索引值(例如,块号或页面群号),并且读取电路9被配置成:通过使用与正被读取的页面的块(或页面群)相对应的索引值对brp表进行索引来标识要在主机请求读取中使用的brp偏移值。在一个实施例中,步骤411-417被重复以存储非易失性存储器器件20的每个块(或页面群)的brp偏移值,并且被进一步重复以标识经更新的brp偏移值。每次经更新的brp偏移值被标识时,该经更新的brp偏移值可通过覆写对应块(或页面群)的任何先前保存的brp偏移值来存储在brp表中。当非易失性存储器器件是mlc或slc器件时,步骤411-417被重复以存储针对非易失性存储器器件20的每个块(或页面群)的一个以上brp偏移值(存储为brp偏移集合),并且被进一步重复以标识经更新的偏移值。

使用来自步骤416中所计算的llr值集合中的llr值来解码(406)码字。可使用来自与正被读取的页面的块相对应的llr值集合中的llr值来解码每个码字。在一个实施例中,llr电路7被配置成:在存储器存储装置4中存储单个llr表10,该llr表10包括所标识的llr值集合中的每一者以及对应的索引值,并且解码器电路6被配置成:通过用与正被读取的页面的块(或页面群)相对应的索引值对llr表进行索引来标识要在主机请求读取中使用的llr值。

在本发明的各实施例中,方法400的步骤411-417仅对关闭的块、当特定的块为关闭时执行,以在ssd1的寿命期间增量式地更新brp偏移值和llr值。可在特定事件发生之际(诸如在某个时间段或编程和擦除循环数目发生之际)执行步骤411-417。在一个实施例中,仅在关闭块处发生耐久性事件、保留定时器事件和读取干扰事件中的一个或多个事件之际执行步骤411-417并且仅在块关闭的时间段期间对关闭块执行。由此,brp偏移值和llr值足够频繁地被更新以保持准确的brp偏移值集合和准确的llr值集合,但不会如此频繁以不利地影响ssd1的等待时间。在图13所解说的一个实施例中,解说了与brp计算514和llr计算516相结合地使用页面群的方法500。在该实施例中,以与方法300中所讨论的相同方式来执行步骤301-306、313-320。在一个实施例中,brp电路6被配置成:确定耐久性事件315、保留定时器事件316或读取干扰事件517何时发生。

当从主机接收到读取请求时(305,308),使用阈值电压移位读取指令并使用与正被读取的页面的页面群相对应的经更新读取偏移值集合来执行(507)主机请求读取。使用与阈值电压区域和正被读取的页面的页面群相对应的llr值来解码(508)读取。当针对正被读取的页面的页面群还未计算llr时,可以与如方法400中所讨论的相同方式来使用默认的llr值集合。

在读取关闭块的代表性页面所需要的每个阈值电压区域内的偏移下执行(511)对该关闭块的每个页面群的代表性页面的后台读取。对代表性页面的后台读取中的误差被标识并且brp偏移值被标识(514)以标识针对关闭块的每个页面群的经更新brp偏移值集合。在slc情形中,由于每个经更新brp偏移值集合将包括单个brp偏移值,因此在步骤516标识单个llr值集合。只要块为关闭,就继续在耐久性、保留定时器和读取干扰事件时执行步骤511-517(如由线323所示),从而增量式地标识brp偏移值和llr值集合,直至已针对所有页面群标识了brp偏移值和llr值,并且在ssd1的操作寿命期间继续步骤511-517以标识经更新brp偏移值和经更新llr值集合。当块变得空闲时(319,323)(诸如当块被擦除时),不再执行步骤511-517(如由线322所示),直至块再次被关闭(313)。

图14解说了根据本发明的一实施例的示例性后台参考定位操作600。确定要在每个后台读取步骤中使用的代表性页面的数目(601)。测试的页面数目越大,准确性就越高。然而,更多的页面意味着每个后台参考定位操作花费更多时间。由此,确定代表性页面的数目是准确性与时间之间的折衷。在本实施例中,从每个页面群中选择五个代表性页面。

与读取代表性页面所需要的阈值电压的偏移被设置(602)为在先前后台参考定位操作中确定的偏移。如果还未执行先前后台参考定位操作,则所有阈值电压偏移被设置为零。随后标识读取代表性页面所需要的阈值电压中的一者以进行更新(603)。在一个实施例中,要被更新的页面是通过以预定次序更新页面来选择的,其中要被更新的页面是预定次序中的下一页面(例如,开始于具有最低页面号的代表性页面、并在随后的步骤603更新下一最低页面号)。在与所标识阈值电压的偏移下使用阈值电压移位读取指令来执行(604)对代表性页面的后台读取。在一个实施例中,brp电路6可操作用于执行步骤601-603并且可操作用于通过向读取电路9发送后台读取指令来执行步骤604,该读取电路9可操作用于向被读取的nand器件20发送阈值电压移位读取指令。

步骤604的读取中的误差被标识(605)。对每个页面中的误差总数进行计数(606)以获得指示页面中的误差总数的误差和。在图1中所示的实施例中,在读取电路9处接收每个读取操作的结果并将其发送到解码器8,该解码器8可操作用于解码读取结果以标识所存储的码字。通过在brp电路6处执行一个或多个逻辑运算来将所标识的码字与读取结果进行比较以标识每个读取中的误差总数。

针对所有代表性页面重复该过程(608、616)并改变偏移值(607),并且过程继续(609、617),直至已在针对步骤603标识的阈值电压的所有偏移值下已读取了所有代表性页面(其中其他阈值电压偏移保持在步骤602所确定的值,直至在步骤603被选定)。在所有偏移值下读取了所有代表性页面之后,确定(610)产生最小误差数目的阈值电压偏移。在一个实施例中,步骤610包括:通过对在偏移电压下的每次读取的误差求和(606)来确定误差和,并标识与被确定为具有最小数目误差的误差和相对应的阈值电压偏移。将经更新的阈值电压偏移存储(611)为针对所标识阈值电压的经更新brp偏移值。在已针对选择的阈值电压更新了brp偏移值之后,在后台参考定位操作600的后续读取604中在不同的所标识阈值电压(603)下、并使用在步骤611存储的经更新brp偏移(而不是来自步骤602的对应阈值电压偏移)来重复该过程(618),直至所有阈值电压已被更新(612)并且该过程结束(613)。在本实施例中,brp电路6可操作用于执行步骤607-612。

在本发明的各实施例中,brp电路6和/或llr电路7可操作用于通过将读取指令发送到读取电路9来执行步骤109、201、511和604的后台读取,该读取电路9在接收到后台读取指令之际可操作用于通过向后台读取指令指派比向响应于来自主机计算设备的读取请求而生成的读取指令指派的优先级要低的优先级来执行后台读取。在另一实施例中,读取电路9可操作用于向读取指令指派包括高优先级值、中优先级值和低优先级值的优先级值,并且可操作用于向响应于来自主机计算设备的读取请求而生成的读取指令指派高优先级,并进一步可操作用于通过向读取指令中的特定读取指令指派中优先级值或低优先级值来在步骤511执行的后台读取指令与用于内务操作的读取指令之间排定优先级。在图10a、10b所示的示例性实施例中,其中在步骤604读取tlc非易失性存储器器件20,在读取偏移值-2、-1、0、+1和+2下执行阈值电压移位读取。替换地,可在每个步骤604执行更多阈值电压读取。

在本示例中,在步骤604被读取的页面群(其被标识为示例性页面群501)是仅包括下部页面的下部页面页面群。因此,在后台读取604中读取每个页面所需要的阈值电压集合将是区域1和5中的下部页面阈值电压。因此,针对下部页面的每个阈值电压移位读取指令将包括两个阈值电压偏移,并且阈值电压移位读取指令可被表示为brp读取(vo1,vo5),其中“vo1”是用于读取区域1的阈值电压偏移,并且“vo5”是用于读取区域5的阈值电压偏移。

在本示例中,基于在先前后台参考定位操作600中计算的经更新阈值电压偏移,区域1的阈值电压偏移和区域5的阈值电压偏移两者在步骤602都被设置为0。在步骤603首先选择区域5的阈值电压45以进行更新。在图10a所示的示例中,在步骤404,在区域1的偏移0和区域5的偏移-2(被示为参考电压41、49)下执行第一后台读取(brp读取(0,-2))以获得第一码字,该第一码字被解码以确定对页面的读取中的误差数目(605),并且对读取中的误差数求和(606)以获得电压偏移误差和sv5-1。执行对第二页面的后台读取brp读取(0,-2)(604)以定义第二码字,该第二码字被解码以确定对页面的读取中的误差数目(如步骤605所示),并且该数目的误差被求和(606)以获得包括来自第一和第二代表性页面的读取的误差的电压偏移误差和sv5-1。执行对第三页面的后台读取brp读取(0,-2)(604)以定义第三码字,该第三码字被解码以确定对页面的读取中的误差数目(如步骤605所示),并且该数目的误差被求和(606)以获得包括来自第一、第二和第三代表性页面的读取的误差的电压偏移误差和sv5-1。执行对第四页面的后台读取brp读取(0,-2)以定义第四码字,该第四码字被解码以确定对页面的读取中的误差数目(如步骤605所示),并且该数目的误差被求和(606)以获得包括来自第一、第二、第三和第四代表性页面的读取的误差的电压偏移误差和sv5-1。执行对第五页面的后台读取brp读取(0,-2)以定义第五码字,该第五码字被解码以确定对页面的读取中的误差数目(如步骤605所示),并且该数目的误差被求和(606)以获得最终电压偏移误差和sv5-1,该最终电压偏移误差和sv5-1是第一码字、第二码字、第三码字、第四码字和第五码字中的所有误差的和。一旦所有页面已被读取(608、616),就通过将先前后台读取604中使用的电压偏移值加一来改变电压偏移(607),并使用先前步骤607的电压偏移来重复步骤603-606,直至在所有偏移下(609、617)读取了所有页面(608、616)。在图10a所示的示例性实施例中,针对电压区域5的所有其他偏移来重复步骤604-607,同时将第一电压区域中的偏移保持在0。更具体而言,在brp读取(0,-1)(被示为阈值电压41、50)下读取(604)五个示例性页面以计算(606)第二电压偏移误差和sv5-2。在下一迭代,区域5的偏移被改变为0,并且在brp读取(0,0)(被示为阈值电压41、45)下读取(604)五个示例性页面以计算(606)第三电压偏移误差和sv5-3。在下一迭代,区域5的偏移在步骤607被改变为+1,并且在brp读取(0,+1)(被示为阈值电压41、51)下读取五个示例性页面以计算(606)第四电压偏移误差和sv5-4。在下一迭代,区域5的偏移在步骤607被改变为+2,并且在brp读取(0,+2)(被示为阈值电压41、52)下读取五个示例性页面以计算(606)第五电压偏移误差和sv5-5。在步骤610,确定具有最小误差数(这将是误差和sv5-1、sv5-2、sv5-3、sv5-4和sv5-5中的最小值)的阈值电压偏移。在本示例中,第二电压偏移误差和sv5-2被确定为具有与读取偏移值-1相对应的最小误差数,该偏移值被存储(611)(例如,(vbrp5=-1))为页面群的经更新读取偏移值中的第一偏移值。在一个实施例中,经更新读取偏移值通过覆写在步骤602设置的对应读取偏移值来存储。

接着标识区域1的阈值电压41以进行更新(603),并在区域1中的不同偏移下执行读取,直至已在所有偏移下读取了要被读取的所有五个页面(如由线616-617所示),同时将所有其他区域的阈值电压偏置保持在来自步骤611的经更新阈值偏移,或者如果特定的阈值电压还未被选择以进行更新(603),则保持在步骤602设置的值。在图10c所示的示例中,步骤604-607在偏移41和54-57下执行后台读取,同时将区域5的偏移保持在-1(阈值电压50)。更具体而言,在brp读取(-2,-1)(被示为阈值电压54、50)下读取(604)五个示例性页面以计算(604)第一电压偏移误差和sv1-1;在brp读取(-1,-1)(被示为阈值电压55、50)下读取(604)五个示例性页面以计算(606)第二电压偏移误差和sv1-2;在brp读取(0,-1)(被示为阈值电压41、50)下读取(604)五个示例性页面以计算(606)第三电压偏移误差和sv1-3;并在brp读取(+1,-1)(被示为阈值电压56、50)下读取五个示例性页面以计算(606)第四电压偏移误差和sv1-4。在下一迭代,区域1的偏移在步骤607被改变为+2,并在brp读取(+2,-1)(被示为阈值电压57、50)下读取五个示例性页面以计算(606)第五电压偏移误差和sv1-5。在步骤610,确定具有最小误差数目(这将是误差和sv1-1、sv1-2、sv1-3、sv1-4和sv1-5中的最小值)的阈值电压偏移。在本示例中,第四电压偏移误差和sv1-4被确定为具有最小误差数目(例如,最小值),因此与sv1-5相对应的读取偏移值被存储(611)(例如,(vbrp1=+1))为页面群的经更新读取偏移值中的第二偏移值。由于在本示例中下部页面仅包括两个参考电压,因此所有参考电压已被测试(613)。在一个实施例中,步骤601-611的校准过程的结果被存储在brp表5中作为被测试页面群的经更新电压偏移值集合。在本实施例中,结果被级联并被存储在页面群的阈值电压移位参数中作为该页面群的最新近确定的经更新阈值电压偏移集合,并且可以用vbrp501=(vbrp1,vbrp5)(在该示例中具有值vbrp501=(+1,-1))的形式来表示。

在上述示例中,通过解码每个读取的结果来标识误差数目。在另一实施例中,第一读取被用于标识所存储的码字(或读取已知码字)并且将后续读取结果与所标识的码字进行比较以确定每个读取中的误差总数,对这些总数目的误差进行求和以获得误差和sv1-1、sv1-2、sv1-3、sv1-4和sv1-5。已发现,这比解码每个读取604迅速,但需要将已知码字存储在至少一些块中。

在来自读取604的数据是不可校正的或者所确定的误差数目(605)超过特定阈值的情况下,关闭块可被标记为“弱块”,并且针对该弱块的后续步骤605-607将保留时间阈值减少(在一个实施例中减半)、将耐久性阈值减少(在一个实施例中减半)并将块读取阈值减少(在一个实施例中减半)。替换地,关闭块可被标记为不良块。

每次基于耐久性事件的发生而确定经更新读取偏移值时,该经更新读取偏移值在brp表5中被存储为页面群的vbrp耐久性(其表示页面群的最新近确定的耐久性读取偏移值)。每次基于保留定时器事件或读取干扰事件的发生而确定经更新读取偏移值时,该经更新读取偏移值被存储为页面群的vbrpret_rd。当下一耐久性事件发生时,针对页面群所计算的vbrp被存储为vbrp耐久性(例如,通过覆写先前的vbrp耐久性值)。每次计算vbrp耐久性时,该vbrp耐久性被存储为页面群的vbrpret_rd(例如,通过覆写先前的vbrpret_rd值)。每次基于保留定时器事件或读取干扰事件的发生而确定经更新阈值电压偏移时,该经更新阈值电压偏移被存储为页面群的vbrpret_rd(例如,通过覆写先前的vbrpret_rd值)。被存储为页面群的vbrpret_rd的读取偏移值由此表示该页面群的最新近确定的经更新读取偏移值,并且可以来自耐久性事件、保留定时器事件或读取干扰事件,并且是临时电压阈值偏移值,该临时电压阈值偏移值考虑在块为关闭时对阈值电压的改变。

在图15-16中所解说的一个实施例中,耐久性阈值被设置为500p/e循环以使得每500p/e循环构成耐久性事件,并且保留阈值被设置为12个小时以使得保留定时器事件在块被关闭的每12个小时之后发生。读取干扰阈值被设置为50,000次读取,以使得读取干扰事件在块读取计数器的每50,000次读取之后发生。图15示出了示例性时间线,并且图16示出了包括图15的事件以及数个后续事件的事件矩阵。在以下示例中,在项vbrp(x,y,z)中,x表示计算vbrp时的耐久性阈值,y表示计算vbrp时的保留时间阈值,并且z表示计算vbrp时的块读取阈值。图15中的每个箭头表示后台参考定位操作的起始点。在61,块被开放,并且在62,块被关闭。在该示例中,当块被关闭62时p/e循环计数超过500,因此当块被关闭62时耐久性事件70被确定为已发生。执行后台参考定位操作并且结果被存储为vbrp耐久性和vbrpret_rd两者。在从关闭块62起的12个小时之后,第一保留定时器事件71被确定为已发生(12小时保留定时器事件)。由于针对保留定时器事件和读取干扰事件的计算使用vbrpret_rd作为起始参考阈值电压偏移,因此使用来自500p/e事件70的vbrpret_rd来计算新的经更新阈值电压偏移vbrp(500,12,0),该vbrp(500,12,0)被存储为vbrpret_rd。在发生第二保留定时器事件72(24小时保留定时器事件)之际,来自12小时保留定时器事件71的vbrpret_rd被用作步骤602中的起始参考阈值电压偏移并且新的经更新偏移值被存储为vbrpret_rd(500,24,0)。类似地,在发生第三保留定时器事件73(36小时保留定时器事件)之际,(来自24小时保留定时器事件72的)vbrpret_rd被用作步骤602中的起始参考阈值电压偏移,并且新的经更新偏移值被存储为vbrpret_rd(500,36,0)。

在耐久性事件时,在页面群的最新近耐久性事件中计算的vbrp(vbrp耐久性)被用作步骤602中的起始参考阈值电压偏移。因此,在第二耐久性事件74之际(在1,000p/e循环处),来自500p/e事件70的vbrp耐久性被用作步骤602中的起始参考阈值电压偏移。

在发生保留定时器事件之际,最新近计算的经更新阈值电压偏移值被用作步骤602中的起始参考阈值电压偏移,这可以是响应于发生耐久性事件、保留定时器事件或读取干扰事件而计算的经更新vbrp。由于从耐久性事件计算的每个vbrp被存储为vbrpret_rd和vbrp耐久性两者,因此值vbrpret_rd总是反映页面群的最新近更新的阈值电压偏移。因此,在发生保留定时器事件75(12小时保留定时器事件)之际,来自1kp/e事件74的vbrpret_rd被用作步骤602中的起始参考阈值电压偏移。在发生第二保留定时器事件76(24小时保留定时器事件)之际,(来自12小时保留定时器事件75的)vbrpret_rd被用作步骤602中的起始参考阈值电压偏移。类似地,在发生第三保留定时器事件77(36小时保留定时器事件)之际,(来自24小时保留定时器事件76的)vbrpret_rd被用作步骤602中的起始参考阈值电压偏移。

在发生读取干扰事件79之际,最新近计算的经更新阈值电压偏移值被用作步骤602中的起始参考阈值电压偏移,这可以是响应于发生耐久性事件、保留定时器事件或读取干扰事件而计算的经更新vbrp。由于从耐久性事件计算的每个vbrp被存储为vbrpret_rd和vbrp耐久性两者,因此值vbrpret_rd总是反映页面群的最新近更新的阈值电压偏移。因此,在示例性50,000读取计数的读取干扰事件79处,vbrpret_rd(1k,36,0)被用作步骤602中的起始阈值电压偏移并且所得到的vbrp(1k,36,50k)被存储为vbrpret_rd。

当执行针对耐久性事件的后台参考定位操作时,已发现当读取计数不太高时获得较好的结果。因此,在本发明的各实施例中,当确定是否应当执行后台参考定位操作时,应用对读取计数的数目的限制。在一个此类实施例中,当p/e循环数目构成耐久性事件时,在读取计数超过数量阈值(例如,25,000次读取)的情况下不执行对后台参考定位步骤603-612的计算。

当块空闲63时,先前确定的vbrpret_rd值对于确定电压阈值校正不再有用。因此,紧接在块擦除之后的后台参考定位操作将使用在页面群的最新近耐久性事件中计算的vbrp(vbrp耐久性)作为步骤602中的起始参考阈值电压偏移,不管该vbrp是针对耐久性事件、保留定时器事件还是读取干扰事件的vbrp计算。如果在关闭块事件65时耐久性事件未被确定为已发生并且保留或读取干扰事件78被确定为已发生,则来自1,000p/e事件74的vbrp耐久性被用作步骤602中的起始参考阈值电压并且所计算的vbrp被存储为vbrpret_rd。

如先前讨论的,在块空闲(63)之后,先前确定的vbrpret_rd值不再有用。因此,在本发明的各实施例中,当在块关闭之后并且在针对关闭块确定第一vbrpret_rd之前执行读取时,读取继续使用在页面群的最新近耐久性事件中计算的vbrp(vbrp耐久性)来执行,直至在关闭块事件之后确定第一vbrpret_rd。

使用后台参考定位和后台llr计算两者得到更少的解码误差并且因此得到更少的读取重试操作,从而与使用常规读取操作的系统相比提供了具有减少的等待时间的非易失性存储器系统1。此外,减少了ber,从而延长了非易失性存储器系统1的寿命。

在图16所示的示例中,其中页面群的最新近确定的经更新brp偏移集合用vbrp501=(vbrp1,vbrp5)(其具有值vbrp501=(+1,-1))的形式来表示,针对第一brp偏移值vbrp1计算第一llr值集合,并针对第二brp偏移值vbrp5计算第二llr值集合。在针对brp偏移值vbrp1计算第一llr值集合的以下示例中,第一llr值(llra_vbrp1)将指示区域a中的读取的误差,第二llr值(llrb_vbrp1)将指示区域b中的读取的误差,第三llr值(llrc_vbrp1)将指示区域c中的读取的误差,并且第四llr值(llrd_vbrp1)将指示区域d中的读取的误差。由此,针对描述电压区域的每个参考存在一个llr集合,其中llr分布以阈值电压区域的最新近确定的brp偏移值为中心。

由于在本示例中vbrp1为+1(被示为图10a-10c中的线56),因此为了计算对应于vbrp1的llr值集合,在偏移0下的读取结果将在寄存器93中被存储为brp_n,在+1下的读取将在图17的寄存器92中被存储为brp,并且在+2下的读取结果将在寄存器93中被存储为brp_p,并且所计算的llra_vbrp1、llrb_vbrp1、llrc_vbrp1和llrd_vbrp1可以被级联并在llr表10中被存储为第一llr值集合llr501_vbrp1=(llra_vbrp1,llrb_vbrp1,llrc_vbrp1,llrd_vbrp1)。

由于在本示例中vbrp5为-1(被示为图10a-10c中的线50),因此为了计算对应于vbrp5的llr偏移集合,在偏移-2下的读取结果将在寄存器93中被存储为brp_n,在-1下的读取将在图17的寄存器92中被存储为brp,并且在0下的读取结果将在寄存器93中被存储为brp_p,并且所计算的llra_vbrp5、llrb_vbrp5、llrc_vbrp5和llrd_vbrp5可以被级联并在llr表10中被存储为第二llr值集合llr501_vbrp5=(llra_vbrp5,llrb_vbrp5,llrc_vbrp5,llrd_vbrp5)。

在替换的实施例中,在非易失性存储器控制器11被初始化之后,所有brp偏移值被设置为0并且所有llr值被设置为默认值(例如,-6,+6)以获得初始brp表5和llr表10。在该实施例中,每个经计算的brp偏移集合将是经更新的brp偏移集合,并且每个所标识的llr值集合将是经更新的llr值集合。

通过对正被使用的实际nand器件执行测试,并通过在nand器件老化时继续执行后台测试,本发明的方法和装置提供准确地指示软读取的误差概率的llr值。这降低了ber并延长了nand闪存存储器芯片的使用寿命。另外,减少了读取误差数目,从而得到减少的读取等待时间。

在各个实施例中,本发明的系统可以在现场可编程门阵列(fpga)或专用集成电路(asic)中实现。

作为简短概述,本文至少公开了以下几个宽泛概念:

概念1.一种方法,包括:

响应于接收到主机请求写入指令而将码字编程到多个非易失性存储器器件中的每一者中;

在默认阈值电压下、在小于该默认阈值电压的一个或多个阈值电压偏移下、以及在大于该默认阈值电压的一个或多个阈值电压偏移下执行对非易失性存储器器件的块中的经编程码字中的至少一个码字的后台读取;

解码后台读取中的至少一者以标识该至少一个码字;

使用读取结果和所标识的至少一个码字来标识对数似然比(llr)值集合;

继续执行后台读取、解码后台读取中的至少一者以及标识,以标识针对非易失性存储器器件的每个块的llr值集合;

进一步继续执行后台读取、解码后台读取中的至少一者以及标识,以标识经更新llr值集合;

执行对非易失性存储器器件中的一者的主机请求读取;以及

使用来自与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

概念2.如概念1所述的方法,其中,后台读取仅对关闭块执行。

概念3.如概念1所述的方法,其中,后台读取仅对关闭块执行,并且仅在关闭块处发生耐久性事件、保留定时器事件和读取干扰事件中的一个或多个事件之际执行。

概念4.如概念1所述的方法,进一步包括:

存储后台读取的结果;

使用后台读取的结果来针对每个默认阈值电压标识产生最小误差总数的偏移;并且

其中,执行主机请求读取进一步包括:在与正被读取的码字的块相对应的产生最小误差总数的所标识偏移下使用阈值电压移位读取指令来执行主机请求读取。

概念5.如概念4所述的方法,进一步包括:

将产生最小误差总数的每个所标识偏移存储为后台参考定位(brp)表中的brp值,该brp表包括与每个brp值相对应的指示对应块号的块索引;

继续执行后台读取、存储、解码后台读取中的至少一者、以及标识产生最小误差总数的偏移,以存储非易失性存储器器件的每个块的brp值;

进一步继续执行后台读取、存储、解码后台读取中的至少一者以及标识产生最小误差总数的偏移,以标识经更新偏移值;

每次经更新偏移值被标识时,通过覆写对应块的任何先前存储的brp值来将该经更新偏移值存储在brp表中。

概念6.如概念1所述的方法,其中,每个块包括被划分成页面群的多个页面;

其中,执行后台读取进一步包括:在默认阈值电压下、在小于该默认阈值电压的一个或多个阈值电压偏移下、以及在大于该默认阈值电压的一个或多个阈值电压偏移下执行对页面群的代表性页面的后台读取;

其中,标识llr值集合进一步包括:使用读取结果和所标识的至少一个码字来标识针对每个页面群的llr值集合;并且

其中,解码主机请求读取的结果进一步包括:使用来自与被读取的页面的页面群相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

概念7.如概念6所述的方法,进一步包括:

生成llr表;

将所标识的llr值集合中的每一者连同标识对应页面群的索引一起存储在llr表中;并且

其中,每次经更新llr值集合被标识时,通过覆写先前存储在llr表中的对应llr值集合来将该经更新llr值集合存储在llr表中。

概念8.如概念7所述的方法,其中,解码主机请求读取的结果进一步包括:通过使用与被读取页面的页面群相对应的索引值对llr表进行索引来解码主机请求读取的结果。

概念9.如概念4所述的方法,进一步包括:

生成brp表,该brp表包括brp值以及与每个页面群相对应的对应索引;

继续执行后台读取、存储、解码后台读取中的至少一者以及标识,以标识针对非易失性存储器器件的每个块的llr值集合;以及

在brp表中将产生最小误差总数的每个所标识偏移存储为对应页面群的brp值,以使得brp表中的每个brp值是与页面群相对应的产生最小误差总数的最新近标识的偏移。

概念10.如概念1所述的方法,进一步包括:

其中,执行后台读取进一步包括:在读取块的代表性页面所需要的每个阈值电压区域内的默认阈值电压下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要小的一个或多个阈值电压偏移下、以及在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要大的一个或多个阈值电压偏移下执行对代表性页面的后台读取;

其中,标识llr值集合进一步包括:使用所存储的读取结果和所标识的至少一个码字来标识与读取代表性页面所需要的每个阈值电压区域相对应的llr值集合;

其中,继续执行后台读取进一步包括:继续执行后台读取、解码后台读取中的至少一者以及标识,以标识与读取每个块的代表性页面所需要的每个阈值电压区域相对应的llr值集合;并且

其中,继续执行后台读取进一步包括:继续执行后台读取、解码后台读取中的至少一者以及标识,以标识与读取代表性页面所需要的每个阈值电压区域相对应的经更新llr值集合。

概念11.一种非易失性存储器控制器,包括:

耦合到多个非易失性存储器器件的写入电路,该写入电路被配置成:响应于接收到主机请求写入指令而将码字编程到多个非易失性存储器器件中的每一者;

读取电路,该读取电路被配置成:在默认阈值电压下、在小于该默认阈值电压的一个或多个阈值电压偏移下、以及在大于该默认阈值电压的一个或多个阈值电压偏移下执行对非易失性存储器器件的块中的经编程码字中的至少一个码字的后台读取;

解码器电路,该解码器电路被配置成:解码后台读取中的至少一者以标识该至少一个码字;

对数似然比(llr)电路,该llr电路被配置成:使用读取结果和所标识的至少一个码字来标识与默认阈值电压相对应的llr值集合;

其中,该非易失性存储器控制器被配置成:继续执行后台读取、解码后台读取中的至少一者、以及标识llr值集合,以标识针对非易失性存储器器件的每个块的llr值集合;

其中,该非易失性存储器控制器被配置成:进一步继续执行后台读取、解码后台读取中的至少一者、以及标识llr值集合,以标识经更新llr值集合;

读取电路,该读取电路被配置成:执行对非易失性存储器器件的主机请求读取;以及

解码器电路,该解码器电路被配置成:使用来自与在主机请求读取中被读取的块相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

概念12.如概念11所述的非易失性存储器控制器,进一步包括:

后台参考定位(brp)电路,该brp电路被配置成:使用后台读取的结果来针对每个默认阈值电压标识产生最小误差总数的偏移;并且

其中,执行主机请求读取进一步包括:在与正被读取的码字的块相对应的产生最小误差总数的所标识偏移下使用阈值电压移位读取指令来执行主机请求读取。

概念13.如概念12所述的非易失性存储器控制器,进一步包括:

耦合到brp电路和读取电路的brp表,该brp表包括brp值以及针对非易失性存储器器件的每个块的对应索引;

其中,产生最小误差总数的每个所标识偏移通过覆写对应块的任何先前存储的brp值来被存储为brp表中的brp值。

概念14.如概念11所述的非易失性存储器控制器,其中,每个块包括被划分成页面群的多个页面;

其中,该读取电路被配置成:在一个或多个默认阈值电压下、在小于每个默认阈值电压的一个或多个阈值电压偏移下、以及在大于每个默认阈值电压的一个或多个阈值电压偏移下执行对页面群的代表性页面的后台读取;

其中,该解码器电路被配置成:解码对每个块的示例性页面的读取中的一个读取以标识每个页面群中的至少一个码字;

其中,该llr电路被配置成:使用读取结果和每个页面群中所标识的至少一个码字来标识针对每个块的至少一个经更新llr值集合;并且

其中,该读取电路被配置成:执行对非易失性存储器器件的主机请求读取,并且该解码器电路被配置成:使用来自与在主机请求读取中被读取的页面的页面群相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

概念15.如概念11所述的非易失性存储器控制器,其中,后台读取仅对关闭块执行。

概念16.如概念14所述的非易失性存储器控制器,其中,后台读取仅对关闭块执行,并且仅在关闭块处发生耐久性事件、保留定时器事件和读取干扰事件中的一个或多个事件之际执行。

概念17.如概念16所述的非易失性存储器控制器,其中:

该非易失性存储器控制器被配置成:确定非易失性存储器器件的每个块的编程和擦除循环数目,并且其中,该非易失性存储器控制器被配置成:每次关闭块的所确定的编程和擦除循环数目达到编程和擦除循环阈值数目时,确定耐久性事件已发生;

其中,该非易失性存储器控制器被配置成:确定非易失性存储器器件的每个关闭块的关闭块保留时间,并且其中,该非易失性存储器控制器被配置成:每次关闭块保留时间达到阈值保留时间时,确定保留定时器事件已发生;并且

其中,该非易失性存储器控制器被配置成:确定非易失性存储器器件的每个块的读取次数,并且其中,该非易失性存储器控制器被配置成:每次关闭块的读取次数达到阈值读取次数时,确定读取干扰事件已发生。

概念18.一种非易失性存储器系统,包括:

多个非易失性存储器器件;

耦合到非易失性存储器器件的非易失性存储器控制器,该非易失性存储器控制器包括:

写入电路,该写入电路被配置成:响应于接收到包括用户数据的主机请求写入指令而对非易失性存储器器件进行编程以将用户数据存储在非易失性存储器器件中;

读取电路,该读取电路被配置成:在读取页面群的代表性页面所需要的每个阈值电压区域内的默认阈值电压下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要小的一个或多个阈值电压偏移下、在比读取代表性页面所需要的每个阈值电压区域内的默认阈值电压要大的一个或多个阈值电压偏移下执行对代表性页面的后台读取;

解码器电路,该解码器电路被配置成:解码来自对代表性页面的后台读取中的一些后台读取的结果以标识存储在所述代表性页面中的码字;

对数似然比(llr)电路,该llr电路被配置成:使用读取结果和所标识的码字来标识与读取代表性页面所需要的每个阈值电压区域相对应的llr值集合;并且

其中,该读取电路被配置成:继续执行后台读取、解码来自后台读取中的一些后台读取的结果,并且该llr电路被配置成:继续标识llr值集合,以标识与读取每个页面群的代表性页面所需要的每个阈值电压区域相对应的llr值集合;

其中,该读取电路被进一步配置成继续执行后台读取,并且该llr电路被进一步配置成标识经更新llr值集合;并且

其中,该读取电路被配置成:执行对非易失性存储器器件的主机请求读取,并且该解码器电路被配置成:使用来自与在主机请求读取中被读取的页面的页面群相对应的经更新llr值集合中的llr值来解码主机请求读取的结果。

概念19.如概念18所述的非易失性存储器系统,其中,该llr电路被配置成:将所标识的llr值集合中的每一者连同标识对应页面的索引一起存储在llr表中,并且其中,每次经更新llr值集合被标识时,该llr电路被配置成:通过覆写先前存储在llr表中的对应llr值集合来将该经更新llr值集合存储在llr表中。

概念20.如概念19所述的非易失性存储器系统,其中,该解码器电路被配置成:通过使用与正被读取页面的页面群相对应的索引值对llr表进行索引来标识要被用于解码主机请求读取的llr值。

尽管已经参照本发明的特定实施例描述了本发明,但对于本领域普通技术人员来说显而易见的是,可以对所描述的实施例作出修改而不脱离本发明的精神。因此,本发明的范围将由所附权利要求限定,而不是由以上详细描述限定。

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