CN102750191B - 用于启动固态非易失性存储设备内的刷新操作的方法 - Google Patents

用于启动固态非易失性存储设备内的刷新操作的方法 Download PDF

Info

Publication number
CN102750191B
CN102750191B CN201210076460.3A CN201210076460A CN102750191B CN 102750191 B CN102750191 B CN 102750191B CN 201210076460 A CN201210076460 A CN 201210076460A CN 102750191 B CN102750191 B CN 102750191B
Authority
CN
China
Prior art keywords
error
reset
volatile memory
refresh operation
solid state
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
CN201210076460.3A
Other languages
English (en)
Other versions
CN102750191A (zh
Inventor
筱田浩司
柴田广明
B·W·休斯
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.)
Denso Corp
Denso International America Inc
Original Assignee
Denso Corp
Denso International America Inc
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 Denso Corp, Denso International America Inc filed Critical Denso Corp
Publication of CN102750191A publication Critical patent/CN102750191A/zh
Application granted granted Critical
Publication of CN102750191B publication Critical patent/CN102750191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种方法包括确定固态非易失性存储器的块(210)的错误数。所述错误数对应于所述块(210)的具有最大错误位量的页(230)内的错误位的量。所述方法还包括将错误数与错误阈值比较,以及确定复位数,其指示自前一次对所述固态非易失性存储器的所述块(210)执行刷新操作后对处理器(110)复位的次数。所述方法还包括将复位数与复位阈值比较,以及在错误数超过错误阈值,复位数超过复位阈值时,对所述固态非易失性存储器的所述块(210)刷新。

Description

