虚拟转换后备缓冲器转让专利

申请号 : CN200580052420.3

文献号 : CN101346706B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·杨

申请人 : 英特尔公司

摘要 :

在虚拟转换后备缓冲器(TLB)上接收虚拟页号查找请求,其中,虚拟TLB包括指令TLB和数据TLB。执行虚拟TLB中的虚拟页号的查找。返回与虚拟TLB中的虚拟页号对应的物理页号。

权利要求 :

1.一种使用于计算机系统中的方法,包括:在虚拟转换后备缓冲器TLB上接收虚拟页号查找请求,其中,所述虚拟TLB包括指令TLB和数据TLB;

在所述虚拟TLB中执行所述虚拟页号的查找;以及返回与所述虚拟TLB中的所述虚拟页号对应的物理页号,其中,执行虚拟页号的查找的所述步骤包括:在所述指令TLB和所述数据TLB中同时执行所述虚拟页号的查找。

2.如权利要求1所述的方法,还包括:如果在所述虚拟TLB中没有找到所述虚拟地址,则执行页表查找。

3.如权利要求2所述的方法,还包括:采用所述虚拟页号以及产生于所述页表查找的对应的物理页号来更新所述虚拟TLB。

4.如权利要求3所述的方法,其中,更新虚拟TLB的所述步骤包括:如果与所述虚拟地址对应的物理地址存储了数据,则更新所述数据TLB;以及如果与所述虚拟地址对应的所述物理地址存储了指令,则更新所述指令TLB。

5.如权利要求3所述的方法,其中,使用循环算法来更新所述虚拟TLB。

6.如权利要求2所述的方法,其中,由操作系统来执行所述页表查找。

7.如权利要求1所述的方法,其中,从数据存储器管理单元DMMU或指令存储器管理单元IMMU这两者其中之一接收所述虚拟页号查找请求。

8.一种使用于计算机系统中的设备,包括:虚拟转换后备缓冲器TLB,所述虚拟TLB包括:指令TLB和数据TLB;以及

TLB查找逻辑,耦合到所述指令TLB和所述数据TLB,其中,所述TLB查找逻辑在所述指令TLB和所述数据TLB中同时查找虚拟页号。

9.如权利要求8所述的设备,其中,如果在所述指令TLB或所述数据TLB中找到所述虚拟地址,则所述虚拟TLB返回与所述虚拟页号对应的物理页号。

10.如权利要求8所述的设备,其中,如果在所述指令TLB中没有找到所述虚拟页号或者如果在所述数据TLB中没有找到所述虚拟页号,则所述虚拟TLB报告TLB未命中。

11.如权利要求8所述的设备,还包括:

用于从所述虚拟TLB接收TLB未命中指示符的装置;以及用于使用所述虚拟地址来执行页表查找的装置。

12.如权利要求11所述的设备,还包括:用于向所述虚拟TLB提供所述虚拟页号以及产生于所述页表查找的对应的物理页号的装置。

13.如权利要求12所述的设备,还包括:用于如果与所述虚拟地址对应的物理地址存储了数据,则向所述数据TLB提供所述虚拟页号和所述对应的物理页号的装置;以及用于如果与所述虚拟地址对应的所述物理地址存储了指令,则向所述指令TLB提供所述虚拟页号和所述对应的物理页号的装置。

14.如权利要求12所述的设备,还包括用于使用循环算法来更新所述虚拟TLB的装置。

15.如权利要求8所述的设备,其中,所述设备执行符合ARM指令集的指令。

16.一种计算机系统,包括:

动态随机存取存储器DRAM单元;以及

处理器,耦合到所述DRAM单元,所述处理器包括:虚拟转换后备缓冲器TLB,所述虚拟TLB包括:指令TLB和数据TLB;以及

TLB查找逻辑,耦合到所述指令TLB和所述数据TLB,其中,所述TLB查找逻辑在所述指令TLB和所述数据TLB中同时查找虚拟页号。

17.如权利要求16所述的系统,其中,如果在所述指令TLB或所述数据TLB中找到所述虚拟页号,则所述虚拟TLB返回与所述虚拟页号对应的物理页号。

18.如权利要求16所述的系统,还包括:用于如果在所述虚拟TLB中没有找到所述虚拟页号,则从所述虚拟TLB接收TLB未命中指示符的装置;以及用于使用所述虚拟地址在所述DRAM单元中执行页表查找的装置。

