CN103577333A - 用于自动使用大页面的方法和装置 - Google Patents

用于自动使用大页面的方法和装置 Download PDF

Info

Publication number
CN103577333A
CN103577333A CN201310334710.3A CN201310334710A CN103577333A CN 103577333 A CN103577333 A CN 103577333A CN 201310334710 A CN201310334710 A CN 201310334710A CN 103577333 A CN103577333 A CN 103577333A
Authority
CN
China
Prior art keywords
page
little
little page
address realm
response
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
CN201310334710.3A
Other languages
English (en)
Other versions
CN103577333B (zh
Inventor
A·格赫斯
E·范赫恩斯伯根
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.)
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 CN103577333A publication Critical patent/CN103577333A/zh
Application granted granted Critical
Publication of CN103577333B publication Critical patent/CN103577333B/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

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

用于自动使用大页面的方法和装置
技术领域
本申请总体涉及一种改进的数据处理装置和方法,并且更具体地涉及用于自动使用大页面的机制。
背景技术
页面、存储器页面或者虚拟页面是固定长度的连续虚拟存储器块,该块是用于由操作系统为程序执行的存储器分配和在主存储器与任何其它辅存储装置、比如硬盘驱动之间的传送的最小数据单位。虚拟存储器允许寻址和使用当前并未驻留于主存储器中的页面。如果程序尝试访问在这样的页面中的位置,则生成被称为页面故障的异常。硬件或者操作系统得到通知并且从辅助存储装置自动地加载所需页面。对存储器寻址的存储器不知道页面故障或者在它之后的进程。因此,程序可能对物理地存在于计算机中的更多(虚拟)RAM寻址。页面在主存储器与辅存储装置、比如硬盘驱动之间的传送称为分页(paging)或者交换(swapping)。
传统上,系统中的页面具有均匀大小、例如4096字节。然而,处理器设计经常由于收益和代价而允许两个或者更多的有时同时的页面大小。存在可以在选择最佳页面大小时考虑的若干点。在从盘传送时,延迟的大部分是由寻找时间(seeking time)、即在磁盘母盘上方对读取/写入头正确定位所花费的时间所引起的。由于这一点,大的依次传送比若干更小传送更高效。用更大页面从盘向存储器传送相同数量的数据经常比用更小页面需要更少时间。
在两个进程共享物理页面时,进程可以具有指向该页面的两个不同虚拟地址。写时复制(copy-on-write)是在计算机编程中使用的优化策略。基本思想是如果多个调用者请求初始地不可区分的资源,则它们可以都被给予指向相同资源的指针。例如在两个进程共享物理存储器页面时,过程可以具有指向相同物理页面的两个不同虚拟地址。可以维持这一事务状态直至调用者试图修改它的资源“副本”,在这一点为该调用者产生单独(私有)副本以防止它的改变变成对别的每个人可见。这都对调用者透明地发生。主要优点是如果无调用者曾经进行任何修改,则一直无需创建私有副本。
大页面由于大页面的全有或者全无(all-or-nothing)属性而禁止高效需求分页。对于4KB页面,写时复制和/或基于需求的取读是合理的;然而对于1GB页面,写时复制和/或基于需求的取读是不合理的。
发明内容
在一个说明性实施例中,提供一种用于自动使用大页面的在数据处理系统中的方法。该方法包括响应于页面请求,分配物理存储器中的用于大页面的地址范围。该方法还包括将小页面取回到用于大页面的地址范围内的、用于小页面的对应物理存储器部分中。该方法还包括使用小页面映射表来映射小页面。该方法还包括响应于将小页面后续页入(page-in)到用于大页面的地址范围造成大页面被填满,使用大页面映射表来映射大页面。该方法还包括响应于后续页入造成大页面被填满,切换到大页面映射以用于对用于大页面的地址范围的后续访问。
在其它说明性实施例中,一种包括计算机可用或者可读介质的计算机程序产品,该计算机可用或者可读介质具有计算机可读程序。计算机可读程序在计算设备上被执行时使计算设备执行以上关于方法说明性实施例概括的操作中的各种操作和操作组合。
在又一说明性实施例中,提供一种系统/装置。该系统/装置可以包括一个或者多个处理器和耦合到一个或者多个处理器的存储器。存储器可以包括指令,这些指令在由一个或者多个处理器执行时使一个或者多个处理器执行上文关于方法说明性实施例概括的操作中的各种操作和操作组合。
本发明的这些和其它特征及优点将在本发明的说明性实施例的以下具体描述中加以描述,或者将鉴于以下具体描述而变得为本领域普通技术人员所清楚。
附图说明
将通过参照在与附图结合阅读时的说明性实施例的以下具体描述来最佳地理解本发明及其优选实施方式以及更多目的和优点,在附图中:
图1是其中可以实施说明性实施例的方面的示例数据处理系统的框图;
图2A和图2B是图示根据一个说明性实施例的自动使用大页面的框图;
图3是图示根据说明性实施例的用于自动使用大页面的机制的操作的流程图;以及
图4是图示根据说明性实施例的用于将大页面分解成小页面映射的机制的操作的流程图。
具体实施方式
说明性实施例提供用于自动使用大页面的机制。在说明性实施例中,操作系统加载器执行激进连续分配,继而为将小页面按需求分页和/或预取到为大页面设定大小的尽量连续和自然对准的物理地址范围中。操作系统检测何时填满大页面并且切换映射以使用大页面。
在一个说明性实施例中,操作系统可以从大页面开始并且仅使页入的小页面生效。操作系统可以通过掩蔽页面保护位以示出排除的页面为无效来排除掉小页面。如果操作系统低存储器量运行,则操作系统可以释放部分并且适度降级。在一个说明性实施例中,操作系统可以分解大页面并且响应于写时复制条件和/或基于需求的取读而切换到小页面映射。
可以在许多不同类型的数据处理环境中利用说明性实施例。为了提供用于描述说明性实施例的具体单元和功能的背景,下文提供图1作为其中可以实施说明性实施例的方面的示例环境。应当理解,图1仅为示例而未旨在于断言或者暗示关于其中可以实施本发明的方面或者实施例的环境的任何限制。可以进行对描绘的环境的许多修改而未脱离本发明的精神实质和范围。
图1是其中可以实施说明性实施例的方面的示例数据处理系统的框图。数据处理系统100是计算机可用代码或者指令可以位于其中的计算机的示例,这些计算机可用代码或者指令实施用于本发明的说明性实施例的过程。
在描绘的示例中,数据处理系统100运用集线器架构,该集线器架构包括北桥和存储器控制器集线器(NB/MCH)102以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)104。处理单元106、主存储器108和图形处理器110连接到NB/MCH102。图形处理器110可以通过加速图形端口(AGP)连接到NB/MCH102。
在描绘的示例中,局域网(LAN)适配器112连接到SB/ICH104。音频适配器116、键盘和鼠标适配器120、调制解调器122、只读存储器(ROM)124、硬盘驱动(HDD)126、CD-ROM驱动130、通用串行总线(USB)端口和其它通信端口132以及PCI/PCIe设备134通过总线138和总线140连接到SB/ICH104。PCI/PCIe设备可以例如包括以太网适配器、附加卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器而PCIe未使用。ROM14可以例如是闪速基本输入/输出系统(BIOS)。
HDD126和CD/ROM驱动130通过总线140连接到SB/ICH104。HDD126和CD-ROM驱动130可以例如使用集成驱动电子装置(IED)或者串行高级技术附着(SATA)接口。超级I/O(SIO)设备136可以连接到SB/ICH104。
操作系统在处理单元106上运行。操作系统协调图1中的数据处理系统100内的各种部件并且提供这些部件的控制。作为客户端,操作系统可以是可商业获得的操作系统、比如
Figure BDA00003614032400051
Figure BDA00003614032400052
7(Microsoft和Windows是微软公司在美国、其它国家或者二者的商标)。面向对象的编程系统、比如Java编程系统可以结合操作系统运行并且提供从在数据处理系统100上执行的Java程序或者应用对操作系统的调用(Java是Oracle和/或其子公司的商标)。
作为服务器,数据处理系统100可以例如是运行AdvancedInteractive Executive
Figure BDA00003614032400053
操作系统或者LINUX操作系统的
Figure BDA00003614032400054
eServerTM 
Figure BDA00003614032400055
计算机系统(IBM、eServer、System p和AIX是国际商业机器公司在美国、其它国家或者二者的商标,而LINUX是Linux Torvalds在美国、其它国家或者二者的注册商标)。数据处理系统100可以是包括处理单元106中的多个处理器的对称多处理器(SMP)系统。备选地,可以运用单处理器系统。
用于操作系统、面向对象的编程系统和应用或者程序的指令位于存储设备、比如HDD126上并且可以向主存储器108中加载以用于由处理单元106执行。处理单元106可以例如使用可以位于存储器、如例如主存储器108、ROM124中或者一个或者多个外围设备126和130中的计算机可用程序代码来执行用于本发明的说明性实施例的过程。
总线系统、比如如图1中所示总线138或者总线140可以包括一个或者多个总线。当然,可以使用任何类型的通信结构或者架构来实施总线系统,该通信结构或者架构提供在附着到该结构或者架构的不同部件或者设备之间的数据传送。通信单元、比如图1的调制解调器122或者网络适配器112可以包括用来发送和接收数据的一个或者多个设备。存储器可以例如是主存储器108、ROM124或者比如在图1中的NB/MCH102中找到的高速缓存。
本领域普通技术人员将理解,图1中的硬件可以根据实现方式变化。除了图1中描绘的硬件之外还可以使用或者取代该硬件使用其它内部硬件或者外围设备、比如闪存、等效非易失性存储器或者光盘驱动等。说明性实施例的过程也可以应用于除了先前提到的SMP系统之外的多处理器数据处理系统而未脱离本发明的精神实质和范围。
另外,数据处理系统100可以采用包括客户端计算设备、服务器计算设备、写字板计算机、膝上型计算机、电话或者其它通信设备、个人数字助理(PDA)等的许多不同数据处理系统中的任何数据处理系统的形式。在一些说明性示例中,数据处理系统100可以例如是配置有闪存的便携计算设备,该闪存用于提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。实质上,数据处理系统100可以是任何已知或者以后开发的数据处理系统而无架构限制。
图2A和图2B是图示根据一个说明性实施例的自动使用大页面的框图。参照图2A,可以在处理器、比如图1中的处理单元106上运行的操作系统210执行存储器、比如图1中的主存储器108中的物理地址范围的激进连续分配(aggressive contiguous allocation)。操作系统(OS)210分配为大页面220设定大小的连续和自然对准的物理页面地址范围。作为示例,大页面大小可以是1GB。
OS210然后执行将小页面222按需求分页到地址范围220中。OS210包括将页面内小页面222映射到存储器中的物理地址的小页面映射212。小页面可以例如是4KB。小页面映射212也可以包括用于每个小页面的用于标识页面是有效还是无效的页面保护位(未示出)。页面映射也可以被称为页表或者页保护表中的条目。软件管理的页面表条目通常包括虚拟存储器地址、对应物理页面地址、页面大小以及页面保护位和访问位的某一表示。
转向图2B,OS210可以确定何时填满大页面220。OS210可以确定所有小页面被映射到大页面存储器范围220中的连续和自然对准的地址,从而大页面220由有效小页面填充。OS210然后可以向将大页面映射到存储器中的物理地址的大页面映射214切换。大页面映射214也可以包括用于每个大页面的用于表示页面是有效还是无效的页面保护位。
根据一个说明性实施例,OS210可以同时使用小页面映射212和大页面映射214作为分层叠加。在这一实施例中,分层叠加是使用在不同粒度到相同存储器区域的多个映射。因此,OS210可以使用大页面映射214,并且响应于从大页面排除小页面回退到小页面映射212。例如OS210可以响应于写时复制操作和/或基于需求的取读回退到小页面映射212。
OS210可以通过将页面保护位设置成无效状态来排除小页面映射212中的小页面。响应于操作系统内核需要释放存储器,OS210可以从大页面映射214适度降级到页面映射212。OS210然后可以释放与无效小页面关联的物理存储器。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图3是图示根据一个说明性实施例的用于自动使用大页面的机制的操作的流程图。操作开始于块300中,并且机制确定是否接收页面请求(块301)。页面请求可以是产生页面故障的存储器访问请求。出于这一实施例的方面的目的,机制将每个这样的实例视为针对小页面的请求。如果机制在块301中未接收页面请求,则块301的操作重复直至接收页面请求。
如果在块301中接收页面请求,则机制分配用于大页面的连续和自然对准的物理地址范围(块302)。机制然后将小页面取回到物理地址范围内的对应小页面内(块303)并且标记小页面为有效(块304)。机制然后确定大页面地址范围是否为满(块305)。机制通过确定大页面地址范围是否由有效小页面填满来确定大页面是否为满。
如果大页面地址范围未满,则机制确定是否接收页面请求(块306)。页面请求可以是造成页面故障的存储器访问请求。出于这一实施例的方面的目的,机制将每个这样的实例视为针对小页面的请求。如果机制在块306中未接收页面请求,则块306的操作重复直至接收页面请求。如果机制在块306中接收页面请求,则操作返回到块303和304以取回小页面并且标记小页面为有效。
如果大页面地址范围在块305为满,则机制切换到大页面映射(块307)并且操作结束(块308)。
图4是图示根据一个说明性实施例的用于将大页面分解成小页面映射的机制的操作的流程图。操作开始(块400),并且机制分配用于大页面的地址范围(块401)并且生成大页面映射(块402)。机制可以通过如上文关于图3描述的那样从小页面映射向大页面映射切换或者通过响应于页面故障在大页面中分页来生成大页面映射。
机制然后确定是否排除大页面映射内的小页面(块403)。机制可以使用分层叠加,该分层叠加使用在不同粒度到相同存储器区域的多个映射。机制可以例如响应于在写入时操作和/或基于需求的取读来排除页面。如果机制确定排除小页面,则机制在小页面映射中标记小页面为无效(块404)。随后或者如果机制在块403中未确定将排除小页面,则机制确定是否释放存储器(块405)。如果操作系统无需释放存储器,则操作返回到块403以确定是否排除小页面。
如果操作系统在块405中需要释放存储器,则机制向小页面映射切换(块406)。机制然后释放与无效小页面关联的物理存储器(块407)。随后,操作结束(块408)。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
因此,说明性实施例提供用于自动使用大页面的机制。在说明性实施例中,操作系统加载器执行激进连续分配,继而为将小页面按需求分页到为大页面设定大小的尽量连续和自然对准的物理地址范围中。操作系统检测何时填满大页面并且切换映射以使用大页面。如果操作系统运行时存储器量较低,则操作系统可以释放一部分并且适度降级。
说明性实施例去除对使用大页面的软件和系统屏障。说明性实施例的机制透明地提高大页面对现有和将来软件应用的适用性。说明性实施例支持默认高效使用页面表条目和关联高速缓存。说明性实施例的机制有利于性能、效率和虚拟化。
如上文指出的那样,应当理解,说明性实施例可以采用全硬件实施例、全软件实施例或者包含硬件与软件单元二者的实施例这样的形式。在一个示例实施例中,在包括但不限于固件、常驻软件、微代码等的软件或者程序代码中实施说明性实施例的机制。
适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或者间接耦合到存储器单元的至少一个处理器。存储器单元可以包括在实际执行程序代码期间运用的本地存储器、大容量存储装置和高速缓冲存储器,这些高速缓冲存储器提供暂时存储至少一些程序代码以便减少必须在执行期间从大容量存储装置取回代码的次数。
输入/输出或者I/O设备(包括但不限于键盘、显示器、指示设备等)可以直接或者通过居间I/O控制器耦合到系统。网络适配器也可以耦合到系统以使数据处理系统能够变成通过居间专用或者公共网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、线缆调制解调器和以太网卡仅为当前可用网络适配器类型的少数类型。
本发明的描述已经出于示例和描述的目的而加以呈现、但是未旨在于穷举本发明或者使本发明限于公开的形式。许多修改和变化将为本领域普通技术人员所清楚。选择和描述实施例以便最佳地说明本发明的原理、实际应用并且使本领域其他普通技术人员能够针对具有如与设想的特定使用相适合的各种修改的各种实施例来理解本发明。