用于启动固态非易失性存储设备内的刷新操作的方法
技术领域
本公开涉及一种用于启动固态非易失性存储设备的刷新操作的方法。
背景技术
大多数电子设备均包括至少一个控制设备的操作的微控制器或微处理器。为了执行预期的功能,所述微控制器将执行用于实施具体操作的代码或可执行指令。所述微控制器还可以检索用于执行所述操作的数据。所述代码和数据存储在计算机可读存储设备内。制造商越来越多地采用诸如NAND闪速存储设备的固态非易失性存储设备作为计算机可读存储器。
然而,NAND闪速存储设备带来的问题在于在这些设备中更加经常地发现读取失败错误。所述读取失败错误可能是永久性的,例如,不良块错误,例如,块受到了物理损伤,或者其可能是暂时的,例如,数据保持错误和读取干扰错误。要想解决数据保持错误和读取干扰错误,微控制器在检测到这样的错误时将启动刷新操作,以刷新含有错误的存储块。刷新操作将从所述块删除数据,并将备份数据从备份位置存储到所述块内,由此恢复所述块的内容。然而,不良块错误无法通过刷新得到修复,其倾向于更难得到解决。此外,随着所执行的刷新操作的数量的提高,在特定的块发生不良块错误的可能性也提高了。
为了降低产生不良块错误的可能性,一些微控制器将在执行刷新操作之前等待预定的时间量,例如,在执行刷新操作之前等待若干星期、若干月或若干年。然而,这种方法假定在所经过的时间和读取失败错误之间存在直接关联。此外,所述的预定时间量可能太短了,从而导致太多的刷新操作,以及不良块错误的可能性越来越高。反之,所述预定的时间量可能过长,从而导致在延长的时间周期内存在读取失败错误。因而,需要一种更好的方法确定何时启动刷新操作。
本发明的目的在于提供一种在确定何时启动刷新操作的情况下启动固态非易失性存储设备中的刷新操作的方法。文中提供的背景技术描述只是出于对本公开的背景进行一般性介绍的目的。在这一背景技术部分描述的程度上,当前指定的发明人的工作以及所述描述的在提交时可能不能被当作现有技术的方面既不应被明确地,也不应被隐含地承认为对照本公开的现有技术。
发明内容
公开了一种用于启动耦合至处理器的固态非易失存储设备的刷新操作的方法。所述方法包括确定固态非易失性存储器的块的错误数。所述错误数对应于所述块的具有最大错误位量的页内的错误位的量。所述方法还包括将所述错误数与错误阈值比较,以及确定复位数,该复位数指示自前一次对所述固态非易失性存储器的所述块执行刷新操作后对所述处理器复位的次数。所述方法还包括将复位数与复位阈值比较,以及在错误数超过错误阈值,且复位数超过复位阈值时,对所述固态非易失性存储器的所述块刷新。
就本发明的另一方面而言,公开了一种用于启动刷新操作的系统,其包括主控制器和耦合至所述主控制器的固态非易失性存储设备。所述固态非易失性存储设备被划分成多个块,每一块具有多个页。将所述主控制器配置成确定所述固态非易失性存储器的所述多个块中的块的错误数。所述错误数对应于所述块的所述多个页中具有最大错误位量的页内的错误位的量。还将所述主控制器配置成将所述错误数与错误阈值比较。还将所述主控制器配置成确定复位数以及将所述复位数与复位阈值比较,所述复位数指示自前一次对所述固态非易失性存储器的所述多个块中的所述块执行刷新操作后对所述主控制器复位的次数。还将所述主控制器配置成在错误数超过错误阈值,且复位数超过复位阈值时,对所述固态非易失性存储器的所述块刷新。
通过下文提供的详细描述本公开的其他适用领域将变得显而易见。应当理解,所述详细说明和具体的例子仅旨在实现说明的目的,而非旨在限制本公开的范围。
附图说明
通过具体实施方式和附图,本公开将得到更加充分地理解,其中:
图1是示出了设备的示范性部件的方框图;
图2是示出了闪速存储设备的示范性结构的图示;
图3是用于确定何时执行刷新操作的示范性方法的流程图;
图4是示出了用于确定何时执行刷新操作的备选示范性方法的流程图;
图5是示出了用于确定何时执行刷新操作的备选示范性方法的流程图;
图6是示出了用于确定何时执行刷新操作的备选示范性方法的流程图;以及
图7是示出了用于确定闪速存储设备的块内的永久性错误的量的示范性方法的流程图。
具体实施方式
图1示出了示范性设备100的部件或者设备的子系统。所述设备包括用于操作所述设备100的主控制器110以及存储用于对所述设备100进行操作的可执行指令的非易失性存储设备120,所述指令包括用于设备100的设备引导加载程序。主控制器110向闪速存储设备120发送读取请求,该请求包括所需数据的地址,固态非易失性存储设备120返回所提供的地址处的块开头。
所述主控制器110是用于执行一项或多项功能的芯片组。例如,所述主控制器110可以是用于控制远程信息通信设备、电视或移动电话的微处理器。为了执行预期功能,主控制器110可以运行支持预期功能的操作系统。所述操作系统包含一组必须可由主控制器110访问的指令。这些指令存储在固态非易失性存储设备120上。此外,所述操作系统还可以执行专用应用程序,所述应用程序也可以存储在固态非易失性存储设备120上。一旦将所述操作系统加载到了主控制器110上,所述操作系统就将处理存储器访问。此外,所述操作系统还将处理存储器访问错误,例如,读取失败错误。
在加电的同时,主控制器110必须从固态非易失性存储设备120加载所述操作系统。最初,被称为初级引导加载程序(PBL)的程序从固态非易失性存储设备120检索被称为设备引导加载程序或次级引导加载程序的程序。处于清楚的目的,在下文中将所述次级引导加载程序和设备引导加载程序称为设备引导加载程序(DBL)。所述PBL是编写在主控制器110上,其在对主控制器110加电的同时运行。采用预定地址对所述PBL硬编码,所述地址指示固态非易失性存储器120上存储DBL的块,例如,Ox0000。为了加载DBL,PBL向闪速存储器120请求预定地址处的块开头。固态非易失性存储器120返回存储在预定地址处的块,PBL释放对存储在所返回的块内的DBL的控制。一旦加载了DBL,DBL将对主控制器110发出指令,使其向固态非易失性存储设备120检索所述操作系统。
当在含有DBL或操作系统的块内发现读取失败错误时将产生问题。出于解释的目的,将含有可执行代码的块称为程序区。就在程序区内发现读取失败错误或数据保持错误的情况下,主控制器110能够启动刷新操作。在刷新操作中,删除块,并将块的副本写到所述块上。主控制器110能够采用软件解决方案解决预定量的暂时错误。每一数据库单位,例如,页含有一个或多个错误校正代码(ECC),在下文中将对此进行讨论。主控制器110能够采用ECC校正块内的错误。但是,能够采用ECC校正的错误的量受到能够在ECC字段中列举的错误的量的限制,一页中最多4个ECC。
要认识到,在一些实施例中,所述固体非易失性存储设备为闪速存储设备120。在一些示范性实施例中,所述闪速存储设备120为NAND闪速存储设备。要认识到,在一些实施例中,所述固体非易失性存储设备可以由NOR闪速存储器或者其他适当的固态非易失性存储器构成。
图2示出了闪速存储设备200的示范性结构。将闪速存储设备200划分成多个块210。例如,可以将示范性闪速存储设备200划分成1028个块。此外,将块210划分成多个页220。例如,可以将示范性块210划分成64页。页230由多个字节构成。例如,示范性页230可以由2112个字节构成。此外,可以将每一页230分成4个读取单位,每一读取单位由528个字节构成(未示出)。要认识到,前述值是示范性的,可以设想闪速存储设备200的其他配置。例如,块可以由32页构成,页可以由4048个字节构成。
可以将页230划分成主数据区240和备用区250。所述主数据区240含有存储数据或实质性数据。例如,如果所述块处于程序区内,那么具体页230的主数据区240可以对应于具体的指令。要认识到,也可以将地址和参数值存储在页的主数据区内。备用区250存储与页230相关的信息。备用区250包括用于ECC 260的多个字节。典型地,设备100、闪速存储设备120或主控制器110将包括存储控制器(未示出),其执行错误检查算法,以判断所述页内的任何位是否含有错误。如果含有错误,那么备用区的ECC部分260将指示哪个或哪些位含有错误。此外,可以将诸如耗损均衡信息的额外数据以及其他软件开销功能存储在备用区250内。
主控制器110能够对块的每一页的ECC计数,以判断所述块是否需要刷新,因而对所述块刷新的决定是基于所述块的页中的最大错误量和主控制器110复位的次数的。图3示出了用于确定何时对特定的块执行刷新操作的方法。所述方法能够在主控制器110的每一新加电周期内运行。每次主控制器110复位,一个新的加电周期就开始了。保持从对块刷新后开始执行的对加电周期或复位的计数,例如,复位计数。在主控制器110复位时,使复位计数加1,如步骤312中所示。
如步骤314中所示,主控制器110检查正在检查的块中的每一页的ECC数据,并确定所述块的最大错误数。所述最大错误数是在所述块的具有最多错误的页中找到的错误的量。主控制器110每次引导时,主控制器110都将获得程序区块。对于程序区块中的每一页而言,主控制器110将检查所述页的备用区的ECC部分。主控制器110保持最大错误数,由此每次检测到新的其内含有更多错误的页,主控制器110都对所述最大错误数更新,使之对应于具有更多错误的新页内的错误的数量。
一旦确定了最大错误数,就将所述最大错误数与错误阈值进行比较,如步骤316中所示。错误阈值是指示能够在页内发现的不会启动块的刷新的最大错误量的预定数量。例如,错误阈值可以是3,因而当在块的任何页内找到4个或更多错误时,所述方法将继续执行。如果最大错误数不超过错误阈值,那么不执行刷新,所述方法停止执行,如步骤324中所示。
如步骤318中所示,如果最大错误数超过了错误阈值,那么将复位计数与复位阈值比较。如前所述,所述计数是指示自前一刷新操作开始执行的复位的数量的值。复位阈值是必须发生的能够迫使刷新操作实施的最低加电周期量。在一些实施例中,复位阈值为预定阈值,例如,2000次复位。在一些实施例中,复位阈值是动态的,并且基于最大错误数。如果复位计数不超过复位阈值,那么不执行刷新操作,所述方法停止执行。复位次数超过了阈值,那么将复位计数设回到0,如步骤320中所示,并对块执行刷新操作,如步骤322中所示。
要认识到,上述方法的变型也处于本公开的范围内。此外,要指出的是,所述步骤的顺序不是强制性的,可以在其他步骤之前执行一些步骤。此外,可以将一些步骤合并成一个步骤,同时可以将一些步骤分解成多个步骤。还要注意的是,也可以执行额外的步骤。
在一些实施例中,主控制器110将仅判断是否在特定加电周期上需要刷新,例如,每到第20个加电周期。图4示出了用于判断是否对在特定加电周期上执行刷新操作的示范性方法。如相对于图3所述,在加电周期的开始发起有关是否要对块刷新的判断。因而,如步骤412中所示,在加电周期的开始,使复位计数加1。如步骤414中所述,所述主控制器110将判断所述复位计数是否可被预定数值除尽。例如,主控制器110能够判断下述状态是否为真:
Reset_tally mod 20==0如果复位计数可被预定数值除尽,例如Reset_tally mod 20等于0,那么所述方法继续执行。如果加电周期的数量不可被预定数值除尽,那么所述方法停止执行,如步骤426所示。
如果加电周期的数量可被预定数值除尽,那么主控制器110将检查数据块内的每一页的ECC错误位数量,并确定该块的最大错误数量,如步骤416中所示。如上所述,所述最大错误数对应于在具有最多错误的页中观察到的错误量。如前所述,主控制器110将检查每一页的备用区的ECC部分,以确定具体页内的错误数量。主控制器110将保持最大错误数,因而在找到新的具有更多错误的页时,主控制器对所述最大错误数更新,使之对应于新页中的错误数。
一旦确定了块的最大错误数,那么主控制器110将使所述最大错误数与错误阈值进行比较,如步骤418中所示。如前所述,错误阈值是指示能够在页内发现的不会启动块的刷新的最大错误量的数量。例如,可以将错误阈值设为3,因而当在块的任何页内发现4个或更多错误时,所述方法将继续执行。但是,如果最大错误数不超过错误阈值,那么不执行刷新操作,所述方法停止执行,如步骤426中所示。
如果最大错误数超过了错误阈值,那么将复位计数与复位阈值比较,如步骤420中所示。复位值指示自上次对块执行了刷新操作开始执行的复位的次数。复位阈值对应于必须发生的能够迫使刷新操作实施的最低加电周期量。在一些实施例中,它们的复位阈值是预定阈值,例如,2000,在其他实施例中,复位阈值是基于最大错误数动态选择的。复位计数超过了复位阈值,那么将复位计数设回到0,如步骤422中所示,并对块执行刷新操作,如步骤424中所示。如果复位计数不超过复位阈值,那么不执行刷新操作,所述方法停止执行,如步骤426中所示。
要认识到,上述方法的变型处于本公开的范围内。此外,要指出的是,所述步骤的顺序不是强制性的,可以在其他步骤之前执行一些步骤。此外,可以将一些步骤合并成一个步骤,同时可以将一些步骤分解成多个步骤。还要注意的是,也可以执行额外的步骤。
如上所述,在一些实施例中,复位阈值是动态设置的,并且基于最大错误数。图5示出了用于采用动态复位阈值判断是否执行刷新操作的示范性方法。所述方法可以在加电周期开始时执行。在加电周期的开始,使复位计数加1,如步骤512中所示。在一些实施例中,仅对预定加电周期执行下述方法。如上所述,主控制器110将判断复位计数是否可被预定数值(例如20)除尽,如步骤514中所示。如果复位计数不可被预定数值除尽,那么所述方法将停止执行。但是,如果复位计数可被预定数值除尽,那么所述方法将继续执行。
一旦确定所述复位计数可被预定数值除尽,那么主控制器110将检查正在分析的块内的每一页的ECC错误位数量。如所讨论的,主控制器110将检查每一页的备用区中的ECC字段,以确定最大错误数,如步骤516中所示。之后,将最大错误数与错误阈值进行比较,如步骤518所示。但是,如果最大错误数不大于错误阈值,那么所述方法停止执行,并且不执行刷新操作,如步骤526中所示。但是,如果最大错误数超过了错误阈值,那么将复位计数与复位阈值比较,如步骤520中所示。
在这些实施例中,复位阈值是最大错误数的函数。随着最大错误数的提高,复位阈值将下降。例如,如果错误阈值为1,最大错误数为2,那么将复位阈值设为2000。如果最大错误数为3,那么将复位阈值设为200。如果最大错误数为4,那么将复位阈值设为20。如果最大错误数大于4,那么将复位阈值设为0。要认识到,在上述例子中,当最大错误数超过4时,将总是执行刷新操作。要指出的是,也可以采用不同复位阈值,所提供的值只是示范性的。如果复位计数超过了复位阈值,那么将复位计数设为0,如步骤522中所示,并对数据库启动刷新操作,如步骤524。如果复位计数不超过复位阈值,那么不执行刷新操作,所述方法停止执行,如步骤526中所示。
要认识到,上述方法的变型也处于本公开的范围内。此外,要指出的是,所述步骤的顺序不是强制性的,可以在其他步骤之前执行一些步骤。此外,可以将一些步骤合并成一个步骤,同时可以将一些步骤分解成多个步骤。还要注意的是,也可以执行额外的步骤。
如前所述,刷新操作不能解决闪速存储器120的块中的永久性错误。例如,刷新操作将不能解决不良块错误。然而,即使所述错误是永久型的,ECC区250仍将指示某位发生了错误。因而,能够将主控制器110配置成对永久性读取失败错误和暂时读取失败错误进行区分,并在暂时错误数量超过错误阈值时启动刷新操作。通过在确定执行刷新时考虑永久性错误,主控制器110能够避免在执行了刷新操作之后块仍然具有显著数量的错误的情况下执行刷新操作。
图6示出了基于块的页内的暂时位错误的数量判断何时对块启动刷新操作的示范性方法。在运行的同时,主控制器110对复位计数加1,如步骤612所示。所述方法可以每一加电周期都运行,或者可以每隔预定加电周期运行。在后一方案中,主控制器110将在继续执行之前判断复位计数是否可被预定数值除尽,如步骤614中所示。
主控制器110保持最大永久性错误数。最大永久性错误数是块的任何页中的最大永久性位错误数量。例如,如果具体页具有3个永久性错误,而其他页则最多具有2个永久性错误,那么最大永久性错误数为3。图7描述了用于确定最大永久性错误数的方法,在下文中将对其予以更为详细的说明。主控制器110将使最大永久性错误数与永久性错误阈值进行比较,如步骤616中所示。如果最大永久性错误数大于等于永久性错误阈值,那么主控制器110停止执行所述方法,如步骤628中所示。否则,主控制器110继续执行所述方法。
之后,如上所述,并且如步骤618中所示,主控制器110将确定所述块的最大错误数。之后,将最大错误数与错误阈值进行比较,如步骤620中所示。如果最大错误数不超过阈值,那么主控制器110将停止执行所述方法。否则,主控制器将使复位计数与复位阈值进行比较,如步骤622中所示。如上所述,所述复位阈值可以是预定的,例如2000,或者是动态的,从而使复位阈值基于最大错误数。如果复位计数超过了复位阈值,那么将复位计数设为0,如步骤624中所示,并开始对所述块的刷新操作。否则,保持复位计数,而不执行刷新操作,主控制器110停止执行所述方法。
要认识到,上述方法的变型也处于本公开的范围内。此外,要指出的是,所述步骤的顺序不是强制性的,可以在其他步骤之前执行一些步骤。此外,可以将一些步骤合并成一个步骤,同时可以将一些步骤分解成多个步骤。还要注意的是,也可以执行额外的步骤。
图7示出了用于确定块的最大永久性错误量的示范性方法。在执行刷新操作之后,解决块内的暂时位错误。因而,如果ECC字段指示在刷新操作之后在页内仍然存在错误,那么能够推断所述位错误为永久性错误,因为刷新操作没有更正位错误。因而,主控制器110将执行刷新操作,如712中所示,之后确定紧接着刷新操作之后块的最大错误数,如步骤714所示。将最大永久性错误数设定为等于最新确定的最大错误数,如步骤716中所示。如相对于图6所述,在一些实施例中,当最大永久性错误数超过永久性错误阈值时,不对块执行刷新操作。
要认识到,上述方法的变型也处于本公开的范围内。此外,要指出的是,所述步骤的顺序不是强制性的,可以在其他步骤之前执行一些步骤。此外,可以将一些步骤合并成一个步骤,同时可以将一些步骤分解成多个步骤。还要注意的是,也可以执行额外的步骤。
下述描述本质上只是说明性的,其目的决不在于对本公开及其应用或使用做出限制。出于清楚的目的,在附图中采用相同的附图标记表示类似的元件。如这里使用的,应当将短语“A、B、C的至少其中之一”解释为采用非排他性逻辑“或”表示逻辑(A或B或C)。应当理解,可以在不改变本公开的原理的情况下按照不同的顺序执行方法中的步骤。
这里采用的控制器一词可以指下述内容、作为下述内容的部分或者包括下述内容:专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用或组);其他适当的提供所描述的功能的部件;或者上述内容的一些或全部的组合,例如,在芯片上系统中组合。控制器一词可以包括存储处理器执行的代码的存储器(共享、专用或组)。
上文采用的代码一词可以包括软件、固件和/或微码,并且可以指程序、例程、函数、类和/或对象。上文采用的共享一词是指可以采用单个(共享的)处理器执行来自多个控制器的一些或全部代码。此外,可以由单个(共享)存储器存储来自多个控制器的一些或全部代码。上文采用的组一词是指可以采用一组处理器执行来自单个控制器的一些或全部代码。此外,可以采用一组存储器存储来自单个控制器的一些或全部代码。
可以通过由一个或多个处理器执行的一个或多个计算机程序实现文中描述的装置和方法。所述计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。所述计算机程序还可以包括存储的数据。所述非暂时性有形计算机可读介质的非限制性实例为非易失性存储器、磁存储器和光存储器。
可以通过各种形式实施本公开的广义教导。因此,尽管本公开包括具体的例子,但是本公开的真实范围不应受其所限,因为对于本领域技术人员而言,在研究附图、说明书和权利要求之后,其他修改将变得显而易见。

