机会主义的页放大的制作方法

xiaoxiao2020-7-22  14

专利名称:机会主义的页放大的制作方法
机会主义的页放大背景在计算设备上执行的进程常常需要在计算中使用数据。该数据通常由操作系统存储在存储器中,诸如RAM。该存储器被拆成被成为页的组块。每一页与唯一地址相关联。在进程需要数据时,通过数据的唯一地址来引用数据,并且使用该地址来查找页的物理位置以返回数据。执行该地址到物理位置的转换的一种常见方式是通过遍历页表分层结构。这种分层结构将寻址的页的大小与分层结构中的层的数量进行折衷。然而,页的大小还规定使用存储器空间的效率,且页越大效率越低。因此,在空间效率(由于页大小)和转换时间效率(由于页表分层结构中的页的数量)之间存在直接折衷。确定页表系统的效率的附加因素包含进程的需求。如果进程通常需要大量的数据,则实际上就存储器使用而言,较大的页可能是高效的。然而,如果进程通常需要少量的数据,则较小的页可能更高效。因为两种类型的进程都在计算设备上操作,所以动态地支持两者的方法将导致更高的效率。操作系统对大的页的支持在计算设备中也不如对较小尺寸的页的支持那样稳健。这造成了在使用大的页时的额外挑战。概述提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的各实施例涉及扫描页表分层结构中的最后一层来定位候选页表条目 (PTE)以供转换成大的页映射。一旦定位了候选PTE,则通过以下操作来将这些候选PTE转换成大的页定位物理存储器中大的、连续的段,将与候选页表页中的所有PTE相关联的数据传送到所定位的存储器段,并且然后将页表分层结构的最后一层之前一层的页表页中的 PTE调整为与新创建的大的页相关联。在某些实施例中,在接收到指示要转换回小的页的大的页的通知时,创建新的页表页。新的页表页中的每一 PTE与大的页中的小的段相关联,并且将分层页表系统中最后一层之前一层的页表中的PTE调整为与新的页表页相关联。附图简述下面参考附图详细描述本发明,附图中

