使用聚合的小页面的扩展的页面大小的制作方法

文档序号:6349853阅读:121来源:国知局
专利名称:使用聚合的小页面的扩展的页面大小的制作方法
技术领域
本发明涉及计算机处理器,特别是涉及虚拟存储器环境中的页面转换。
背景技术
现代计算机系统利用虚拟存储器来提高性能。例如,为了在利用更大容量的硬盘存储的同时有效地利用存储器,处理器经常集成虚拟寻址机制(mechanism),其中虚拟地址是指比存储器的物理尺寸大许多的地址空间。虚拟寻址机制通常是通过处理器硬件和操作系统软件的组合来执行的。在实践中,大的虚拟地址空间通常是分成网页。每当处理器读或写虚拟存储器地址时,专门的处理器硬件就将地址转换成位于物理存储器上的页面(有时也称为帧)上的物理位置或存储在磁盘上的页面(或帧)的索引。如果索引是存储在磁盘上的帧,操作系统就将该帧移动到物理存储器中,如果有必要,还交换出最近未访问的帧。使用分页的地址转换通常涉及称为页转换表的系列的数据结构。要将虚拟地址转换成物理地址,虚拟地址的低阶位可被直接映射到物理地址,而虚拟地址的高阶位可用于索引到页面转换表以找到物理地址的高阶位。在层次页面表执行中,处理器可将虚拟地址的高阶位分成一个或多个位域,每一个对应到不同层次的页面转换表的等级。将虚拟地址映射到物理地址的页转换表中的项一般可简称为页面表项(PTE)。通过将PTE缓存在称为转换后备缓冲器(TLB)的CPU缓存中,虚拟地址转换的速度可能会增加。TLB可以有固定数量的插槽来存储PTE。由于访问TLB项一般比使用页面转换表进行地址转换的速度快,所以TLB的大小和涵盖可能是系统整体性能的重要指标。TLB 的涵盖取决于每一个TLB项所代表的页面的大小。常见的电脑架构只提供了虚拟存储器的页面大小的粗略选择。例如,著名的X86-64架构提供大小为4KB、2MB和IGB的页面。较小的页面大小减少了 TLB的有效容量,增加了 TLB访问的未命中率。不幸的是,非常大的页面大小往往会造成不需要大型数据集的应用程序的存储器配置效率低下。鉴于上述考虑,可能需要通过改善TLB未命中率和/或增加TLB有效容量而同时保持有效的存储器使用以提高系统性能的系统和方法。除了上述考虑外,尽管改善TLB未命中率和容量可能提供一些增强的功能,每当引入增强的功能时还使处理器能继续运行现有的软件可能是可取的。因此,继续支持传统的分页模式的处理器增强可能是可取的。
发明概述公开了包括虚拟存储器分页机制的处理器的各种实施例。虚拟存储器分页机制使在处理器上运行的操作系统能使用第一大小和第二大小的页面。第二大小大于第一大小。 虚拟存储器分页机制进一步使操作系统能形成包括第一大小的两个或更多的连续页面的一系列页面的超级页面。超级页面的大小小于第二大小。该处理器还包括页面表,所述页面表包括用于在每一个超级页中所包括的所述两个或更多的连续页面中的每一个的单独项。虚拟存储器分页机制使操作系统使用单一的虚拟地址来访问每一个超级页面。所述处理器还包括转换后备缓冲器(TLB)。虚拟存储器分页机制将TLB中的单项解释为指包括与响应检测到与TLB中的所述项有关的超级页面使能指示器有效的超级页面对应的一系列页面的存储器区。在一个实施例中,超级页面的大小是64KB。在一个实施例中,虚拟存储器分页机制响应检测到与TLB中的项有关的超级页面使能指示器是有效的,将所述页面表中的项解释为指包括超级页面的一部分的存储器区。 在进一步的实施例中,超级页面使能指示器是可软件设置的。虚拟存储器分页机制响应于检测到所述页面表中的至少两个项中的至少一个项缺失或包括与所述页面表中的至少两个项中的其他项的属性不一致的属性而发出页面错误。在再进一步的实施例中,所述虚拟存储器分页机制同时且独立地使超级页面在处理器上操作的第一操作系统和第二操作系统中的一个或两个上使用。在再进一步的实施例中,第一操作系统是虚拟环境中的客机操作系统,配置为使用第一页面表将客机地址空间中的虚拟地址转换为客机地址空间的物理地址,第二操作系统是虚拟环境中的主机操作系统,配置为使用第二页面表将客机地址空间中的物理地址转换为主机地址空间的物理地址。在再进一步的实施例中,虚拟存储器分页机制使操作系统能使用两个或两个以上的不同的超级页面大小的超级页。在此实施例中,每个超级页面的大小等于两个或多个连续的、 对齐的第一大小的页面的大小,每个超级页面的大小小于第二大小。考虑下面的说明和附图,这些和其他的实施例将变得明显。