Claims (12)

1.一种在数据处理系统中的用于自动使用大页面的方法,所述方法包括:
响应于页面请求,分配物理存储器中的用于大页面的地址范围;
将小页面取回到用于所述大页面的所述地址范围内的、所述小页面的对应物理存储器部分中;
使用小页面映射表来映射所述小页面;
响应于将小页面后续页入到用于所述大页面的所述地址范围造成所述大页面被填满,使用大页面映射表来映射所述大页面;以及
响应于所述后续页入造成所述大页面被填满,切换到大页面映射以用于对用于所述大页面的所述地址范围的后续访问。
2.根据权利要求1所述的方法,其中使用所述小页面映射表来映射所述小页面包括:
使用所述小页面映射表中的页面保护位来标记所述小页面为有效。
3.根据权利要求2所述的方法,还包括:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的写时复制操作,对所述给定的小页面执行所述写时复制操作,并且在所述小页面映射表中标记所述给定的小页面无效。
4.根据权利要求2所述的方法,还包括:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的基于需求的取读,对所述给定的小页面执行所述基于需求的取读,并且在所述小页面映射表中标记所述给定的小页面无效。
5.根据权利要求1所述的方法,还包括:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的写时复制操作,对所述给定的小页面执行所述写时复制操作;以及
针对用于所述大页面的所述地址范围切换到小页面映射。
6.根据权利要求1所述的方法,还包括:
响应于操作系统内核需要存储器,针对用于所述大页面的所述地址范围切换到小页面映射,并且释放用于所述大页面的所述地址范围内的与无效小页面对应的物理存储器。
7.一种装置,包括:
处理器;以及
耦合到所述处理器的存储器,其中所述存储器包括指令,所述指令在由所述处理器执行时使所述处理器:
响应于页面请求,分配物理存储器中的用于大页面的地址范围;
将小页面取回到用于所述大页面的所述地址范围内的、用于所述小页面的对应物理存储器部分中;
使用小页面映射表来映射所述小页面;
响应于将小页面后续页入到用于所述大页面的所述地址范围造成所述大页面被填满,使用大页面映射表来映射所述大页面;以及
响应于所述后续页入造成所述大页面被填满,切换到大页面映射以用于对用于所述大页面的所述地址范围的后续访问。
8.根据权利要求7所述的装置,其中使用所述小页面映射表来映射所述小页面包括:
使用所述小页面映射表中的页面保护位来标记所述小页面为有效。
9.根据权利要求8所述的装置,其中所述指令还使所述处理器:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的写时复制操作,对所述给定的小页面执行所述写时复制操作,并且在所述小页面映射表中标记所述给定的小页面无效。
10.根据权利要求8所述的装置,其中所述指令还使所述处理器:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的基于需求的取读,对所述给定的小页面执行所述基于需求的取读,并且在所述小页面映射表中标记所述给定的小页面无效。
11.根据权利要求7所述的装置,其中所述指令还使所述处理器:
响应于针对在用于所述大页面的所述地址范围内的、与给定的小页面对应的地址的写时复制操作,对所述给定的小页面执行所述写时复制操作;以及
针对用于所述大页面的所述地址范围切换到小页面映射。
12.根据权利要求7所述的装置,其中所述指令还使所述处理器:
响应于操作系统内核需要存储器,针对用于所述大页面的所述地址范围切换到小页面映射,并且释放用于所述大页面的所述地址范围内的与无效小页面对应的物理存储器。
CN201310334710.3A 2012-08-03 2013-08-02 用于自动使用大页面的方法和装置 Expired - Fee Related CN103577333B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/565,985 2012-08-03
US13/565,985 US8954707B2 (en) 2012-08-03 2012-08-03 Automatic use of large pages