19.如权利要求18所述的系统,还包括:用于如果与所述虚拟地址对应的物理地址存储了数据,则向所述数据TLB提供所述虚拟页号和对应的物理页号的装置;以及用于如果与所述虚拟地址对应的所述物理地址存储了指令,则向所述指令TLB提供所述虚拟页号和对应的物理页号的装置。

20.一种使用于计算机系统中的设备,包括:用于在虚拟转换后备缓冲器TLB上接收虚拟页号查找请求的装置,其中,所述虚拟TLB包括指令TLB和数据TLB;

用于在所述虚拟TLB中执行所述虚拟页号的查找的装置;以及用于返回与所述虚拟TLB中的所述虚拟页号对应的物理页号的装置,其中,所述用于执行虚拟页号的查找的装置包括用于在所述指令TLB和所述数据TLB中同时执行所述虚拟页号的查找的装置。

21.如权利要求20所述的设备,还包括:用于如果在所述虚拟TLB中没有找到所述虚拟地址,则执行页表查找的装置。

22.如权利要求21所述的设备,还包括:用于采用所述虚拟页号以及产生于所述页表查找的对应的物理页号来更新所述虚拟TLB的装置。

说明书 :

虚拟转换后备缓冲器

技术领域

[0001] 本发明的实施例涉及计算机系统领域,特别是但不专门涉及虚拟转换后备缓冲器。

背景技术

[0002] 现代计算机系统使用虚拟存储器。虚拟存储器允许计算机系统的存储地址空间大于可用的物理存储空间。程序和数据中的当前使用部分可保存在存储器中,而未使用部分存储在磁盘上,直到需要为止。
[0003] 可使用页表来管理虚拟地址与物理地址的关系。页表用于以页面单元来操纵存储器。虚拟地址与物理地址之间的转换可由存储器管理单元(MMU)来进行。
[0004] MMU可使用存储与最近存取的页面有关的地址信息的转换后备缓冲器(TLB)。TLB可加速执行时间,因为MMU从TLB中可以比从页表中更迅速地获得地址信息。但是,在当今的存储器设计中,TLB未命中减缓了计算机系统的性能。

发明内容

[0005] 按照本发明的一种使用于计算机系统中的方法,包括:在虚拟转换后备缓冲器TLB上接收虚拟页号查找请求,其中,所述虚拟TLB包括指令TLB和数据TLB;在所述虚拟TLB中执行所述虚拟页号的查找;以及返回与所述虚拟TLB中的所述虚拟页号对应的物理页号,其中,执行虚拟页号的查找的所述步骤包括:在所述指令TLB和所述数据TLB中同时执行所述虚拟页号的查找。
[0006] 按照本发明的一种使用于计算机系统中的设备,包括:虚拟转换后备缓冲器TLB,所述虚拟TLB包括:指令TLB和数据TLB;以及TLB查找逻辑,耦合到所述指令TLB和所述数据TLB,其中,所述TLB查找逻辑在所述指令TLB和所述数据TLB中同时查找虚拟页号。
[0007] 按照本发明的一种计算机系统,包括:动态随机存取存储器DRAM单元;以及处理器,耦合到所述DRAM单元,所述处理器包括:虚拟转换后备缓冲器TLB,所述虚拟TLB包括:指令TLB和数据TLB;以及TLB查找逻辑,耦合到所述指令TLB和所述数据TLB,其中,所述TLB查找逻辑在所述指令TLB和所述数据TLB中同时查找虚拟页号。
[0008] 按照本发明的一种使用于计算机系统中的制品,包括:一种包含指令的机器可读介质,所述指令在由机器执行时,使所述机器进行包括以下步骤的操作:在虚拟转换后备缓冲器TLB上接收虚拟页号查找请求,其中,所述虚拟TLB包括指令TLB和数据TLB;在所述虚拟TLB中执行所述虚拟页号的查找,其中,执行虚拟页号的查找的所述步骤包括在所述指令TLB和所述数据TLB中同时执行所述虚拟页号的查找;以及返回与所述虚拟TLB中的所述虚拟页号对应的物理页号。

附图说明

