首页 / 专利库 / 软件 / 虚拟机监控器 / 回收地址翻译数据结构的现有字段以扩展存储器访问控制

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

阅读:822发布:2020-12-15

专利汇可以提供回收地址翻译数据结构的现有字段以扩展存储器访问控制专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 存储器 访问 控制装置和方法。在一个 实施例 中,当确定需要 修改 活动地址翻译数据结构的内容时,修改活动地址翻译数据结构中的条目,以与访客地址翻译数据结构中的对应条目保持一致。在修改期间,不用来自访客地址翻译数据结构的对应数据对活动地址翻译数据结构的条目中包括一个或多个访问控制指示符的位字段进行重写。,下面是回收地址翻译数据结构的现有字段以扩展存储器访问控制专利的具体信息内容。

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的系统,其中,由虚拟机监控器管理所述活动地 址翻译数据结构。

说明书全文

技术领域

发明涉及存储器访问控制,更具体地说,本发明涉及回收(reclaim) 地址翻译数据结构中的现有字段以扩展对存储器访问的控制。

背景技术

计算机处理器访问系统存储器以获取或存储系统存储器中的数据。具 体地说,处理器使用存储器中数据的物理地址以标识并访问数据。然而, 数据存储在存储器中的物理地址并不是处理器在内部操纵期间用来索引数 据的地址。相反地,根据程序指令,处理器为正在被处理的数据分配了虚 拟地址。因此,存储器访问经常需要将虚拟地址翻译成物理地址。
传统的地址翻译机制一般基于翻译后援缓冲器(translation lookaside buffer,TLB),这是一种处理器内的结构,用作以前处理过的地址翻译的 高速缓存。例如,在32位Intel体系结构的处理器指令集体系结构 (ISA)(以下称为IA-32 ISA)中,地址翻译由TLB和页表层级结构 (page-table hierarchy)控制。被处理器的控制寄存器CR3所引用的页表 层级结构是一种翻译数据结构,当允许调页时,其用于将虚拟存储器地址 (在IA-32 ISA上下文中也被称作线性存储器地址)翻译成物理存储器地 址。页表层级结构包括页目录(PD)、一组页表(多个PT)和多个页 (PF)。一般地,虚拟存储器地址到物理存储器地址的翻译开始于使用虚 拟地址的高20位(对4KB的页)或高10位(对4MB的页)来查找 TLB。如果找到了匹配项,就将包含在TLB中的物理页帧的高位与虚拟地 址的低位相连接,以形成物理地址。如果没有找到匹配项,处理器就查询 页表层级结构,以确定虚拟地址到物理地址的翻译,然后就在TLB中缓存 这一翻译。
PD和PT中的每个条目一般都包括各种字段,所述字段控制存储器页 的可访问性。这些字段的示例包括当前(P)标志,其表示被该条目所引 用的页是否有效,用户/管理者(U/S)标志,其基于特权级来控制对该条 目所引用的页的访问,以及读/写(R/W)标志,基于访问类型(即读或 写)来控制访问。

发明内容

本发明描述了一种方法和装置,用于回收地址翻译数据结构中的现有 位,以扩展对虚拟机环境中的存储器访问的控制。
通过本发明提供的方法和装置,地址翻译数据结构中的现有字段可以 多种方式而被解释和使用,而不会丧失通用性,从而扩展了对虚拟机环境 中的存储器访问的控制。
附图说明
在附图中以示例性而非限制性的方式图示了本发明,其中相同的标号 指向类似的元件,其中:
图1图示了虚拟机环境的一个实施例,本发明可运行于其中;
图2是虚拟TLB系统的一个实施例的方框图
图3是以下过程的一个实施例的流程图,该过程用于在虚拟机环境中 回收地址翻译数据结构中的现有字段,以扩展对存储器访问的控制;
图4是在IA-32 ISA中支持地址翻译的虚拟TLB系统的一个实施例的 方框图;并且
图5图示了用于IA-32 ISA的传统页表层级结构中的页目录条目 (PDE)和页表条目(PTE)的格式。

具体实施方式

