CN104813408B - 跟踪对非易失性存储器的区域的读访问 - Google Patents

跟踪对非易失性存储器的区域的读访问 Download PDF

Info

Publication number
CN104813408B
CN104813408B CN201380059648.XA CN201380059648A CN104813408B CN 104813408 B CN104813408 B CN 104813408B CN 201380059648 A CN201380059648 A CN 201380059648A CN 104813408 B CN104813408 B CN 104813408B
Authority
CN
China
Prior art keywords
counter
region
group
nonvolatile memory
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380059648.XA
Other languages
English (en)
Other versions
CN104813408A (zh
Inventor
M.A.德阿布鲁
S.斯卡拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN104813408A publication Critical patent/CN104813408A/zh
Application granted granted Critical
Publication of CN104813408B publication Critical patent/CN104813408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Abstract

数据存储设备包括存储器和控制器,并且可以进行包括以下的方法:在控制器中,响应于对由一组计数器中的具体计数器跟踪的非易失性存储器的具体区域的读访问,更新该具体计数器的值。对非易失性存储器的第一区域的读访问由该组计数器的第一计数器跟踪,并且对该非易失性存储器的第二区域的读访问由该组计数器的第二计数器跟踪。该方法包括响应于该具体计数器的值指示对该具体区域的读访问的计数等于或者超过第一阈值,开始对该非易失性存储器的具体区域的修正动作。

Description

跟踪对非易失性存储器的区域的读访问
相关申请的交叉引用
本申请要求于2012年12月14日提交的美国临时申请第61/737,668号以及与2013年2月1日提交的美国申请第13/756,946号的优先权。这些申请的每个的内容通过全部引用特别合并于本文中。
技术领域
本公开一般涉及跟踪对非易失性存储器的访问。
背景技术
诸如通用串行总线(USB)闪存设备或者可移除存储卡的非易失性数据存储设备已经考虑到数据和软件应用的增加的便携性。闪存设备可以通过在每个闪存单元中存储多位来提高数据存储密度。例如,多级单元(MLC)闪存设备提高每单元存储3位、每单元存储4位或者更多来提供增加的存储密度。尽管增加每单元的位数量以及降低存储器特征尺寸可以增加存储器设备的存储密度,但是存储在存储器设备处的数据的位错误率也增加。
经常使用错误校正编码(ECC)来校正出现在从存储器设备读取的数据中的错误。在存储之前,可以通过ECC编码器将数据编码以产生可以与数据一起存储为ECC码字的冗余信息(例如,“奇偶校验位”)。随着使用更多的奇偶校验位,ECC的错误校正能力增加,并且存储编码的数据所需的位数量也增加。
在存储器设备中存储的数据中出现的一个错误源是由于存储器设备的读访问。当向闪存设备的字线和位线施加电压以使能够读取在该字线处存储的数据时,由于存储器设备内的单元间耦合,相邻字线的阈值电压被干扰(例如稍微增加)。读干扰影响是累积的,并且如果未被修正,则可能导致存储的数据中的错误数量超过数据存储设备的ECC错误校正能力。
发明内容
由一组计数器跟踪对数据存储设备的非易失性存储器的区域的读访问。当计数器值指示对由计数器跟踪的具体区域的读访问的数量超过阈值量时,开始对在该具体区域中存储的数据的诸如数据刷新操作或者数据移动操作的修正动作。因此,可以在累积的读干扰影响超过数据存储设备的校正能力之前经由刷新或者移动数据来校正对存储器中存储的数据的读干扰影响。将非易失性存储器逻辑分区为用于读访问跟踪的区域可以是可编程的并且可以基于各种因素适应性地确定以在非易失性存储器内容纳对于读干扰影响的变换的敏感度。
附图说明
图1是包括配置为跟踪对存储器的多个区域的读访问以开始修正动作的数据存储设备的系统的具体例示性实施例的框图;
图2是例示可以并入图1的数据存储设备中的组件的具体实施例的框图;
图3是例示图1的存储器的逻辑分区以及计数器到存储器的区域的映射的总图;以及
图4是跟踪对非易失性存储器的区域的读访问的方法的具体例示性实施例的流程图。
具体实施方式
参考图1,系统100的一个具体实施例包括耦合到主机设备130的数据存储设备102。数据存储设备102配置为跟踪对非易失性存储器104的多个区域的读访问并且基于跟踪的读访问开始修正动作。
主机设备130可以配置为提供要在非易失性存储器104处存储的诸如用户数据132的数据或者请求要从存储器104读取的数据。例如,主机设备130 可以包括移动电话、音乐或视频播放器、游戏控制台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机、笔记本计算机或者平板机的计算机、固态数据存储驱动器、任何其他电子设备或其任意组合。
数据存储设备102包括耦合到控制器120的非易失性存储器104。非易失性存储器104可以是诸如NAND闪存的闪存。例如,数据存储设备102可以是诸如安全数字卡、微卡、迷你SD.TM卡(特拉华州化手段的 SD-3C LLC的商标)、多媒体卡.TM(MMC.TM)卡(维吉尼亚阿灵顿的JEDEC 固态技术协会的商标)或者紧凑快闪(CF)卡(加利福尼亚米尔皮塔司的 SanDisk公司的商标)的存储卡。作为另一例子,数据存储设备102可以配置为耦合到主机设备130作为嵌入式存储器,比如作为例示性例子的eMMC(维吉尼亚阿灵顿的JEDEC固态技术协会的商标)以及eSD。
非易失性存储器104包括多组存储元件,比如包括多个MLC快闪单元的多级单元(MLC)闪存中的字线。非易失性存储器104还可以包括存储元件的多个块,比如闪存的在每个擦除块中包括多个字线的擦除块。非易失性存储器104被逻辑分区为包括第一区域(区域1)110和第N区域(区域N)112 的多个区域,其中N是大于1的整数。每个区域110-112可以包括一个或多个字线、块或者非易失性存储器104的其他部分。为了例示,在其中非易失性存储器104包括多个阵列、多个平面、多个裸片或其任意组合的实现方式中,每个区域110-112可以包括在单个阵列、平面或者裸片内的多个字线。作为另一例子,单个区域(例如第一区域110)可以跨越多个阵列、平面、或者裸片、或其任意组合。为了例示,第一区域110可以包括在第一裸片内的存储元件以及在第二裸片内的存储元件。
控制器120配置为在数据存储设备102 操作地耦合到主机设备130时从主机设备130接收数据和指令以及向主机设备130发送数据。控制器120进一步配置为向存储器104发送数据和命令以及从存储器104接收数据。例如,控制器120配置为发送数据和写命令以指示非易失性存储器104将该数据存储到指定的地址。作为另一例子,控制器120配置为发送读命令以从非易失性存储器104的指定地址读取数据。
控制器120可以包括配置为接收要被存储到非易失性存储器104的数据并产生码字的ECC引擎(未示出)。例如,ECC引擎可以包括配置为使用ECC 编码方案来编码数据的编码器,比如里德所罗门编码器、博斯-乔赫里-霍克文黑姆(BCH)编码器、低密度奇偶校验(LDPC)编码器、Turbo码编码器、配置为根据一个或多个其他ECC编码方案来编码数据的编码器、或其任意组合。ECC引擎可以包括配置为对从非易失性存储器104读取的数据解码以检测并校正可能存在于数据中的位错误达ECC方案的错误校正能力的解码器。
控制器120包括配置为跟踪对非易失性存储器104进行的读访问的一组计数器122。该组计数器122包括多个计数器,包括第一计数器(计数器1) 140和第N计数器(计数器N)142。第一计数器140具有第一计数器值(值1)160,该第一计数器值160可由控制器120更新以跟踪对第一区域110的存储器访问。第N计数器142具有也可由控制器120更新以跟踪对第N区域 112的存储器访问的第N值162。
控制器120包括存储器管理引擎124。存储器管理引擎124配置为从主机设备130接收读请求并确定与所请求的数据对应的读取地址152。例如,读取地址152可以对应于非易失性存储器104内的一个或多个字线的物理地址。为了例示,存储器管理引擎124可以接收存储在非易失性存储器104中的所请求的数据的逻辑地址并且可以进行地址翻译以产生物理读取地址,比如读取地址152。存储器管理引擎124配置为产生从非易失性存储器104的读取地址152读取数据的读命令150。另外,存储器管理引擎124配置为将读取地址152提供给该组读取访问计数器122。
响应于确定与要从非易失性存储器104读取的数据的物理地址对应的读取地址152,控制器120可以选择与由该组计数器122中的具体计数器跟踪的非易失性存储器104的区域对应的该具体计数器。例如,当读取地址152 对应于第一区域110中的数据时,控制器120可以确定第一计数器140维持对第一区域110的读访问的计数,因此,第一值160可以由第一计数器140 更新。作为另一例子,当读取地址152对应于由第N计数器142跟踪的第N 区域112中的地址时,第N计数器142的第N值162可以被更新为指示读取操作。
与对由相应的计数器140-142跟踪的具体区域的访问的计数对应的值 160-162的每个与阈值170比较。响应于确定该值160-162中的一个或多个等于或者超过该阈值170,可以产生标志154并将其提供给存储器管理引擎124。存储器管理引擎124可以接收该标志154并且可以开始第非易失性存储器104 的相应区域的修正动作126。
例如,当第一值160指示对第一区域110的读访问的计数等于或超过阈值170时,控制器120可以配置为开始对该第一区域110的修正动作126。修正动作126可以包括指示相应区域110中的数据移动到非易失性存储器104 的不同存储器位置的数据移动操作。作为另一例子,修正动作126可以包括数据刷新操作。该数据刷新操作可以包括从该区域110的每个块复制数据、擦除具体块以及将该数据写到擦除的块。通过将数据移动到另一块或者通过刷新块中的数据,由于读干扰影响导致的存储元件的状态的偏移可以被修正,并且块或者块组内的存储元件可以返回到原始编程的状态。可以基于对每个区域110-112的读访问的计数来预测由读干扰影响导致的非易失性存储器104 中的数据的潜在讹误,并且可以进行修正动作126以避免由从多个读访问得到的累积的读干扰影响导致的数据的不可恢复的讹误。
在一些实现方式中,计数器140-142可以随对具体计数器140-142跟踪的区域的每个读访问从复位值(例如0值)向上计数。每个计数器140-142的值160-162可以与阈值170比较(例如在每个串更新值160-162时)以确定对非易失性存储器104的相应区域110-112的读访问的数量何时达到或超过阈值170。但是,在其他实现方式中,可以应用计数器140-142的其他配置。例如,计数器140-142可以初始被设置为与读访问限制对应的值,并且计数器140-142可以随着每个读访问而将相应的值160-162递减。当值160-162之一达到0值时,可以将标志154提供给存储器管理引擎124。
控制器120可以配置为将计数器值180存储到非易失性存储器104的特定或者专用部分用于在断电情况下存储。例如,控制器120可以配置为在数据存储设备102的会话关闭操作期间将该组计数器122的计数器值180存储到非易失性存储器104。控制器120还可以配置为从非易失性存储器104取回存储的计数器值180并且在数据存储设备102的会话初始化操作期间根据存储的计数器值180初始化该组计数器122中的计数器140-142。为了例示,计数器值180可以包括指示多个区域110-112(例如N个区域)的表格或其他数据结构,并且对于每个区域可以包括相应的计数器的值(例如对于第一区域110的第一值160)、对应于具体区域的地址范围(例如第一区域110内的第一和最后的擦除块的地址)、以及对应于具体区域的阈值170的值。例如,如参考图3进一步详细描述的,在数据存储设备102的寿命期间,区域110-112 的数量和布置可以修改。另外,随着数据存储设备102老化,可以从初始值修改阈值170的值,并且不同的区域110-112可以对应于不同的阈值。
在操作期间,主机设备130可以请求要从非易失性存储器104读取的用户数据132。存储器管理引擎124可以翻译所请求的用户数据132的地址并将读取地址152提供给该组读访问计数器122。另外,控制器120可以诸如与将读取地址152提供给该组读取计数器122同时地向非易失性存储器104 发出读命令150。
控制器120可以确定跟踪与读取地址152对应的非易失性存储器104的区域的该组计数器122中的具体计数器。例如,读取地址152可以对应于第一区域110中的字线,其可以由第一计数器140跟踪。响应于接收到读取地址152,可以确定读取地址152对应于第一计数器140,并且第一计数器140 可以更新第一值160以指示另外的读访问已经或者正在第一区域110中进行。
响应于读命令150被发送到非易失性存储器104,可以将所请求的数据从非易失性存储器104提供到控制器120作为读取数据156。控制器120可以处理该读取数据156,比如通过解码读取数据156并且校正可能在该读取数据156中出现的一个或多个读取错误,并且控制器120可以将得到的用户数据132提供给主机设备130。
另外,响应于第一值160(在被第一计数器140更新时)等于或超过阈值170,可以将相应的标志154提供给存储器管理引擎124。响应于接收到标志154,存储器管理引擎124可以开始修正动作126,比如通过将存储器地址或者块指示符提供给移动队列或者刷新队列用于调度数据移动操作或者数据刷新操作,比如关于图2进一步详细描述的。
通过跟踪对非易失性存储器104的不同区域的读访问的计数,并且通过响应于对具体区域110-112的读访问的计数达到或超过阈值170而开始修正动作126,在具体区域110-112中发生的读干扰的累积影响可以被修正。因此,由于读干扰而在读取数据156中发生的错误的数量可以被维持在与不跟踪并修正累积的读干扰影响的系统相比降低的水平。该组计数器122和将该组计数器122映射到非易失性存储器104的各个区域的相应逻辑可以被实现在专用电路中以减少在读访问操作期间的等待时间以及对控制器120的处理影响,如关于图2进一步详细描述的。可替换地,该组读访问计数器122可以经由在控制器120内的处理器执行的一个或多个软件处理而实现,或者通过由处理器执行的软件与专用电路的组合而实现。
参考图2,例示了图1的数据存储设备102的具体实施例并且其总体指定为200。非易失性存储器104被例示为包括多个擦除块的NAND闪存,多个擦除块包括块0220、块1222、块2224、块3226以及高达第M块(块M) 228的另外的块。NAND闪存104被逻辑分区为多个读跟踪区域,例示为第一读跟踪区域210、第二读跟踪区域212和高达第N-1读跟踪区域214的另外的区域以及第N读跟踪区域216。控制器120包括一组计数器122,包括第一计数器140、第二计数器141以及包括第N计数器142的一个或多个其他的计数器。控制器120包括地址比较电路240,其被耦合以接收来自快闪管理引擎124的读取地址152并向跟踪与读取地址152对应的NAND闪存104 的区域210-216的计时器生成输出信号。控制器120还包括写/擦除循环的计数244、写/擦除阈值246以及移动/刷新队列242。
控制器120配置为将来自快闪管理引擎124的读取地址152提供给地址比较电路240 。地址比较电路240可以被编程以将具体读取地址152路由到一组计数器122的具体计数器。例如,地址比较电路240可以确定读取地址 152是否在与第一读跟踪区域210对应的第一地址范围内、与第二读跟踪区域212对应的第二地址范围内等等,并且向计数器140-142的相应一个产生输出信号以致使该计数器更新其计数器值。
每个计算器140-142可以响应于例示为阈值1、阈值2、……阈值N的相应的阈值。例如,每个计算器140-142可以配置为进行计数器的值与其相应阈值的比较并且响应于该值达到或者超过该阈值而产生标志信号。为了例示,当第一计时器140将其计数器值更新为匹配第一阈值(阈值1)的量时,第一计数器140可以产生第一标志指示(标志1),该第一标志指示可以被提供给快闪管理引擎124作为标志154。每个计算器140-142可以具有可编程的阈值使得每个阈值可以具有不同的值,或者计数器140-142中的一个或多个(或全部)可以使用相同的阈值。
每个计算器140-142可以将不同的标志信号提供给快闪管理引擎124。例如,标志指示符154可以是多位信号,比如中断信号,该中断信号的每位对应于该组计数器122的不同计数器。以此方式,快闪管理引擎124可以确定具有匹配或者超过其相应阈值的读访问的计数的具体读跟踪区域210-216。作为响应,快闪管理引擎124可以通过将诸如第一读跟踪区域210的块0-3 220-226的相应区域的块的地址添加到移动/刷新队列242而进行图1的修正动作126。
快闪管理引擎124可以配置为进行数据移动操作以将数据从在移动/刷新队列242中指示的地址转移到NAND闪存104中的其他地址。可替换地,快闪管理引擎124可以配置为进行在移动/刷新队列242中指示的块的刷新操作。例如,快闪管理引擎124可以进行数据移动或者数据刷新作为在控制器 120处的内务操作的部分,比如在后台处理中进行。
快闪管理引擎124可以配置为保持跟踪在NAND闪存104处进行的写和擦储存环的写/擦除计数244。例如,快闪管理引擎124可以基于写/擦除计数 244确定NAND闪存104的“年龄”。因为随着写/擦除计数244增加,NAND 闪存104的维持存储元件的不同状态的能力可能下降,所以随着设备200老化(例如随着写/擦除计数244增加),可以降低计数器阈值。
快闪管理引擎124可以配置为进行数据移动操作以将数据从在移动/刷新队列242中指示的地址转移到NAND闪存104中的其他地址。可替换地,快闪管理引擎124可以配置为进行在移动/刷新队列242中指示的块的刷新操作。例如,快闪管理引擎124可以进行数据移动或者数据刷新作为在控制器 120处的内务操作的部分,比如在后台处理中进行。
快闪管理引擎124可以配置为保持跟踪在NAND闪存104处进行的写入和擦除循环的写入/擦除计数244。例如,快闪管理引擎124可以基于写入/擦除计数244确定NAND闪存104的“年龄”。因为NAND闪存104维持存储元件的不同状态的能力可能随着写入/擦除计数244增加而降低,所以随着设备200老化(例如随着写入/擦除计数244增加),可以降低计数器阈值。
快闪管理引擎124可以配置为将写入/擦除计数244与写入/擦除阈值246 比较,并且在确定写入/擦除计数244达到或者超过写入/擦除阈值246时,进行读取跟踪机制的一个或多个更新。例如,快闪管理引擎124可以配置为将 NAND闪存104的逻辑分区更新为更多数量的读取跟踪区域210-216,如关于图3进一步详细描述的。作为另一例子,快闪管理引擎124可以降低对于每个计数器140-142的阈值以便对于更老的存储器比对于具有更大容量来维持NAND闪存104中的存储器单元的不同状态的新用存储器更频繁地采取修正动作。
参考图3,例示了第一逻辑分区304和区域到计数器的第一映射302以及第二逻辑分区384以及区域到计数器的第二映射382。第一逻辑分区304 可以对应于将非易失性存储器104分区为包括第一区域340、第二区域342、第三区域344和第四区域346的四个区域。四个区域340-346可以跨过整个非易失性存储器104,从最低索引的块(块0220)到最高索引的块(块M 228)。
该组计数器122被例示为包括第一计数器320、第二计数器322、第三计数器324、第四计数器326、第五计数器328、第六计数器330、第七计数器 332和第八计数器334,并且可以包括一个或多个另外的计数器(未示出)。根据区域到计数器的第一映射302,第一计数器320被映射到第一区域340,第二计数器322被映射到第二区域342,第三计数器324被映射到第三区域 344,第四计数器326被映射到第四区域346。其余的计数器328-334未被映射到任何存储器区域344-346,并且可以不使用。
可以响应于图2的写入/擦除计数244 小于写入/擦除阈值246而由图1-2 的控制器120应用区域到计数器的第一映射302以及第一逻辑分区304。例如,区域到计数器的第一映射302以及第一逻辑分区304可以是图1的存储器设备102的初始配置并且可以根据诸如由数据存储设备102的制造商确定的初始组的可编程值而设置。
通过数据存储设备102的操作,写入/擦除计数244可能最终等于或超越写入/擦除阈值246。响应于写入/擦除计数244等于或者超过写入/擦除阈值 246,或者响应于一些其他的触发事件,图1的控制器120可以配置为将非易失性存储器104的逻辑分区从包括第一组区域340-346的第一逻辑分区304 修改为包括第二组区域的第二逻辑分区384。第二组区域包括第一区域350、第二区域352、第三区域354、第四区域356、第五区域358、第六区域360、第七区域362和第八区域364。第二组区域350-364中的区域的数量(例如8) 大于第一组区域340-346中的区域的第一数量(例如4)。
控制器120还可以配置为将区域的映射从区域到计数器的第一映射302 更新为区域到计数器的第二映射382。区域到计数器的第二映射382使能够用该组计数器122的相应计数器320-334跟踪第二组多个区域350-356的每个区域。如例示的,可以通过将第一逻辑分区304的每个区域再分为两个区域而形成第二逻辑分区384,以将区域的数量从四个(根据第一逻辑分区304) 增加到八个(对应于第二逻辑分区384)。
控制器120还可以配置为根据一个或多个其他触发事件或者其他准则更新第二逻辑分区384以及区域到计数器的第二映射382以产生进一步的逻辑分区组以及区域到计数器的映射。例如,当图2的擦除/写入计数244超过第二擦除/写入阈值时,逻辑分区384可以增加到更大数量的区域,比如十六个区域,并且可以分配该组计数器122的另外的计数器以容纳对新建立的数量的区域的存储器读取访问的跟踪(例如可以将十六个计数器映射到十六个区域)。
尽管第一和第二逻辑分区304和384例示了具有基本相同大小并且贯穿非易失性存储器104基本均匀分布的多个区域,但是应该理解,在其他实现方式中,存储器区域中的一个或多个可以具有与其他存储器区域不同的大小。例如,在存储了具有高读取访问率的数据的区域中,比如在引导分区或者非易失性存储器104的存储了其他文件管理信息的区域中,可能预期更高数量的读取。在此情况下,对于预取具有更高读取访问率的非易失性存储器104 的部分可以使用更小的区域,而对于预期具有较低读取访问率的非易失性存储器104的部分可以使用更大的区域。作为另一例子,读干扰对于非易失存储器104中的存储的数据的影响可能依赖于一个或多个其他因素,比如存储器阵列中的位置(例如在阵列的边缘与在阵列的内部相比)、多平面存储器的具体平面、多裸片存储器的具体裸片、诸如存储的数据的类型、在非易失性存储器104储存的数据中的“0”值与“1”值的比率或者其他因素的一个或多个其他因素。
因为将非易失性存储器104分区为多个区域以及区域到计数器的映射可以是可编程的,所以数据存储设备102可以配置为容纳各种因素以及读取访问率的各种差别以及读干扰对非易失性存储器104的各个部分的影响。例如,第一逻辑分区304和区域到计数器的第一映射302可以由图1的数据存储设备102的制造商设置。为了例示,由第一逻辑分区304定义的存储器104的区域可以基于测试非易失性存储器的部分对于读干扰影响的易感性的结果、基于诸如文件管理数据或者预加载的内容的存储到非易失性存储器104的区域的数据的类型、基于一个或多个其他准则或者其任意组合而设置。
存储器管理引擎124可以配置为根据一个或多个准则、作为非限制性的例子、比如根据对非易失性存储器104的不同部分的读访问的历史和/或根据图2的写擦除计数244来更新第一逻辑分区304和区域到计数器的第一映射 302,以产生第二逻辑分区384以及区域到计数器的第二映射382。例如,图 1的快闪管理引擎124可以存储与第一逻辑分区304的区域对应的计数器值 160、162。快闪管理引擎124可以更新由图2的地址比较电路240使用的地址范围以便使用两倍的地址范围,每个更新后的地址范围包括先前地址范围近似一半的地址。该组计数器122的计数器可以由地址比较电路240分配到更新后的地址范围。分配的计数器可以被初始化到近似是与该存储器的区域对应的存储的计数器值的一半的计数器值。例如,如果第一区域110由第一计数器140跟踪并且具有两百的计数器值160,则在将第一区域110分区为两个区域之后,分配给两个区域的每个的计算器每个可以被初始化到一百的值。
参考图4,描绘方法400的具体实施例。方法400可以在包括控制器和诸如闪存的非易失性存储器的数据存储设备中进行。例如,方法400可以由图1的数据存储设备102进行。
该方法包括在402,在数据存储设备的控制器中,响应于对由一组计数器中的具体计数器跟踪的非易失性存储器的具体区域的读访问,更新该计数器的值。对非易失性存储器的第一区域的读访问由该组计数器中的第一计数器跟踪,并且对非易失性存储器的第二区域的读访问由该组计数器中的第二计数器跟踪。例如,对图1的第一区域110的读访问可以由第一计数器140 跟踪,并且对图1的第N区域112的跟踪可以由第N计数器142跟踪。
在404,响应于该具体计数器的值指示对该具体区域的读访问的计数等于或者超过第一阈值,开始对非易失性存储器的该具体区域的修正动作。例如,该修正动作可以是由图1的存储器管理引擎124开始的修正动作126,并且可以包括数据移动操作或者数据刷新操作。响应于对该具体区域的修正动作的完成,可以复位该具体计数器的值。
该方法还可以包括在数据存储设备的会话关闭操作期间将该组计数器的值存储到非易失性存储器。在数据存储设备的会话初始化操作期间,可以从非易失性存储器取回存储的计数器值,并且可以根据存储的计数器值初始化该组计数器中的计数器。例如,控制器120在断电时可以将图1的计数器值 180存储到非易失性存储器104,并且在初始化/上电期间可以从非易失性存储器104取回计数器值180。
非易失性存储器可以被逻辑分区为第一组多个区域,并且对多个区域的每个的读访问的计数可以由该组计数器的相应计数器跟踪,比如将存储器104 分区为由四个计数器320-326跟踪的四个区域340-346的第一逻辑分区304。被包括在第一组多个区域中的区域的第一数量可以是可编程的。例如,响应于触发事件,方法400可以包括修改非易失性存储器的逻辑分区以形成第二组多个区域(例如根据图3的第二逻辑分区384的八个区域350-364的组)。触发事件可以对应于擦除循环的计数(例如图2的W/E计数244)等于或者超过擦除阈值(图2的W/E阈值246)。第二组区域中的区域的第二数量可以大于第一组区域中的区域的第一数量,并且可以更新区域到计数器的映射以用该组计数器中的相应计数器跟踪第二组多个区域中的每个区域。例如,图3的区域到计数器的第一映射302可以由图1的存储器管理引擎124通过将该组计数器的计数器分配给第二逻辑分区384的每个区域以产生区域到计数器的第二映射382而被更新。尽管在此描绘的各个组件被例示为块组件,并且以一般术语描述,但是这样的组件可以包括一个或多个微处理器、状态机或者配置为使得图1的控制器120能够基于计数器值160-162与一个或多个阈值170的比较而开始修正动作的其他电路。例如,控制器120可以表示诸如硬件控制器、状态机、逻辑电路或者其他结构的物理组件以使得图1的控制器120能够跟踪对各个区域110-112的的访问并且开始对各个区域110-112 的数据移动操作或者数据刷新操作。
可以使用被编程为响应于对存储器104的相应区域的读访问而更新计数器并且在确定计数器值指读访问的数量匹配或者超过阈值量时开始修正动作、比如通过将区域的块添加到刷新队列或者移动队列的微处理器或者微控制器来实现控制器120。在一个具体实施例中,控制器120包括执行存储在非易失性存储器104处的指令的处理器。可替换地,或者另外,由处理器执行的可执行指令可以存储在不是非易失性存储器104的一部分的单独的存储器位置处,比如存储在只读存储器(ROM)处。
在一个具体实施例中,可以在配置为选择性地耦合到一个或多个外部设备的便携式设备中实现数据存储设备102。然而,在其他实施例中,数据存储设备102可以附接或者嵌入在一个或多个主机设备内,比如在主机通信设备的框架内。例如,数据存储设备102可以在诸如无线电话、个人数字助理 (PDA)、游戏设备或者控制台、便携式导航设备或者使用内部非易失性存储器的其他设备的封装的装置内。在一个具体实施例中,数据存储设备102可以耦合到非易失性存储器,比如三维(3D)存储器、闪存(例如NAND、NOR、多级单元(MLC)、划分位线NOR(DINOR)存储器、AND存储器、高电容耦合比(HiCR)、不对称无接触晶体管(ACT)或者其他闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)或者任何其他类型的存储器的非易失性存储器、
对在此所述的实施例的例示意图提供对各个实施例的一般理解。可以利用并且从公开得到其他实施例,使得可以不脱离本公开的范围而做出结果和逻辑上的替换和改变。本公开意图覆盖各个实施例的任意以及所有随后的适应以及变型。
以上公开的主题被认为是例示性的而不是限制性的,并且所附权利要求意图覆盖落在本公开的范围内的所有这样的修改、改进以及其他实施例。因此,达法律允许的最大范围,本公开的范围将由以下权利要求及其等效物的最宽可允许解释确定,并且不应受以上详细描述的限制或限定。

Claims (16)

1.一种方法,包括:
在包括控制器和被逻辑分区为第一组多个区域的非易失性存储器的数据存储设备中进行:
在数据存储设备的控制器中,响应于对由一组计数器中的具体计数器跟踪的非易失性存储器的具体区域的读访问,更新该具体计数器的值,其中对非易失性存储器的第一区域的读访问由该组计数器的第一计数器跟踪,并且其中对该非易失性存储器的第二区域的读访问由该组计数器的第二计数器跟踪;
响应于该具体计数器的值指示对该具体区域的读访问的计数等于或者超过第一阈值,开始对该非易失性存储器的具体区域的修正动作;以及
响应于触发事件:
修改该非易失性存储器的逻辑分区以形成第二组多个区域,其中第一组区域中的区域的第一数量小于第二组区域中的区域的第二数量;以及
更新区域到计数器的映射以用该组计数器中的相应计数器跟踪第二组多个区域中的每个区域。
2.如权利要求1所述的方法,其中该修正动作包括数据移动操作或者数据刷新操作的至少一个。
3.如权利要求1所述的方法,还包括响应于对该具体区域的修正动作的完成,复位该具体计数器的值。
4.如权利要求1所述的方法,还包括在数据存储设备的会话关闭操作期间,将该组计数器的值存储到该非易失性存储器。
5.如权利要求1所述的方法,还包括在该数据存储设备的会话初始化操作期间,从该非易失性存储器取回存储的计数器值并且根据存储的计数器值初始化该组计数器中的计数器。
6.如权利要求1所述的方法,还包括:
修改该非易失性存储器的逻辑分区以形成第三组多个区域,其中第三组区域中的区域的第三数量大于第二组区域中的区域的第二数量;以及
更新区域到计数器的映射以用该组计数器中的相应计数器跟踪第三组多个区域中的每个区域。
7.如权利要求1所述的方法,其中所述触发事件对应于擦除循环的计数等于或者超过擦除阈值。
8.如权利要求1所述的方法,其中所述非易失性存储器包括闪存。
9.一种数据存储设备,包括:
非易失性存储器,其被逻辑分区为第一组多个区域;以及
控制器,包括一组计数器,其中该控制器配置为响应于对由该组计数器中的具体计数器跟踪的非易失性存储器的具体区域的读访问,更新该具体计数器的值,其中对非易失性存储器的第一区域的读访问由该组计数器的第一计数器跟踪,并且其中对该非易失性存储器的第二区域的读访问由该组计数器的第二计数器跟踪,
其中,响应于该具体计数器的值指示对该具体区域的读访问的计数等于或者超过第一阈值,该控制器配置为开始对该非易失性存储器的具体区域的修正动作;以及
该控制器还配置为响应于触发事件,修改该非易失性存储器的逻辑分区以形成第二组多个区域,其中第一组区域中的区域的第一数量小于第二组区域中的区域的第二数量,并且响应于触发事件更新区域到计数器的映射以用该组计数器中的相应计数器跟踪第二组多个区域中的每个区域。
10.如权利要求9所述的数据存储设备,其中该修正动作包括数据移动操作或者数据刷新操作的至少一个。
11.如权利要求9所述的数据存储设备,其中该控制器配置为响应于对该具体区域的修正动作的完成,复位该具体计数器的值。
12.如权利要求9所述的数据存储设备,其中该控制器还配置为在数据存储设备的会话关闭操作期间,将该组计数器的值存储到该非易失性存储器。
13.如权利要求9所述的数据存储设备,其中该控制器还配置为在该数据存储设备的会话初始化操作期间,从该非易失性存储器取回存储的计数器值并且根据存储的计数器值初始化该组计数器中的计数器。
14.如权利要求9所述的数据存储设备,其中该控制器还配置为:修改该非易失性存储器的逻辑分区以形成第三组多个区域,其中第三组区域中的区域的第三数量大于第二组区域中的区域的第二数量;以及更新区域到计数器的映射以用该组计数器中的相应计数器跟踪第三组多个区域中的每个区域。
15.如权利要求9所述的数据存储设备,其中所述触发事件对应于擦除循环的计数等于或者超过擦除阈值。
16.如权利要求9所述的数据存储设备,其中所述非易失性存储器包括闪存。
CN201380059648.XA 2012-12-14 2013-11-21 跟踪对非易失性存储器的区域的读访问 Active CN104813408B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261737668P 2012-12-14 2012-12-14
US61/737,668 2012-12-14
US13/756,946 2013-02-01
US13/756,946 US9141534B2 (en) 2012-12-14 2013-02-01 Tracking read accesses to regions of non-volatile memory
PCT/US2013/071280 WO2014092967A1 (en) 2012-12-14 2013-11-21 Tracking read accesses to regions of non-volatile memory

Publications (2)

Publication Number Publication Date
CN104813408A CN104813408A (zh) 2015-07-29
CN104813408B true CN104813408B (zh) 2017-11-10

Family

ID=50932347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380059648.XA Active CN104813408B (zh) 2012-12-14 2013-11-21 跟踪对非易失性存储器的区域的读访问

Country Status (4)

Country Link
US (1) US9141534B2 (zh)
KR (1) KR20150096646A (zh)
CN (1) CN104813408B (zh)
WO (1) WO2014092967A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140372691A1 (en) * 2013-06-13 2014-12-18 Hewlett-Packard Development Company, L. P. Counter policy implementation
US10152408B2 (en) 2014-02-19 2018-12-11 Rambus Inc. Memory system with activate-leveling method
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
US9305651B1 (en) * 2014-09-22 2016-04-05 Sandisk Technologies Inc. Efficient wide range bit counter
US9678827B2 (en) * 2014-10-07 2017-06-13 SK Hynix Inc. Access counts for performing data inspection operations in data storage device
KR102527288B1 (ko) * 2015-03-03 2023-05-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9501420B2 (en) * 2014-10-22 2016-11-22 Netapp, Inc. Cache optimization technique for large working data sets
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
US9760432B2 (en) 2015-07-28 2017-09-12 Futurewei Technologies, Inc. Intelligent code apparatus, method, and computer program for memory
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102591121B1 (ko) 2016-09-28 2023-10-19 에스케이하이닉스 주식회사 반도체장치
KR20180059208A (ko) 2016-11-25 2018-06-04 삼성전자주식회사 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법
KR20180061557A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
KR20190001417A (ko) * 2017-06-27 2019-01-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
US11294594B2 (en) * 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
US10140042B1 (en) 2017-09-13 2018-11-27 Toshiba Memory Corporation Deterministic read disturb counter-based data checking for NAND flash
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US10431301B2 (en) 2017-12-22 2019-10-01 Micron Technology, Inc. Auto-referenced memory cell read techniques
US10566052B2 (en) 2017-12-22 2020-02-18 Micron Technology, Inc. Auto-referenced memory cell read techniques
JP7074519B2 (ja) * 2018-03-19 2022-05-24 キオクシア株式会社 メモリシステム、および、メモリ制御方法
JP2019168937A (ja) 2018-03-23 2019-10-03 東芝メモリ株式会社 メモリシステム、制御方法及びコントローラ
US10795828B2 (en) * 2018-08-10 2020-10-06 Micron Technology, Inc. Data validity tracking in a non-volatile memory
EP3647952A1 (en) * 2018-10-31 2020-05-06 EM Microelectronic-Marin SA Anti-tearing protection system for non-volatile memories
US11392292B2 (en) * 2019-07-15 2022-07-19 Micron Technology, Inc. Maintenance operations for memory devices
CN112233715A (zh) 2019-07-15 2021-01-15 美光科技公司 用于存储器系统的维护操作
US11287998B2 (en) * 2019-08-02 2022-03-29 Micron Technology, Inc. Read count scaling factor for data integrity scan
US11392515B2 (en) * 2019-12-03 2022-07-19 Micron Technology, Inc. Cache architecture for a storage device
US11226761B2 (en) 2020-04-24 2022-01-18 Western Digital Technologies, Inc. Weighted read commands and open block timer for storage devices
KR20220059266A (ko) 2020-11-02 2022-05-10 에스케이하이닉스 주식회사 스토리지 시스템
CN114817130A (zh) * 2021-01-21 2022-07-29 伊姆西Ip控股有限责任公司 管理文件系统的方法、设备和计算机程序产品
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506977A (zh) * 2002-12-04 2004-06-23 ������������ʽ���� 半导体存储装置及参考单元的修正方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP2008181380A (ja) 2007-01-25 2008-08-07 Toshiba Corp メモリシステムおよびその制御方法
JP5661227B2 (ja) 2007-02-07 2015-01-28 株式会社メガチップス メモリコントローラ
JP2009087509A (ja) 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
JP2009187159A (ja) 2008-02-05 2009-08-20 Toshiba Corp メモリシステム
US8189379B2 (en) 2009-08-12 2012-05-29 Texas Memory Systems, Inc. Reduction of read disturb errors in NAND FLASH memory
TWI490869B (zh) 2010-08-13 2015-07-01 Mstar Semiconductor Inc 應用於快閃記憶體的方法與相關的控制器
JP5629391B2 (ja) 2011-04-28 2014-11-19 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
TWI461913B (zh) * 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506977A (zh) * 2002-12-04 2004-06-23 ������������ʽ���� 半导体存储装置及参考单元的修正方法

Also Published As

Publication number Publication date
KR20150096646A (ko) 2015-08-25
WO2014092967A1 (en) 2014-06-19
CN104813408A (zh) 2015-07-29
US9141534B2 (en) 2015-09-22
US20140173180A1 (en) 2014-06-19

Similar Documents

Publication Publication Date Title
CN104813408B (zh) 跟踪对非易失性存储器的区域的读访问
US11194654B2 (en) Method and apparatus for a volume management system in a non-volatile memory device
CN111078131B (zh) 使用交叉写入分开晶片平面
CN101681300B (zh) 存储器系统
US11216337B2 (en) Memory system
CN110347332B (zh) 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法
CN103680637B (zh) 具有异常字线检测器的闪存系统及其异常字线检测方法
US8819385B2 (en) Device and method for managing a flash memory
US9153331B2 (en) Tracking cell erase counts of non-volatile memory
CN107077427A (zh) 跨电源周期来跟踪对写入命令和解除映射命令的混合
US20100199020A1 (en) Non-volatile memory subsystem and a memory controller therefor
CN107731258A (zh) 具有读取阈值估计的存储器系统及其操作方法
US9520184B2 (en) Method for writing in-system programming code into flash memory for better noise margin
KR20190027388A (ko) 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치
US9502129B1 (en) Memory system and method of controlling nonvolatile memory
CN102543196B (zh) 数据读取方法、存储器储存装置及其控制器
US20090055575A1 (en) Flash memory with small data programming capability
CN104094237A (zh) 存储器设备中的增强的错误校正
CN102394101A (zh) 具有自适应容量的存储设备
WO2014110183A1 (en) Systems and methods to update reference voltages in response to data retention in non-volatile memory
CN108735253A (zh) 非易失性存储器存储系统
CN109036488A (zh) 存储器控制器、操作该存储器控制器的方法以及存储器系统
CN110047544A (zh) 用于包括qlc单元的存储器装置的编码方法及系统
CN109753375A (zh) 存储器系统及其操作方法
CN111352854B (zh) 存储装置、控制器及操作存储装置的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant