基于块族的电压分布参数来避免错误的制作方法

文档序号:31712970发布日期:2022-10-04 20:18阅读:66来源:国知局
基于块族的电压分布参数来避免错误的制作方法

1.本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及使用电压分布的特征的错误避免。


背景技术:

2.存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。


技术实现要素:

3.在一个方面中,本公开涉及一种方法,其包括:通过处理装置接收从与所述处理装置耦合的存储器装置的块读取数据的请求;使用将块识别符映射到对应块族识别符的第一数据结构确定与所述存储器装置的所述块相关联的块族;使用将块族识别符映射到对应电压分布参数值的第二数据结构确定与所述块族相关联的电压分布参数值;确定与所述电压分布参数值相关联的读取电平集,其中所述读取电平集中的每个读取电平对应于所述存储器装置的所述块包括的至少一个存储器单元的相应电压分布;和使用所述所确定的读取电平集从所述存储器装置的所述块读取数据。
4.在另一个方面中,本公开涉及一种系统,其包括:存储器;和处理装置,其可通信地耦合到所述存储器,所述处理装置执行包括以下操作的操作:从所述存储器的块接收读取数据请求;使用将一或多个块识别符集映射到对应电压分布参数值的数据结构确定与所述存储器的所述块相关联的电压分布参数值;确定与所述电压分布参数值相关联的读取电平集,其中所述读取电平集中的每个读取电平对应于在其中存储所述存储器的所述块的至少一部分的至少一个存储器单元的相应电压分布;和使用所述所确定的读取电平集从所述存储器的所述块读取数据。
5.在又一个方面中,本公开涉及一种存储指令的非暂时性机器可读存储媒体,所述指令致使处理装置执行包括以下操作的操作:接收从与所述处理装置耦合的存储器装置的块读取数据的请求;使用将块识别符映射到对应块族识别符的第一数据结构确定与所述存储器装置的所述块相关联的块族;使用将块族识别符映射到对应电压分布参数值的第二数据结构确定与所述块族相关联的电压分布参数值;确定与所述电压分布参数值相关联的读取电平集,其中所述读取电平集中的每个读取电平对应于所述存储器装置的所述块包括的至少一个存储器单元的相应电压分布;和使用所述所确定的读取电平集从所述存储器装置的所述块读取数据。
附图说明
6.根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2示意性地说明根据本公开的一些实施例的由三层级存储器单元所展现的缓慢电荷损失引起的时间电压移位。
9.图3示意性地说明根据本公开的一些实施例的对应于电压分布的特定特征的分布电压以及电压分布和分布电压随时间的改变。
10.图4a和4b描绘根据本公开的一些实施例的实例读取电平管理器组件。
11.图4c描绘根据本公开的一些实施例的可使用块族确定电压分布参数的实例读取电平管理器。
12.图4d描绘根据本公开的一些实施例的可使用块识别符集确定电压分布参数的实例读取电平管理器。
13.图5a是根据本公开的方面的用以基于存储器单元的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法的流程图。
14.图5b是根据本公开的方面的用以基于块的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法的流程图。
15.图5c是根据本公开的方面的用以基于包含块的块族的分布电压确定块的读取电平且使用所确定的读取电平读取数据的实例方法的流程图。
16.图5d是根据本公开的方面的用以基于块的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法的流程图。
17.图6是根据本公开的方面的用以执行确定块的分布电压并将分布电压存储在块元数据表中的分布电压校准扫描的实例方法的流程图。
18.图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
19.本公开的方面是针对使用电压分布参数的存储器装置中的错误避免,所述电压分布参数例如对应于电压分布的电压以及随着电压分布归因于缓慢电荷损失改变而发生的随时间的改变。存储器子系统可以为存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
20.存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为“与非”(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand装置),每一平面由物理块集组成。每一块由页集组成。每个页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值(例如,“0”和“1”或这类值的组合)表示。
21.数据操作可以由存储器子系统执行。数据操作可为主机发起的操作。举例来说,主机系统可在存储器子系统上发起数据操作(例如写入、读取、擦除等)。主机系统可将存取请
求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,lba、名字空间)可为主机数据的元数据的部分。元数据还可以包含错误处理数据(例如,错误校正码(ecc)、奇偶校验数据)、数据版本(例如,用于区分所写入数据的新旧)、有效位图(其lba或逻辑传送单元含有有效数据)等。
22.存储器装置包含多个存储器单元,其中的每一个可取决于存储器:单元类型而存储一或多个信息位。可通过将某一电压施加到存储器单元来编程存储器单元(向其写入),这使得存储器单元保持电荷,从而允许调制由存储器单元生成的电压分布。此外,精确地控制存储器单元所存储的电荷的量允许使用对应于不同逻辑电平的多个阈值电压电平。多个阈值电平允许单个存储器单元存储多位信息:以2n个不同阈值电压电平进行操作的存储器单元能够存储n位信息。因此,可通过将存储器单元所展现的所测量电压与一或多个阈值电压电平进行比较以便区分用于单层级单元的两个逻辑电平以及区分用于多层级单元的多个逻辑电平,以此来执行读取操作。
[0023]“块”在本文中应指代连续或不连续的存储器页的集。“块”的实例为“可擦除块”,其为存储器的最小可擦除单元,而“页”为存储器的最小可写入单元。每一页包括存储器单元集。存储器单元是存储信息的电子电路。“超级块”在本文中应指代横跨以交错方式写入的多个裸片的块集。在某些情况下,超级块可横跨例如ssd等存储装置内的所有裸片。超级块可含有来自单个裸片的多个块,例如每平面一个。驱动器可通常以超级块为基础管理数据的擦除和编程。
[0024]“读取电平”在本文中应指代电压位置。读取电平按电压递增方式编号为l1到2n,其中n是可存储于单元中的位数。作为实例,对于对应于每单元3位的三层级单元(tlc),可存在8个阈值分布(电平),且7个读取阈值(读取阈值电压)可用于在电平之间区分。“读取电平值”在本文中应指代电压或表示出于读取所述单元的目的而施加到读取元件(通常为nand单元的控制栅极)的电压的数字-音频转换器(dac)值。“读取电平偏移”在本文中应指代确定读取电平值的等式的组件。可对读取电平偏移求和(例如,读取电平值=offset_a+offset_b+
……
)。“读取电平基数”在本文中应指代读取电平偏移中的一个。举例来说,读取电平基数可存储在存储器装置的元数据中。每一读取电平可对应于上文描述的阈值电平中的一个。“校准”在本文中应指代基于所选数据状态度量(例如,位错误率)的一或多个测量来更改读取电平值(可能通过调整读取电平偏移或读取电平基数)以更好地匹配用于读取或读取集的理想读取电平。
[0025]
写入操作可通过将对应于逻辑值的“编程”电压施加到存储器单元的写入栅极而将例如零或一等逻辑值存储在单元中。可通过将读取电压施加到存储器单元的控制栅极以及确定读取电压是否足以克服存储于单元处的电压来执行读取操作。作为实例,在单层级单元中,第一电压电平(例如,0伏)可对应于逻辑一,且第二电压电平(例如,3伏)可对应于逻辑零。可通过将3伏施加到写入栅极来存储逻辑零,且逻辑一对应于擦除分布,所述擦除分布在此实例中对应于0伏。为了读取单元,电压可施加到单元的控制栅极。如果所施加的读取电压致使晶体管传导,则存储在单元中的电压小于所施加电压。因此,处于第一电压电
平和第二电压电平之间的电压随后可施加到控制栅极以确定逻辑零或一是否存储在单元中。举例来说,如果1.5伏施加到控制栅极,且单元阈值电压处于3伏(逻辑零),则晶体管不传导(因为所施加的1.5伏不能克服所写入的3伏),且所存储值可确定为逻辑零。替代地,如果单元阈值电压处于0伏(逻辑一),且1.5伏施加到控制栅极,则晶体管传导(因为所施加的1.5伏克服所写入的伏数),借此指示逻辑一。
[0026]
如上文所论述,n个信息位可使用多个电压电平存储于存储器单元中。读取电压电平可理解为对应于两个电压分布之间的谷值,如下文所描述。读取电压电平可在两个阈值电压之间,所述阈值电压中的每一个可使所述电压电平与另一电压电平分离。为了存储n个信息位,可限定2n个阈值分布(电平)。为了读取2n个阈值分布,可建立2
n-1个读取阈值(读取值)。举例来说,为了存储可表示四个不同逻辑值的2个信息位,相应阈值电压可为1伏、2伏和3伏。可通过将对应于逻辑值的编程电压电平施加到单元的写入栅极而将特定逻辑值存储在单元中。接着,为了从单元读取两个信息位,可执行三个操作以识别克服存储在单元中的电压的电压:在控制栅极上施加0.5伏并读取(例如,通过确定晶体管是否传导),施加1.5伏并读取,以及施加2.5伏并读取。结果可用于确定两个逻辑位的值。如果施加0.5伏致使晶体管传导,则0.5伏已经克服所写入电压,因此所写入电压为0伏(例如,逻辑零)。类似地,如果施加1.5伏致使晶体管传导,则所写入电压为1伏(例如,逻辑一),且阈值电压为1.5伏。如果施加2.5伏致使晶体管传导,则所写入电压为2伏(例如,逻辑三)。否则,所写入电压为3伏(例如,逻辑二)。当写入时,置于写入栅极上的电压不精确,且历经若干存储器单元可表示为编程电压电平中的每一个附近的电压的分布。因此,在存储可被解译为表示两个位的电压的单元中,存在四个相应阈值电压分布。每一分布可理解为在相应编程电压电平处具有表示最高发生率的峰值的曲线。每一电压分布可具有在峰值的左侧和右侧上减小的发生率。所述发生率可朝向最小值减小,所述最小值在峰值的左侧和右侧上的电压(编程电压电平以下和以上)处接近发生率0。最小发生率的电压可对应于电压分布和相邻电压分布之间的边界处的阈值电压。
[0027]
由于被称为缓慢电荷损耗(“scl”)的现象,存储器单元的阈值电压在时间上随着单元的电荷降级而发生改变,其被称作“时间电压移位”(因为使电荷降级导致电压分布沿电压轴朝较低电压电平移位)。时间电压移位(tvs)在本文中应指代单元的所测量电压随时间的改变。时间电压移位可包含不同分量,例如固有电荷损失、系统电荷损失、快速电荷损失等。由某些nand技术形成的存储器通常展现比浮动栅极nand更多的tvs。tvs通常随着编程擦除循环(pec)、较高温度和较高编程电压而增加。tvs展示显著的裸片到裸片变化。在展现tvs的存储器中,阈值电压首先快速改变(紧接在存储器单元被编程之后),且接着相对于从单元编程事件开始经过的时间以大致对数线性方式减慢。由缓慢电荷损失引起的时间电压移位如果不减小则可能会使读取操作中的位错误率增大。
[0028]
本公开的方面通过提供一种存储器子系统控制器来解决以上和其它缺陷,所述存储器子系统控制器通过测量存储于存储器装置中的每一块或块群组的电压分布参数值(“参数值”)且识别对应于参数值的读取电平值来确定适于缓解时间电压移位的读取电平值。存储器子系统控制器可在从块或块群组读取数据时使用读取电平值以缓解时间电压移位。参数值可以是例如对应于存储器单元的电压分布的特定特征的电压。所述特定特征可以是例如电压分布的特性,例如电压分布的峰值、中值、均值或模。参数值随时间改变,且可
对应于存储器单元的时间电压移位的量。存储器子系统控制器可使用特定参数值来确定适于对应于所述特定参数值的时间电压移位量的读取电平。
[0029]“分布电压”在本文中应指代分布参数值,其为电压且对应于存储器单元的电压分布的特定特征。举例来说,分布电压可理解为对应于电压分布的峰值的电压值。分布电压可以是电压分布的中值、均值、模或其它特性。电压分布可以是存储器单元的电压分布中的一个特定电压分布,例如三层存储器单元的第7电压分布(或其它指定电压分布)可存储可表示对应于编号为0到7的8个电压分布的八个值的电压。存储器子系统控制器可在将参数值映射到相应读取电平值的映射表中查找对应于特定参数值的读取电平值。举例来说,映射表可以是将分布电压映射到读取电平的电压映射表。可使用某一过程从经验数据生成电压映射表,所述过程识别对应于合适的读取电平值(例如,生成低错误率、高准确性等的读取电平值)的分布电压。
[0030]
在一些实施例中,内插可用于确定电压映射表中不存在的分布电压的读取电平。如果分布电压不在电压映射表中,则存储器子系统控制器可通过在映射表中的分别大于和小于分布电压的两个所挑选电压值之间内插来确定分布电压的读取电平值。举例来说,第一所挑选电压值可以是映射表中的小于分布电压的最大电压值,且第二所挑选电压值可以是映射表中的大于分布电压的最小电压值。读取电平可确定为第一电压值和第二电压值的平均值。举例来说,第一电压和分布电压之间的差可用于在加权平均值计算中相对于与第二值相关联的读取电平值对与第一值相关联的读取电平值加权。
[0031]
在一些实施例中,代替于测量用于每一存储器读取操作的块的分布电压,存储器子系统控制器可较不频繁地测量块的分布电压,且将分布电压存储在块元数据表或使块与分布电压相关联的其它映射表中。举例来说,可测量块的分布电压,且每当自从块的编程以来的时间相对于测量块的分布电压的先前时间增加了阈值量(例如,50%)时,将所述分布电压存储在块元数据表中。存储器子系统控制器可接着例如通过针对每一存储器读取操作在块元数据表中查找对应于块的分布电压而从块元数据表检索特定块的分布电压。存储器子系统控制器可接着使用电压映射表来确定对应于分布电压的读取电平。以此方式将分布电压与块相关联存储且在读取操作中存取所存储的分布电压使得能够快速且有效地执行读取操作,而无用以基于分布电压识别读取电平的相当大的额外延迟。
[0032]
在一些实施例中,存储器子系统控制器可将分布电压存储于块族元数据表中,所述块族元数据表使可表示块集的块族与分布电压相关联。存储器子系统控制器可维持使每一块集与对应块族相关联的块元数据表。块集可为例如某一范围的块识别符或其它期望具有类似scl特性的块集。为确定用于块读取操作的读取电平,存储器子系统控制器可识别含有所述块的块族(使用块元数据表),识别与块族相关联的分布电压(使用块族元数据表),并且识别对应于分布电压的读取电平(使用电压映射表)。随时间推移,可例如通过对将更新的每个块族中的块的分布电压采样来更新与块族元数据表中的每个块族相关联的分布电压。举例来说,可按周期性时间间隔,或在对块族中的块的下一写入操作之后经过一阈值时间段之后更新与块族相关联的分布电压。分布电压可理解为表示沿着轴的分布的“位置”。所述位置可对应于存储器单元的特定电压分布(例如,第7电压分布)的特征,例如峰值。随着编程后时间增加,由分布电压表示的特定分布的特征的位置朝向反映时间电压移位的状态的较低电压移动。存储器子系统控制器可将分布电压测量为块的特定存储器单元
或单元群组处的电压的值。测得的分布电压可用于确定存储器单元和有可能具有类似时间电压移位量的其它存储器单元的读取电平值,所述其它存储器单元例如是存储与被测量的存储器单元相同的块或超级块的数据的其它存储器单元。在特定编程后时间处,存储器子系统可在执行读取操作时通过测量特定存储器单元或单元群组处特定电压分布的特征的位置(“分布位置”)(例如分布的中值的电压)且将测得的位置(例如,分布电压)映射到先前已经确定为对应于分布位置的读取电平值,来缓解时间电压移位效应。存储器子系统可使用读取电平值从存储器单元读取数据。
[0033]
本公开的优点包含(但不限于)相比于尝试以更细粒度缓解时间电压移位的效应的其它技术,用以确定读取电平的操作的数目较小。举例来说,根据本公开,可按需(例如响应于存取特定块的请求)执行确定读取电平偏移的操作,而无可能在系统操作期间无限期地运行的垃圾收集相关操作的额外开销或复杂性。块或块群组的读取电平偏移根据块的新旧改变,这是因为由于时间电压移位效应本身的缘故,分布电压改变为对应于较旧块的值。此外,可当块被写入时删除块元数据表中的条目。此外,确定分布电压的操作可需要较少系统资源和较少读取,原因是读取不是在块层级完成而是在在块族层级完成。因此,在块族层级执行读取可提高系统性能。
[0034]
将分布电压与块族相关联地进行存储并且在读取操作中使用正被读取的块的块族存取所存储的分布电压可显著减小供元数据表使用的存储空间的量,原因是将每块族而非每块的每个关联存储于块族元数据表中。块族可对应于例如数百或数千个块,因此块族元数据表可显著小于其中为每个块存储与分布电压的单独关联的元数据表。由于块族可包含具有类似scl特性(例如新旧、耗损或温度历史)的块,因此使用单个分布电压确定块族中的块中的每一个的读取电平不大可能会引起读取准确度降低或读取错误增加。
[0035]
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),以及各种类型的非易失性双列直插式存储器模块(nvdimm)。计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
[0036]
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到
……”
或“与
……
耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
[0037]
主机系统120可包括处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制
器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
[0038]
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
[0039]
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
[0040]
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包括例如二维nand(2d nand)和三维nand(3d nand)。
[0041]
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(slc)可存储一个位每单元。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)和四层级单元(qlc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,和mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
[0042]
虽然描述了非易失性存储器装置,例如3d交叉点非易失性存储器单元阵列和nand型快闪存储器(例如,2d nand、3d nand),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、“或非”(nor)快闪存储器,以及电可擦除可编程只读存储器(eeprom)。
[0043]
存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其
组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。
[0044]
存储器子系统控制器115可包含被配置成执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程,包含处置存储器子系统110与主机系统120之间的通信。
[0045]
在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是替代地可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
[0046]
通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令来实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作,及与存储器装置130相关联的逻辑地址(如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
[0047]
在一些实施方案中,存储器子系统110可使用分条方案,根据此方案,每个数据有效负载(例如,用户数据)利用存储器装置130、140(例如,nand型快闪存储器装置)的多个裸片,使得有效负载分布在裸片子集上,而剩余的一或多个裸片用以存储错误校正信息(例如,奇偶校验位)。因此,本文将使用分条方案跨存储器装置的一组裸片分布的一组块称为“超级块”。
[0048]
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
[0049]
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理nand(mnand)装置。
[0050]
存储器子系统110包含读取电平管理器组件113,其可基于与存储器单元的电压分布的特定特征相关联的电压确定存储器单元的合适的读取电平。如上文所描述,时间电压移位致使存储器单元的阈值读取电平随时间改变。如下文所描述的基于分布电压确定的读取电平可缓解时间电压移位的效应。当将数据写入到存储器单元时,有多少电压置于单元的被写入栅极上并不精确。因此,为了应指定目标电压写入到若干存储器单元,存在目标电
压中的每一个附近的电压的分布。电压分布可以是跨被编程为与电压分布相关联的特定状态的多个存储器单元的阈值电压的分布。
[0051]
读取电平管理器组件113可在特定时间处执行校准扫描以测量与每一块(或超级块或其它存储单元)中的一或多个单元的电压分布的特定特征相关联的分布电压,且将测得的分布电压与块相关联地存储在块元数据表中。读取操作,读取电平管理器组件113可通过在块元数据表中查找块且从块元数据表检索对应于块的分布电压来确定对应于所述块的分布电压。读取电平管理器组件113可接着通过在电压映射表中查找对应于电压的读取电平来确定用于读取操作的合适的读取电平,且通过使用所述读取电平从块读取数据来执行读取操作。
[0052]
在特定实施例中,存储器子系统控制器115包含读取电平管理器组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,读取电平管理器组件113是主机系统110、应用程序或操作系统的部分。下文描述关于读取电平管理器组件113的另外细节。
[0053]
图2说明根据本公开的实施例的至少部分地由三层级存储器单元所展现的缓慢电荷损失引起的时间电压移位。虽然图2的说明性实例利用三层级单元,但可进行相同观测,且因此,相同的补救措施可适用于单层级单元和具有多个层级的任何存储器单元。可通过将特定电压(例如编程电压)施加到存储器单元来对存储器单元进行编程(写入),这生成由存储器单元保持的电荷。精确控制由存储器单元存储的电荷的量允许存储器单元具有对应于不同逻辑电平的多个阈值电压电平,因此有效地允许单个存储器单元存储多个信息位。以2n个不同阈值电压电平操作的存储器单元能够存储n个信息位。
[0054]
图表210和230中的每一个说明通过相应写入电平(其可被假设处于编程分布的中点处)编程以编码对应的逻辑电平的存储器单元的编程电压分布220a-220n(在本文中也被称作“编程分布”或“电压分布”或“分布”)。编程分布220a到220n可说明用于以相应写入电平(例如编程电压)编程的存储器单元的阈值电压的范围(例如阈值电压的正态分布)。为了区分邻近程序分布(对应于两个不同逻辑电平),定义读取阈值电压电平(由竖直虚线展示),使得低于读取阈值电平的任何测得电压与一对邻近程序分布中的一个程序分布相关联,而大于或等于读取阈值电平的任何测得电压与所述一对相邻分布中的另一程序分布相关联。在图表210中,在对应的程序分布下方展示存储器单元的八个状态(除了标记为er的作为已擦除状态的状态以外,未展示状态的分布)。每一状态对应于逻辑电平。阈值电压电平标记为va至vh。如所展示,低于va的任何测得电压与er状态相关联。标记为p1、p2、p3、p4、p5、p6和p7的状态分别地对应于分布22a-220n。
[0055]
编程后时间(tap)在本文中应指代从单元经写入起经过的时间并且与温度一起是时间电压移位(tvs)的主要驱动因素。可估计(例如,根据数据状态度量推断)或(例如,根据控制器时钟)直接测量tap。单元、块、页、块族等在具有(相对)小tap的情况下为新(或相对较新)并且在具有(相对)大tap的情况下为旧(或相对较旧)。时间片是两个tap点之间的持续时间,在此持续时间期间,可进行测量(例如在编程之后的8到12分钟进行参考校准)。时间片可由其中心点(例如,10分钟)参考。
[0056]
如从比较分别反映为0的编程后时间(tap)(紧接在编程之后)和t小时的tap(其中
t为小时数)的实例图表210和230看出,程序分布主要由于缓慢电荷损失而随时间变化。为了降低读取位错误率,可调整对应的读取阈值电压以补偿由竖直虚线展示的编程分布的移位。在本公开的各种实施例中,基于在裸片群组的一或多个代表性裸片处进行的测量针对裸片群组选择性地跟踪时间电压移位。基于对裸片群组中的代表性裸片进行的特性化裸片群组中的裸片的时间电压移位和操作温度的测量,更新用于针对裸片群组中的裸片读取存储器单元的读取阈值电压偏移且将其施加到基础读取阈值电平以执行读取操作。
[0057]
图3示意性地说明根据本公开的一些实施例的对应于电压分布的特定特征的分布电压以及电压分布和分布电压随时间的改变。虽然图3的说明性实例利用三层级单元,但可进行相同观测,且因此,相同的补救措施可适用于单层级单元和具有多个层级的任何存储器单元。图3展示说明编程后时间为0小时处存储器单元的电压分布的图表300,以及说明后续tap为t小时处存储器单元的电压分布的图表350。如上文关于图2所描述,电压分布320a-g在t小时之后已经移动,如图表350中所展示。
[0058]
图表300和350中的每一个示出通过相应写入电平(其可假定为处于编程分布的中点处)编程以编码相应逻辑电平的存储器单元的七个编程电压分布320a-320g。编程分布320a到320g类似于上文关于图2所描述的编程分布220a到220n。每一存储器单元具有八个状态,其包含对应于第一电压分布320a以下的电压的擦除状态,以及对应于七个电压分布320a到320g的七个逻辑电平状态。
[0059]
电压分布320a到320g可说明用于以相应写入电平(例如,编程电压)编程的存储器单元的阈值电压的范围(例如,阈值电压的正态分布)。上文关于图2所描述,为了区分邻近程序分布(对应于两个不同逻辑电平),定义读取阈值电压电平(由竖直虚线展示),使得低于读取阈值电平的任何测得电压与一对邻近程序分布中的一个程序分布相关联,而大于或等于读取阈值电平的任何测得电压与所述一对相邻分布中的另一程序分布相关联。
[0060]
每一电压分布320a-320g对应于逻辑电平。读取阈值电压电平经标记为va-vh。va以下的任何测得电压与擦除状态相关联。举例来说,测得电压与擦除状态或七个编程状态p1-p7中的一个相关联,这取决于测得电压与阈值或阈值对的关系,如下表1所示。
[0061]
下限阈值上限阈值状态无va擦除vavbp1vbvcp2vcvdp3vdvep4vevfp5vfvgp6vg无p7
[0062]
表1
[0063]
如图表300中所展示,在tap=0处,阈值电压电平具有值va=-0.8、vb=0.3、vc=1.3、vd=1.9、ve=2.7、vf=3.7,以及vg=4.5伏。可基于电压分布320a-320g中的一或多个计算分布电压。举例来说,分布电压可对应于例如第七分布320g的峰值330等特征的电压轴上的位置。分布电压可被计算为第七分布320g的函数,例如分布的中值、均值、模或其它函
数。在图表300的实例中,分布电压展示为vmedian 340,其被计算为tap=0处第七分布320g的中值且具有值4.9伏。
[0064]
如图表350中所展示,在tap=t小时处,阈值电压电平具有值va=-0.8、vb=0.3、vc=1.2、vd=1.8、ve=2.4、vf=3.3,以及vg=4.2伏。tap=t处第七分布320g的峰值展示为峰值360。在图表350的实例中,分布电压展示为vmedian 370,其被计算为tap=t处第七分布320g的中值且具有值4.7伏。
[0065]
虽然在上文描述例如第七电压分布的中值等特定电压分布的特定特征,但任何电压分布的任何合适的特征可用于确定分布电压。举例来说,第6电压分布320f的均值可用作分布电压。作为另一实例,分布电压可被计算为第7电压分布的第90百分位,其对应于分布的右下侧。在另一实例中,分布电压可被计算为第7电压分布的第25与第75百分位的均值(例如,平均值)。在又一实例中,分布电压可被计算为第6与第7电压分布的均值的均值。在特定实施例中,较高编号分布用于计算分布电压,因为较高编号分布随时间比较低编号分布更快地移动,且因此较高编号分布携载tvs的较强信号。然而,在其它实施例中,一或多个较低编号分布可用于计算分布电压。举例来说,分布电压可被计算为第1分布320a与第7分布320g的均值的均值。
[0066]
图4a描绘根据本公开的一些实施例的实例读取电平管理器402。读取电平管理器402可对应于图1中展示的存储器子系统控制器115的读取电平管理器组件113。读取电平管理器402可包含电压映射表406,其可存储在存储器子系统控制器115的本地存储器119或其它合适的存储器(例如,主机系统120的存储器)中。电压映射表406可存储分布电压和读取电平集之间的映射。对于与读取电平集相关联的每一分布电压,电压映射表406可包含含有分布电压vm和读取电平集rl1
m-rlnm的行。在图4a的实例中,电压映射表406包含分布电压的三个条目4.9、4.7和4.3,如下表2所示。
[0067][0068]
表2
[0069]
电压映射表406中的分布电压4.9v和4.7v的实例读取电平分别对应于图3中的与vmedian=4.9v和vmedian=4.7v相关联的阈值电压。虽然电压映射表406被描述为含有可以在读取操作中使用的读取电平,但电压映射表406可作为替代或另外含有读取电平偏移,所述读取电平偏移可添加到基础读取电平以确定将在读取操作中使用的读取电平。电压映射表406可由电压映射表生成器(未示出)例如使用经验过程生成。经验过程可例如使用某一范围的分布电压对存储器装置130的存储器单元432执行读取操作,且分析从存储器单元432接收的结果以确定所述范围的分布电压的读取电平,如下文所描述。在一个实施例中,经验数据可在一或多个存储器装置(例如,nand存储器装置)的检核测试期间生成且恰当地求平均和精简以表示预期电压映射。在另一实施例中,经验数据可在存储器装置(例如,nand)制造过程期间生成以包含较大裸片总数,利用类似的数据精简过程以在单个电压映射表中表示裸片。在又一实施例中,经验数据可在存储装置(例如,ssd)制造过程期间收集且精简为电压映射表以表示存储装置的群组内或单个存储装置内的裸片。在又一实施例
中,经验数据可针对存储装置内的每一裸片在存储装置制造过程内生成,且可针对存储装置内的每一裸片使用单独的电压映射表。
[0070]
读取电平管理器402还可包含数据读取组件410,其可接收读取请求,确定合适的读取电平,且使用所确定的读取电平从一或多个存储器装置(例如,存储器装置130)读取数据。数据读取组件410可包含读取请求接收器412、分布电压确定器413、读取电平确定器420和数据读取器426。读取请求接收器412可从存储器子系统控制器115的或存储器子系统110的其它组件或从主机120接收数据读取请求。数据读取请求可将块例如指定为块id。
[0071]
分布电压确定器413可确定读取请求中所指定的块的分布参数值,例如分布电压。举例来说,为了确定读取请求中指定的或与读取请求相关联的存储器单元群组432的分布电压,分布电压确定器413可将电压测量请求发送到电压测量组件438(箭头415)。电压测量请求可包含识别将被测量电压的存储器单元432的识别符或地址。电压测量组件438可测量读取请求中指定的或与读取请求相关联的存储器单元432的分布电压(箭头444)。电压测量组件438可通过(例如)对包含指定存储器单元432的存储器单元群组执行读取操作来测量分布电压,如下文所描述。电压测量组件438可从存储器单元432接收测得的分布电压(箭头446)。电压测量组件438可接着将分布电压发送到分布电压确定器413(箭头417)。
[0072]
读取电平确定器420可应指定分布电压的查询发送到电压映射表406(箭头422)。如果电压映射表406含有从指定分布电压到相应读取电平的映射,则相应读取电平可提供到读取电平确定器420(箭头424)。
[0073]
如果电压映射表406不含从指定分布电压到读取电平的映射,则读取电平确定器420可执行电压映射表406中存在的第一和第二分布电压之间的内插以基于电压映射表406中存在的其它读取电平确定对应于指定分布电压的读取电平。在以下描述中,指定分布电压被称作“目标分布电压”。第一值和目标分布电压之间的差可用于在加权平均值计算中相对于与第二值相关联的读取电平值对与第一值相关联的读取电平电压加权。第一分布电压可识别为小于目标参数值的最接近的分布电压,例如电压映射表中的小于目标分布电压的分布电压的最大值。第二分布电压可识别为大于目标分布电压的最接近的分布电压,例如电压映射表中的大于目标分布电压的分布电压的最小值。因此,可在与第一值相关联的读取电平值和与第二值相关联的读取电平值之间执行内插以确定与目标分布电压相关联的读取电平值。
[0074]
目标分布电压与电压映射表中的小于和大于目标分布电压的最接近的分布电压之间的差可用于内插目标分布电压的每一读取电平值,作为小于和大于目标分布电压的最接近的分布电压的相应读取电平值的加权平均值。对应于小于目标分布电压的最接近的分布电压的每一读取电平值的权重可与小于目标分布电压的最接近的分布电压与目标分布电压之间的差成比例。类似地,对应于大于目标分布电压的最接近的分布电压的每一读取电平值的权重可与大于目标分布电压的最接近的分布电压与目标分布电压之间的差成比例。读取电平确定器420可将目标分布电压的每一读取电平值确定为与大于和小于目标分布电压的最接近的分布电压相关联的相应读取电平值的加权平均值。
[0075]
举例来说,如果目标分布电压为4.8v,且第一和第二值分别为4.7v和4.9v,则目标分布电压4.8v处于第一和第二值之间的差的一半处。相应地,所确定的读取电平值可被计算为加权平均值,其中与第一值相关联的读取电平值具有权重0.5且与第二值相关联的读
取电平值也具有权重0.5。分布电压和相关联的所确定读取电平值可存储在电压映射表中,因此针对相同目标分布电压的后续读取请求可检索读取电平值,而不执行内插。
[0076]
作为实例,在下文展示由针对不在电压映射表中的目标分布电压4.8v的内插生成的读取电平。目标电压4.8v在第一电压4.7和第二电压4.9之间,第一电压和第二电压两者在内插之前都在电压映射表中。内插的结果,即目标电压4.8v的行,在下表3中展示。执行内插的读取电平确定器420可将目标分布电压与由内插生成的读取电平相关联存储在电压映射表406中。因为目标分布电压4.8v是上方条目(4.9v)和下方条目(4.8v)之间的差的一半,所以上方条目和下方条目的权重都是0.5。控制器可通过将每一读取电平值计算为加权平均值而在上方条目和下方条目之间内插,readlevelabove*0.5+readlevelbelow*0.5。因此,分布电压4.8v的经内插读取电平值为-0.8、0.3、1.2、1.8、2.4、3.3和4.2伏,如表3中所展示。
[0077][0078]
表3
[0079]
在特定实施例中,如果电压映射表406中的读取电平值是读取电平偏移而非读取电平,则读取电平确定器420可将读取电平偏移加上基础读取电平以确定将在读取操作中使用的读取电平。如果对读取电平偏移执行内插,则基础读取电平可与同经内插读取电平值相同的分布相关联以生成总读取电平值。存储器系统控制器可接着使用总读取电平值执行读取操作。
[0080]
数据读取器426可使用来自读取电平确定器420的读取电平从块读取数据。数据读取器426可将读取电平施加到存储器装置130的一或多个存储器单元432(箭头428)且从存储器单元432读取数据(箭头434)。数据读取器426可接着将数据提供到存储器子系统控制器115的其它组件或主机120。
[0081]
替代地或另外,电压测量组件438可通过使用某一范围的阈值电压执行足够数目的读取操作以测量存储器单元的电压分布且计算测得电压分布的中值(或其它函数),来测量分布电压。举例来说,可在由电压测量请求识别的存储器单元处测量分布电压(箭头415)。电压测量组件438可通过(例如)识别分布的特征(例如峰值,其可为分布的具有最高比率的位置)以及确定对应于特征的所识别位置的电压,来确定分布电压。因此,测得的分布电压的值可以是对应于分布的具有最高比率的部分的电压。分布电压可理解为表示分布的沿着电压轴的位置。
[0082]
在特定实施例中,为了生成电压映射表406,可使用试探性技术从存储器单元识别生成合乎需要的结果的读取电平值,所述合乎需要的结果例如低错误率、高准确性,或分布电压的选定范围的值中的每一个的其它合乎需要的结果。对于分布电压中的每一选定分布电压,生成合乎需要的结果的相应读取电平值可与选定分布电压相关联地存储在电压映射表中。作为实例,可在类似存储器单元的操作或模拟期间使用分布电压的一或多个选定范围评估读取错误计数或其它性能准则。对于选定范围中的每一分布电压,可通过针对读取电平值的值范围上的读取电平值的集操作或模拟存储器单元来识别对应于正被操作或模
拟的存储器单元的电压分布的读取电平值的合乎需要的集。对应于所识别的合乎需要的读取电平值的集的分布电压可与所识别的合乎需要的读取电平值的集相关联地存储在电压映射表中。
[0083]
因为电压分布随时间朝向较低电压移位,且可例如通过测量存储器单元的数目确定测得的分布电压与读取电平的关系,所以电压与读取电平的关系可用于将可表示为电压的分布电压映射到特定分布的读取电平值。此外,因为多层级单元的每一分布的移位是相关的,所以电压关系可用于将分布电压映射到对应于多层级存储器单元的电压分布的读取电平值的集,例如八层级架构(其中一个层级对应于一擦除状态)中的七个读取电平值。电压关系可表示为例如映射,例如电压映射表406,其将可表示为电压的每一分布电压映射到读取电平值的集。读取电平值的集可包含存储器单元的电压分布中的每一个的读取电平值。集中的每一读取电平值可例如是可添加到基数的读取电平值,或可添加到基础读取电平值的读取电平偏移。此外,在一些实施方案中,可依据编程擦除循环确定表406上的读取电平或读取电平偏移。
[0084]
如上文所描述,在接收从存储器单元读取数据的请求后,存储器子系统控制器115可基于分布电压确定用于存储器单元的读取电平值。存储器子系统控制器可测量存储器单元处的分布电压。先前确定的分布电压可以是存储器单元处或另一存储器单元处测得的分布电压。存储器子系统控制器可接着在电压映射表406中查找与测得的或先前确定的分布电压相关联的读取电平值,且使用读取电平值从存储器单元读取数据。
[0085]
可依据若干因素确定在电压映射表406中生成其条目的分布电压的值的数目或范围,所述因素例如存储器装置的特性,包含分布电压的测量值的分辨率(例如,分布电压分辨率)、条目对于内插的合适程度、分布电压的最小值和最大值,以及可用于存储电压映射表406的存储器(例如,本地存储器119)或其它存储空间的量。
[0086]
在特定实施例中,电压映射表406可包含分布电压的每一可能值的条目。如果可能值的数目相对小,例如分布电压的分辨率足够粗略,使得可用于存储电压映射表406的存储器足以存储分布电压的每一可能值的条目,则电压映射表生成器(未图示)可在映射表中包含分布电压的每一可能值的条目。举例来说,如果分布电压被测量为由数字音频转换器(dac)单元表示的电压,则可能的分布电压的数目可相对小。如果足够的存储空间可用,则电压映射表406可包含每一可能的dac值的条目(例如,对于每一可能的dac值,将dac值映射到相应读取电平值的条目)。当存储器子系统控制器115对块执行读取操作时,控制器115可使用电压映射表406来识别对应于块(例如,块、超级块或其它单元)的读取电平值,方式是:测量其中存储块的数据的存储器单元群组的分布电压,以及识别与电压映射表中的分布电压相关联的读取电平值。因为此实例中的电压映射表406包含每一可能的分布电压的条目,且分布电压的每一测得值是可能值中的一个,所以存储器子系统控制器115可识别电压映射表406中的指定被读取的每一块的读取电平值的条目。
[0087]
替代地,电压映射表生成器可选择分布电压的可能值的子集且生成包含子集中的每一值的条目的电压映射表406,且可使用内插来确定映射表中不存在的电压的读取电平,如上文所描述。
[0088]
图4b描绘根据本公开的一些实施例的实例读取电平管理器403。读取电平管理器403可对应于图1中展示的存储器子系统控制器115的读取电平管理器组件113。读取电平管
理器403可包含块元数据表404和电压映射表406。表404、406可存储在存储器子系统控制器115的本地存储器119或其它合适的存储器(例如主机系统120的存储器)中。块元数据表404可存储块和分布电压之间的映射。对于与分布电压相关联的每一块,块元数据表404可包含含有块的块识别符(id)“n”和相关联分布电压vn的行。在图4b的实例中,块元数据表404包含将块id“0”映射到分布电压4.3的条目,其指示已针对块id“0”确定分布电压4.3。块元数据表404还包含将块id“1”映射到分布电压4.9的条目,以及将块id“2”映射到分布电压4.7的条目。块元数据表404可由校准组件440和/或数据读取组件410生成。条目可由数据写入组件450从块元数据表404移除,如下文所描述。
[0089]
在特定实施例中,分布电压和相关联所确定的读取电平值可与块相关联地存储在块元数据表404中,因此针对块id或分布电压的相同值的后续读取请求可检索读取电平值。所确定的分布电压和读取电平值可存储在块元数据表404中,条件是例如存在可用于针对块中的每一个存储那些值的足够的存储器或其它存储装置。在另一实施例中,分布电压和相关联读取电平值中的每一个可存储在块元数据表404中而非电压映射表406中,在此情况下不必使用电压映射表406。电压映射表406可存储分布电压和读取电平集之间的映射。电压映射表406在上文关于图4a进一步描述。
[0090]
读取电平管理器403还可包含数据读取组件410、校准组件440和数据写入组件450。如上文关于图4a所描述,数据读取组件410可接收读取请求,确定合适的读取电平,且使用所确定的读取电平从一或多个存储器装置(例如存储器装置130)读取数据。数据读取组件410可包含读取请求接收器412、分布电压确定器414、读取电平确定器420和数据读取器426。读取请求接收器412可从存储器子系统控制器115的或存储器子系统110的其它组件或从主机120接收数据读取请求。数据读取请求可将块例如指定为块id。
[0091]
分布电压确定器414类似于上文关于图4a所描述的分布电压确定器413。分布电压确定器414可确定读取请求中所指定的块的分布参数值,例如分布电压。举例来说,分布电压确定器414可查询块元数据表404以获得具有读取请求中所指定的块id的分布电压(箭头416)。如果块元数据表404含有指定块id,例如在元数据表404中存在应指定块id映射到分布电压的条目,那么分布电压确定器414可将对应的分布电压提供给读取电平确定器420(箭头418),以此可确定如上文关于图4a所描述的读取电平。
[0092]
如果块元数据表404不含指定块id,则分布电压确定器414可测量读取请求中所指定的块的分布电压,且将所测量的分布电压与块id相关联地存储在块元数据表404中。分布电压确定器414可如下文所描述相对于校准组件440的电压测量组件438测量分布电压。
[0093]
替代地,如果块元数据表404不含指定块id,则数据读取组件410可使用默认读取电平,或将读取请求传递到存储器子系统控制器115的另一组件,所述另一组件可执行读取操作。虽然在本文中所描述的实例中参数值是电压,但参数值可以是任何合适的数据状态度量。本文中的“数据状态度量”应指从存储在存储器装置上的数据的状态测量或推断的量。具体来说,数据状态度量可反映时间电压移位的状态、读取干扰的程度和/或数据状态的其它可测量函数。数据状态度量可以是分量状态度量的集的函数(例如,加权和)。
[0094]
如果块元数据表404含有指定块id,则如上文所描述,分布电压确定器414可从块元数据表404接收与块id相关联的分布电压(箭头418)。读取电平确定器420可应指定分布电压的查询发送到电压映射表406(箭头422)。如果电压映射表406含有从指定分布电压到
相应读取电平的映射,则相应读取电平可提供到读取电平确定器420(箭头424)。
[0095]
如果电压映射表406不含从指定目标分布电压到读取电平的映射,则读取电平确定器420可执行内插,如上文关于图4a所描述。执行内插的读取电平确定器420可将目标分布电压与生成其读取电平的块的块id相关联地存储在块元数据表404中。读取电平确定器420还可将目标分布电压与由内插生成的读取电平相关联地存储在电压映射表406中,如上文关于图4a所描述。
[0096]
数据读取器426可使用来自读取电平确定器420的读取电平从块读取数据。数据读取器426可将读取电平施加到存储器装置130的一或多个存储器单元432(箭头428)且从存储器单元432读取数据(箭头434)。数据读取器426可接着将数据提供到存储器子系统控制器115的其它组件或主机120。
[0097]
校准组件440可与由数据读取组件410执行的读取操作分开或在与所述读取操作不同的时间生成或更新块元数据表404。举例来说,校准组件440可通过以下操作执行生成或更新块元数据表404的校准操作:针对每一块,测量存储块的数据的存储器单元432的一或多个群组的分布电压,以及将测得的分布电压与相应块id相关联地存储在块元数据表404中。以此方式,可生成和更新块元数据表404,而不延迟由数据读取组件410执行的读取操作。校准组件440可在周期性时间或在其它时间执行校准操作,作为校准扫描的一部分。
[0098]
存储器子系统控制器115可周期性地执行校准过程以测量每一存储单元(例如,块、块群组,或其它存储单元)的分布电压。校准过程可使每一存储单元与针对所述存储单元确定的分布电压相关联。作为校准过程的一部分,存储器子系统控制器可测量分布电压。举例来说,在校准过程中,存储器子系统控制器可在特定时间处且在随后的时间再次(例如按周期性间隔)或在与存储器单元相关联的下一写入操作之后经过阈值时间段之后,测量分布电压。校准过程还可从块元数据表404删除不再需要的条目,例如因为块在块元数据表条目的最新更新之后已经被写入。作为校准扫描的一部分,可执行校准过程。作为替代或另外,存储器子系统控制器可在特定块被写入(因为写入将时间电压移位重置)或擦除(因为块不再处于使用中)或以其它方式变成未使用后删除或请求删除所述块的块元数据表条目。
[0099]
校准组件440可包含电压测量组件438,其可通过对其中存储块的数据的存储器单元432的一或多个群组执行一或多个测量操作来确定每一块的分布电压(箭头444),例如类似于图4a的电压测量组件438。确定块的分布电压的测量操作可例如使用某一范围的读取电平测量至少阈值数目的电压。电压测量组件438可基于测得的电压识别对应于特征的电压。存储器单元432的测得电压可以是由存储器单元432展现的电压的数字表示。例如逐次近似adc等模/数转换器(adc)可由电压测量组件438使用以执行测量。
[0100]
替代地或另外,可通过使用某一范围的阈值电压执行足够数目的读取操作以测量存储器单元的电压分布且计算测得电压分布的中值(或其它函数)以此确定测量分布电压。举例来说,可在存储块的数据的一部分的存储器单元群组432处测量分布电压。存储器子系统控制器可通过(例如)以下操作确定分布电压:识别分布的特征,例如峰值,其可以是分布的具有最高比率的位置;以及确定对应于特征的所识别位置的电压。因此,测得的分布电压的值可以是对应于分布的具有最高比率的部分的电压。分布电压可理解为表示分布的沿着电压轴的位置。参数值可与块相关联地存储在块元数据表404中,因此针对块的后续读取请
求可更高效地访问参数值(例如,而不对存储器单元执行测量操作)。块元数据表可存储在存储器子系统的本地存储器119中。
[0101]
校准组件440可接收从存储器单元432测得的分布电压(箭头446),且将测得的分布电压与块的块id相关联地存储在块元数据表404中(箭头448)。校准组件440可例如以时间间隔重复地执行校准操作,使得块元数据表中的与块id相关联的分布电压随时间更新以反映分布电压根据时间电压移位的改变。
[0102]
数据写入组件450可处理将数据写入到块的请求。因为将数据写入到块涉及将有效块数据再定位到另一块(例如,经由垃圾收集或折叠)且接着擦除块,所以将数据写入到块使块的存储器单元的读取阈值已移位回到0伏或至少接近0伏的量重置。因此,存储在块元数据表404中的分布电压可例如通过以下操作相应地重置:从块元数据表404删除块的条目,或将块元数据表404中的与块相关联的分布电压改变为对应于已发生极少时间电压移位或无时间电压移位的初始时间的初始分布电压(例如,tap=0,如图3的图表300中所展示)。相应地,数据写入组件450的写入请求接收器452接收将数据写入到块的每一请求,且块元数据表更新器454将块元数据表454中的对应于块的条目重置。举例来说,元数据表更新器454可从元数据表404删除块的条目,或将元数据表404中的与块相关联的分布电压改变为上文描述的初始分布电压。元数据表更新器454可将删除或更新操作发送到块元数据表404(箭头456)。删除或更新操作可包含从块元数据表404重置或删除块的块id。数据写入器458可在元数据表404更新操作之后或与之并行地将数据写入到块。随后,校准组件440可将元数据表404中的与块相关联的分布电压更新为随时间改变的参数值,借此缓解时间电压移位对读取操作的影响。
[0103]
如上文所描述,在接收从与块或块群组相关联的存储器单元读取数据的请求后,存储器子系统控制器115可基于分布电压确定存储器单元的读取电平值。存储器子系统控制器可测量存储器单元处的分布电压或检索先前确定的分布电压。先前确定的分布电压可以是存储器单元处或与块或块群组相关联的另一存储器单元处测得的分布电压。可从块元数据表404或使先前确定的数据状态与块或块群组相关联的其它数据结构检索先前确定的分布电压。存储器子系统控制器可接着在电压映射表中查找与测得的或先前确定的分布电压相关联的读取电平值,且使用读取电平值从存储器单元读取数据。
[0104]
图4c描绘根据本公开的一些实施例的可使用块族确定电压分布参数的实例读取电平管理器461。图4c的读取电平管理器461可在每块族基础上存储关联,使得可存储每个块族与对应分布电压之间的关联。对应分布电压可用于块族中的块中的任一个。因此,读取电平管理器461可通过确定块处于哪个块族中,随后使用所存储的关联确定与块族相关联的分布电压,以此确定块的读取电平。读取电平管理器461可使用电压映射表406将所确定的分布电压映射到读取电平。
[0105]
块族可表示期望其数据状态度量随时间展现类似或相关改变的块集。举例来说,特定块族可表示具有处于0-99范围内的块id的块。因此,特定块族中的块的分布电压可能相同或类似,且所存储的分布电压可表示块族中的块的分布电压。“块族”在本文中应指代可能不连续的存储器单元集(其可驻留在一或多个完整和/或部分块中,部分块在本文中被称作“分区”),其已在指定时间窗和规定温度窗内经编程且因此预期在其相应数据状态度量方面展现类似或相关改变。块族可以任何粒度制成,仅含有全部码字、全部页、全部超级
页或全部超级块或其任何组合。可基于例如时间和温度的准则在写入数据时产生块族。作为实例,在时间窗和/或温度范围内写入的块可分组到同一块族中。在一些实施方案中,基础读取电平可存储在存储器装置的元数据中。
[0106]
读取电平管理器461可对应于图1中示出的存储器子系统控制器115的读取电平管理器组件113。读取电平管理器461可包含元数据表463,其可存储块与块族之间的关联,并且还存储块族与分布电压(或其它电压分布参数)之间的关联。当读取块时,读取电平管理器461可使用元数据表463确定哪个块族对应于将被读取的特定块并且进一步确定哪个分布电压对应于所确定的块族。读取电平管理器461可使用电压映射表406将所确定的分布电压映射到读取电平。
[0107]
元数据表463可包含块元数据表464和块族元数据表466。块元数据表464可存储块与块族之间的关联,且块族元数据表466可存储块族与分布电压(或其它电压分布参数)之间的关联。表464、466、406可存储于存储器子系统控制器115的本地存储器119或其它合适的存储器(例如主机系统120的存储器)中。
[0108]
对于与块族相关联的每一块集,块元数据表464可包含将块集映射到相关联的块族识别符(块族id)的行(在本文中也称为“条目”)。所述块集可指定为例如由下限块id值和上限块id值表示的范围,例如0-49,其指定具有块id 0到49的50个块。在图4c的实例中,块元数据表464包含将块id 0-49映射到块族id 0的条目,其指示具有块id0到49的块处于具有块族id 0的块族中。举例来说,块元数据表464还包含将块id 50-59映射到块族id 5的条目,以及将块id 800-899映射到块族id 63的条目。块元数据表464可由校准组件441和/或数据读取组件411,或其它管理块族的组件产生。当创建或删除块族时,可例如通过添加或移除对应于正在创建或删除的块族的条目来更新块元数据表464。然而,当更新块族的分布电压时无需更新块元数据表464,这是因为分布电压不存储于块元数据表464中。
[0109]
对于与分布电压相关联的每个块族,块族元数据表466可包含含有块族的id和相关联的分布电压vn的行。块族元数据表466包含将块族id“0”映射到分布电压4.3的条目,这指示已确定块族0(例如,通过块元数据表464与块族0相关联的块中的至少一个)的分布电压4.3。块族元数据表466还包含将块族id“5”映射到分布电压4.7的条目和将块族id“63”映射到分布电压4.9的条目。举例来说,可通过校准组件441和/或数据读取组件411产生块族元数据表466。如下文所描述,可通过数据写入组件451从块族元数据表466移除条目。
[0110]
在一些实施例中,所确定的读取电平值可与对应块族id相关联地存储于块族元数据表466中,因此对块族id的相同值或分布电压的后续读取请求可检索读取电平值。读取电平值可存储于块族元数据表466中,条件是例如存在可用于针对块族中的每一个存储那些值的足够的存储器或其它存储装置。在另一实施例中,分布电压和相关联读取电平值中的每一个可存储于块族元数据表466而非电压映射表406中,在此情况下,无需使用电压映射表406。电压映射表406可存储分布电压与读取电平集之间的映射。上文关于图4a进一步描述电压映射表406。
[0111]
读取电平管理器461还可包含数据读取组件411、校准组件441和数据写入组件451。如上文关于图4a的数据读取组件410所描述,数据读取组件411可接收读取请求,确定适合的读取电平,并且使用所确定的读取电平从例如存储器装置130的一或多个存储器装置读取数据。数据读取组件411可包含读取请求接收器412、分布电压确定器471、读取电平
确定器420和数据读取器426。读取请求接收器412可从存储器子系统控制器115的或存储器子系统110的其它组件或从主机120接收数据读取请求。数据读取请求可将块指定为例如块id。
[0112]
分布电压确定器471可确定在读取请求中指定的块的分布电压。分布电压确定器471类似于上文关于图4b所描述的分布电压确定器414,但使用块元数据表464和块族元数据表466确定分布电压。举例来说,分布电压确定器471可向块元数据表464查询与在读取请求中指定的块id相关联的块族id(箭头416),使得分布电压确定器471可从元数据表464检索块族id(箭头467)。分布电压确定器471随后可向块族元数据表466查询与从元数据表464检索的块族id相关联的分布电压(箭头468)。如果块族元数据表466含有指定的块族id,例如在块族元数据表466中存在应指定块族id映射到分布电压的条目,那么分布电压确定器471可从块族元数据表466检索分布电压(箭头418)。如果分布电压确定器471从块族元数据表466成功地检索到分布电压,那么分布电压确定器471可将检索的分布电压提供给读取电平确定器420,所述分布电压可确定如关于图4a所描述的读取电平。
[0113]
如果块族元数据表466不含有应指定块族id映射到分布电压的条目,那么分布电压确定器471可测量在读取请求中指定的块的分布电压,并且将所测量的分布电压与通过块元数据表464和块相关联的块族id相关联地存储于块族元数据表466中。分布电压确定器471可测量如下文关于校准组件440的电压测量组件438所描述的分布电压。
[0114]
替代地,如果块族元数据表466不含有应指定块族id映射到分布电压的条目,那么数据读取组件411可使用默认读取电平,或将读取请求传送给存储器子系统控制器115的另一组件,所述另一组件可执行读取操作。虽然在本文中所描述的实例中参数值是电压,但参数值可以是任何合适的数据状态度量。本文中的“数据状态度量”应指从存储在存储器装置上的数据的状态测量或推断的量。具体来说,数据状态度量可反映时间电压移位的状态、读取干扰的程度和/或数据状态的其它可测量函数。数据状态度量可以是分量状态度量集的函数(例如,加权和)。
[0115]
如果块族元数据表466含有应指定块族id映射到分布电压的条目,那么如上文所描述,分布电压确定器471可从块族元数据表466接收与块族id相关联的分布电压(箭头418)。读取电平确定器420可应指定分布电压的查询发送到电压映射表406(箭头422)。如果电压映射表406含有从指定分布电压到对应读取电平的映射,那么可将对应读取电平提供给读取电平确定器420(箭头424)。
[0116]
如果电压映射表406不含有从指定目标分布电压到读取电平的映射,那么读取电平确定器420可执行内插,如上文关于图4a所描述。执行内插的读取电平确定器420可将目标分布电压与产生的读取电平所针对的块的块id相关联地存储于块元数据表404中。读取电平确定器420还可将目标分布电压与内插产生的读取电平相关联地存储于电压映射表406中,如上文关于图4a所描述。
[0117]
数据读取器426可使用来自读取电平确定器420的读取电平从块读取数据。数据读取器426可将读取电平施加到存储器装置130的一或多个存储器单元432(箭头428)并且从存储器单元432读取数据(箭头434)。数据读取器426随后可将数据提供给存储器子系统控制器115的其它组件或主机120。
[0118]
校准组件441可与数据读取组件411执行的读取操作分开地或在不同时间产生或
更新块元数据表463。举例来说,校准组件441可执行校准操作,所述校准操作通过以下操作产生或更新块族元数据表466中的特定块族的分布电压:对于特定块族中的一或多个块,测量对特定块族中的一或多个块的数据进行存储的存储器单元432的一或多个群组的分布电压,基于测量的分布电压确定特定块族的分布电压,并且将所确定的分布电压与对应于特定块族的块族id相关联地存储于块族元数据表466中。
[0119]
校准过程可通过存储表示块族元数据表466中的关联的条目,使每个块族与针对块族确定的分布电压相关联。作为校准过程的部分,存储器子系统控制器115可测量分布电压。举例来说,在校准过程中,存储器子系统控制器115可在特定时间测量分布电压并且在后续时间,例如按周期性间隔,或在与存储器单元相关联的下一写入操作之后经过阈值时间段之后再次测量分布电压。校准过程还可从块族元数据表466删除不再需要的条目,例如原因是块族中的块中的每一个已在块族元数据表条目的最近更新之后被写入。作为校准扫描的部分,可执行校准过程。
[0120]
作为校准扫描的部分,校准组件441可以周期性时间或在其它时间执行校准过程。校准组件441可包含电压测量组件438,其可确定每个块的分布电压,如上文关于图4b的电压测量组件438所描述。对于待测量的每个块,校准组件441可从存储器单元432接收测量的分布电压(箭头446)。
[0121]
举例来说,校准组件441可通过计算特定块族的每个块的存储器单元432的群组的分布电压的平均值,确定特定块族的分布电压。校准组件441测量分布电压所针对的块的数目可为例如至少一阈值数目或块族中块的总数目的百分比,例如25个块或具有50个块的块族中的块的50%。以此方式,可在不延迟由数据读取组件411执行的读取操作的情况下产生和更新块族元数据表466。
[0122]
校准组件441可将所确定的分布电压与特定块族的块族id相关联地存储于块族元数据表466中(箭头448)。校准组件411可确定每个块族的,例如具有块元数据表464中的条目的每个块族的分布电压。举例来说,校准组件441可在每个校准扫描中确定不同块族的分布电压,或在每个校准扫描中确定块族的特定子集的分布电压。替代地或另外,可通过使用一范围的阈值电压执行足够数目个读取操作来测量存储器单元群组的电压分布,并且计算所测量的电压分布的中值(或其它函数),以此确定特定块的分布电压,如上文关于图4b所描述。
[0123]
校准组件441可例如以时间间隔重复执行校准操作,使得随时间更新与块族元数据表中的块族id相关联的分布电压以反映分布电压根据时间电压移位的变化。可根据时间电压移位的对数线性性质,例如通过校准组件441针对较高分布电压值进行的更频繁校准(例如,较高值可具有较少tvs),以及通过校准组件441针对较低分布电压值进行的较不频繁校准,确定时间间隔。
[0124]
数据写入组件451可处理对将数据写入到块的请求。数据写入组件451的写入请求接收器452可接收对将数据写入到块的每个请求。由于将数据写入到块涉及将有效的块数据重定位到另一块(例如,经由垃圾收集或折叠)并且接着擦除所述块,因此将数据写入到块可将块的存储器单元的读取阈值的移位量重置回到0伏特,或至少将近0伏特。因此,可响应于将数据写入到块族中的块而重置存储于块族元数据表466中的分布电压。举例来说,如果数据写入到块族中的每个块,或写入到块族中的阈值数目个块,那么可重置块族元数据
表466中的块族的条目。数据写入组件451的块族元数据表更新器455可通过从块族元数据表466删除条目或替代地,通过将条目的分布值设置为对应于没有发生或几乎没有发生时间电压移位的初始时间(例如,tap=0,如图3的图表300中所示)的初始电压,以此重置块族的条目。
[0125]
为了从块族元数据表466删除块族的条目,块族元数据表更新器455可应指定将被删除(例如,指定条目的块族id、分布电压或这两者)的条目的删除操作发送给块族元数据表466(箭头456)。替代地,为了将条目的分布值设置为初始电压,块族元数据表更新器455可应指定将被更新(例如,指定条目的块族id)的条目和将存储于条目中的分布电压的更新值的更新操作发送给块族元数据表466(箭头456)。如果例如在块族中不存在已发生时间电压移位的现有块(例如,因为块族中的每个块的新旧小于阈值),那么可发送删除或更新操作。在块族元数据表更新器455的删除或更新操作之后(或并行地),数据写入器458可将数据写入到由写入请求接收器452接收到的写入数据请求指定的块。因此,块族元数据表466中的分布电压可随时间改变。如上文所描述,可通过例如以时间间隔对块族中的一或多个块的分布电压采样以确定经更新分布电压,以此确定随时间改变的分布电压,进而缓解读取操作上的时间电压移位的效应。
[0126]
如上文所描述,在从与块或块群组相关联的存储器单元接收到读取数据请求之后,存储器子系统控制器115可即刻基于分布电压确定存储器单元的读取电平值。存储器子系统控制器115可测量存储器单元处的分布电压或检索先前确定的分布电压。先前确定的分布电压可为先前在存储器单元处或在与块或块族相关联的其它存储器单元处测量的分布电压。可从块族元数据表466或其它使先前确定的数据状态与块的块族相关联的数据结构检索先前确定的分布电压。存储器子系统控制器随后可查找与电压映射表406中测量的或先前确定的分布电压相关联的读取电平值,并且使用读取电平值从存储器单元读取数据。
[0127]
图4d描绘根据本公开的一些实施例的可使用块识别符集确定电压分布参数的实例读取电平管理器481。读取电平管理器481可产生和使用块识别符集与对应分布电压之间的映射。所述映射可存储于块元数据表484中。每个映射在本文中被称作“条目”,将块识别符集(例如在0-49的范围内的识别符)映射到对应分布电压,例如4.3伏特(“v”)。
[0128]
为了确定特定块的读取电平,读取电平管理器481可在块元数据表484搜索具有包含特定块的块识别符的一范围的条目。如果块元数据表484含有具有包含特定块的块识别符的集的条目,那么读取电平管理器481可通过在电压映射表406中搜索所述条目指定的分布电压来确定特定块的读取电平。块识别符集可表示期望在其数据状态度量随时间展现类似或相关变化的块集。举例来说,范围0-99可表示具有从0到99的块id的100个块。集可被指定为一或多个可能不连续的块识别符范围。举例来说,识别符0-99和100-199可包含在块识别符集中。集中的块可能已在指定时间窗和/或指定温度窗内经编程,且因此期望在其相应数据状态度量上展现类似或相关变化。
[0129]
读取电平管理器481可对应于图1中示出的存储器子系统控制器115的读取电平管理器组件113。当读取块时,读取电平管理器481可使用块元数据表484识别对应于将读取的特定块的块id范围。读取电平管理器481随后可例如通过使用电压映射表406将所识别的分布电压映射到读取电平集,以此使用对应于所识别的块id范围的分布电压识别读取电平
集。表484、406可存储于存储器子系统控制器115的本地存储器119或其它合适的存储器(例如主机系统120的存储器)中。
[0130]
对于与分布电压相关联的每一块识别符集,块元数据表484可包含识别块识别符集(例如,作为一或多个范围id
x-idy)和相关联分布电压vn的行。在图4d的实例中,块元数据表464包含将块id 0-49映射到分布电压4.3v的条目,其指示具有块id 0到49的块与分布电压4.3v相关联。块元数据表464还包含将块id 50-59映射到4.7v的条目,以及将块id 800-899映射到4.9v的条目。举例来说,块元数据表464可由校准组件440和/或数据读取组件413,或其它管理块族的组件产生。当确定分布电压时,可例如通过响应于确定分布电压的更新值而更新与块识别符集相关联的分布电压,以此更新块元数据表464,此更新可由校准组件443完成。
[0131]
在一些实施例中,所确定的读取电平值可与对应分布电压条目相关联地存储于块元数据表484中,因此对块族id的相同值或分布电压的后续读取请求可检索读取电平值。读取电平值可存储于块元数据表484中,条件是例如存在可用于针对表484中的块集中的每一个存储那些值的足够的存储器或其它存储装置。在另一实施例中,分布电压和相关联读取电平值中的每一个可存储于块元数据表484中而非电压映射表406中,在此情况下,无需使用电压映射表406。电压映射表406可存储分布电压与读取电平集之间的映射。在上文关于图4a进一步描述电压映射表406。
[0132]
读取电平管理器481还可包含数据读取组件413、校准组件443和数据写入组件453。如上文关于图4a的数据读取组件410所描述,数据读取组件413可接收读取请求,确定适合的读取电平,并且使用所确定的读取电平从例如存储器装置130的一或多个存储器装置读取数据。数据读取组件413可包含读取请求接收器412、分布电压确定器473、读取电平确定器420和数据读取器426。读取请求接收器412可从存储器子系统控制器115或存储器子系统110的其它组件或从主机120接收数据读取请求。数据读取请求可将块指定为例如块id。
[0133]
分布电压确定器473可确定在读取请求中指定的块的分布电压。分布电压确定器473类似于上文关于图4b所描述的分布电压确定器414,但使用块元数据表484确定块的分布电压。举例来说,分布电压确定器473可在块元数据表484中查询在读取请求中指定的块id(箭头416)。如果块元数据表484含有包含指定块id的块id集,例如在块元数据表484中存在应指定块id映射到对应分布电压的条目,那么分布电压确定器473可从块元数据表464检索对应分布电压(箭头418)。如果分布电压确定器473成功地从块元数据表484检索到分布电压,那么分布电压确定器473可将检索的分布电压提供给读取电平确定器420,所述分布电压可确定如关于图4a所描述的读取电平。
[0134]
如果块元数据表484不含有应指定块id映射到分布电压的条目,那么分布电压确定器473可测量在读取请求中指定的块id的分布电压,并且将测量的分布电压与包含指定块id的块集相关联地存储于块元数据表484中。如果在块元数据表484中不存在包含指定块id的块集,那么分布电压确定器473可创建包含块识别符的块集(或将现有块集更新为包含块识别符)并且将所述块集与分布电压相关联地存储于块元数据表484中。分布电压确定器473可如下文关于校准组件443的电压测量组件438所描述地测量分布电压。
[0135]
替代地,如果块元数据表484不含有应指定块族id映射到分布电压的条目,那么数
据读取组件413可使用默认读取电平,或将读取请求传送给存储器子系统控制器115的另一组件,所述另一组件可执行读取操作。虽然在本文中所描述的实例中,与块元数据表484中的块识别符集相关联的参数值是电压,但参数值可以是任何合适的数据状态度量。
[0136]
如果块元数据表484含有应指定块族id映射到分布电压的条目,那么如上文所描述,分布电压确定器473可从块族元数据表484接收与块族id相关联的分布电压(箭头418)。读取电平确定器420可应指定分布电压的查询发送到电压映射表406(箭头422)。如果电压映射表406含有从指定分布电压到对应读取电平的映射,那么可将对应读取电平提供给读取电平确定器420(箭头424)。
[0137]
如果电压映射表406不含有从指定目标分布电压到读取电平的映射,那么读取电平确定器420可执行内插,如上文关于图4a所描述。执行内插的读取电平确定器420可将目标分布电压与产生的读取电平所针对的块的块id相关联地存储于块元数据表404中。读取电平确定器420还可将目标分布电压与内插产生的读取电平相关联地存储于电压映射表406中,如上文关于图4a所描述。
[0138]
数据读取器426可使用来自读取电平确定器420的读取电平从块读取数据。数据读取器426可将读取电平施加到存储器装置130的一或多个存储器单元432(箭头428)并且从存储器单元432读取数据(箭头434)。数据读取器426随后可将数据提供给存储器子系统控制器115的其它组件或主机120。
[0139]
校准组件443可与数据读取组件413执行的读取操作分开地或在不同时间产生或更新块元数据表484。举例来说,校准组件443可执行校准操作,所述校准操作通过以下操作产生或更新块元数据表484中的特定块集(例如,块id 0-49)的分布电压:对于特定块集中的一或多个块,测量对一或多个块的数据进行存储的存储器单元432的一或多个群组的分布电压,基于测量的分布电压确定特定块集的分布电压,并且将所确定的分布电压与对应于特定块集的块识别符集相关联地存储于块元数据表484中。
[0140]
作为校准扫描的部分,校准组件443可以周期性时间或在其它时间执行校准操作。校准组件443可包含电压测量组件438,其可确定每个块的分布电压,如上文关于图4b的电压测量组件438所描述。对于待测量的每个块,校准组件440可从存储器单元432接收测量的分布电压(箭头446)。
[0141]
举例来说,校准组件443可通过针对所述块集的每个块计算存储器单元432的群组的分布电压的平均值,以此确定特定块集的分布电压。校准组件443测量分布电压所针对的块的数目可为例如至少一阈值数目或块集中块的总数目的百分比,例如25个块或具有50个块的集中的块的50%。以此方式,可在不延迟由数据读取组件413执行的读取操作的情况下产生和更新块元数据表484。
[0142]
校准组件443可将所确定的分布电压与包含所述块的块id集相关联地存储于块元数据表484中(箭头448)。校准组件443可确定每个块集的,例如具有块元数据表484中的条目的每个块集的分布电压。举例来说,校准组件443可在每个校准扫描中确定不同块集的分布电压,或在每个校准扫描中确定特定块集的分布电压。替代地或另外,可通过使用一范围的阈值电压执行足够数目个读取操作来测量存储器单元的电压分布,并且计算所测量的电压分布的中值(或其它函数),以此确定特定块的分布电压,如上文关于图4b所描述。
[0143]
校准组件443可例如以时间间隔重复执行校准操作,使得随时间更新与块元数据
表484中的块集相关联的分布电压以反映分布电压根据时间电压移位的变化。
[0144]
数据写入组件453可处理对将数据写入到块的请求。由于将数据写入到块涉及将有效的块数据重定位到另一块(例如,经由垃圾收集或折叠)并且接着擦除所述块,因此将数据写入到块可将块的存储器单元的读取阈值的移位量重置回到0伏特,或至少将近0伏特。因此,可响应于将数据写入到块集中的块而重置存储于块元数据表484中的分布电压。举例来说,如果数据写入到块集中的每个块,或写入到块集中的阈值数目个块,那么可重置块元数据表484中的条目。数据写入组件453的块元数据表更新器457可通过从块元数据表484删除条目或替代地,通过将条目的分布值设置为对应于没有发生或几乎没有发生时间电压移位的初始时间(例如,tap=0,如图3的图表300中所示)的初始电压,以此重置集的条目。
[0145]
为了从块元数据表484删除块集的条目,块族元数据表更新器457可应指定将被删除(例如,指定条目的块范围、分布电压或这两者)的条目的删除操作发送给块元数据表484(箭头456)。替代地,为了将条目的分布值设置为初始电压,块元数据表更新器457可应指定将被更新(例如,指定条目的块范围)的条目和将存储于条目中的分布电压的更新值的更新操作发送给块元数据表484(箭头456)。如果例如在块集中不存在已发生时间电压移位的现有块(例如,因为集中的每个块的新旧小于阈值),那么可发送用于块集的删除或更新操作。在块元数据表更新器457的删除或更新操作之后(或并行地),数据写入器458可将数据写入到由写入请求接收器452接收到的写入数据请求指定的块。因此,块元数据表484中的分布电压可随时间改变。如上文所描述,可通过例如以时间间隔对集中的一或多个块的分布电压采样以确定经更新分布电压,以此确定随时间改变的分布电压,进而缓解读取操作上的时间电压移位的效应。
[0146]
图5a是根据本公开的方面的用以基于存储器单元的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500是由图1的读取电平管理器组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0147]
在操作510处,处理装置可接收从与处理装置耦合的存储器装置的存储器单元读取数据的请求。在操作512处,处理装置可确定与存储器装置的存储器单元相关联的电压分布参数值。在操作514处,处理装置可确定与电压分布参数值相关联的读取电平集,其中所确定的读取电平集中的每一读取电平对应于存储器单元的相应电压分布。在操作516处,处理装置可使用所确定的读取电平集从存储器装置的存储器单元读取数据。
[0148]
图5b是根据本公开的方面的用以基于块的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法501的流程图。所述方法501可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法501是由图1的读取电平管理器组件113执行。虽然以特定顺序或次序来展示,但是除非另
有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0149]
在操作520处,处理装置可接收从与处理装置耦合的存储器装置的块读取数据的请求。在操作522处,处理装置可确定与存储器装置的块相关联的电压分布参数值,其中确定与存储器装置的块相关联的电压分布参数值包括识别块元数据表中的电压分布参数值,其中块元数据表包括多个记录,每一记录将块识别符的值映射到电压分布参数的值。在操作524处,处理装置可确定与电压分布参数值相关联的读取电平集,其中读取电平集中的每一读取电平对应于存储器装置的至少一个存储器单元的相应电压分布,其中块的至少一部分存储在所述至少一个存储器单元中。在操作526处,处理装置可使用所确定的读取电平集从存储器装置的块读取数据。
[0150]
图5c是根据本公开的方面的用以基于包含块的块族的分布电压确定块的读取电平且使用所确定的读取电平读取数据的实例方法502的流程图。所述方法502可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法502是由图1的读取电平管理器组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0151]
在操作530处,处理装置可从与处理装置耦合的存储器装置的块接收读取数据的请求。在操作532处,处理装置可使用将块识别符映射到对应块族识别符的第一数据结构确定与存储器装置的块相关联的块族。将块识别符映射到对应块族识别符的第一数据结构可为例如图4c的块元数据表464。块元数据表464可包含多个记录,每个记录将块识别符的一或多个值映射到块族识别符的值。可使用第一数据结构通过识别块元数据表464中对应于存储器装置的块的块识别符值来确定与存储器装置的块相关联的块族。块元数据表可将块识别符值与块族识别符值相关联,且所确定的块族可对应于块族识别符值。作为另一实例,第一数据结构可将块识别符范围映射到对应分布电压,如上文关于图4d的块元数据表484所描述。
[0152]
在操作534处,处理装置可使用将块族识别符映射到对应电压分布参数值的第二数据结构确定与块族相关联的电压分布参数值。第二数据结构可将块族识别符映射到对应电压分布参数值并且可为例如图4c的块族元数据表466。块族元数据表466可包含多个记录,每个记录将块族识别符的值映射到电压分布参数的值。电压分布参数值可为例如包含在存储器单元的特定电压分布中的电压值,且确定所述电压分布参数值包含确定所识别电压分布的中值、均值或众值。
[0153]
可通过识别块族元数据表466中对应于块族的块族识别符值来确定与块族相关联的电压分布参数值。所述电压分布参数值可对应于块元数据表中的块族识别符值。
[0154]
如果块族元数据表466不包含块族识别符值与对应电压分布参数值之间的关联,那么在操作532处,处理装置可通过在一或多个电压电平下对存储器单元采样并且基于至少一个存储器单元的特定电压分布确定电压分布参数值,以此识别存储器单元的特定电压
分布。处理装置随后可将电压分布参数值与块族识别符值相关联地存储于块族元数据表466中。
[0155]
在操作536处,处理装置可确定与电压分布参数值相关联的读取电平集,其中读取电平集中的每个读取电平对应于存储器装置的块包括的至少一个存储器单元的相应电压分布。在操作538处,处理装置可使用所确定的读取电平集从存储器装置的块读取数据。
[0156]
在一或多个额外操作(未示出)处,处理装置可执行多个校准扫描重复。每个校准扫描重复可包含识别存储器装置的满足一或多个校准准则的至少一个第二块,并且对满足校准准则的每个所识别第二块执行校准操作。校准操作可包含基于存储器装置的第二块确定第二电压分布参数值,使用将块识别符映射到对应块族识别符的第一数据结构确定与存储器装置的第二块相关联的第二块族识别符,并且将所确定的第二电压分布参数值与第二块族识别符相关联地存储于第二数据结构中。存储器装置的满足校准准则的第二块可为例如编程后时间从对至少一个块执行前一校准操作起已增加至少一阈值量所针对的块。
[0157]
图5d是根据本公开的方面的用以基于块的分布电压确定读取电平且使用所确定的读取电平读取数据的实例方法503的流程图。所述方法503可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法503是由图1的读取电平管理器组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0158]
在操作540处,处理装置可从与处理装置耦合的存储器的块接收读取数据请求。在操作542处,处理装置可使用将一或多个块识别符集映射到对应电压分布参数值的数据结构确定与存储器的块相关联的电压分布参数值。将一或多个块识别符集映射到对应电压分布参数值的数据结构可为例如图4d的块元数据表484。块元数据表484可包含多个记录,每个记录将块识别符集映射到对应电压分布参数值。可使用数据结构通过识别块元数据表中包含存储器的块的块识别符的块识别符集来确定与存储器的块相关联的电压分布参数值,其中所识别的块识别符集对应于与存储器的块相关联的电压分布参数值。每一块识别符集可指定为块识别符范围,所述范围包括第一块识别符和第二块识别符。
[0159]
在操作544处,处理装置可确定与电压分布参数值相关联的读取电平集,其中读取电平集中的每个读取电平对应于存储器装置的块包括的至少一个存储器单元的相应电压分布。在操作538处,处理装置可使用所确定的读取电平集从存储器装置的块读取数据。
[0160]
图6是根据本公开的方面的用以执行确定块的分布电压并将分布电压存储在块元数据表中的分布电压校准扫描的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600是由图1的读取电平管理器组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
[0161]
在操作610处,处理装置可通过测量至少阈值数目的电压且识别对应于分布的特征的电压来基于存储器装置的块确定分布电压。分布的特征可以是例如分布的峰值。分布电压可确定为分布的函数或特性,例如分布的均值、中值、模或其它特性。在操作620处,处理装置可将对应于特征的电压与存储器装置的块的块识别符相关联地存储于块元数据表中。
[0162]
在操作630处,处理装置可确定存储器装置的块的编程后时间(tsp)。所确定的时间在下文对操作640的描述中参考为具有相关联时间单位的称为“tsp”的变量。所述时间单位可以是例如秒。在操作640处,处理装置可调度在对应于块的编程后时间相对于当前时间的x%增加的随后的时间处执行块的后续校准(也就是说,在操作610处开始的方法600的后续执行)。当前时间可以是例如执行操作640的时间。举例来说,随后的时间可对应于块的编程后时间(tsp)的50%增加,在此情况下,随后的时间可确定为将来的当前时间+0.50*tsp,或0.50*tsp时间单位(例如,秒)。值x可以是任何所要数值百分比。
[0163]
图7说明计算机系统700的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任一或多种方法的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的读取电平管理器组件113的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
[0164]
所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集,所述集单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
[0165]
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rdram等)、静态存储器706(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统718,其经由总线730彼此通信。
[0166]
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置702被配置成执行指令726以用于执行本文中所论述的操作和步骤。计算机系统700可另外包含网络接口装置708以在网络720上通信。
[0167]
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任一或多种的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装
置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
[0168]
在一个实施例中,指令726包含实施对应于读取电平管理器组件(例如,图1的读取电平管理器组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体724展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
[0169]
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为生成所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
[0170]
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0171]
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
[0172]
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
[0173]
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
[0174]
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1