[0009] 参照以下附图来描述本发明的非限制且非穷举的实施例,其中,相似的参考标号在各个视图中表示相似的部件,除非另有规定。
[0010] 图1是示出包括根据本发明的一实施例的虚拟TLB的计算机系统的简图。
[0011] 图2是示出根据本发明的一实施例、编译字节码方法的简图。
[0012] 图3是示出根据本发明的一实施例、执行编译字节码方法的简图。
[0013] 图4是示出根据本发明的一实施例、执行编译字节码方法的简图。
[0014] 图5是示出使用根据本发明的一实施例的虚拟TLB的逻辑和操作的流程图。
[0015] 图6是示出根据本发明的一实施例的虚拟TLB的简图。
[0016] 图7是示出根据本发明的一实施例的虚拟TLB的简图。
[0017] 图8示出用于实现本发明的实施例的计算机系统的实施例。

具体实施方式

[0018] 在以下描述中,提出大量具体细节,以便提供对本发明的实施例的充分理解。但是,本领域的技术人员会认识到,可在没有这些具体细节的一种或多种的情况下或者采用其它方法、组件、材料等来实施本发明的实施例。在其它情况下,没有详细说明或描述众所周知的结构、材料或操作,以免影响对描述的理解。
[0019] 本说明中提到“一个实施例”或“一实施例”表示结合该实施例所描述的具体特征、结构或特性包含在本发明的至少一个实施例中。因此,短语“在一个实施例中”或“在一实施例中”在本说明的各个位置中的出现不一定都表示同一个实施例。此外,在一个或多个实施例中,具体特征、结构或特性可通过任何适当方式进行结合。
[0020] 在以下说明书和权利要求中,可使用术语“耦合”及其派生词。“耦合”可表示两个或两个以上元件处于(物理、电气、磁、光等)直接接触。“耦合”还可表示两个或两个元件不是相互直接接触,但仍然相互配合或交互。
[0021] 来看图1,示出根据本发明的一实施例的计算机系统100。计算机系统100包括通过总线104耦合到存储器102的处理器101。计算机系统100的实施例可包括移动装置,例如移动电话、个人数字助理、媒体播放器或者具有板载处理能力和无线通信能力、通过电池供电的其它类似装置。计算机系统的其它实施例在下文中结合图8来描述。
[0022] 在一个实施例中,处理器101可符合 XScaleTM核心架构。虽然本文中相对TM于XScale 核心来描述本发明的实施例,但是大家会理解,本文中的实施例可通过各种处理器设计来实现。以下描述的处理器101的组件可通过一条或多条总线(未示出)耦合在一起。为了清楚起见,未示出处理器101的其它组件,例如缓冲器、电源管理控制器、调试单元等。
[0023] 处理器101包括用于存储指令的本地副本的指令高速缓存106。处理器101包括用于存储数据的本地副本的数据高速缓存108以及避免对于频繁变化的数据使数据高速缓存108过负荷(thrashing)的小型数据高速缓存110。
[0024] 处理器101可包括用于执行指令的执行核心122。指令可包括微指令等。在一个实施例中,处理器101可执行符合高级RISC(简化指令集计算机)机器 指令集的指令,包括Thumb(T)或LongMultiply(长乘)(M)变体。在一个实施例中,处理器101包括TM可执行 指令集版本5TE的 XScale 核心架构。处理器101可包括用于保存指令和/或数据的寄存器124。
[0025] 处理器101可包括具有指令TLB(TLB)118的指令存储器管理单元(IMMU)112。数据存储器管理单元(DMMU)114可包括数据TLB(DTLB)120。在一个实施例中,IMMU 112用于指令存取的地址转换,而DMMU 114用于数据存取的地址转换。本文所使用的术语“存取”可包括读或写。
[0026] 在一个实施例中,ITLB 118和DTLB 120可构造成用作虚拟TLB(VTLB)116。本文中的实施例实现同时在ITLB 118和DTLB 120中查找地址信息,以便减少TLB未命中,因而提高系统性能。
[0027] 当例如IMMU 112或DMMU 114等的MMU接收到用于转换的虚拟地址时,MMU可首先查看虚拟TLB 116,以便确定对应的物理地址。MMU可响应存储器存取请求而接收转换请求。在一个实施例中,IMMU 112和DMMU 114共享对虚拟TLB 116的存取权。
[0028] 如果虚拟TLB 116不包含用于转换的必要页面信息(称作TLB未命中),则MMU可发起页表查找。页表查找使用一个或多个页表来确定与虚拟地址对应的物理地址。如果发生TLB未命中,则来自页表的信息可用来更新虚拟TLB 116,使得虚拟TLB 116保存与最近存取的页面有关的信息。在一个实施例中,一个或多个页表的至少一部分存储在存储器102中。其余页表部分(如果有的话)可本地存储,例如存储在硬盘驱动器上。
[0029] 在一个实施例中,虚拟地址包括虚拟页号和偏移量。偏移量用于以虚拟页面来标识特定地址。虚拟TLB 116可存储与给定虚拟页号对应的物理页号。在一个实施例中,虚拟页面和物理页面为相同大小,例如但不限于512字节、4千字节(KB)、64KB等。MMU可将偏移量(在虚拟地址中提供)与物理页号的基址进行组合,以便确定物理地址。
[0030] 例如,虚拟地址8020可包括虚拟页号1(具有基址8000)和偏移量20。虚拟页号可转换为物理页面5(具有基址10000)。因此,物理地址转换为10020(基址10000+偏移量20)。
[0031] 在其它实施例中,TLB条目可保存其它信息,例如指明页面是否被修改的页面修改字段、指明页面是否在使用中的有效字段、指明页面的读/写设定的保护字段、指明与页面关联的进程的进程标识字段等。
[0032] 本发明的实施例可减少TLB未命中,并提高被管理运行时环境(MRTE)的性能。被管理运行时环境(MRTE)在移动嵌入系统、如移动装置中越来越重要。同时,在移动处理器上运行MRTE可能在移动处理器上产生性能瓶颈。
[0033] MRTE动态加载和执行代码。可从类文件中加载代码和其它相关数据。每个类文件可描述单个类,它包括类变量和类方法。在一个实施例中,类变量定义数据类型,而类方法定义功能。
[0034] MRTE允许构建应用程序,所述程序可在任何平台上运行,而无需为每个特定平台重写或重新编译。可编译MRTE代码以产生字节码。字节码是机器无关代码。在执行时,通过在终端用户的平台上执行的即时(JIT)编译器来把字节码转换为目标平台的机器代码。然后,平台的处理器可执行编译后的字节码。JIT编译器知道该平台处理器的特定指令和其它特殊性。
[0035] 一种常用MRTE是在Java虚拟机(JVMTM)中运行的JavaTM语言。在一个实施例中,TM计算机系统100可运行Java 2平台MicroEdition(J2ME )。
[0036] 在 XscaleTM平台上运行的Java虚拟机的两个方面可能引起TLB未命中:热点实现和文字实现(literal implementation)。下面结合图2-4来论述这些方面。
[0037] 来看图2,通过JIT编译器204来编译字节码中的方法202。编译后的字节码存储TM在虚拟地址空间205的编译代码区域206上。在一个实施例中,方法202包括Java 方法,以及JIT编译器204包括具有热点优化的JIT编译器、如JVM JIT编译器。
[0038] 研究表明,大部分程序时间花费在执行它的代码中称作热点的小部分。JIT编译器204可分析字节码,以便确定这些热点在代码中的位置。然后,JIT编译器204可对热点执行优化技术,而不是浪费时间设法优化整个程序。此外,在程序执行时,热点优化可动态地继续进行,使得JIT编译器204可使优化技术适应新的热点。
[0039] 当对方法202进行编译时,将编译后的代码作为数据写入虚拟地址空间205。方法202可能已被标识为热点,即“热”方法。将编译代码区域206放入虚拟地址空间205的页面208。在图2的实施例中,各页面的大小为4千字节(KB),但其它实施例可使用其它页面大小。在一个实施例中,通过使用ARM指令集的存储寄存器(STR)指令,将编译后的字节码写入编译代码区域206。STR指令用于将字从寄存器存储到存储地址。
[0040] 存取(在这个情况中为“写入”)存储器产生对DTLB 120的更新,如220所示。由于将页面208作为数据写入,因此,采用与页面208对应的页面信息来更新DTLB 120的DTLB条目210。如图2所示,各页面208在DTLB 120中具有对应的条目210。
[0041] 来看图3,当方法202将由执行核心122执行时,取出与方法202对应的编译后的字节码(即指令)。在一个实施例中,程序计数器302保存要执行的下一条指令的存储地址。程序计数器302可以是处理器100的寄存器。在取出程序计数器302所指向的指令之后,采用要取出的下一条指令的存储地址来更新程序计数器302。
[0042] 使用ITLB 118来取指令,如320所示。这个取步骤引起TLB未命中,因为ITLB 118最初不包含用于转换的页面信息。如图2所示,在编译时将页面信息放入DTLB 120。当程序计数器302在取指令期间要求IMMU 112进行地址转换时,ITLB 118不保存页面信息,并发生TLB未命中。
[0043] 参照图4,文字的编译也可能引起TLB未命中。简言之,通过包含在可执行代码中,文字包括方法可用的常数。通常,常数的值在编译时是固定的。当编译方法202使用文字TM时,在Xscale 指令中可能不直接表示某些文字。因此,那些文字可作为数据混合在指令中。
[0044] 在图4中,虚拟地址空间205中的页面404包括数据以及指令。ITLB 118可在与页面404对应的条目402中包含页面信息,并且DTLB 120可在与保存数据的页面404对应的条目406中包含页面信息。
[0045] 存取那些文字可使用DTLB 120,而可使用ITLB 118来存取指令。例如,ARM指令LDR r1,[r5]是采用寄存器r5中的地址处存储的数据来加载寄存器r1的加载寄存器指令。因此,LDR指令的执行将调用取指令(ITLB 118),以及r5上的数据地址将调用数据存取(DTLB120)。这样,当运行该方法时,相同页面使用一个DTLB条目和一个ITLB条目。当转换其它页面的虚拟地址时,可发生另外的TLB未命中,因为对于这些其它页面,在DTLB 120和ITLB 118中存在更少的剩余条目。
[0046] 来看图5,示出本发明的一实施例的流程图500。流程图500可使用软件、硬件或者它们的任何结合来实现。将针对图6来论述流程图500,但是大家会理解,流程图500不受图6所示的实施例限制。
[0047] 在框502开始,在虚拟TLB上接收到虚拟页号查找请求。在图6中,在虚拟TLB 116上接收到虚拟页号,如610所示。虚拟页号查找可与指令存取或数据存取有关。
[0048] 在图6的实施例中,虚拟TLB 116具有64个TLB条目,它们是ITLB 118的32个条目和DTLB 120的32个条目的组合。虽然ITLB118和DTLB 120在物理上分别驻留在IMMU112和DMMU 114中,但是虚拟TLB 116在逻辑上可看作是单个TLB。表示为虚拟TLB查找逻辑602的附加逻辑将ITLB 118和DTLB 120绑定在一起,以便使TLB查找能够同时在ITLB
118和DTLB 120中执行。虚拟TLB查找逻辑602可实现为硬件、软件或它们的任何结合。
[0049] 进入到框504,在虚拟TLB中执行虚拟页号查找。在图6中,虚拟TLB查找逻辑602在DTLB 120和ITLB 118中执行虚拟页号查找。在一个实施例中,虚拟页号查找涉及搜寻DTLB 120和ITLB 118中的条目中与所接收的虚拟地址的虚拟页号匹配的虚拟页号。如果找到匹配的虚拟页号,则TLB可提供对应的物理页号。在DTLB 120和ITLB 118中同时执行虚拟页号查找。这样,如果在DTLB 120或ITLB118中找到虚拟地址,则发生TLB命中。
[0050] 在图5中,该逻辑继续进行到判定框506,确定在虚拟TLB 116中是否找到该虚拟页号。如果对判定框506的回答为“是”,则返回物理页号。如图6的612所示,在TLB命中的情况下,可由虚拟TLB116返回物理页号。在一个实施例中,请求虚拟页号查找的MMU(IMMU112或DMMU 114)将使用返回的物理页号来把虚拟地址转换成物理地址。
[0051] 如果对判定框506的回答为“否”,则该逻辑进入到框510,在一个或多个页表中执行页表查找。在一个实施例中,由操作系统来执行页表查找。
[0052] 继续进行到判定框512,该逻辑确定所请求页面包含数据还是指令。如果该页面保存指令,则该逻辑继续进行到框514,更新ITLB。如果页面保存数据,则该逻辑继续进行到框516,更新DTLB。
[0053] 在一个实施例中,判定框512的逻辑按照以下方式来确定是对数据还是对指令进TM行存取。如果存储地址请求来自程序计数器寄存器,则对指令进行存取。在 XScale的实施例中,程序计数器可保存在寄存器15(r15)中。
[0054] 在数据存取的情况下,由例如LDR或STR等特定指令本身来进行数据存取。与数据地址有关的这类指令的字段将引用不是程序计数器寄存器的寄存器。例如,如上所述,ARM指令LDR r1,[r5]是采用寄存器r5中的地址处存储的数据来加载寄存器r1的加载寄存器指令。该逻辑将会认识到,由指令本身使用与程序计数器寄存器不同的寄存器来进行该存取,因而是数据存取。
[0055] 更新TLB的步骤可包括采用来自页表查找的信息来替换(例如通过改写)TLB的当前条目。TLB存储最近存取页面的虚拟页号和对应的物理页号。本文所使用的术语“存取”包括读或写。
[0056] 在一个实施例中,可使用循环算法来更新ITLB 118和DTLB 120。在一个实施例中,循环算法保存指向要替换的下一个TLB条目的指针。要替换的下一个TLB条目是被写入的最后一个TLB条目的后续的TLB条目。如果指针到达最后一个TLB条目,则指针可回绕到第一个TLB条目。
[0057] 来看图7,示出本发明的一实施例。图7示出具有硬件层702和软件层704的计算环境。大家会理解,硬件层702或软件层704的备选实施例可用于实现本文所述的虚拟TLB。
[0058] 在例如IMMU 112或DMMU 114等MMU上接收用于转换的虚拟地址706。虚拟地址706可包括进程标识符(PID)、虚拟页号(VPN)和偏移量。PID用于区分不同进程之间的存储地址空间。将VPN提供给虚拟TLB 116供查找。
[0059] 图7还示出DTLB 120和ITLB 118的一实施例。DTLB 120包括32个TLB条目。708所示的条目包括PID和VPN。DTLB 120还包括712所示的条目,所述条目存储与708所示的PID和VPN对应的物理页号(PPN)。类似地,ITLB 118包括32个TLB条目。714所示的条目包括PID和VPN,而718所示的条目包括对应的PPN。
[0060] 在TLB查找中,使用比较器(CMP)710将VPN与DTLB 120中的VPN进行比较,并使用CMP 716与ITLB 118中的VPN进行比较。如果在DTLB 120或ITLB 118中找到所接收的VPN,则可标识对应的PPN。
[0061] DTLB 120和ITLB 118指明是否在任一个TLB中找到所接收的VPN。如果找到VPN,则由MMU(DMMU 112或IMMU 114)进行所接收的虚拟地址的物理地址转换。如果在DTLB 120或ITLB 118中没有找到所接收的VPN,则由虚拟TLB 116指明TLB未命中。
[0062] 如图7所示,DTLB 120和ITLB 118各向“或(OR)”门720提供指明是否找到VPN的标记;如果找到VPN则为逻辑“1”,而如果在其相应TLB中没有找到VPN则为逻辑“0”。如果在DTLB 120或ITLB 118中找到VPN,则“或”门720输出逻辑“1”。在这种情况下,将对应于VPN的PPN与来自虚拟地址的偏移量进行组合,以便形成物理地址720。
[0063] 如果DTLB 120和ITLB 118均未存储该VPN,则“或”门720将输出逻辑“0”,以便指明TLB未命中。TLB未命中将使OS 722发起页表读取(即查找),如724所示,以便查找与VPN对应的PPN。在页表读取724之后,软件层704将进入判定框726。
[0064] 在判定框726,该逻辑确定所请求的虚拟/物理地址是指令地址存取还是数据地址存取。如果地址存取是数据地址,则该逻辑进入框728,使用循环算法来更新DTLB 120。如果地址存取是指令地址,则该逻辑进入框730,使用循环算法来更新ITLB 118。
[0065] 本发明的实施例提供包括ITLB和DTLB的虚拟TLB。可在ITLB和DTLB上同时执TM行与给定虚拟页号对应的物理页号的TLB查找。本发明的实施例可在运行MRTE、如JVM 的TM
XScale 平台上实现,从而由于更少的TLB未命中而提高系统性能。
[0066] 计算机系统的实施例
[0067] 图8示出可实现本发明的实施例的计算机系统800的实施例。计算机系统800包括耦合到芯片组808的处理器802和存储器804。海量存储装置(storage)812、非易失性存储装置(NVS)806、网络接口(I/F)814和输入/输出(I/O)装置818也可耦合到芯片组808。计算机系统800的实施例包括但不限于台式计算机、笔记本电脑、服务器、诸如袖珍个人计算机(PC)、移动电话、媒体播放器之类的移动装置等。在一个实施例中,计算机系统
800包括耦合到存储器804的处理器802,处理器802执行存储器804中存储的指令。处理器802可包括如本文所述的虚拟TLB 116的实施例。
[0068] 处理器802可包括但不限于 Corporation x86、 XScaleTM系列处理器等。在一个实施例中,计算机系统800可包括多个处理器。在另一个实施例中,处理器802可包括两个或更多处理器核心。
[0069] 存储器804可包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)等。在一个实施例中,存储器804可包括无需刷新的一个或多个存储单元。
[0070] 芯片组808可包括诸如存储控制器集线器(MCH)等的存储控制器、诸如输入/输出控制器集线器(ICH)之类的输入/输出控制器等。在一备选实施例中,存储器804的存储控制器可与处理器802驻留在同一个芯片中。芯片组808还可包括系统时钟支持、电源管理支持、音频支持、图形支持等。在一个实施例中,芯片组808耦合到底板(board),它包括处理器802和存储器804的插槽。
[0071] 计算机系统800的组件可通过各种互连、如总线进行连接。在一个实施例中,互连可以是两个组件之间的点对点互连,而在其它实施例中,互连可连接两个以上组件。这类互连可包括诸如PCI Express等的外设部件互连(PCI)、系统管理总线(SMBUS)、低引脚数(LPC)总线、串行外围接口(SPI)总线、加速图形端口(AGP)接口等。I/O装置可包括键盘、鼠标、显示器、打印机、扫描仪等。
[0072] 计算机系统800可通过网络接口814、使用有线连接、无线连接或者它们的任何组合来与外部系统相接口。网络接口814可包括但不限于调制解调器、网络接口卡(NIC)等。可由网络接口814接收/发送载波信号822。在图8所示的实施例中,载波信号822用于将计算机系统800与诸如局域网(LAN)、广域网(WAN)、因特网或者它们的任何组合之类的网络824相接口。在一个实施例中,网络824还耦合到计算机系统826,使得计算机系统800和计算机系统826可通过网络824进行通信。
[0073] 计算机系统800可包括无线通信模块。无线通信模块可使用无线应用协议来建立无线通信信道。无线通信模块可实现无线组网标准,例如电气和电子工程师协会(IEEE)802.11标准、IEEE std.802.11-1999(1999年由IEEE发布)。
[0074] 计算机系统800还包括其上可存储固件的非易失性存储装置806。非易失性存储装置包括但不限于只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、非易失性随机存取存储器(NVRAM)等。
[0075] 海量存储装置812包括但不限于例如硬盘驱动器等磁盘驱动器、磁带驱动器、光盘驱动器等。大家会理解,处理器802可执行的指令可驻留在海量存储装置812、存储器804、非易失性存储装置806中,或者可经由网络接口814发送或接收。
[0076] 在一个实施例中,计算机系统800可执行操作系统(OS)。OS的实施例包括Microsoft Apple 操作系统、 操作系统、 操作系统等。
[0077] 为了便于说明,机器可读介质包括以机器(例如计算机、网络装置、个人数字助理、制造工具、具有一个或多个处理器集合的任何装置等)可读形式提供(即存储和/或发送)信息的任何机构。例如,机器可读介质包括但不限于可记录/不可记录介质(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置等)。另外,机器可读介质可包括诸如电、光、声等的传播信号或者其它形式的传播信号(例如载波、红外线信号、数字信号等)。
[0078] 本文描述了本发明的实施例的各种操作。这些操作可使用硬件、软件或者它们的任何结合来实现。这些操作可通过机器使用处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等来实现。在一个实施例中,所述操作的一个或多个可构成机器可读介质上存储的指令,这些指令在由机器执行时使机器进行所述的操作。描述部分或全部操作的顺序不应当理解为表示这些操作必须是顺序相关的。获益于本说明书的本领域的技术人员会知道备选排序。此外,大家会理解,并非所有操作都必须存在于本发明的每个实施例中。
[0079] 以上对于本发明的所述实施例的描述,包括“摘要”中所描述的,并不是穷举性的或者将实施例限于所公开的精确形式。虽然本文为了进行说明而描述了本发明的具体实施例和示例,但相关领域的技术人员会认识到,各种等效修改是可行的。可根据以上详细描述来对本发明的实施例进行这些修改。以下权利要求中使用的术语不应当理解为将本发明限于说明书中公开的具体实施例。而是以下权利要求将按照权利要求解释的已确立原则来解释。