用于在计算机系统上存储数据的系统和方法

文档序号:6403898阅读:113来源:国知局
专利名称:用于在计算机系统上存储数据的系统和方法
技术领域
本发明涉及数据存储领域,更具体而言,涉及识别在存储器用于存储数据的部分。
背景技术
计算机系统通常包括易失性和非易失性存储器的组合。由于易失性存储器在被去电时丧失其状态,所以有些计算机系统响应断电条件而将易失性存储器中存储的所有数据保存到非易失性存储器。例如,当用户开始使计算机系统休眠时,在系统的主随机存取存储器(RAM)上保存的数据被保存到系统硬盘驱动器。
在许多计算机系统中,易失性存储器被分配作多种用途。例如,一半的存储容量可以被分配给用户数据,四分之一的存储容量可以是不用的,其余四分之一的存储容量可以被分配作为盘高速缓冲存储器。在易失性存储器被分配作为盘高速缓冲存储器的那部分中,通常将其存储容量的一半指定要被写到系统硬盘驱动器。因此在有些计算机系统中,整个易失性存储器—包括不用的部分和被指定要被写到系统硬盘驱动器的盘高速缓冲存储器部分,都响应断电条件而被写到系统硬盘驱动器。

发明内容
提供用于在计算机系统上存储数据的系统和方法。方法的一个实施例包括识别计算机系统的易失性存储器的、被用来存储数据的第一部分;识别易失性存储器的、未被用来存储数据的第二部分;以及,响应与计算机系统的断电条件相对应的输入,在非易失性存储器中保存对应于易失性存储器的第一部分的数据而不在非易失性存储器中保存易失性存储器的第二部分。
方法的另一个实施例包括识别在易失性存储器中存储的第一数据,该第一数据是下列数据中的至少之一a)还未被存储在非易失性存储器中的数据;和b)不是盘高速缓冲存储器;响应计算机系统的断电条件,在非易失性存储器中保存第一数据。
计算机系统的一个实施例包括易失性存储器;非易失性存储器;以及,断电存储器备份系统,该系统能可操作来识别所述易失性存储器的、被用来存储数据的第一部分;识别易失性存储器的、未被用来存储数据的第二部分;响应与计算机系统的断电条件相对应的输入,在非易失性存储器中保存对应于易失性存储器的第一部分的数据而不在非易失性存储器中保存易失性存储器的第二部分。
其它诸如含有用于在计算机上执行由计算机实现的方法的计算机程序的计算机可读介质之类的系统、方法、特征和/或优点,在本领域的熟练人员研究了以下的附图和详细说明后将是或将变得显而易见。所有这些另外的系统、方法、特征和/或优点都要被包含在本说明书中并受到后附权利要求书的保护。


附图中的各部件未必是互相成比例的。相同的附图标记在几个视图中代表对应的部分。
图1是可被用于实现断电存储器备份系统的一个实施例的计算机系统的示意图;图2是表示断电存储器备份系统的一个实施例的功能的流程图;图3是表示图1的存储器的示意图,图中示出了响应断电条件而被从易失性存储器存储到非易失性存储器的数据。
图4是表示图1的计算机系统的存储器的示意图,图中示出了多个数据存储设备。
图5是表示断电存储器备份系统的另一个实施例的功能的流程图。
具体实施例方式
如本文将要详细说明的那样,用于在计算机系统上存储数据的系统和方法能潜在地减少备份存储器在将数据从易失性存储器存储到非易失性存储器时所费的时间量。本发明的实施例能潜在地减少在存储器已经被备份后将计算机系统恢复到工作状态所费的时间量。完成备份的方式可以是先识别在易失性存储器中存储的应当要被备份的数据,再将所识别的数据保存到非易失性存储器。通过选择要被保存到非易失性存储器的数据,就可以例如减少响应断电条件而被保存的数据的量。因此,就可以使用存储容量减少的、具有保存时间降低的操作速度和/或降低了成本的非易失性存储器设备。
现在将说明能被用来实现断电存储器备份系统的实施例的示例性计算机系统。如图1中所示,计算机系统100包括处理器102、存储器104和一个或多个通过本机接口108以可通信方式相连接的输入和/或输出(I/O)设备(或外围设备)。存储器104中的软件可包括一个或多个单独的程序,每一个程序均包含按序排列的实现逻辑功能的可执行指令。在图1的例子中,存储器104中的软件包括操作系统(OS)110和断电存储器备份系统的实施例120。
当断电存储器备份系统120是以软件实现的,该系统可以被存储在任何计算机可读介质上,以便被任何与计算机相关的系统或方法使用或者连同任何与计算机相关的系统或方法一道使用。在本文件中,计算机可读介质是能够包含或存储被任何与计算机相关的系统或方法使用或者连同任何与计算机相关的系统或方法一道使用的计算机程序的电、磁、光或其它的物理设备或装置。断电存储器备份系统120可以包括在任何计算机可读介质中,以便被诸如基于计算机的系统、含有处理器的系统之类的指令执行系统、装置或设备或者能从上述指令执行系统、装置或设备中提取指令并执行指令的其它系统使用,或者连同诸如基于计算机的系统、含有处理器的系统等指令执行系统、装置或设备或者能从上述指令执行系统、装置或设备提取指令并执行指令的其它系统一道使用。
在本文件的上下文中,“计算机可读介质”可以是任何这样的装置,它能存储、传输、传播或传送被指令执行系统、装置或设备使用或连同指令执行系统、装置或设备一道使用的程序。计算机可读介质例如可以是但不仅仅限于—电、磁、光、电磁、红外线或半导体的系统、装置、设备或传播介质。计算机可读介质的更具体的例子(非穷举性的)包括具有一个或多个导线的电连接(电子的)、便携式电脑存储盘(磁的)、随机存取存储器(RAM)(电子的)、只读存储器(ROM)(电子的)、可擦式可编程只读存储器(EPPROM、EEPROM或闪存)(电子的)、光纤(光学的)和便携式紧致盘只读存储器(CDROM)(光学的)。
以下结合图2的流程图说明断电存储器备份系统120的功能。如图2中所示,该功能(或方法)可以看作是从框210开始的,其中,识别正在被用来存储数据的易失性存储器的第一部分。在框220中,识别未被用来存储数据的易失性存储器的第二部分。在框230中,在非易失性存储器中保存被易失性存储器的第一部分所保存的数据,而不在非易失性存储器中保存被易失性存储器的第二部分所保存的数据。在一个示例性实施例中,响应数据在其中被保存的计算机系统的断电条件而将数据保存到非易失性存储器。
如上所述,在有些计算机系统中,在进行存储器备份时,一般将整个存储器映像从易失性存储器拷贝到非易失性存储器。通过识别易失性存储器的不是用来存储数据的各部分、然后不向非易失性存储器拷贝这些不用的部分,备份操作就能更快地进行。并且这也能使用较少的存储器。因此,可以使用有较低存储量的存储器存储设备。此外,可以使用较低操作速度的存储器存储设备,因为在备份操作期间被写的数据一般较少。很清楚,一般可以提供具有较低性能和/或较低存储容量的设备,它们与较高性能和/或较高存储容量的设备相比成本较低。
图3是更详细地表示图1的存储器104的示意图。如图3中所示,存储器104包括易失性存储器302和非易失性存储器304。如图4中所示,易失性存储器302和非易失性存储器304每个都包括多个存储器部分,每个部分都可以与一个单独的存储设备相关联。具体来说,易失性存储器302包括硬盘高速缓冲存储器402和易失性RAM设备404。非易失性存储器304包括硬盘406、MRAM存储器存储设备408和非易失性RAM设备410。
当在诸如图1的系统100之类的计算机系统中实现时,断电存储器备份系统能使数据被从一个或多个存储易失性存储器的存储设备保存到一个或多个存储非易失性存储器的存储设备。结合图1的实施例,这包括将存储在易失性RAM设备404中的数据保存到MRAM存储器存储设备408和/或非易失性RAM设备410。
当要把易失性存储器中存储的数据保存到非易失性存储器时,断电存储器备份系统的有些实施例只使用户数据被拷贝到非易性存储器。这样,就不会把通常包括易失性存储器的空闲或不用的部分以及盘高速缓冲存储器在内的整个易失性存储器映像都保存到非易失性存储器。很清楚,可以实现显著地减少要加以存储的数据。
现在将结合图5说明断电存储器备份系统的另一个实施例的功能。如图5中所示,该功能(方法)可以看作是从框502开始的,其中接收一个对应于断电条件的输入。例如,这种输入可以包括对应于用户启动计算机系统的关机过程的信息。
在框504中,存储在易失性存储器中的数据被识别。例如,可以用计算机系统的操作系统来识别哪些数据在使用、哪些数据不在使用。此外,可以用计算机系统的存储管理单元(MMU)来确定存储器的哪些部分被分配且被使用、被分配但不被使用和/或未被分配。也可以用计算机系统的盘高速缓冲存储器来识别数据。这是因为,盘高速缓冲存储器通常处理存储器的大部分,并含有对应于每个存储区的特征例如数据是否是现有数据的拷贝的信息。
在框506中,判断以前被识别的数据是否被计算机系统保存和/或被指定成要被保存在其它地方。例如,如盘高速缓冲存储器的写部分的情况那样,可以判断被识别的数据是在ROM中保存还是要被保存到硬盘。如果在框506中判定数据不被保存或者不被指定要在其它地方保存,处理过程前进到框508。在框508中,所识别的数据被压缩。然后在框510中,所压缩的数据被存储在非易失性存储器中。注意,在有些实施例中,可以将所识别的数据不加压缩就存储在非易失性存储器中。
在框512中,判断易失性存储器中是否还有更多的数据要加以识别。如果还有更多的数据要加以识别,处理过程返回到框504并如上所述那样进行处理。
如果在框506中判定出所识别的数据被保存或被指定要在其它地方保存,过程前进到框514,在此赋予所识别的数据一个优先级。过程再次前进到框512,判断是否还有更多的数据要加以识别。一旦判定不存在还要识别的数据,过程前进到框516。在框516中,判断是否还有非易失性存储器可用于数据存储。如果判定还有非易失性存储器可用,过程前进到框518。在框518中,根据以前赋予的优先级将数据存储在非易失性存储器中。这样,被识别为不被保存或指定要在其它地方保存的数据保存在非易失性存储器中,然后,如果有额外的存储器可用,就可以根据所赋予的优先级在非易失性存储器中存储额外的数据。
优先级的赋予,可以基于一个或多个不同的因素,诸如数据的相对重要性、数据可被存储的位置的相对质量和/或系统体系结构。例如,在基于MMU的系统中,可以根据以下标准来评估RAM数据存储器被使用吗?是盘高速缓冲存储器吗?如果是盘高速缓冲存储器,数据已经在硬盘上被保存了吗?如果不是盘高速缓冲存储器,是系统数据吗?是通过MMU间接使用的应用数据吗?上一次使用上述数据的时间在何时?然后,根据回答,就可以保存或不保存数据。例如,数据可以被丢弃(不保存)、提交到硬盘和/或在非易失性存储器中保存(并且可能被压缩)。
注意,如果要存储数据的非易失性存储器是硬盘驱动器,并且被断电存储器备份系统识别的数据当前被该硬盘驱动器存储,则最好将所识别的数据存储在硬盘驱动器上。然而,如果要存储数据的非易失性存储器是高速闪存,则最好将所识别的数据存储在闪存上。
还应注意到,备份所识别数据的过程不修改存储器的内容。这样,计算机系统就能返回到它在备份过程的启动之前所处的状态。在有些实施例中,备份过程可能会被中断,这也可能将计算机系统返回到它在备份过程的启动之前所处的状态。
为了将计算机系统返回到它在备份过程的启动之前所处的状态,可以将数据在RAM中恢复,再重新启动计算机系统。这类似于例如在笔记本电脑上实现的休眠技术,但是比之更加快捷。此外,使用计算机系统地MMU,可以加载系统的一个精简部分。例如,可以加载在物理的或系统虚拟地址空间中运行的MMU缺省处理器、中断处理器和MMU表,然后再启动系统。这就允许系统以少量的存储器-例如200KB的内存被再启动和使用。然后,可以例如通过使用MMU例外错误而按需地装载数据。
应当强调的是,对上述各实施例可以做出各种改变和修改。例如,在有些实施例中,与流程图的一个或多个块相关联的功能可以不按图示的次序出现。所有这些改变和修改都被认为包括在本说明书的范围内并受后附的权利要求书的保护。
权利要求
1.一种用于在计算机系统(100)上存储数据的方法,该计算机系统具有易失性存储器(302)和非易失性存储器(304),所述方法包含识别所述易失性存储器的、被用来存储数据的第一部分;识别易失性存储器的、未被用来存储数据的第二部分;以及响应与计算机系统的断电条件相对应的输入,在非易失性存储器中保存对应于易失性存储器的第一部分的数据而不在非易失性存储器中保存易失性存储器的第二部分。
2.如权利要求1所述的方法,进一步包含将对应于易失性存储器的第一部分的数据压缩为第一压缩数据;以及其中,保存对应于易失性存储器的第一部分的数据包括在非易失性存储器中保存该第一压缩数据。
3.如权利要求1所述的方法,其中,所述易失性存储器的第一部分不包括盘高速缓冲存储器。
4.如权利要求1所述的方法,其中,在识别步骤之前,对应于易失性存储器的第一部分的数据的一个副本也不被存储在非易失性存储器中。
5.如权利要求4所述的方法,进一步包含识别易失性存储器的、被用来存储数据的第三部分,对应于非易失性存储器的第三部分的数据的一个副本也被存储在非易失性存储器中;以及如果在分配用于保存对应于易失性存储器的第一部分的数据的存储容量后,非易失性存储器中还剩余有额外的存储容量,则额外地在非易失性存储器中保存对应于易失性存储器的第三部分的数据。
6.如权利要求4所述的方法,进一步包含识别易失性存储器的、被用来存储数据的第三部分,对应于易失性存储器的第三部分的数据也处于下列情况的至少之一a)被存储在非易失性存储器中;以及b)盘高速缓冲存储器(402);给下列数据之一赋予优先权a)对应于易失性存储器的第二部分的数据;以及b)对应于易失性存储器的第三部分的、要存储到非易失性存储器中的数据;以及如果在分配用于保存对应于易失性存储器的第一部分的数据的存储容量后,非易失性存储器中还剩余有额外的存储容量,则根据所赋予的优先权额外地在非易失性存储器中保存对应于易失性存储器的第二部分的数据和对应于易失性存储器的第三部分的数据的至少之一。
7.一种计算机系统(100),包含易失性存储器(302);非易失性存储器(304);以及断电存储器备份系统(120),可操作来识别易失性存储器的、被用来存储数据的第一部分;识别易失性存储器的、未被用来存储数据的第二部分;以及响应与计算机系统的断电条件相对应的输入,在非易失性存储器中保存对应于易失性存储器的第一部分的数据而不在非易失性存储器中保存易失性存储器的第二部分。
8.如权利要求7所述的计算机系统,其中,所述断电存储器备份系统进一步可操作来识别易失性存储器的、被用来存储数据的第三部分,对应于易失性存储器的第三部分的数据的一个副本也被存储在非易失性存储器中;以及如果在分配用于保存对应于易失性存储器的第一部分的数据的存储容量后,非易失性存储器还剩余额外的存储容量,则额外地在非易失性存储器中保存对应于易失性存储器的第三部分的数据。
9.如权利要求8所述的计算机系统,其中非易失性存储器包含硬盘驱动器(406);对应于易失性存储器的第三部分的数据的副本被保存在硬盘驱动器上;以及额外地在非易失性存储器中保存对应于易失性存储器的第三部分的数据时,断电存储器备份系统还可操作来把将对应于易失性存储器的第三部分的数据保存到硬盘驱动器。
10.如权利要求8所述的计算机系统,其中非易失性存储器包括硬盘驱动器和闪存;对应于易失性存储器的第三部分的数据的副本被保存在硬盘驱动器上;以及额外地在非易失性存储器中保存对应于易失性存储器的第三部分的数据时,断电存储器备份系统可操作来把对应于易失性存储器的第三部分的数据保存到闪存。
全文摘要
提供一种用于在计算机系统上存储数据的方法。方法的一个实施例包含识别计算机系统(100)的易失性存储器(302)的、被用来存储数据的第一部分;识别易失性存储器的、未被用来存储数据的第二部分;响应与计算机系统的断电条件相对应的输入,在非易失性存储器(304)中保存对应于易失性存储器的第一部分的数据而不在非易失性存储器中易失性存储器的第二部分。还提供这样一种系统。
文档编号G06F12/00GK1584848SQ200410044759
公开日2005年2月23日 申请日期2004年5月18日 优先权日2003年8月18日
发明者C·德布雷比森 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1