CN105723462B - 存储在nand存储器设备中的数据的防故障刷新 - Google Patents

存储在nand存储器设备中的数据的防故障刷新 Download PDF

Info

Publication number
CN105723462B
CN105723462B CN201480061809.3A CN201480061809A CN105723462B CN 105723462 B CN105723462 B CN 105723462B CN 201480061809 A CN201480061809 A CN 201480061809A CN 105723462 B CN105723462 B CN 105723462B
Authority
CN
China
Prior art keywords
subregion
static data
data
series
address
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.)
Expired - Fee Related
Application number
CN201480061809.3A
Other languages
English (en)
Other versions
CN105723462A (zh
Inventor
W·E·金伯利
B·巴布
R·帕特里克
E·奥图诺
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105723462A publication Critical patent/CN105723462A/zh
Application granted granted Critical
Publication of CN105723462B publication Critical patent/CN105723462B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • 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/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

方法、系统和设备提供了刷新存储在NAND存储器设备上的数据镜像。诸方面包括将一系列静态数据分区中的每个分区顺序地复制到未存储在分区表中标识出的数据镜像分区的擦写部分中。该顺序复制在该擦写部分占用比最后一个静态数据分区的最后一个地址更高阶的地址时始于最后一个静态数据分区并顺序地前进至第一静态数据分区。替换地,该顺序复制在该擦写部分占用比第一静态数据分区的第一地址更低的地址时始于第一静态数据分区并顺序地前进至最后一个静态数据分区。可在每个静态数据分区被存储至该擦写部分时更新该分区表。此类操作实现了NAND设备中的数据的防故障擦写和刷新。

Description

存储在NAND存储器设备中的数据的防故障刷新
相关申请
本申请要求于2013年11月11日提交的题为“Fail Safe Refresh of Data Storedin NAND Memory Device(存储在NAND存储器设备中的数据的防故障刷新)”的美国临时申请No.61/902,394的优先权权益,其全部内容出于所有目的通过援引纳入于此。
背景技术
闪存存储器是可被电擦除和重新编程的非易失性计算机存储芯片。NAND闪存存储器(也被称为“NAND存储器设备”或简称为“NAND”)是可按块或页来编程和读取的高密度类型读写存储器。NAND存储器设备被用在存储卡、USB闪存驱动器、固态驱动器、以及类似产品中以用于数据的通用存储和传输、以及在众多数字设备(包括计算设备)中存储配置数据。NAND的性质是存储在其中的所有或部分数据镜像可被重写并由此被更新。如本文所使用的,术语“数据镜像”指的是存储在NAND的一个或多个存储器单元中的信息。
NAND通常被组织成多个块,其中每块包含多页。“块”在涉及闪存存储器并尤其涉及NAND时包括具有标称长度的存储字节或比特序列。该长度被称为块大小。将数据存储到块中的过程通常每次整页地完成,而擦除数据以块为单位进行。
存储在NAND上的数据镜像通常被划分成多个逻辑存储单元,这些逻辑存储单元被称为“分区”。分区将彼此关联的块编群在一起。对这些块及其相关联分区的组织可由NAND上的分区表(包括映射块地址的指针)来维护。
NAND存储器设备通常被用于存储两种类别的数据,即静态数据和动态数据。静态数据一般被用于配置计算设备(诸如向它赋予某种稳定的功能性),并且由此静态数据通常从不或很少被修改。与引导加载程序、核心安全、资源连通性以及功率管理相关联的经编译代码是通常被存储在NAND存储器设备中的静态数据的一些示例。相反,动态数据包括通常频繁地改变的数据,诸如应用数据、文件和系统操作数据。
随时间推移,存储在NAND中的数据镜像可能降级,因为用于存储数据的材料状态可能因热扩散过程而改变,这可导致一些数据比特丢失,从而可能导致损坏的数据镜像。为避免丢失数据镜像,NAND存储器设备必须被周期性地重新编程以刷新数据镜像。
概述
各个方面包括用于刷新存储在NAND存储器设备上的数据镜像的方法、系统和设备。存储在NAND存储器设备上的数据可被划分成顺序地存储在该NAND存储器设备中的分区。第一数据分区可以在第一地址开始地存储在该NAND存储器设备中,最后一个数据分区可以在最后一个地址结束地存储在该NAND存储器设备中,并且每个分区的地址被存储在分区表中。存储在NAND存储器设备上的数据可包括被频繁重写或修订的动态数据、以及很少被改变(如果被改变过的话)的静态数据(例如,操作系统软件)。由此,存储在NAND存储器设备上的数据可包括数个动态数据分区继之以(或跟随于)数个静态数据分区。该NAND存储器空间的一些部分可能不包含数据或可包含不再在该分区表中引用的数据;这种未使用的存储器空间可出于刷新数据镜像的目的,并且在本文中一般地被称为“擦写(scrub)部分”。
在一方面,一种用于刷新存储在NAND存储器设备上的静态数据镜像的方法可包括将一系列静态数据分区中的每个分区顺序地复制到该NAND存储器设备的未存储该分区表中标识出的数据镜像分区的擦写部分。在该擦写部分占用比最后一个静态数据分区的最后一个地址更高阶的地址时,顺序复制这一系列静态数据分区中的每个分区开始于该最后一个静态数据分区并顺序地前进至第一静态数据分区,并且在该擦写部分占用比第一静态数据分区的第一地址更低的地址时,顺序复制这一系列静态数据分区中的每个分区开始于第一静态数据分区并顺序地前进至最后一个静态数据分区。而且,在每个静态数据分区被存储至该擦写部分时更新该分区表。
进一步方面包括在刷新该NAND存储器设备上的数据镜像之际读取或启动时钟。在稍后的时间,可作出关于该时钟是否指示应当刷新图像数据的确定,并且可响应于确定该时钟指示应当刷新该数据镜像而执行刷新该NAND存储器设备上的数据镜像的操作。
进一步方面可包括基于存储在该分区表中的分区地址来确定该擦写部分是否占用比这一系列静态数据分区更高阶的地址。而且,确定该擦写部分是否占用比这一系列静态数据分区更高阶的地址可基于存储在该NAND存储器设备中的基于分区上次被复制到高于最后一个静态数据分区的地址还是低于第一静态数据分区的地址的数据。另外,该NAND存储器设备可包括作为数据镜像的一部分存储的静态数据和动态数据两者,以使得这一系列静态数据分区包含静态数据且未被包括在这一系列静态数据分区中的其他分区包括动态数据。
进一步方面可包括在该擦写部分占用比最后一个静态数据分区所包括的最后一个地址更高阶的地址时复制该最后一个静态数据分区以使得其结束于该NAND存储器设备内的最高阶地址。替换地,在该擦写部分占用比第一静态数据分区的第一地址更低阶的地址时可复制该第一静态数据分区以使得其开始于该NAND存储器设备内的最低阶地址。另外,可将这一系列静态数据分区中的至少一个静态数据分区复制到在执行刷新该NAND设备上的数据镜像的操作之前被这一系列静态数据分区中的至少一个其他静态数据分区先前占用的地址。
在进一步方面,可存在两个分区表,其中较晚被更新的分区表由该计算系统用于访问存储在该NAND设备中的数据。在此方面,更新该分区表可在这两个分区表之间交替,包括更新这两个分区表中被更新的分区表的滚动计数器。此类滚动计数器可指示这两个分区表中哪个分区表上次被刷新和/或指示在复制这一系列分区中的每个分区之后需要被更新的这两个分区表中较老的分区表。而且,更新该分区表可包括在系统文件中保存反映该分区表上次何时被更新的时间值。
进一步方面包括一种计算设备,其具有NAND存储器设备以及耦合至该NAND存储器设备的配置有处理器可执行指令以执行对应于以上讨论的方法的各种操作的处理器。
进一步方面包括计算设备,该计算设备具有用于执行与以上讨论的方法操作相对应的功能的各种装置。
进一步方面包括非瞬态处理器可读存储介质,其上存储有处理器可执行指令,这些处理器可执行指令配置成使处理器执行与以上讨论的方法操作相对应的各种操作。
附图简述
纳入本文并构成本说明书的一部分的附图解说了本发明的示例性方面,并且与以上给出的一般描述和以下给出的详细描述一起用于解释本发明的特征。
图1是根据一方面的读写存储器设备封装的示意框图。
图2A是解说根据一方面的用于刷新NAND设备的一系列初始过程步骤的一系列示意图。
图2B是进一步解说根据一方面的在图2A的步骤之后的过程步骤的一系列示意图。
图3A是解说根据一方面的用于刷新NAND设备的后来过程步骤的一系列示意图。
图3B是进一步解说根据一方面的在图3A的步骤之后的过程步骤的一系列示意图。
图4是解说刷新读写存储器上的数据镜像的一方面方法的过程流图。
图5是解说根据所公开的各个方面的包括NAND的计算设备的示意组件图。
详细描述
将参照附图详细描述各种方面。在可能之处,相同附图标记将贯穿附图用于指代相同或类似部分。对特定示例和实现所作的引用是用于解说性目的,而无意限定本发明或权利要求的范围。可以设计替换方面而不会脱离本公开的范围。另外,本公开中众所周知的元素将不被详细描述或将被省去以免湮没本公开的相关细节。
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实现不必然被解释为优于或胜过其他实现。另外,措辞“第一”、“第二”、“第三”、“初始”、或类似措辞的使用在本文中旨在为了清楚目的而用于区分所描述的各个要素并且并不旨在将本发明限于特定的要素次序或者要素阶层。
如本文中使用的术语“访问”或“进行访问”指的是与电子存储设备交互、或在指定其特定部分的情况下用于扫描或读取其上的数据或信息的目的的动作。而且,如本文中使用的术语“扫描”或“进行扫描”意指检查、解读或审阅数据或信息,尤其是电子存储设备中的数据或信息。相反,如本文中使用的术语“读取”或“进行读取”意指获得、提取、或取回数据或信息,尤其是电子存储设备中的数据或信息。如本文中使用的术语“复制”或“进行复制”意指在另一位置中再现或创建来自一个位置的一个数据集的实质上相同的版本。如本文中使用的术语“顺序的”或“顺序地”指的是按顺序次序发生或继续,诸如从第一个到最后一个、从最后一个到第一个、从最低阶地址到最高阶地址、从最高阶地址到最低阶地址等。
各个方面提供了用于刷新NAND存储器设备上的静态数据镜像的方法、装备和/或系统。通过重新编程来刷新数据镜像的全部或部分的过程在本文中也被称为“进行擦写”或“擦写”。进行擦写的过程可包括从特定存储器位置进行读取、用纠错码(ECC)校正比特差错(若有)、以及将经校正数据写入另一位置或写回同一位置。可周期性地擦写(即,通过重新编程来刷新)存储在NAND存储器设备上的静态数据镜像以确保这些数据随时间推移保持正确且可读。然而,对NAND存储器设备的重新编程可能因其必须按不影响并不旨在被重新编程的动态数据或其他静态数据并且可容适可能的事件(诸如在重新编程的中途断电)的防故障方式进行的事实而变得复杂。而且,取决于温度、其被暴露的状况以及用途,特定NAND降级所花费的确切时间将极大地改变。该时段可短至三或四个月或者长达数年。由此,为防止数据丢失,应当周期性地刷新存储在NAND上的静态数据,而不影响存储在其中的其他数据,诸如动态数据。各个方面通过实现对静态数据及其处置的防故障更新来提升读写存储器设备(诸如NAND存储器设备)中的数据保持性。
类似于主引导记录(MBR)或GUID分区表(GPT)分区方案,可在软件中管理NAND分区。作为刷新静态数据的一部分,该软件可维护并更新存储在NAND存储器设备中的分区表。而且,为确定是否需要刷新静态数据,可在文件系统中(诸如在系统存储器中)或用存储在NAND存储器设备上的其他动态数据来存储对静态数据镜像的上一次刷新或静态数据镜像的下一次所需刷新的计数器、时间值或其他指示。可周期性地检查该计数器、时间值或其他指示和/或可使用定时器装置来在未来的期望时间(诸如自静态数据上一次被擦写起四个月)触发对静态数据镜像的刷新。
图1解说了根据本文公开的诸方面的包括NAND存储器设备110的计算设备100的框图。计算设备100可包括允许处理器102、只读存储器(ROM)106、一个或多个输入/输出端口108以及存储器控制器104通信的系统总线101。另外,NAND存储器设备110可被配置成通过存储器控制器104与系统总线101对接。计算设备100可包括未解说的其他组件,诸如显示器/输出设备或联网设备。而且,计算设备100可被实现在单个计算机芯片上或被实现为片上系统(SOC)。
NAND存储器设备110可被包括在计算设备100的硬件中作为永久存储器设备。而且,NAND存储器设备110可被实现为多芯片模块或被实现在可形成芯片组并被一起使用的多个分立组件上。可从NAND存储器设备110存储、访问以及读取数据。另外,存储在NAND存储器设备110中的数据可被恰适地写入和擦除。存储器控制器104可被纳入到NAND存储器设备110中作为单个芯片或作为分开的组件。存储器控制器104可被配置成控制NAND存储器设备110,诸如划分数据、更新一个或多个分区表、读取数据、复制数据、存储数据、以及擦除数据的过程。在各个方面,存储在NAND存储器设备110上的数据镜像可被划分成一系列静态数据分区P1-P3、以及包括空块P的附加分区和包括用于存储动态数据的动态数据分区Pn的进一步分区。
图2A和2B示出了解说根据各个方面的用于刷新NAND设备的一系列过程步骤的一系列示意图。图2A和2B中的每个示意图表示处于一方面数据镜像刷新过程的不同阶段的同一NAND存储器设备。类似地,图3A和3B示出了解说根据所公开的诸方面的用于刷新NAND设备的一系列过程步骤的一系列示意图。图3A和3B中的每个示意图表示处于数据镜像刷新过程的不同阶段的同一NAND存储器设备。而且,图2A和2B中解说的过程步骤可以是关于与图3A和3B所示的相同NAND存储器设备,但在不同的时间在该NAND上执行。根据一方面,图2A和2B中解说的过程可在每次刷新存储在该NAND存储器设备中的静态数据镜像时与图3A和3B中解说的过程交替。
参照图2A和图2B,该NAND包括被划分成众多分区的数据镜像,包括选择成将被刷新的一系列静态数据分区P1、P2、P3、未存储在分区表TP中被标识的数据镜像分区的擦写分区P擦写以及附加分区Pn。而且,该NAND可包括两个不同的分区表TP1、TP2,每个分区表包含用于将块与特定分区相关联的指针。这些分区表存储在占用该NAND存储器设备的初始区域的预定范围的块中。在图2A、2B、3A和3B中,出于解说目的,这些分区表被示为占用块0和块1,但这些分区表可占用不止两个块(无需开始于块0,并且无需彼此连贯)。为了容适不良块以及其他元素,可保留预定的地址范围以用于原样地存储这些分区表的副本,这些分区表在本文的刷新过程期间被更新。可在每次该静态数据镜像被刷新时按交替序列更新这两个不同的分区表TP1、TP2。每次分区表被更新时,该经更新的分区表可包括关于它是这两个不同分区表中最新近更新的分区表的指示。此类指示在图2A、2B、3A和3B中被解说为分区表参考下标TPx中字符“x”的增量变化。在图3A和3B中,这两个不同分区表作为分区表TP5、TP4开始并继续按交替方式被更新。以此方式,这两个不同分区表之一TP5为最新近更新的分区表,而这两个不同分区表中的另一个分区表TP4为不是那么新近更新的分区表。这种双分区表配置提供了用于更新NAND的防故障方法,从而确保一个分区表在另一分区表更新期间发生问题(例如,刷新期间断电)的情形中或在另一个分区表发生一些其他问题的情况下是可用的。
选择成将被刷新的这一系列分区P1、P2、P3可被分配给静态数据的特定部分或片段,诸如信任域(TZ)分区、资源功率管理(RPM)分区、和引导加载程序分区、以及可从周期性地刷新中获益的附加静态数据分区。此类静态数据分区按NAND存储器设备的存储器地址被连贯地编群在一起。在一方面,将被刷新的这一系列分区是连贯的静态数据分区,以使得可在得到刷新的这一系列静态数据分区之前和/或之后布置包括动态数据的其他分区。在一替换方面,一个或多个动态数据分区可在静态数据分区之前和/或之后被连贯地编群在一起并被包括在如本文所描述的得到刷新的这一系列分区中。在此类替换方面,目标是被刷新的此类动态数据分区可被当作它们是正被刷新的静态数据分区并与正被刷新的实际静态数据分区连贯地编群在一起来对待。
另外,一个或多个连贯分区的区域被指示为擦写分区P擦写,其在本文中也被称为“擦写部分”。术语“擦写分区”和擦写部分在本文中用于指未存储在分区表中所标识出的数据镜像分区的一部分NAND存储器空间。换言之,该存储器的擦写部分可用于写入数据,因为这些存储器寄存器和部分为空或存储不再对该计算设备可用(即,未在该分区表中标识出)的数据。
在刷新静态数据镜像的过程期间,NAND存储器设备中的擦写分区P擦写的位置可在顺序复制数据镜像的这一系列分区期间随分区移动而移位(即,从一群存储器位置复制到该擦写分区的一部分)。
该NAND可存储包含动态数据的附加数据分区Pn,动态数据无需被刷新,因为其周期性更新确保了数据保持新鲜。动态数据分区一般不与静态数据分区交织。
数据镜像中的这些分区中的每个分区可由数个块组成,但每个分区中的块的数目无需相同。出于解说性目的,第一分区P1被示为包括10个块(B1…B10),第二分区P2被示为包括20个块(B1…B20),第三分区P3被示为包括100个块(B1…B100)且擦写分区P擦写被示为包括200个块(B1…B200)。每个分区中的块的数目可针对不同NAND设备、不同数据镜像、以及随时间推移因数据镜像的各个部分被更新或改变而变化。
图2A和2B解说了用于在擦写分区P擦写占用比存储将被刷新的数据的这一系列分区更高阶的地址时刷新NAND存储器设备中所存储的静态数据镜像的一系列过程步骤。在图2A中所示的步骤200,按反向分区次序(即,始于最后一个分区并朝向第一个分区努力)将这一系列分区P1、P2、P3复制到该擦写部分可始于复制最后一个分区以供写入该擦写部分,因此其最高阶数据被存储在该擦写部分中的最高地址。顺序复制这一系列分区P1、P2、P3生成了一系列经刷新的分区P1r、P2r、P3r。按反向分区次序复制这一系列分区P1、P2、P3的过程始于将这一系列分区P1、P2、P3的最后一个分区P3复制到该擦写分区的结尾(即,复制到将存储该分区的最高阶地址)。步骤202解说了这一系列分区中的最后一个分区P3的副本被用于生成占用该擦写分区P擦写的结尾的最后一个经刷新分区P3r。一旦生成最后一个经刷新分区P3r,就可执行验证检查以确保其为准确副本。如果最后一个经刷新分区P3r是不良副本,则该过程可重复步骤200中复制该分区的操作,这会在步骤202中生成经刷新分区。否则,在步骤204,可更新分区表TP3以将指针从所复制分区P3的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P3r的地址或地址范围。而且,由于最新分区表指针不再指向先前被这一系列分区中的最后一个分区P3占用的NAND存储器区域,因此在步骤204,最后一个经刷新分区P3r可再次被称为这一系列分区中的最后一个分区P3。另外,通过步骤204,擦写分区P擦写已有效地左移,因为这一系列分区中的最后一个分区P3的初始位置已变为擦写分区P擦写的一部分。以此方式,擦写分区P擦写现在还交织在静态数据分区之间。应当注意,步骤200、202和204可作为一系列紧接连贯的步骤全部一起发生。步骤204还可包括将这一系列分区中尚未被复制的下一个分区P2复制到毗邻先前所复制分区的NAND存储器部分中。
在图2B中所示的步骤206,所复制分区P2被用于生成下一经刷新分区P2r。实际上,该下一经刷新分区P2r可占用新近经移位擦写分区P擦写的结尾。一旦生成下一经刷新分区P2r,就可执行验证检查以确保其为准确副本。如果下一经刷新分区P2r是不良副本,则可重复步骤204的复制过程,这会在步骤206生成经刷新分区。否则,在步骤208,可更新分区表TP4以将指针从所复制分区P2的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P2r的地址或地址范围。最新分区表指针可不再指向先前被这一系列分区中所复制的第二分区P2占用的NAND存储器区域。由此,在步骤208中,下一经刷新分区P2r可被称为这一系列分区中的第二分区P2。以此方式,经刷新分区替换从其复制该经刷新分区的原始分区,因为从其复制该经刷新分区的原始分区已被吸纳到该擦写分区中并且不再被识别。另外,在步骤208,擦写分区P擦写已有效地进一步左移,因为这一系列分区中的第二分区P2的初始位置已变为该擦写分区P擦写的一部分。该擦写分区P擦写仍可交织在静态数据分区之间。应当注意,步骤204、206和208可作为一系列紧接连贯的步骤全部一起发生。而且,步骤208可包括将这一系列分区中尚未被复制的下一个分区复制到毗邻先前所复制分区的NAND存储器部分中。在该所解说的示例中,这一系列分区中尚未被复制的下一个分区是这一系列分区中的第一分区P1
在步骤210,这一系列分区中尚未被复制的下一个分区P1的副本被用于生成占用毗邻先前所复制分区的存储器寄存器的另一经刷新分区P1r,并且由此开始于经移位擦写分区P擦写的结尾。一旦生成第一经刷新分区P1r,就可执行验证检查以确保其为准确副本。如果第一经刷新分区P1r是不良副本,则可重复步骤208的复制过程,这会在步骤210生成经刷新分区。否则,在步骤212,可更新分区表TP5以将指针从所复制分区P1的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P1r的地址或地址范围。而且,由于最新分区表指针不再指向先前被这一系列分区中的第一分区P1占用的NAND存储器区域,因此在步骤212,第一经刷新分区P1r可再次被称为这一系列分区中的第一分区P1。由此,在复制这一系列分区中的第一分区P1之后,该擦写分区P擦写一直左移,因为这一系列分区中的第一分区P1的先前位置已变为该擦写分区P擦写的一部分。而且,由于其为这一系列分区中将被复制的最后一个分区,因此该擦写分区P擦写不再交织在除分区表TP5、TP4以外的正被刷新的静态数据分区之间。
将被刷新的这一系列数据镜像分区通常将包括多于三个分区。例如,可刷新8到12个静态数据分区,在该情形中,可重复以上描述的过程步骤直至已按此方式刷新所有分区。
下次刷新该NAND存储器设备中的静态数据镜像时,可按另一方向且按如图3A和3B中所示的倒序来复制这些分区,图3A和3B解说了用于在擦写分区P擦写占用低于将被刷新的这一系列分区的第一地址的地址时刷新存储在NAND存储器设备上的数据镜像的过程操作。在此情景中刷新数据镜像开始处,可按连贯分区次序复制这一系列分区P1、P2、P3以生成一系列经刷新分区来替代该擦写分区的至少一部分。
在图3A中所示的步骤300,这一系列分区中的第一分区P1被复制以生成第一经刷新分区。在步骤302,这一系列分区中的第一分区P1的副本被用于生成占用该擦写分区P擦写的开头(即,最低存储器地址)的第一经刷新分区P1r。按连贯分区次序复制这一系列分区P1、P2、P3的过程最初将这一系列分区中的第一分区P1复制到该擦写分区的开头(即,该擦写部分中的最低地址范围)。一旦生成第一经刷新分区P1r,就可执行验证检查以确保其为准确副本。如果第一经刷新分区P1r是不良副本,则可重复步骤300的复制过程,这会在步骤302生成经刷新分区。否则,在步骤304,可更新分区表TP6以将指针从所复制分区P1的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P1r的地址或地址范围。而且,由于最新分区表指针不再指向先前被这一系列分区中的第一分区P1占用的NAND存储器区域,因此在步骤304,第一经刷新分区P1r可再次被称为这一系列分区中的第一分区P1。另外,通过步骤304,擦写分区P擦写已有效地右移,因为这一系列分区中的第一分区P1的初始位置已变为该擦写分区P擦写的一部分。以此方式,该擦写分区P擦写现在还交织在正被刷新的静态数据分区之间。应当注意,步骤300、302和304可作为一系列紧接连贯的步骤全部一起发生。步骤304还可包括将这一系列分区中尚未被复制的下一个分区P2复制到毗邻先前所复制分区的NAND存储器部分中。
在步骤306,这一系列分区中尚未被复制的下一个被复制分区P2被用于生成占用该擦写分区P擦写的开头的下一经刷新分区P2r。一旦生成下一经刷新分区P2r,就可执行验证检查以确保其为准确副本。如果下一经刷新分区P2r是不良副本,则可重复步骤304的复制过程,这会在步骤306生成经刷新分区。否则,在图3B中所示的步骤308,可更新分区表TP7以将指针从所复制分区P2的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P2r的地址或地址范围。而且,由于最新分区表指针不再指向先前被这一系列分区中的第二分区P2占用的NAND存储器区域,因此在步骤308,下一经刷新分区P2r可再次被称为这一系列分区中的第二分区P2。另外,通过步骤308,擦写分区P擦写已有效地进一步右移,因为这一系列分区中的第二分区P2的初始位置已变为该擦写分区P擦写的一部分。此时,该擦写分区P擦写仍交织在正被刷新的静态数据分区之间。应当注意,步骤304、306和308可作为一系列紧接连贯的步骤全部一起发生。而且,步骤308可包括将这一系列分区中尚未被复制的下一个分区复制到毗邻先前所复制分区的NAND存储器部分中。在该所解说的示例中,这一系列分区中尚未被复制的下一个分区是这一系列分区中的最后一个分区P3
同样在图3B中所示的步骤310,这一系列分区中尚未被复制的最后一个分区P3的副本被用于生成占用毗邻该擦写分区P擦写的开头的存储器寄存器的最后一个经刷新分区P3r。一旦生成第三经刷新分区P3r,就可执行验证检查以确保其为准确副本。如果第三经刷新分区P3r是不良副本,则可重复步骤308的复制过程,这会在步骤310生成经刷新分区。否则,在步骤312,可更新分区表TP8以将指针从所复制分区P3的起始地址改变成指向存储在该NAND存储器设备中的经刷新分区P3r的地址或地址范围。而且,由于最新分区表指针不再指向先前被这一系列分区中的最后一个分区P3占用的NAND存储器区域,因此在步骤312,最后一个经刷新分区P3r可再次被称为这一系列分区中的最后一个分区P3。由此,在复制这一系列分区中的最后一个分区P3之后,该擦写分区P擦写再次一直右移,因为这一系列分区中的最后一个分区P3的先前位置已变为该擦写分区P擦写的一部分。而且,由于其为这一系列分区中将被复制的最后一个分区,因此该擦写分区P擦写不再交织在除分区表TP7、TP8以外的正被刷新的静态数据分区之间。
再次,将被刷新的这一系列数据镜像分区通常将包括多于三个分区。例如,可刷新8到12个静态数据分区,在该情形中,可重复以上描述的过程步骤直至已按此方式刷新所有分区。
当图2A和2B中解说的刷新过程步骤200-212被执行时,可启动时钟或者处理器可将当前时钟值存储至存储器寄存器。此类时钟(或时钟值)可使存储器控制器(或其他处理器)能够确定何时执行对静态数据镜像的下一次刷新。例如,当该时钟(或时钟值)指示自从上一次数据镜像刷新以来已经过去四个月时(诸如在当前时钟与存储在该NAND中的上次刷新时钟值相差四个月时),可执行图3A和3B中解说的刷新过程步骤300-312并重启时钟或者处理器可将当前时钟值存储至同一存储器寄存器。
用于复制NAND存储器设备内的数据镜像分区的这方面过程被设计成在刷新循环的任何部分期间断电的情形中提供防故障备份。另外,上述过程群中的每个过程群的优点在于刷新一系列分区所需的空块量显著少于被复制的块的总量。
在进一步方面,两个不同的分区表可被用作针对可因刷新过程期间掉电而发生的差错的进一步保护。在此方面,在第一分区表指向被刷新的数据镜像中的分区的地址范围的同时,可更新第二分区表以指向经刷新数据镜像的新地址范围。一旦完成该刷新过程,就可将时戳(或指示该分区表的龄期的其他数据)添加至第二分区表。该时戳(或其他龄期标识数据)在访问存储在该NAND存储器设备中的数据镜像时告知存储器管理器应当使用的分区表。由于该刷新过程是在数据镜像变得不可靠之前完成的,因此使用两个分区表确保了至少一个分区表正指向有效数据,即使该过程因掉电而中断。
图4解说了可由耦合至NAND存储器设备或被包括在NAND存储器设备中的处理器执行的用于刷新NAND存储器设备上的数据镜像的方面方法400。在框410和确定框415,处理器可确定该NAND内的擦写分区是否占用比将被刷新的数据镜像的一系列分区更高阶的地址。该确定可基于存储在分区表中的信息。如上所述,该擦写分区可以是被包括在该NAND存储器设备中所存储的数据的分区表中所标识出的存储器地址范围内的那些存储器地址。
响应于处理器确定该擦写分区占用比将被刷新的这一系列分区更高阶的地址(即,确定框415=“是”),处理器可按反向分区次序执行对构成该数据镜像的这一系列分区的复制以生成一系列经刷新分区,如图2A和2B中所解说的。反向分区次序意味着与最高阶地址相关联的分区(即,该系列中的最后一个分区)首先被复制到该擦写分区的结尾,继之以毗邻分区,其中该过程继续直至第一分区被复制。仅出于参考目的,被复制到擦写分区中的第一分区被称为第一经刷新分区,并且最终将成为这一系列经刷新分区中的最后一个分区。
由此,在框420,作为该刷新过程的一部分,将被刷新的这一系列分区中尚未被刷新的最后一个分区被处理器复制到擦写分区的结尾,从而其最高地址占用该擦写部分中尚未被写入的最高地址。可对该经刷新分区执行验证检查以确保其为准确副本。响应于处理器确定该验证检查为否定的,处理器可在框420重复该复制。响应于处理器确定该验证检查为肯定的,在框425,处理器可将分区表更新成指向该经刷新分区。分区表TP可包括两个分立的分区表,其中更新分区表可包括更新指示这两个分区表中哪个分区表最后被更新的滚动计数器。由此,更新分区表可包括更新这两个分区表中最老的分区表并基于该分区表何时被更新来保存一时间值。无论如何,更新分区表意味着其将不再包括指向先前被最新近复制的分区占用的地址的指针。以此方式,尽管擦写分区在一端释放块,但其获得在另一端添加的相等数目的块。由此,该擦写分区通过框420-425随着每个复制循环而移动位置。在确定框430,管理刷新过程的处理器可确定这一系列分区中的所有分区是否已被复制或刷新。
响应于处理器确定有更多分区要刷新(即,确定框430=“否”),处理器可在框420将这一系列分区中的下一分区复制到该擦写分区的新结尾,如上所述。框420到框430的操作可由处理器循环重复直至已按反向分区次序复制整个分区系列。在第二次通过该分区复制循环时,这一系列分区中尚未被复制的最后一个分区是这一系列分区中的倒数第二个分区。而且,尚未被替代的擦写分区结尾将朝向该擦写分区的开头(即,较低阶地址)移动,因为第一经刷新分区已替代该初始擦写分区的最后一部分。以此方式,首先复制这一系列分区中的最后一个分区,接着复制这一系列分区中的倒数第二个分区并依此类推直至这一系列分区全部被复制。而且,这一系列经刷新分区中的最后一个分区替代该擦写分区的最后一部分;这一系列经刷新分区中的倒数第二个分区替代原始擦写分区的倒数第二部分;并且依此类推直至这一系列分区全部被复制。一旦复制了这一系列分区中的所有分区,该擦写分区就被有效地重建,包括具有比构成该数据镜像的现在已被刷新的一系列分区中的那些块更低阶的块。
回到确定框415,响应于处理器确定该擦写分区占用比将被刷新的这一系列分区更低阶的地址(即,确定框415=“否”),处理器可按相反方式进行该刷新过程。在框440,处理器可把将被刷新的这一系列分区中尚未被复制的第一分区复制到尚未被替代的该擦写分区的开头(即,低阶地址中)。在此情景中,按顺序分区次序执行对这一系列分区的复制以生成这一系列经刷新分区。顺序分区次序意味着首先将与最低阶地址相关联的分区(即,这一系列分区中的第一个分区)复制到该擦写分区的开头(即,始于第一地址)。由此,该复制替代原始擦写分区的第一部分。该第一经刷新分区P1r是一系列经刷新分区中的第一分区。处理器可执行关于该第一经刷新分区的验证检查以确认其为准确副本。响应于处理器确定该验证检查为否定的,处理器可在框440重复该复制操作。响应于处理器确定该验证检查为肯定的,在框445,处理器可将分区表更新成指向该经刷新分区。在确定框450,管理该刷新过程的处理器可确定这一系列分区中的所有分区是否已被复制或刷新。
响应于处理器确定有更多分区要刷新(即,确定框450=“否”),处理器可在框440将这一系列分区中的下一分区复制到该擦写分区的新开头,如上所述。处理器可循环重复框440到450的操作直至已按顺序分区次序复制该数据镜像的整个分区系列。在第二次通过该刷新循环时,这一系列第一经刷新分区中尚未被复制的第一个分区是构成该数据镜像的这一系列分区中的第二分区。而且,尚未被替代的该擦写分区的开头将朝向该擦写分区的结尾(即,较高阶地址)移动,因为第二经刷新分区已替代该擦写分区的第一部分。以此方式,首先复制这一系列分区中的第一个分区,接着复制这一系列分区中的下一个分区,并且依此类推直至已复制这一系列分区中的所有分区。而且,最初这一系列分区中的第一个分区替代该擦写分区的第一部分,这一系列分区中的下一个分区替代该擦写分区的下一部分,并且依此类推直至已将这一系列分区中的所有分区复制到该初始擦写分区。一旦已复制这一系列分区中的所有分区,该擦写分区就被有效地重建,包括具有较高阶地址的块以及构成该图像数据的新近被刷新的分区系列。由此,将如上所述地在操作420到430中倒序地执行下一刷新过程。
响应于处理器在确定框460确定已复制或刷新这一系列分区中的所有分区(即,确定框430=“是”或确定框450=“是”),处理器可检查时钟或将所存储的上次刷新时钟值(例如,日期/时间值)与当前时钟作比较以确定是否到了再次刷新该数据镜像的时间。例如,可能需要每四个月刷新NAND存储器设备以确保即使在最差情形设计状况下该数据镜像仍保持可靠。处理器可在确定框460周期性地检查该时钟或将当前时钟与所存储的上次刷新时钟值作比较,并且只要处理器确定未到刷新该数据镜像的时间(即,确定框460=“否”)就继续等待。响应于管理该NAND存储器设备的处理器确定到了刷新该数据镜像的时间(即,确定框460=“是”),在框405,处理器可重置该时钟或在寄存器中存储当前时间作为上次刷新日期/时间,从而管理对该NAND存储器设备的刷新的处理器可稍后确定何时应当进行下一次刷新。使用重置的时钟时间或所存储的来自框405的数据/时间,可检查上次擦写的时间和/或可设置定时器以用于在未来的期望时间触发对该静态数据镜像的刷新,此时下一次擦写被自动执行或被调度成执行。以上关于框420、425、430、440、445、450所描述的刷新分区的过程可被中断达较长时间段(例如,该NAND存储器设备可被断电达较长时段),以使得该设备在引导时应当恢复该“刷新”操作。由此,在该刷新过程之前在框405重置该时钟和/或存储当前时间可确保所有静态数据至多在给定时段的结尾处(如果不是在更短的时段内的话)被刷新。上次刷新日期/时间可被存储在该NAND存储器设备的文件系统部分(即,存储动态数据的部分)中。一旦在框405该时钟被重置或当前日期/时间被存储,处理器就可以框410的操作开始重复该刷新过程。
并非在框410和415确定该擦写分区是否占用比将被刷新的数据镜像更高或更低的地址范围,处理器确定要按分区次序(即,执行框440-450的操作)还是反向分区次序(即,执行框420-430的操作)来刷新分区可基于存储在存储器中的指示所执行的上一次刷新的次序或将执行的下一次刷新的次序的数据或标志。可在刷新循环的完结处(诸如在已刷新所有分区之后(即,确定框430=“是”或确定框450=“是”))设置该数据或标志。在将进行下一次刷新时(即,确定框460=“是”),处理器可检查该数据或标志并相应地进行框420-430的操作或框440-450的操作。
作为确保生成每个分区的准确副本的一部分,可在如上所述的刷新过程期间执行验证检查。可通过各种方法(包括基于散列的方法、以及逐位分析方法)来执行验证检查。在基于散列的方法中,可对每个分区及其副本运行散列函数以产生各自相应的散列值,并且将这两个散列值作比较(例如,通过将这些值相减)以确定它们是否相同。如果这两个散列值不相等,这意味着所复制到的分区中存在比特差错,在该情形中可重复该复制操作。由该散列函数生成的散列值充当该分区内的原始和复制数据的代理,其可在简单的算术函数中被快速操纵以确定副本是否与原始数据相匹配。当第一与第二散列值的比较相匹配时,该验证检查为肯定的,并且当第一和第二散列值的比较不匹配时,该验证检查为否定的。由于散列函数执行快捷且该比较是简单算术函数,因此基于散列的验证方法可以比原始与复制分区的逐位比较快得多且消耗更少的处理资源。
各个方面可实现在各种计算设备中的任何计算设备中和/或用其来实现,其中一示例在图5中以蜂窝电话的形式作了解说。各个方面可实现在各种其他计算设备(诸如平板计算机、膝上型计算机、台式计算机或其他计算设备)中的任何设备中和/或用其来实现。在各个方面,计算设备500可包括耦合到触摸屏控制器504和内部存储器506的处理器502。处理器502可以是指定用于通用或特定处理任务的一个或多个多核IC。内部存储器506可以是易失性或非易失性存储器(诸如NAND),并且还可以是安全和/或加密的存储器、或者不安全和/或未加密存储器、或其任何组合。处理器502可耦合到触摸屏控制器504。触摸屏控制器504和处理器502还可被耦合到触摸屏面板512,诸如电阻式传感触摸屏、电容式传感触摸屏、红外传感触摸屏等。替换地,各个方面可实现在不包括触摸屏控制器、触摸屏或任何形式的屏幕或直接数据接口的各种设备(诸如数据卡、无线热点设备、网络组件、外围存储器设备或类似“无头”设备)中的任何设备中和/或用其来实现。计算设备500可具有彼此耦合和/或耦合至处理器502的一个或多个无线电信号收发机508(例如,蓝牙Wi-Fi、RF无线电)以及天线510以用于发送和接收。收发机508和天线510可与以上提到的电路系统一起使用以实现各种无线传输协议栈和接口。计算设备500可包括蜂窝网络无线调制解调器芯片516,该芯片使得能够经由蜂窝网络进行通信并且耦合至处理器。计算设备500可以包括耦合至处理器502的外围设备连接接口518。外围设备连接接口518可被配置成单独接纳一种类型的连接,或者被配置成多路接纳公共的或专用的各种类型的物理和通信连接,诸如USB、火线(FireWire)、雷点(Thunderbolt)或PCIe。外围设备连接接口518还可以耦合至类似地配置的外围设备连接端口(未示出)。计算设备500还可包括用于提供音频输出的扬声器514。计算设备500还可包括用于容纳本文所讨论的组件中的全部或一些组件的外壳520,外壳520由塑料、金属或多种材料的组合来构成。计算设备500可以包括耦合至处理器502的电源522,诸如一次性或可充电电池。可充电电池还可以耦合至外围设备连接端口以从计算设备500外部的源接收充电电流。
本文描述的各个方面中的处理器可以是能通过指令(即,软件指令,诸如应用)配置成执行各种功能(包括以上描述的各个方面的功能)的任何可编程微处理器、微型计算机或者一个或多个多处理器芯片。在一些设备中,可提供多个处理器,诸如一个处理器专用于无线通信功能并且一个处理器专用于运行其他应用。通常,软件应用可被存储在内部存储器中,然后它们被访问并被加载到这些处理器中。这些处理器可包括足以存储应用指令的内部存储器。在许多设备中,内部存储器可以是易失性或非易失性存储器(诸如闪存),或这两者的混合。出于本说明书的目的,对存储器的一般性引述是指可由这些处理器访问的存储器,包括内部存储器或插入到设备中的可移除存储器、以及在处理器本身内部的存储器。
上述方法描述和过程流程图仅作为解说性示例提供,且并非旨在要求或暗示各种方面的框必须按所给出的次序来执行。如本领域技术人员将领会的,前述各方面中的框次序可按任何次序来执行。
诸如“其后”、“随后”、“接着”等的措辞并非旨在限定框的次序;这些措辞仅是简单地用以指引读者遍历方法的描述。进一步,对单数形式的权利要求元素的任何引述,例如使用冠词“一”、“某”或“该”的引述不应解释为将该元素限定为单数。
结合本文中所公开的各方面来描述的各种解说性逻辑框和过程流图框可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、和框在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
用于实现结合本文中公开的方面描述的各种解说性逻辑、逻辑框、模块、以及电路的硬件可利用设计成执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。替换地,一些框或方法可由专用于给定功能的电路系统来执行。
在一个或多个示例性方面,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可作为一条或多条指令或代码存储在非瞬态计算机可读存储介质或非瞬态处理器可读存储介质上。本文中公开的方法或算法的操作可在处理器可执行软件模块中实施,该处理器可执行软件模块可驻留在非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是能被计算机或处理器访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可读或处理器可读介质可包括RAM、ROM、EEPROM、闪存、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字通用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。以上的组合也被包括在非瞬态计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可作为一条代码和/或指令或者任何代码和/或指令组合或集合而驻留在可被纳入计算机程序产品中的非瞬态处理器可读介质和/或计算机可读介质上。
相关领域的技术人员将认识到,可使用所公开的各方面的各方面的许多可能的修改和组合,而同时仍然采用相同的基本机制和方法体系。为解释目的,以上描述是参照特定方面来撰写的。然而,以上的解说性讨论并非旨在穷举或将本发明限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。这些方面被选择和描述是为了解释本公开的原理及其实际应用,并且使本领域其他技术人员能够连同各种适于所构想的特定用途的修改一起最好地利用本公开和各个方面。由此,本公开并非旨在限定于本文中示出和描述的方面和所公开的技术的个体方面,而是应被授予与所附权利要求和本文中公开的原理和新颖性特征一致的最广义的范围。

Claims (23)

1.一种刷新NAND存储器设备上的数据镜像的方法,其中所述数据镜像被划分成顺序地存储在所述NAND存储器设备中的一系列分区,其中第一分区在第一地址开始地存储在所述NAND存储器设备中,最后一个分区在最后一个地址结束地存储在所述NAND存储器设备中,并且每个分区的地址被存储在分区表中,其中所述第一地址是比所述最后一个地址更低阶的地址,所述方法包括:
作为一个刷新循环的一部分,将一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的擦写部分中,其中将所述一系列静态数据分区顺序地复制到所述擦写部分中包括:
在所述擦写部分占用比所述一系列静态数据分区中的最后一个静态数据分区的最后一个地址更高阶的一个或多个地址时以所述最后一个静态数据分区开始并顺序前进至第一静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区;以及
在所述擦写部分占用比所述一系列静态数据分区中的第一静态数据分区的第一地址更低阶的一个或多个地址时以所述第一静态数据分区开始并顺序前进至所述最后一个静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区;以及
在每个静态数据分区被存储至所述擦写部分时更新所述分区表。
2.如权利要求1所述的方法,其特征在于,进一步包括:
通过将当前时钟值与存储在所述NAND存储器设备中的上次刷新时钟值作比较来确定是否应当刷新所述数据镜像;
响应于确定应当刷新所述数据镜像而存储所述当前时钟值以替代所述上次刷新时钟值;以及
响应于存储所述当前时钟值以替代所述上次刷新时钟值而刷新所述NAND存储器设备上的所述数据镜像。
3.如权利要求1所述的方法,其特征在于,进一步包括:
在刷新所述NAND存储器设备上的所述数据镜像之前启动时钟;
确定所述时钟是否指示应当刷新所述数据镜像;以及
响应于确定所述时钟指示应当刷新所述数据镜像而刷新所述NAND存储器设备上的所述数据镜像。
4.如权利要求1所述的方法,其特征在于,进一步包括基于存储在所述分区表中的分区地址来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址。
5.如权利要求1所述的方法,其特征在于,进一步包括基于存储在所述NAND存储器设备中的基于上次是以所述最后一个静态数据分区还是以所述第一静态数据分区开始刷新分区的数据来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址。
6.如权利要求1所述的方法,其特征在于,将所述一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的所述擦写部分中包括对所述一系列静态数据分区的每个副本执行验证检查。
7.如权利要求1所述的方法,其特征在于,所述一系列静态数据分区中的至少一个静态数据分区被复制到在刷新所述NAND存储器设备上的所述数据镜像之前被所述一系列静态数据分区中的至少一个其他静态数据分区先前占用的地址。
8.如权利要求1所述的方法,其特征在于,所述分区表包括两个分区表,每个分区表存储指示这两个分区表中哪个分区表上次被刷新的滚动计数器,其中更新所述分区表包括更新这两个分区表中最老的分区表并基于所述分区表何时被更新来在系统文件中保存时间值。
9.如权利要求1所述的方法,其特征在于,所述NAND存储器设备包括作为所述数据镜像的一部分存储的静态数据和动态数据两者,并且其中被刷新的所述一系列静态数据分区包含所述静态数据和不被刷新的动态数据。
10.一种计算设备,包括:
其上存储有数据镜像的NAND存储器设备,其中所述数据镜像被划分成顺序地存储在所述NAND存储器设备中的一系列静态数据分区,其中第一静态数据分区在第一地址开始地存储在所述NAND存储器设备中,最后一个静态数据分区在最后一个地址结束地存储在所述NAND存储器设备中,并且每个静态数据分区的地址被存储在分区表中,其中所述第一地址是比所述最后一个地址更低阶的地址;以及
处理器,所述处理器耦合至所述NAND存储器设备且配置有处理器可执行指令以执行操作,所述操作包括:
作为一个刷新循环的一部分,将所述一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的擦写部分中,其中将所述一系列静态数据分区顺序地复制到所述擦写部分中包括:
在所述擦写部分占用比所述一系列静态数据分区中的最后一个静态数据分区的最后一个地址更高阶的一个或多个地址时以所述最后一个静态数据分区开始并顺序前进至第一静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区;以及
在所述擦写部分占用比所述一系列静态数据分区中的第一静态数据分区的第一地址更低阶的一个或多个地址时以所述第一静态数据分区开始并顺序前进至所述最后一个静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区;以及
在每个静态数据分区被存储至所述擦写部分时更新所述分区表。
11.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下动作的操作:
通过将当前时钟值与存储在所述NAND存储器设备中的上次刷新时钟值作比较来确定是否应当刷新所述数据镜像;
响应于确定应当刷新所述数据镜像而存储所述当前时钟值以替代所述上次刷新时钟值;以及
响应于存储所述当前时钟值以替代所述上次刷新时钟值而刷新所述NAND存储器设备上的所述数据镜像。
12.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下动作的操作:
在刷新所述NAND存储器设备上的所述数据镜像之前启动时钟;
确定所述时钟是否指示应当刷新所述数据镜像;以及
响应于确定所述时钟指示应当刷新所述数据镜像而刷新所述NAND存储器设备上的所述数据镜像。
13.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下动作的操作:基于存储在所述分区表中的分区地址来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址。
14.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行进一步包括以下动作的操作:基于存储在所述NAND存储器设备中的基于上次是以所述最后一个静态数据分区还是以所述第一静态数据分区开始刷新分区的数据来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址。
15.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行操作,以使得将所述一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的所述擦写部分中包括对所述一系列静态数据分区的每个副本执行验证检查。
16.如权利要求10所述的计算设备,其特征在于,所述处理器配置有处理器可执行指令以执行操作,以使得所述分区表包括两个分区表,每个分区表存储指示这两个分区表中哪个分区表上次被刷新的滚动计数器,其中更新所述分区表包括更新这两个分区表中最老的分区表并基于所述分区表何时被更新来在系统文件中保存时间值。
17.一种计算设备,包括:
存储有数据镜像的NAND存储器设备,所述数据镜像被划分成顺序地存储在所述NAND存储器设备中的一系列分区,其中第一分区在第一地址开始地存储在所述NAND存储器设备中,最后一个分区在最后一个地址结束地存储在所述NAND存储器设备中,并且每个分区的地址被存储在分区表中,其中所述第一地址是比所述最后一个地址更低阶的地址;以及
用于作为一个刷新循环的一部分,将一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的擦写部分中的装置,其中用于将所述一系列静态数据分区顺序地复制到所述擦写部分中的装置包括:
用于在所述擦写部分占用比所述一系列静态数据分区中的最后一个静态数据分区的最后一个地址更高阶的一个或多个地址时以所述最后一个静态数据分区开始并顺序前进至第一静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区的装置;以及
用于在所述擦写部分占用比所述一系列静态数据分区中的第一静态数据分区的第一地址更低阶的一个或多个地址时以所述第一静态数据分区开始并顺序前进至所述最后一个静态数据分区地单独复制所述一系列静态数据分区中的每个静态数据分区的装置;以及
用于在每个静态数据分区被存储至所述擦写部分时更新所述分区表的装置。
18.如权利要求17所述的计算设备,其特征在于,进一步包括:
用于通过将当前时钟值与存储在所述NAND存储器设备中的上次刷新时钟值作比较来确定是否应当刷新所述数据镜像的装置;
用于响应于确定应当刷新所述数据镜像而存储所述当前时钟值以替代所述上次刷新时钟值的装置;以及
用于响应于存储所述当前时钟值以替代所述上次刷新时钟值而发起用于刷新所述NAND存储器设备上的所述数据镜像的操作的装置。
19.如权利要求17所述的计算设备,其特征在于,进一步包括:
用于在刷新所述NAND存储器设备上的所述数据镜像之前启动时钟的装置;
用于确定所述时钟是否指示应当刷新所述数据镜像的装置;以及
用于响应于确定所述时钟指示应当刷新所述数据镜像而发起用于刷新所述NAND存储器设备上的所述数据镜像的操作的装置。
20.如权利要求17所述的计算设备,其特征在于,进一步包括用于基于存储在所述分区表中的分区地址来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址的装置。
21.如权利要求17所述的计算设备,其特征在于,进一步包括用于基于存储在所述NAND存储器设备中的基于上次是以所述最后一个静态数据分区还是以所述第一静态数据分区开始刷新分区的数据来确定所述擦写部分是否占用比所述一系列静态数据分区更高阶的地址的装置。
22.如权利要求17所述的计算设备,其特征在于,用于将所述一系列静态数据分区顺序地复制到所述NAND存储器设备的未存储所述分区表中标识出的数据镜像分区的所述擦写部分中的装置包括用于对所述一系列静态数据分区的每个副本执行验证检查的装置。
23.如权利要求17所述的计算设备,其特征在于,所述分区表包括两个分区表,每个分区表存储指示这两个分区表中哪个分区表上次被刷新的滚动计数器,其中用于更新所述分区表的装置包括用于更新这两个分区表中最老的分区表并基于所述分区表何时被更新来在系统文件中保存时间值的装置。
CN201480061809.3A 2013-11-11 2014-11-07 存储在nand存储器设备中的数据的防故障刷新 Expired - Fee Related CN105723462B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361902394P 2013-11-11 2013-11-11
US61/902,394 2013-11-11
US14/195,928 US9329802B2 (en) 2013-11-11 2014-03-04 Fail safe refresh of data stored in NAND memory device
US14/195,928 2014-03-04
PCT/US2014/064661 WO2015070082A1 (en) 2013-11-11 2014-11-07 Fail safe refresh of data stored in nand memory device

Publications (2)

Publication Number Publication Date
CN105723462A CN105723462A (zh) 2016-06-29
CN105723462B true CN105723462B (zh) 2017-07-04

Family

ID=52003055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480061809.3A Expired - Fee Related CN105723462B (zh) 2013-11-11 2014-11-07 存储在nand存储器设备中的数据的防故障刷新

Country Status (6)

Country Link
US (1) US9329802B2 (zh)
EP (1) EP3069349B1 (zh)
JP (1) JP6105165B2 (zh)
KR (1) KR101736944B1 (zh)
CN (1) CN105723462B (zh)
WO (1) WO2015070082A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014208609A1 (de) * 2014-05-08 2015-11-26 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
DE102014211111A1 (de) * 2014-06-11 2015-12-17 Robert Bosch Gmbh Refresh eines Speicherbereichs einer nichtflüchtigen Speichereinheit
KR20160023274A (ko) * 2014-08-22 2016-03-03 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10956245B1 (en) 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
CN111666177B (zh) * 2020-05-07 2023-06-30 中国石油天然气股份有限公司 一种气液两相流量计仪表数据存储方法
US20240211344A1 (en) * 2020-09-26 2024-06-27 Intel Corporation Adaptive internal error scrubbing and error handling
US20210325956A1 (en) * 2021-06-25 2021-10-21 Intel Corporation Techniques to reduce memory power consumption during a system idle state
KR20230001984A (ko) 2021-06-29 2023-01-05 인천대학교 산학협력단 토복령 추출물 유래 성분을 포함하는 전립선암 전이 억제용 조성물 내지 이의 용도
US11900136B2 (en) * 2021-07-28 2024-02-13 Sony Interactive Entertainment LLC AoT compiler for a legacy game
CN117873511A (zh) * 2021-07-30 2024-04-12 荣耀终端有限公司 一种操作系统升级方法、设备、存储介质及计算机程序产品
CN116661696B (zh) * 2023-06-05 2024-03-22 深圳市航顺芯片技术研发有限公司 一种基于快闪存储器的存储方法及相关装置
CN116540947B (zh) * 2023-07-04 2023-10-13 苏州萨沙迈半导体有限公司 数据擦写的方法、装置、存储介质和单片机

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4001945B2 (ja) * 1995-10-13 2007-10-31 ソニー株式会社 半導体メモリのリフレッシュ方法
JPH10302484A (ja) * 1997-04-30 1998-11-13 Hitachi Ltd 不揮発性メモリを用いた記憶装置、および、その管理方法
JP2000298626A (ja) * 1999-04-13 2000-10-24 Nec Corp フラッシュメモリ回路の活性化方式及びその方法
US20030009721A1 (en) 2001-07-06 2003-01-09 International Business Machines Corporation Method and system for background ECC scrubbing for a memory array
JP4058322B2 (ja) 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
JP4335659B2 (ja) 2003-12-19 2009-09-30 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
US7710777B1 (en) 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
WO2009042298A1 (en) 2007-09-26 2009-04-02 Rambus Inc. Flash memory refresh
EP2077559B1 (en) 2007-12-27 2012-11-07 Hagiwara Solutions Co., Ltd. Refresh method of a flash memory
US20110047322A1 (en) 2009-08-19 2011-02-24 Ocz Technology Group, Inc. Methods, systems and devices for increasing data retention on solid-state mass storage devices
US8934311B2 (en) 2011-09-06 2015-01-13 Samsung Electronics Co., Ltd. Semiconductor memory device capable of screening a weak bit and repairing the same
WO2013078439A2 (en) 2011-11-22 2013-05-30 Silicon Space Technology Corporation Memory circuit incorporating radiation hardened memory scrub engine

Also Published As

Publication number Publication date
JP6105165B2 (ja) 2017-03-29
KR101736944B1 (ko) 2017-05-17
WO2015070082A1 (en) 2015-05-14
JP2016540297A (ja) 2016-12-22
KR20160075792A (ko) 2016-06-29
US9329802B2 (en) 2016-05-03
EP3069349A1 (en) 2016-09-21
CN105723462A (zh) 2016-06-29
EP3069349B1 (en) 2017-08-30
US20150134888A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
CN105723462B (zh) 存储在nand存储器设备中的数据的防故障刷新
US10061512B2 (en) Data storage device and data writing method thereof
TWI546666B (zh) 資料儲存裝置以及快閃記憶體控制方法
US8055834B2 (en) Method for preventing read-disturb happened in non-volatile memory and controller thereof
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US8392691B2 (en) Data management method, memory controller and memory storage apparatus
CN107807886B (zh) 闪存存储器中的索引管理
US20120198131A1 (en) Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same
CN111221750B (zh) 固态储存装置的数据处理方法
US20190087110A1 (en) Data management method for memory and memory apparatus
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
TW201833421A (zh) 可更新韌體的電子鎖系統
US20190026045A1 (en) Storage Device and Data Control Method for Storage Error Control
US20130054903A1 (en) Memory device and writing method thereof
CN108962322A (zh) 使用非易失性存储器来实施非易失性计数器的方法和系统
JP5451682B2 (ja) フラッシュメモリ装置
JP5520880B2 (ja) フラッシュメモリ装置
JP5060088B2 (ja) フラッシュメモリ制御システムとその制御方法
JP7153435B2 (ja) 不揮発性メモリのデータ書換方法及び半導体装置
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2018206161A (ja) 記憶装置および記憶装置のデータ管理方法
CN107749307B (zh) 存储系统写盘失败时的重写方法、装置、设备和存储介质
TW202403548A (zh) 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器
JP2012088884A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170704

Termination date: 20201107