CN100412824C - 多级虚拟存储器页面调度方法及系统 - Google Patents

多级虚拟存储器页面调度方法及系统 Download PDF

Info

Publication number
CN100412824C
CN100412824C CNB2006101429378A CN200610142937A CN100412824C CN 100412824 C CN100412824 C CN 100412824C CN B2006101429378 A CNB2006101429378 A CN B2006101429378A CN 200610142937 A CN200610142937 A CN 200610142937A CN 100412824 C CN100412824 C CN 100412824C
Authority
CN
China
Prior art keywords
page
reservoir
data
paging
main
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
CNB2006101429378A
Other languages
English (en)
Other versions
CN1963790A (zh
Inventor
斯蒂芬·A.·埃文奇克
路易斯·维特兹曼
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1963790A publication Critical patent/CN1963790A/zh
Application granted granted Critical
Publication of CN100412824C publication Critical patent/CN100412824C/zh
Active 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
    • 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
    • G06F12/12Replacement control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种计算机实现的用于页面调度数据的层次方法,当从计算机系统的主存储器驱逐数据页面时,将页面驱逐到第一页面调度贮存器(优选地是NVRAM)。当从第一页面调度贮存器驱逐数据页面时,将页面驱逐到第二页面调度贮存器(例如磁盘)。当主贮存器需要不在主贮存器中的数据页面且当该数据页面在第一页面调度贮存器中可以获得时,从第一页面调度贮存器将第三数据页面加载到主贮存器中。当该数据页面在第一页面调度贮存器中不可以获得时,从第二贮存器将第三数据页面加载到主贮存器中。可选地,主贮存器的页面在断电、上电事件序列中保存并从NVRAM恢复。

Description

多级虚拟存储器页面调度方法及系统
技术领域
本发明涉及计算机虚拟存储领域,更具体而言,涉及管理存储层次之间数据页面的移动。
背景技术
包括与常常称为“主存储器”或“主贮存器”的主要存储器通信的一个或多个处理器的计算机系统执行程序并管理驻留在主贮存器中的数据。计算机系统通过提供其中称为虚拟贮存器“页面”的数据容器备份到硬盘驱动器上“页面文件”中的虚拟贮存器来补偿少量的主贮存器。为了使处理器可以使用虚拟贮存器,虚拟贮存器的当前页面被处理器可以访问的主贮存器页面备份。当主存储器满时,页面被推出主存储器,而且如果有修改,则保存在次级存储系统中,以便当以后需要时检索。如果页面没有修改,则只有对该页面的引用被更新,以便反映它位于次级贮存器上。这种处理称为“页面交换”,而且如果很频繁,则会发生严重的性能降级。当操作系统或应用程序请求不驻留在处理器的主存储器(主贮存器)中的页面时,发生“页面错误”。对这种问题的典型解决方案包括更好更先进的存储器管理算法及更简单地增加处理器可用的主存储器量。
从硬盘页面文件提供页面降低系统性能,尤其是对于能量保存很重要的移动设备。具有硬盘驱动器的当前移动设备主要使用传统的虚拟存储器系统。本说明书中的磁盘驱动器将用于指包括但不限于机械操作磁性存储设备(磁盘、磁带)、CD、DVD等的多种永久存储设备。移动设备通过关掉系统不需要的组件来保存能量。在长时间的磁盘休止状态中,硬盘驱动器可以断电,以便延长断开操作并保存电池能量。如果当驱动器断电时发生页面错误,则在旧页面“出页面”到驱动器的同时或者在新页面从驱动器加载的同时,除了增加的功耗,还发生显著的延迟。因为在搜索要加载的页面时有显著的机械延迟,所以即使当通电时机械永久贮存器也很慢。如果页面频繁地进行页面调度,则等待机械磁盘上电或仅仅搜索页面的性能效果更能被敏锐地感觉到。
在此引入作为参考的于2002年9月30日提交的美国专利号6,438,668:“Method and apparatus for reducing power consumption ina digital processing system”讨论了用于控制数字处理系统中功耗的方法与装置。在本发明的一方面,示例方法包括使用数字处理系统(DPS)的非易失存储器作为DPS易失随机存取存储器(RAM)的虚拟存储器、确定降低的功耗状态的选择、响应该选择并通过虚拟存储器处理而将数据从易失RAM存储到非易失RAM,及在存储后降低数据处理系统的至少一个元件的功率,其中所述存储包括通过确定先前存储在作为虚拟存储器的非易失存储器中的第一数据在选择后是否有效(不脏)来确定是否将数据存储到非易失存储器。
在此引入作为参考的于1994年12月14日提交的美国专利号5,778,443“Method and apparatus for conserving power and systemresources in a computer system employing a virtual memory”公开了具有易失随机存取存储器(“RAM”)和非易失辅助存储器的计算机系统,那一些虚拟存储器页面驻留在RAM中而其它页面驻留在辅助存储器页面调度空间中的虚拟存储器操作系统。计算机的时变运行状态是参考存储器的内容定义的。辅助存储器中的空间(“休止空间”)为存储RAM的一部分作为休止图像而分配。第一组驻留在RAM的虚拟存储器页面存储在页面调度空间中。第二组驻留在RAM的虚拟存储器页面存储在休止空间中。当系统处于特定的运行状态而计算机系统断电时,进入休止状态。在特定的运行状态计算机系统恢复运行,这包括打开计算机系统的电源并将第二组页面读进RAM。
在此引入作为参考的于1996年6月12日提交的美国专利号5,732,238“Non-volatile cache for providing data integrity in operationwith a volatile demand paging cache in a data storage system”公开了连接到总线的非易失高速缓冲存储器机制,总线的连接是为了将来自主计算机的写地址和数据引导到大容量存储设备和易失高速缓冲存储器,其中每个写操作都包括写地址和至少一个数据字。非易失高速缓冲存储器机制包括由多个子存储器构成的非易失存储器,这多个子存储器具有用于存储数据字的重叠的读/写循环;与将数据字接收到易失高速缓冲存储器中并行地,响应写操作而将数据字写到非易失存储器中的高速缓冲存储器控制;及用于存储将总线上写操作的写地址与非易失存储器中数据字的相应存储地址关联的索引条目的高速缓冲存储器索引。高速缓冲存储器控制响应写操作以便读取索引条目以便识别并选择非易失存储器中至少一个可用存储地址、生成将当前写操作的写地址和非易失存储器中所选存储地址关联的至少一个索引条目及将数据字写到非易失存储器中。高速缓冲存储器控制响应易失高速缓冲存储器的刷新地址,用于索引高速缓冲存储器索引以便识别对应于该刷新地址的高速缓冲存储器条目并使对应的高速缓冲存储器条目失效。
在此引入作为参考的于1992年11月9日提交的美国专利号5,390,334“Workstation power management by page placementcontrol”公开了用于管理计算机存储器的功率保存方法与装置。第一存储体包括普通的RAM。第二存储体包括低功率RAM。更频繁使用的虚拟页面映射到第一存储体,而次频繁使用的虚拟页面映射到第二存储体。通过当第二存储体不被参考时从用于第二存储体的存储器控制器的驱动电路除去功率,实现了进一步的功率节约。
由于永久贮存器与系统主存储器之间,特别是在移动设备中,传统的数据页面调度造成的性能降级不利地影响计算机系统的使用。需要一种方法来提高页面调度的性能。
发明内容
根据本发明,利用中间的、非易失随机存取存储器(NVRAM)备份页面文件作为用于保持从主存储器驱逐的页面的贮存器提供了虚拟存储器系统中的附加步骤。NVRAM备份页面文件是以包括目录和页面存储区域的简单格式构成的。目录用于记录页面存储在NVRAM页面存储区域的什么地方。在访问或存储NVRAM页面文件中的页面之前,必须参考目录来定位所请求的页面或者定位存储页面的可用空间。当页面必须交换出主存储器时,它被放置到NVRAM页面文件中,该文件比位于例如硬盘驱动器的永久贮存器中的页面文件快得多。如果NVRAM页面文件已满,则页面从NVRAM页面文件推到支持从主存储器最近替换出的页面的硬盘备份页面文件中。如果页面不在主存储器中,则系统首先搜索NVRAM页面文件,然后搜索硬盘页面文件。从NVRAM中提供页面比从硬盘页面文件中提供要快而且需要较少的功率,尤其是对于功率保存很重要的移动设备。具有硬盘驱动器的当前移动设备主要使用传统虚拟存储器系统。移动设备通过关掉系统不需要的组件来保存能量。在长时间的磁盘休止状态中,硬盘驱动器可以断电,以便延长断开操作。如果当驱动器断电时需要位于硬盘备份页面文件中的页面,则除了增加的功耗,在页面从驱动器加载的同时还会发生显著的延迟。虚拟存储器的NVRAM方法对于移动设备的长断开操作及其响应是非常有益的。
因此,本发明的一个目的是确定要从计算机系统的主贮存器中驱逐第一数据页面,其中当从主贮存器驱逐第一数据页面时将驱逐出的第一页面存储在第一页面调度贮存器中,而当从第一页面调度贮存器驱逐第二数据页面时将驱逐出的第二页面存储在第二贮存器中,当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中可以获得时从第一页面调度贮存器将第三数据页面加载到主贮存器中,而当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中不可以获得时从第二贮存器将第三数据页面加载到主贮存器中。
本发明的另一目的是提供包括非易失随机存取存储器(NVRAM)、易失随机存取存储器或永久贮存器中任何一种的第一页面调度贮存器或第二贮存器中的任何一种,其中永久贮存器包括硬盘、CD、DVD或磁带中的任何一种。
本发明还有一个目的是提供作为非易失随机存取存储器(NVRAM)的第一页面调度贮存器和作为永久贮存器的第二贮存器,其中永久贮存器是包括硬盘、CD、DVD或磁带中任何一种的机械致动存储设备。
本发明还有一个目的是确定第一页面调度贮存器中的第二数据页面要从第一页面调度贮存器驱逐,以便在第一页面调度贮存器中为要从主贮存器驱逐的第一数据页面腾出空间。
本发明还有一个目的是当从主贮存器驱逐第四数据页面时,确定第四数据页面应当驱逐到第二贮存器,然后在第二贮存器中存储第四数据页面。
本发明还有一个目的是当确定第一数据页面要从计算机系统的主贮存器驱逐时,或者确定丢弃该驱逐的第一数据页面、或者确定将该驱逐的第一数据页面存储到第一页面调度贮存器中,或者确定将该驱逐的第一数据页面存储到第二贮存器中。
本发明还有一个目的是当确定第一数据页面要从计算机系统的主贮存器驱逐时,或者确定丢弃驱逐的第二数据页面,或者确定将驱逐的第二数据页面存储到第二贮存器中。
本发明还有一个目的是当确定第一数据页面要从计算机系统的主贮存器驱逐时,确定该第一页面从其从第二贮存器加载开始是否修改过,当确定该第一页面被修改过时,确定丢弃驱逐出的第二数据页面,而当确定该第一页面未被修改过时,确定将驱逐出的第二数据页面存储到第二贮存器中。
本发明还有一个目的是当确定第一数据页面要从计算机系统的主贮存器驱逐时,根据最早(least recently)使用算法(LRU)、先进先出算法(FIFO)或散列算法中的任何一种确定从第一页面调度贮存器驱逐第二页面。
本发明还有一个目的是当检测到断电事件时,从主贮存器驱逐多个数据页面到NVRAM第一页面调度贮存器,当这多个数据页面已经被驱逐时,开始断电,其中第一页面调度贮存器是NVRAM。
本发明还有一个目的是当检测到上电事件时,从第一页面调度贮存器加载多个数据页面到主贮存器,而且当这多个数据页面已经加载后,完成上电事件。
其它特征与优点是通过本发明的技术实现的。本发明的其它实施方式与方面在此具体描述并被看作是要求保护的本发明的一部分。为了更好地理解本发明的优点与特征,参考描述和附图。
附图说明
被看作本发明的主题在本说明书结属处的权利要求中特别指出并清楚地要求保护。联系附图,本发明的以上及其它目的、特征与优点将从以下具体描述中显而易见,其中:
图1是描述现有技术计算机系统的组件的图;
图2是描述现有技术计算机系统的网络的图;
图3A和3B是描述页面遵循的概念性数据路径的图;
图4是描述页面遵循的物理数据路径的图;
图5是描述页面错误处理的图;
图6是描述从非易失存储器读页面的处理的图;及
图7是描述从硬盘驱动器读页面的处理的图;
参考附图,具体描述作为例子解释本发明的优选实施方式、优点与特征。
具体实施方式
图1说明了其中本发明可以实践的代表性工作站或服务器硬件系统。图1的系统100包括包括可选外围设备的代表性计算机系统101,如个人计算机、工作站或服务器。工作站101包括一个或多个处理器106及用于根据已知技术连接并启用处理器106和系统101的其它组件之间通信的总线。总线将处理器106连接到存储器105和可以包括例如硬盘驱动器、磁盘驱动器或磁带驱动器的长期存储器107。系统101还可以包括通过总线将微处理器106连接到如键盘104、鼠标103、打印机/扫描仪110和/或其它接口设备的一个或多个接口设备的用户接口适配器,其中其它接口设备可以是任何用户接口设备,如触摸屏、数字输入板等。总线还通过显示适配器将例如LCD屏幕或监视器的显示设备102连接到微处理器106。
系统101可以通过能够与网络109通信的网络适配器与其它计算机或计算机网络通信。例子网络适配器是通信通道、令牌环、以太网或调制解调器。可选地,工作站101可以利用例如CDPD(蜂窝数字包数据)卡的无线接口通信。工作站101可以与局域网(LAN)或广域网(WAN)中的这种其它计算机相连,或者工作站101可以是具有其它计算机等的客户/服务器布置中的客户端。所有这些配置及适当的通信硬件与软件在本领域中都是已知的。
图2说明了其中本发明可以实践的数据处理网络200。数据处理网络200可以包括多个独立的网络,如无线网络和有线网络,每个网络都可以包括多个独立的工作站101。可选地,如本领域技术人员应当理解的,可以包括一个或多个LAN,其中LAN可以包括耦合到主处理器的多个智能工作站。
还是参考图2,网络还可以包括大型计算机或服务器,如网关计算机(客户服务器206)或应用服务器(可以访问数据仓库的远端服务器208)。网关计算机206充当进入每个网络207的进入点。当连接一种联网协议与另一种联网协议时需要网关。网关206优选地可以通过通信链路耦合到其它网络(例如,因特网207)。网关206还可以利用通信链路直接耦合到一个或多个工作站101。网关计算机可以利用可以从IBM公司获得的IBM eServer eSeries
Figure C20061014293700131
900服务器实现。
本发明的软件编程代码优选地通过互连的网络或通过例如CD或磁带的便携式介质部署到服务器和客户端。网络包括有线(包括光纤光缆)或无线网络。服务器优选地将代码部署到其它服务器或直接部署到客户端。
体现本发明的软件编程代码典型地由系统101的处理器106从例如CD-ROM驱动器或硬盘驱动器的长期存储介质107访问。软件编程代码可以体现在与数据处理系统一起使用的多种已知介质的任何一种上,如磁盘、硬盘驱动器或CD-ROM。代码可以分发到这种介质上,或者可以通过网络从一个计算机系统的存储器或贮存器分发到由这种其它系统的用户所使用的其它计算机系统。
可选地,编程代码111可以体现在存储器105中,并且由处理器106利用处理器总线访问。这种编程代码包括控制各种计算机组件及一个或多个应用程序的功能与互连的操作系统。程序代码通常从密集存储介质107页面调度到高速存储器105,在那里它可以由处理器106用于处理。用于在存储器中、在物理介质上体现软件编程代码和/或通过网络分发软件代码的技术与方法是众所周知的,在此将不进一步讨论。
在以下对本发明的具体描述中,为了提供对本发明的透彻理解,阐述了多个特定的细节。但是,对本领域技术人员来说,很显然本发明没有这些特定的细节也可以实现。在其它情况下,为了不无谓地模糊本发明的方面,众所周知的方法、过程、组件及电路没有具体描述。
以下具体描述的有些部分是关于计算机存储器中过程、逻辑块、处理及数据位操作的其它符号表示给出的。这些描述与表示是数据处理领域技术人员用于最有效地将其工作内容传递给本领域其他技术人员的方式。过程、逻辑块、处理、步骤等在此并且通常都被看作是导致期望结果的步骤或指令序列。步骤是需要对物理量进行物理管理的步骤。尽管不是必需的,但通常这些量采取能够在计算机系统中被存储、传输、组合、比较及以其它方式被管理的电或磁信号的形式。主要是为了共同的使用,已经证明有时候称这些信号为位、值、元素、符号、字符、项、编号等是方便的。
但是,应当记住所有这些及类似的项与合适的物理量关联,而且仅仅是适于这些量的方便的标号。除非以与以下讨论显而易见的不同的方式特定指出,应当理解,贯穿本发明,利用如“处理”或“计算”或“计算”或“确定”或“显示”等的术语的讨论指计算机系统或类似电子计算设备的动作与处理,其中电子计算设备管理并将计算机系统注册表和存储器中表示为物理(电子)量的数据转换成计算机系统存储器或注册表或其它这种信息存储、发送或显示设备中类似地表示为物理量的其它数据。
图3说明了根据本发明的页面替换策略的例子实施方式。包括处理器、主存储器、NVRAM和永久贮存器(磁盘驱动器)的设备结合了存储器层次。处理器对主存储器中的数据执行程序指令和操作。处理器操作系统(OS)管理虚拟地址并方便主存储器与NVRAM和永久贮存器之间的虚拟存储器页面调度。优选地,从主存储器驱逐出的页面调度到NVRAM。当设备操作时,驱逐页面的流是通过驱逐处理305从主存储器301到非易失存储器302,然后优选地是通过驱逐处理器306从非易失存储器到硬盘303。如果缺少的页面位于非易失存储器302中,则页面从非易失存储器302恢复308到主存储器301。如果缺少的页面不位于非易失存储器但位于硬盘303中,则页面直接从硬盘303恢复307到主存储器301。
图3B提供了用于从主存储器301直接驱逐页面311到硬盘303的可选路径。在实施方式中,地址翻译机制312访问保留包括关键字(K)字段315和主贮存器301中虚拟存储器页面(如果驻留的话)地址的条目314的页面目录313。K字段包括修改字段M和有效字段V。有效字段指示条目314是否指向驻留在存储器301中的页面311。M字段指示存储器301中的页面311在驻留在存储器中的时候是否被修改。
页表316包括关于页面位置的信息。页表316中的条目317优选地包括指示页面是否在主贮存器中的“S”字段和指示页面是否在NVRAM中的“N”字段及指示页面是否在硬盘上的“D”字段。在实施方式中,每个字段(“S”、“N”、“D”)可选地包括相关贮存器的页面是否被修改的指示符,可选地有指示页面被修改的单个修改指示符“M”。优选地,条目317包括指示条目317内容有效的有效位“V”。优选地,页表316包括用于在NVRAM中定位页面的地址目录,而页表316本身优选地驻留在NVRAM 305中。条目317优选地提供用于在NVRAM中定位对应页面的虚拟地址“VA”和实际地址“RA”。
图4说明了关于计算机系统组件之间物理连接的页面替换策略。当处理器运行时,数据加载到存储在主存储器405中的页面中,直到主存储器中有足够的数据来操作。在某个时间,需要不在主存储器中的新页面。选择主存储器405中的一个页面驱逐并沿传统的页面驱逐路径408,到存储器控制器402,到附加驱逐路径409,发送到非易失存储体406。如果非易失存储体406已满,则从非易失存储体406选择页面驱逐到硬盘404,并通过驱逐路径409发送到磁盘控制器403,在那里它存储到硬盘404中。驱逐出的页面存储在非易失存储器中腾出的位置。从硬盘404恢复页面将页面传输到硬盘控制器403、到存储器控制器402,最后到达主存储器405。从非易失存储体406恢复页面将页面传输409到存储器控制器402,最后到主存储器405。
图5说明了总体的页面替换策略。开始500和结束507步骤是方便的项目,而不关于本发明的物理组件。通过访问页表确定页面位于什么地方,页面处理开始501。然后,系统确定页面是否在主存储器中502。如果是,则处理器生成页面的物理存储器地址503,处理结束507。如果不是,则系统确定页面是否在非易失存储器(NVRAM)中504。如果是,则页面从NVRAM中读出,并利用图6所说明的处理放置到主存储器中505。然后,页表再次读出501,系统确定页面是否在主存储器中502。在这个时候,保证在主存储器中找到页面,因此处理器生成页面的物理地址503,处理结束507。如果不是,则页面从硬盘驱动器读出并放置到主存储器中506。然后,页表再次读出501,系统确定页面是否在存储器中。在这个时候,保证在主存储器中找到页面,因此处理器生成页面的物理地址503,处理结束507。
图6说明了从非易失存储器(NVRAM)将页面读到主存储器中所采取的步骤。开始600和结束608步骤是方便的项目,而不关于本发明的物理组件。当操作系统指示NVRAM从页面文件读取所请求的页面时,页面替换处理开始601。然后,在其放置到主存储器中被系统使用之前,页面从NVRAM读到主存储器中的临时位置602。接下来,操作系统确定主存储器是否已满603。如果不是,则新读出的页面从主存储器中的临时存储器位置传输到永久位置604,处理结束608。如果是,则操作系统确定NVRAM是否已满605。如果不是,则利用预定义的标准(FIFO、LRU等)从主存储器选择页面并将其拷贝到NVRAM 606。然后,在601中从NVRAM读出的页面从主存储器中的临时位置传输到主存储器中的永久位置604,处理结束608。如果是,则利用预定义的标准从NVRAM选择页面并拷贝到硬盘607。然后,利用预定义的标准从主存储器选择页面并拷贝到NVRAM 606。最后,在601中从NVRAM读出的页面从主存储器中的临时位置传输到主存储器中的永久位置604,处理结束608。
图7说明了从硬盘驱动器将页面读到主存储器中所采取的步骤。开始700和结束708步骤是方便的项目,而不关于本发明的物理组件。当操作系统指示硬盘从页面文件读取所请求的页面时,页面替换处理开始701。然后,在其放置到主存储器中被系统使用之前,页面从硬盘读到主存储器中的临时位置702。接下来,操作系统确定主存储器是否已满703。如果不是,则新读出的页面从主存储器中的临时存储器位置传输到永久位置704,处理结束708。如果是,则操作系统确定NVRAM是否已满705。如果不是,则利用某种预定义的标准从主存储器选择页面并将其拷贝到非易失存储器(NVRAM)706。然后,在701从硬盘读出的页面从主存储器中的临时位置传输到主存储器中的永久位置704,处理结束708。如果是,则利用某种预定义的标准从NVRAM选择页面并拷贝到硬盘707。然后,利用某种预定义的标准从主存储器选择页面并拷贝到NVRAM 706。最后,在701中从硬盘读出的页面从主存储器中的临时位置传输到主存储器中的永久位置704,处理结束708。
对虚拟存储器系统公用的重要优化是在主存储器与页面文件之间的页面传输过程中进行的。如果页面未标记为“修改”,则只有跟踪页面物理位置的目录必须更新,以便反映其从主存储器移动到页面文件中。在本发明的环境下,当页面从主存储器驱逐到NVRAM时,或者从NVRAM驱逐到硬盘时,首先检查修改.如果页面未修改且先前已经存储在NVRAM页面文件或硬盘页面文件中,则只有页面位置必须在页表中更新。如果页面实际上已经修改,则页面必须拷贝到目的地页面文件NVRAM或硬盘,且其页表中的位置必须更新。美国专利5,778,443“Method and apparatus for conserving power and systemresources in a computer system employing a virtual memory”讨论了本领域中众所周知的用于管理修改的页面的例子方法。
除了当系统必须从主存储器对数据进行页面调度时提高的性能,本发明还具有其它好处。首先,在移动设备中,不是总有可能增加设备主存储器的总量。增加主存储器的容量还会增加操作设备所需的功率量,降低关于电池功率期望的使用时间。非易失存储器只有在读或写操作中被访问时才使用功率。附加功率的另一后果是更多的热量必须通过设备从存储器芯片散发,使得以其原始形式因子包装不实际或不可能。高密度包装的叶片计算机系统也可以得益于本发明。在叶片计算机系统中,功率和散热也是考虑的重点。就象在移动设备中,附加的主存储器需要连续的功率并散发比具有小主存储器的系统更多的热量。增加用于页面调度的非易失存储体允许这种类型的系统实现性能提高,而不受热量和功率的约束。
另一好处是具有非易失存储器的叶片计算机系统允许最近使用的数据保持在靠近需要它的地方。在叶片计算机系统中,硬盘常常跨共享介质定位,或者是数据总线或者是网络连接。如果叶片计算机系统使用硬盘太频繁地存储丢弃的页面,则整个系统将遭受共享介质的过度使用。最后,因为主存储器必须非常快,所以主存储器通常比非易失存储器更昂贵。因为页面调度固有地是很慢的操作,因此使用较慢、较不昂贵的非易失存储器代替添加更多主存储器或使用更慢的硬盘页面调度机制是有利的。
在可选实现中,NVRAM是可插拔的,而且可以作为可选的便携式介质提供。
在此所描述的流程图仅仅是例子。在不背离本发明主旨的情况下,可以对在此描述的这些图或步骤(或操作)进行许多变化。例如,步骤可以不同的次序执行,或者可以添加、删除或修改步骤。所有这些变化都被看作是要求保护的本发明的一部分。
尽管本发明的优选实施方式已经在此进行了说明和描述,但应当理解本发明不限于在此所公开的精确结构,而且权利对属于所附权利要求中所定义的本发明范围内的所有变化和修改“保留”。

Claims (20)

1. 一种用于页面调度数据的计算机实现的方法,该方法包括步骤:
确定第一数据页面要从计算机系统的主贮存器驱逐;
当从主贮存器驱逐第一数据页面时,在第一页面调度贮存器中存储驱逐出的第一页面;
当从第一页面调度贮存器驱逐第二数据页面时,在第二贮存器中存储驱逐出的第二页面;
当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中可以获得时,从第一页面调度贮存器将第三数据页面加载到主贮存器中;及
当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中不可以获得时,从第二贮存器将第三数据页面加载到主贮存器中。
2. 如权利要求1所述的方法,其中第一页面调度贮存器或第二贮存器中的任何一个是包括非易失随机存取存储器、易失随机存取存储器或永久贮存器中任何一种的贮存器,其中永久贮存器包括硬盘、CD、DVD或磁带中的任何一种。
3. 如权利要求1所述的方法,其中第一页面调度贮存器是非易失随机存取存储器,而第二贮存器是永久贮存器,其中永久贮存器是包括硬盘、CD、DVD或磁带中任何一种的机械致动的存储设备。
4. 如权利要求1所述的方法,包括确定第一页面调度贮存器中第二数据页面要从第一页面调度贮存器驱逐以便在第一页面调度贮存器中为从主贮存器驱逐的第一数据页面腾出空间的另一步骤。
5. 如权利要求1所述的方法,还包括步骤:
当从主贮存器驱逐第四数据页面时,确定第四数据页面应当驱逐到第二贮存器;及
将第四数据页面存储在第二贮存器中。
6. 如权利要求1所述的方法,其中第一页面调度贮存器是非易失随机存取存储器,该方法还包括以下步骤:
当检测到断电事件时,将多个数据页面从主贮存器驱逐到作为非易失随机存取存储器的第一页面调度贮存器;及
当所述多个数据页面已经被驱逐时,结束断电事件。
7. 如权利要求6所述的方法,还包括步骤:
当检测到上电事件时,将多个数据页面从作为非易失随机存取存储器的第一页面调度贮存器加载到主贮存器中;及
当所述多个数据页面已经加载时,结束上电事件。
8. 一种用于页面调度数据的计算机实现的方法,该方法包括步骤:
确定第一数据页面要从计算机系统的主贮存器驱逐,并执行以下操作之一:确定丢弃驱逐出的第一数据页面,确定将驱逐出的第一数据页面存储到第一页面调度贮存器中,或确定将驱逐出的第一数据页面存储到第二贮存器中;
当确定将驱逐出的第一数据页面存储到第一页面调度贮存器中从主贮存器驱逐第一数据页面时,在第一页面调度贮存器中存储驱逐出的第一页面;
当确定将驱逐出的第一数据页面存储到第二贮存器中时,在第二贮存器中存储驱逐出的第一页面;
确定第二数据页面要从第一页面调度贮存器驱逐,并执行以下操作之一:确定丢弃驱逐出的第二数据页面,或确定将驱逐出的第二数据页面存储到第二贮存器中;当从第一页面调度贮存器驱逐第二数据页面时,在第二贮存器中存储驱逐出的第二页面;
当确定将驱逐出的第二数据页面存储到第二贮存器中时,在第二贮存器中存储驱逐出的第二页面;
当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中可以获得时,从第一页面调度贮存器将第三数据页面加载到主贮存器中;及
当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中不可以获得时,从第二贮存器将第三数据页面加载到主贮存器中。
9. 如权利要求8所述的方法,其中确定第一数据页面要从计算机系统的主贮存器驱逐的步骤还包括:
确定第一页面自其从第二贮存器加载开始是否已经被修改;
当确定第一页面被修改时,确定丢弃驱逐出的第二数据页面;而
当确定第一页面未被修改时,确定将驱逐出的第二数据页面存储到第二贮存器中。
10. 如权利要求8所述的方法,其中确定第二数据页面要从第一页面调度贮存器驱逐的步骤包括根据最早使用算法、先进先出算法或散列算法中的任何一种确定从第一页面调度贮存器驱逐第二页面的另一步骤。
11. 一种用于页面调度数据的系统,该系统包括:
确定装置,用于确定第一数据页面要从计算机系统的主贮存器驱逐;
存储控制装置,用于当从主贮存器驱逐由确定装置确定的第一数据页面时,在第一页面调度贮存器中存储驱逐出的第一页面;并且当从第一页面调度贮存器驱逐第二数据页面时,在第二贮存器中存储驱逐出的第二页面;以及
加载装置,用于当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中可以获得时,从第一页面调度贮存器将第三数据页面加载到主贮存器中;而当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中不可以获得时,从第二贮存器将第三数据页面加载到主贮存器中。
12. 如权利要求11所述的系统,其中第一页面调度贮存器或第二贮存器中的任何一个是包括非易失随机存取存储器、易失随机存取存储器或永久贮存器中任何一种的贮存器,其中永久贮存器包括硬盘、CD、DVD或磁带中的任何一种。
13. 如权利要求11所述的系统,其中第一页面调度贮存器是非易失随机存取存储器,而第二贮存器是永久贮存器,其中永久贮存器是包括硬盘、CD、DVD或磁带中任何一种的机械致动的存储设备。
14. 如权利要求11所述的系统,所述确定装置还执行以下操作:确定第一页面调度贮存器中第二数据页面要从第一页面调度贮存器驱逐以便在第一页面调度贮存器中为从主贮存器驱逐的第一数据页面腾出空间。
15. 如权利要求11所述的系统,所述存储控制装置还执行以下操作:
当从主贮存器驱逐第四数据页面时,确定第四数据页面应当驱逐到第二贮存器;及
将第四数据页面存储在第二贮存器中。
16. 如权利要求11所述的系统,其中第一页面调度贮存器是非易失随机存取存储器,所述存储控制装置还执行以下操作:
当检测到断电事件时,将多个数据页面从主贮存器驱逐到作为非易失随机存取存储器的第一页面调度贮存器;及
当所述多个数据页面已经被驱逐时,完成断电事件。
17. 如权利要求16所述的系统,所述加载装置还执行以下操作:
当检测到上电事件时,将多个数据页面从作为非易失随机存取存储器的第一页面调度贮存器加载到主贮存器中;及
当所述多个数据页面已经加载时,结束上电事件。
18. 一种用于页面调度数据的系统,该系统包括:
第一确定装置,用于确定第一数据页面要从计算机系统的主贮存器驱逐,并执行以下操作之一:确定丢弃驱逐出的第一数据页面,确定将驱逐出的第一数据页面存储到第一页面调度贮存器中,或确定将驱逐出的第一数据页面存储到第二贮存器中;
第一存储控制装置,用于当确定将驱逐出的第一数据页面存储到第一页面调度贮存器中从主贮存器驱逐第一数据页面时,在第一页面调度贮存器中存储驱逐出的第一页面;并且当确定将驱逐出的第一数据页面存储到第二贮存器中时,在第二贮存器中存储驱逐出的第一页面;
第二确定装置,用于确定第二数据页面要从第一页面调度贮存器驱逐,并执行以下操作之一:确定丢弃驱逐出的第二数据页面,或确定将驱逐出的第二数据页面存储到第二贮存器中;当从第一页面调度贮存器驱逐第二数据页面时,在第二贮存器中存储驱逐出的第二页面;
第二存储控制装置,用于当确定将驱逐出的第二数据页面存储到第二贮存器中时,在第二贮存器中存储驱逐出的第二页面;以及
加载装置,用于当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中可以获得时,从第一页面调度贮存器将第三数据页面加载到主贮存器中;而当主贮存器需要不在主贮存器中的第三数据页面且当第三数据页面在第一页面调度贮存器中不可以获得时,从第二贮存器将第三数据页面加载到主贮存器中。
19. 如权利要求18所述的系统,其中所述第一确定装置还执行以下操作:
确定第一页面自其从第二贮存器加载开始是否已经被修改;
当确定第一页面被修改时,确定丢弃驱逐出的第二数据页面;而
当确定第一页面未被修改时,确定将驱逐出的第二数据页面存储到第二贮存器中。
20. 如权利要求18所述的方法,其中第二确定装置还根据最早使用算法、先进先出算法或散列算法中的任何一种确定从第一页面调度贮存器驱逐第二页面。
CNB2006101429378A 2005-11-07 2006-10-31 多级虚拟存储器页面调度方法及系统 Active CN100412824C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/268,075 US7543123B2 (en) 2005-11-07 2005-11-07 Multistage virtual memory paging system
US11/268,075 2005-11-07

Publications (2)

Publication Number Publication Date
CN1963790A CN1963790A (zh) 2007-05-16
CN100412824C true CN100412824C (zh) 2008-08-20

Family

ID=38005154

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101429378A Active CN100412824C (zh) 2005-11-07 2006-10-31 多级虚拟存储器页面调度方法及系统

Country Status (4)

Country Link
US (2) US7543123B2 (zh)
KR (1) KR100810013B1 (zh)
CN (1) CN100412824C (zh)
TW (1) TW200741455A (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
WO2009048707A1 (en) * 2007-10-12 2009-04-16 Rambus Inc. Managing flash memory in computer systems
US7962684B2 (en) * 2008-02-14 2011-06-14 Sandisk Corporation Overlay management in a flash memory storage device
US7979638B2 (en) * 2008-04-01 2011-07-12 Oracle America, Inc. Method and system for accessing data using an asymmetric cache device
US8825700B2 (en) * 2008-05-26 2014-09-02 Microsoft Corporation Paging hierarchical data
GB2460464A (en) * 2008-05-30 2009-12-02 Symbian Software Ltd Memory paging control method using two cache parts, each maintained using a FIFO algorithm
US8171206B2 (en) * 2008-07-22 2012-05-01 Sandisk Technologies Inc. Avoidance of self eviction caused by dynamic memory allocation in a flash memory storage device
US8504850B2 (en) * 2008-09-08 2013-08-06 Via Technologies, Inc. Method and controller for power management
US8499174B2 (en) * 2008-09-08 2013-07-30 Via Technologies, Inc. Method and controller for power management
US8966181B2 (en) * 2008-12-11 2015-02-24 Seagate Technology Llc Memory hierarchy with non-volatile filter and victim caches
US8244955B2 (en) * 2009-03-17 2012-08-14 Hitachi, Ltd. Storage system and its controlling method
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
EP2449469B1 (en) * 2009-06-29 2019-04-03 Hewlett-Packard Enterprise Development LP Hypervisor-based management of local and remote virtual memory pages
US9208084B2 (en) * 2009-06-29 2015-12-08 Oracle America, Inc. Extended main memory hierarchy having flash memory for page fault handling
WO2011002437A1 (en) * 2009-06-29 2011-01-06 Hewlett-Packard Development Company, L.P. Memory agent to access memory blade as part of the cache coherency domain
US8661189B2 (en) * 2010-08-31 2014-02-25 Apple Inc. Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory
US8656133B2 (en) 2011-05-05 2014-02-18 International Business Machines Corporation Managing storage extents and the obtaining of storage blocks within the extents
US8793444B2 (en) 2011-05-05 2014-07-29 International Business Machines Corporation Managing large page memory pools
US8799611B2 (en) 2011-05-05 2014-08-05 International Business Machines Corporation Managing allocation of memory pages
US8683169B2 (en) 2011-05-05 2014-03-25 International Business Machines Corporation Selecting an auxiliary storage medium for writing data of real storage pages
US8868876B2 (en) 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
CN102567216B (zh) * 2011-12-29 2015-07-29 北京交控科技有限公司 提高闪存寿命的可靠性存储方法
US8949512B2 (en) 2012-02-17 2015-02-03 Apple Inc. Trim token journaling

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1162786A (zh) * 1996-01-31 1997-10-22 株式会社东芝 用于多任务设施信息处理系统的资源管理方法和设备
US5699539A (en) * 1993-12-30 1997-12-16 Connectix Corporation Virtual memory management system and method using data compression
CN1506849A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 能够管理虚拟存储器处理方案的数据处理系统
CN1512352A (zh) * 2002-10-10 2004-07-14 国际商业机器公司 用于虚拟存储器的管理的方法和分析高速缓存
JP2005004575A (ja) * 2003-06-13 2005-01-06 Nec Corp 多重仮想記憶システムの二次記憶管理方式および方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6488661A (en) * 1987-09-29 1989-04-03 Toshiba Corp Virtual memory control and management system
JPH04230508A (ja) * 1990-10-29 1992-08-19 Internatl Business Mach Corp <Ibm> 低電力消費メモリ装置
DE69428881T2 (de) * 1994-01-12 2002-07-18 Sun Microsystems Inc Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt
US5778441A (en) * 1994-03-01 1998-07-07 Intel Corporation Method and apparatus for accessing split lock variables in a computer system
US5778443A (en) * 1994-12-14 1998-07-07 International Business Machines Corp. Method and apparatus for conserving power and system resources in a computer system employing a virtual memory
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US5732238A (en) * 1996-06-12 1998-03-24 Storage Computer Corporation Non-volatile cache for providing data integrity in operation with a volatile demand paging cache in a data storage system
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6438668B1 (en) * 1999-09-30 2002-08-20 Apple Computer, Inc. Method and apparatus for reducing power consumption in a digital processing system
KR20010055981A (ko) * 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR100365891B1 (ko) 2000-12-13 2002-12-27 한국전자통신연구원 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법
US6671786B2 (en) 2001-06-07 2003-12-30 Microsoft Corporation System and method for mirroring memory with restricted access to main physical mirrored memory
JP2003345520A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法
US7315852B2 (en) 2003-10-31 2008-01-01 International Business Machines Corporation XPath containment for index and materialized view matching
US7130960B1 (en) * 2005-04-21 2006-10-31 Hitachi, Ltd. System and method for managing disk space in a thin-provisioned storage subsystem
US7424577B2 (en) * 2005-08-26 2008-09-09 Network Appliance, Inc. Dynamic optimization of cache memory
US7543123B2 (en) * 2005-11-07 2009-06-02 International Business Machines Corporation Multistage virtual memory paging system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699539A (en) * 1993-12-30 1997-12-16 Connectix Corporation Virtual memory management system and method using data compression
CN1162786A (zh) * 1996-01-31 1997-10-22 株式会社东芝 用于多任务设施信息处理系统的资源管理方法和设备
CN1512352A (zh) * 2002-10-10 2004-07-14 国际商业机器公司 用于虚拟存储器的管理的方法和分析高速缓存
CN1506849A (zh) * 2002-12-12 2004-06-23 国际商业机器公司 能够管理虚拟存储器处理方案的数据处理系统
JP2005004575A (ja) * 2003-06-13 2005-01-06 Nec Corp 多重仮想記憶システムの二次記憶管理方式および方法

Also Published As

Publication number Publication date
US7543123B2 (en) 2009-06-02
US7827364B2 (en) 2010-11-02
TW200741455A (en) 2007-11-01
KR20070049062A (ko) 2007-05-10
KR100810013B1 (ko) 2008-03-10
CN1963790A (zh) 2007-05-16
US20070106853A1 (en) 2007-05-10
US20090150625A1 (en) 2009-06-11

Similar Documents

Publication Publication Date Title
CN100412824C (zh) 多级虚拟存储器页面调度方法及系统
CN102576333B (zh) 非易失性存储器中的数据高速缓存
EP1569085B1 (en) Method and apparatus for increasing data storage capacity
CN103026346B (zh) 用于从固态存储器设备读取及写入数据的方法及存储系统
US7711902B2 (en) Area effective cache with pseudo associative memory
US8006111B1 (en) Intelligent file system based power management for shared storage that migrates groups of files based on inactivity threshold
CN100552612C (zh) 闪速存储器存储系统
US6807607B1 (en) Cache memory management system and method
US20160062660A1 (en) Memory management device
US20070162692A1 (en) Power controlled disk array system using log storage area
US7080207B2 (en) Data storage apparatus, system and method including a cache descriptor having a field defining data in a cache block
US6922757B2 (en) Flexible and adaptive read and write storage system architecture
US9940023B2 (en) System and method for an accelerator cache and physical storage tier
CN102063406B (zh) 用于多核处理器的网络共享Cache及其目录控制方法
CN106687910A (zh) 优化分段清除技术
US7197605B2 (en) Allocating cache lines
JP2018041204A (ja) メモリ装置及び情報処理システム
KR20160060550A (ko) 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법
US8583890B2 (en) Disposition instructions for extended access commands
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
WO1999003047A1 (en) Content hosting environment system and cache mechanism
US6804754B1 (en) Space management in compressed main memory
CN111209227A (zh) 数据处理系统
Bitar Deploying Hybrid Storage Pools

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