Claims (18)

1.一种用于启动耦合至处理器(110)的固态非易失性存储设备(120)的刷新操作的方法,包括:
确定(314,416,516,618)所述固态非易失性存储设备(120)的块(210)的错误数,其中,所述错误数对应于所述块(210)的具有最大错误位量的页(230)内的错误位的量;
将所述错误数与错误阈值进行比较(316,418,518,620);
确定(318,420,520,622)复位数,所述复位数指示自前一次对所述固态非易失性存储设备(120)的所述块(210)执行刷新操作后对所述处理器(110)复位的次数;
将所述复位数与复位阈值进行比较(318,420,520,622);以及
在所述错误数超过所述错误阈值,且所述复位数超过所述复位阈值时,对所述固态非易失性存储设备(120)的所述块(210)刷新(322,424,524,626)。
2.根据权利要求1所述的方法,还包括判断(414,514,614)所述复位数是否可被预定值除尽,其中,在所述复位数不可被所述预定值除尽时,不执行将所述错误数与所述错误阈值进行比较,并且不执行将所述复位数与所述复位阈值进行比较。
3.根据权利要求1或2所述的方法,其中,所述复位阈值动态地基于所述错误数。
4.根据权利要求1或2所述的方法,其中,所述复位阈值是预定的。
5.根据权利要求1或2所述的方法,还包括确定(616)永久性错误数,其中,在所述永久性错误数超过预定的永久性错误阈值时,不执行将所述错误数与所述错误阈值进行比较,并且不执行将所述复位数与所述复位阈值进行比较。
6.根据权利要求5所述的方法,其中,确定最近一次刷新操作之后的永久性错误数,从而使所述永久性错误数对应于紧随刷新操作的执行之后所述块(210)的具有最大错误位量的页(230)内的错误位的量。
7.根据权利要求1或2所述的方法,其中,所述固态非易失性存储设备(120)为闪速存储设备。
8.根据权利要求7所述的方法,其中,所述闪速存储设备为NAND闪速存储设备。
9.根据权利要求1或2所述的方法,其中,根据所述固态非易失性存储设备(120)中的块(210)的每一页(230)的纠错码字段确定所述错误数。
10.一种用于启动刷新操作的系统,包括:
用于确定(314,416,516,618)固态非易失性存储设备(120)的块(210)的错误数的部件,其中,所述错误数对应于所述块(210)的具有最大错误位量的页(230)内的错误位的量;
用于将所述错误数与错误阈值进行比较(316,418,518,620)的部件;
用于确定(318,420,520,622)复位数的部件,所述复位数指示自前一次对所述固态非易失性存储设备(120)的所述块(210)执行刷新操作后对主控制器(110)复位的次数;
用于将所述复位数与复位阈值进行比较(318,420,520,622)的部件;以及
用于在所述错误数超过所述错误阈值,且所述复位数超过所述复位阈值时,对所述固态非易失性存储设备(120)的所述块(210)刷新(322,424,524,626)的部件。
11.根据权利要求10所述的系统,其中,还包括用于判断(414,514,614)所述复位数是否可被预定值除尽的部件,其中,在所述复位数不可被所述预定值除尽时,不执行将所述错误数与所述错误阈值进行比较,并且不执行将所述复位数与所述复位阈值进行比较。
12.根据权利要求10或11所述的系统,其中,所述复位阈值动态地基于所述错误数。
13.根据权利要求10或11所述的系统,其中,所述复位阈值是预定的。
14.根据权利要求10或11所述的系统,其中,还包括用于确定(616)永久性错误数的部件,其中,在所述永久性错误数超过预定的永久性错误阈值时,不执行将所述错误数与所述错误阈值进行比较,并不执行将所述复位数与所述复位阈值进行比较。
15.根据权利要求14所述的系统,其中,确定最近一次刷新操作之后的永久性错误数,从而使所述永久性错误数对应于紧随刷新操作的执行之后所述块(210)的具有最大错误位量的页(230)内的错误位的量。
16.根据权利要求10或11所述的系统,其中,所述固态非易失性存储设备(120)为闪速存储设备。
17.根据权利要求16所述的系统,其中,所述闪速存储设备为NAND闪速存储设备。
18.根据权利要求10或11所述的系统,其中,根据所述固态非易失性存储设备(120)中的块(210)的每一页(230)的纠错码字段确定所述错误数。
CN201210076460.3A 2011-03-21 2012-03-21 用于启动固态非易失性存储设备内的刷新操作的方法 Active CN102750191B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/052305 2011-03-21
US13/052,305 US8756474B2 (en) 2011-03-21 2011-03-21 Method for initiating a refresh operation in a solid-state nonvolatile memory device
US13/052,305 2011-03-21

