CN1877548A - 用于管理页替换的方法和系统 - Google Patents
用于管理页替换的方法和系统 Download PDFInfo
- Publication number
- CN1877548A CN1877548A CNA2006100074848A CN200610007484A CN1877548A CN 1877548 A CN1877548 A CN 1877548A CN A2006100074848 A CNA2006100074848 A CN A2006100074848A CN 200610007484 A CN200610007484 A CN 200610007484A CN 1877548 A CN1877548 A CN 1877548A
- Authority
- CN
- China
- Prior art keywords
- page
- sizes
- leaf
- size
- mentioned
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种在使用多个页面大小进行虚拟存储器页面调度的数据处理系统中用于管理页替换的系统、方法和制造物品。在一个实施例中,该页替换方法开始于诸如可能随缺页而产生的页框分配请求。页替换过程被调用以选择要由所请求的页替换的一页或多页。在优选实施例中,页替换包括根据该多个页面大小中的至少一个的页面类型分配选择页面大小的步骤,该页面大小要用于针对该页框分配请求的页替换。
Description
技术领域
本发明总体涉及计算机存储器资源的管理,具体地,涉及虚拟存储器页的分配和替换。更具体地,本发明涉及用于管理使用多个页面大小的虚拟存储器系统中的页替换操作的系统和方法。
背景技术
虚拟存储器是大多数与存储器管理硬件结合的现代操作系统所支持的一个重要特征。虚拟存储器实质上提供另一组存储器地址。程序使用这些虚地址而不是实地址来存储指令和数据。当被程序线程调用时,这些虚地址被转换成物理或“实”存储器地址。
为了便于将虚拟存储器复制到实存中,几乎所有现代操作系统都将虚拟存储器划分为页,每一页包含固定数量的地址。每一页都被存储在盘上,直到需要它。当需要某一页时,操作系统将它从盘复制到主存储器,将其虚地址转换成实地址。实现虚拟存储器的基础是请求调页的概念,指系统(通常是操作系统)而不是程序员控制现时进程所需的页进出主存储器的替换。当一个进程需要一个非常驻的页时,操作系统使用指定的替换策略来判定哪个常驻的存储器页将被所请求的页替换。大部分常规替换策略,诸如最近最少使用(LRU)、先入先出(FIFO)等,通常对选择来替换的目标,即将在最长时间内不会被引用的页进行共享。
为了改进系统性能,许多计算机体系结构和操作系统已经开始增加对多个页面大小的支持。例如,在使用4K字节和64K字节两个页面大小的系统中,通过为各个页面大小保留存储器的指定部分来设置页面大小之间的存储器的相对分配。为了改进系统可靠性和可用性,操作系统理论上将自主地确定为每个页面大小使用多少系统存储器并在任意给定时间点根据特定工作负荷需求动态地调整这些量。
当已对所请求的页面大小分配了所有页框时,该操作系统必须确定如何处理对该页面大小的页框的进一步请求。操作系统传统上有两个基本选项。首先,可以对所请求的页面大小的页框启用页替换。或者,可以将当前未分配的,或为未请求的大小保留的“空闲”存储器转变成所请求的页面大小的块,并用于满足这些页框分配请求。使用这些选项,当空闲页框可用时,操作系统能够选择页面大小转换选项而不是代价更高的页替换选项。
但是,当存储器利用足够高从而任意页面大小中不存在足够的空闲页框来满足分配请求时,必须使用页替换(有时称作页面交换)释放存储器以复制进所请求的页。本领域中存在这样一种需求,即以改进系统效率和可靠性的方式确定对于所请求的页面大小或其他页面大小是否应该执行页替换。本发明便针对于现有技术所未解决的这一和其他需求。
发明内容
这里公开了一种在使用多个页面大小进行虚拟存储器页面调度的数据处理系统中用于管理页替换的系统、方法和制造物品。在一个实施例中,该页替换方法开始于诸如随缺页而产生的页框分配请求。调用页替换过程以选择要由所请求的页替换的一页或多页。在优选实施例中,上述页替换包括根据多个页面大小中的至少一个页面大小的页面类型分配,选择要用于针对上述页框分配请求的页替换的页面大小。当操作系统接收到对于具有较低水平的可用页框的页面大小池的页框的请求时,该操作系统检查其他页面大小是否具有比所请求的页面大小高得多的百分比的文件页。如果它们具有,则操作系统可以另一页面大小而不是所请求的页面大小为目标进行页替换,以最小化工作存储器数并改进系统性能。
在下面的详细描述中,本发明的以上以及其他目的、特征和优点将变得显而易见。
附图说明
在所附权利要求中列出了被认为是本发明的特征的新颖特征。然而,结合附图,参照下面对示例性实施例的详细描述,本发明本身、优选的使用模式及其进一步的目的和优点将会得到最好的理解,其中:
图1是示出适于实现本发明的实施例的数据处理系统的框图;
图2是根据本发明示出被执行用于处理存储器访问请求的步骤的高级流程图;
图3A是根据本发明的一个实施例示出被执行用于处理页替换的步骤的高级流程图;以及
图3B是根据本发明的可选实施例示出被执行用于处理页替换的步骤的高级流程图。
具体实施方式
本发明提供一种机制,通过该机制,操作系统、存储器管理单元、虚拟存储器管理器和/或其他类似设备或模块可选择对于其将执行页替换的页面大小。优选地,如下面参照附图所进一步详细解释的,该选择是基于对于每个页面大小的一种或多种“类型”的存储器页的使用或分配的水平之上的。如此处所使用的,并且在一个实施例中,页“类型”可指包含在给定页中的数据的类型特征。在一个优选实施例中,页类型将给定页特征化为包含常驻数据的常驻存储页(或称为文件存储页或简称为文件页),或包含处理支持数据的工作存储页。
现在参照附图,其中相同的参考标号指相同及相应的部分,具体地,参照图1,其示出了适于实现本发明的数据处理系统100。为了讨论的目的,该数据处理系统被描述为诸如可用于大型服务器/存储应用的多处理器计算机系统。但是,如此处所使用的,术语“数据处理系统”、“计算机”等实质上都旨在指能够运行软件产品的任何类型的计算设备或机器。
数据处理系统100包括通信连接到网络104的电子设备102。电子设备102包括通过互连120连接到辅助存储器110和主存储器115的处理器105,互连120可包括一条或多条共享总线或交换连接的任意组合。互连120可代表例如PCI(外围部件互连)、ISA(工业标准体系结构)、X总线、EISA(扩展工业标准体系结构)的一条或多条总线,或任何其他适合的总线和/或桥(也称总线控制器)。尽管电子设备102被示为仅包含单个处理器105和单个系统互连120,但是本发明同样应用于可具有部分或全部以不同方式执行不同功能的多个处理器和多个总线的电子设备。
可以使用诸如个人计算机的任何适当的硬件和/或软件来实现电子设备102。便携式计算机、膝上型或笔记本计算机、PDA(个人数字助理)、袖珍计算机、电话、寻呼机、汽车,远程会议系统、设备和主计算机都是电子设备102的其他可能配置的例子。图1所示的硬件和软件可针对特定的应用而变化,并可包括比所示出的组件要多或要少的组件。例如,可以使用诸如音频适配器的其他外围设备或诸如EPROM(可擦可编程只读存储器)编程设备的芯片编程设备附加于或者替代所示出的硬件。
网络104可以是任何适当的网络或网络的组合,并可支持任何适于数据和/或代码入/出电子设备102的通信的适当协议。在各种实施例中,网络104可包括直接或间接地连接到电子设备102的存储设备或存储设备的组合。
处理器105代表任何类型的体系结构的一个或多个中央处理单元,这些体系结构诸如CISC(复杂指令集计算)、RISC(精简指令集计算)、VLIW(超长指令字)或混合体系结构,不过任何适当的处理器都是可以使用的。处理器105执行指令并包括电子设备102的控制整个系统操作的部分。支持其控制功能,处理器105读取和/或存储代码和数据入/出辅助存储器110和/或主存储器115。尽管图1中未示出,但是处理器105可包括各种对于理解本发明来说非必要的其他组件。例如,处理器105通常可包括用于在处理器周期内执行指令的多种执行部件、用于与互连120接口的总线接口部件、用于取指令的访问程序和用于保存指令和数据的队列和/或高速缓存。在其他的实施例中,处理器105包括其他对于本领域技术人员来说公知的适当组件。
辅助存储器110代表用于存储数据的一个或多个机构。例如,辅助存储器110可包括随机存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和/或其他机器可读介质。在其他的实施例中,任何适当类型的存储设备都可包括在辅助存储器110内。尽管只示出了一个辅助存储器110,但可存在多个存储设备和多种类型及级别的存储设备。此外,尽管被示于电子设备102内,但诸如当电子设备通过网络104互联时,辅助存储器110可跨其他的电子设备而分布。
辅助存储器110包括虚拟存储器管理器140。虚拟存储器管理器140包括能被处理器105执行的电子或软件编码的指令和/或能被在执行下面参照图2和图3所描述的页分配和替换中在处理器105上执行的指令所解释的语句。在一个实施例中,虚拟存储器管理器140的部分或全部功能可通过逻辑门和/或其它硬件机构所实现。虚拟存储器管理器140可执行页面调度功能以在辅助存储器110和主存储器115之间移动页(包括本身)。该虚拟存储器管理器140的功能在下面参照图2和图3进一步描述。
主存储器115代表用于存储数据的一个或多个机构。例如,主存储器115可包括任何适当类型的高速缓存或随机存储器。尽管只示出了一个主存储器115,但可存在多个存储器和多种类型及级别的存储器。在一个实施例中,主存储器115比辅助存储器110小,但具有更快的存取时间。
处理器105包括访问页表106的存储器管理单元(MMU)125和转换旁视缓冲区(TLB)128。页表106本身可包括一个或多个存储器页并与相关的虚拟存储器盘映射(未示出)一起描述数据处理系统100的整个寻址空间。页表106一般包括标识主存储器115中的页及包含那些页的页框的页表条目。为此,页表106的页表条目包含各种数据字段和标志。根据一个实施例,优选地,这些字段包括指示该页当前是否处于主存储器115中的存在标志、指示该页数据在处于主存储器115中时是否已被修改的修改标志、标识页框因而标识该页在存储器中的位置的页框号(或其它标识符)。
包括在页表106的页表条目内的页框标识符用作进入页框表108的索引,页框表108也由支持虚拟存储器寻址的操作系统145所维护。当页表106指定当前存储在主存储器115中的每个页的身份和状态时,页框表108包括对应于每个存储器页框的条目,这些条目累积起来描述主存储器115的当前利用(例如当前分配给页的页框对空闲页框)。
存储器管理单元125通常是硬件组件,且其包括用于管理电子设备102内的虚拟存储器的可执行指令。存储器管理单元125使用页表106将虚拟存储器地址映射为物理或“实”存储器地址。转换功能由转换旁视缓冲区128帮助,该转换旁视缓冲区128维护最近使用的实-虚转换的表。该存储器管理单元125的功能在下面参照图2和3进一步描述。尽管存储器管理单元125被示于代表处理器105的框内,但在可选实施例中,存储器管理单元125可以完全或部分地在处理器105之外实现。
如在下面将详细描述的,本发明的实施例的各方面有关于特定的装置和在计算机、处理器或其他电子设备上实现的方法组分。在另一个实施例中,本发明可以作为与计算机、处理器或其他电子设备一起使用的程序产品来实现。定义该实施例的功能的可执行指令可由电子硬件执行和/或可通过多种信号承载介质呈递给计算机、处理器或其他电子设备,这些信号承载介质包括但不限于:
(1)永久存储在非可重写存储介质上的信息,该非可重写存储介质例如附加于计算机、处理器或其他电子设备或处于其内的诸如可由CD-ROM驱动器读取的CD-ROM的只读存储设备;
(2)存储在例如硬盘驱动器或软磁盘的可重写存储介质上的可变信息;或
(3)诸如通过计算机或电话网络由通信介质传送到计算机、处理器或其他电子设备的信息,包括无线通信在内的该通信介质例如网络104。
这样的信号承载介质,当承载针对本发明的功能的机器可读指令时,代表本发明的实施例。
根据本发明,电子设备102包括操作系统145,其在辅助存储器110内被永久维护且在系统启动或操作期间被部分或全部加载到主存储器115内。本发明的操作系统145可包括与存储器管理单元125和虚拟存储器管理器140所提供的功能结合来支持虚拟存储器的标准的高性能操作系统的许多特征,该标准的高性能操作系统诸如IBM的AIX。
为了能够将虚拟存储器复制到实存内,操作系统145将虚拟存储器划分成页,每页包含固定数量的地址,且每页在页表106内具有相应的页表条目。在AIX内,例如,虚拟存储器段被划分成4k(4096)字节页单元,而实存被划分成4k字节页框。每页都存储在辅助存储器110内的盘或其他海量存储介质上,直到需要该页。当需要某一页时,操作系统145结合虚拟存储器管理器140将该页从辅助存储器110复制到主存储器115,将其虚地址转换成实地址。将虚地址转换到实地址的过程称作映射。从盘到主存储器的虚页的复制称为页面调度。
每次某一页诸如被应用进程所请求并且当前未处于主存储器115中时便发生缺页。缺页通常是提示操作系统145从辅助存储器110中获取所请求的数据并将其加载到主存储器115中的中断。因此,主存储器115内的一个或多个页框必须被分配用于接收所请求的页。对于采用多个页面大小(例如4k、64k等)的诸如图1中所示的系统而言,主存储器地址空间被在各个页面大小之中划分。本发明提供用于当当前存储器使用是这样的情况,即目前或即将需要页替换以处理诸如响应缺页而生成的页框分配请求时,分配其他页的系统和方法。
如下面参照图2进一步详细描述的,本发明针对于管理诸如由数据处理系统100所使用的虚拟存储器系统中的页分配和替换策略。更具体地,本发明的页框分配管理使用页替换选择机制,其根据多个页面大小中的一个或多个的各个或相对页面类型利用来选择要用于页替换的目标页面大小。此处所使用的页面“类型”可指存储在特定文件中的数据的类型。在优选实施例中,页面类型指永久存储页和工作存储页之间的区别。更具体地,根据优选实施例,包含在辅助存储设备110和主存储器115内的虚拟存储器页一般可分类为用于缓存主存储器115中的文件数据的永久存储页,或者用于进程的数据堆、bss、栈、共享存储器和其他进程相关的功能的工作存储页。当工作存储页被替换或“被调出”时,它们被写到页面调度盘空间。当永久存储页被调出时,它们被写到文件系统盘空间。
经常是这样的情况,页替换的效率受到被搜寻以进行替换的页的页面类型的极大影响。基于几点原因,例如,在几乎任何处理环境中,调出永久存储页要比调出工作存储页有效得多。第一,可能应用的工作页面组包括比永久存储页更多的工作存储页。因此,进程通常对访问它们的工作存储器的次数的扩展比永久存储器要敏感的多。因此,由于其中进程必须等待它们的工作集的页调入的进程失败,调出工作存储页会大大削弱性能。此外,大多数高端系统配置有少量的页面调度空间,该页面调度空间通常只分布在很少数量的盘之中。相反,大多数的高端系统具有分布于许多盘上的较大文件系统。因而,入/出页面调度空间的页面调度工作存储数据的输入/输出(I/O)吞吐量通常比页面调度永久存储数据的I/O吞吐量少得多。
如下面参照图2和图3所解释的,本发明的页分配/替换机制使用按照多个可用页面大小的一个或多个的页面类型分配来选择替换页,这些替换页要对于当前或所预期的页替换操作而被调出或复制出。参照图2,其示出了根据本发明说明被执行以处理存储器访问请求的步骤的高级流程图。如在步骤202和204所示,该过程开始于由主存储器115所接收的存储器访问请求,诸如从应用进程发出的存储器读请求。如果主存储器115包含所请求的数据,则该数据被返回给处理器105且该存储器访问过程结束,如在步骤206、224和226所示。
响应于所请求的数据当前未存储于主存储器115中,存储器管理单元125发出缺页中断(步骤206),提示操作系统145调用缺页处理器。包括在缺页处理器例程中的是页框分配请求(步骤208),其被发出到虚拟存储器管理器140并由虚拟存储器管理器140结合操作系统145来处理。如前面参照图1所解释的,本发明的虚拟存储器系统采用多个页面大小,以便例如主存储器115可以被划分成4K与64K之间的页。作为页框分配请求处理的一部分,所请求的页面大小被确定并在请求中指出。所请求的页面大小可由对请求进程的地址空间的引用来确定。
如在查询步骤210所示,页框分配请求处理进一步包括诸如通过查询与表106和/或108相关联而被维护的空闲列表,来确定是否有任何或足够数量的空闲页(即目前未分配给存储器页的页框)可用于满足该分配请求。如果有足够的空闲存储器可用从而页替换不是必须的,但空闲页框不是所请求的页面大小的,则将这些页框转换成所请求的页面大小,并因此有效地将其转移到所请求的页面大小的存储器池(步骤216和218)。随着到所请求的页面大小池的页转移,或者如果所请求的页面大小池的空闲页框可用,则将所请求的页从辅助存储器110复制到主存储器115中指定的空闲页框(步骤216、222)。接着,更新表106和108以反映主存储器115的修改的内容(步骤223),所请求的数据被返回给请求处理器(步骤224),且该过程结束,此时出错的进程可以重试存储器访问请求(步骤226)。
返回到查询步骤210,如果不足的空闲存储器使页替换成为必要,则根据本发明的替换过程就会被调用。根据所示出的实施例,如步骤212所示,替换过程开始于从多个可用的页面大小之中选择页面大小池,在该页面大小池中一页或多页将被替换。根据本发明,用于确定要被用于页替换的页面大小池的选择标准包括各个页面大小池内的一个或多个页面类型的当前分配。在其中页面类型包括永久存储页和工作存储页的优选实施例中,例如步骤212所示的选择将包括确定以及可能地比较相应的多个页面大小池中的每一个的工作存储页的分配与/或永久存储页的分配,并据此选择一个替换页面大小池。
参照图3A和图3B说明用于执行步骤212的页面大小池选择的更加详细的实施例。具体地,图3A和3B是高级流程图,其根据本发明的可选实施例示出了可用于选择页面大小的选择过程,在该页面大小中目标替换页将被覆写并可能地被复制出。图3A和3B中所示的实施例假定虚拟存储器系统所使用的页面类型包括工作存储页和永久存储页。但是,应当指出,使用与参照图3A和3B所说明和描述的类似过程的可选实施例可以使用其他页面类型分类而不会超出本发明的预期范围。
图3A所示的第一实施例开始于确定永久或工作存储类型页的每一相应大小的页框的分配,如在步骤302和304所示。更具体地,根据第一实施例,对于每一页面大小池,确定当前分配给永久存储页与分配给工作存储页的页框的比率。其次,比较每一页面大小池的比率(步骤306),并且选择具有相对较高的永久页面类型分配的页面大小池(或相反,具有相对较低的工作页面类型分配的页面大小池)作为替换池,且该页面大小池选择过程结束(步骤308和310)。
图3B所示的第二实施例开始于对于多个页面大小的每一个,确定分配给永久存储页的页框和/或分配给工作存储页的页框,如步骤315和317所示。如步骤319所示,对于每个页面大小,将所确定的对于永久存储页和/或工作存储页的页面类型分配中的一个或两个均与预定的分配限定进行比较。例如,虚拟存储器管理器140可包括永久页面类型限定,其对于各个页面大小,将要被分配给永久页的主存储器115的量或百分比限定为指定的值。在此情况下,步骤319所示的比较可包括,对于每一页面大小,将在步骤317确定的永久页的当前分配与相应的特定于页面大小的永久页限定进行比较。可根据任何给定页面大小池对于其相应的限定的遵从或不遵从,来选择页面大小池。可选地,如步骤321和323所示,可通过比较每个页面大小池对于相应限定的相对遵从性来选择页面大小池,且该页面大小池选择过程在步骤325结束。
返回到图2,诸如由图3A和3B所示的过程进行的替换叶面大小池的选择之后,如步骤213所示,该页替换过程继续进行从所选出的页面大小池中选择要被替换的一页或多页。已知有诸如LRU的许多公知的目标页选择技术,并且可以使用它们,而符合本发明的精神和范围。作为替换页选择的一部分,获得将用于进入的页的页框的页框号。如步骤214所示,如果可能地如在页表106内的相应页表条目中所指示的,按照步骤213而选出的页已被修改,则必须将该页的存储器版本复制出到辅助存储器110(步骤215)。在替换页的选择和可能的页面调出之后,缺页处理继续将所请求的页从辅助存储器110复制到主存储器115中的所选择的替换页框,如步骤222所示。如步骤216和218所示,如果所选择的页框与所请求的页面大小不同,则这些页框首先被转换成所请求的页面大小,并因此被转移到所请求的页面大小的存储器池。其次,更新表106和108以反映主存储器115的修改的内容(步骤223),并将所请求的数据返回给请求处理器(步骤224),且该过程结束(步骤226),此时缺页处理可以重试存储器访问请求。
根据上述的方法和系统,当操作系统接收到对于具有较低水平的可用页框的页面大小池的页框的请求时,该操作系统检查是否其他页面大小具有比所请求的页面大小高得多的百分比的文件页。如果它们具有,则操作系统可以另一页面大小而不是所请求的页面大小为目标进行页替换,以使被页面调度的工作存储器数量最小并改进系统性能。
尽管已参照优选实施例对本发明进行了具体地示出和描述,但本领域的技术人员将会理解,其中,可以在形式和细节上实现各种变化,而不脱离本发明的精神和范围。这些可选实现均落入本发明的范围内。
Claims (15)
1.一种在使用多个页面大小进行虚拟存储器页面调度的数据处理系统中用于管理页替换的方法,所述方法包括:
接收页框分配请求;以及
根据上述多个页面大小中的至少一个的页面类型分配,选择页面大小,该页面大小要用于针对所述页框分配请求的页替换。
2.根据权利要求1的方法,其中响应于所选出的页面大小与上述页框分配请求所指定的页面大小不匹配,所述方法进一步包括将具有所选出的页面大小的页框转换为具有所请求的页面大小的页框。
3.根据权利要求1的方法,进一步包括确定上述多个页面大小中的至少一个的页面类型分配。
4.根据权利要求3的方法,所述确定上述多个页面大小中的至少一个的页面类型分配进一步包括将第一页面大小的页面类型分配与第二页面大小的页面类型分配进行比较。
5.根据权利要求3的方法,所述确定上述多个页面大小中的至少一个的页面类型分配进一步包括将该多个页面大小中的至少一个的页面类型分配与页面类型分配限定进行比较。
6.根据权利要求3的方法,其中上述多个页面大小的页面类型包括永久存储页和工作存储页,所述确定上述多个页面大小中的至少一个的页面类型分配包括对于该多个页面大小中的至少一个确定永久存储页或工作存储页的存储器分配。
7.根据权利要求6的方法,所述选择步骤包括根据上述多个页面大小中的至少一个的永久存储页或工作存储页的分配选择页面大小。
8.一种在使用多个页面大小进行虚拟存储器页面调度的数据处理系统中用于管理页替换的系统,包括:
用于接收页框分配请求的装置;以及
用于根据上述多个页面大小中的至少一个的页面类型分配,选择页面大小的装置,该页面大小要用于针对所述页框分配请求的页替换。
9.根据权利要求8的系统,进一步包括响应于所选出的页面大小与上述页框分配请求所指定的页面大小不匹配,用于将具有所选出的页面大小的页框转换为具有所请求的页面大小的页框的装置。
10.根据权利要求8的系统,进一步包括用于确定上述多个页面大小中的至少一个的页面类型分配的装置。
11.根据权利要求10的系统,所述用于确定上述多个页面大小中的至少一个的页面类型分配的装置进一步包括用于将第一页面大小的页面类型分配与第二页面大小的页面类型分配进行比较的装置。
12.根据权利要求10的系统,所述用于确定上述多个页面大小中的至少一个的页面类型分配的装置进一步包括用于将该多个页面大小中的至少一个的页面类型分配与页面类型分配限定进行比较的装置。
13.根据权利要求10的系统,其中上述多个页面大小的页面类型包括永久存储页和工作存储页,所述用于确定上述多个页面大小中的至少一个的页面类型分配的装置包括用于对于该多个页面大小中的至少一个确定永久存储页或工作存储页的存储器分配的装置。
14.根据权利要求13的系统,所述用于选择步骤的装置包括用于根据上述多个页面大小中的至少一个的永久存储页或工作存储页的分配选择页面大小的装置。
15.一种用于使用多个页面大小进行虚拟存储器页面调度的数据处理系统中的计算机可读介质,具有在其上编码的用于管理页替换的计算机可执行指令,所述计算机可执行指令执行方法1-7中任意一项的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/146,476 | 2005-06-06 | ||
US11/146,476 US7353361B2 (en) | 2005-06-06 | 2005-06-06 | Page replacement policy for systems having multiple page sizes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1877548A true CN1877548A (zh) | 2006-12-13 |
CN100458738C CN100458738C (zh) | 2009-02-04 |
Family
ID=37495492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100074848A Expired - Fee Related CN100458738C (zh) | 2005-06-06 | 2006-02-14 | 用于管理页替换的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (3) | US7353361B2 (zh) |
CN (1) | CN100458738C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102197380B (zh) * | 2008-10-23 | 2012-12-19 | 微软公司 | 用于机会主义的页放大的方法和系统 |
CN103218316A (zh) * | 2012-02-21 | 2013-07-24 | 微软公司 | 采用多个页替换算法的高速缓存 |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
CN108139979A (zh) * | 2015-10-08 | 2018-06-08 | 华为技术有限公司 | 数据处理装置和操作数据处理装置的方法 |
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN116266159A (zh) * | 2021-12-17 | 2023-06-20 | 华为技术有限公司 | 一种缺页异常处理方法和电子设备 |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4806556B2 (ja) * | 2005-10-04 | 2011-11-02 | 株式会社日立製作所 | ストレージシステム及び構成変更方法 |
US20070136554A1 (en) * | 2005-12-12 | 2007-06-14 | Giora Biran | Memory operations in a virtualized system |
US20070156778A1 (en) * | 2006-01-04 | 2007-07-05 | Microsoft Corporation | File indexer |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US7509461B1 (en) * | 2006-06-29 | 2009-03-24 | Emc Corporation | Method and apparatus for intelligent buffer cache pre-emption |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
FR2920556B1 (fr) * | 2007-08-31 | 2009-11-13 | Bull Sas | Gestionnaire de processus ameliore |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
WO2009050703A2 (en) | 2007-10-19 | 2009-04-23 | Anobit Technologies | Data storage in analog memory cell arrays having erase failures |
KR101509836B1 (ko) | 2007-11-13 | 2015-04-06 | 애플 인크. | 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택 |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US20090164715A1 (en) * | 2007-12-20 | 2009-06-25 | International Business Machines Corporation | Protecting Against Stale Page Overlays |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US20090327621A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US10096983B2 (en) | 2009-09-04 | 2018-10-09 | Southwire Company | Electrical accessories and associated methods of use and manufacture |
US8615642B2 (en) * | 2009-10-14 | 2013-12-24 | International Business Machines Corporation | Automatic page promotion and demotion in multiple page size environments |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8473684B2 (en) | 2009-12-22 | 2013-06-25 | International Business Machines Corporation | Delayed replacement of cache entries |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8862859B2 (en) | 2010-05-07 | 2014-10-14 | International Business Machines Corporation | Efficient support of multiple page size segments |
US8745307B2 (en) | 2010-05-13 | 2014-06-03 | International Business Machines Corporation | Multiple page size segment encoding |
US9052823B2 (en) * | 2010-05-18 | 2015-06-09 | Hitachi, Ltd. | Storage system and data management method with application specific storage tiers |
US8375194B2 (en) * | 2010-05-27 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | System and method for freeing memory |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8417912B2 (en) * | 2010-09-03 | 2013-04-09 | International Business Machines Corporation | Management of low-paging space conditions in an operating system |
CA2752301C (en) | 2010-09-14 | 2019-09-03 | Southwire Company | Folded electrical junction boxes and associated methods of use and manufacture |
US8669471B2 (en) | 2010-09-14 | 2014-03-11 | Southwire Company | Electrical accessories and associated methods of use and manufacture |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8990166B2 (en) * | 2011-03-25 | 2015-03-24 | Sap Se | Variable page sizing for improved physical clustering |
US8793444B2 (en) | 2011-05-05 | 2014-07-29 | International Business Machines Corporation | Managing large page memory pools |
US8656133B2 (en) | 2011-05-05 | 2014-02-18 | International Business Machines Corporation | Managing storage extents and the obtaining of storage blocks within the extents |
US8683169B2 (en) | 2011-05-05 | 2014-03-25 | International Business Machines Corporation | Selecting an auxiliary storage medium for writing data of real storage pages |
US8799611B2 (en) | 2011-05-05 | 2014-08-05 | International Business Machines Corporation | Managing allocation of memory pages |
US8738868B2 (en) | 2011-08-23 | 2014-05-27 | Vmware, Inc. | Cooperative memory resource management for virtualized computing devices |
US9176780B2 (en) * | 2011-08-23 | 2015-11-03 | Vmware, Inc. | Dynamically balancing memory resources between host and guest system based on relative amount of freeable memory and amount of memory allocated to hidden applications |
US8868876B2 (en) | 2011-12-28 | 2014-10-21 | International Business Machines Corporation | Dedicated large page memory pools |
US9092318B2 (en) * | 2012-02-06 | 2015-07-28 | Vmware, Inc. | Method of allocating referenced memory pages from a free list |
US9367439B2 (en) * | 2012-04-30 | 2016-06-14 | Oracle International Corporation | Physical memory usage prediction |
US20140075142A1 (en) * | 2012-09-13 | 2014-03-13 | International Business Machines Corporation | Managing backing of virtual memory |
GB2514107B (en) * | 2013-05-13 | 2020-07-29 | Advanced Risc Mach Ltd | Page table data management |
US10089180B2 (en) * | 2015-07-31 | 2018-10-02 | International Business Machines Corporation | Unfavorable storage growth rate abatement |
US11249968B2 (en) * | 2016-05-09 | 2022-02-15 | Sap Se | Large object containers with size criteria for storing mid-sized large objects |
US10037283B2 (en) * | 2016-08-12 | 2018-07-31 | Advanced Micro Devices, Inc. | Updating least-recently-used data for greater persistence of higher generality cache entries |
US10810116B2 (en) * | 2017-06-29 | 2020-10-20 | Sap Se | In-memory database with page size adaptation during loading |
US11093403B2 (en) | 2018-12-04 | 2021-08-17 | Vmware, Inc. | System and methods of a self-tuning cache sizing system in a cache partitioning system |
KR102400977B1 (ko) * | 2020-05-29 | 2022-05-25 | 성균관대학교산학협력단 | 프로세서를 통한 페이지 폴트 처리 방법 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067608A (en) * | 1997-04-15 | 2000-05-23 | Bull Hn Information Systems Inc. | High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis |
US6804766B1 (en) * | 1997-11-12 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method for managing pages of a designated memory object according to selected memory management policies |
US6233666B1 (en) * | 1998-09-17 | 2001-05-15 | International Business Machines Corporation | Deferred disk drive space allocation for virtual memory pages with management of disk address recording in multipage tables without external process interrupts for table for input/output to memory |
US6622229B2 (en) * | 2001-02-28 | 2003-09-16 | International Business Machines Corporation | Virtual memory structure |
US6754788B2 (en) * | 2001-03-15 | 2004-06-22 | International Business Machines Corporation | Apparatus, method and computer program product for privatizing operating system data |
US7181588B2 (en) * | 2003-05-22 | 2007-02-20 | International Business Machines Corporation | Computer apparatus and method for autonomic adjustment of block transfer size |
US7080220B2 (en) * | 2003-07-03 | 2006-07-18 | International Business Machines Corporation | Page replacement with a re-reference indicator |
-
2005
- 2005-06-06 US US11/146,476 patent/US7353361B2/en not_active Expired - Fee Related
-
2006
- 2006-02-14 CN CNB2006100074848A patent/CN100458738C/zh not_active Expired - Fee Related
-
2008
- 2008-02-05 US US12/026,334 patent/US7484072B2/en not_active Expired - Fee Related
- 2008-02-05 US US12/026,345 patent/US7487329B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102197380B (zh) * | 2008-10-23 | 2012-12-19 | 微软公司 | 用于机会主义的页放大的方法和系统 |
CN103218316A (zh) * | 2012-02-21 | 2013-07-24 | 微软公司 | 采用多个页替换算法的高速缓存 |
CN105612499A (zh) * | 2013-10-29 | 2016-05-25 | 华中科技大学 | 混合高速缓存管理 |
CN105612499B (zh) * | 2013-10-29 | 2018-11-13 | 华中科技大学 | 混合高速缓存管理 |
CN108139979A (zh) * | 2015-10-08 | 2018-06-08 | 华为技术有限公司 | 数据处理装置和操作数据处理装置的方法 |
CN108139979B (zh) * | 2015-10-08 | 2021-01-12 | 华为技术有限公司 | 数据处理装置和操作数据处理装置的方法 |
US10970227B2 (en) | 2015-10-08 | 2021-04-06 | Huawei Technologies Co., Ltd. | Data processing apparatus for handling page fault using predefind bit patterns and a method thereof |
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108829346B (zh) * | 2018-05-28 | 2020-11-17 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN116266159A (zh) * | 2021-12-17 | 2023-06-20 | 华为技术有限公司 | 一种缺页异常处理方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100458738C (zh) | 2009-02-04 |
US20080126738A1 (en) | 2008-05-29 |
US7484072B2 (en) | 2009-01-27 |
US20080126737A1 (en) | 2008-05-29 |
US20060277389A1 (en) | 2006-12-07 |
US7353361B2 (en) | 2008-04-01 |
US7487329B2 (en) | 2009-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100458738C (zh) | 用于管理页替换的方法和系统 | |
US9256527B2 (en) | Logical to physical address mapping in storage systems comprising solid state memory devices | |
US6026475A (en) | Method for dynamically remapping a virtual address to a physical address to maintain an even distribution of cache page addresses in a virtual address space | |
US7793049B2 (en) | Mechanism for data cache replacement based on region policies | |
US9436597B1 (en) | Using non-volatile memory resources to enable a virtual buffer pool for a database application | |
KR920005853B1 (ko) | 페이지 분할형 가상 메모리 데이타 처리 시스템에서의 데이타 전송 방법 | |
JP3611305B2 (ja) | 永続的且つロバストな記憶割当てシステム及び方法 | |
CA2736035C (en) | Opportunistic page largification | |
US20020073298A1 (en) | System and method for managing compression and decompression of system memory in a computer system | |
US20130091331A1 (en) | Methods, apparatus, and articles of manufacture to manage memory | |
US20040117594A1 (en) | Memory management method | |
US6629111B1 (en) | Memory allocation system | |
JPH0566621B2 (zh) | ||
US8145870B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
JPH11102323A (ja) | 仮想アドレス変換用の柔軟な変換記憶バッファ | |
JP2001517829A (ja) | 仮想記憶システムにおいてアプリケーションプログラムによってコードまたはデータをグループに分類して、物理メモリの割り振りの制御を行うアプリケーション・プログラミング・インターフェイス | |
US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
US5996055A (en) | Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space | |
US6016529A (en) | Memory allocation technique for maintaining an even distribution of cache page addresses within a data structure | |
JP2000250814A (ja) | アドレススペース内にキャッシュページアドレスの均一な分布を維持するための動的なメモリ割り当て方法 | |
US20090031100A1 (en) | Memory reallocation in a computing environment | |
US7853771B2 (en) | Page allocation management for virtual memory | |
US20080270676A1 (en) | Data Processing System and Method for Memory Defragmentation | |
US20090024798A1 (en) | Storing Data | |
EP0919928A2 (en) | Memory allocation method and apparatus with an even distribution of cache page addresses within virtual memory regions |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090204 Termination date: 20100214 |