Publications (2)

Publication Number Publication Date
CN103577333A true CN103577333A (zh) 2014-02-12
CN103577333B CN103577333B (zh) 2017-03-29

Family

ID=50026681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310334710.3A Expired - Fee Related CN103577333B (zh) 2012-08-03 2013-08-02 用于自动使用大页面的方法和装置

Country Status (2)

Country Link
US (1) US8954707B2 (zh)
CN (1) CN103577333B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326144A (zh) * 2015-06-24 2017-01-11 龙芯中科技术有限公司 基于大页映射的数据读取方法及装置
CN106844704A (zh) * 2017-02-04 2017-06-13 上海钱柳电子商务有限公司 用于处理页面数据的方法及用于处理页面数据的装置
CN108920254A (zh) * 2018-06-27 2018-11-30 中国科学技术大学 一种基于细粒度的内存分配方法
CN113608866A (zh) * 2021-07-13 2021-11-05 阿里巴巴新加坡控股有限公司 内存分配方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016175814A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Mapping apertures of different sizes
KR102402780B1 (ko) * 2015-06-04 2022-05-27 삼성전자 주식회사 메모리 관리 방법 및 장치
CN105389266B (zh) * 2015-10-16 2019-03-01 北京联想核芯科技有限公司 一种数据管理方法及装置
US10261703B2 (en) * 2015-12-10 2019-04-16 International Business Machines Corporation Sharing read-only data among virtual machines using coherent accelerator processor interface (CAPI) enabled flash
CN107818014B (zh) * 2017-10-11 2020-06-09 晶晨半导体(上海)股份有限公司 一种内存分配方法以及多核并发的内存分配方法
CN113326422B (zh) * 2020-02-28 2024-06-21 北京沃东天骏信息技术有限公司 一种信息获取方法、装置、设备及介质
CN112905497B (zh) * 2021-02-20 2022-04-22 迈普通信技术股份有限公司 内存管理方法、装置、电子设备及存储介质
US20240211409A1 (en) * 2022-12-21 2024-06-27 International Business Machines Corporation Dynamic management of larger pages during runtime

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1617113A (zh) * 2003-11-13 2005-05-18 国际商业机器公司 向物理内存分配虚拟内存的方法、存储控制器和计算机系统
US20070288719A1 (en) * 2006-06-13 2007-12-13 Udayakumar Cholleti Approach for de-fragmenting physical memory by grouping kernel pages together based on large pages
US20110004739A1 (en) * 2009-07-01 2011-01-06 Hohmuth Michael P Extended page size using aggregated small pages
CN102339302A (zh) * 2011-07-07 2012-02-01 曙光信息产业股份有限公司 一种基于hugetlbfs技术的龙芯刀片文件系统的实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395406B2 (en) 2005-05-12 2008-07-01 International Business Machines Corporation System and method of large page handling in a virtual memory system
US7475183B2 (en) 2005-12-12 2009-01-06 Microsoft Corporation Large page optimizations in a virtual machine environment
US7917725B2 (en) 2007-09-11 2011-03-29 QNX Software Systems GmbH & Co., KG Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
JP4915756B2 (ja) 2009-12-16 2012-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーション アドレス変換を高速化する方法及びシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1617113A (zh) * 2003-11-13 2005-05-18 国际商业机器公司 向物理内存分配虚拟内存的方法、存储控制器和计算机系统
US20070288719A1 (en) * 2006-06-13 2007-12-13 Udayakumar Cholleti Approach for de-fragmenting physical memory by grouping kernel pages together based on large pages
US20110004739A1 (en) * 2009-07-01 2011-01-06 Hohmuth Michael P Extended page size using aggregated small pages
CN102339302A (zh) * 2011-07-07 2012-02-01 曙光信息产业股份有限公司 一种基于hugetlbfs技术的龙芯刀片文件系统的实现方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326144A (zh) * 2015-06-24 2017-01-11 龙芯中科技术有限公司 基于大页映射的数据读取方法及装置
CN106844704A (zh) * 2017-02-04 2017-06-13 上海钱柳电子商务有限公司 用于处理页面数据的方法及用于处理页面数据的装置
CN108920254A (zh) * 2018-06-27 2018-11-30 中国科学技术大学 一种基于细粒度的内存分配方法
CN108920254B (zh) * 2018-06-27 2021-07-06 中国科学技术大学 一种基于细粒度的内存分配方法
CN113608866A (zh) * 2021-07-13 2021-11-05 阿里巴巴新加坡控股有限公司 内存分配方法及装置