Publications (2)

Publication Number Publication Date
CN102750191A CN102750191A (zh) 2012-10-24
CN102750191B true CN102750191B (zh) 2015-08-05

Family

ID=46026526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210076460.3A Active CN102750191B (zh) 2011-03-21 2012-03-21 用于启动固态非易失性存储设备内的刷新操作的方法

Country Status (5)

Country Link
US (1) US8756474B2 (zh)
JP (1) JP5831271B2 (zh)
CN (1) CN102750191B (zh)
DE (1) DE102012204256B4 (zh)
GB (1) GB2490198B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176800B2 (en) 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US9235346B2 (en) 2012-05-04 2016-01-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Dynamic map pre-fetching for improved sequential reads of a solid-state media
US9337865B2 (en) 2012-05-04 2016-05-10 Seagate Technology Llc Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders
KR20140003223A (ko) * 2012-06-29 2014-01-09 삼성전자주식회사 리프레쉬 파워 매니지먼트를 위한 디램 어드레스 생성 방법 및 리프레쉬 파워 매니지먼트 시스템
US8930778B2 (en) 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination
CN104036623B (zh) * 2013-03-05 2016-05-11 南京物联传感技术有限公司 数据信息误报纠正的方法
US9658858B2 (en) * 2013-10-16 2017-05-23 Xilinx, Inc. Multi-threaded low-level startup for system boot efficiency
CN104572489B (zh) 2013-10-23 2019-12-24 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置
KR20160045461A (ko) * 2014-10-17 2016-04-27 에스케이하이닉스 주식회사 반도체 장치 및 그의 구동방법
WO2016114749A1 (en) 2015-01-12 2016-07-21 Hewlett Packard Enterprise Development Lp Handling memory errors in memory modules that include volatile and non-volatile components
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9772901B2 (en) * 2015-05-08 2017-09-26 Nxp Usa, Inc. Memory reliability using error-correcting code
KR20160146332A (ko) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법
US10878879B2 (en) * 2017-06-21 2020-12-29 Mediatek Inc. Refresh control method for memory system to perform refresh action on all memory banks of the memory system within refresh window
CN107832012A (zh) * 2017-11-03 2018-03-23 重庆大学 一种在线挖掘闪存制程差异现象优化刷新的方法
CN110750381B (zh) * 2019-09-12 2021-08-10 百富计算机技术(深圳)有限公司 基于nand flash存储器的纠错方法及装置
US11119676B2 (en) 2019-11-08 2021-09-14 International Business Machines Corporation Using spare bits in memory systems
CN111159057A (zh) * 2019-12-11 2020-05-15 江西洪都航空工业集团有限责任公司 一种无电池情况下记录任务机累积上电次数的系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101622607A (zh) * 2008-02-29 2010-01-06 株式会社东芝 半导体存储装置
CN101796497A (zh) * 2007-07-18 2010-08-04 富士通株式会社 存储器刷新装置和存储器刷新方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2000913A (en) * 1930-05-05 1935-05-14 Auto Research Corp Lubrication of machinery
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JPH1116387A (ja) * 1997-06-26 1999-01-22 Mitsubishi Electric Corp 冗長回路
JP2000187992A (ja) * 1998-12-17 2000-07-04 Mitsubishi Electric Corp 電気的書換可能な不揮発性メモリのリフレッシュ制御回路
US6269039B1 (en) * 2000-04-04 2001-07-31 International Business Machines Corp. System and method for refreshing memory devices
US7024571B1 (en) * 2002-08-15 2006-04-04 Network Appliance, Inc. Conversion card and method to convert a general purpose personal computer into a dedicated mass storage appliance
US7139937B1 (en) * 2002-08-15 2006-11-21 Network Appliance, Inc. Method and apparatus to establish safe state in a volatile computer memory under multiple hardware and software malfunction conditions
US7010644B2 (en) * 2002-08-29 2006-03-07 Micron Technology, Inc. Software refreshed memory device and method
GB2406668B (en) * 2003-10-04 2006-08-30 Symbian Ltd Memory management in a computing device
JP2007058966A (ja) * 2005-08-23 2007-03-08 Renesas Technology Corp 半導体装置
US8161232B2 (en) * 2006-04-26 2012-04-17 The Invention Science Fund I, Llc Periodically and empirically determined memory refresh intervals
US7783956B2 (en) * 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
US8407395B2 (en) * 2006-08-22 2013-03-26 Mosaid Technologies Incorporated Scalable memory system
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
JP4925301B2 (ja) * 2007-02-07 2012-04-25 株式会社メガチップス 半導体メモリシステム
JP5216244B2 (ja) * 2007-05-31 2013-06-19 株式会社東芝 データリフレッシュ装置、及びデータリフレッシュ方法
US8060798B2 (en) * 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
WO2009017871A1 (en) * 2007-07-27 2009-02-05 Rambus Inc. Non-volatile memory device with reduced write-erase cycle time
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP2009230475A (ja) * 2008-03-24 2009-10-08 Nec Personal Products Co Ltd 不揮発性半導体記憶部を含む記憶システム
JP2010015197A (ja) * 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
KR101466585B1 (ko) * 2008-07-10 2014-11-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
TWI382422B (zh) * 2008-07-11 2013-01-11 Genesys Logic Inc 根據錯誤更正碼更新快閃記憶體之資料頁面之儲存裝置與方法
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US8069300B2 (en) * 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
JP2011008432A (ja) * 2009-06-24 2011-01-13 Toshiba Corp プロセッサ
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101796497A (zh) * 2007-07-18 2010-08-04 富士通株式会社 存储器刷新装置和存储器刷新方法
CN101622607A (zh) * 2008-02-29 2010-01-06 株式会社东芝 半导体存储装置

