回收地址翻译数据结构的现有字段以扩展存储器访问控制的制作方法

文档序号:6420852阅读:103来源:国知局

专利名称::回收地址翻译数据结构的现有字段以扩展存储器访问控制的制作方法
技术领域
:本发明涉及存储器访问控制,更具体地说,本发明涉及回收(reclaim)地址翻译数据结构中的现有字段以扩展对存储器访问的控制。
背景技术
:计算机处理器访问系统存储器以获取或存储系统存储器中的数据。具体地说,处理器使用存储器中数据的物理地址以标识并访问数据。然而,数据存储在存储器中的物理地址并不是处理器在内部操纵期间用来索引数据的地址。相反地,根据程序指令,处理器为正在被处理的数据分配了虚拟地址。因此,存储器访问经常需要将虚拟地址翻译成物理地址。传统的地址翻译机制一般基于翻译后援缓冲器(translationlookasidebuffer,TLB),这是一种处理器内的结构,用作以前处理过的地址翻译的高速缓存。例如,在32位Intel体系结构的处理器指令集体系结构(ISA)(以下称为IA-32ISA)中,地址翻译由TLB和页表层级结构(page-tablehierarchy)控制。被处理器的控制寄存器CR3所引用的页表层级结构是一种翻译数据结构,当允许调页时,其用于将虚拟存储器地址(在IA-32ISA上下文中也被称作线性存储器地址)翻译成物理存储器地址。页表层级结构包括页目录(PD)、一组页表(多个PT)和多个页帧(PF)。一般地,虚拟存储器地址到物理存储器地址的翻译开始于使用虚拟地址的高20位(对4KB的页)或高10位(对4MB的页)来查找TLB。如果找到了匹配项,就将包含在TLB中的物理页帧的高位与虚拟地址的低位相连接,以形成物理地址。如果没有找到匹配项,处理器就查询页表层级结构,以确定虚拟地址到物理地址的翻译,然后就在TLB中缓存这一翻译。PD和PT中的每个条目一般都包括各种字段,所述字段控制存储器页的可访问性。这些字段的示例包括当前(P)标志,其表示被该条目所引用的页是否有效,用户/管理者(U/S)标志,其基于特权级来控制对该条目所引用的页的访问,以及读/写(R/W)标志,基于访问类型(即读或写)来控制访问。
发明内容本发明描述了一种方法和装置,用于回收地址翻译数据结构中的现有位,以扩展对虚拟机环境中的存储器访问的控制。通过本发明提供的方法和装置,地址翻译数据结构中的现有字段可以多种方式而被解释和使用,而不会丧失通用性,从而扩展了对虚拟机环境中的存储器访问的控制。在附图中以示例性而非限制性的方式图示了本发明,其中相同的标号指向类似的元件,其中图1图示了虚拟机环境的一个实施例,本发明可运行于其中;图2是虚拟TLB系统的一个实施例的方框图;图3是以下过程的一个实施例的流程图,该过程用于在虚拟机环境中回收地址翻译数据结构中的现有字段,以扩展对存储器访问的控制;图4是在IA-32ISA中支持地址翻译的虚拟TLB系统的一个实施例的方框图;并且图5图示了用于IA-32ISA的传统页表层级结构中的页目录条目(PDE)和页表条目(PTE)的格式。具体实施例方式在下面的描述中,为了说明的目的,给出了大量的具体细节,以提供对本发明的透彻的了解。然而,对本领域内的技术人员来说,很明显没有这些具体细节也可实施本发明。下面的详细描述的一些部分以对计算机系统的寄存器或存储器中的数据位的操作的算法和符号表示的形式而被提供。这些算法式描述和表示是一种手段,数据处理领域内的技术人员借助这种手段可向本领域内其他技术人员最有效地表达其工作的实质。在此,并且也是一般地,算法被设想成自我一致的操作序列,可以获得预期结果。所述操作是那些需要对物理量进行物理操纵的操作。尽管未必一定如此,但是这些量一般都采用了能够被存储、传输、组合、比较或者操纵的电或磁信号的形式。主要是为了通用起见,将这些信号称为位、值、元素、符号、字符、项、数字等等经常已被证明是很方便的。然而应该理解到,所有这些以及类似的术语都要和合适的物理量相结合,并且仅仅是应用到这些量的便捷标记。除非在下述讨论中以相反的明显形式具体地提出了,应该理解到,在整个的本发明中,使用“处理”或“计算”或“运算”或“确定”等术语的讨论可以指称计算机系统或类似的电子计算设备的动作或过程,该系统操纵被表示成计算机系统的寄存器和存储器中的物理(电子)量的数据,并将之转换成类似地被表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。在下面对实施例的具体描述中对附图做了标号,这些附图以图示的形式示出了多个可实施本发明的具体实施例。在附图中,相同的数字在几个视图中都描述基本相似的组件。用充分的细节描述了这些实施例,以使得本领域内的技术人员可实施本发明。也可应用其他实施例,并且可做出结构性、逻辑性或电气性改变,而不会偏离本发明的范围。而且应该理解到,本发明的各种实施例尽管有所不同,但未必是互相排斥的。例如,在一个实施例中描述的具体特征、结构或特性可被包括在其他实施例中。因此,下面的详细描述不应该被理解成限制性的,并且,本发明的范围只由所附权利要求来限定,也包括这些权利要求的等同物的全部范围。图1图示了虚拟机环境100的一个实施例,本发明可运行于其中。在此实施例中,裸平台硬件116包括一个计算平台,其能够例如执行标准操作系统(OS)或虚拟机监控器(VMM),例如VMM112。VMM112虽然一般是以软件实现的,但也可模拟裸机接口并向更高级软件输出。这种更高级软件可包括标准或实时OS,可以是一个具有有限的操作系统功能的高度精简的操作环境,或者可以不包括传统OS工具。或者,VMM112例如可以运行在另一个VMM中或其上。VMM及它们的特征和功能都是本领域内的技术人员所公知的,并且可以用例如软件、固件或通过各种技术的组合来实现。平台硬件116包括处理器118和存储器120。处理器118可以是任何类型的能执行软件的处理器,例如微处理器、数字信号处理器、微控制器等等。存储器120可以是硬盘、软盘、随机访问存储器(RAM)、只读存储器(ROM)、闪存、上述设备的任意组合,或处理器118可读的任何其他类型的机器介质。存储器120可以存储用来执行本发明的方法实施例的指令。平台硬件116可以是个人计算机(PC)、大型机、手持设备、便携式计算机、机顶盒,或任何其他计算设备。VMM112向其他软件(即“访客”软件,guestsoftware)提供一个或多个虚拟机(VM)的抽象,其可向各种访客提供相同或不同的抽象。图1示出了两个虚拟机,102和114。运行在每个VM上的访客软件可以包括访客OS例如访客OS104或106,以及各种访客软件应用程序108和110。访客OS104和106期望访问VM102和114中的物理资源(例如处理器寄存器、存储器和I/O设备)以及执行其他功能,所述访客OS104或106运行在VM102和114之上。例如,在地址翻译操作期间,访客OS期望分配物理存储器,提供免受软件应用程序(例如应用程序108或110)影响的保护以及在软件应用程序之间的保护,使用多种调页技术等等。然而,在虚拟机环境中,处理器118和VMM112需要拥有对地址翻译操作的最终控制权,以支持对VM102和114的正确操作,并提供免受VM102和114影响的保护以及在VM102和114之间的保护。在一个实施例中,提供了一种在此称为虚拟翻译后援缓冲器(TLB)的地址翻译系统,该系统在允许处理器118和VMM112保留对地址翻译操作的最终控制权的同时,容忍并支持OS控制地址翻译的尝试。下面将更详细地描述虚拟TLB系统的一些实施例。可被访客软件访问的资源可以被分类为“特许”或“非特许”。对特许资源,VMM112辅助实现访客软件所需的功能,同时保留对这些特许资源的最终控制权。非特许资源不需要由VMM112控制,并且可以被访客软件访问。在一个实施例中,如果访客软件试图访问一个特许资源,控制权就被转移给VMM112。响应于此,VMM112或者允许访客软件访问该特许资源,或者模拟访客软件所需的功能,然后将控制权转移回到访客软件。在一个实施例中,VM102或114与VMM112之间控制权的转移通过执行一条专用指令来实现。访客软件通过这种机制的控制在此被称为VMX操作,并且,控制权从访客软件到VMM的转移在此被称为VM退出(VMexit)。在另一个实施例中,控制权在VM102或114和VMM112之间的转移由非指令事件启动,例如异步硬件中断或页故障。在一个实施例中,当发生了VM退出时,保存访客软件所使用的处理器状态的多个部分,并载入VMM112所需要的处理器状态的多个部分。依赖于处理器指令集体系结构(ISA),对处理器状态的这种保存和载入可能具有改变活动地址空间的效果。例如,在32位Intel体系结构的ISA(以下称为IA-32ISA)中,活动地址空间可由控制寄存器中的值确定,所述值可在VM退出时被保存和恢复。在一个实施例中,当发生从VMM112到访客软件的转移时,VM退出时所保存的处理器状态(此状态可能已被VMM112修改)可被恢复,并且控制权被返还给访客OS104或106,或者访客应用程序108或110。应该注意到,本领域内任何其他公知机制都可用来在访客软件和VMM112之间转移控制权,而不会丧失通用性。图2是虚拟TLB系统200的一个实施例的方框图。虚拟TLB系统200包括访客地址翻译数据结构208和虚拟TLB202。访客地址翻译数据结构208表示访客OS会怎样把虚拟存储器地址翻译成物理存储器地址。这种地址翻译数据结构的一个示例是IA-32ISA中使月的页表层级结构。然而,各种其他的地址翻译数据结构也可与本发明一起使用而不会丧失通用性。访客地址翻译数据结构208由访客OS管理,该OS可访问并修改访客地址翻译数据结构208中的任何条目。访客地址翻译数据结构208的一些条目包括多个字段,这些字段由软件来专门指定以用于操作使用。如图2所示,访客地址翻译数据结构208中的一个示例条目212包括软件可用字段216,其包括一个或多个位,这些位由访客软件来指定以用于操作使用(即,访客软件可出于任何所需目的在此位字段中设置值)。应该注意到,包括软件可用位字段的条目,以及包含在每个条目中的软件可用字段中的位的数目可根据ISA而有所变动。例如在IA-32ISA的页表层级结构中,页目录和页表中的每个条目都包括3个“AVAIL”(可用)位,这些位在体系结构上被保证对于系统程序员的使用来说是可用的。结果,这些位不能被硬件所使用或解释(例如,以引起任何具体的动作或保护)。虚拟TLB202包括由处理器管理的物理TLB204,以及由VMM管理的活动地址翻译数据结构206。活动地址翻译数据结构206和访客地址翻译数据结构208从以体系结构方式定义的格式(例如,IA-32格式)获得它们的格式。物理TLB204由处理器载入从活动地址翻译数据结构206获得的地址翻译。在一个实施例中,VMM基于访客地址翻译数据结构208而创建活动地址翻译数据结构206,然后定期修改活动地址翻译数据结构206中地一个或多个条目,以与访客地址翻译数据结构208中的相应条目保持一致。在一个实施例中,一旦接收对由访客软件启动的事件的控制权,并确定该事件的可能原因是活动地址翻译数据结构206的内容与访客地址翻译数据结构的内容之间不一致,VMM就修改活动地址翻译数据结构206。例如,这一事件可以是访客OS操纵TLB204的尝试(例如,访客软件无效TLB204中所缓存的地址翻译的请求),或由处理器响应于由访客软件执行的操作而产生的页故障(例如,响应于访客软件写一个存储器区域的请求而产生的页故障,该区域在活动地址翻译数据结构中被标记为只读,而在访客地址翻译数据结构中被标记为可写)。在修改活动地址翻译数据结构206的内容时,VMM避免将软件可用位字段216从访客地址翻译数据结构208拷贝到活动地址翻译数据结构206,因为位字段216是由访客软件内部所使用,并且对VMM没有任何意义。相应地,因为包含在活动地址翻译数据结构206的条目中的位字段216不会被来自访客地址翻译数据结构208的数据所重写(overwrite),所以VMM能够回收这一位字段以为自己所用。在一个实施例中,VMM使用活动地址翻译数据结构206的条目(例如条目210)中的位字段来存储访问控制指示符214,所述访问控制指示符控制由条目210所引用的存储器区域的可访问性。访问控制指示符的示例及其在虚拟机环境中的用途将在下面更详细地进行描述。图3是过程300的一个实施例的流程图,该过程用于在虚拟机环境中回收地址翻译数据结构中的现有字段,以扩展对存储器访问的控制。所述过程可以由处理逻辑来执行,所述处理逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上的软件)或二者的组合。参考图3,过程300开始于处理逻辑设置在活动地址翻译数据结构的一个或多个条目中的访问控制指示符(处理方框302)。当在活动地址翻译数据结构中创建条目时,处理逻辑设置访问控制指示符。在一个实施例中,当处理逻辑基于访客地址翻译数据结构来创建整个活动地址翻译数据结构时创建条目,其中访客OS使用所述访客地址翻译数据结构用于地址翻译操作。或者,在一个新条目被加入到访客地址翻译数据结构后,处理逻辑在活动地址翻译数据结构中创建一个条目。在一个实施例中,一旦设置访问控制指示符,处理逻辑就可以在任何时候根据需要修改它们。然后,在处理方框304,处理逻辑检测向VMM的控制权转移,所述转移是由一个由访客软件启动的事件(例如,访客软件操纵TLB的尝试,或响应于访客软件执行的操作而产生的页故障)所引起的,并且评估此事件。基于这一评估,处理逻辑确定此事件是否需要修改活动地址翻译数据结构(判定框306)。例如,这一确定可依赖于页故障是因为活动地址翻译数据结构的内容与访客地址翻译数据结构的内容不一致,还是因为其他的原因而产生的。如果在决定框306做出的确定是否定的,过程300就结束。或者,如果在决定框306做出的确定是肯定的,那么,在修改活动地址翻译数据结构的其他内容以与访客地址翻译数据结构的内容匹配时,处理逻辑避免重写访问控制指示符(处理方框308)。结果,在地址翻译操作期间,在活动地址翻译数据结构中维护访问控制指示符,以为处理器所用。下面将参考IA-32ISA的具体特征来描述访问控制指示符的示例功能。然而,应该注意到,访问控制指示符可用于下面描述的功能之外的各种目的,并和IA-32处理器之外的各种处理器一起使用。图4是支持在IA-32ISA中的地址翻译的虚拟TLB系统400的一个实施例的方框图。系统400包括虚拟TLB404和物理TLB408,其中虚拟TLB404包含由活动页表层级结构406表示的活动地址翻译数据结构。系统400还包括由访客页表层级结构402表示的访客地址翻译数据结构。活动页表层级结构406和访客页表层级结构402从以IA-32体系结构方式定义的格式获得它们的格式。访客页表层级结构402的条目具有根据IA-32ISA的传统格式。图5图示了用于IA-32ISA的传统页表层级结构中的页目录条目(PDE)的格式502和页表条目(PTE)的格式(504)。每个PDE和PTE都包括一组位,控制存储器页的可访问性。例如,这些位包括当前(P)标志516或510,表示被该条目所引用的页是否有效,用户/管理者(U/S)标志520或514,基于特权级来控制对该条目所引用的页的访问,以及读/写(R/W)标志518或512,基于访问类型(即读或写)来控制访问。每个PDE和PTE还包括三个“AVAIL”位506和508。AVAIL位506和508在体系结构上被保证对于系统程序员的使用来说是可用的。即,软件可出于任何所需目的而在AVAIL位中置入多个值(例如,为了记录与给定页相关的信息)。结果,硬件就不能出于任何其它目的(例如,新的页级别的保护)而解释或使用这些位。因此,如果这些字段不为软件所使用,它们就“浪费”了。回到图4,每个PDE和PTE中的AVAIL位都由VMM设置,并且在修改活动页表层级结构406的内容时不会被来自访客页表层级结构402的数据所重写。在一个实施例中,在创建活动页表层级结构406或新条目被加入到活动页表层级结构406时,AVAIL位被创建在一个实施例中,活动页表层级结构406中的所有条目最初都被标记为无效(使用每个PDE中的P标志516和每个PTE中的P标志510),以模拟TLB没有条目时TLB的初始化状态。随后,当访客软件向处理器提供虚拟地址时,处理器在活动页表层级结构406中只发现无效条目,并且产生页故障。页故障将控制权从访客OS转移到VMM。然后,VMM将相应条目从访客页表层级结构402拷贝到活动页表层级结构406,重填活动页表层级结构406。在重填期间,访客页表层级结构402中的AVAIL位被忽略(即,AVAIL位没有被拷贝到活动页表层级结构406)。允许访客软件自由修改访客页表层级结构402,包括改变虚拟到物理映射、许可权等等。相应地,活动页表层级结构406可能不总是与访客页表层级结构402保持一致。即,活动页表层级结构406可能会过时,例如,它可能允许对其条目过多的访问,提供错误的虚拟到物理地址映射等等。当因为层级结构402和406之间的不一致而产生问题时,访客OS就向物理TLB408发出指令416中的一条指令。这些指令导致控制权从访客OS向VMM的转移。VMM然后将确定该指令的起因,并修改活动页表层级结构406的内容(例如,从活动页表层级结构406中去除由访客软件在所发出的指令中引用的条目)。在修改期间,访客页表层级结构402中的AVAIL位不被拷贝到活动页表层级结构406。因为活动页表层级结构406中的AVAIL位未被改变,因此它们可被VMM回收。一旦被回收,AVAIL位可以各种方式而被使用。例如,AVAIL位中的一位可以是访客/主机(“G/H”)访问位,其控制访客软件对页的访问。即,如果活动PTE中的“G/H”位被清除时,那么只有当VMM(“主机”)正在运行时,处理器才可允许对由该PTE引用的页进行访问。如果设置了“G/H”位,那么当VMM或访客软件正在运行时,处理器可允许对该页的访问。“G/H”位可被用来解决在VMM和访客OS之间的地址空间冲突。在当前的IA-32ISA中,地址空间冲突一般是因为下述原因而产生,即现有的处理器(例如IA-32微处理器)不允许VMM接收对由访客OS启动的事件的控制权(例如,访客OS访问特许硬件资源的尝试),除非VMM代码和/或数据结构的一部分位于与访客OS相同的虚拟地址空间中。然而,因为访客OS预计VMM代码和/或数据结构并不驻留在相同的地址空间中,因此,它可能尝试去访问此地址空间中一个由VMM占据的区域,从而导致在访客OS和VMM之间的地址空间冲突。这一冲突可能导致VMM或访客OS执行的操作的异常终止。“G/H”位防止在访客OS和VMM之间发生地址空间冲突。具体地说,利用“G/H”位,VMM在访客OS的虚拟地址空间中发现一个位置,以映射它的代码和数据结构,并确保对应的“G/H”位被清除,以保护VMM代码和数据结构不被访客OS所访问。当访客OS访问由VMM占据的地址空间的尝试被检测到时,VMM代码和数据结构被重映射到访客OS的虚拟地址空间中一个未使用的区域,并且访客OS能访问所需的地址空间。“G/H”位也可被用来简化一些ISA中的地址切换,所述ISA不需要VMM代码和/或数据结构的一部分驻留在访客OS地址空间中以接收对由访客OS启动的事件的控制权。例如,当VMX操作控制访客软件时,在向VMM转移控制权之前,VM退出会引发完全的地址空间切换,因此不需要使VMM代码和/或数据结构的一部分驻留在访客OS地址空间中。然而,对每次VM退出都执行完全的地址切换,其代价是很高的。相应地,如上所述,可通过在访客OS地址空间中运行VMM代码和/或数据结构的一部分,并且使用“G/H”位来保护VMM代码和数据结构不被访客OS所访问,从而优化这一切换的执行。在另一个实施例中,AVAIL位中的两位可以由处理器解释为执行特权“X”和读特权“R”位,而现有的“R/W”位可被重新解释位写特权“W”位。结果,可独立地控制不同类型的页访问。例如,当X位被清除时,处理器可以禁止执行来自该页的任何指令,并且,当X位被设置时,允许执行来自该页的指令。类似地,“R”位可控制从该页的数据读访问,而“W”位可控制对该页的写访问。可独立设置的“R”、“W”和“X”位的组合和动态二进制翻译器一起使用可能是有益的,其中所述二进制翻译器修改指令二进制码以用于各种目的,例如指令集模拟、地址跟踪等等。例如,“R”、“W”和“X”位的组合可简化IA-32处理器上的动态二进制翻译器对自修改代码(self-modifyingcode,SMC)和自检查代码(self-examiningcode,SEC)的处理。即,动态二进制翻译器可将一个保持有已翻译指令的页上的“R”、“W”和“X”位的组合设置成001,从而允许处理器执行所述代码,同时检测代码修改或读该代码的指令字节的尝试(该指令字节可能与代码的初始指令有所不同,因为二进制翻译器的翻译或打补丁动作)。对于同时保持有指令和数据的页来说,二进制翻译器可以适当地设置“R”和“W”位,但保持“X”位被设置为0,以使得代码可直接访问该页上的数据,但不能执行该页上的指令。执行该页上的指令的尝试会导致向VMM的转移,然后这一转移可模拟引发故障的指令。“R”、“W”和“X”位的组合还可允许对包含嵌入式秘密密钥或算法的代码的安全执行。即,VMM可将包含嵌入式秘密密钥或算法的代码映射到一个页上,该页由其“R”、“W”和“X”位的组合被设置成001的条目所引用。结果,可调用并执行所述安全代码,同时,嵌入式秘密密钥或算法可被保护起来,不被运行在相同地址空间中的其他代码所读取或修改。“R”、“W”和“X”位的组合还可用来辅助调试操作。具体地说,保持有数据的当前页可被VMM驻留调试器进行映射,其“R”、“W”和“X”位的组合被设置成010或110。利用这些保护,调试器可立即确定有问题的代码已何时不经意地开始执行数据,好像它就是指令一样。在另一个实施例中,AVAIL位中的一位可与现有的“U/S”位组合起来,以表示一个给定的页是否可被运行在某个特权级的代码访问。VMM然后可以使用两位来指定可访问给定页的最高特权级。例如,值00可以表示只有运行在特权级0的代码可访问给定的页,直01可表示运行在特权级0或1的代码可访问该页,值10可表示运行在特权级0、1或2的代码可访问该页,而值11可表示运行在任何特权级的代码都可访问该页。使用两位来控制访问代码的特权级提供了更大的灵活性,例如使得可以在特权级1运行设备驱动器,而在特权级0运行OS内核的其余部分,同时使用页级别的保护来守护第0环内核,以防止破坏性的或出故障的第1环设备驱动器的操作。使用现有的“U/S”位不可能得到这些页级别的保护,因为现有的“U/S”位将第0、1、2环集群到一起作为管理者(S)特权级,而将第3环指定为用户(U)特权级。上面参考了“G/H”位,可独立设置的“R”、“W”和“X”位,以及“U/S”位与一个AVAIL位的组合而描述的功能可通过重定义3个现有的“P”、“R/W”和“U/S”位并将它们与所回收的3个AVAIL位组合起来而同时实现。具体地说,所得到的6个位中的3个可被用作可独立设置的“R”、“W”和“X”位,其余三个位中的两个可被用来表示代码具有访问权限的最高环,而最后一位可被用作“G/H”位。对于这些位的这一解释,如果“R”、“W”和“X”位的组合具有设置000,则该页可被认为是“不是当前的”。应该注意到,除上述方式之外,活动地址翻译数据结构中的现有字段可以多种方式而被解释和使用,而不会丧失通用性。因此,上面已经描述了一种方法和装置,用于回收地址翻译数据结构中的现有字段。应该理解到,上述描述是描述性的而非限制性的。对本领域内的技术人员来说,一旦阅读和理解了上述内容,许多其他实施例也是很清楚的。因此,本发明的范围应根据所附权利要求来确定,以及这些权利要求的等同物所包括的全部范围。权利要求1.一种方法,包括确定需要修改活动地址翻译数据结构的内容;以及在修改所述活动地址翻译数据结构中的条目以与访客地址翻译数据结构中的对应条目保持一致时,避免重写所述活动地址翻译数据结构中条目的一部分,其中,所述活动地址翻译数据结构中的条目的所述部分包括至少一个访问控制指示符。2.根据权利要求1的方法,其中,处理器使用所述活动地址翻译数据结构的所述内容以在翻译后援缓冲器中缓存地址翻译。3.根据权利要求1的方法,其中,所述访客地址翻译数据结构被访客软件用于地址翻译操作。4.根据权利要求1的方法,其中,由虚拟机监控器管理所述活动地址翻译数据结构。5.根据权利要求1的方法,还包括将至少一个访问控制指示符设置成持定值。6.根据权利要求1的方法,其中,所述活动地址翻译数据结构是活动页表层级结构。7.根据权利要求6的方法,其中所述活动地址翻译数据结构中的所述条目是页表条目和页目录条目中的任何之一;并且所述至少一个访问控制指示符是所述条目中的至少一个软件可用位。8.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括访客主机指示符,用于控制访客软件对所述页表层级结构中的对应页的访问。9.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括执行特权指示符,用于控制对来自所述页表层级结构中的对应页的指令的执行;以及读特权指示符,用于控制对所述页表层级结构中的所述对应页的读访问。10.根据权利要求9的方法,其中,读/写位被重解释为写特权指示符,用于控制对所述页表层级结构中的所述对应页的写访问。11.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括特权级访问指示符,用于控制由运行在特定特权级上的代码对所述页表层级结构中的对应页的访问。12.一种装置,包括访客地址翻译数据结构,用于由访客软件将虚拟存储器地址翻译成物理存储器地址;活动地址翻译数据结构,用于从所述访客地址翻译数据结构获得部分内容,所述部分内容排除了所述访客地址翻译数据结构中的多个条目中每一个条目内的至少一个访问控制指示符;和翻译后援缓冲器,用于存储由处理器从所述活动地址翻译数据结构获得的地址翻译。13.根据权利要求12的装置,其中,由虚拟机监控器管理所述活动地址翻译数据结构。14.根据权利要求13的装置,其中,所述虚拟机监控器将所述活动地址翻译数据结构的条目中的至少一个访问控制指示符设置为特定值。15.根据权利要求12的装置,其中,所述活动地址翻译数据结构是活动页表层级结构。16.根据权利要求15的装置,其中所述活动地址翻译数据结构中的所述条目是页表条目和页目录条目中的任何之一;并且所述至少一个访问控制指示符是所述条目中的至少一个软件可用位。17.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括访客主机指示符,用于控制访客软件对所述页表层级结构中的对应页的访问。18.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括执行特权指示符,用于控制对来自所述页表层级结构中的对应页的指令的执行;以及读特权指示符,用于控制对所述页表层级结构中的所述对应页的读访问。19.根据权利要求18的装置,其中,读/写位被重解释为写特权指示符,用于控制对所述页表层级结构中的所述对应页的写访问。20.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括特权级访问指示符,用于控制由运行在特定特权级上的代码对所述页表层级结构中的对应页的访问。21.一种机器可读介质,包含有指令,当所述指令被处理系统执行时,所述指令使得所述处理系统执行一种方法,所述方法包括确定需要修改活动地址翻译数据结构的内容;以及在修改所述活动地址翻译数据结构中的条目以与访客地址翻译数据结构中的对应条目保持一致时,避免重写所述活动地址翻译数据结构中条目的一部分,其中,所述活动地址翻译数据结构中的条目的所述部分包括至少一个访问控制指示符。22.根据权利要求20的机器可读介质,其中,处理器使用所述活动地址翻译数据结构的所述内容以在翻译后援缓冲器中缓存地址翻译。23.根据权利要求20的机器可读介质,其中,所述访客地址翻译数据结构被访客软件用于地址翻译操作。24.根据权利要求20的机器可读介质,其中,由虚拟机监控器管理所述活动地址翻译数据结构。25.根据权利要求20的机器可读介质,其中,所述活动地址翻译数据结构是活动页表层级结构。26.根据权利要求25的机器可读介质,其中所述活动地址翻译数据结构中的所述条目是页表条目和页目录条目中的任何之一;并且所述至少一个访问控制指示符是所述条目中的至少一个软件可用位。27.一种系统,包括处理系统;和存储器,该存储器耦合到所述处理器系统以存储指令,当所述指令被所述处理系统执行时,使得所述处理系统确定需要修改活动地址翻译数据结构的内容,并且,在修改所述活动地址翻译数据结构中的条目以与访客地址翻译数据结构中的对应条目保持一致时,避免重写所述活动地址翻译数据结构中条目的一部分,其中,所述活动地址翻译数据结构中的条目的所述部分包括至少一个访问控制指示符。28.根据权利要求27的系统,其中,处理器使用所述活动地址翻译数据结构的所述内容以在翻译后援缓冲器中缓存地址翻译。29.根据权利要求27的系统,其中,所述访客地址翻译数据结构被访客软件用于地址翻译操作。30.根据权利要求29的系统,其中,由虚拟机监控器管理所述活动地址翻译数据结构。全文摘要本发明公开了一种存储器访问控制装置和方法。在一个实施例中,当确定需要修改活动地址翻译数据结构的内容时,修改活动地址翻译数据结构中的条目,以与访客地址翻译数据结构中的对应条目保持一致。在修改期间,不用来自访客地址翻译数据结构的对应数据对活动地址翻译数据结构的条目中包括一个或多个访问控制指示符的位字段进行重写。文档编号G06F12/10GK1506847SQ20031011729公开日2004年6月23日申请日期2003年12月10日优先权日2002年12月12日发明者理查德·乌利希,吉尔伯特·奈格,埃里克·科塔-罗布尔斯,斯塔林塞尔瓦拉·杰亚辛格,阿兰·卡希,迈克尔·科祖克,史蒂文·M·贝内特,M贝内特,科塔-罗布尔斯,科祖克,卡希,塞尔瓦拉杰亚辛格,特奈格,理查德乌利希申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1