图1描绘了适用于实现本发明的示例性计算设备的框图;图2是操作系统和用户进程所使用的典型的物理存储器布局的图示;图3描绘了页表和物理存储器之间的示例性关系;图4描绘了示例性分层页表系统;图5是示出用于寻找候选页表以供转换成大的页并执行该转换的方法的流程图;图6是示出用于接收要将大的页转换成与小的页相关联的页表的通知并执行该转换的方法的流程图;以及图7是示出用于接收要将大的页转换成与小的页相关联的页表的通知或用于接收指示是时候扫描候选页表以供转换成大的页的超时的方法的流程图。详细描述
此处用细节来描述本发明的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序,否则该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。本发明的各实施例涉及机会主义地定位可被转换成大的页的PTE组并执行该转换。另外,一旦将页表页转换成了大的页,作为对来自操作系统的通知的反应,可以执行逆过程。根据本发明的某些实施例,计算设备的存储器子系统管理共享的存储器资源。一个或多个进程的计算所需的数据被存储在共享的存储器资源中。通常,在计算设备上执行的进程不知道数据的物理位置。相反,向这些进程呈现将地址映射到存储器中的物理位置的地址空间。在计算设备上执行的一个或多个进程使用该地址来引用计算所需的数据。计算设备的存储器子系统处理从地址到物理位置的转换,执行地址查找。在现代计算设备中,物理存储器被分成称为页的段。这些页表示可由页表分层结构表示的最小数据大小。计算设备的存储器子系统使用页表来将虚拟地址映射到存储器中的物理位置。页表系统存在多个可能的布局;然而,从地址到物理存储器位置的最常见的映射使用多次分层页表查找,这将在以下详细描述。这些分层结构允许固定的地址大小(通常按位来度量)寻址大量物理存储器。这样的分层表查找需要多次存储器访问来定位与给定虚拟地址相关联的物理页。就地址到物理存储器转换所花费的时间而言,分层页表系统中的层越多,数据访问操作越昂贵。然而,页表分层结构中的层的数量和页大小之间同样存在折衷。页表分层结构中的层越少暗示着页大小越大。因此,对于使用小的数据段的应用程序,小的页大小并因此较深的分层结构允许较少的存储器浪费。然而,对于使用大量数据的应用程序,较大的页大小将减少定位所需数据所需要的页表查找的数量,并因此提高查找效率。当不再需要特定数据片或者在阈值时间段内未访问过特定数据片时,存储器子系统将该数据片保存到盘,释放存储器来用于更频繁地或当前需要的数据的做法是常见的。 该过程被称为换出存储器。然而,许多存储器子系统只能换出某一固定的页大小。因此,创建大于该固定大小的页的任何机制将不得不具备在必须换出大的页的某一部分的情况下将大的页分成多个较小尺寸的页的能力。存在存储器子系统需要将大的页分成较小尺寸的页的许多其他情形。由此,本发明的一个实施例涉及包含计算机可使用指令的计算机可读存储介质, 这些指令用于执行一种将与在计算设备上操作的一个或多个进程相关联的多个小的页转换成大的页的方法。每一个页与来自包含至少两层页表的分层页表系统的页表中的条目相关联。该方法包括扫描分层页表系统的最后一层来寻找候选PTE,该候选PTE是带有与页相关联的至少阈值个数的条目的页表。该方法随后定位足够大的物理上连续的存储器段来存储与候选页表中的条目相关联的每一个页,并将每一个页中的存储器段复制到所定位的存储器段。该方法将分层页表系统中最后一层之前一层的页表中的页表条目调整为与新创建的大的页相关联。
根据其他实施例中,本发明涉及存储计算机可执行指令的计算机可读介质,这些指令具体化一种将大的页转换成与在计算机系统上执行的一个或多个进程相关联的多个小的页的方法。每一个页与分层页表系统中的页表条目相关联。该方法包括接收指示要被转换成一组小的页的大的页的操作系统通知。在接收到该通知之后,创建新页表,并且该新页表中的条目与大的页中的小的段相关联。该方法包括将来自分层页表系统中最后一层之前的一层的页表的条目调整为与新页表相关联。根据其他实施例,本发明涉及存储计算机可执行指令的计算机可读介质,这些指令具体化一种扫描与在计算机系统上执行的一个或多个进程相关联的多个地址空间中的每一个中的、含有至少两层页表的分层页表系统的最后一层的方法。该扫描涉及尝试标识候选页表,该候选页表是对于其每一条目与物理存储器的一个或多个段相关联的页表。该方法还包括定位由连续的物理存储器段组成的存储器段,该存储器段足够大来存储与候选页表中的所有条目相关联的多个物理存储器段中的每一个,并且将这些物理存储器段复制到新定位的存储器段中。该方法释放包含候选页表的存储器段,并将分层页表系统中最后一层之前一层的页表中的、与候选页表相关联的页表条目调整为与被称为大的页的新定位的存储器段相关联。该方法还包括从不能够换出大的页的存储器子系统接收指示要换出大的页中的一个或多个段的指示。该方法还包括创建新页表,该新页表中的每一条目与包含要被换出的一个或多个段的大的页中的段相关联。该方法还包括将分层页表系统中最后一层之前一层的页表中的、先前与大的页相关联的页表条目调整为与新页表相关联。在简要描述了本发明各实施方式的概览之后,以下描述其中可实现本发明的各实施例的示例性操作环境,以便为本发明各方面提供通用上下文。首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,而非旨在对本发明的使用范围或功能提出任何限制。计算设备100也不应被解释成对于所示出的任一组件或其组合有任何依赖或要求。本发明可以在计算机代码或机器可使用指令(包括由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行的诸如程序模块之类的计算机可执行指令)的一般上下文中来描述。一般而言,包括例程、程序、对象、组件、数据结构等等的程序模块是指执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、更专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。参考图1,计算设备100包括直接地或间接地耦合以下设备的总线110 存储器 112、一个或多个处理器114、一个或多个外部存储组件116、输入/输出(I/O)端口 118、输入组件120、输出组件121以及说明性电源122。总线110表示一个或多个总线(诸如地址总线、数据总线或其组合)。虽然为了清楚起见利用线条示出了图1的各框,但是实际上, 各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,许多处理器具有存储器。我们认识到这是本领域的特性,并重申,图1的图示只是例示可以结合本发明的一个或多个实施例来使用的示例性计算设备。诸如“工作站”、“服务器”、 “膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图1的范围之内的并且被称为“计算设备”。计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于, RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、 磁带盒、磁带、磁盘存储或其他磁存储设备、或能用于存储所需信息且可以由计算设备100 访问的任何其他介质。存储器112包括易失性存储器形式的计算机存储介质。示例性硬件设备包括固态存储器,诸如RAM。外部存储116包括非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等等。计算设备100包括从诸如存储器112、外部存储116或输入组件120之类的各种实体读取数据的一个或多个处理器。输出组件121向用户或其它设备呈现数据指示。 示例性输出组件包括显示设备、扬声器、打印组件、振动组件等等。I/O端口 118可允许计算设备100在逻辑上耦合到包括输入组件120和输出组件 121在内的其他设备,其中一些可以是内置的。说明性组件包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、打印机、无线设备等等。根据本发明的一个实施例,计算设备100可被用作系统管理程序,其是从操作系统或在计算设备100上运行的系统中抽象计算设备100的各组件,诸如输入组件120的虚拟化平台。该系统管理程序通过允许每一独立的操作系统访问其自己的虚拟机的这种抽象来允许多个操作系统在单个计算设备100上运行。在系统管理程序计算设备中,与遍历页表分层结构相关联的开销以及使用大的页的好处甚至比运行直接访问计算设备100的各组件的单个操作系统的系统更大。转向图2,诸如RAM之类的物理存储器200被分成多个部分。根据本发明的某些实施例,存储器被分成两个主分区操作系统存储器空间201和用户存储器空间202。在计算设备上执行的操作系统的存储器子系统管理物理存储器200,允许用户应用程序使用部分用户存储器空间202。然而,应用程序可能无法访问连续的存储器位置。参考图2,根据本发明的某些实施例,用户存储器空间202被分成页(由框表示),其分布在仅出于说明而非限制的两个假设应用程序之间应用程序1空间由χ表示(例如,存储器段20 和应用程序2由/表示(例如,存储器段204)。空闲的存储器页在图示中是干净的(例如,存储器段205)。可以出于多个目的来使用操作系统存储器空间201,其中的一个是要存储包含从地址空间到物理存储器的映射的页表206。对于应用程序,这些映射将用户存储器空间202 中的页进行相关,其中数据与地址一起存储。如图3所示,根据本发明的一个实施例,页表301包括条目303,其中的每一个条目与存储在物理存储器304中的用户存储器空间中的特定页相关联。注意,页表301中的条目303可以不必与物理存储器中的连续页304相关联。现在参考图4,根据本发明的各实施例,地址401由位串来表示。这些地址通过分层页表系统402来映射。作为示例而非限制,考虑48位寻址方案401和四层分层页表系统 402。48位地址401被分成五个部分。使用第一组9位403来索引到第一页表401中。由地址401的第一组9位403定位在第一页表404中的条目与存储第二页表406的存储器段422相关联。第二组9位405索引到第二页表406中。位于第二页表406中的条目与包含第三页表408的存储器段422相关联。地址401的第三组9位407索引到第三页表408中。 位于第三页表408中的条目与包含第四页表410的存储器段423相关联。地址401的第四组9位409索引到第四页表410中。位于第四页表410中的条目与用户空间存储器中包含页412的存储器段似4相关联。地址401的后12位411索引到页412中。后12位给出的索引处的页412中的存储器段是被地址401引用的数据。如可以见到的,在查找经由分层页表系统来寻址的数据的过程中,每一页表查找至少存在一次存储器访问。本领域技术人员将明白,具体地址大小、页表数量、页表分层系统中层的数量以及页的大小可以不同。仅作为示例而非限制,页大小可以是4KB、2MB或1GB。地址大小的范围例如可以从32位到64位。给出图4中的示例,每一页表具有512个条目Q9)且每一页是 4KBQ12)。需要花四次页表查找来定位页中的数据。如果要将与页表中的所有512个条目相关联的所有数据组合在单个页中,则所得页(被称为大的页)将是2MB,并且将只需要三次页表查找来在分层页表系统中进行定位。转向图5,提供了示出用于寻找候选页表来转换成大的页并由此转换页表的方法 500的流程图(框550包含在以下讨论的不带框503所示的超时部分的该方法的各步骤)。 如框501所示,扫描页表分层系统的最后一层来寻找候选页表以供转换成大的页。例如,可以扫描其中存在第四页表410的图4的页表分层结构的最后一层来寻找候选页表。本领域技术人员将明白,可以使用各种各样的准则来确定页表是否是供转换成大的页的候选。仅作为示例而非限制,这些准则可以包括寻找完整的页表或寻找具有阈值个数的完整条目的页表。完整的页表是其中页表的所有条目与物理存储器中的位置相关联的页表。根据本发明的一个实施例,该扫描涉及扫描与最后一层之前一层的页表中的条目相关联的每一个页表,并检查所找到的最后一层页表来确定它们是否构成完整的页表。本领域技术人员将明白,定义阈值有许多方式,包括但不限于,与物理存储器位置相关联的条目的百分比或与物理存储器位置相关联的条目的总数。通过扫描分层页表系统的最后一层(例如,图4中页表410位于其中的一层),可以标识一个或多个候选页表(见框50 。如果未标识候选页表,则在框501执行另一扫描之前存在时间延迟503。该时间延迟503是可由程序员、系统管理员、用户或具有对系统的适当的访问权的任何其他人调整的参数。然而,如果已经标识了候选页表,则定位足够大的连续存储器段来存储与候选页表中的每一条目相关联的数据,如框504所示。在各实施例中,定位存储器段涉及扫描物理存储器来寻找足够数量的连续存储器段来存储与候选页表相关联的所有条目。回想,页表可能不具有与连续物理存储器段相关联的连续条目。然而,在将候选页表中的条目转换成大的页时,必须按照与其相关联的页表中的次序来存储这些条目。根据本发明的一个实施例,定位存储器段仅仅是扫描物理存储器并寻找大的连续存储器段(例如,2MB)。在某些实施例中,该扫描可通过扫描包含系统中所有物理页的状态的页帧号数据库来执行。另外,可将大的连续存储器段限于在预定字节边界上开始。作为示例而非限制,考虑使用512个4KB小尺寸页来组合成2MB的大的页的以上示例,预定字节边界可以是2MB字节边界。本领域技术人员将明白,可以将许多其他值用于预定字节边界。根据本发明的另一实施例,如果不能找到足够的连续存储器段,则激活存储器管理子例程,该子例程通过将所存储的数据移动到远离存储器中特定位置的空段并调整其相应的页表条目来主动地创建大的连续存储器段。以此方式,创建大的连续存储器段以便在大的页表转换中使用。一旦定位了或创建了足够大小的连续存储器段,则按次序将与候选页表中的条目相关联的所有物理存储器段复制到所定位的存储器段,如框505所示。在本发明的一个实施例中,在将物理存储器段复制到所定位的段中时,释放物理存储器的原始位置。在本发明的另一实施例中,与候选页表中的每一条目相关联的每一存储器段的原始存储器位置还保留其数据的副本。如框506所示,将分层页表系统的最后一层之前一层的页表条目(例如,图4的页表408)与新的大的页相关联。在本发明的一个实施例中,释放经转换的页表,并且将来自分层页表系统中最后一层之前一层的、与被释放的页表相关联的页表条目调整为与新的大的页相关联。在将候选转换成大的页之后,在对新候选页表的另一次扫描开始之前在框503 存在时间延迟。在框503的这一时间延迟是可由程序员、系统管理员、用户或具有对系统的适当的访问权的任何其他人调整的参数。转向图6,提供了示出用于将大的页转换成与多个较小尺寸的页相关联的页表条目的方法600的流程图。根据本发明的一个实施例,在框601接收标识要被转换成小的页的大的页的操作系统通知。本领域技术人员将明白,存在许多可以触发这一通知的情况。仅作为示例而非限制,这些情况包括,大的页中的段被调度为由不具有换出大的页的能力的操作系统换出到系统中的盘,以及与存储器相关联的页表条目属于正被销毁的应用程序存储器空间。在接收到指示要转换的大的页的通知之后,创建新页表,如框602所示。根据本发明的一个实施例,该创建涉及将操作系统存储器空间中的存储器分配给新表。一旦创建了页表,在框603,将新页表中的每一条目与大的页中的一个较小尺寸的段相关联,直到大的页中的所有段都与新页表中的某一条目相关联。继续图4的示例,新页表中的512个页表条目中的每一个将与大的页中的一个4KB段相关联。最后,将来分层页表系统中最后一层之前一层(例如,图4中页表408所在的那层)的页表条目调整为与新页表相关联,如框604所示。根据本发明的一个实施例,来自分层页表系统中最后一层之前一层的页表的、与新的页表相关联的条目是先前与大的页相关联的条目。根据本发明的又一实施例,图7呈现将页表转换成大的页并将大的页转换成与多个较小尺寸的页相关联的页表的方法700。首先,该方法涉及等待事件,如框701所示。作为示例而非限制,该事件可以是超时或操作系统通知。本领域技术人员将明白,存在多个可以触发任一类型的转换的其他事件。一旦事件发生,作出决策。如果该事件是指示时间延迟已经期满702的超时,则例如根据图5的方法550,尝试将来自分层页表系统中最后一层的页表转换成大的页。该时间延迟是可由程序员、系统管理员、用户或具有对系统的适当的访问权的任何其他人调整的参数。如果该事件是操作系统通知702,则例如根据图6的方法600,将大的页转换成指向较小尺寸的页的条目的页表。在完成尝试将页表转换成大的页的方法或将大的页转换成带有与多个较小尺寸的页相关联的页表的方法中的任一个之后, 在框701再次进入等待时间段。在另一操作系统通知到达或时间延迟期满中的任一个发生时,该等待时间段再次期满。
在不偏离本发明的精神和范围的情况下,所描绘的各种组件的许多不同的布局, 以及未示出的组件也是可以的。所描述的本发明的各实施例旨在是说明性的而非限制性的。不偏离其范围的备选实施例对于本领域的技术人员是显而易见的。在不偏离本发明的范围的情况下,精通技术的人员可以开发用于实现如前所述的改进的备选装置。可以理解,某些特征和子组合是有用的,并且可以在不参考其他特征和子组合的情况下使用,它们都在权利要求书的范围内。并非各种图形中所列出的所有步骤都需要按所描述的特定的顺序执行。
权利要求
1.一种或多种存储计算机可执行指令的计算机可读介质,所述指令用于执行一种将与在计算机系统上执行的一个或多个进程相关联的多个小的页转换成大的页的方法,所述多个小的页中的每一个与来自包含至少两层页表的分层页表系统的多个页表条目中的一个相关联,所述方法包括扫描(501)所述分层页表系统的最后一层来寻找其中至少阈值个数的多个条目中的每一个与多个页中的一个相关联的页表,以得到候选页表的标识;定位(504)由多个连续物理存储器段组成的存储器段,所述存储器段足够大来存储与所述候选页表中的所有多个条目相关联的所述多个物理存储器段中的每一个;将与所述候选页表中的所有多个条目相关联的所述多个物理存储器段中的每一个复制(50 到由多个连续物理存储器段组成的存储器段中;以及将所述分层页表系统中的最后一层之前一层的页表中的页表条目调整(506)为与由多个连续物理存储器段组成的存储器段相关联。
2.如权利要求1所述的介质,其特征在于,扫描所述分层页表系统的最后一层包括选择性地扫描与在所述计算机系统上执行的一个或多个进程相关联的多个地址空间中的每一个。
3.如权利要求1所述的介质,其特征在于,所述阈值个数的多个条目是所述多个条目的全部。
4.如权利要求1所述的介质,其特征在于,所述候选页表的多个条目中的每一个与在所述计算机系统上执行的一个或多个进程中的单个进程相关联。
5.如权利要求1所述的介质,其特征在于,定位由多个连续物理存储器段组成的存储器段包括将数据从物理存储器区域附近的第一位置复制到远离所述区域的第二位置,以便创建足够大的多个连续物理存储器段来存储与所述候选页表的多个条目相关联的所述多个物理存储器段中的每一个。
6.如权利要求1所述的介质,其特征在于,由多个连续物理存储器段组成的所述存储器段在预定字节边界上。
7.如权利要求1所述的介质,其特征在于,复制与所述候选页表的所有多个条目相关联的所述多个物理存储器段中的每一个还包括在复制之后释放所述多个物理存储器段。
8.如权利要求1所述的介质,其特征在于,所述分层页表系统中的最后一层之前一层的页表中的所述页表条目先前与所述候选页表相关联。
9.如权利要求1所述的介质,其特征在于,调整页表条目还包括释放包含所述候选页表的存储器段。
10.一种或多种存储计算机可执行指令的计算机可读介质,所述指令用于执行一种将大的页转换成与在计算机系统上执行的一个或多个进程相关联的多个小的页的方法,所述小的页中的每一个与来自包含至少两层页表的分层页表系统的一个或多个页表条目相关联,所述方法包括接收(601)指示将被转换成多个小的页的大的页的操作系统通知;创建(60 新页表;将所述新页表中的多个条目中的每一个与所述大的页的段相关联(603);以及将所述分层页表系统中的最后一层之前一层的页表中的页表条目调整(604)为与所述新页表相关联,其中所述分层页表系统中的最后一层之前一层的页表中的所述页表条目先前与所述大的页相关联。
11.如权利要求10所述的介质,其特征在于,所述操作系统通知是由于换出所述大的页的一个或多个段的需求。
12.如权利要求10所述的介质,其特征在于,所述操作系统通知是由于包含所述大的页的地址空间正被移除。
13.如权利要求10所述的介质,其特征在于,所述新页表具有等于所述大的页的大小除以预定小的页大小的数量的条目。
14.一种或多种存储用于执行一种方法的计算机可执行指令的计算机可读介质,所述方法包括在与在计算机系统上执行的一个或多个进程相关联的多个地址空间中的每一个中扫描(501)包含至少两层页表的分层页表系统的最后一层来寻找其中至少阈值个数的多个条目中的每一个与多个物理存储器段中的一个相关联的页表,以得到候选页表的标识;定位(504)由多个连续物理存储器段组成的存储器段,所述存储器段足够大来存储与所述候选页表中的所有多个条目相关联的所述多个物理存储器段中的每一个;将与所述候选页表中的所有多个条目相关联的所述多个物理存储器段中的每一个复制(50 到由多个连续物理存储器段组成的存储器段中;释放(50 包含所述候选页表的存储器段;将所述分层页表系统中最后一层之前一层的页表中的页表条目调整(506)为与由多个连续物理存储器段组成的存储器段相关联,所述页表条目先前与所述候选页表相关联;从不能够换出大的页的存储器子系统接收(601)指示要换出大的页的段的指示;创建(60 新页表,所述新页表中的每一条目与所述大的页的段相关联;以及将所述分层页表系统中最后一层之前一层的页表中的页表条目调整(604)为与所述新页表相关联,其中所述分层页表系统中的最后一层之前一层的页表中的所述页表条目先前与所述大的页相关联。
15.如权利要求14所述的介质,其特征在于,所述分层页表系统包含四层。
16.如权利要求14所述的介质,其特征在于,每一小的页是4KB。
17.如权利要求14所述的介质,其特征在于,每一大的页是2MB。
18.如权利要求14所述的介质,其特征在于,由多个连续物理存储器段组成的所述存储器段在预定字节边界上。
19.如权利要求18所述的介质,其特征在于,所述预定字节边界是2MB。
20.如权利要求14所述的介质,其特征在于,所述分层页表系统中的页表是根据64位体系结构来寻址的。
全文摘要
扫描分层页表系统中最后一层中的页表来寻找候选页表。将候选页表转换成大的页,将分层页表系统中最后一层之前一层中的页表条目调整为与新创建的大的页相关联。在接收到要将大的页转换成页表的通知之后,创建新的页表。新的页表页中的每一条目与大的页中的小的存储器段相关联,并将分层页表系统中最后一层之前一层的页表中的条目调整为与新的页表相关联。
文档编号G06F12/06GK102197380SQ200980142629
公开日2011年9月21日 申请日期2009年9月26日 优先权日2008年10月23日
发明者D·N·柯特勒, F·C·福尔茨 申请人:微软公司

最新回复(0)