CN104115116B - 用于在休眠状态的装置中管理数据的系统和方法 - Google Patents

用于在休眠状态的装置中管理数据的系统和方法 Download PDF

Info

Publication number
CN104115116B
CN104115116B CN201280069740.XA CN201280069740A CN104115116B CN 104115116 B CN104115116 B CN 104115116B CN 201280069740 A CN201280069740 A CN 201280069740A CN 104115116 B CN104115116 B CN 104115116B
Authority
CN
China
Prior art keywords
data
memory
stored
residual quantity
resting 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
CN201280069740.XA
Other languages
English (en)
Other versions
CN104115116A (zh
Inventor
S.巴-奥尔
E.沙伦
I.阿尔罗德
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 CN104115116A publication Critical patent/CN104115116A/zh
Application granted granted Critical
Publication of CN104115116B publication Critical patent/CN104115116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

本申请涉及用于在休眠状态的装置中管理数据的系统和方法。在一个实施方式中,装置包括接口和处理器。接口与第一存储器和第二存储器耦接。处理器通过接口与第一存储器和第二存储器通信。处理器配置来从第一存储器读出第一数据,基于第一数据生成在第一存储器中所存储的数据的映像数据,以及在装置进入初始休眠状态之前将在第一存储器中所存储的数据的映像数据写入第二存储器。处理器还配置来在装置从初始休眠状态唤醒之后,从第二存储器读出映像数据,基于映像数据重建第一数据,以及将第一数据写入第一存储器。

Description

用于在休眠状态的装置中管理数据的系统和方法
背景技术
期望诸如移动装置的装置有能力既能快速从休眠状态(也被称为空闲状态)恢复操作又能在休眠状态中长时间存储数据同时消耗少量电力。为了给装置提供从休眠状态快速唤醒的能力,很多装置利用DRAM存储器。当DRAM存储器从休眠状态唤醒时,DRAM存储器提供快速执行诸如读写操作的操作的能力。然而,DRAM是消耗电力以保持数据的易失性存储器,因此当装置处于休眠状态时DRAM消耗电力。
其它装置利用NAND存储器。NAND存储器提供在休眠状态期间长时间存储数据同时消耗少量电力的能力。然而,相对于诸如读写操作的操作,NAND存储器比DRAM存储器慢。
期望将改进的存储装置用于诸如移动装置的装置中,所述改进的存储装置能够提供如DRAM存储器的存储器的速度,同时提供如NAND存储器的长时间存储数据同时消耗少量电力的能力。
发明内容
本公开涉及用于在休眠的装置中管理数据的系统和方法。在一个方面,公开了一种用于与装置的休眠相结合管理数据存储的方法。装置的控制器从所述装置的第一存储器读出数据并且基于所述第一数据生成在所述第一存储器中所存储的数据的映像数据(image data)。在进入初始休眠状态之前,所述控制器将在所述第一存储器中所存储的数据的所述映像数据写入所述第二存储器。在从所述初始休眠状态醒来之后,所述控制器从所述第二存储器读出所述映像数据,基于所述映像数据重建所述第一数据,以及将所述第一数据写入所述第一存储器。
在另一方面,公开了一种装置。所述装置包括接口和处理器。所述接口与第一存储器和第二存储器耦接。所述处理器通过所述接口与所述第一存储器和所述第二存储器通信。所述处理器配置来从所述第一存储器读出第一数据并且基于所述第一数据生成在所述第一存储器中所存储的数据的映像数据。所述处理器还配置来在所述装置进入初始休眠状态之前将在所述第一存储器中所存储的所述映像数据写入所述第二存储器。所述处理器还配置来在所述装置从所述初始休眠状态唤醒之后,从所述第二存储器读出所述映像数据,基于所述映像数据重建所述第一数据,以及将所述第一数据写入所述第一存储器。
附图说明
图1是适于为休眠状态管理数据的装置的一个实施方式的框图。
图2是用于在装置进入初始休眠状态之前和之后在装置中管理数据的方法的一个实施方式的流程图。
图3是用于在装置进入后续休眠装置之前和之后在装置中管理数据的方法的一个实施方式的流程图。
图4是一种用于控制器确定何时将第一存储器中所存储的数据的新初始映像存储在第二存储器中的方法的一个实施方式的流程图。
具体实施方式
本公开涉及用于在休眠状态的装置中管理数据的系统和方法。如下文更详细论述的,装置可包括两种类型的存储器。装置的第一存储器,例如DRAM存储器,可具有诸如快速的读写时间的特性。装置的第二存储器,例如NAND存储器,可具有诸如能够长时间存储数据同时消耗少量电力这样的特性。为了利用所述两种类型的存储器的优点,装置的控制器可执行操作,以在装置醒时利用第一存储器,并且在装置处于休眠状态时利用第二存储器。在第一存储器与第二存储器之间切换数据使装置在醒着时快速地执行操作并且在装置处于休眠状态时以少量电力消耗来长时间存储数据。
图1中示出了适于用于实现本发明的方面的装置100。主机系统101将数据存储于第一存储器系统102a和/或第二存储器系统102b,并且从第一存储器系统102a和/或第二存储器系统102b取回数据。第一存储器系统102a和/或第二存储器系统102b可以是嵌入到装置中的存储器,例如以安装在个人计算机中的固态磁盘(SSD)驱动器的形式。或者,如图1中所示,第一存储器系统102a和/或第二存储器系统102b可以是卡(card)的形式,所述卡通过机电连接器(mechanical and electrical connector)的配对部(mating part)104a与106a、或者104b与106b与主机可拆卸地连接。配置以用作内置或内嵌SSD驱动器的存储器看上去可与图1的示意图相似,主要的区别在于第一存储器系统102a和/或第二存储器系统102b的位置位于主机内部。SSD驱动器可以是分立模块(discrete module)的形式,所述分立模块是用于旋转磁盘驱动器的插入替换件(drop-in replacements)。
就存储器系统102a、102b而言,可将图1的主机系统101视为具有两个由电路和软件的组合所构成的主要部分。它们是应用部108(控制器)和驱动器部110,所述驱动器部110与存储器系统102a、102b相接口。例如,在PC中,应用部108可包括运行文字处理、图形、控制或其它流行应用软件的处理器112以及用于管理主机101上的数据的文件系统114。在主要专注于执行单组功能(a single set of functions)的相机、蜂窝手机或其它主机系统中,应用部108包括操作相机拍摄并存储图片、操作蜂窝手机拨打及接听电话等的软件。
图1的存储器系统102a、102b包括存储器116和系统控制器118,两个系统控制器118均与连接于存储器系统的主机101相接口用以来回传递数据且两个系统控制器118均控制存储器116。在数据编程和读出期间,系统控制器118可在由主机101所使用的数据的逻辑地址与存储器116的物理地址之间进行转换。在功能上,系统控制器118可包括与主机系统相接口的前端122以及用于协调存储器116的操作的控制器逻辑124。
在一些实施方式中,第一存储器102a是诸如能够快速地执行例如读写操作的操作的DRAM存储器这样的存储器,并且第二存储器102b是能够长时间存储数据同时消耗少量电力的NAND存储器。然而,还可使用其它存储器配置。
由于DRAM存储器与NAND存储器的不同特性,所以可对主机101的控制器108进行配置以在进入休眠状态之前及之后在第一存储器102a与第二存储器102b之间转移数据的拷贝。在装置100醒时,控制器108转移数据的拷贝以利用DRAM存储器从而提供快速的读写操作,并且在装置100处于休眠状态时,控制器108转移数据的拷贝以利用NAND存储器从而提供长时间存储数据同时消耗少量电力的能力。
如下文更详细说明的,在装置100进入初始休眠状态之前,控制器108通常将在第一存储器102a中所存储的数据的初始映像存储在第二存储器102b中。当装置100从休眠状态醒来时,控制器108从第二存储器102b读出数据的初始映像,基于数据的初始映像重建数据,并且将所重建的数据存储在第一存储器102a中。
在进入后续休眠之前,控制器108检查在第二存储器102b中所存储的第一存储器102a的数据的初始映像来检查当前存储在第一存储器102a中的数据。当控制器108确定存储在第一存储器102a中的数据已经改变时,在进入后续休眠状态之前,控制器108将一组数据(也被称作差量(delta))存储在第二存储器102b中,该组数据代表存储在第一存储器102a中的、自前一休眠状态以来已改变的数据。
当装置100从休眠中醒来时,控制器108从第二存储器102b读出数据映像以及差量,基于数据映像以及数据差量来重建数据,并且将所重建的数据存储在第一存储器102a中。在一些实施方式中,控制器108可为后续休眠重复该处理,直到使控制器108将第一存储器102a中所存储的数据的新初始映像存储在第二存储器102b中的条件出现为止。可使控制器108存储在第一存储器102a中所存储的数据的新初始映像的条件的实例可包括:存储在第二存储器102b中的差量的数量超过阈值和/或存储在第一存储器102a中的、自从将在第一存储器102a中所存储的数据的初始映像存储在第二存储器102b中以来已经改变的数据的量超过阈值。
图2是在装置进入休眠状态之前以及之后用于在装置中管理数据的方法一个实施方式的流程图。在步骤202,该方法开始,通过控制器确定是否需要使装置进入休眠状态。可以理解的是,控制器可基于根据用户启动装置上的按钮所接收到的信号、自从装置的上一操作以来的时间量、和/或可将需要进入休眠状态报警给控制器的任何其它因素来确定是否需要使装置进入休眠状态。
在步骤204,控制器从第一存储器读出数据,并且产生在第一存储器中所存储的数据的初始映像,所述第一存储器可以是DRAM存储器。在步骤206,控制器可通过执行诸如压缩数据以减小数据的大小或者将数据变形以减小存储器的磨损(wear)的操作来操控在第一存储器中存储的数据的映像。在一些实施方式中,为了将数据变形,控制器可变换数据的比特序列以减少补足比特序列的零的数量,使得存储器单元的增加的数量可保持在擦除状态(erased state)。2011年7月19日授权的美国专利No.7,984,360、2011年10月20日递交的美国临时专利申请No.61/549,448、以及2011年10月24日递交的美国临时专利申请No.61/550,694中描述了可用于对数据进行变形的算法的实例,通过援引的方式将上述专利及专利申请的全部内容并入本文。
在步骤208,控制器将在第一存储器中所存储的数据的初始映像存储到第二存储器中。如上所述,在一些实施方式中,第二存储器可以是NAND存储器。在步骤210,装置进入初始休眠状态。
在步骤212,控制器确定是否需要从初始休眠状态唤醒。可以理解的是,控制器可以基于根据用户启动装置上的按钮所接收到的信号、和/或可将需要从休眠状态唤醒报警给控制器的任何其它因素来确定是否需要从初始休眠状态唤醒。响应于此,在步骤214,控制器从第二存储器读出数据的初始映像,所述数据的初始映像代表在存储装置进入休眠状态之前已存储在第一存储器中的数据。在步骤216,控制器对数据进行操控以反转(reverse)在步骤206对数据可能已执行了的操作并且基于数据的初始映像重建数据。然后,在步骤218,控制器将所重建的数据存储在第一存储器中以还原(restore)第一存储器的内容。
在将映像数据存储在第一存储器中之后,装置可执行正常操作,所述正常操作为控制器将数据写入第一存储器以及从第一存储器读出数据。这些操作可以继续直到控制器确定需要进入后续休眠状态为止。
图3是在执行上文结合图2所述的操作之后在装置进入后续休眠状态之前以及之后用于在装置中管理数据的方法的一个实施方式的流程图。
在步骤302,控制器确定是否需要使装置进入后续休眠状态。在步骤304,控制器从第一存储器读出数据。在一些实施方式中,控制器从第一存储器读出全部数据。然而,在其它实施方式中,控制器仅读出存储在第一存储器中的部分数据,例如第一存储器的扇区、第一存储器的页、第一存储器的块、或存储器的任何其它所需部分。
在步骤306,控制器确定自从装置从前一休眠状态醒来以后在步骤304从第一存储器读出的数据是否已经改变。在一些实施方式中,控制器通过将在步骤304从第一存储器读出的这部分数据与根据在第二存储器中所存储的数据的初始映像所重建的数据进行比较来确定数据是否已经改变,其中所述数据的初始映像代表在前一休眠之前在第一存储器中所存储的数据。可理解的是,根据在步骤304从第一存储器读出的这部分数据,控制器可比较存储在第二存储器中的映像数据的相应部分,例如第一存储器、第一存储器的扇区、第一存储器的页、或第一存储器的块中的数据的整体映像。
在一些实施方式中,在步骤306,控制器可通过对在步骤304从第一存储器读出的这部分数据以及基于在第二存储器中存储的数据的映像所重建的相关部分数据来计算循环冗余校验(CRC),然后确定两个值是否相等,来确定存储在第一存储器中的数据是否已经改变。如果两个CRC值相等,则在步骤304从第一存储器读出的这部分数据中所存储的数据未改变。然而,如果两个CRC值不同,则在步骤304从第一存储器读出的这部分数据已经改变。
当控制器确定在从第一存储器读出的这部分数据中所存储的数据已经改变时,在步骤308,控制器将一组数据(也被称作差量)存储在第二存储器中,该组数据代表在步骤304从第一存储器读出的数据的、自从最近的前一休眠以来已经改变的内容。在一些实施方式中,控制器可在将数据存储在第二存储器中之前,对代表从第一存储器读出的、自从最近的前一休眠以来已经改变的数据内容的数据进行压缩和/或变形(shape)。
在将差量存储在第二存储器中之后,在步骤310,控制器确定存储在第一存储器中的剩余部分数据是否需要检查,以便控制器可在第二存储器中保存对存储在第一存储器中的、自前一休眠状态以来已经改变的数据的任何变化。如果控制器确定存储在第一存储器中的剩余部分数据不需要检查,则在步骤312,装置进入休眠状态。然而,如果控制器确定存储在第一存储器中的剩余部分数据需要检查,则该方法循环至步骤304并且重复上述方法直到控制器确定存储在第一存储器中的剩余部分数据不需要检查为止。然后,在步骤312,装置进入休眠状态。
再次参照步骤306,当控制器确定在步骤304从第一存储器读出的数据的内容未改变时,该方法进入步骤310,在步骤310,控制器如上所述对存储在第一存储器中的任何剩余部分数据是否需要检查进行确定,以便控制器可将自从前一休眠状态以来在第一存储器中所存储的数据的任何变化保存在第二存储器中。
在步骤314,控制器确定是否需要从休眠状态唤醒。在步骤316,控制器从第二存储器读出第一存储器的内容的映像数据并且从第二存储器读出控制器已存储在第二存储器中的任何差量。如果控制器对数据执行了任何操控,例如对映像数据和/或差量进行压缩和/或变形,则将数据的操控反转。在步骤318,控制器基于初始映像数据以及一个或多个差量来重建数据,并且在步骤320,控制器将所重建的数据写入第一存储器。可理解的是,在将基于映像数据和差量所重建的数据写入第一存储器之后,第一存储器的内容将包括在存储装置进入前一休眠状态之前在第一存储器中出现的任何有效数据。
在将上文结合图2所述的第一存储器的内容的初始映像存储在第二存储器中之后,存储装置每次进入后续休眠状态时,可重复上文结合图3所述的方法。在第二存储器中存储有多个差量的实施方式中,控制器可将第一存储器的初始映像数据以及每个差量存储在第二存储器中的不同裸片(die)中,以便当存储装置从休眠状态唤醒时增大映像数据和差量的读取的并行性。
在一些实施方式中,控制器可基于诸如存储在第二存储器中的差量数和/或自从将第一存储器的内容的初始映像存储在第二存储器中以来在第一存储器的内容中已经改变的数据的量的因素,来确定何时将第一存储器的内容的新映像存储在第二存储器中。
对在将第一存储器的内容的新映像存储在第二存储器中之前在第一存储器的内容中可改变的差量的数量或数据量进行限制,防止当进入和/或退出休眠状态时由控制器执行无法接受的数量的操作所造成的装置性能的降低,所述无法接受的数量的操作与在第二存储器中存储差量和/或从第二存储器读出差量并且基于该差量而重建数据相关联。
下文的实例示出了,当在第二存储器中保存有多个差量时,控制器可执行用以重建数据的操作的数量。在一些实施方式中,当控制器在不同的休眠状态期间保存一个或多个差量时,差量可代表根据前一休眠状态的第一存储器中的数据的变化。例如,控制器在初始休眠状态之前可存储第一存储器的数据的初始映像,在第一后续休眠状态之前可存储数据的第一差量,在第二后续休眠状态之前可存储数据的第二差量,以及在第三后续休眠状态之前可存储数据的第三差量。第一差量代表自初始休眠状态以来的第一存储器的数据的变化,第二差量代表自第一后续休眠状态以来的第一存储器的数据的变化,并且第三差量代表自第二后续休眠状态以来的第一存储器的数据的变化。
因此,为了在第三后续休眠状态之前在第一存储器中重建数据,控制器将数据的第一差量应用于数据的初始映像,以便在第一后续休眠状态之前重建第一存储器的内容;控制器将数据的第二差量应用于在第一后续休眠状态之前已重建的第一存储器的内容,以便在第二后续休眠状态之前重建第一存储器的内容;并且最后,控制器将第三数据差量应用于在第二后续休眠状态之前已重建的第一存储器的内容,以便在第三后续休眠状态之前重建第一存储器的内容。
图4示出了一种用于控制器确定何时将第一存储器中存储的数据的新映像存储在第二存储器中以便防止降低存储装置的性能的方法。该方法于步骤402开始,如上所述,当装置进入初始休眠状态时,控制器将存储在第一存储器中的数据内容的初始映像存储在第二存储器中。在步骤404,如上所述,当装置从初始休眠唤醒时,控制器从第二存储器读出初始映像数据,并且将基于映像数据所重建的数据存储在第一存储器中。在步骤406,控制器执行从第一存储器读出数据以及将数据写入第一存储器的正常操作。
在步骤408,如上文结合图3所述,控制器准备进入后续休眠状态,这时控制器在第二存储器中保存一个或多个差量,所述一个或多个差量代表存储在第一存储器中的、自从前一休眠状态以来已经改变的数据。然而,在进入后续休眠状态之前,在步骤410,控制器确定是否将在第一存储器中所存储的数据的新映像存储在第二存储器中。在一些实施方式中,控制器可基于下面这样的因素来确定是否将数据的新映像存储在第二存储器中,所述因素例如:自从将初始映像数据存储在第二存储器中以来在第二存储器中保存的差量的数量是否超过阈值、自从将初始映像数据存储在第二存储器中以来第一存储器中已经改变的数据量是否超过阈值、和/或任何其它所需的因素,所述任何其它所需的因素指示控制器:为了保持装置的性能,控制器应当将在第一存储器中所存储的数据的新映像存储在第二存储器中。
当在步骤410,控制器确定不将第一存储器的内容的新映像数据存储在第二存储器中时,在412,装置继续进入后续休眠状态。在步骤414,当装置从后续休眠状态唤醒时,控制器如上所述读出在第二存储器中所存储的初始映像数据和任何差量,基于初始映像数据和任何差量重建数据,并且将所重建的数据存储在第一存储器中。然后,该方法循环至步骤406,在步骤406,控制器结合从主机接收的指令来执行从第一存储器读出数据以及将数据写入第一存储器的正常操作。
然而,当在步骤410,控制器确定需要存储第一存储器的内容的新映像数据时,该方法循环至步骤402,在步骤402,当装置进入新初始休眠状态时,控制器将在第一存储器中所存储的数据内容的新初始映像存储在第二存储器中并且重复上述方法。
在一些实施方式中,控制器可执行除了上文所述的那些操作以外的操作,以便提高装置能够从休眠状态醒来的速度。例如,当装置从休眠状态唤醒时,最初控制器可仅将负责基本功能的或一旦装置从休眠状态醒来主机和/或用户就会立即需要访问的功能的那部分数据写入第一存储器。然后,随后在装置从主机和/或用户接受命令时,控制器可将剩余数据加载到第一存储器中。
图1至图4描述了用于在休眠的装置中管理数据的系统和方法。如上所述,装置可包括具有不同特性的两种类型的存储器。在一些实施方式中,第一存储器,例如DRAM存储器,可具有诸如快速读写时间的特性,第二存储器,例如NAND存储器,可具有诸如能够长时间存储数据同时消耗少量电力这样的特性。为了利用这两种类型的存储器的优点,装置的控制器可执行操作,以在装置醒时利用第一存储器,并且在装置处于休眠状态时利用第二存储器。在第一存储器与第二存储器之间切换数据使装置在醒着时快速地执行操作并且在装置处于休眠状态时以少量电力消耗来长时间存储数据。
意图在于,前述详细说明应视为示例性而非限制性的,并且应理解的是,下文的权利要求,包括所有等效物,意在定义本发明的精神和范围。

Claims (16)

1.一种用于与装置的休眠相结合管理数据存储的方法,所述方法包括:
在与第一存储器和第二存储器操作地耦接的装置的控制器中:
确定需要进入休眠状态;
在确定需要进入休眠状态之后:
从所述第一存储器读出第一数据;
基于所述第一数据生成在所述第一存储器中所存储的数据的映像数据;
在所述装置进入初始休眠状态之前,将在所述第一存储器中所存储的数据的所述映像数据写入所述第二存储器;以及
在从所述初始休眠状态醒来之后:
从所述第二存储器读出所述映像数据;
基于所述映像数据重建所述第一数据;
将所述第一数据写入所述第一存储器;
从所述第一存储器读出第二数据;
将所述第二数据与根据在所述第二存储器上存储的所述映像数据所重建的至少部分数据进行比较,以确定自从所述装置从所述初始休眠状态唤醒以来在所述第一存储器中存储的数据是否已经改变;以及
响应于确定出自从从所述初始休眠状态醒来以来在所述第一存储器中存储的数据已经改变:将第一数据差量存储在所述第二存储器中,所述第一数据差量代表在所述第一存储器中存储的、自从所述装置从所述初始休眠状态唤醒以来已经改变的至少部分数据,所述第一数据差量在所述装置进入第一后续休眠状态之前被存储在所述第二存储器中。
2.根据权利要求1所述的方法,其中所述第一存储器包括DRAM存储器并且所述第二存储器包括NAND存储器。
3.根据权利要求1所述的方法,还包括:
在将所述第一数据差量存储在所述第二存储器之前,对所述第一数据差量进行压缩,以减小所述第一数据差量的大小。
4.根据权利要求1所述的方法,还包括:
在将所述第一数据差量存储在所述第二存储器中之前,对所述第一数据差量进行变形,以减少所述第一数据差量的比特流中的零的数量。
5.根据权利要求1所述的方法,还包括:
在从所述第一后续休眠状态醒来之后:
从所述第二存储器读出所述映像数据;
从所述第二存储器读出所述第一数据差量;以及
基于所述映像数据和所述第一数据差量将所重建的数据写入所述第一存储器。
6.根据权利要求5所述的方法,还包括:
在从所述第一后续休眠状态醒来之后:
从所述第一存储器读出第三数据;
将所述第三数据与根据所述映像数据和所述第一数据差量所重建的至少部分数据进行比较,以确定自从所述装置从所述第一后续休眠状态唤醒以来在所述第一存储器中所存储的数据是否已经改变;以及
响应于确定出自从所述装置从所述第一后续休眠状态唤醒以来在所述第一存储器中所存储的数据已经改变:
将第二数据差量存储在所述第二存储器中,所述第二数据差量代表在所述第一存储器中存储的、自从所述装置从所述第一后续休眠状态唤醒以来已经改变的至少部分数据,所述第二数据差量在所述装置进入第二后续休眠状态之前被存储在所述第二存储器中。
7.根据权利要求6所述的方法,其中所述第一数据差量和所述第二数据差量存储在所述第二存储器的不同裸片中。
8.根据权利要求1所述的方法,还包括:
在确定出自从从所述初始休眠状态醒来以来在所述第一存储器中存储的数据已经改变之后:
确定出在所述第二存储器中存储的数据的差量的数量超过阈值,并且响应于此:
生成在所述第一存储器中存储的数据的新映像数据;以及
在进入下一休眠状态之前,将在所述第一存储器中存储的数据的所述新映像数据写入所述第二存储器。
9.根据权利要求1所述的方法,还包括:
在确定出自从从所述初始休眠状态醒来以来在所述第一存储器中存储的数据已经改变之后:
确定出自从所述装置从所述初始休眠状态唤醒以来已经改变的数据量超过阈值,并且响应于此:
生成在所述第一存储器中存储的数据的新映像数据;以及
在进入下一休眠状态之前将在所述第一存储器中存储的数据的所述新映像数据写入所述第二存储器。
10.根据权利要求1所述的方法,其中将所述第二数据与在所述第二存储器上存储的至少部分所述映像数据进行比较,以确定自从所述装置从所述初始休眠状态唤醒以来在所述第一存储器中存储的数据是否已经改变包括:
为所述第二数据计算第一循环冗余校验(CRC);
为根据在所述第二存储器上存储的所述映像数据所重建的数据计算第二CRC;以及
确定所述第一CRC与所述第二CRC是否相等。
11.根据权利要求1所述的方法,其中所述第二数据和所述部分数据是存储器的扇区。
12.根据权利要求1所述的方法,其中所述第二数据和所述部分数据是存储器的页。
13.根据权利要求1所述的方法,其中所述第二数据和所述部分数据是存储器的块。
14.一种装置,包括:
接口,所述接口与第一存储器和第二存储器耦接;
处理器,所述处理器用于与所述装置的休眠相结合管理数据存储,所述处理器通过所述接口与所述第一存储器和所述第二存储器通信并且配置来:
确定需要进入休眠状态;
在确定需要进入休眠状态之后:
从所述第一存储器读出第一数据;
基于所述第一数据生成在所述第一存储器中所存储的数据的映像数据;
在所述装置进入初始休眠状态之前,将在所述第一存储器中所存储的数据的所述映像数据写入所述第二存储器;以及
在所述装置从所述初始休眠状态唤醒之后:
从所述第二存储器读出所述映像数据;
基于所述映像数据重建所述第一数据;
将所述第一数据写入所述第一存储器;
从所述第一存储器读出第二数据;
将所述第二数据与根据在所述第二存储器上存储的所述映像数据所重建的至少部分数据进行比较,以确定自从所述装置从所述初始休眠状态唤醒以来在所述第一存储器中存储的数据是否已经改变;以及
响应于确定出自从从所述初始休眠状态醒来以来在所述第一存储器中存储的数据已经改变:将第一数据差量存储在所述第二存储器中,所述第一数据差量代表在所述第一存储器中存储的、自从所述装置从所述初始休眠状态唤醒以来已经改变的至少部分数据,所述第一数据差量在所述装置进入第一后续休眠状态之前被存储在所述第二存储器中。
15.根据权利要求14所述的装置,其中所述第一存储器包括DRAM存储器并且所述第二存储器包括NAND存储器。
16.根据权利要求14所述的装置,其中所述处理器还配置来:
在从所述第一后续休眠状态唤醒之后:
从所述第二存储器读出所述映像数据;
从所述第二存储器读出所述第一数据差量;以及
基于所述映像数据和所述第一数据差量将所重建的数据写入所述第一存储器。
CN201280069740.XA 2011-12-19 2012-12-17 用于在休眠状态的装置中管理数据的系统和方法 Active CN104115116B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/330,185 US9495173B2 (en) 2011-12-19 2011-12-19 Systems and methods for managing data in a device for hibernation states
US13/330,185 2011-12-19
PCT/US2012/070004 WO2013096155A1 (en) 2011-12-19 2012-12-17 Systems and methods for managing data in a device for hibernation states

Publications (2)

Publication Number Publication Date
CN104115116A CN104115116A (zh) 2014-10-22
CN104115116B true CN104115116B (zh) 2017-03-22

Family

ID=47520279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069740.XA Active CN104115116B (zh) 2011-12-19 2012-12-17 用于在休眠状态的装置中管理数据的系统和方法

Country Status (5)

Country Link
US (1) US9495173B2 (zh)
EP (1) EP2795463B1 (zh)
CN (1) CN104115116B (zh)
TW (1) TWI587309B (zh)
WO (1) WO2013096155A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104303159B (zh) * 2012-05-29 2017-03-29 惠普发展公司,有限责任合伙企业 基于页面来源的休眠
US20170125070A1 (en) * 2015-10-29 2017-05-04 Sandisk Technologies Inc. System and method for hibernation using a delta generator engine
US10521143B2 (en) * 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
US20230384971A1 (en) * 2022-05-24 2023-11-30 Western Digital Technologies, Inc. Data Storage Device and Method for Device-Initiated Hibernation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211214A (zh) * 2006-12-28 2008-07-02 索尼株式会社 信息处理设备、启动方法和计算机程序
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN101356501A (zh) * 2005-11-14 2009-01-28 阿登斯公司 用于快速启动操作系统的方法和装置
CN101743532A (zh) * 2007-07-11 2010-06-16 思杰系统有限公司 用于提供对计算装置的访问水平的方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2779813B2 (ja) 1988-09-06 1998-07-23 セイコーエプソン株式会社 コンピューター
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
US20080175219A1 (en) * 2007-01-23 2008-07-24 Innovative Sonic Limited Method of detecting slot format of physical signaling channel in a wireless communications system and related apparatus
US8392606B2 (en) * 2008-09-23 2013-03-05 Synapse Wireless, Inc. Wireless networks and methods using multiple valid network identifiers
US8510542B2 (en) 2008-10-01 2013-08-13 Oracle International Corporation Flash memory device having memory partitions and including an embedded general purpose operating system for booting a computing device
US8181046B2 (en) * 2008-10-29 2012-05-15 Sandisk Il Ltd. Transparent self-hibernation of non-volatile memory system
US9176883B2 (en) * 2009-04-30 2015-11-03 HGST Netherlands B.V. Storage of data reference blocks and deltas in different storage devices
US8209501B2 (en) 2009-05-05 2012-06-26 Microsoft Corporation Capturing and loading operating system states
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
KR101668312B1 (ko) * 2010-10-19 2016-10-21 삼성전자 주식회사 모바일 디바이스에서 하이버네이션 기능 지원 방법 및 장치
KR101467515B1 (ko) * 2010-11-23 2014-12-01 삼성전자 주식회사 스냅샷 이미지를 이용한 부팅 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101356501A (zh) * 2005-11-14 2009-01-28 阿登斯公司 用于快速启动操作系统的方法和装置
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN101211214A (zh) * 2006-12-28 2008-07-02 索尼株式会社 信息处理设备、启动方法和计算机程序
CN101743532A (zh) * 2007-07-11 2010-06-16 思杰系统有限公司 用于提供对计算装置的访问水平的方法和系统

Also Published As

Publication number Publication date
TWI587309B (zh) 2017-06-11
CN104115116A (zh) 2014-10-22
EP2795463B1 (en) 2018-03-21
EP2795463A1 (en) 2014-10-29
US9495173B2 (en) 2016-11-15
TW201337942A (zh) 2013-09-16
WO2013096155A1 (en) 2013-06-27
US20130159599A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
CN102436419B (zh) 非易失性存储器系统及管理其电源的方法
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
TWI506430B (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
US8074148B2 (en) Memory management method and controller for non-volatile memory storage device
US8706948B2 (en) Data writing method for non-volatile memory, and controller and storage system using the same
CN107368429A (zh) 数据储存装置、内存控制器及其数据管理方法与数据区块管理方法
US8595523B2 (en) Data writing method for non-volatile memory, and controller and storage system using the same
CN104571933B (zh) 具固态储存元件的电子装置及其相关控制方法
CN107273058A (zh) 逻辑地址偏移
KR20130031046A (ko) 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
CN104115116B (zh) 用于在休眠状态的装置中管理数据的系统和方法
TW201007449A (en) Flash memory storage system and data writing method thereof
TW200926183A (en) Flash memory data writing method and controller using the same
TW200929232A (en) Wear leveling method and controller thereof
CN105786412A (zh) 非易失性存储器装置的操作方法
US9170887B2 (en) Memory system and controlling method of memory system
CN110058795A (zh) 管理闪存模块的方法及相关的闪存控制器及电子装置
TW201303874A (zh) 記憶體控制方法、記憶體控制器與記憶體儲存裝置
CN107066068A (zh) 存储装置及存储装置内低功耗存储器存取方法
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN107291374A (zh) 纪录数据区块的使用时间的方法及其装置
CN109491592A (zh) 存储设备及其数据写入方法、存储装置
TW201441927A (zh) 一種固態硬碟裝置
CN104166558B (zh) 固件码载入方法、存储器控制器与存储器存储装置
US11537193B2 (en) Shaped and optimized power cycles

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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
C14 Grant of patent or utility model
GR01 Patent grant