Also Published As

Publication number Publication date
DE102012204256B4 (de) 2015-08-20
JP2012198878A (ja) 2012-10-18
GB201204496D0 (en) 2012-04-25
GB2490198B (en) 2013-11-13
JP5831271B2 (ja) 2015-12-09
GB2490198A (en) 2012-10-24
CN102750191A (zh) 2012-10-24
US20120246525A1 (en) 2012-09-27
US8756474B2 (en) 2014-06-17
DE102012204256A1 (de) 2012-09-27

Similar Documents

Publication Publication Date Title
CN102750191B (zh) 用于启动固态非易失性存储设备内的刷新操作的方法
US10061512B2 (en) Data storage device and data writing method thereof
US11449435B2 (en) Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
CN104572489B (zh) 磨损均衡方法及装置
US8560925B2 (en) System and method for handling bad bit errors
TWI512742B (zh) 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置
US9361036B2 (en) Correction of block errors for a system having non-volatile memory
EP3069349B1 (en) Fail safe refresh of data stored in nand memory device
US10241678B2 (en) Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted
US9524212B2 (en) Method, device and operating system for processing and using burn data of NAND flash
US9990152B1 (en) Data writing method and storage controller
TW201321978A (zh) 電子系統及其記憶體管理方法
JP2007094921A (ja) メモリカードとその制御方法
US10120611B2 (en) Storage device and data control method for storage error control
CN110069362A (zh) 数据储存装置与数据处理方法
JP6306548B2 (ja) メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム
JP2018028830A (ja) 電子制御装置およびその情報記憶方法
US9880926B1 (en) Log structured reserved zone for a data storage device
CN111324291B (zh) 一种存储器
US9652378B2 (en) Writing method, memory controller and memory storage device
US8503241B2 (en) Electronic apparatus and data reading method
US20170235635A1 (en) Solid state storage device and data processing method thereof
JP4239754B2 (ja) 不揮発メモリシステム
JP2015049722A (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant