平码五不中公式规律
  • / 47
  • 下载费用:30 金币  

用于刷新存储器设备中的数据的系统和方法.pdf

关 键 ?#21097;?/dt>
用于 刷新 存储器 设备 中的 数据 系统 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580046777.4

申请日:

2015.09.24

公开号:

CN106663046A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 11/10申请日:20150924|||公开
IPC分类号: G06F11/10; G11C11/56 主分类号: G06F11/10
申请人: 桑迪士克科技有限责任公司
发明人: J.黄; B.雷; J.万; N.杨
地址: 美国得克萨斯州
优?#28909;ǎ?/td> 2014.10.06 US 14/507,321
专利代理机构: 北京市柳沈律师事务所 11105 代理人: 邱军
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580046777.4

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

提供了刷新存储器中的数据的系统、装置、和方法。将数据编程到所述存储器中。之后,可以刷新所述数据的部分或全部。对所述数据的刷新可以在一个或多个方面不同于对所述数据的初始编程。例如,对所述数据的刷新可以包括比对所述数据的编程少的步骤,并且可以在不擦除存储器区段的情况下进行。进一步,对所述数据的刷新可以用若干方式中的一种来触发。例如,在对所述数据进行编程之后,可以分析所述数据以寻找错误。基于所找到的错误的数量,可以刷新所述数据。

权利要求书

1.一种存储器设备,包括:
?#19988;资?#24615;存储器;以及
处理器电路,与所述?#19988;资?#24615;存储器通信,所述处理器电路包括:
擦除模块,所述擦除模块被配置成用于擦除所述?#19988;资?#24615;存储器中的区段;
编程模块,所述编程模块被配置成用于仅在所述存储器区段已经被所述擦除模块擦除
之后才将数据编程到所述存储器区段中;以及
刷新模块,所述刷新模块被配置成用于在所述存储器区段还没有被所述擦除模块擦除
的情况下刷新所述存储器区段中的所述数据的部分或全部。
2.如权利要求1所述的存储器设备,其中,所述刷新模块在刷新所述数据的部分或全部
时包括比所述编程模块在对所述数据进行编程时少的编程步骤。
3.如权利要求1所述的存储器设备,进一步包括:
错误分析模块,所述错误分析模块被配置成用于确定被编程到所述存储器区段中的所
述数据中的一个或多个错误;以及
刷新判定模块,所述刷新判定模块被配置成用于基于所述一个或多个错误而判定是否
触发所述刷新模块来刷新所述数据的所述部分或全部。
4.如权利要求3所述的存储器设备,其中,所述错误分析模块包括错误校正编码(ECC)
引擎。
5.如权利要求3所述的存储器设备,其中,所述刷新模块被配置成用于使用所述错误分
析模块来判定是否迭代执行所述刷新模块。
6.如权利要求3所述的存储器设备,进一步包括:触发模块,所述触发模块被配置成用
于响应于执行所述编程模块来将所述数据编程到所述存储器区段中而触发执行所述错误
分析模块和所述刷新判定模块。
7.如权利要求6所述的存储器设备,其中,所述编程模块被配置成用于将所述数据从
SLC存储器折叠到MLC存储器中;
其中,响应于将所述数据从所述SLC存储器折叠到所述MLC存储器中,所述存储器设备
被配置成用于触发执行所述错误分析模块和所述刷新判定模块;并且
响应于所述刷新判定模块确定刷新所述MLC存储器中的所述数据的所述部分或全部,
所述刷新模块被配置成用于使用来自所述SLC存储器的所述数据来刷新所述MLC存储器中
的所述数据的所述部分或全部。
8.如权利要求3所述的存储器设备,进一步包括:触发模块,所述触发模块被配置成用
于:
将所述存储器区段的寿命指示符与触发寿命指示符进行比较;并且
响应于所述触发模块确定所述寿命指示符大于所述触发寿命指示符而触发执行所述
错误分析模块和所述刷新判定模块。
9.如权利要求8所述的存储器设备,其中,所述错误分析模块进一步被配置成用于生成
校正数据,所述校正数据至少部分地校正被编程到所述存储器区段中的所述数据中的所述
一个或多个错误;并且
其中,所述刷新模块被配置成用于使用所述校正数据来刷新所述数据的所述部分或全
部。
10.如权利要求1所述的存储器设备,其中,所述存储器区段包括存储器块;
其中,所述刷新模块被配置成用于在小于所述存储器块中刷新所述数据的所述部分。
11.一种存储器设备,包括:
存储器控制器电路,所述存储器控制器电路包括:
错误校正模块,所述错误校正模块被配置成用于确定从一个或多个存储器芯片中读取
的数据中的错误;以及
刷新触发模块,所述刷新触发模块被配置成用于基于所述错误而判定是否命令刷新所
述数据的部分或全部;以及
所述一个或多个存储器芯片,与所述存储器控制器电路通信,所述一个或多个存储器
芯片各自包括:
存储器阵列;
刷新模块,所述刷新模块被配置成用于响应于刷新命令而刷新所述存储器阵列中的所
述数据的部分或全部;以及
编程验证模块,所述编程验证模块被配置成用于验证对在所述存储器阵列中的所述数
据的所述部分或全部的所述刷新。
12.如权利要求11所述的存储器设备,其中,所述存储器控制器电?#26041;?#19968;步包括编程触
发模块,所述编程触发模块被配置成用于命令对所述存储器阵列中的存储器块的编程;
其中,所述一个或多个存储器芯片进一步包括编程模块,所述编程模块被配置成用于
响应于编程命令而对所述存储器块进行编程;并且
其中,所述编程验证模块进一步被配置成用于验证对所述存储器块的所述编程。
13.如权利要求12所述的存储器设备,其中,与所述编程模块被配置成对所述存储器块
进行编程相比,所述刷新模块被配置成用于以较少的步骤来刷新所述数据的所述部分或全
部。
14.如权利要求11所述的存储器设备,其中,所述错误校正模块进一步被配置成用于验
证所述数据的所述部分或全部是否已被充分刷新。
15.如权利要求14所述的存储器设备,其中,所述错误校正模块被配置成用于:
确定所述数据的所述经刷新的部分或全部中的错误;并且
基于所述数据的所述经刷新的部分或全部中的所述错误而判定所述数据的所述部分
或全部是否已被充分刷新。
16.一种方法,包括:
在存储器设备中进行以下步骤:
使用第一编程方案将数据编程到所述存储器设备中的存储器区段中;
确定所述存储器的所述区段中的所述数据中的一个或多个错误;
基于所述一个或多个错误而判定是否刷新所述数据的部分或全部;并且
响应于确定刷新所述数据的所述部分或全部而使用第二编程方案将所述数据的所述
部分或全部编程到所述存储器的所述区段中,所述第二编程方案不同于所述第一编程方案
并且具有比所述第一编程方案少的步骤。
17.如权利要求16所述的方法,进一步包括:在使用所述第一编程方案对所述存储器的
所述区段进行编程之前,擦除所述存储器的所述区段;并且
其中,所述第二编程方案被配置成用于在没有擦除所述存储器的所述区段的所述部分
或全部的情况下对所述存储器区段的所述部分或全部进行编程。
18.如权利要求16所述的方法,其中,确定所述存储器的所述区段中的所述数据中的所
述一个或多个错误包括:
读取所述存储器的所述区段中的所述数据的至少一部分;并且
使用错误校正编码来确定位错误率以便确定所述数据中的所述一个或多个错误。
19.如权利要求18所述的方法,其中,基于所述一个或多个错误而判定是否刷新所述存
储器的所述区段中的数据的部分或全部包括:
将所述位错误率与阈?#21040;?#34892;比较;并且
响应于所述位错误率大于所述阈值而确定刷新所述数据的所述部分或全部。
20.如权利要求19所述的方法,其中,所述阈值是动态的。
21.如权利要求20所述的方法,其中,所述阈值基于所述存储器的所述区段的寿命是动
态的。
22.如权利要求20所述的方法,其中,所述阈值基于所述存储器的一个或多个操作条件
是动态的。
23.如权利要求16所述的方法,其中,使用所述第一编程方案将所述数据编程到所述存
储器的所述区段中包括对所述存储器中的块进行编程;并且
其中,使用所述第二编程方案将所述数据的所述部分或全部编程到所述存储器的所述
区段中包括使用所述第二编程方案对小于所述存储器中的所述块进行编程。
24.如权利要求23所述的方法,其中,确定所述存储器的所述区段中的所述数据中的所
述一个或多个错误包括确定所述块中的字线中的错误;并且
其中,使用所述第二编程方案对小于所述存储器中的所述块进行编程包括仅对所述块
中的所述字线进行编程而不对所述块的其余部分进行编程。

说明书

用于刷新存储器设备中的数据的系统和方法

相关申请的引用

本申请要求2014年10月6日提交的美国申请号14/507,321的优?#28909;ǎ?#25152;述申请的
全部内容通过引用结合在此。

技术领域

本申请总体上涉及对系统中的数据进行管理。更?#38750;械兀?#26412;申请涉及刷新存储器
设备中的数据。

背景技术

存储器设备可以将数据编程到其中的单元中。然而,在编程之后立即或者在一段
时间之后读取被编程到单元中的数据时可能存在问题。例如,在闪存的背景下,被编程到多
层单元(其中,多个位被编程到单个单元中)中的数据可能由于数据保持问题而劣化。

发明内容

公开了用于刷新存储器设备中的数据的系统和方法。在一方面,公开了一种存储
器设备。所述存储器设备包括?#19988;资?#24615;存储器以及与所述?#19988;资?#24615;存储器通信的处理器电
路。所述处理器电路包括:擦除模块,所述擦除模块被配置成用于擦除所述?#19988;资?#24615;存储器
中的区段;编程模块,所述编程模块被配置成用于仅在所述存储器区段已经被所述擦除模
块擦除之后才将数据编程到所述存储器区段中;以及刷新模块,所述刷新模块被配置成用
于在所述存储器区段还没有被所述擦除模块擦除的情况下刷新所述存储器区段中的所述
数据的一部分或全部。

在另一方面,公开了一种存储器设备,所述存储器设备包括存储器控制器电路以
及一个或多个存储器芯片。所述存储器控制器电路包括:错误校正模块,所述错误校正模块
被配置成用于确定从一个或多个存储器芯片中读取的数据中的错误;以及刷新触发模块,
所述刷新触发模块被配置成用于基于所述错误而判定是否命令刷新所述数据的部分或全
部。所述一个或多个存储器芯片与所述存储器控制器电路通信,其中所述一个或多个存储
器芯片各自包括:存储器阵列;刷新模块,所述刷新模块被配置成用于响应于刷新命令而刷
新所述存储器阵列中的所述数据的部分或全部;以及编程验证模块,所述编程验证模块被
配置成用于验证对在所述存储器阵列中的所述数据的所述部分或全部的所述刷新。

在?#33267;?#19968;方面,公开了一种方法。在存储器设备中进行的所述方法包括:使用第一
编程方案将数据编程到所述存储器设备中的存储器区段中;确定所述存储器的所述区段中
的所述数据中的一个或多个错误;基于所述一个或多个错误而判定是否刷新所述数据的部
分或全部;以及响应于确定刷新所述数据的所述部分或全部而使用第二编程方案将所述数
据的所述部分或全部编程到所述存储器的所述区段中,所述第二编程方案不同于所述第一
编程方案并且具有比所述第一编程方案少的步骤。

在查阅以下附图、具体实施方式和权利要求书之后,其他的特征和优点将变得清
楚。此外,公开了其他实施例,并且实施例中的每一个可以单独地或组合在一起使用。现在
将参照附图对所述实施例进行描述。

附图说明

参照以下附图和说明可以更好地理解所述系统。在附图中,相似的参考号遍及所
有不同的视图指代对应的部分。

图1A展示了与存储器设备相连接的主机系统。

图1B展示了图1A的存储器设备控制器和存储器芯片的另一个框图。

图1C展示了在所述存储器设备控制器和存储器芯片内的刷新的数据流。

图2A展示了存储器设备控制器芯片,这是在图1A中描绘的存储器设备控制器的第
一示例。

图2B展示了存储器设备控制器芯片,这是在图1A中描绘的存储器设备控制器的第
二示例。

图3A展示了在图1A中描绘的存储器芯片控制器的示例。

图3B展示了例如在图1A中描绘的存储器中使用的存储器芯片的框图的示例。

图4是在图3B的存储器存储体中可以使用的存储器单元阵列的代表性电路图。

图5展示了图3B的存储器存储体的示例物理存储器组织。

图6示出了图5的物理存储器的一部分的展开视图。

图7A展示了示例?#19988;资?#24615;存储器编程图,展示了每单元三位的存储器中的三阶段
NAND闪存编程操作中每一阶段的目标电压水平。

图7B是图7A中展示的编程序列的对字线进行编程的序列的图表。

图8A展示了将数据编程到存储器区段中、判定是否刷新所述数据、并刷新所述数
据的部分或全部的第一示例的流程图。

图8B展示了将数据编程到存储器区段中、判定是否刷新所述数据、并刷新所述数
据的部分或全部的第二示例的流程图。

图9展示了触发对数据的读取、使用错误校正编码(ECC)确定位错误率(BER)、并使
用所述BER来判定是否刷新所述数据的一个示例的流程图。

图10A展示了从控制存储器芯片的存储器设备控制器的角度看对数据进行刷新的
第一示例的流程图。

图10B展示了从存储器芯片的角度看对数据进行刷新的所述第一示例的流程图。

图11A展示了从控制存储器芯片的存储器设备控制器的角度看对数据进行刷新的
第二示例的流程图。

图11B展示了从存储器芯片的角度看对数据进行刷新的所述第二示例的流程图。

图12展示了从控制存储器芯片的存储器设备控制器的角度看对数据进行刷新的
第三示例的流程图。

图13A展示了在编程操作之后判定是否进行刷新操作并进行刷新操作的流程图。

图13B展示了判定是否对遭受数据保持问题的块进行刷新操作并进行刷新操作的
流程图。

图13C展示了判定是否对遭受循环应力问题的块进行刷新操作并进行刷新操作的
流程图。

图14A展示了处于多个不同阶段的每单元3位的不同状态的第一图表,包括由于电
荷损失造成的改变。

图14B展示了处于多个不同阶段的每单元3位的不同状态的第一图表,包括由于刷
新造成的改变。

图14C展示了处于多个不同阶段的每单元1位的不同状态的第一图表,包括由于电
荷损失造成的改变。

图14D展示了处于多个不同阶段的每单元1位的不同状态的第一图表,包括由于刷
新造成的改变。

具体实施方式

如在背景技术部分中讨论的,所述存储器设备可以将数据编程到存储器单元中。
所述存储器单元可以被编程以在相应单元中存储一个位或多个位。例如,所述存储器单元
可以被操作以存储两个电荷层,使得在每个单元中存储单个位的数据。这典型地被称为二
进制或单层单元(SLC)存储器。作为另一个示例,所述存储器单元可以被操作来在每个电荷
储存元件或区域中存储多于两个可检测电荷层,由此在每个中存储多于一个位的数据。后
一种构型被称为多层单元(MLC)存储器。在存储器中可以使用一种或两种类型的存储器单
元,例如可以使用二进制闪存来缓存数据并且可以使用MLC存储器来进行长期存储。

例如,在被配置成用于3个位的信息的MLC存储器单元中,表示这3个位必然存在23
=8种可能状态。这8种状态(在此称为Er、A、B、C、D、E、F和G,其中Er是指擦除状态)是所述单
元可以被编程到的8个分立的电压水平(Vt)。在新近编程后的这8种编程后状态的示例在图
14A的图表中用虚线展示。同样,SLC的在新近编程后的编程状态的示例在图14C的图表中用
虚线展示。每个单元中存在的位数的示例仅用于展示的目的。

然而,立即或在一段时间后从所述存储器单元中读取数据可能产生错误。读取中
的错误可能是由于Vt移位(Vt下移)。更具体地,Vt移位的发生可能:是在对单元进行编程之
后不久的新近条件下;是由于数据保持问题;和/或是由于所述存储器设备的大量循环。例
如,对单元进行编程之后,Vt可能下移而造成?#25910;?#20301;计数(FBC)增大,由此使得系统性能下
降并潜在地造成在所述存储器设备中错误地检测高的位错误率(BER)。

Vt下移现象可能致使所述状态的Vt分布在尾侧?#19979;?#24494;加宽,甚至在没有数据保持
问题的情况下也是如此,如下文讨论的。这种类型的Vt下移典型地并不是足够?#29616;?#32780;立即
造成不可校正的错误校正码(UECC)的问题、而是可能致使?#25910;?#20301;计数(FBC)增大。由于新近
条件的Vt下移造成的增大的FBC可能具有两种负面影响:(1)在初期随着FBC的增大,存储器
设备读取性能可能由于更长的错误校正编码(ECC)解码时间而受到影响;并且(2)可能存在
更大的机会造成对系统BER的过度检测,由此触发其他系统级别的错误处理机制(例如读取
擦洗/刷新、CVD、EPWR/RBAX?#25351;?#31561;等)并且妨碍了总体系统性能且不必要地引入了额外的
P/E循环。

作为另一个示例,Vt可能由于数据保持问题而移位。更具体地,数据保持问题可能
致使存储器设备的Vt分布加宽并?#20197;?#21521;下?#20063;?#23614;?#21487;?#21521;下移位更多。

作为又一个示例,Vt可能由于存储器设备的操作而移位。更具体地,随着存储器设
备被大量循环,编程串扰和过度编程情况可能变得越来越?#29616;兀?#30001;此致使存储器设备的Vt
分布在?#20063;?#23614;部和左侧尾?#21487;?#22343;加宽、并且最终造成UECC,因为所述存储器设备已经尝试
达到最大耐久能力。因此,所述单元可能失去电?#26705;?#20363;如图14A和14C的图表中的实线所展示
的(这与编程时的电荷产生偏差)。

典型地,随着Vt移位加重,所述存储器设备需要对位于第一块中的数据重新编程。
具体地,将选择之前已经被擦除的第二块。所述存储器设备接着将用原先存储在所述第一
块中的数据来对第二块编程。之后,将擦除所述第一块以使得能够将其他数据编程到其中。

在一个实施例中,不将某个存储器区段(例如块或子块)中的数据编程到另一个块
中。而是,刷新所述存储器区段中的数据。在图14B中展示了这样的一个示例,其中虚线展示
了在刷新之后的这8种状态。在图14D中展示了这样的另一个示例,其中虚线展示了在刷新
之后SLC中的这两种状态。如图所示,所述刷新之后的状态减小了Vt移位而不需要重新编
程。这与将来自这个块的数据重新载入另一个块中并擦除这个块的传统方法形成对比,所
述传统方法导致了写入放大并?#26723;?#20102;所述存储器块的编程/擦除循环能力。相比之下,可以
利用参数的改变对这个块的部分或全部进行刷新(例如,仅上部页编程,对单个字线、或对
小于整个块的一组字线),并且不需要重新载入/擦除。例如在没有擦除的情况下刷新上部
页使得擦除应力较小并且编程时间较短。

更具体地,所述存储器设备判定在所述存储器区段中的所述数据的部分或全部中
是否存在错误。在一个实施例中,所述存储器设备可以通过读取所述存储器区段的部分或
全部、并且确定读取中的错误来判定是否存在错误。如下文更详细讨论的,对存储器区段的
读取可以用若干方式中的一种来触发,例如通过外部请求(例如,主机系统命令所述存储器
设备进行读取,和/或主机系统命令所述存储器设备进行写入),或例如通过内部请求(例
如,所述存储器设备控制器可以确定将进行内部读取)。例如,触发对所述存储器区段的读
取可以是响应于:将数据从SLC折叠到MLC中;标识受应力的存储器区段(例如,受应力的
块);标?#29420;?#21270;的存储器区段(例如,具有高的编程/擦除计数的块)。进一步,读取中的错误
可以用若干方式中的一种来确定。一种方式是使用错误校正编码(ECC)引擎来生成位错误
率(BER),如下文更详细讨论的。

可以对读取中的错误进行分析以便判定是否刷新所述存储器区段的部分或全部。
在一个实施例中,可以将所述错误与阈?#21040;?#34892;比较。响应于确定了所述错误超过所述阈值,
可以进行刷新。与所述错误进行比较的这个阈值在一个实施例中可以是静态的并?#20197;?#26367;代
性实施例中可以是动态的。例如,所述阈值可以基于操作条件(例如,所述存储器设备的温
度)和/或基于所述存储器的寿命或使用(例如,对于新编程的MLC块而已不同的阈值、并且
基于编程/擦除循环、或对块的读取访?#21097;?#22914;下文更详细讨论的)来动态地选择。

响应于确定刷新所述块,可以用若干方式中的一种来进行刷新。在一个实施例中,
所述存储器设备控制器可以命令所述存储器芯片进行所述刷新,其中所述存储器设备控制
器验证所述刷新是否已恰当地进行。例如,所述存储器设备控制器可以命令所述存储器芯
片在存储器区段(例如块或字线)中进行刷新。之后,所述存储器设备控制器可以读取所述
存储器区段、确定读取中的错误、并且接着基于所述读取中的错误来判定所述刷新是否已
恰当地进行。在一个实施例中,响应于确定了所述刷新还没有成功地进行,所述存储器设备
控制器可以发送另一个命令给所述存储器芯片来在存储器区段中进行刷新,其中可选地在
所述刷新中对所述存储器芯片使用不同的编程电压。之后,所述存储器设备控制器可以读
取所述存储器区段、确定读取中的错误、并?#20197;?#27425;判定所述刷新是否已恰当地进行。在此方
面,所述存储器设备控制器可以迭代进行多个刷新循环。在替代性实施例中,响应于确定了
所述刷新还没有成功地进行,所述存储器设备控制器可以命令对所述数据进行重新编程
(例如,所述存储器设备将所述数据编程到另一个存储器区段、并且擦除所述存储器区段)。

在替代性实施例中,所述存储器设备控制器可以命令所述存储器芯片进行所述刷
新,其中所述存储器芯片验证所述刷新是否已成功地进行。如下文更详细讨论的,所述存储
器芯片可以包括编程验证电路,通过所述编程验证电路,所述存储器芯片可以验证经编程
的电压事实上是否已被编程到所述单元中。所述存储器芯片可以返回所述编程验证电路的
结果,所述结构指示了所述刷新是否已成功地进行。在一个实施例中,响应于所述存储器芯
片指示所述刷新还没有成功地进行,所述存储器设备控制器可以命令对所述数据进行重新
编程。在替代性实施例中,响应于所述存储器芯片指示所述刷新还没有成功地进行,所述存
储器设备控制器可以命令所述存储器芯片再次刷新所述数据。

在一个实施例中,所述存储器设备控制器可以命令所述存储器芯片进行所述刷
新,其中所述存储器设备控制器和/或所述存储器芯片验证所述刷新是否已恰当地进行。例
如,所述存储器设备控制器可以命令所述芯片刷新所述数据。所述存储器芯片可以刷新所
述数据、并且使用所述编程验证电路来验证所述刷新是否已成功地进行。响应于所述存储
器芯片指示所述刷新还没有成功地进行,所述存储器设备控制器可以验证所述刷新是否已
成功地进行。在第一个更具体的实施例中,在所述存储器设备控制器接收到所述刷新还没
有成功地进行的指示之后,所述存储器设备控制器可以读取所述存储器区段而不进行另一
个刷新操作、并且使用所述ECC引擎来验证所述刷新是否已成功地进行。响应于所述ECC引
擎确定了所述刷新还没有成功地进行,所述存储器设备控制器可以命令对所述数据进行重
新编程。在第二个更具体的实施例中,所述存储器设备控制器可以命令用潜在地不同的刷
新电压进行另一次刷新、并且之后使用所述ECC引擎来判定所述刷新是否已成功地进行。

参见所述图,图1A展示了主机系统100和存储器设备102。所述主机系统100可以包
括任何类型的主机设备,例如固定的计算机系统(例如,台式计算机)或移动的计算机系统
(例如,膝上型计算机、智能电话、平板电脑、或类似物)

图1A的主机系统100可以被看成两个主要部分,在关注存储器设备102的情况下,
所述主机系统由电路与软件的组合构成。它们是与所述存储器设备102相接的应用程序部
分108和驱动程序部分110。例如在台式计算机、膝上型计算机、智能电话、平板电脑中,所述
应用程序部分110可以包括运行文字处理、图形、控制或其他大众应用软件的处理器(例如,
CPU)112、以及用于管理主机系统100上的数据的文件系统114。在相机、?#21482;?#25110;其他主要专
用于执行单个一组功能的主机系统中,所述应用程序部分108包括操作所述相机来拍摄和
存储照片、操作所述?#21482;?#26469;打电话和接电话等等的软件。

图1A的存储器设备102可以包括半导体存储器设备。半导体存储器设备包括?#36164;?br />性存储器设备(如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”))、?#19988;资?br />性存储器设备(如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器
(“EEPROM”)、闪存(其还可以被考虑为EEPROM的子集)、铁电随机存取存储器(“FRAM”)、和磁
阻随机存取存储器(“MRAM”))、以及能够存储信息的其他半导体元件。每种类型的存储器设
备可以具有不同的配置。例如,闪存设备可以被配置成NAND或NOR构型。

所述存储器设备可由无源和/或有源元件以任何组合来形成。通过非限制性示例
的方式,无源半导体存储器元件包括ReRAM设备元件,在一些实施例中,所述元件包括如反
熔丝相变材?#31995;?#30005;阻?#26159;?#25442;存储元件以及(可选地)如二极管等操控元件。进一步通过非限
制性示例的方式,有源半导体存储器元件包括EEPROM和闪存设备元件,在一些实施例中,所
述元件包括如浮栅、导电纳米颗粒、或电荷存储介电材?#31995;?#21253;含了电荷存储区域的元件。

多个存储器元件可以被配置为使得它们串联或使得每个元件是可单独访问的。通
过非限制性示例的方式,NAND配置(NAND存储器)中的闪存设备通常包含串联的存储器元
件。NAND存储器阵列可以被配置为使得阵列包括多个存储器串,其中,串包括共享单个位线
并作为群组被访问的多个存储器元件。替代性地,存储器元件可以被配置为使得每一个元
件是可单独访问的(例如,NOR存储器阵列)。NAND和NOR存储器配置是示例性的,并且存储器
元件可以以其他方式配置。

位于基板内和/或上方的半导体存储器元件可以被?#25165;?#22312;两个或三个维度(如二
维存储器结构或三维存储器结构)中。

在二维存储器结构中,半导体存储器元件被?#25165;?#22312;单个平面或单个存储器设备级
中。通常,在二维存储器结构中,存储器元件被?#25165;?#22312;基本上平行于支撑存储器元件的基板
的主要表面而?#30001;?#30340;平面中(例如,在x-z方向平面中)。基板可以是在其上方或在其中形成
存储器元件层的晶片,或者其可以是在形成存储器元件之后附接至其上的载体基板。作为
非限制性示例,基板可以包括如硅等半导体。

可以在单个存储器设备级中将存储器元件?#25165;?#25104;?#34892;?#38453;列,如在多个行和/或列
中。然而,可以在非规则或非正交配置中排列存储器元件。存储器元件中的每个存储器元件
可以具有两个或更多个电极或接触线,如位线和字线。

三维存储器阵列被?#25165;?#25104;使得存储器元件占据多个平面或多个存储器设备级,由
此在三个维度(即,在x方向、y方向和z方向上,其中,y方向基本上垂直于并且x和z方向基本
上平行于基板的主表面)中形成结构。三维存储器的一个示例是三维闪存。

作为非限制性示例,三维存储器结构可以被垂直地?#25165;?#25104;多个二维存储器设备级
的堆叠。作为另一个非限制性示例,三维存储器阵列可以被?#25165;?#25104;多个垂直列(例如,基本
上垂直于基板的主表面?#30001;?#30340;列,即,在y方向上),每列在每列中具有多个存储器元件。可
以在二维配置中(例如,在x-z平面中)?#25165;?#25152;述列,导致存储器元件的三维?#25165;牛?#20803;件位于
多个垂直堆叠的存储器平面上。存储器元件在三个维度中的其他配置也可以构成三维存储
器阵列。

通过非限制性示例的方式,在三维NAND存储器阵列中,存储器元件可以被耦合在
一起,以便在单个水平(例如,x-z)存储器设备级内形成NAND串。可替代地,存储器元件可以
被耦合在一起,以便形成横跨多个水平存储器设备级的垂直NAND串。可以设想其他三维配
置,其中,一些NAND串包含单个存储器级中的存储器元件,而其他串包含跨越多个存储器级
的存储器元件。还可以在NOR配置中和在ReRAM配置中设计三维存储器阵列。

通常,在单片式三维存储器阵列中,在单个基板上方形成一个或多个存储器设备
级。可选地,单片式三维存储器阵列还可以具有至少部分地位于单个基板内的一个或多个
存储器层。作为非限制性示例,基板可以包括如硅等半导体。在单片式三维阵列中,构成阵
列的每个存储器设备级的层通常在阵列的基础存储器设备级的层上形成。然而,单片式三
维存储器阵列的邻近存储器设备级的层可以?#36824;?#20139;或在存储器设备级之间存在中间层。

然后,再次,二维阵列可以被单独地形成并且然后被封装在一起,以便形成具有多
个存储器层的非单片式存储器设备。例如,非单片式堆叠存储器可以通过在单独的基板上
形成存储器?#24230;?#21518;将存储器级堆叠在彼此顶上来构造。可以减薄基板或者可以在堆叠之前
将其从存储器设备级中移除,但?#19988;?#20026;存储器设备级最初地在单独的基板上方形?#26705;?#25152;以
所产生的存储器阵列不是单片式三维存储器阵列。此外,多个二维存储器阵列或三维存储
器阵列(单片式或非单片式)可以在单独的芯片上形成然后被封装在一起,以便形成堆叠芯
片存储器设备。

存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制
性示例,存储器设备可以具有用于控制和驱动存储器元件完成如编程和读取等功能的电
路。此相关联的电路可以位于与存储器元件相同的基板上和/或位于单独的基板上。例如,
用于存储器读-写操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相
同的基板上。

本领域的技术人员将意识到,本发明不限于所描述的二维和三维示例性结构,但
涵盖了如此处描述的本发明的精神和?#27573;?#20869;的和如本领域的技术人员理解的所有相关存
储器结构。

返回参见图1A,存储器设备102可以包括:?#19988;资?#24615;存储器,例如闪存116(可以处
于一个或多个存储器芯片的形式);以及系统控制器118,所述系统控制器118既与存储器设
备102所连接的主机系统100相接以便来回传送数据、又控制所述闪存116。如上文讨论的,
考虑了其他类型的?#19988;资?#24615;存储器,例如可以由多个电阻性存储器单元构成的电阻性存储
器、以及铁电存储器。

所述存储器设备102可以采取若干形式中的一种。在一?#20013;?#24335;中,所述存储器设备
102可以包括?#24230;?#35774;备。例如,所述存储器设备102可以包括被配置成用作内部或?#24230;隨SD驱
动程序的?#19988;资?#24615;存储器,其看起来可以类似于图1A的示意图,主要区别是存储器设备102
的位置在主机系统100内部。SSD可以处于分立模块的形式,所述模块是旋转磁盘驱动程序
的简易替换件。可替代地,存储器设备102可以处于通过如图1A所展示的机械与电气连接器
的匹配的零件104和106而可去除地连?#21448;了?#36848;主机系统100上的卡的形式。

如上文讨论的,图1A的存储器设备102可以包括半导体存储器设备并且包括?#19988;?br />失性存储器(例如一个或多个存储器芯片116)、以及存储器设备控制器118。在替代性实施
例中,所述存储器设备102可以包括?#36164;?#24615;和?#19988;资?#24615;存储器二者。

所述主机系统100可以所述存储器设备通信以用于多个目的。一个目的是使得主
机系统102将数据存储在所述存储器设备上和/或从其读取数据。例如,所述主机系统100可
以发送数据?#20102;?#36848;存储器设备102以便存储在所述存储器设备102的所述一个或多个存储
器芯片116上。作为另一个示例,所述主机系统100可以从所述存储器设备102请求存储在所
述一个或多个存储器芯片116上的数据。当与所述存储器设备通信时,所述主机系统100可
以发送数据的逻辑地址,例如处于一定?#27573;?#30340;逻辑块地址(LBA)的形式。所述存储器设备控
制器118接着可以在一个或多个步骤中将所述LBA转换成所述存储器芯片116上的实际物理
地址。所述存储器设备控制器118可以进?#26032;?#36753;地址到实际物理地址的转换以便?#25104;?#20026;所
述实际物理地址。例如,来自所述主机系统100的LBA可以被?#25104;?#20026;所述存储器设备的内部
逻辑地址,并且所述存储器设备的内部逻辑地址可以被?#25104;?#20026;所述实际物理地址。作为另
一个示例,来自所述主机系统100的LBA可以被直接?#25104;?#20026;所述实际物理地址。

图1A展示了,?#19988;资?#24615;存储器116包括多个存储器芯片,包括存储器芯片0(120)和
存储器芯片N(126)。存储器芯片0(120)包括存储器芯片0控制器122和存储器阵列124。同
样,存储器芯片N(126)包括存储器芯片N控制器128和存储器阵列130。如下文更详细讨论
的,存储器芯片控制器可以包括电路和/或用于控制相应存储器芯片上的操作的软件。进一
步,在一个实施例中,存储器阵列可以包括在相应存储器芯片上的存储器单元。

图1B展示了图1A的存储器设备控制器118和存储器芯片0(120)的另一个框图。存
储器芯片0(120)仅被展示用于举例的目的。如图1B所示,在一个实施例中,所述存储器设备
控制器118可以命令对存储器区段(例如,块)进行编程、并且之后可以判定是否刷新所述块
中的数据。为此,所述主机系统100可以包括块擦除触发器130、块擦除命令132、块选择器
136、块编程命令138、读取触发器142、读取命令144、读取数据错误分析器148、刷新判定器
150、以及刷新命令152。所述块擦除触发器130、块擦除命令132、块选择器136、块编程命令
138、读取触发器142、读取命令144、读取数据错误分析器148、刷新判定器150、以及刷新命
令152中的任一个、任何组合、或全部可以被实施为软件、硬件、或硬件与软件的组合。

所述存储器芯片0(120)可以包括块擦除器134、块编程140、块读取器146、块刷新
器154。所述块擦除器134、块编程140、块读取器146、块刷新器154中的任一个、任何组合、或
全部可以被实施为软件、硬件、或硬件与软件的组合。

所述块擦除触发器130可以包括用于选择所述存储器阵列中的块进行擦除的触发
器。响应于来自所述块擦除触发器130的触发,所述块擦除命令132可以生成擦除命令来发
生给所述所述存储器芯片0(120)以便擦除所选择的块。响应于接收到所述擦除命令,所述
块擦除器134擦除所选择的块。所述块选择器136被配置成用于选择用于编程数据的块。进
而,所述块编程命令138生成命令来发?#36879;?#23384;储器芯片0(120)以便对所述块进行编程。响应
于接收到所述命令,所述块编程器140所述块进行编程。

所述存储器设备控制器118可以使用读取触发器142来读取所述存储器芯片0
(120)中的所述数据。所述读取触发器142可以基于来自所述主机系统100的将读取所述数
据的请求、或基于内部请求来触发读取。响应于对读取的触发,所述读取命令144发送命令
给所述存储器芯片0(120)。块读取器146读取所述块(或所述块的子部分)并发送所述数据
来通过读取数据错误分析器148进行错误分析。如下文更详细讨论的,读取数据错误分析器
148的一个示例可以是可以生成BER的ECC引擎。所述刷新判定器150可以分析所述读取数据
错误分析器148的输出以便判定是否刷新所述存储器块的部分或全部。例如,所述读取数据
错误分析器148可以将由所述ECC引擎生成的BER与阈?#21040;?#34892;比较,以便判定是否命令刷新。
响应于确定刷新所述块的部分或全部,所述刷新命令152发送命令给存储器芯片0(120),所
述存储器芯片可以使用块刷新器154来刷新所述块的部分或全部。

图1C展示了在所述存储器设备控制器和存储器芯片内的刷新的数据流。在刷新所
述数据时,所述存储器设备控制器118的控制器ASIC发送命令给NAND I/O电路。所述命令包
括:关于所述命令是用于更新的指示、用于更新的数据、关于用于更更新的块(或子块)的指
示、以及可选地用于更新的一个或多个编程电压,如下文更详细讨论的。所述NAND I/O电路
可以向所述NAND编程电路发送所述操作是刷新的指示(与来自被擦除的块的编程不同)、以
及关于所述存储器阵列中用于编程的区段(例如,用于编程的存储器阵列,如下文讨论的)
的指示。进而,所述NAND编程电路使用解码电路来选择用于编程的存储器(例如,字线、块)。
所述NAND I/O电?#26041;?#19968;步将所述数据发?#36879;鳱AND数据锁存器以便锁存所述数据以进行编
程。

在验证之后,来自经刷新的区段(例如,经刷新的(多个)字线或块)的数据可以被
读出并发?#36879;?#25152;述控制器ASIC。所述控制器ASIC可以将读出的数据发?#36879;?#25152;述ECC电路以
进行错误分析(例如,所述ECC电路可以生成BER)。所述控制器ASIC可以接收BER并且然后
BER。在一个实施例中,所述控制器ASIC可以将BER与被定义为成功刷新所述存储器区段的
预定义阈?#21040;?#34892;比较。如果BER小于所述预定义阈值,则所述控制器ASIC可以命令再次进行
刷新。可替代地,如果BER小于所述预定义阈值,则所述控制器ASIC可以命令对所述块进行
重新编程。

图2A展示了存储器设备控制器芯片200,这是在图1A中描绘的存储器设备控制器
118的一个示例。如图2A所示,所述存储器设备控制器芯片200包括主机系统接口202,所述
主机系统接口可以包括用于与主机系统100通信的电路和/或软件。可替代地,主机系统接
口202可以在存储器设备控制器芯片200的外部。存储器设备控制器芯片200进一步包括控
制器204、存储器208、以及(多个)存储器芯片接口214。存储器208可以包括Vt移位检测210、
块编程控制211、以及块刷新控制。Vt移位检测210可以包括由控制器204执行来检测存储器
区段(例如在块或子块)中的Vt移位(例如,下移)的软件。块编程控制211可以包括由控制器
204执行来控制所述一个或多个存储器芯片116对块进行编程的软件,如下文更详细讨论
的。块刷新控制212可以包括由控制器204执行来控制所述一个或多个存储器芯片116对块
(或块的一部分)进行刷新的软件,如下文更详细讨论的。存储器芯片接口214可以包括被配
置成用于与一个或多个存储器芯片通信的一条或多条通信线路。

图2B展示了存储器设备控制器芯片220,这是在图1A中描绘的存储器设备控制器
118的第二示例。所述存储器设备控制器芯片220可以被实施在单个集成电路芯片220上,例
如专用集成电路(ASIC),如图2B所示。进一步,由所述存储器设备控制器芯片220执行的所
述不同功能可以由单个设备来执行、或者可以由多个设备来执行,如图2B所示。更具体地,
所述存储器设备控制器芯片220可以被划分为图2B中所展示的所述不同设备,例如(多个)
闪存接口222、处理器224、RAM 223、ECC 234、主机接口236、时钟232。图2B仅用于展示的目
的。

所述存储器设备控制器芯片220的处理器224可以被配置成能够经由(多个)闪存
接口222分开地与相应存储器芯片通信的多线程处理器。所述(多个)闪存接口222可以针对
闪存116中的每个相应存储器芯片具有I/O端口。所述存储器设备控制器芯片220可以包括
内部时钟232。所述处理器224可以经由内部数据总线228与错误校正编码(ECC)模块234(在
下文更详细讨论)、RAM缓冲器230、主机接口236、固件226(可以包括启动编码ROM)通信。

图3A展示了存储器芯片控制器300的示例,例如图1A中描绘的存储器芯片0控制器
122。存储器芯片控制器300包括存储器设备控制器芯片接口302,所述接口是与存储器设备
控制器芯片200的接口。存储器芯片控制器300进一步包括控制器304和存储器306。存储器
306可以包括编程验证308、块编程309、以及块刷新310。

编程验证308可以用来验证被编程到一个或多个存储器单元中的数据是否已被成
功地编程。如下文更详细讨论的,编程验证测试可以包括读取操作,其中施加验证电压
(Vread)并且将流经所述单元的电流与所述编程验证测试的验证电流(Iverify_set)或所
述编程验证测试的重设验证电流(Iverify_reset)进行比较,以便判定是否已分别达到所
述设定或重设状态。编程验证308可以判定是否已通过了所述编程验证测试。如果确定了还
没有通过所述编程验证测试,则在一个实施例中,可以返回错误,并?#20197;?#26367;代性实施例中,
可以更新所述编程参数的一个或多个值,例如通过增大电压量和/或?#20013;?#26102;间和/或电流极
限,并且可以再次进行编程。

块编程309可以用来对块编程(或对块的一部分编程),如下文更详细讨论的。块刷
新310可以用来刷新之前被编程在块中的数据(或刷新块的一部分),如下文更详细讨论的。
存储器阵列接口314可以包括到所述存储器阵列、例如存储器阵列124的接口。

图3B展示了例如图1A中描绘的闪存芯片0(120)中使用的存储器芯片的块程序的
示例。每个存储器芯片可以包含?#36824;?#25972;到多个平面中的存储器单元阵列。图3B为了简化示
出了平面360和362,但是可以替代地使用更小的数量,例如一个平面,或更大数量的平面,
例如四个或八个平面。可替代地,一个存储器存储体的存储器单元阵列不能分为多个平面。
然而当如此划分时,每个平面具有其自身列的控制电路314和316,所述电流是独立于彼此
可操作的。电路314和316接收其相应存储器单元阵列的地址、并且将其解码以便寻址相应
位线318和320中的特定的一个或多个位线。通过行控制电路324响应于在总线364上接收的
地址来寻址所述字线322。源电压控制电路326和328也与相应平面相连接,作为p阱电压控
制电路330和332。如果所述存储体采用具有单个存储器单元阵列的存储器芯片的形式,并
且如果在所述系统中存在两个或更多这样的芯片,则数据通过与总线364相连接的相应数
据输入/输出电路334和336而被传入和传出所述平面360和362。电路334和336通过经?#19978;?br />应的列控制电路314和316连?#21448;了?#36848;平面的线路338和340既提供将数据编程到所述存储
器单元中、又提供从其相应平面的存储器单元中读取数据。

虽然所述存储器设备芯片控制器200中的控制器204控制所述存储器芯片编程数
据、读取数据、刷新数据、擦除以及参加各种内务事宜的操作,但每个存储器芯片还包含执
行来自所述存储器设备控制器118的命令以便执行这样的功能(例如编程功能、刷新功能、
以及编程验证功能)的某种控制电路。多个接口电路342连接至总线364上。来自所述存储器
设备控制器118的命令被提供给状态机344,所述状态机接着提供对其他电路的特定控制以
便执行这些命令。状态机344可以进一步包括错误确定功能,例如在此讨论的。控制线路
346-354将所述状态机344与如图3B所示的这些其他电路相连接。来自状态机344的状态信
息通过线路356被传达?#20102;?#36848;接口342,以便通过总线364传输?#20102;?#36848;存储器设备控制器
118。

下文讨论存储器单元阵列310和312的NAND架构,但可以替代地单独地或组?#31995;?#20351;
用其他?#19988;资?#24615;存储器架构或技术,例如NOR。用图4的电路图展示了一种示例NAND阵列,这
是图3B的存储器存储体的存储器单元阵列310的一部分。提供了更大数量的全局位线,其中
为了简单地解释,在图4中示出了仅4条这样的线402-408。一定数量的串联存储器单元串
410-424连接在这些位线之一与参考电势之间。使用存储器单元串414作为代表,在这个串
的其中一端处,多个电荷储存存储器单元426-432与所选择的晶体管434和436串联连接。当
使得这个串的所选择的晶体管导电时,所述串连接在其位线与所述参考电势之间。接着在
某个时刻对这个串中的一个存储器单元进行编程或读取。

图4的字线438-444独立地?#30001;?#36328;过多个存储器单元串中的每一个的一个存储器
单元的电荷储存元件,并且并行编程单元446和450在所述串的每端处控制所述所选择的晶
体管的状态。使得共享共用的字线和控制栅线438-450的所述存储器单元串形成将一起被
擦除的存储器单元块452。这个单元块包含能一次物理地擦除的最小数量的单元。沿着所述
字线438-444之一的一行存储器单元可以一次并行地进行编程。典型地,以规定的顺序对多
行NAND阵列进行编程,在此情况下?#21451;?#30528;字线444最靠近所述串的接地的末端或另一个共
用电势的这行开始。接着并行地对沿着字线442的这行存储器单元进行编程,并且以此类推
地遍及这个块452。最后并行地对沿着字线438的这一行进行编程。

一行存储器单元仅是并行编程单元的一个示例。所述并行编程单元可以包括以下
之一或二者:(1)可以并行地对所有物理结构(例如存储器单元)进行编程/读取;以及(2)可
以按照相同的或相似的完成时间对所有物理结构进行编程/读取。要素(2)是出于效率的目
的,但不是并行编程单元所要求的。

存储器的一行存储器单元可以由在裸片上处于相同物理位置的多个单元构成。可
替代地,这一行存储器单元可以由在一个裸片或全都能够并行编程的多个裸片上处于不同
物理位置的多个单元构成。此外,考虑了可以对多个存储器单元并行地编程的其他并行可
编程单元。

第二块454是类似的,其存储器单元串与第一块452中的所述串连?#21448;料?#21516;的全局
位线上、但具有不同的一组字线和控制栅线。所述字线和控制栅线被所述行控制电路324驱
动至其恰当的操作电压。如果在所述系统中存在多于一个平面,例如图3B的平面1和2,则一
个存储器架构使用在其间?#30001;?#30340;共用字线。替代地可以有多于两个平面共享共用的字线。
在其他存储器架构中,独立平面的字线是分开地被驱动的。

所述存储器单元可以被操作来存储两个电荷层,使得在每个单元中存储单个位的
数据。这典型地被称为二进制或单层单元(SLC)存储器。可替代地,所述存储器单元可以被
操作来在每个电荷储存元件或区域中存储多于两个可检测电荷层,由此在每个中存储多于
一个位的数据。后一种构型被称为多层单元(MLC)存储器。在存储器中可以使用这两种类型
的存储器单元,例如可以使用二进制闪存来缓存数据并且可以使用MLC存储器来进行长期
存储。所述存储器单元的电荷储存元件最常见地是导电浮栅、但可替代地可以是非导电性
的介电的电荷收集材料。

图5?#25293;?#24615;地展示了多存储体闪存的一个存储体的组织,所述存储体在下文的进
一步说明中被用作示例。四个平面502-508的存储器单元可以位于单个集成存储器单元芯
片上、位于两个芯片上(每个芯片上两个平面)或位于四个分开的芯片上。具体的?#25165;?#23545;于
下文的讨论不重要。?#27604;唬?#22312;系统中可能存在其他数量的平面,例如1、2、8、16或更多。所述
平面通过矩形被单独地划分为图5所示的多个存储器单元块,例如位于相应平面502-508中
的块510、512、514和516。在每个平面中可以存在几百个或?#30422;?#20010;块。

如上文提及的,所述存储器单元块是擦除单位,能够一起物理地擦除的最小数量
的存储器单元。然而,为了增大并行性,所述块可以按更大的元块单位来操作。将来自每个
平面中的一个块逻辑地联系在一起形?#31245;?#22359;。这四个块510-516被示出为形成一个元块
518。元块内的所有单元典型地一起被擦除。用来形?#31245;?#22359;的所述块不需要限制为在其相应
平面内具有相同的相对位置,如在由块522-528构成的第二元块520中所示。虽然通常优选
的是使所述元块?#30001;?#36328;过所有平面,但为了高的系统性能,所述存储器设备可以被操作为
具有动态地形成具有不同平面中的一个、两个或三个块中的人一个或全部块的元块的能
力。这?#24066;?#20803;块的大小与可用于在一个编程操作中存储的数据量更紧密地匹配。

所述单独的块进而出于操作目的被划分为多个存储器单元页,如图6中展示的。例
如,块510-516中的每一个的存储器单元各自被划分为八个页P0-P7。可替代地,在每个块中
可以存在16、32或更多个存储器单元页。页是块内的数据编程单位,包含了一次被编程或读
取的最小量数据。在图3B的NAND架构中,页是由沿着块内的字线的存储器单元形成的。然
而,为了增大所述存储器设备的操作并行性,可以将两个或更多个块中的这样的页逻辑地
连接?#31245;?#39029;。在图6中展示了元页602,所述元页是由来自这四个块510-516中的每一个块的
一个物理页形成的。例如,元页602包括在这四个块中的每一个块中的页P2,但是元页的页
不一定需要在每个块中具有相同的相对位置。在存储体内,元页是最大编程单位。

图7A展示了每单元3位NAND闪存的编程。图7A的示例仅用于展示的目的。考虑了其
他数量的位数/单元以及其他类型的存储器。参见图7A,对于每单元3位NAND闪存,字线中的
每个单元可以存储来自3个不停页中的每一个页的位:上部页位(UP)702、中间页位(MP)704
和下部页位(LP)706。用于这样的存储器单元的典型编程操作将需要三次将旨在用于所述
单元的主机数据的3个原始位从所述控制器传递?#20102;?#36848;NAND存储器,为了将正确量的电荷
轻推到所述单元中以达到希望的电压状态而需要的三个编程?#25191;?#20013;的每一个有一次,而不
超过所述希望的电压状态。

如图7A中所示,这三个编程?#25191;?#25110;状态在此可以分别被称为第一编程?#25191;?08、模
糊编程?#25191;?10和精细编程?#25191;?12。总体来说,第一编程?#25191;?08将是将所储存的电压留在
擦除(Er)714水平或中间水平(图7A中的LM716)的较粗糙的电压脉冲,其中所述Er电压水平
容许随后继续编程到这8个所希望的电压状态中的前4个中的一个(Er、A、B或C),并且所述
LM电压水平将电压推到可以增大至这8个所希望的电压状态中的后4个中的一个(D、E、F或
G)的阈值。

在例如图7A中所展示的存储器中的典型第一/模糊/精细编程方案中,这3个主机
原始位反复从所述控制器发送?#20102;?#36848;NAND以执行这三个编程阶段中的每一个。因此,在所
述第二或“模糊”编程步骤中,UP、MP、和LP数据被再?#26410;?#25511;制器发送至NAND存储器。所述UP、
MP和LP位被所述?#19988;资?#24615;存储器(例如,NAND闪存)使用来生成为了将在第一编程步骤708
中实现的当前状态(Er或LM)推到这8个所希望的电压状态中的更加解析的1个而需要的模
糊编程阶段电压脉冲。在图7A中示出了在模糊编程710之后的假想的电压分布选项、以及在
所述电压水平下这3个页位的相关联状态。在第二轮将原始的3个位的数据传输至NAND存储
器并进行了第二、模糊编程阶段710之后,这原始的三个位再?#26410;?#25152;述控制器中的RAM被调
用并发送至NAND为了实现这8个状态中的所希望1个而必须的最后一个、或精细编程步骤
712。在图7A中之后示出了在精细编程阶段712之后实现的可能编程电压的分布,其中这8个
可能的状态被示出为是完全复原的。

虽然每个字线都将被写入三次,但写入顺序在字线之间可以交错,例如图7B中展
示的。更具体地,由于对相邻字线施加的第一、模糊和精细编程步骤可能造成编程串扰问
题,其中对一个字线施加的电荷可能影响对相邻字线施加的电?#26705;?#22240;?#35828;?#22411;地利用预定的
字线编程顺序。因此,对相邻字线的编程可以交错,以减小编程串扰的机会。字线编程顺序
可能实质上从表格的左下以对角线图案向右上发展。例如,到字线0的第一编程?#25191;?#20043;后是
到字线1的第一编程?#25191;危?#25509;着是回到字线0的模糊编程?#25191;巍?#20043;后,所述图案的发展方式
是:在字线N上的第一编程?#25191;?在这个示例中以N=2开始)之后是在字线N-1上的模糊编程
?#25191;巍?#25509;着是在字线N-2上的精细编程?#25191;危?#30452;到在最后一个字线上的第一编程?#25191;?#23436;?#26705;?br />如图所示。

图8A展示了将数据编程到存储器区段中、判定是否刷新所述数据、并刷新所述数
据的部分或全部的第一示例的流程图800。在802,将存储器区段、例如块擦除。在804,使用
第一编程方案对所述存储器区段进行编程。在图7A中展示了所述第一编程方案的一个示
例。

在806,使用错误检测方案来分析所述存储器区段的至少一部分。例如,使用ECC引
擎来读取和分析所述更块的部分或全部的数据,以便确定BER。读取所述块中的多个单元的
数据可以是迭代的过程。初始地对于所述多位单元的不同状态设定所述单元的读取电平条
件。例如,在每单元3位的示例中,所述不同状态的初始读取电压如下:A=1.5875V;B=
3.1875V;C=3.4875V;D=4.2875V;E=5.0875V;F=5.8875V;G=6.3875V。将结果发送?#20102;?br />述ECC引擎以便判定所述BER是否是可校正的。如果所述ECC引擎确定了所述BER太高而不能
校正所述错误,则修改初始读取电压(例如,减小.1)并且重复这个过程以便确定所生成的
BER是否是可校正的。考虑了用于确定所述数据中的错误的其他错误检测方案。

在808,基于所述错误检测方案的结果,判定是否触发刷新所述存储器区段中的所
述数据的部分或全部。例如,可以将所述错误检测方案的结果与阈值比较。响应于确定了所
述错误检测方案的结果指示所述存储器区段中的错误大于所述阈值,则可以在所述存储器
区段中触发刷新。

如上文讨论的,所述阈值可以取决于一个或多个因素来选择,例如:受到潜在刷新
的存储器区段的状态(例如,数据是否最近被折叠到MLC块中;所述块的编程/擦除循环的数
量;在所述块已被编程之后对所述块的读取数量);环?#31243;?#20214;(例如,所述存储器设备的温度
(例如,容纳存储器阵列的存储器芯片的温度);所述的存储器设备Vcc(例如,供应给所述存
储器芯片的功率);等等)。

例如,ECC引擎可以生成BER。可以将所述BER与阈?#21040;?#34892;比较,以便判定是否触发
刷新所述存储器区段中的所述数据的部分或全部。一种类型的ECC引擎是具有2K?#32440;?#25968;据
中继线(大致16K比特)的BCH引擎。在这个示例中,所述ECC引擎不能校正多于122比特的错
误,这被认为是不可校正的ECC(UECC)。可以将所述BER与RfECC(刷新ECC)进行比较。所述
RfECC可以是预定的静态数,例如100。可替代地,所述RfECC可以是取决于所述存储器设备
的多个不同条件的变化的数。作为一个示例,当检查在将数据从SLC折叠到MLC块中之后立
即检查所述MLC块时,可以使用第一RfECC。之后可以使用不同于所述第一RfECC的第二
RfECC。作为另一个示例,RfECC可以取决于所述块的老化或磨损而改变。可以使用多个不同
的寿命指示符,例如在对块编程之后已经对所述块施加的编程/擦除循环(P/E)或读取数
量。在上文给出的示例的背景下,RfECC可以随着块的老化而改变,例如RfECC为100、80和
60,分别将所述块确定为“较新?#34180;ⅰ?#20013;等老化”和“?#29616;?#32769;化?#34180;?#22312;此方面,刷新所述块(或块的
子部分)可以随着所述块老化而变得更具?#33268;?#24615;。同样,RfECC可以取决于对所述块的读取
数量而改变,其中RfECC随着对所述块的读取数量的增大而减小。同样,此方面,刷新所述块
(或块的子部分)可以随着在所述块上进行更多读取而变得更具?#33268;?#24615;。

作为又一个示例,RfECC可以取决于所述存储器设备的总体条件而改变。总体条件
可以包括所述存储器设备内部的条件,例如Vcc水平(可以由系统电路来确定)、或者可以包
括所述存储器设备的环?#31243;?#20214;,例如温度。在温度的背景下,RfECC在所述存储器设备的温
度高于温度阈值时可以较高、并?#20197;?#25152;述存储器设备的温度低于温度阈值时可以?#31995;汀?br />

响应于确定刷新所述存储器区段,在810,可以在所述存储器区段的一部分(或全
部)上进行对所述存储器区段的刷新。所述刷新可以使用不同于所述第一编程方案的第二
编程方案在804进行。

如上文讨论的,图7A展示了在擦除了块之后在804可以使用的编程方案的一个示
例。因为在810进行了刷新,数据已经被编程到所述存储器区段中,但具有移位的Vt。在此方
面,用于进行刷新的所述(多个)步骤和/或在所述步骤中使用的电压可以不同于在擦除了
块之后在804使用的编程方案。例如,图7A展示了第一/模糊/精细的不同步骤。在一个实施
例中,所述刷新没有进行“第一步骤”和“模糊”步骤,而是仅进行“精细”步骤。作为另一个示
例,在所述刷新中使用的电压可以不同于在擦除了块之后在804使用的编程方案。

例如,在所述每单元3位NAND闪存中,所述刷新过程可以包括使用初始编程电压。
如下文更详细讨论的,所述初始编程电压可以是静态的或动态的。将有待被编程到相同状
态的单元一起编程。更具体地,字线可以包括例如14万个单元。所述字线上的用于刷新到A
状态的所述单元中的每一个可以同时被编程。在施加了编程电压之后,所述编程验证电路
可以使用一组预定电压来判定所述单元是否已被恰当地编程。出于例示的目的,3位/单元
NAND闪存的从A到G的验证电平可以包括0.8、1.6、2.4、3.2、4.0、4.8、5.6V。在编程验证失败
的情况下,可以增大编程电压(例如,增大40mV),并且可以重复这个过程。在一个实施例中,
这个过程的重复次数可以局限于预定数量。之后,所述存储器芯片可以像所述存储器系统
控制器报告失败,如下文更详细讨论的。可以对于状态A至G中的每个状态重复这个过程。

如上文讨论的,在所述刷新操作中使用的电压在一个实施例中可以是静态的并且
在替代性实施例中可以是动态的。例如,响应于确定了将进行所述刷新,可以使用(多个)预
定的静态电压来刷新所述存储器区段。作为另一个示例,响应于确定了将进行所述刷新,可
以动态地选择在所述刷新中使用的电压。更具体地,所述电压可以基于一个或多个因素进
行选择,包括:所述存储器区段中的错误的量;和/或所述存储器设备的总体条件。例如,查
找表可以将不同的BER与不同的编程电压相关联。在此方面,较高的BER可以对刷新操作产
生较高的编程电压。

此外,响应于在808确定了将触发刷新,在810可以在多个不同时刻进行所述刷新。
在一个实施例中,在810的刷新可以立即响应于在808确定了将触发刷新。在替代性实施例
中,在810的刷新不需要立即响应于在808确定了将触发刷新而进行。而是,受到刷新的所述
存储器区段、例如块可以被添加到用于刷新的存储器区段列表中。当所述存储器设备闲置
时,所述存储器设备可以刷新所述列表上的存储器区段。

进一步,如上文讨论的,可以刷新不同的存储器区段。作为一个示例,可以刷新整
个块。更具体地,在块内的单个读取可以触发刷新整个块。作为另一个示例,可以刷新一个
块的子部分。更具体地,可以刷新一个块内的一个或多个特定字线,而可以不触摸所述块中
的其余字线。如上文讨论的,一个块可以由多个字线构?#26705;?#20363;如字线0至127。可以在单个字
线上、例如字线50上进行读取。所述存储器设备可以基于来自读取字线50的BER确定应当刷
新字线50。在此方面,所述存储器设备可以仅刷新字线50,而不刷新字线0-49或51-127。

图8B展示了将数据编程到存储器区段中、判定是否刷新所述数据、并刷新所述数
据的部分或全部的第二示例的流程图850。在852,检测例如由于数据保持或循环而造成的
潜在数据损坏。在854,扫描所述系统的潜在损坏数据的物理地址。所述系统的扫描可以在
主机读取(例如,所述主机系统命令了所述读取)的过程中、或在背景系统扫描的过程中进
行,如下文更详细讨论的。

在856,存储包含由于数据保持或循环而造成的潜在损坏数据的块的地址。在858,
将所述数据读取到所述ECC引擎,并且校正所述数据。在860,将校正数据发送回到所述NAND
闪存芯片、并且所述NAND闪存芯片将其用作原始数据来验证原始位置中的原始数据。如上
文讨论的,所述NAND闪存芯片可以接收校正数据以进行刷新。更具体地,所述NAND闪存芯片
可以根据所接收的校正数据来确定一个字线中的哪些单元将被编程到哪个状态(例如,在
每单元3位中,状态A-G之一)、将所确定的单元刷新到所述状态、并且使用编程验证来判定
所述刷新是否已使得所述单元具有与所述状态相对应的值)。在862,可以将这个验证过程
应用于整个块、或仅应用于这个块的一部分,例如受影响的字线的上部页、中页、下部页、或
多个页的组合。在864,可以应用所述编程脉冲来将所述数据重新编程回到所述位置,直到
所述验证过程通过了验证标准。

图9展示了触发对数据的读取、使用错误校正编码(ECC)确定位错误率(BER)、并使
用所述BER来判定是否刷新所述数据的一个示例的流程图900。在902,判定是否请求了主机
读取。响应于确定请求了主机读取,在904,进行主机读取。可替代地,可以进行内部读取。例
如,所述存储器系统控制器可以分析块的多个不同特征,例如P/E循环,以便判定一个块是
否是内部读取的候选物。更具体地,具有高/E的块(指示了较多地被使用的块并且因此更易
于出现错误)可以是内部读取的候选物。在906,判定一个块是否包含触发内部读取的特征。
如果是,则在908,进行内部读取。

在910,使用所述ECC引擎来确定BER。在912,访问用于触发刷新的BER阈值。如上文
讨论的,所述BER阈值可以是静态或动态的。在914,将BER与所述BER阈?#21040;?#34892;比较。响应于
确定了BER大于所述BER阈值,在916,将所述块(或所述块的子部分)放到有待刷新的块(或
块的子部分)清单上。

图10A展示了从控制存储器芯片的存储器设备控制器的角度看,对数据进行刷新
的第一示例的流程图1000,其中所述存储器芯片进行刷新验证。在1002,所述存储器系统控
制器判定是否在所述块(或所述块的一部分)上进行刷新。如果是,则在1004,所述存储器系
统控制器发送刷新命令和所述数据给所述存储器芯片。在1006,所述存储器系统控制器判
定所述存储器芯片是否已经返回了编程验证确认。如下文讨论的,所述编程验证确认通过
所述存储器芯片指示所述刷新已经成功地进行。响应于所述存储器芯片控制器确定了没有
接收到编程验证确?#24076;?#22312;1008,所述存储器系统控制器可以命令对所述块进行重新编程。例
如,所述存储器系统控制器可以命令所述存储器芯片将所述数据编程到分开的块(例如,通
过使用图7A中展示的序列)中、并且接着命令擦除所述块。可替代地,响应于所述存储器芯
片控制器确定了没有接收到编程验证确?#24076;?#25152;述存储器芯片控制器可以命令所述存储器芯
片再次进行所述刷新。响应于接收到关于没有接收到编程验证确认的第二指示,所述存储
器系统控制器可以命令对所述块进行重新编程。

图10B展示了从存储器芯片的角度看,对数据进行刷新的第一示例的流程图1050,
其中所述存储器芯片进行刷新验证。在1052,所述存储器芯片从所述存储器系统控制器接
收刷新命令和所述数据。在1054,所述存储器芯片刷新所述块的一部分(或全部)。在1056,
所述存储器芯片进行编程验证以验证所述刷新是否成功。响应于确定了编程验证已发生,
在1058,所述存储器芯片可以发送编程验证确?#32454;?#25152;述存储器系统控制器。响应于确定了
编程验证还没有发生,在1060,所述存储器芯片可以发送编程验证失败给所述存储器系统
控制器。

在替代性实施例中,响应于确定了编程验证指示失败,所述存储器芯片可以再次
进行所述刷新。例如,所述存储器芯片可以修改进行刷新的电压(例如,增大电压)并且接着
用经修改的电压来进行所述刷新。之后,所述存储器芯片可以进行编程验证。所述存储器芯
片可以将这些步骤迭代预定次数,每次迭代?#25216;?#26597;所述编程验证。如果在预定的迭代次数
之后没有发生编程验证,则所述存储器芯片可以将编程验证失败发生给所述存储器系统控
制器。

图11A展示了从控制存储器芯片的存储器设备控制器的角度看,对数据进行刷新
的第二示例的流程图1100,其中所述存储器系统控制器进行验证。在1102,所述存储器系统
控制器判定刷新是否是必须的或必要的。如果是,则在1104,所述存储器系统控制器将计数
器设定为零。在1106,所述存储器系统控制器设定初始刷新编程电压。如上文讨论的,所述
初始刷新编程电压可以是静态的或动态的。例如,在一个实施例中,所述初始刷新编程电压
可以基于BER进行选择。

在1108,将刷新命令、编程电压和数据发送?#20102;?#36848;存储器芯片。在1110,将计数器
加一。在1112,所述存储器系统控制器命令所述存储器芯片读取已被刷新的数据。在1114,
所述存储器系统控制器从所述存储器芯片接?#25214;?#34987;读取的数据。在1116,所述存储器系统
控制器在读取的数据上使用所述ECC引擎来确定BER。

在1118,所述存储器系统控制器判定BER是否小于阈值。在第一实施例中,所述存
储器系统控制器可以将BER与被用于触发刷新的相同阈?#21040;?#34892;比较。如果BER不小于所述阈
值,则在1120,可以检查所述计数器以判定迭代次数(由所述计数器指示)是否小于为了重
新发送刷新命令而?#24066;?#30340;次数。如果迭代次数小于?#24066;?#36845;代的次数,则在1122,所述存储器
系统控制器选择新的编程电压、别接着迭代至1108。所选择的这个新的编程电压可以包括
从所述初始编程电压增大。编程电压的增大可以是静态的?#20197;は热?#23450;的。可替代地,编程电
压的增大可以是动态的,例如取决于BER。

响应于在1120确定了已经查过发送刷新命令的次数,在1124,对所述块进行重新
编程。例如,所述存储器系统控制器可以命令所述存储器芯片将所述数据编程到分开的块
(例如,通过使用图7A中展示的序列)中、并且接着命令擦除所述块。

图11B展示了从存储器芯片的角度看,对数据进行刷新的第二示例的流程图1150,
其中所述存储器设备控制器、而不是所述存储器芯片进行验证。在1152,判定所述存储器芯
片是否接收到刷新命令、编程电压和数据。响应于接收到,在1154,所述存储器芯片使用编
程电压和数据刷新所述块(或所述块的一部分)。

图12展示了从控制存储器芯片的存储器设备控制器的角度看,对数据进行刷新的
第三示例的流程图1200,其中所述存储器系统控制器和所述存储器芯片均进行验证。在
1202,所述存储器系统控制器判定是否在所述块(或所述块的一部分)上进行刷新。如果是,
则在1204,所述存储器系统控制器发送刷新命令和所述数据给所述存储器芯片。在1206,所
述存储器系统控制器判定所述存储器芯片是否已经返回了编程验证确认。如上文关于图
10B讨论的,所述存储器芯片可以进行编程验证。

响应于确定了没有接收到编程验证确?#24076;?#22312;1208,所述存储器系统控制器将计数
器设定为零。在1210,所述存储器系统控制器设定初始刷新编程电压。在1212,将刷新命令、
编程电压和数据发送?#20102;?#36848;存储器芯片。在1214,将计数器加一。在1216,所述存储器系统
控制器命令所述存储器芯片读取已被刷新的数据。在1218,所述存储器系统控制器从所述
存储器芯片接?#25214;?#34987;读取的数据。在1220,所述存储器系统控制器在读取的数据上使用所
述ECC引擎来确定BER。

在1222,所述存储器系统控制器判定BER是否小于阈值(例如用于触发刷新的阈
值)。如果BER不小于所述阈值,则在1224,可以检查所述计数器以确定迭代次数(由所述计
数器指示)是否小于为了重新发送刷新命令而?#24066;?#30340;次数。如果迭代次数小于?#24066;?#36845;代的
次数,则在1226,所述存储器系统控制器选择新的编程电压、别接着迭代至1212。如上文讨
论的,所选择的这个新的编程电压可以包括从初始编程电压增大,其中这种增大是静态的
?#20197;は热?#23450;的、或是动态的。响应于在1224确定了已经查过发送刷新命令的次数,在1228,
对所述块进行重新编程。

如上文讨论的,可以在多个不同时刻判定是否进行刷新。例如,这种确定是基于正
在进行的事件、例如基于将数据编程到块中来进行的。在一个实施例中,将数据编程到块中
(例如从SLC折叠到MLC中,下文关于图13A进行讨论)可以触发判定是否进行刷新。在替代性
实施例中,从将数据编程到块中起过去的时间(例如,如果从编程起过去的时间大于预定
量,下文关于图13B进行讨论)可以触发判定是否进行刷新。作为另一个示例,这种确定可以
基于所述存储器设备自身来进行。在一个实施例中,所述存储器中的块的寿命(或寿命指示
符)可以触发判定是否进行刷新(例如编程擦除计数大于预定阈值,下文关于图13C进行讨
论)。进一步,关于判定是否进行刷新的所述阈值可以改变。

图13A展示了在编程操作之后判定是否进行刷新操作并进行刷新操作的流程图
1300。对块的编程可以触发判定是否进行刷新操作。在1302,针对具体操作、即针对X3存储
器的编程操作,设定?#25910;?#20301;计数(FBC)阈值(RfECC(新近))。在1304,进行正常的SLC到MLC数
据折叠,其中所述折叠操作在X3存储器中进行。在美国公开申请号2013-0173844 A1中公开
了将数据从SLC折叠到MLC的一个示例。所述折叠操作可以得到大于所希望的FBC。

在1306,在刚被编程的块上进行增强型写入后读取。更具体地,ECC引擎可以分析
所述读取的结果以确定FBC。因此,除了在所述NAND存储器芯片上进行的内部验证(在对所
述数据块编程的过程中进行)之外,所述系统存储器控制器可以使用所述ECC引擎来验证写
入。在1308,将FBC与RfECC(新近)进行比较。如果FBC大于RfECC(新近)(例如,FBC大于在对
所述块编程后立即希望的量),则在1310,所述存储器系统控制器开始在所述块的标记区段
(例如,所述块内的某些页)上使用SLC源数据来进行刷新操作、并且向所述存储器芯片发送
命令来进行所述NAND刷新操作。更具体地,在所述折叠操作中使用的所述SLC块中的数据可
以与所述刷新命令一起被发送?#20102;?#36848;存储器芯片。

图13B展示了判定是否对遭受数据保持问题的块进行刷新操作并进行刷新操作的
流程图1330。如上文讨论的,在一段时间之后,所述块中的数据可能遭遇数据保持问题。在
此方面,数据在块中存储的时间越长,数据保持问题的可能性就越大。因此,在空闲时间期
间,可以检查所述块以便确定数据已经在块中存储了多长时间。在一个实施例中,可以对包
括的数据在其中存储了比预定时间量更长的时间段的块进行标记,以便判定是否进行刷新
操作。在替代性实施例中,可以对包括的数据在其中存储了最长时间的块(与其他块相比)
进行标记,以便判定是否进行刷新操作。

在1332,针对具体操作、即针对遭受数据保持的块,设定?#25910;?#20301;计数(FBC)阈值
(RfECC(DR))。作为一个示例,可以分析具有?#29616;?#25968;据保持应力的块,例如3X红外(IR)-X回
流或DR块。在1334,使用CVD或动态读取操作来扫描块以便确定由于3X Ir-回流造成的Vt下
移的量。CVD是一种类型的单元Vt分布。CVD可以用作更精细形式的动态读取,其中读取电压
增量式改变,直到通过ECC引擎确定的读取结果是充分可校正的。

在1336,将FBC与RfECC(DR)进行比较。如果FBC大于RfECC(DR),则在1338,所述存
储器系统控制器开始在标?#19988;?#19978;进行刷新操作。不像图13A中使用SLC源数据,将所述页读
出到所述存储器系统控制器。所述存储器系统控制器接着可以使用所述ECC引擎来进行ECC
校正,以便获得校正数据发?#36879;?#25152;述存储器芯片,以便在刷新中使用。

在1340,应用相同的页数据刷新。如上文讨论的,使用来自这同一页的经ECC校正
的数据图案进行所述刷新。在此方面,所述经ECC校正的数据图案被发送?#20102;?#36848;存储器芯
片,所述存储器芯片可以使用所述经ECC校正的数据图案来刷新这同一页。

图13C展示了判定是否对遭受循环应力问题的块(例如,具有高P/E计数(PEC)的
块)进行刷新操作并进行刷新操作的流程图1360。如上文讨论的,块的性能可能由于老化或
磨损而变差。在此方面,可以使用寿命指示符来判定一个块是否可能潜在地遭遇数据保持
问题。因此在空闲时间期间,可以检查所述块的寿命指示符(例如,P/E计数)来确定所述块
的相对老化或磨损。在一个实施例中,可以对具有的P/E计数大于预定P/E计数的块进行标
记,以便判定是否进行刷新操作。在替代性实施例中,可以对具有最高P/E计数的块(与其他
块相比)进行标记,以便判定是否进行刷新操作。

在1362,针对具体操作、即针对遭受高PEC的块,设定?#25910;?#20301;计数(FBC)阈值(RfECC
(PEC))。在1364,使用CVD或动态读取操作来扫描块以便确定Vt下移的量。

在1366,将FBC与RfECC(PEC)进行比较。如果FBC大于RfECC(PEC),则在1368,所述
存储器系统控制器开始在标?#19988;?#19978;进行刷新操作。不像图13A中使用SLC源数据,将所述页
读出到所述存储器系统控制器。所述存储器系统控制器接着可以使用所述ECC引擎来进行
ECC校正,以便获得校正数据发?#36879;?#25152;述存储器芯片,以便在刷新中使用。

在1370,应用相同的页数据刷新。如上文讨论的,使用来自这同一页的经ECC校正
的数据图案进行所述刷新。在此方面,所述经ECC校正的数据图案被发送?#20102;?#36848;存储器芯
片,所述存储器芯片可以使用所述经ECC校正的数据图案来刷新这同一页。

所述指令可以被实施在计算机可读介质中。所述计算机可读介质可以是单个介
?#21097;?#25110;者所述计算机可读介质可以是单个介质或多个介?#21097;?#20363;如集中或分布式数据库、和/
或存储一组或多组指令的相关联缓存和服务器。术语“计算机可读介质”还可以包括可能能
够存储、编码和/或承载一组指令以便由处理器执行的、或者可以使得计算机系统执行在此
公开的所述方法或操作中的?#25105;?#19968;种或多种的任何介质。

所述计算机可读介质可以包括固体存储器,例如存储卡或容纳一个或多个?#19988;资?br />性只读存储器的程序包。所述计算机可读介质还可以是随机存取存储器或其他?#36164;?#24615;可再
写入存储器。此外,所述计算机可读介质可以包括磁光介质或光介?#21097;?#20363;如用于捕捉载波信
号、例如通过传输介质传达的信号的盘、带、或其他存储设备。电子?#22987;?#30340;数字文件附件、或
其他自含信息档案或档案组可以被视为分布式介?#21097;?#25152;述介质可以是?#34892;?#23384;储介质。所述
计算机可读介质优选是?#34892;?#23384;储介质。相应地,本公开可以被认为包括计算机可读介质或
分布式介质以及其他等效物和在其中可以存储数据或指令的后续介质中的任何一种或多
种。

可替代地或另外,可以构造专用硬件实施方案,例如专用集成电路、可编辑逻辑阵
列和其他硬件设备,来实施在此描述的所述方法中的一种或多种。可以包括多个不同实施
例的装置和系统的应用程序可以广义地包括各种各样的电子系统和计算机系统。在此描述
的一个或多个实施例可以使用两个或更多特定的互连的硬件模块或设备以及相关的控制
信号和数据信号来实施多个功能,所述信号可以在所述模块之间并且通过所述模块传送、
或者作为专用集成电路的一部分。相应地,本系统可以涵盖软件、固件、以及硬件实现方式。

在此描述的所述展示旨在提供对多个不同实施例的结构的一般性理解。所述展示
不旨在用作对利用在此描述的结构或方法的装置、处理器和系统的所有要素和特征的全面
描述。本领域技术人员在查阅本公开后将清楚许多其他的实施例。可以利用并从本公开推
导出其他的实施例,使得可以在不背离本公开的?#27573;?#30340;情况下作出结构上和逻辑上的替代
和改变。此外,所述展示仅是表示性的并且可能不是按比例绘制的。所述展示中的某些比例
可能被夸大,而其他比例可能被最小化。相应地,本公开和所述?#21152;?#34987;视为展示性的而不是
限制性的。

以上公开的主题应被视为展示性的而不是限制性的,并且所附权利要求书旨在覆
盖落入本说明书的真正精神和?#27573;?#20869;的所有这样的修改、增强、和其他实施例。因此,在法
?#31245;市?#30340;最大程度上,将由对以下权利要求书及其等效物的最宽的可容许的理解来确定范
围,并且此?#27573;?#19981;应由以上具体实施方式来限制或?#38469;?br />

关于本文
本文标题:用于刷新存储器设备中的数据的系统和方法.pdf
链接地址:http://www.pqiex.tw/p-6091834.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 内蒙快三开奖直播现场 11选5私彩代理怎么赚钱 三d两码和尾分布图 北京快中彩玩法 大型信誉棋牌捕鱼平台 复式注数计算器 悠洋棋牌官网手机版 14号福彩中奖号码 山西体彩新11选5网上怎么买 双色球复式投注表