用于估计NAND快闪存储器的位错误率的快闪存储器系统和
方法
相关申请案的交叉参考
本申请案是基于且主张2018年2月28日申请的第15/908,318号美国非临时专利申请案的优先权;其全部内容以引用的方式并入本文中。
技术领域
本发明的实施例大体上涉及用于估计NAND快闪存储器的位错误率的快闪存储器系统和方法。
背景技术
随着计算装置的数目和类型持续扩大,对此类装置所使用的存储器的需要也持续扩大。存储器包含易失性存储器(例如RAM)和非易失性存储器。一种风行类型的非易失性存储器是快闪存储器或NAND型快闪存储器。NAND快闪存储器阵列包含单元的行和列(串)。单元可包含晶体管。
在读取操作期间,读取NAND快闪存储器阵列的整个行/页。这时通过将偏压电压施加到不在读取的所有行,且将参考阈值电压施加到应读取的行来完成。所述偏压电压允许NAND快闪存储器阵列的晶体管完全进行。仅在阈值电压充分高来克服浮动栅极中的所捕获电荷时,位于正读取的行上的单元才将进行。读出放大器连接到每一串,其测量通过所述串的电流,并输出“1”或“0”,取决于所述电流是否传递某一阈值。
通常,编程操作包含多个小电荷注入步骤的过程。可通过将在电压Vstart开始的电压脉冲(Vpulse)施加到正在编程的行,并将所述串中的所有其它晶体管的栅极电压设置为偏压电压(Vbias),来将电荷注入到单元。在施加电压脉冲之后,读取编程单元(使用上文所述的程序),并将其与所要的编程电压进行比较。如果达到所述所要编程电压,那么编程结束。否则,提供额外脉冲,直到达到所要编程电压为止,或直到达到最大脉冲数目(NPP)为止。如果在使用最大脉冲数目之后,仍有并未通过检验测试的单元(即它们未被编程到所要的编程电压),那么可宣告程序错误(或失败)。上文所述的NAND快闪存储器可具有与编程所述单元相关联的位错误率(BER),其中BER描述所述存储器的可靠性。
发明内容
本发明的实施例涉及用于估计与快闪存储器相关联的位错误率(BER)的方法。根据某些方面,一种用于估计NAND快闪存储器的位错误率的方法,其包括:
对具有多个阈值电压的多层单元快闪存储器执行编程操作;
对于每一阈值电压:
编程紧接大于所述阈值电压的状态,从而定义至少一个检验阈值,
确定具有小于所述至少一个检验阈值的电压的第一单元数目,以及
基于所述第一单元数目和第一BER阈值来确定所估计的欠编程的位错误率(BER);以及基于所述多个阈值电压的每一阈值电压的所述所估计的欠编程BER,来确定总的欠编程BER。
附图说明
图1说明常规三位每单元(bpc)快闪装置中的阈值电压分布;
图2说明根据实施例的用于BER估计的三bpc快闪存储器装置的电压阈值分布;
图3是根据实施例的用于估计NAND快闪装置的BER的实例方法;
图4示出根据实施例的实例读取状态字段寄存器;
图5示出根据实施例的用于编程参数调适的一个实例方法;以及
图6是说明根据实施例的实例快闪存储器装置的框图。
具体实施方式
根据某些方面,本发明的实施例涉及用于获得NAND型快闪存储器装置的高承受能力和高性能编程的技术。
如上文所陈述,NAND快闪装置的编程操作包含多个小电荷注入步骤的过程。可通过将电压脉冲(Vpulse)施加到正编程的行,并将串中的所有其它晶体管的栅极电压设置为偏压电压(Vbias),来将电荷注入到单元。在施加电压脉冲之后,读取编程单元,并将其与所要的编程电压阈值进行比较。如果达到所要编程电压,那么编程结束。图1说明三位每单元(bpc)快闪存储器装置的电压阈值分布。电压阈值(VT)分布包含八个瓣。MSB页读取要求使用阈值T0、T4。为了读取CSB页,使用读取阈值Tl、T3和T5。为了读取LSB页,必须使用读取阈值T2和T6。最下面的分布被称为擦除等级。
图1所示的瓣是不重叠的,然而实际上瓣可重叠。重叠可归因于保持效应。更明确地说,快闪存储器单元重复的编程和擦除(即P/E循环)致使电荷在快闪存储器单元中被捕获。这些电荷可减少单元编程时间(tProg),且可在编程和读取过程中引入错误,这可不合需要地增加NAND快闪装置的位错误率(BER)。一些NAND快闪装置控制器可通过读取编程到装置中的数据,并将所述数据与经编程数据进行比较,来估计位错误率。然而,此过程消耗相当大的时间量,且因此在编程所述装置期间是不可行的。
在这点上,本发明的申请人认识到,估计NAND快闪装置的BER的常规方法是费时的。此外,常规方法在编程期间通常不提供BER。实情为,控制器大体上提供一个位的信息,其简单地指示编程过程成功还是不成功。下文论述用于在P/E循环期间估计BER的方法和系统。可为所述装置内的块估计BER,且可基于所估计的BER与阈值的比较,来标记所述块以进行优化。
本发明的申请人还认识到,编程性能中的一个因素是承受能力。影响此因子的是以下事实,在给定在快闪存储器装置的寿命期间使用的相同固定编程参数的情况下,编程时间和对应位错误率(BER)作为P/E循环的数目的函数而改变。更明确地说,在高P/E循环处,编程时间(tProg)通常比前几个P/E循环的tProg短得多(多达大约低20%),且这也导致较高的BER。
使所述承受能力维持在平稳且稳定的写入性能的一种方法到在装置的寿命其间调适编程参数。调适编程参数部分地基于编程期间的BER的估计,例如确定具有不可接受的BER的块。下文论述基于编程P/E循环期间的BER的估计来调适编程参数的系统和方法。
图2说明用于BER估计的三位每单元(bpc)快闪存储器装置的电压阈值分布。图2中示出的电压阈值分布类似于图1所示的电压阈值分布。然而,图3中的电压分布针对每一电压阈值包含三个检验阈值。举例来说,对于第三阈值电压T3,所述三个检验阈值包含T(3,1)、T(3,2)和T(3,3)。尽管图2示出每状态三个检验阈值,但应理解,检验阈值的数目可为至少两个,且可包含每电压阈值超过三个值。增加每状态的检验阈值的数目可改进所估计的BER的准确性。在一或多个实施方案中,每状态的检验阈值的数目的选择可基于所估计的BER的所要准确性。再次参看第三电压阈值T3的三个检验阈值,所述检验阈值是相关的,使得T(3,1)<T(3,2)<T(3,3)。在一些实施方案中,三个检验阈值的邻近检验阈值之间的差可为约50mV到约150mV或约100mV。根据恰好在编程之后(这时估计BER)的每一程序等级的预期Vt(电压阈值)分布,来配置阈值之间的差。设定阈值之间的差,以便捕获预期错误的区,并且还检测阈值跨度之外的非预期错误,如表1中示范。在一些实施方案中,两个邻近检验阈值之间的差异的量值可相等,而在一些其它实施方案中,差异的量值可不等。在一些实施方案中,检验阈值T(3,2)可等于第三阈值电压T3。这些检验阈值可为预定的,且存储在装置中,且可在NAND快闪装置的一或多个块的编程/擦除循环期间存取。
图3是根据实施例的用于估计NAND快闪装置的BER的实例方法。所述实例方法可由编程-检验逻辑执行,以在一或多个块的编程期间估计NAND快闪装置内的一或多个块的BER。第一步骤S302包含确定欠编程的单元的数目。明确地说,可在第一步骤中确定与电压阈值相关联的欠编程单元的数目。参看图2,当单元被编程有第四状态时,可确定对于第三电压阈值T3欠编程的单元的数目。当编程第四状态时,编程-检验逻辑可将块内的每一单元处的电压电平与三个指定检验阈值水平T(3,1)、T(3,2)和T(3,3)进行比较,以确定具有低于这些阈值中的每一者的电压值的单元的数目。举例来说,当编程第四状态时,单元N(4,i)的数目可表示低于阈值i(选自三个阈值T(3,1)、T(3,2)和T(3,3))的单元的数目。可将单元的这些数目与阈值BERTH进行比较,以确定二位BER估计值。举例来说,下文的表1示出单元的数目N(4,i)与阈值BERTH之间的各种比较的BER估计值。
表1
条件 |
BER(BER二进制值) |
N(4,1)>BERTH |
3(11) |
N(4,1)≤BERTH |
2(10) |
N(4,2)≤BERTH |
1(01) |
N(4,3)≤BERTH |
0(00) |
表1基于具有低于特定电压阈值和BERTH值的电压的单元的数目来估计BER。举例来说,如果块中具有低于阈值T(3,1)的电压的单元的数目N(4,1)大于阈值BERTH,那么可预期所述块具有高BER。因此,将针对此条件所估计的BER设定成高值,例如,3(2位二进制中的‘11’)。将BER估计表示为二位值,以适应四个条件。应注意,基于阈值水平的数目和所得条件数目,用于表示BER的位数目可较少或较大。表1还估计针对其它条件的BER值。举例来说,如果具有小于阈值电压T(3,l)的电压的单元的数目N(4,1)小于或等于BERTH值,那么所估计的BER可具有值2;如果具有小于阈值电压T(3,2)的电压的单元的数目N(4,2)小于或等于BERTH值,那么所估计的BER可具有值1;且如果具有小于阈值电压T(3,3)的电压的单元的数目N(4,3)小于或等于BERTH值,那么所估计的BER可具有值0。
下一步骤S304包含确定欠编程的BER估计。编程-检验逻辑确定针对每一电压阈值(T0-T6)的欠编程的BER估计。举例来说,编程-检验逻辑可为每一电压阈值(th)确定欠编程的BER估计的值,passTHBER(th),其中passTHBER(th)对应于使用对应于所述电压阈值的类似于表1的表来确定的所述电压阈值(th)的BER估计值。举例来说,如果编程-检验逻辑确定第三电压阈值T3的BER估计值(如使用表1来确定)等于3,那么编程-检验逻辑可将passTHBER(3)值设定为等于3。编程-检验逻辑可类似地为其它电压阈值(th)中的每一者确定欠编程的BER估计。基于所有电压阈值的passTHBER(th)值,编程-检验逻辑可通过确定所有电压阈值(th)的最大passTHBER(th),来确定块的passTHBER值。具体地说,块的欠编程的BER估计值passTHBER可在下文的等式(1)中表达:
passTHBER=maxth=0...6{passTHBER(th)}(1)
举例来说,如果passTHBER(4)等于3,那么当与所有其它电压阈值相关联的passTHBER(th)等于3或以下时,块的passTHBER将等于3。以此方式,编程-检验逻辑可确定所述块的欠编程BER估计。
下一步骤S306包含确定欠编程的单元的数目。参看图2,当单元被编程有第三状态时,可确定关于第三电压阈值T3过编程的单元的数目。欠编程第三状态时,编程-检验逻辑可将块内的每一单元处的电压电平与三个指定检验阈值水平T(3,1)、T(3,2)和T(3,3)进行比较,以确定具有高于这些阈值中的每一者的电压值的单元的数目。举例来说,当编程第三状态时,单元的数目N(3,i)可表示高于阈值i(选自三个阈值T(3,1)、T(3,2)和T(3,3))的单元数目。可将单元的这些数目与阈值BERTH进行比较,以确定二位BER估计值。举例来说,下文的表2示出单元的数目N(3,i)与阈值BERTH之间的各种比较的BER估计值。
表2
条件 |
BER |
N(3,3)>BERTH |
3(11) |
N(3,3)≤BERTH |
2(10) |
N(3,2)≤BERTH |
1(01) |
N(3,1)≤BERTH |
0(00) |
表2基于具有高于特定电压阈值和BERTH值的电压的单元的数目来估计BER。举例来说,如果块中具有高于阈值T(3,3)的电压的单元的数目N(3,3)大于阈值BERTH,那么可预期所述块具有高BER。因此,将针对此条件所估计的BER设定成高值,例如,3(2位二进制中的‘11’)。类似地,如果具有大于阈值电压T(3,3)的电压的单元的数目N(3,3)小于或等于BERTH值,那么所估计的BER具有值2;如果具有大于阈值电压T(3,2)的电压的单元的数目N(3,2)小于或等于BERTH值,那么所估计的BER具有值1;且如果具有大于阈值电压T(3,3)的电压的单元的数目N(3,1)小于或等于BERTH值,那么所估计的BER具有值0。
下一步骤S308包含确定欠编程的BER估计。类似于确定每一电压阈值(T0-T6)的欠编程BER估计,编程-检验逻辑还确定这些电压阈值中的每一者的欠编程BER估计。举例来说,编程-检验逻辑可确定每一电压阈值(th)的opTHBER(th)的值,其中opTHBER(th)对应于使用表2确定的所述电压阈值(th)的BER估计值。编程-检验逻辑可接着通过确定所有电压阈值(th)的最大opTHBER(th),来确定所述块的opTHBER值。具体地说,块的欠编程BER估计值opTHBER可在下文的等式(2)中表达:
opTHBER=maxth=0…6{opTHBER(th)}(2)
举例来说,如果opTHBER(3)等于3,当与所有其它电压阈值相关联的opTHBER(th)等于3或以下时,块的opTHBER将等于3。以此方式,编程-检验逻辑可确定所述块的过编程的BER估计。
在一或多个实施例中,可从每电压阈值的错误的预期数目确定BERTH值。举例来说,块中的行可包含16,384个字节,以及约10%的备用区域。如果目标BER等于约2E-4,那么对于每一电压阈值,预期BER可为约IE-4,其等效于每阈值约8个单侧错误。因此,可选择BERTH等于约8。
下一步骤S310包含用所估计的欠编程的和过编程的BER估计来更新读取状态字段。NAND快闪装置可包含一或多个读取状态字段寄存器,其可欠编程操作之后提供状态信息。编程-检验逻辑可经由读取状态寄存器输出BER估计,其可例如由控制器中的编程电路(例如程序DSP)读取。
图4示出实例读取状态字段寄存器400。读取状态字段寄存器400是包含位0到位7的8位寄存器。在常规NAND快闪装置中,读取状态字段寄存器400的位1到位5保持未用。使用位0来指示块的编程/擦除循环是成功还是失败,位6指示装置是忙碌还是就绪,且位7指示装置是否受写保护。编程-检验逻辑可利用未用的位1到位4来指示所估计的欠编程和过编程的BER值。在耦合到NAND快闪装置的控制器或装置上运行的进程可通过将读取状态命令发送到NAND,来读取所述读取状态字段寄存器400。通过将所估计的欠编程和过编程的BER值存储在读取状态字段寄存器400中,进程或控制器可读取所估计的BER值,而不必发布额外命令。这是因为,在程序命令之后,控制器正常发布读取状态命令来读取读取状态字段寄存器400,以检查位0的值(合格/不合格)、位6(忙碌/就绪)以及位7(写保护)。编程-检验逻辑在接收到读取状态命令时,可用读取状态字段寄存器400的内容来响应。因为读取状态字段寄存器400还包含未用位(即,位1到位5)中的所估计BER值,因此可响应于同一读取状态命令,使所估计BER值可用。因此,控制器或另一程序不必发布任何额外命令(例如读取BER状态命令)来获取所估计BER值,从而改进NAND快闪装置的操作速度。
如图4中所示,编程-检验逻辑可用欠编程的BER估计值的两个位(passTHBER0和passTHBER1)来更新位1和位2,且可用过编程的BER估计值的两个位(opTHBER0和opTHBER1)来更新位3和位4。
如上文所论述,编程-检验逻辑可为所有电压阈值确定欠编程BER估计和欠编程BER估计。在一些实施方案中,编程-检验逻辑可确定额外BER估计。
举例来说,编程-检验逻辑可确定所有电压阈值的BER估计。可通过确定欠编程的BER估计和过编程的BER估计中的较大者,来确定所有阈值的BER估计。在某一其它实施方案中,编程-检验逻辑可使用以下等式(3)来确定所有阈值的BER估计:
THBER=maxth=0...6{opTHBER(th)+passTHBER(th)}(3)
等式3通过确定过编程的BER估计和欠编程的BER估计的所有电压阈值的最大总和,来确定所有电压阈值的BER估计。
在一或多个实施例中,编程-检验逻辑可为每一页类型独立地确定BER估计。举例来说,参考图2,可通过读取电压阈值T2和T6来读取LSB页位。因此,LSB页位的所估计BER可为针对电压阈值T2和T6的欠编程的BER估计和过编程的BER估计的总和。类似地,CSB页位的所估计BER是针对电压阈值T1、T3和T5的欠编程的BER估计和过编程的BER估计的总和;且MSB页位的所估计BER是电压阈值T0和T4的欠编程的BER估计和过编程的BER估计的总和。下文的等式(4)、(5)和(6)描述这些估计。
BERLSB=Σth=2,6opTHBER(th)+passTHBER(th)(4)
BERCSB=Σth=1,3,5opTHBER(th)+passTHBER(th)(5)
BERMSB=Σth=0,4opTHBER(th)+passTHBER(th)(6)
在一些实施方案中,编程-检验逻辑可用LSB、CSB或MSB页的BER估计来更新图4中所示的状态寄存器。在一些实施方案中,编程-检验逻辑可更新其它寄存器来指示BER估计。
上文所论述各种BER估计可由控制器或在控制器上运行的另一程序用于各种目的。举例来说,BER估计可由程序数字信号处理器或在NAND快闪装置生产期间的默认参数的调谐期间用于编程参数的调适。
在一个实施方案中,NAND快闪存储器装置的自适应编程可在制造阶段完成,例如将NAND编程参数(例如上文所述的参数Vbias、Vstep、Vstart和NPP中的任一个或全部)设定为其默认值。其后,在存储器装置的操作期间,控制器监视所述存储器的每个块所经历的P/E循环的数目。这可通过保持存储器已经历的P/E循环的实际数目的计数来完成。或者,可根据最后的编程结果来估计等效P/E循环计数。所述估计可基于平均编程时间和/或编程操作之后的错误的数目。在一些情况下,可存在编程期间的错误的数目与损耗水平之间的强对应性。第2012/0216085号美国专利公开案中公开用于估计本发明的实施例中可使用的有效P/E循环的实例方法,其内容以全文引用的方式并入本文中。
将存储器的P/E循环的数目与阈值进行比较,且如果超过阈值,那么调适用于所述存储器的编程参数。举例来说,可每1000个循环或任何其它合适数目的循环调适编程参数。应注意,可有许多方式来执行监视和调适存储器装置,可能取决于特定存储器装置的组成。在存储器装置包含或包括仅单个裸片(其包括多个块)的情况下,在一个可能实施例中,监视循环的数目,且对每个块独立地执行调适。在另一可能实施例中,每当单个块达到阈值循环数目时,就触发调适,且仅对单个代表性块或独立地对所有块执行调适参数。或者,在存储器装置包含多个裸片的情况下,其中每一裸片包含多个块,可针对每一裸片独立地执行编程参数的监视和调适。然而,在每一裸片内,可对单个代表性块或独立地对每个块执行监视和调适,如在上文的单裸片实例实施例中的任一者中所描述。
图5示出如上文所论述的用于编程参数调适的一个实例方法。在此实例中,过程在步骤S502中通过将NAND编程参数(例如上文所述的参数Vbias、Vstep、Vstart和NPP中的任一个或全部)设定为其默认值(例如制造商所设定的参数),或任何其它预定初始值而开始。
在步骤S504中,优化包含使编程参数中的一或多者改变固定步长(例如在DAC值中测得)。在一些实施例中,在每一间隔,仅一个参数改变,而其它参数保持固定。在其它实施例中,所有参数同时递增地改变。最初可在应预期低于BER的方向上进行参数的改变。举例来说,可使针对编程脉冲电压阶跃的编程参数Vstep增加固定的量。在后续步骤中,其它参数(例如Vstart)可增加一个DAC值或更多的指定步长。可在可预期辅助满足结合步骤S508描述的阈值的方向上进行所述改变,如从下文将变得更明显。
在步骤S506中,在编程参数改变之后,使用那些改变的参数来编程整个快闪存储器块(即块的所有页/行),且控制器测量编程时间tProg。控制器还从编程-检验逻辑提供的读取状态寄存器读取BER估计,如上文所描述。
在步骤S508中,确定是否满足所有编程性能条件。在此实例中,编程性能条件是平均tProg必须小于阈值编程时间TimeTH1,且所述块的所有页的平均BER必须低于BERTH所定义的目标。如果所述性能条件两者均不满足,且如果优化步骤的数目不超过阈值数目STEPTH,那么流程返回到S504,其中在将预期的方向上改变编程参数,以改进编程性能条件在下一步骤满足的可能性。可如上文关于图1-4所论述来确定所述块的所有页的平均BER的确定。明确地说,所述过程可读取图4中所示的状态寄存器,以确定欠编程的BER估计和过编程的BER估计,且使用等式(3)到(6)来确定所述块的所有页的BER。因为相对于读取完整的块和将读取数据与所存储数据进行比较,BER估计是基于读取状态寄存器,所以平均BER的确定相对较快。因此,参数的调适可相对快速地执行,从而改进NAND快闪装置的性能。
此时,在S508之后,已获得编程参数值(例如上文所述的参数Vbias、Vstep、Vstart和NPP的值)的单个集合,其中经修改的tProg对应于目标编程时间TimeTHl。根据系统要求,此tProg可高于或低于默认tProg,如从下文的描述将变得更明显。然而,应明白,这将导致存储块的编程时间在装置的整个寿命期更稳定。
在一些实施例中,此时,此循环范围的针对整个存储块的编程参数调适过程可结束。在其它实施例中,执行进一步调适,以获得存储块中的行集合之间的稳定编程性能。
返回到图5,在这些实施例中,在步骤S510开始的下一调适流是仅改变单个编程参数,例如脉冲电压步长Vstep,或任何其它编程参数改变,这加速了低于TimeTHl的另一T0的平均tProg。通常,Vstep的减少编程时间的改变还非常显著地增加块的平均BER和最大BER。
更明确地说,例如,在下一步骤S512中,使用在步骤S508之后获得的所述组编程参数来编程整个快闪存储器块(即块的所有页/行),来自步骤S510的增加的Vstep参数除外。在编程之后,控制器使用例如上文结合步骤S508所述的过程来测量每页的BER。
在下一步骤S514中,识别如在步骤S512中确定的具有最低BER的块的N1个行的集合。具有较高BER的块的第二行集合包含N2个行,如在步骤S516中所识别。
在此实例中,下一步骤S518是仅针对N2个行的第二集合执行编程参数的调适。如在步骤S504中,这包含使编程参数中的一或多者改变固定步长(例如在DAC值中测得),例如在应减小N2个行的BER的方向上。
下一步骤S520包含执行完整块编程,其中N1个行的第一集合的编程参数是固定的,其中其值来自步骤S508之后的第一调适,而N2个行的另一集合的编程参数如在步骤S518中那样修改。
如在S522中确定,类似地如在步骤S508中,当满足所有编程性能条件时,优化终止。在此实例中,编程性能条件包含整个块的平均tProg必须低于阈值TimeTH2,且所述块的平均BER必须低于目标BERTH。如果两个条件均不满足,且如果优化步骤的数目不超过STEPTH,那么流程返回到步骤S518。如果步长的数目超过STEPTH,那么N2个行的优化失败,且控制器可将那些行的编程参数恢复到来自步骤S508的先前成功设定或参数,或恢复到NAND默认参数。
应注意,用于调适行集合的上述方法不限于仅识别两个行集合N1和N2,且仅独立地调适两个行集合。实际上,可按需要为许多行集合独立地执行调适过程。
另外或替代地,倘若程序时间改变,且其对应的BER在同一过程节点的所有装置上具有相同的典型值,那么可有可能使用行集合的预定义集合,且因此避免需要估计BER来选择行集合。
通过在编程/擦除循环期间提供所估计的BER,与其中控制器将必须读取块数据并将所述块数据与所存储数据进行比较来估计BER的其它方法相比,图5中所示的参数调适过程可相对较快地完成。
图6说明根据一个可能实施例的实例装置600,其可执行上文所描述的方法中的任一者或其组合。
装置600包含快闪存储器模块604和存储器控制器602。快闪存储器模块604包含多个快闪存储器块606,其中的每一者包含多个快闪存储器行/页(未图示)。另外或替代地,模块604可包括多个裸片或使用多个裸片实施,所述裸片中的每一者含有多个块606。
存储器控制器602包含读取电路610、编程电路(例如编程DSP)620和编程参数调适器630。调适器630可调适编程电路620所使用的编程参数622,如上文所描述。在此实例中,调适器630包含P/E循环计数器632,其可执行上文所述的循环计数或估计技术中的任一者。尽管为了便于说明单独示出,但调适器630中的一些或全部可并入在编程电路620中。根据上述实施例的一些方面,读取电路610包含ECC解码器612,且编程电路620包含ECC编码器624。存储器控制器602的实施例可包含额外或较少组件,例如图6中所示的那些组件。
快闪存储器模块604还包含编程-检验逻辑640,其进一步包含BER估计器642,其可根据上文关于图1到5的论述来起作用。编程-检验逻辑640还可包含读取状态寄存器(未图示),BER估计器642可在如上文所描述的编程操作之后更新所述读取状态寄存器,且其可由存储器控制器(例如由编程电路620)存取。
提供先前的描述是为了使所属领域的技术人员能够实践本文中所描述的各个方面。对这些方面的各种修改对于所属领域的技术人员来说将是显而易见的,并且本文中定义的一般原理可适用于其它方面。因此,所附权利要求书无意限于本文中所示的方面,而是应被赋予与所附权利要求书的语言一致的完整范围,其中以单数形式提到一元件无意表示“有且仅有一个”(除非具体这样陈述),而是表示“一或多个”。除非另有具体陈述,否则术语“一些”是指一或多个。所属领域的技术人员已知或日后将知晓的贯穿先前描述而描述的各种方面的元件的所有结构和功能等效物以引用的方式明确地并入本文中,且旨在由所附权利要求书涵盖。此外,本文所公开的任何内容均不希望奉献给公众,无论所附权利要求书中是否明确地陈述此公开。并没有权利要求元素将被解释为手段加功能,除非所述元素是使用短语“用于……装置”来明确地叙述的。
应理解,所公开的过程中的步骤的特定次序或层级是说明性方法的实例。应理解,基于设计偏好,过程中的步骤的特定次序或层级可重新布置,同时保持在先前描述的范围内。所附的方法权利要求以样本次序呈现各个步骤的要素,且无意限于所呈现的特定次序或层级。
提供所公开实施方案的先前描述是为了使所属领域的技术人员能够制作或使用所公开的标的物。所属领域的技术人员将易于了解对这些实施方案的各种修改,且在不脱离先前描述的精神或范围的情况下,本文中定义的一般原理可适用于其它实施方案。因此,先前描述无意限于本文所示的实施方案,而是将被赋予与本文所公开的原理和新颖特征一致的最宽范围。
所说明和描述的各种实例仅作为实例提供来说明所附权利要求书的各种特征。然而,相对于任何给定实例示出和描述的特征不一定限于相关联实例,且可与示出和描述的其它实例一起使用或组合。另外,所附权利要求书无意受任何一个实例限制。
前述方法描述和过程流程图仅仅作为说明性实例提供,并且其无意要求或暗示各种实例的步骤必须以所呈现的次序执行。如所属领域的技术人员将了解,前述实例中的步骤的次序可按任何次序执行。例如“之后”、“接着”、“接下来”等词语无意限制步骤的顺序;这些词仅用于引导读者浏览对方法的描述。此外,举例来说,使用冠词“一”、“一个”或“所述”对单数形式的权利要求要素的任何参考不应解释为将所述要素限制为单数。
结合本文揭示的实例所描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件,或两者的组合。为了清晰地说明硬件与软件的这种可互换性,上文已大体就各种说明性组件、块、模块、电路和步骤的功能性加以描述。此类功能性是实施为硬件还是软件取决于特定应用以及强加于整个系统的设计约束。本领域的技术人员可针对每一具体应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
用以实施结合本文所揭示的实例描述的各种说明性逻逻辑模块和电路的硬件可用以下来实施或执行:设计成执行本文所述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。
通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心结合,或任何其它此种配置。替代地,可由特定地针对给定功能的电路来执行一些步骤或方法。
在一些示范性实例中,所描述的功能可实施在硬件、软件、固件或其任何组合中。如果在软件中实施,那么所述功能可作为一或多个指令或代码存储在非暂时性计算机可读存储媒体或非暂时性处理器可读存储媒体上。本文揭示的方法或算法的步骤可体现于可驻留在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读媒体可为可由计算机或处理器存取的任何存储媒体。举例来说但非限制,此类非暂时性计算机可读或处理器可读媒体可包含RAM、ROM、EEPROM、快闪存储器、CD-ROM或其它光盘存储装置、磁盘存储器或其它磁性存储装置,或可用于以指令或数据结构的形式存储所要的程序代码且可由计算机存取的任何其它媒体。如本文所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。以上各项的组合也包括在非暂时性计算机可读和处理器可读媒体的范围内。另外,一种方法或算法的操作可作为代码和/或指令的一个或任何组合或集合而驻留在非暂时性处理器可读存储媒体和/或计算机可读存储媒体上,所述媒体可并入到计算机程序产品中。
提供对所公开实例的先前描述是为了使所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将容易明白对这些实例的各种修改,且在不脱离本公开的精神或范围的情况下,本文所定义的一般原理可应用于一些实例。因此,本发明无意限于本文中所示的实例,而应被赋予与所附权利要求书和本文中所公开的原理和新颖特征相一致的最宽范围。