体系结构事件期间维持处理器资源的制作方法

文档序号:6656554阅读:168来源:国知局
专利名称:体系结构事件期间维持处理器资源的制作方法
背景本发明一般涉及数据处理系统,尤其涉及使用处理器在不同上下文中进行处理。
许多现有的计算机系统使用虚拟存储器系统来管理存储器,并将其分配给在系统中运行的多个进程,这就允许在该系统上运行的每个进程像它能控制由该系统提供的全部范围的地址那样来工作。操作系统(OS)将用于每个进程的虚拟地址空间映射至用于该系统的实际物理地址空间。通常使用页面表来维持从物理地址到虚拟地址的映射。
处理器性能可经由多级流水线体系结构改进,在该多级流水线体系结构中诸如高速缓存、缓冲器、阵列等的各种流水线资源可更为有效地用于执行指令。改进虚拟存储器系统的使用的一种流水线资源是翻译后备缓冲器(TLB)。TLB是处理器流水线内存储器的相对较小部分,用于高速缓存部分系统虚拟地址至物理地址的翻译。具体地,翻译集的少量元素被存储在处理器能极快访问的TLB中。系统中可存在各种TLB。例如,存在用于指令和数据的单独TLB(分别为指令TLB(iTLB)和数据TLB(dTLB)。此外,在某些系统中可存在二级dTLB(STLB)。
如果在TLB中不存在对特定虚拟地址的翻译,则会出现“翻译遗漏”并且使用更一般机制来解决地址翻译。处理以此方式继续直到出现上下文切换。上下文切换会在多任务OS停止时运行一个进程(例如,应用软件)并开始运行另一个进程时发生。当发生上下文切换时,包括页面目录的页面表和用于新进程的页面表被载入,并且该TLB和其他流水线资源必须被清除。清除意味着资源内容被清空。
某些系统可实现其中虚拟机监视器(VMM)可向其他软件呈现一个或多个虚拟机的抽象的虚拟机(VM)环境。每个VM都可用作自主式平台,从而运行它自己的“客户操作系统”(即,由VMM提供的OS)以及被统称为客户软件(或简称为“客户”)的其他软件。客户软件期望像在专用计算机而非虚拟机上运行那样来工作。因此,客户软件期望控制各种事件并能够访问诸如驻留处理器资源、驻留于存储器内的资源和驻留于基础硬件平台的资源的硬件资源。
在虚拟机环境中,VMM通常对这些事件和硬件资源有着最终控制权,以提供客户软件的合适操作,并且为在不同虚拟机上运行的客户软件或在这些软件之间提供保护。为了实现这一目标,VMM通常在客户软件访问受保护资源时或在出现其他事件(诸如中断或异常)时接收控制(即,影响环境切换)。
在VM或其他环境中的上下文切换会引起现代微处理器中相当大的额外开销。该额外开销会因为在每次上下文切换时必须清除并重新加载的巨大二级TLB而加剧。这样该额外开销就会对性能,特别是带有多个活动上下文的系统中的性能产生不利影响。于是就需要在上下文切换时能更有效地维持流水线资源。
附图简述

图1是根据本发明一实施例的线性地址翻译。
图2是根据本发明一实施例的系统的一部分的框图。
图3是根据本发明一实施例的方法的流程图。
图4是根据本发明另一实施例的方法的流程图。
图5是根据本发明又一实施例的方法的流程图。
图6是本发明一实施例的代表性计算机系统的框图。
详细描述在本发明的各个实施例中,诸如TLB、跟踪缓存(TC)、分支预测单元(BPU)阵列、小型标志等的流水线资源或结构可支持多地址空间。在此使用的术语“地址空间”指的是存储器内对应于给定应用程序(例如上下文)的一组地址。
在各个实施例中,地址空间可受到确定或影响物理翻译线性的体系结构控制寄存器的组合(例如,包括页面目录基址寄存器(CR3.PDBR)、页面级高速缓存禁用位(PCD)、页面级直写位(PWT)的控制寄存器3;包括分页位(CR0.PG)、保护启用位(CR0.PE)的控制寄存器0;包括页面大小扩展位(CR4.PSE)以及页面全局启用位和物理地址扩展位(CR4.PGE和PAE)、经扩展的功能启用长寄存器模式寻址(EFER.LMA)和非执行位(EFER.NXE)的控制寄存器4)的控制。
在各个实施例中,地址空间标识符(ASID)可用于以指向与各个流水线资源中的线性地址相关联的上下文的指针来增加这些地址。在这里使用的“地址空间标识符”可以是标识与其相关联的一个或多个地址空间的任何数字、代码或其他符号。在一个实施例中,ASID可使用每个线程两位ASID(即,四个地址空间上下文)来实现,尽管本发明的范围并非如此有限。这就允许多个应用程序上下文共享流水线结构,从而降低了上下文切换的额外开销。例如,当上下文切换出现时,可改变当前的ASID值,而不是清除流水线结构。类似地,在某些实施例中,可提供线程标识符(线程ID)以标识用于对应地址空间的给定处理器线程。
根据本发明的各个实施例,各种体系结构事件都可能会引起TLB的选择性清除。这些事件例如可包括移至CR3(MOV to CR3)指令;改变CR0页面模式位CRO.PE和CR0.PG以及EFER.LMA;改变CR4页面模式位;VM进入(Entry)/退出(Exit);以及32位上下文切换(如果改变了CR0或CR4中的分页模式位)。在某些实施例中,这些事件中仅有MOV to CR3操作或VMEntry/VMExit事件可改变/递增ASID。
许多流水线结构被线性标志或索引。在某些实施例中,ASID可用指向对应地址空间的指针来增加这些流水线资源内的线性地址。在这些实施例中,微处理器可以维持在创建新的地址空间时或改变至不同的先前已见的地址空间时更新的全局当前ASID寄存器。可用当前ASID值扩展TLB插入,并且只有当ASID标志与当前ASID值匹配时TLB查找才匹配。当上下文切换(例如,MOV to CR3或者VM entry/exit)触发了地址空间改变时,微处理器可切换至表示此新地址空间的不同ASID值,而不清除TLB或其他流水线结构。在某些实施例中,不清除任何条目或者选择性地清除对应于特定地址空间的部分或所有条目可为带有多个上下文的环境提供实质上的性能增益。
现参看图1,示出了根据本发明一实施例的适于64位地址翻译的线性地址翻译。如图1所示,可使用线性地址300来寻址存储器240内的页面。如图1所示,线性地址300包括索引四级分页结构以访问存储器240内物理地址的多个字段。偏移字段(位0至11)用于寻址存储器240的一个页面内的物理地址。页面表条目(位12至20)寻址页面表(PT)310内的页面表条目。页面目录条目(位21至29)寻址页面目录(PD)320内的页面目录条目。页面目录指针(位30至38)寻址页面目录指针表(PDPT)330内的页面目录指针条目。最后,页面映射级四(PML4)指针(位39至47)寻址PML4 340内的PML4条目。使用CR3内的指针就可访问PML4 340的基址。以此方式,可使用64位线性地址实现四级分页结构以访问物理地址。
在各个实施例中,根据一实施例的TLB可包括物理地址(标志地址)和相关联的有效线程ID以及ASID位,连同相对应的线性和物理地址。TLB条目包括在其标志内指示它们所对应地址空间的ASID字段。该ASID字段包括在载入TLB条目时的当前ASID值。因为ASID字段在TLB条目的标志内,所以TLB条目只有在当前ASID值与该TLB条目内的ASID字段相匹配时才能被命中。
当一地址空间改变(例如,上下文切换)时,微代码会将关于当前地址空间/ASID(CR3、CR0和CR4分页位、LMA)的信息保存到便笺式存储器,并且可将新地址空间与每个ASID的已存储地址空间信息相比较。如果没有已存储地址空间/ASID与新地址空间相匹配,则在之前未看到过该地址空间。因而微代码可为该地址空间分配新ASID,或选择一现有ASID来代替例如最近最少使用(LRU)策略。在后一种情况下,微代码可清除用于该LRU ASID的TLB条目。
现参看图2,示出了根据本发明一实施例的系统的一部分的框图。如图2所示,系统10包括系统存储器20和多个软件实体,包括第一客户软件(即,第一客户)30、第二客户软件(即,第二客户)40和虚拟机扩展(VMX)监视器50。在一个实施例中,系统存储器20可包括代码和数据两者,并且可由例如动态随机存取存储器(DRAM)形成。
在图2的实施例中,VMX监视器50可向其他软件(例如,客户软件)呈现一个或多个虚拟机的抽象。VMX监视器50可向各种客户机提供相同或不同的抽象。在各VM上运行的客户软件可包括客户OS和各种客户软件应用程序。这些客户OS和软件应用程序在此被统称为客户软件。客户软件期望访问该客户软件在其上运行的VM内的物理资源(例如,处理器寄存器、存储器和输入/输出(I/O)设备)。VMX监视器50可有助于访问客户软件所期望的资源,同时还保持对平台硬件内资源的最终控制。
在一个实施例中,可使用存储在虚拟机控制结构(VMCS)(未在图2中具体示出)内一个或多个指定字段中的数据来定义标准(控制传送标准和/或故障标准)。例如,VMCS可存储客户软件的状态和信息以控制其操作。VMCS可驻留于存储器20中并且可由处理器维持。应该理解,可使用任何其他的数据结构(例如,芯片内高速缓存、文件、查找表等)存储已存储在VMCS内的信息。
在一个实施例中,如果传送标准确定当前事件必须由VMX监视器50处理,则控制就被传送至VMX监视器50。VMX监视器50然后可处理该事件并将控制传送回客户软件。从VMM或VMX监视器到客户软件的控制传送在这里可被称为VM进入,而从客户软件到VMM或VMX监视器的控制传送在此可被称为VM退出。
如图2所示,存储器20可包括可使用关于第一客户软件30的页面表条目(PTE)访问的第一页面35,以及可使用关于第二客户软件40的PTE访问的第二页面45。也就是说,第一页面35和第二页面45可包括分别对应于第一客户30和第二客户40的代码和/或数据。在图2的实施例中,存储器20可以对应于包括代码和数据两者的物理地址,并且对应于客户软件30和客户软件40的ASID的地址可对应于用来指向物理地址空间的线性地址(或其一部分)。
仍参看图2,第一客户30具有第一ASID值(即,ASID=1),并且还包括对应于第一地址空间的CR3值。同样地,第二客户40具有第二ASID值(即,ASID=2)并且还具有与其相关联的CR3值。
控制第一客户软件30和第二客户软件40的执行的VMX监视器还具有与其相关联的ASID值。例如,如图2的实施例中所示,VMX监视器50可具有三个与其相关联的ASID值。
如图2所示,可执行MOV to CR3指令以产生如箭头55所示的上下文切换。此外,VMX监视器50通过产生由标号60表示的VM退出来控制客户软件的操作,该VM退出引起从当前执行客户中退出以强制控制返回VMX监视器50。类似地,VMX监视器50可通过执行VM进入(由图2中的标号70表示)就可引起客户的起动或恢复。
在各个实施例中,VMX体系结构增强能允许VMX监视器在上下文切换和使用ASID的VMX转换时避免清除TLB或其他类似的处理器资源。在各个实施例中,既不需要软件也不需要硬件中的显式ASID管理来检测交叉地址空间污染。
在各个实施例中,基于诸如图2所示的事件,包括使用MOV to CR3指令执行的上下文切换、VM退出或VM进入,可避免对TLB或其他处理器资源的清除,从而在该上下文切换以及其他体系结构事件时改进性能并降低额外开销。
在某些实施例中,系统存储器20内的页面以及其他被高速缓存的页面于是就可由跨所有地址空间的VMX监视器50来保护,从而对这些页面的任何尝试存储都可引起从起动这一存储的客户软件的VMX退出。对于这一事件,VMX监视器50可使得对应于这些存储的地址在所有TLB和其他处理器资源内无效。
在各个实施例中,处理器可不同地处理某些事件、指令和VMX转换。不同指令和事件的这些不同实现可在处理器微代码中实现。例如,对于客户软件内的MOVto CR3指令、VM退出或VM进入,处理器可寻找与新地址空间匹配的现有ASID。这一确定可通过比较新地址的ASID与处理器维持的ASID列表来作出。如果匹配存在,则处理器使该ASID成为当前ASID而无需清除任何TLB条目。否则,在一个实施例中对应于LRU ASID的所有TLB条目就被清除,并且最近最少使用ASID的ASID值就作为当前ASID。如果该ASID未被清除,则可维持来自在前地址空间的TLB条目。
与之相反,可不同地处理使用于特定页面的TLB条目无效的指令(例如,INVLPG指令)。例如,在一个实施例中,可基于这一指令使所有TLB内的线性地址空间无效。不同的操作仍可对其他指令出现。例如,在一个实施例中,检测到CR4值内无改变的MOV to CR4指令可使每一ASID内的所有TLB条目无效。
现在参看图3,示出了根据本发明一实施例的方法的流程图。方法100可用于在处理器内的不同上下文之间切换。如图3所示,可进行第一和第二地址空间之间的切换(框110)。虽然未在图3中示出,但是在这一切换之前,第一地址空间可被保存到对应于当前地址空间标识符的控制寄存器(或其他存储器)中。在其它实施例中,这一保存可在其他时刻进行。
地址空间切换可对应于VM退出或VM进入,或者可由MOV to CR3指令或其他类似事件所引起。接着,可确定ASID列表中是否存在第二地址空间(菱形框120)。这一列表可由处理器维持以标识不同的活动地址空间、与其相对应的线性地址空间内的位置、以及其他任选信息。例如,ASID列表可以是处理器中的便笺式存储器。
如果ASID列表内存在第二地址空间,则控制就可传至框130,其中可维持包括了对应于第一地址空间的TLB内任何条目的第一地址空间。此外,第二ASID可被存储在处理器的控制寄存器(例如,当前ASID寄存器)(或其他存储器位置)内以指示该第二地址空间(即,在菱形框120中找到的地址空间)是处理器内当前执行的地址空间(框135)。
如果相反在菱形框120处确定ASID列表内不存在第二地址空间,则接着就确定ASID列表是否已满(菱形框140)。如果该列表未满,则控制可传至框145,其中可维持包括了对应于第一地址空间的TLB内任何条目的第一地址空间。此外,第二ASID可被存储在处理器的控制寄存器(例如,当前ASID寄存器或其他存储器位置)内以指示该第二地址空间(即,来自以下讨论的框160的空地址空间或自由地址空间)是处理器内的当前执行地址空间(框150)。
如果相反在菱形框140处确定ASID列表已满,则在ASID列表内对应于LRU条目的TLB内的条目就被清除(菱形框160)。随后控制可传至方框145以便于进一步的处理,其中如上所述在该框145处第二ASID可被存储在LRU条目内。因此,就能启用TLB条目以及与第二ASID相关联的其他资源。
虽然在图3实施例中示为使用LRU策略来清除TLB条目,但是应该理解,在其它实施例中也可使用其他策略或机制来确定在ASID列表全满时清除的合适地址空间。
在某些实施例中,取决于地址空间切换的原因,可使用软件清除TLB内的特定条目或其他处理器资源。例如,如上所述,如果对受保护页面的存储尝试引起VM退出,则清除对应于该受保护空间的TLB内的地址。也就是说,在VMX体系结构的各种实现中,VMX监视器保护每个分页的分层结构。在虚拟化的环境中,软件可用于清除TLB或由客户支配的其他资源。随后,因为虚拟化软件处理本文中所述的清除活动,所以由客户承担的某些事件(例如,MOVto CR3指令)将不会清除资源。于是在客户中,如果任何存储指令修改了由CR3在CR3目标值中使用的TLB条目,则会产生VM退出。
使用根据本发明一实施例的半透明ASID,软件在这一VM退出之后可清除对应于引起该VM退出的存储指令的所有TLB条目,即使客户在VM退出时刻并没有使用该TLB条目。在这一实施例中,如果软件期望清除单个条目,则软件可用合适地址空间内对应于TLB条目的线性地址来执行INVLPG指令。对于这一软件调用INVLPG,处理器可清除对应于该线性地址的任何TLB条目,而无需考虑它们的ASID。虽然描述了使用INVLPG指令来实现,但是在其它实施例中其他指令或操作也可清除这些条目。
现在参看图4,示出了根据本发明一实施例的方法的流程图。更具体地,图4示出了用于清除TLB内某些条目的方法200。这一方法可在VM环境内执行,并且可基于VM退出起动。如图4所示,方法200可通过确定VM退出的原因(框210)开始。例如,在一个实施例中,可分析在VM退出之前的最后一个操作以确定是否对受保护存储器空间执行存储或其他存储器操作引起了该VM退出。当然也存在使VM退出发生的许多其他原因。
然后,在菱形框220处可确定存储操作是否尝试修改受保护的条目,诸如受保护的TLB条目(例如,对应于不同地址空间)。如果不是,在可继续VMX监视器的正常执行(框230)。这一执行可取决于程序指令采取许多形式。在这一执行之后,控制可在需要时返回给客户。
如果相反确定存储尝试修改受保护的条目,则因为该VMX监视器能访问该客户不能访问的受保护位置,所以该VMX监视器可执行该存储操作(框235)。然后,对应于该存储地址的所有TLB条目可从所有TLB和其他存储器资源中清除(框240)。VM进入然后将控制返回给客户以便继续执行(框245)。这一执行例如可在下一个客户指令处继续。
在其它实施例中,可期望清除所有TLB内的所有条目。例如,如果已经修改了更高级的分页机制,则可期望该清除能清空TLB或在VMX监视器不再保护地址空间时从TLB中移除该地址空间。在一实施例中,如果软件期望清除用于一地址空间的整个TLB,则软件可用已经存储在那里的完全相同值执行MOVto CR3指令。因为该软件不指定哪个ASID需要被清除,所以当处理器看见这一CR4写入时,该处理器就清除用于所有ASID的所有TLB。在各个实施例中,如果PDE(或更高)条目被改变或者如果CR3从CR3目标值中移除并且监视器不再保护它,则软件就可清除用于一地址空间的整个TLB。
现参看图5,示出了根据本发明一实施例的另一种方法的流程图。具体地,方法250用于清除所有ASID的所有TLB。如图5所示,这一方法通过接收MOV to CR3指令(椭圆框255)开始。处理器基于该指令的接收确定新CR4值是否与其前一值相同(菱形框260)。如果该新地址值不同,则执行正常的CR4操作(框270)。这些操作可基于CR4内不同位的状态而变化。例如,基于位状态可清除诸如TLB的处理器资源,并且可进行其他处理。例如,改变数据的CR4转换可引起对清除至少当前TLB内条目的需要。此外,这一CR4转换可要求地址空间的改变。可用与参看图3所述的相类似的方式来执行这一地址空间改变。
如果相反确定新值与前一值相同,则这可以是指示VMX监视器或其他实体期望清除所有TLB的标志。如上所述,存在清除所有TLB的各种原因。因此,在框280处,可对所有ASID清除所有TLB。最后,执行可在相同(即,初始)地址空间内继续(框290)(例如,在下一个指令处)。
虽然在图5的实施例中描述为基于MOV to CR3指令实现,但是应该理解,在其它实施例中也可使用其他指令或操作来作为指示VMX监视器或其他条目期望清除所有TLB的标志。此外,虽然参看图5的具体实现做出了描述,但是在其它实施例中也可分析因预定指令产生的任何选定值以确定是否有值改变。如果没有,就可对一个或多个处理器资源执行期望动作。
现在参看图6,示出了根据本发明一实施例的代表性计算机系统400的框图。如图6所示,计算机系统400包括处理器401。在一个实施例中,处理器401可经由前侧总线420耦合至存储器集线器430,而该存储器集线器430可经由存储器总线耦合至共享主存储器440。如图6所示,处理器401根据本发明一实施例可包括TLB 403和ASID列表405。此外,2级(L2)高速缓存407可耦合至处理器401。
存储器集线器430还可(经由集线器链路)耦合至I/O集线器435,而该I/O集线器435则耦合至I/O扩展总线455和外围总线450。在各实施例中,I/O扩展总线455可耦合至诸如键盘和鼠标的各种I/O设备。外围总线450可耦合至诸如可以是诸如闪存、插入卡之类存储器设备的外围设备470的各种组件。虽然本说明书提到了系统400的具体部件,但是对所示实施例的各种修改也是可能的。
各实施例可用存储在存储介质上的计算机程序实现,其中这些程序具有编程计算机系统来执行这些实施例的指令。存储介质可包括但不限于包括软盘、光盘、光盘只读存储器(CD-ROM)、可重写光盘(CD-RW)和磁光盘的任何类型的盘;诸如只读存储器(ROM)、例如动态或静态随机存取存储器(RAM)的RAM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性卡或光学卡的半导体器件;或者用于存储电子指令的任何类型的介质。其他实施例可被实现为由可编程控制设备执行的软件模块。
因为软件有助于处理器保护和无效TLB条目,所以在各实施例中可以在上下文切换(例如,MOV to CR3、VM退出和VM进入)时维持TLB条目。于是在各实施例中无需窥探TLB硬件,从而避免了窥探TLB容量或其他限制。
在其它实施例中,半透明ASID可用于含有不将ID显式地分配给不同的地址空间、但要求处理器即使在TLB条目未被当前地址空间使用的情况下也在修改页面表之后采取具体动作清除TLB条目的页面表的任何体系结构中。
因此,在各实施例中,处理器可支持ASID并避免TLB清除(例如,在上下文切换时),而无需专门的硬件检测交叉地址空间污染、也无需显式的软件控制和ASID分配。
虽然已对有限数目的实施例描述了本发明,但是本领域技术人员应该认识到可从中做出许多修改和变化。所附权利要求旨在覆盖落入本发明真实精神和范围内的所有这些修改和变化。
权利要求
1.一种方法,包括在第一地址空间和第二地址空间之间切换;确定在地址空间列表内是否存在所述第二地址空间;并且在所述切换之后维持翻译缓冲器内所述第一地址空间的条目。
2.如权利要求1所述的方法,其特征在于,还包括从所述列表中获取对应于所述第二地址空间的地址空间标识符,并且将所述地址空间标识符存储在控制寄存器内。
3.如权利要求1所述的方法,其特征在于,还包括如果在所述地址空间列表内不存在所述第二地址空间,则清除所述翻译缓冲器内选定地址空间的条目。
4.如权利要求1所述的方法,其特征在于,还包括确定对受保护位置的存储是否引起了所述切换。
5.如权利要求4所述的方法,其特征在于,还包括如果所述存储引起了所述切换,则从所述翻译缓冲器清除对应于所述受保护位置的条目。
6.如权利要求5所述的方法,其特征在于,清除对应于所述受保护位置的所述条目包括使用无效条目指令使所述翻译缓冲器内的线性地址无效。
7.如权利要求1所述的方法,其特征在于,所述第一地址空间包括客户软件,而所述第二地址空间包括虚拟机监视器。
8.如权利要求7所述的方法,其特征在于,还包括在虚拟机退出操作时维持所述条目。
9.如权利要求1所述的方法,其特征在于,所述第一地址空间包括虚拟机监视器,而所述第二地址空间包括客户软件。
10.如权利要求9所述的方法,其特征在于,还包括在虚拟机进入操作时维持所述条目。
11.一种方法,包括在客户软件和虚拟机监视器之间切换;确定对受保护位置的存储是否引起了所述切换;以及选择性地清除对应于所述受保护位置的处理器资源的至少一个条目,同时维持对应于所述客户软件的所述处理器资源的其他条目。
12.如权利要求11所述的方法,其特征在于,还包括如果在地址空间列表中不存在对应于所述虚拟机监视器的地址空间标识符,则清除所述处理器资源内选定地址空间的页面条目。
13.如权利要求11所述的方法,其特征在于,还包括使用无效条目指令选择性地清除所述至少一个条目。
14.如权利要求11所述的方法,其特征在于,所述切换是由控制寄存器移动指令引起的。
15.如权利要求11所述的方法,其特征在于,选择性地清除所述至少一个条目包括清除未由当前地址空间使用的至少一个条目。
16.如权利要求11所述的方法,其特征在于,还包括使用微代码启用对其他条目的维持。
17.一种方法,包括确定预定指令是否未修改选定值;以及如果未修改所述选定值则对处理器资源采取动作。
18.如权利要求17所述的方法,其特征在于,还包括清除所述处理器资源的所有地址空间内的所有条目。
19.如权利要求17所述的方法,其特征在于,所述预定指令包括移动至控制寄存器指令。
20.如权利要求17所述的方法,其特征在于,所述选定值包括控制寄存器值。
21.如权利要求17所述的方法,其特征在于,采取动作包括清除至少一个翻译后备缓冲器。
22.一种装置,包括具有第一和第二地址空间的条目的处理器资源,所述第一和第二地址空间对应于相应的第一和第二地址空间标识符;以及耦合至所述处理器资源的执行引擎,以在上下文切换至所述第二地址空间时维持所述第一地址空间的至少一部分条目。
23.如权利要求22所述的装置,其特征在于,还包括耦合至所述处理器资源以向所述条目提供所述第一和第二地址空间标识符的地址空间缓冲器。
24.如权利要求22所述的装置,其特征在于,如果对受保护位置的存储引起所述上下文切换,则所述执行引擎适于执行微代码以选择性地清除所述第一地址空间的条目。
25.如权利要求22所述的装置,其特征在于,所述处理器资源包括翻译后备缓冲器。
26.一种系统,包括处理器,包括具有第一和第二地址空间的条目的处理器资源,所述第一和第二地址空间分别对应于第一和第二地址空间标识符,以及耦合至所述处理器资源的执行引擎,所述执行引擎在上下文切换至所述第二地址空间时维持所述第一地址空间的至少一部分条目;以及耦合于所述处理器的动态随机存取存储器。
27.如权利要求26所述的系统,其特征在于,还包括耦合至所述处理器资源的地址空间缓冲器,以向所述处理器资源提供所述第一和第二地址空间标识符。
28.如权利要求26所述的系统,其特征在于,还包括地址空间标识符列表,以将具有条目的地址空间标识符存储在所述处理器资源内。
29.如权利要求26所述的系统,其特征在于,所述处理器资源包括翻译后备缓冲器。
30.一种包括含有指令的机器可访问存储介质的物品,如果执行所述指令会使得系统确定预定指令是否未修改选定值;以及如果所述选定值未被修改则对处理器资源执行一动作。
31.如权利要求30所述的物品,其特征在于,还包括如果被执行就能使所述系统清除所述处理器资源的所有地址空间内所有条目的指令。
32.如权利要求30所述的物品,其特征在于,还包括如果被执行就能使所述系统清除至少一个翻译后备缓冲器的指令。
全文摘要
在本发明一实施例中,一种方法包括在第一地址空间和第二地址空间之间切换,确定在地址空间列表内是否存在该第二地址空间;并且在切换之后维持翻译缓冲器内第一地址空间的条目。这样,可降低与上下文切换相关联的额外开销。
文档编号G06F9/455GK1993683SQ200580025726
公开日2007年7月4日 申请日期2005年7月14日 优先权日2004年7月30日
发明者J·布兰特, S·K·蒙达尔, R·乌利希, G·尼格, R·乔治 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1