Also Published As

Publication number Publication date
CN103577333B (zh) 2017-03-29
US8954707B2 (en) 2015-02-10
US20140040577A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
CN103577333A (zh) 用于自动使用大页面的方法和装置
US11500810B2 (en) Techniques for command validation for access to a storage device by a remote client
KR101456860B1 (ko) 메모리 디바이스의 전력 소비를 감소시키기 위한 방법 및 시스템
CN101221544B (zh) 用于执行dma块移动的方法及dma设备
CN100573477C (zh) 管理锁定的高速缓冲存储器中的组替换的系统和方法
CN104756090A (zh) 提供扩展的缓存替换状态信息
CN104040516A (zh) 用于数据去重的方法、设备和系统
CN103562874B (zh) 解除配置存储级内存命令
TWI659305B (zh) 用於擴展私用快取中快取行之獨佔持有之設備
MX2012014534A (es) Espacios de multiples direcciones por adaptador.
US8813083B2 (en) Method and system for safe enqueuing of events
US10678711B2 (en) Key-based data security management
BR112013031825B1 (pt) Blocos de especificação de movimento de encadeamento
CN110661768A (zh) 高速缓存线转储清除操作的选择性执行
CN113454589A (zh) 用于多级虚拟化的定向中断
CN104126181A (zh) 作为随机存取存储器的非易失性半导体存储装置的系统存取的薄变换
US10565141B1 (en) Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks
US8583890B2 (en) Disposition instructions for extended access commands
CN113454591A (zh) 具有阻止指示符的定向中断虚拟化
KR20170013269A (ko) 플래시 메모리 기반의 저장 디바이스의 입/출력 가상화 (iov) 호스트 제어기 (hc) (iov-hc) 에서의 커맨드 트랩
US20210263798A1 (en) Raid storage-device-assisted parity update data storage system
CN112930532A (zh) 控制合并操作的存储访问
CN111897485A (zh) 一种数据存储方法、装置、电子设备及存储介质
US10936420B1 (en) RAID storage-device-assisted deferred Q data determination system
CN104050396A (zh) 用于保护数字内容的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
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: 20170329

Termination date: 20200802