图1是可包含扩展的页面大小的计算机系统的一个实施例的概略框图。图2示出了可以通过处理器在系统中使用的地址转换系统的一个实施例。图3示出了将页面表的项或TLB中的项映射到存储器的一个实施例。图4示出了控制寄存器中包含的、表示支持扩展的页面大小的位域的一个实施例。图5示出了模型特定寄存器(MSR)中包含的位域的一个实施例。图6示出了可由操作系统用来定义超级页面的数据结构项的一个实施例。图7示出了可由处理器执行访问超级页面的分页流程的一个实施例。图8示出了可用于检查从支持超级页面的处理器中的分页表中读取的超级页面项的有效性的流程的一个实施例。图9示出了可用于配置处理器使用超级页面的流程的一个实施例。虽然本发明可进行各种修改和以其他形式进行,但在附图中以示例的方式示出了具体的实施例,在本文进行了详细说明。然而,应理解,附图及其详细的说明不是为了将本发明限制于所公开的特定形式,与此相反,本发明包括在所附的权利要求书所定义的本发明的精神和范围内的所有修改、等同物及替代物。
详细说明图1是可包含扩展的页面大小的计算机系统100的一个实施例的概略框图。处理器110被示为与外围设备120和物理存储器130联接。外围设备120可包括存储设备170、 网络接口 174和可移动介质177。所示的实施例是典型的通用计算机系统。然而,所示的组件,特别是处理器110,可能会在各种各样的设备中发现,诸如控制系统、家电、汽车、消费类电子产品之类或事实上采用计算和存储或处理数据的任何设备中发现。处理器110是可通过提供地址转换功能支持虚拟存储器的各种处理器的任何一个的说明。处理器Iio可包括与I/O接口 160和2级(U)高速缓存器150联接的一个或多个核140。核140可包括联接到L2高速缓存器150的一级(Li)高速缓存器145。物理存储器130通常包括RAM,但也可以是联接到处理器110和提供对数据的相对快速的访问以处理在处理器110上的执行的任何类型的数据存储。与此相反,存储设备170 —般可存储比物理存储器130较大的量的数据,有较慢的访问时间。常见的存储设备包括硬盘、软盘、 光盘或任何其他合适的数据存储设备。根据计算机系统100的预定用途,其他各种外围设备120可通过I/O接口 160联接到处理器110。例如,外围设备120可包括键盘、显示器、扬声器、磁盘驱动器、输入/输出端口等。存储器130、外围设备120和处理器110之间的互连可包括地址总线和数据总线, 并可以包括共享总线、开关结构或在计算机系统中将组件联在一起的任何其他合适的连接系统。在替代实施例中,计算机系统100可包括多于或少于两个级别的高速缓存器。在操作过程中,当核140需要第一次访问页面数据时,相应的数据可从存储设备 170移动到存储器130。核140可随后将页面的一个或多个部分(例如,高速缓存线)从存储器130移动到Ll高速缓存器145。由于需要额外的高速缓存线,它们也可以被移动到Ll 高速缓存器145。如果Ll高速缓存器145中没有足够的空间,就可将高速缓存线移动(驱逐)到L2高速缓存器150。类似地,当L2高速缓存器150已满时,可将高速缓存线移至存储器130,当存储器130已满时,可将页面移至存储设备170。确定当特定的高速缓存器已满时移动哪一部分页面的技术在本领域是众所周知的。这些技术的每一个都可被称为高速缓存器替换策略或高速缓存器算法。图2示出了可通过处理器110在系统100中使用的地址转换系统200的一个实施例。系统200包括转换后备缓冲器(TLB) 210、页面表220和磁盘230。在一个实施例中,TLB 210和页面表220可被纳入到处理器110中,盘230可以是与存储设备170类似的各种存储设备。在操作过程中,处理器Iio可获得虚拟地址240来使来自过程的所需的页面执行读或写虚拟存储器位置的指令。随后处理器110可以试图通过咨询TLB210的项找出与虚拟地址240对应的物理地址。如果从虚拟到物理的转换存在于TLB210中(称作TLB命中),包括帧编号的物理地址250可返回到处理器110。如果从虚拟到物理的转换不存在于TLB 210中(称作TLB未命中),处理器110就可试图通过咨询页面表220中的项找出与虚拟地址240对应的物理地址。如果从虚拟到物理的转换存在于页面表220中(称作页面表命中),转换项就可被写入TLB210。随后,处理器110可通过咨询TLB210中的项重试访问,现在可能会找到所要的项。如果从虚拟到物理的转换不存在于页面表220中(称作页面表未命中),处理器110 就可作页面故障的声明。页面故障可导致所要的页面从磁盘230检索,将相应的项写入页面表220。在页面表220已经更新后,处理器110可以通过咨询TLB 210中的项重新访问。 由于TLB210还没有更新,TLB未命中会发生。然而,处理器110可随后咨询在页面表220中的项,页面表击中可能发生,转换项可被写入TLB 210。随后,处理器110可以通过咨询TLB 210中的项,现在可以找到所需的项。如果所需的页面不能从磁盘230检索到,例如,如果所需的访问是无效的,就可由诸如在处理器110上执行的操作系统之类的软件宣布和处理分段故障(segmentation fault)或其他类似的故障。页面表220中的项可使用多种格式中的任何格式将虚拟地址转换为物理地址。一般来说,虚拟地址包括用作页面表220的索引的一些位域和用作页面表220确定的页的偏移的低阶位。在不同的实施例中,页面表220可以包括一个或多个层次,每一个层次由虚拟地址的特定的位域索引。因此,在虚拟地址中的高阶位域的格式取决于页面大小和页面表 220中的数量层次。无论页面表层次的数量如何,页面表项和相应的TLB项可用于将虚拟地址转化为包括物理帧号的物理地址。支持虚拟寻址的处理器可以使用多种操作模式的不同长度的虚拟地址。这样的操作模式可以定义操作系统和处理器解释虚拟地址中的位域的方式以及在虚拟地址转换到物理地址时位域的使用方式。在一个实施例中,处理器110保持与X86架构兼容的处理器运行模式的向后的兼容性。增加TLB的涵盖和减少TLB未命中的可能性的一种方法是增加TLB中的每一个项所代表的页面的大小。处理器110可配置为使用下面说明的通过控制寄存器设置的扩展的页面大小。图3示出了将页面表310中的项或TLB 350中的项映射到存储器330的一个实施例。在所示实施例中,页面表项可对应4KB的页面,TLB项可对应于较大的页面大小,例如64KB的页面。页面表310可包括页面表项301-318等。TLB350可包括项351-357等。 存储器330可包括页面331-348等。项301-318中的每一个可对应4KB的页面。如图所示,项301对应页面331,项302对应页面332,依此类推。项351-357中的每一个可对应一个64KB的页面。例如,如图所示,项352对应于包括页面331-346的存储器区,该区也可称为超级页面。此处使用的超级页面可指包括两个或多个连续的、汇总的和对齐的4KB的页面的存储器区。此外,为了方便起见并不失一般性,在下面的讨论中,位于Ll高速缓存器、 L2高速缓存器或存储器的物理帧的任何部分可以指是在存储器中,与在存储设备中的帧不同。如下所述,处理器110和在其上执行的操作系统可使用各种数据结构来确定是否支持超级页,是否启用与否超级页,哪一个TLB项对应于小(例如4KB)页面和哪一个TLB项对应于到超级页面。图4示出了控制寄存器400中包含的、表示支持扩展的页面大小的位域的一个实施例。控制寄存器400可对应于整合x86架构的处理器中的控制寄存器4(CR4)。CR4寄存器包括定义处理器的能力的一些位。如图所示,寄存器400包括与超级页面相关的两个位 401和402。位401称作页面大小扩展位或PSE位,表示页面是4KB还是启用物理地址扩展 (PAE)时的标准的、较大的页面大小4MB或2MB。如果位401没有使用,就支持4KB的页面大小。此外,寄存器400包括位402,位402称作扩展页面模式(XPM)支持位,如果设置,就表明支持扩展模式的页面大小。在一个实施例中,处理器110可支持单一的扩展页面大小。例如,可支持64KB的页面大小。在替代实施例中,可支持超过一个扩展页面的大小。可提供各种机制,以确定支持哪些扩展页面大小。下面的部分说明了这样的一个机制。图5示出了在模型特定寄存器(MSR) 500中包含的位域的一个实施例。MSR500包括定义处理器支持的扩展模式页面大小的一些位。如图所示,在一个实施例中,寄存器500 包括位501-508。假设如上所述由位401和402的值指示的那样支持扩展页面大小,支持的页面大小由表1所示的位501-508的值来指示。
权利要求
1.一种处理器,包括虚拟存储器分页机制,其中所述虚拟存储器分页机制配置为使所述处理器上运行的操作系统能使用第一大小的页面和第二大小的页面,所述第二大小大于所述第一大小;形成超级页面,所述超级页面包括一系列包括所述第一大小的两个或多个连续的页面,其中超级页面的大小小于所述第二大小;和页面表,所述页面表包括用于在每一个超级页面中所包括的所述两个或多个连续的页面中的每一个的单独项。
2.如权利要求1所述的处理器,其中所述虚拟存储器分页机制进一步配置为使在所述处理器上运行的操作系统能使用单一的虚拟地址来访问每一个超级页面。
3.如权利要求1所述的处理器,其中超级页的大小是64KB。
4.如权利要求2所述的处理器,还包括转换后备缓冲器(TLB),其中所述虚拟存储器分页机制配置为将所述TLB中的单项解释为指包括与响应检测到与所述TLB中的所述项有关的超级页面使能指示器有效的超级页面对应的一系列页面的存储器区。
5.如权利要求4所述的处理器,其中所述虚拟存储器分页机制进一步配置为将所述页面表中的项解释为指包括响应检测到与所述页面表中的所述项有关的超级页面使能指示器有效的超级页面的一部分的存储器区。
6.如权利要求4所述的处理器,其中所述超级页面使能指示器是可由软件设置的。
7.如权利要求2所述的处理器,其中所述虚拟存储器分页机制进一步配置为响应于检测到所述页面表中的所述至少两个项中的至少一个项缺失或包括与所述页面表中的所述至少两个项中的其他项的相应属性不一致的属性而发出页面故障。
8.如权利要求1所述的处理器,其中所述虚拟存储器分页机制进一步配置为同时且独立地使超级页面在在所述处理器上运行的第一操作系统和第二操作系统中的一个或两个上使用。
9.如权利要求8所述的处理器,其中所述第一操作系统是虚拟环境中的客机操作系统,配置为使用第一页面表将客机地址空间中的虚拟地址转换为客机地址空间的物理地址,所述第二操作系统是虚拟环境中的主机操作系统,配置为使用第二页面表将客机地址空间中的物理地址转换为主机地址空间中的物理地址。
10.如权利要求1所述的处理器,其中所述虚拟存储器分页机制进一步配置使所述操作系统使用两个或两个以上的不同超级页面大小的超级页面,其中每一个超级页面的大小等于两个或多个连续的、对齐的所述第一大小的页面的大小,其中每一个超级页面的大小小于所述第二大小。
11.一种用于处理器中的虚拟存储器分页的方法,所述方法包括使在所述处理器上运行的操作系统能使用第一大小的页面和第二大小的页面,所述第二大小大于所述第一大小;使所述操作系统形成超级页面,所述超级页面包括一系列包括所述第一大小的两个或更多个连续的页面,其中超级页面的大小小于所述第二大小;和包括在页面表中的单独项,所述单独项用于在每一个超级页面中所包括的所述两个或更多个连续的页面中的每一个。
12.如权利要求11所述的方法,还包括使在所述处理器上运行的所述操作系统使用单一的虚拟地址来访问每一个超级页面。
13.如权利要求11所述的方法,其中超级页的大小是64KB。
14.如权利要求12所述的方法,还包括将TLB中的单项解释为指包括与响应检测到与 TLB中的所述项有关的超级页面使能指示器有效的超级页面对应的一系列页面的存储器区。
15.如权利要求14所述的方法,还包括将所述页面表中的项解释为指包括响应检测到与所述页面表中的所述项有关的超级页面使能指示器有效的超级页面的一部分的存储器区。
16.如权利要求14所述的方法,其中所述超级页面使能指示器是可由软件设置的。
17.如权利要求12所述的方法,还包括响应于检测到所述页面表中的所述至少两个项中的至少一个项缺失或包括与所述页面表中的所述至少两个项中的其他项的相应属性不一致的属性而发出页面故障。
18.如权利要求11所述的方法,还包括同时且独立地使超级页面在在所述处理器上运行的第一操作系统和第二操作系统中的一个或两个上使用。
19.如权利要求18所述的方法,其中所述第一操作系统是虚拟环境中的客机操作系统,配置为使用第一页面表将客机地址空间中的虚拟地址转换为客机地址空间的物理地址,所述第二操作系统是虚拟环境中的主机操作系统,配置为使用第二页面表将客机地址空间中的物理地址转换为主机地址空间中的物理地址。
20.如权利要求11所述的方法,还包括使所述操作系统使用两个或两个以上的不同超级页面大小的超级页面,其中每一个超级页面的大小等于两个或更多个连续的、对齐的第一大小的页面的大小,其中每一个超级页面的大小小于所述第二大小。
全文摘要
一种包括虚拟存储器分页机制的处理器。所述虚拟存储器分页机制使在处理器上运行的操作系统能使用第一大小和第二大小的页面,所述第二大小大于所述第一大小。所述机制进一步使所述操作系统能使用包括第一大小的两个或更多个连续页面的超级页面。超级页面的大小小于所述第二大小。所述处理器还包括一个页面表,所述页面表包括用于在每一个超级页面中所包括的所述页面中的每一个的单独项。所述操作系统使用单一的虚拟地址来访问每一个超级页面。所述机制将转换后备缓冲器TLB中的单项解释为指包括与响应检测到与TLB中的所述项有关的超级页面使能指示器有效的超级页面对应的一系列页面的存储器区。
文档编号G06F9/26GK102473091SQ201080030133
公开日2012年5月23日 申请日期2010年6月30日 优先权日2009年7月1日
发明者乌维·M·达诺夫斯基, 塞巴斯蒂安·比米勒, 大卫·S·克里斯蒂, 托马斯·弗列韦尔, 斯蒂芬·迪斯特尔霍斯特, 迈克尔·P·霍穆特 申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1