CN102890620A - 非易失性临时数据处理 - Google Patents

非易失性临时数据处理 Download PDF

Info

Publication number
CN102890620A
CN102890620A CN2012102489244A CN201210248924A CN102890620A CN 102890620 A CN102890620 A CN 102890620A CN 2012102489244 A CN2012102489244 A CN 2012102489244A CN 201210248924 A CN201210248924 A CN 201210248924A CN 102890620 A CN102890620 A CN 102890620A
Authority
CN
China
Prior art keywords
data
page
metadata
electronic equipment
nonvolatile memory
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.)
Granted
Application number
CN2012102489244A
Other languages
English (en)
Other versions
CN102890620B (zh
Inventor
N·J·瓦克拉特
D·J·波斯特
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN102890620A publication Critical patent/CN102890620A/zh
Application granted granted Critical
Publication of CN102890620B publication Critical patent/CN102890620B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Abstract

本公开涉及非易失性临时数据处理。提供了处理存储在诸如NAND闪存的非易失性存储器中的临时数据的系统和方法。临时数据可以包括休眠数据或电子设备的仅一个启动周期所需的任何其它数据。当在非易失性存储器的一个或多个页面中存储临时数据时,电子设备可以将临时标记存储为至少一个页面中的元数据的一部分。以该方式,在下一次启动电子设备时,电子设备可以使用该临时标记来确定相关联的页面包含不需要的数据。电子设备因此可以使该页面无效并从其元数据表中忽略该页面。

Description

非易失性临时数据处理
技术领域
本公开涉及非易失性临时数据处理。
背景技术
NAND闪存以及其它类型的非易失性存储器(NVM)通常被应用在电子设备中用作大容量存储。例如,诸如便携式媒体播放器的消费电子设备往往包括NAND闪存来存储音乐、视频以及其它媒体程序。这样的数据通常打算要长期存储,例如,以天、月或甚至年的量级。
NVM还可被用在电子设备中用于不同于长期存储的其它目的。例如,电子设备可能临时将来自易失性存储器的数据存储在NVM中以使得易失性存储器能够在降低功率的休眠状态中断电而不丢失数据。又例如,NVM可以用在虚拟存储器方案中,来增加电子设备的易失性存储器所表现出的容量。
发明内容
提供了用于处理打算短期存储在非易失性存储器(诸如闪存)中的数据的系统和方法。通过允许与长期数据不同地处理短期存储,存储器管理效率和NVM的有效性都能够被增加。
短期存储可以包括在NVM中存储仅在操作系统的当前实例期间被需要的数据,而一旦电子设备关机或重新启动(或甚至更早)就不再有用。该数据可以被称作“非易失性临时数据”或“NV临时数据”,因为,该数据是被临时需要的,但是被存储在持久的非易失性介质中。NV临时数据可以包括例如基于硬件的休眠数据、应用产生的数据、基于应用的休眠数据、交换文件和其它临时文件。
在一些实施例中,当存储NV临时数据时,电子设备可以使用临时标记来修饰NV临时数据。例如,对于电子设备在其中存储NV临时数据的NVM的每个页面,电子设备可以在页面的元数据中包括临时标记。可替换地,电子设备可以在存储NV临时数据的块的至少一个页面中提供临时标记。这使得电子设备能够将NV临时数据与在多次设备启动(bootup)中都需要的信息进行区分。
在电子设备的启动期间,电子设备可以被配置为执行各种启动步骤,例如构建元数据表。元数据表可以包括例如表示文件系统发布的哪些逻辑地址(例如逻辑块地址(LBA))当前被分配的表,和/或逻辑至物理地址映射。电子设备可以通过扫描NVM的页面并确定每个页面是否包括临时标记(或每个页面是否位于被标记用于存储NV临时数据的块中)来创建元数据表。如果页面包括临时标记,则包括在该页面中的数据仅在上次启动电子设备时有用,并且在当前启动中不需要。因此,电子设备可以将该页面标记为具有无效数据并从元数据表中忽略该页面(及其存储的元数据)。通过在启动时执行这样的清理操作,电子设备可以保证从一开始就高效使用NVM存储位置。即,在当前启动周期中的任何时刻,电子设备都不在垃圾收集或磨损均衡的过程中执行不必要的操作来维护废弃的NV临时数据。
在一些实施例中,电子设备可以基于数据是否为NV临时数据来选择存储位置和/或用于存储数据的编程技术。例如,电子设备可以选择较低性能的存储位置,诸如较小可靠性的页面或块(例如,高度循环的块),来存储NV临时数据。在一些实施例中,电子设备可以选择较高速度的存储位置或用于存储NV临时数据的编程技术,诸如单层单元(SLC)块。
附图说明
本发明的上述和其它方面和优点将在考虑了下面结合附图的具体描述之后变得清楚,附图中相同标号表示相同部件,其中:
图1是具有根据本发明的各种实施例配置的非易失性存储器的示例性电子设备的框图;
图2和图3是根据本发明的各种实施例的存储非易失性临时数据的示例性非易失性存储位置的图形示意;
图4是根据本发明的各种实施例的使用临时标记修饰非易失性存储器中的非易失性临时数据的示例性过程的流程图;以及
图5是根据本发明的各种实施例的用于在电子设备启动时处理非易失性临时数据的示例性过程的流程图。
具体实施方式
图1是示例性电子设备100的框图。在一些实施例中,电子设备100可以是或可以包括便携式媒体播放器(例如由加州库比蒂诺的苹果公司出品的iPodTM)、蜂窝电话(例如由苹果公司出品的iPhoneTM)、口袋大小的个人计算机、个人数字助理(PDA)、桌上型计算机、膝上型计算机、以及任何其它适当类型的电子设备或系统。
电子设备100可以包括片上系统(SoC)110和非易失性存储器(NVM)120。NVM 120可以包括基于浮栅或电荷捕获技术的NAND闪存、NOR闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、铁电RAM(FRAM)、磁阻RAM(MRAM)或其任意组合。
NVM 120可以被组织成“块”,其是最小的可擦除单元,并且可以进一步被组织成“页面”,其可以是可被编程或读取的最小的单元。在一些实施例中,NVM 120可以包括多个集成电路,每个集成电路可以具有多个块。来自相应集成电路的块(例如具有相同位置或块编号的块)可以形成被称作“超级块”的逻辑单元。NVM 120的每个存储位置(例如,页面或块)可以使用物理地址(例如物理页面地址或物理块地址)来寻址。尽管在图1中仅示出了一个NVM,但是可替换地,电子设备100可以包括多个NVM封装。
片上系统110可以包括控制电路112、存储器114以及NVM接口116。控制电路112通常可以控制SoC 110以及电子设备100的一般操作和功能。控制电路112可以包括任何适当的部件、电路或逻辑,例如一个或多个处理器。控制电路112可以在程序的控制下操作,所述程序诸如应用、操作系统或加载在存储器114中的NVM驱动器(例如NVM驱动器117)。
存储器114可以包括任何适当类型的易失性存储器,例如随机存取存储器(RAM)(例如,静态RAM(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍速率(DDR)RAM)、高速缓存存储器、或其任意组合。在一些实施例中,存储器114可以作为实现为控制电路112的一部分的任何处理器的主存储器。在这些和其它实施例中,存储器114可以存储有时(即同时或不同时间)也可以作为NV临时数据被存储在NVM 120中的数据。如上所述,NV临时数据包括存储在NVM中的仅在操作系统的当前实例期间被需要的数据,而一旦电子设备100被关闭或重新启动(或更早)就不再有用。
例如,存储器114和/或NVM 120可以以基于硬件的休眠数据的形式存储NV临时数据。基于硬件的休眠数据可以包括响应于进入基于硬件的休眠状态(例如,存储器114被断电的降低功率状态),从存储器114转移至NVM 120的数据。因此,基于硬件的休眠数据可以包括使得电子设备100在其从休眠状态醒来时能够返回至其休眠之前的操作状态(例如在进入降低功率状态之前所处的状态)的数据。基于硬件的休眠数据可以表示设备的硬件和软件的当前操作状态。例如,设备状态数据可以指出哪些程序正活跃地运行,或更特别地,哪个媒体资产(例如歌曲)正在被播放,或用户当前访问的图形用户界面中的位置。因为如果用户在硬件休眠期间关闭电子设备100,用户不会期望电子设备100返回到其休眠之前的操作状态,所以这样的基于硬件的休眠数据是NV临时数据的一个示例。
在一些实施例中,存储器114和/或NVM 120可以将应用产生的数据存储为NV临时数据。应用产生的数据可以包括与应用相关联或由其产生的任何临时有用的数据,诸如关于游戏应用中当前游戏的数据。在一些实施例中,应用可以向操作系统和文件系统提供关于应用产生的数据的临时性质的指示,所以该数据可以被最终作为NV临时数据存储在NVM 120中。
在一些情形中,存储器114和/或NVM 120可以用于以基于应用的休眠数据的形式存储NV临时数据。基于应用的休眠数据可以包括响应于特定应用或程序进入休眠状态而从存储器114转移至NVM120的数据,诸如应用产生的数据。当空间不足并且该应用不是正在活跃使用时,电子设备100可以选择使该应用休眠来释放存储器114中的空间。因此,基于应用的休眠数据可以包括使得电子设备100能够使休眠的应用返回至其休眠之前的操作状态的数据。因为如果电子设备100被重新启动,用户不会期望休眠应用返回至其完全前一状态,所以基于应用的休眠数据是NV临时数据的另一示例。
在这些和其它情形中,存储器114和/或NVM 120可以用于结合虚拟存储器方案来存储NV临时数据。例如,应用产生的数据、基于应用的休眠数据或由一个或多个应用使用的任何其它数据可以从存储器114转移至NVM 120中的“交换文件”或“页面文件”。在此,数据可以从存储器114被页面调出(page out)到存储在NVM 120中的文件中,从而在需要空间时释放存储器114中的空间。用在虚拟存储器方案中的将NV临时数据在存储器114和NVM 120之间传递的其它文件类型也可以被想到。因为一旦电子设备100被关闭,通常就不再需要在虚拟存储器方案中使用的数据,所以交换文件是NV临时数据的另一示例。
存储器114和/或NVM 120可以存储任何适当类型的NV临时数据,例如通常存储在基于UNIX系统上的“临时文件(temp file)”中的任何数据。例如,NV临时数据可以包括存储在NVM 120上的临时文件中的数据,该临时文件由一个程序或应用创建以将该数据传递至另一程序或应用。又例如,NV临时数据可以包括存储在NVM120上的临时文件中的短期数据,其太大以至于不适合存储器114或是会占用存储器114中多于预定空间量的空间。
为了使SoC 110的部件(例如存储器114)从/往NVM 120传递信息,SoC 110可以包括NVM接口116。NVM接口116可以包括被配置作为NVM 120与SoC 110的非特定于NVM的部件之间的接口或驱动器的硬件、软件和固件的任何适当组合。例如,NVM接口116可以包括NVM驱动器117来提供软件/固件接口,其使得操作系统和文件系统间接存取NVM 120,从而使得操作系统和文件系统发布读或写请求以在NVM 120中存储临时数据或从其检索NV临时数据。NVM接口116还可以包括总线控制器118,其可以包括使NVM驱动器117能够使用NVM 120的总线规范(例如数据率)访问NVM 120的任何适当硬件部件。
NVM接口116可以执行各种任务来管理NVM 120的存储位置,例如,垃圾收集、磨损均衡以及坏块管理。NVM驱动器117可以被配置为维护或产生“元数据”,其可以是被NVM驱动器117用来管理NVM 120和其中的存储位置的任何存储器管理数据。NVM驱动器117可被配置为维护元数据表或映射,例如表示由文件系统发布的哪些逻辑地址(例如,逻辑块地址(LBA))当前被分配以供使用的表和/或NVM 120的逻辑地址和物理地址之间的映射。逻辑地址由文件系统基于读或写请求而发布,NVM驱动器170可以将逻辑地址映射到实际对应于NVM 120的物理存储位置的不同物理地址。NVM驱动器117因此可以维护元数据表,从而正确处理来自文件系统的读和写请求。
NVM接口116在图1中描述为完全在SoC 110上实现。在一些实施例中,NVM接口116的一些部件以及NVM驱动器117的一些功能可以由包括在例如NVM 120中的单独的存储器控制器(例如闪存控制器)实现和执行。因此,应该理解对NVM接口116或NVM相关功能的任何描述不限于在SoC 110上实现的部件或动作。
NVM接口116可以接收来自文件系统的写请求以存储多种数据类型的任一种。例如,文件系统可以指示NVM接口116无限期地存储媒体资产,例如歌曲和视频。在其它情形中,文件系统可以指示NVM接口116在NVM 120中存储NV临时数据,例如基于硬件的休眠数据、应用产生的数据、基于应用的休眠数据、交换文件或其它临时数据。因为NV临时数据具有不同于其它数据形式的预期寿命(即,长于电子设备100的一个启动周期)的预期寿命(即,电子设备100的一个启动周期),所以NVM接口116可以被配置为以能够增加NVM 120中存储器使用的有效性和效率的不同方式处理NV临时数据。
在一些实施例中,NVM接口116可以基于数据是否为临时数据来存储数据来选择要在其中存储数据的存储位置(即,页面、块、或超级块)。例如,NVM接口116可以选择较低性能的存储位置来存储NV临时数据。较低性能的存储位置可以是较不可靠的页面或块,例如高度循环的块(即,已经经历较多擦除周期并且可能因此已经经历较多退化的块)。NVM接口116可以选择较高性能的存储位置来存储非临时数据,因为预期非临时数据将在NVM 120中保持更长的时间。
在一些实施例中,NVM接口116可以选择较高速度的存储位置或编程技术来存储NV临时数据。以该方式,在进入降低功率的休眠模式时或在其它多种情形中,在存储器114和NVM 120之间转移数据之间的延迟被减少,其可能对虚拟存储器方案有利。为了提高速度,NVM接口116可以选择单层单元(SLC)块或可以在使用NV临时数据对块编程时减少调谐分辨率。NVM接口116可以选择SLC块来增加编程速度,同时还改进可靠性。
在一些实施例中,NVM接口116可以通过在将NV临时数据存储在NVM 120中时使用“临时标记”修饰NV临时数据来以不同于其它数据的方式处理NV临时数据。以该方式,当数据从NVM 120被读回时,NVM接口116可以快速并高效地将NV临时数据与打算存储更长时间的其它信息区别开。
图2示出了NVM接口116可以使用临时标记修饰NV临时数据的一种方式。图2是非易失性存储器(例如图1中的NVM 120)的块中的多个页面的图形示意。如图所示,块的每个页面可以用于存储数据字段和相关联的元数据字段。每个数据字段可以存储任何适当类型的数据,例如NV临时数据或文件系统请求存储的任何数据(例如媒体资产)。相同页面的元数据字段可以存储与数据字段中的数据相关联的元数据,例如由NVM驱动器117接收或产生的任何存储器管理数据,包括纠错码(ECC)数据、用于管理逻辑和物理地址(例如LBA)之间的映射的任何信息等等。
元数据字段可以包括用于存储指示数据字段中的数据是否为NV临时数据的标记的空间。例如,图2中的页面1和2的元数据字段中的“T”(或“临时”)标记表示相关联的数据字段包括NV临时数据,而该块的页面0和最后一个页面的元数据字段中的“P”(或“持久”)标记表示在相关联的数据字段中的数据包括打算持久且更长期存储的数据。“T”临时标记和“P”持久标记可以使用任何适当方式被实现。即,这些标记可以包括任何适当数量的位(即,一个或多个位),并且“T”和“P”标记的实际位或字值可以分别采用任何适当的预定的位模式。
在一些实施例中,NVM接口116可以不使用特定“P”标记,而可以仅使用“T”临时标记来表示NV临时数据存储在NVM 120中的什么地方。在这些实施例中,在读回页面时,NVM接口116可以基于元数据字段中没有临时标记来确定页面的数据字段不包含NV临时数据。
图2提供了相同块可以既包括NV临时数据也包括持久数据的示例。在其它实施例中,诸如图3中示出的实施例,整个块或超级块可以被用于存储NV临时数据或持久数据。
图3是跨非易失性存储器(例如图1的NVM 120)的多个集成电路的多个块的图形示意。每列表示一个不同的集成电路,每行表示一个不同的超级块。因此,如第一集成电路(IC 0)中所示,整个块(即块2)可以被用于存储NV临时数据。在一些实施例中,NVM接口116可以在块的每个被使用的页面中设置临时标记,这可以为NVM接口116可以正确地将该块解释为存储NV临时数据提供额外的保险。在其它实施例中,NVM接口116可以在块中的页面子集中存储临时标记。例如,NVM接口116可以仅在块的第一个页面中存储临时标记,从而NVM接口116稍后在从第一个页面至最后一个页面读取块时确定该块是否包含NV临时数据。可替换地,NVM接口116可以仅在最后一个页面中存储临时标记(从而NVM接口116可以稍后从最后一个页面向第一个页面读取该块),或NVM接口116可以在块的第一个页面和最后一个页面中都存储临时标记。
在一些实施例中,NVM接口116可以选择整个超级块供存储NV临时数据使用。这在图3的第五个超级块(超级块4)中示出,其中该超级块中的所有块可以用于存储NV临时数据。对于单个块的情况,NVM接口116可以或可以不在超级块的所有被使用页面中存储临时标记。相反,NVM接口116可以仅在超级块的每个块的第一个页面中、仅在超级块的每个块的最后一个页面中、在每个块的第一个和最后一个页面中、或在超级块的块子集的一个或多个页面中存储临时标记。
尽管为了清楚没有在图中示出,但是不包括“T”临时标记的块可以(或可以不)在一些或所有页面中包括“P”持久标记。此外,尽管示出了5个集成电路和6个超级块(总计30个块),但是应该理解NVM 120可以包括任何其它适当数量的集成电路和超级块。
NVM接口116可以使用修饰NV临时数据的临时标记,以便以不同于其它类型的数据的方式来处理NV临时数据。例如,临时标记可以影响电子设备100的启动过程。一旦启动电子设备100,NVM驱动器117可以执行一系列初始化步骤,从而NVM驱动器117可以正确地确定NVM 120的当前状态。包括在初始化步骤中的可以是重新构建一个或多个元数据表或映射,例如表示哪些逻辑地址正被使用的表以及逻辑至物理地址映射。
为了重新构建表,NVM驱动器117可以读取NVM 120的每个页面,并且对于每个页面,可以确定是否要将该页面包括在表中。如果NVM驱动器117确定该页面被指定有临时标记(或该页面位于当前被指定有临时标记的块或超级块中),NVM驱动器117可以将该页面从表中略去。这是因为,该页面已经被用于存储NV临时数据,而该NV临时数据仅在电子设备100的前一启动过程中有效。因此,NVM驱动器117可以将该页面标记为无效,从而,在一些适当时刻,该页面可以被释放(例如,在垃圾收集或磨损均衡过程中),并且可以用于存储其它信息。因为NVM驱动器117正是在启动时使该页面无效并将其从表中忽略,所以NVM 120的存储器使用可以立即变得高效。即,在当前启动周期中的任何时刻,NVM驱动器117都不在垃圾收集或磨损均衡的过程中执行不必要的操作来维护现在废弃的NV临时数据。
现在参考图4和图5,示出了根据本发明的各种实施例的示例性过程的流程图。这些示例性过程的步骤可以由电子设备中的任何适当部件或部件组合执行,例如,由在NVM驱动器117的控制下操作的控制电路112(图1)来执行。
首先看图4,示出了在诸如NVM 120(图1)的NVM中存储NV临时数据时使用临时标记来修饰NV临时数据的过程400。过程400可以开始于步骤402,在此文件系统可以决定在NVM中存储数据。对于NV临时数据,这可以例如在易失性存储器空间不足时或在易失性存储器需要在降低功率状态(即,休眠状态)下被断电时发生。
在步骤404,数据可以从文件系统提供至NVM接口(例如NVM驱动器)以用于在NVM中存储。然后,在步骤406,NVM接口可以确定该数据是否为应被存储为NV临时数据的临时数据。在一些实施例中,NVM接口可以基于从文件系统接收的写请求来解释该数据是否为临时数据。文件系统可能已经响应于来自应用的指示而发布了该数据是临时数据的写请求信令。
如果在步骤406,NVM接口确定该数据是NV临时数据,则NVM接口可以在步骤408为该数据准备元数据,其中元数据包括临时标记。在步骤408(或步骤412,下面讨论)准备元数据可以包括确定和维护从逻辑地址(随着写请求接收的)至与NVM相关联的物理地址的映射。在步骤410,NVM接口还可以选择较低性能和/或较高速度的存储位置(即,页面、块、或超级块)或编程技术来存储该数据,这是因为该数据预期在非易失性存储器中具有短寿命。例如,NVM接口可以选择较不可靠的块(例如,高度循环的块)或SLC块来存储该数据。
否则,如果在步骤406,NVM接口确定数据不是NV临时数据,则在步骤412,NVM接口可以准备不包括临时标记的元数据(以及可以相反地包括持久标记)。在该种情况下,因为该数据可能在非易失性存储器中长期存储,所以在步骤414,NVM接口可以选择较高性能和/或较低速度的存储位置或编程技术来存储该数据。例如,NVM接口可以选择更可靠的块或MLC块来存储该数据。
从步骤410或步骤414,过程400可以继续至步骤416,其中NVM接口可以在NVM中所选择的一个或多个页面中存储该数据(无论其是NV临时数据还是其它数据)和至少一些其相关联的元数据。过程400然后可以在步骤418结束。
现在转向图5,示出了用于在电子设备启动时处理NV临时数据的过程500。在电子设备启动时,过程500可以开始于步骤502。在步骤504,NVM接口可以执行各种启动步骤,从而NVM接口可以确定NVM的初始状态及其存储位置。初始启动步骤因此可以包括构建元数据表,例如表示哪些逻辑地址被分配使用的表和/或包含有效数据的NVM的每个页面的逻辑至物理地址映射。
从步骤504,NVM接口可以通过扫描和处理NVM的每个页面来准备表。特别地,在步骤506,NVM接口可以从NVM读取第一页面,并且在步骤508,NVM接口可以确定该第一页面在该页面的元数据字段中是否包括临时标记。如果不包括,则第一页面不包括NV临时数据,从而在步骤510,NVM接口可以将该页面加至表中。例如,NVM接口可以确定(例如从元数据字段)与该页面相关联的逻辑地址并且可以将该页面的逻辑至物理地址映射添加至适当的表,或者NVM接口可以在表中指出当前被文件系统分配的逻辑地址。
相反,如果在步骤508,NVM接口确定该页面在该页面的元数据字段中包括临时标记,则过程500可以继续到步骤512。因为临时标记表示该页面存储NV临时数据,该NV临时数据因为电子设备已经重新启动而不再有效,所以过程500可以分支到步骤512。在步骤512,NVM接口可以出于重新构建元数据表的目的而忽略该页面中的该元数据。例如,尽管存储在该页面中的逻辑地址本来已经表示该逻辑地址在被文件系统使用,但是NVM接口可以忽略该页面中该逻辑地址的存在。然后,在步骤514,NVM接口可以将该页面标记为包含无效数据。这可以使得NVM接口在适当时刻对该页面执行垃圾收集以释放空间来存储其它信息。
从步骤510或步骤514,过程500可以继续至步骤516,在此NVM接口可以确定元数据表的构建是否完成。该确定可以涉及确定是否存在其它页面还没有被读取和处理。如果存在其它页面需要被考虑以包括在元数据表中,则过程500可以返回至步骤506,从而NVM接口可以读取NVM的另一个页面。否则,如果不存在其它页面,则过程500可以在步骤518结束。
应该理解分别在图4和图5中的过程400和500的步骤仅是示例性的。在不背离本发明的范围的情况下,任何步骤可以被修改、删除或组合,并且另外的步骤可以被包括。
所描述的本发明的实施例是出于说明而非限制的目的而呈现的。

Claims (27)

1.一种电子设备,包括:
易失性存储器,用于存储临时数据;
非易失性(NV)存储器,包括多个页面;
控制电路,操作用于将所述临时数据存储在所述非易失性存储器中作为NV临时数据,其中所述控制电路在存储有所述NV临时数据的页面中的至少一个页面中存储临时标记。
2.根据权利要求1所述的电子设备,其中所述电子设备还操作用于:
为所述NV临时数据准备元数据;以及
将所述元数据和所述临时标记存储在存储有所述NV临时数据的页面中的所述至少一个页面的元数据字段中。
3.根据权利要求1所述的电子设备,其中所述临时标记包括预定的位模式。
4.根据权利要求1所述的电子设备,其中所述多个页面被组织为块,并且所述控制电路还操作用于:
选择所述块之一来存储所述NV临时数据;以及
在所选择的块的至少一个页面中存储临时标记。
5.根据权利要求4所述的电子设备,其中所述控制电路还操作用于在所选择的块的所有页面中存储临时标记。
6.根据权利要求1所述的电子设备,其中所述控制电路还操作用于:
识别所述易失性存储器处于低内存状态;以及
响应于识别出所述低内存状态,将所述临时数据存储在所述非易失性存储器中。
7.根据权利要求1所述的电子设备,其中所述控制电路还操作用于选择较低性能的页面来存储所述临时数据。
8.根据权利要求1所述的电子设备,其中所述控制电路还操作用于选择较高速度的编程技术来存储所述临时数据。
9.一种在非易失性存储器中存储数据的方法,其中所述非易失性存储器包括多个页面,所述方法包括:
将所述数据识别为临时数据;
为所述数据准备元数据,其中所述元数据包括临时标记;以及
在所述非易失性存储器的至少一个页面中存储所述数据和所述元数据。
10.根据权利要求9所述的方法,还包括:
利用写请求,将所述数据从文件系统提供至非易失性存储器接口,
其中所述识别是由所述非易失性存储器接口响应于所述写请求而执行的。
11.根据权利要求9所述的方法,其中所述临时标记包括预定值的至少一位。
12.根据权利要求9所述的方法,其中所述准备还包括为所述数据确定逻辑到物理地址映射。
13.根据权利要求9所述的方法,还包括基于所述识别来选择所述非易失性存储器的所述至少一个页面。
14.根据权利要求9所述的方法,还包括:
识别要存储在所述非易失性存储器中的另外的数据,其中所述另外的数据被识别为不是临时数据;
为所述另外的数据准备另外的元数据,其中所述另外的元数据不包括临时标记;以及
在所述非易失性存储器的至少一个其它页面中存储所述另外的数据和所述另外的元数据。
15.根据权利要求9所述的方法,其中所述识别包括:识别所述数据包括基于硬件的休眠数据、应用产生的数据、基于应用的休眠数据、和用于虚拟存储器方案的数据中的至少一种。
16.一种电子设备,包括:
非易失性存储器;
控制电路,操作用于在所述电子设备启动时为所述非易失性存储器创建元数据表,其中创建元数据表包括:
读取所述非易失性存储器的多个页面,其中至少一个页面包
括临时标记;以及
从所述元数据表中忽略所述至少一个页面。
17.根据权利要求16所述的电子设备,其中所述控制电路还操作用于通过将所述至少一个页面标记为无效来创建所述元数据表。
18.根据权利要求16所述的电子设备,其中所述控制电路还操作用于通过将所述非易失性存储器中不包括临时标记的有效页面添加到元数据表中来创建所述元数据表。
19.根据权利要求16所述的电子设备,其中所述元数据表包括表示哪些逻辑地址当前被分配给文件系统使用的表。
20.根据权利要求16所述的电子设备,其中所述元数据表包括逻辑至物理地址映射。
21.一种在非易失性存储器中存储数据的设备,其中所述非易失性存储器包括多个页面,所述设备包括:
用于将所述数据识别为临时数据的部件;
用于为所述数据准备元数据的部件,其中所述元数据包括临时标记;以及
用于在所述非易失性存储器的至少一个页面中存储所述数据和所述元数据的部件。
22.根据权利要求21所述的设备,还包括:
用于利用写请求,将所述数据从文件系统提供至非易失性存储器接口的部件,
其中所述识别是由所述非易失性存储器接口响应于所述写请求而执行的。
23.根据权利要求21所述的设备,其中所述临时标记包括预定值的至少一位。
24.根据权利要求21所述的设备,其中所述准备还包括为所述数据确定逻辑到物理地址映射。
25.根据权利要求21所述的设备,还包括用于基于所述识别来选择所述非易失性存储器的所述至少一个页面的部件。
26.根据权利要求21所述的设备,还包括:
用于识别要存储在所述非易失性存储器中的另外的数据的部件,其中所述另外的数据被识别为不是临时数据;
用于为所述另外的数据准备另外的元数据的部件,其中所述另外的元数据不包括临时标记;以及
用于在所述非易失性存储器的至少一个其它页面中存储所述另外的数据和所述另外的元数据的部件。
27.根据权利要求21所述的设备,其中所述识别包括:识别所述数据包括基于硬件的休眠数据、应用产生的数据、基于应用的休眠数据、和用于虚拟存储器方案的数据中的至少一种。
CN201210248924.4A 2011-07-18 2012-07-18 非易失性临时数据处理 Expired - Fee Related CN102890620B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/184,647 US8949508B2 (en) 2011-07-18 2011-07-18 Non-volatile temporary data handling
US13/184,647 2011-07-18

Publications (2)

Publication Number Publication Date
CN102890620A true CN102890620A (zh) 2013-01-23
CN102890620B CN102890620B (zh) 2016-05-18

Family

ID=46548260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210248924.4A Expired - Fee Related CN102890620B (zh) 2011-07-18 2012-07-18 非易失性临时数据处理

Country Status (9)

Country Link
US (1) US8949508B2 (zh)
EP (1) EP2549385B1 (zh)
JP (1) JP5683023B2 (zh)
KR (2) KR101385789B1 (zh)
CN (1) CN102890620B (zh)
AU (1) AU2012205187B2 (zh)
BR (1) BR102012017717B1 (zh)
TW (2) TWI519952B (zh)
WO (1) WO2013012632A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133640A (zh) * 2013-03-14 2014-11-05 希捷科技有限公司 从休眠快速恢复
CN106569744A (zh) * 2016-10-31 2017-04-19 华为数字技术(成都)有限公司 一种存储临时数据的方法及存储设备
CN106919344A (zh) * 2015-12-28 2017-07-04 质子世界国际公司 闪存中的存储
CN108304280A (zh) * 2018-01-30 2018-07-20 郑州云海信息技术有限公司 控制异构混合内存系统异常恢复的方法、bmc及装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949508B2 (en) 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
EP2745203B1 (en) * 2011-08-19 2016-09-21 Kabushiki Kaisha Toshiba Information processing apparatus
US20130124778A1 (en) * 2011-11-10 2013-05-16 Greenliant Llc Method of storing host data and meta data in a nand memory, a memory controller and a memory system
KR102093104B1 (ko) 2013-02-22 2020-03-25 주식회사 쿠라레 섬유, 천 및 부직포
CN107391389B (zh) 2013-08-05 2020-11-24 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
CN107741913B (zh) 2013-08-05 2021-09-07 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
US10140477B2 (en) * 2013-12-09 2018-11-27 Thales E-Security, Inc. Obfuscating in memory encryption keys
US9990023B2 (en) * 2016-03-28 2018-06-05 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
CN108536611B (zh) * 2017-03-03 2022-05-13 西部数据技术公司 用于损耗均衡的系统和方法
US10705918B1 (en) 2017-07-21 2020-07-07 EMC IP Holding Company LLC Online metadata backup consistency check
US10956052B1 (en) * 2017-07-21 2021-03-23 EMC IP Holding Company LLC Online address to hash (A2H) metadata scanner
US10515701B1 (en) * 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10446254B1 (en) * 2018-05-03 2019-10-15 Western Digital Technologies, Inc. Method for maximizing power efficiency in memory interface block
US10936456B1 (en) 2019-02-20 2021-03-02 Apple Inc. Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns
US11216388B2 (en) 2019-04-30 2022-01-04 EMC IP Holding Company LLC Tiering between storage media in a content aware storage system
JP6874814B2 (ja) * 2019-10-30 2021-05-19 株式会社安川電機 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288153A1 (en) * 2005-06-21 2006-12-21 Katsuya Tanaka Storage system using flash memory
US20090240678A1 (en) * 2008-03-19 2009-09-24 Microsoft Corporation Purposing persistent data through hardware metadata tagging
US20100235594A1 (en) * 2009-02-13 2010-09-16 Tal Heller Enhancement of efficiency in power failure handling in flash memory
US20110113183A1 (en) * 2009-11-09 2011-05-12 Industrial Technology Research Institute Method for Managing a Non-Violate Memory and Computer Readable Medium Thereof

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9024A (en) * 1852-06-15 Motion of the lay in looms
US8010A (en) * 1851-04-01 Peter mckinlay
JP3106401B2 (ja) * 1993-07-26 2000-11-06 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報処理システム
JPH11242631A (ja) 1998-02-26 1999-09-07 Toshiba Corp コンピュータシステムおよび同システムにおけるデータ保存/復元方法
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
US6574717B1 (en) * 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
US7467274B2 (en) * 2001-12-31 2008-12-16 Hewlett-Packard Development Company, L.P. Method to increase the life span of limited cycle read/write media
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
JP3994071B2 (ja) 2003-06-12 2007-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、システムの稼働状態の切り換え制御方法、およびプログラム
US7093089B2 (en) 2003-08-18 2006-08-15 Hewlett-Packard Development Company, Lp. Systems and methods for storing data on computer systems
GB0320142D0 (en) 2003-08-28 2003-10-01 Ibm Data storage systems
US20070234028A1 (en) 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
KR100843543B1 (ko) 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
WO2008132760A2 (en) * 2007-04-26 2008-11-06 Hewlett-Packard Development Company, L.P. Method and system for allocating memory in a computing environment
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
DE102008062934A1 (de) 2008-12-23 2010-06-24 Kuka Roboter Gmbh Vernetzte Industriesteuerung und Verfahren zum Wechsel des Betriebsmodus einer solchen Industriesteuerung
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8380676B1 (en) * 2009-05-27 2013-02-19 Google Inc. Automatic deletion of temporary files
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN102696010B (zh) 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
KR101678911B1 (ko) * 2010-03-12 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
US8949508B2 (en) 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060288153A1 (en) * 2005-06-21 2006-12-21 Katsuya Tanaka Storage system using flash memory
US20090240678A1 (en) * 2008-03-19 2009-09-24 Microsoft Corporation Purposing persistent data through hardware metadata tagging
US20100235594A1 (en) * 2009-02-13 2010-09-16 Tal Heller Enhancement of efficiency in power failure handling in flash memory
US20110113183A1 (en) * 2009-11-09 2011-05-12 Industrial Technology Research Institute Method for Managing a Non-Violate Memory and Computer Readable Medium Thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HEESEUNG JO: ""FAB:Flash-Aware Buffer Management Policy for Portable Media Players"", 《IEEE》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104133640A (zh) * 2013-03-14 2014-11-05 希捷科技有限公司 从休眠快速恢复
CN106919344A (zh) * 2015-12-28 2017-07-04 质子世界国际公司 闪存中的存储
CN106919344B (zh) * 2015-12-28 2019-09-24 质子世界国际公司 非易失性存储器及其存储方法
CN106569744A (zh) * 2016-10-31 2017-04-19 华为数字技术(成都)有限公司 一种存储临时数据的方法及存储设备
CN106569744B (zh) * 2016-10-31 2020-07-14 华为数字技术(成都)有限公司 一种存储临时数据的方法及存储设备
CN108304280A (zh) * 2018-01-30 2018-07-20 郑州云海信息技术有限公司 控制异构混合内存系统异常恢复的方法、bmc及装置

Also Published As

Publication number Publication date
KR101818599B1 (ko) 2018-01-15
KR101385789B1 (ko) 2014-04-16
EP2549385A1 (en) 2013-01-23
EP2549385B1 (en) 2015-06-10
AU2012205187B2 (en) 2014-10-16
AU2012205187A1 (en) 2013-01-31
TW201324146A (zh) 2013-06-16
WO2013012632A1 (en) 2013-01-24
TWI573019B (zh) 2017-03-01
TW201329713A (zh) 2013-07-16
US8949508B2 (en) 2015-02-03
KR20130010449A (ko) 2013-01-28
CN102890620B (zh) 2016-05-18
BR102012017717A2 (pt) 2013-07-30
BR102012017717B1 (pt) 2020-09-15
JP5683023B2 (ja) 2015-03-11
JP2013033482A (ja) 2013-02-14
US20130024600A1 (en) 2013-01-24
TWI519952B (zh) 2016-02-01
KR20130010447A (ko) 2013-01-28

Similar Documents

Publication Publication Date Title
CN102890620A (zh) 非易失性临时数据处理
US11055230B2 (en) Logical to physical mapping
US9063728B2 (en) Systems and methods for handling hibernation data
US8949512B2 (en) Trim token journaling
US8886884B2 (en) System and method for increasing read and write speeds of hybrid storage unit
US9367451B2 (en) Storage device management device and method for managing storage device
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US20150098271A1 (en) System and method of storing data in a data storage device
CN104346290A (zh) 存储装置、计算机系统及其操作方法
WO2011034652A1 (en) Metadata redundancy schemes for non-volatile memories
KR20080084082A (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US20090132757A1 (en) Storage system for improving efficiency in accessing flash memory and method for the same
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
US8156278B2 (en) Non-volatile data storage system and method thereof
US11218164B2 (en) Data storage device and non-volatile memory control method
CN110727470A (zh) 一种混合式非失性存储装置
US20190114177A1 (en) Data storage device and method for operating non-volatile memory
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법
US8423708B2 (en) Method of active flash management, and associated memory device and controller thereof

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
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: 20160518

Termination date: 20210718