在下面的描述中,为了说明的目的,给出了大量的具体细节,以提供 对本发明的透彻的了解。然而,对本领域内的技术人员来说,很明显没有 这些具体细节也可实施本发明。
下面的详细描述的一些部分以对计算机系统的寄存器或存储器中的数 据位的操作的算法和符号表示的形式而被提供。这些算法式描述和表示是 一种手段,数据处理领域内的技术人员借助这种手段可向本领域内其他技 术人员最有效地表达其工作的实质。在此,并且也是一般地,算法被设想 成自我一致的操作序列,可以获得预期结果。所述操作是那些需要对物理 量进行物理操纵的操作。尽管未必一定如此,但是这些量一般都采用了能 够被存储、传输、组合、比较或者操纵的电或磁信号的形式。主要是为了 通用起见,将这些信号称为位、值、元素、符号、字符、项、数字等等经 常已被证明是很方便的。
然而应该理解到,所有这些以及类似的术语都要和合适的物理量相结 合,并且仅仅是应用到这些量的便捷标记。除非在下述讨论中以相反的明 显形式具体地提出了,应该理解到,在整个的本发明中,使用“处理”或 “计算”或“运算”或“确定”等术语的讨论可以指称计算机系统或类似 的电子计算设备的动作或过程,该系统操纵被表示成计算机系统的寄存器 和存储器中的物理(电子)量的数据,并将之转换成类似地被表示为计算 机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量 的其他数据。
在下面对实施例的具体描述中对附图做了标号,这些附图以图示的形 式示出了多个可实施本发明的具体实施例。在附图中,相同的数字在几个 视图中都描述基本相似的组件。用充分的细节描述了这些实施例,以使得 本领域内的技术人员可实施本发明。也可应用其他实施例,并且可做出结 构性、逻辑性或电气性改变,而不会偏离本发明的范围。而且应该理解 到,本发明的各种实施例尽管有所不同,但未必是互相排斥的。例如,在 一个实施例中描述的具体特征、结构或特性可被包括在其他实施例中。因 此,下面的详细描述不应该被理解成限制性的,并且,本发明的范围只由 所附权利要求来限定,也包括这些权利要求的等同物的全部范围。
图1图示了虚拟机环境100的一个实施例,本发明可运行于其中。在 此实施例中,裸平台硬件116包括一个计算平台,其能够例如执行标准操 作系统(OS)或虚拟机监控器(VMM),例如VMM 112。VMM 112虽 然一般是以软件实现的,但也可模拟裸机接口并向更高级软件输出。这种 更高级软件可包括标准或实时OS,可以是一个具有有限的操作系统功能 的高度精简的操作环境,或者可以不包括传统OS工具。或者,VMM 112 例如可以运行在另一个VMM中或其上。VMM及它们的特征和功能都是 本领域内的技术人员所公知的,并且可以用例如软件、固件或通过各种技 术的组合来实现。
平台硬件116包括处理器118和存储器120。处理器118可以是任何 类型的能执行软件的处理器,例如微处理器数字信号处理器、微控制器 等等。存储器120可以是硬盘软盘、随机访问存储器(RAM)、只读存 储器(ROM)、闪存、上述设备的任意组合,或处理器118可读的任何其 他类型的机器介质。存储器120可以存储用来执行本发明的方法实施例的 指令。
平台硬件116可以是个人计算机(PC)、大型机、手持设备、便携式 计算机、机顶盒,或任何其他计算设备。
VMM 112向其他软件(即“访客”软件,guest software)提供一个或 多个虚拟机(VM)的抽象,其可向各种访客提供相同或不同的抽象。图1 示出了两个虚拟机,102和114。运行在每个VM上的访客软件可以包括 访客OS例如访客OS 104或106,以及各种访客软件应用程序108和 110。访客OS 104和106期望访问VM 102和114中的物理资源(例如处 理器寄存器、存储器和I/O设备)以及执行其他功能,所述访客OS 104或 106运行在VM 102和114之上。例如,在地址翻译操作期间,访客OS期 望分配物理存储器,提供免受软件应用程序(例如应用程序108或110) 影响的保护以及在软件应用程序之间的保护,使用多种调页技术等等。然 而,在虚拟机环境中,处理器118和VMM 112需要拥有对地址翻译操作 的最终控制权,以支持对VM 102和114的正确操作,并提供免受VM 102 和114影响的保护以及在VM 102和114之间的保护。在一个实施例中, 提供了一种在此称为虚拟翻译后援缓冲器(TLB)的地址翻译系统,该系 统在允许处理器118和VMM 112保留对地址翻译操作的最终控制权的同 时,容忍并支持OS控制地址翻译的尝试。下面将更详细地描述虚拟TLB 系统的一些实施例。
可被访客软件访问的资源可以被分类为“特许”或“非特许”。对特 许资源,VMM 112辅助实现访客软件所需的功能,同时保留对这些特许 资源的最终控制权。非特许资源不需要由VMM 112控制,并且可以被访 客软件访问。
在一个实施例中,如果访客软件试图访问一个特许资源,控制权就被 转移给VMM 112。响应于此,VMM 112或者允许访客软件访问该特许资 源,或者模拟访客软件所需的功能,然后将控制权转移回到访客软件。在 一个实施例中,VM 102或114与VMM 112之间控制权的转移通过执行一 条专用指令来实现。访客软件通过这种机制的控制在此被称为VMX操 作,并且,控制权从访客软件到VMM的转移在此被称为VM退出(VM exit)。在另一个实施例中,控制权在VM 102或114和VMM 112之间的 转移由非指令事件启动,例如异步硬件中断或页故障。
在一个实施例中,当发生了VM退出时,保存访客软件所使用的处理 器状态的多个部分,并载入VMM 112所需要的处理器状态的多个部分。 依赖于处理器指令集体系结构(ISA),对处理器状态的这种保存和载入 可能具有改变活动地址空间的效果。例如,在32位Intel体系结构的ISA (以下称为IA-32 ISA)中,活动地址空间可由控制寄存器中的值确定, 所述值可在VM退出时被保存和恢复。
在一个实施例中,当发生从VMM 112到访客软件的转移时,VM退 出时所保存的处理器状态(此状态可能已被VMM 112修改)可被恢复, 并且控制权被返还给访客OS 104或106,或者访客应用程序108或110。
应该注意到,本领域内任何其他公知机制都可用来在访客软件和 VMM 112之间转移控制权,而不会丧失通用性。
图2是虚拟TLB系统200的一个实施例的方框图。虚拟TLB系统200 包括访客地址翻译数据结构208和虚拟TLB 202。访客地址翻译数据结构 208表示访客OS会怎样把虚拟存储器地址翻译成物理存储器地址。这种 地址翻译数据结构的一个示例是IA-32 ISA中使月的页表层级结构。然 而,各种其他的地址翻译数据结构也可与本发明一起使用而不会丧失通用 性。访客地址翻译数据结构208由访客OS管理,该OS可访问并修改访 客地址翻译数据结构208中的任何条目。访客地址翻译数据结构208的一 些条目包括多个字段,这些字段由软件来专指定以用于操作使用。如图 2所示,访客地址翻译数据结构208中的一个示例条目212包括软件可用 字段216,其包括一个或多个位,这些位由访客软件来指定以用于操作使 用(即,访客软件可出于任何所需目的在此位字段中设置值)。应该注意 到,包括软件可用位字段的条目,以及包含在每个条目中的软件可用字段 中的位的数目可根据ISA而有所变动。例如在IA-32 ISA的页表层级结构 中,页目录和页表中的每个条目都包括3个“AVAIL”(可用)位,这些 位在体系结构上被保证对于系统程序员的使用来说是可用的。结果,这些 位不能被硬件所使用或解释(例如,以引起任何具体的动作或保护)。
虚拟TLB 202包括由处理器管理的物理TLB 204,以及由VMM管理 的活动地址翻译数据结构206。活动地址翻译数据结构206和访客地址翻 译数据结构208从以体系结构方式定义的格式(例如,IA-32格式)获得 它们的格式。物理TLB 204由处理器载入从活动地址翻译数据结构206获 得的地址翻译。
在一个实施例中,VMM基于访客地址翻译数据结构208而创建活动 地址翻译数据结构206,然后定期修改活动地址翻译数据结构206中地一 个或多个条目,以与访客地址翻译数据结构208中的相应条目保持一致。 在一个实施例中,一旦接收对由访客软件启动的事件的控制权,并确定该 事件的可能原因是活动地址翻译数据结构206的内容与访客地址翻译数据 结构的内容之间不一致,VMM就修改活动地址翻译数据结构206。例 如,这一事件可以是访客OS操纵TLB 204的尝试(例如,访客软件无效 TLB 204中所缓存的地址翻译的请求),或由处理器响应于由访客软件执 行的操作而产生的页故障(例如,响应于访客软件写一个存储器区域的请 求而产生的页故障,该区域在活动地址翻译数据结构中被标记为只读,而 在访客地址翻译数据结构中被标记为可写)。
在修改活动地址翻译数据结构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-32 ISA的具体特征来描述访问控制指示符的示例功 能。然而,应该注意到,访问控制指示符可用于下面描述的功能之外的各 种目的,并和IA-32处理器之外的各种处理器一起使用。
图4是支持在IA-32 ISA中的地址翻译的虚拟TLB系统400的一个实 施例的方框图。系统400包括虚拟TLB 404和物理TLB 408,其中虚拟 TLB 404包含由活动页表层级结构406表示的活动地址翻译数据结构。系 统400还包括由访客页表层级结构402表示的访客地址翻译数据结构。活 动页表层级结构406和访客页表层级结构402从以IA-32体系结构方式定 义的格式获得它们的格式。访客页表层级结构402的条目具有根据IA-32 ISA的传统格式。
图5图示了用于IA-32 ISA的传统页表层级结构中的页目录条目 (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就 向物理TLB 408发出指令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-32 ISA中,地址空间冲突一般是因为下述原因而产生,即现 有的处理器(例如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- modifying code,SMC)和自检查代码(self-examining code,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,则该页可被 认为是“不是当前的”。
应该注意到,除上述方式之外,活动地址翻译数据结构中的现有字段 可以多种方式而被解释和使用,而不会丧失通用性。
因此,上面已经描述了一种方法和装置,用于回收地址翻译数据结构 中的现有字段。应该理解到,上述描述是描述性的而非限制性的。对本领 域内的技术人员来说,一旦阅读和理解了上述内容,许多其他实施例也是 很清楚的。因此,本发明的范围应根据所附权利要求来确定,以及这些权 利要求的等同物所包括的全部范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