当前位置: 首页 > 专利查询>微软公司专利>正文

用于地址翻译控制的阴影页表制造技术

技术编号:2863571 阅读:142 留言:0更新日期:2012-04-11 18:40
在采用虚拟地址的计算机系统中,储存了给定页的多个版本:目录版本、表版本和数据版本。所述数据版本包含软件对象认为储存在页中的数据。所述页的目录和表版本包含以符合虚拟地址系统所采用的地址翻译映射上的限制的某一方式修改的页内容的版本。当由虚拟地址系统将页用作目录或表时,则分别使用该页的目录或表版本。当页是读请求的目标时,使用该页的数据版本。

【技术实现步骤摘要】

本专利技术一般涉及计算机中的存储器管理领域,尤其涉及虚拟地址系统中地址翻译表的管理。
技术介绍
现代计算机系统通常提供某一类型的虚拟地址机制。如本领域已知的,与计算机系统关联的每一个别可访问存储器单元具有唯一地标识该存储器单元的物理地址。然而,在支持虚拟寻址的计算机系统中,可能向物理位置分配虚拟地址。虚拟地址系统使用翻译映射以将虚拟地址翻译成物理地址。虚拟寻址系统的一个特征是可能配置地址翻译映射使得某些物理地址组(如,物理存储器页)不具有虚拟地址。在典型的基于分页的存储器管理模式中,地址翻译映射将虚拟页描述翻译成物理页帧号。由此,通过确保该地址翻译映射不通向页帧,使给定物理页帧中的所有位置可以拒绝虚拟地址。更一般地,许多虚拟寻址模式用可通过虚拟地址执行的访问(如,读、读/写)来标记虚拟地址;可通过确保没有映射到页的虚拟地址允许拒绝访问来防止所选择的到页的访问(如,写)。地址翻译映射的这一方面可用于实现一种形式的存储器保护。由此,通过确保向软件对象展现的任一映射处于没有映射到所讨论的页的虚拟地址准许访问的状态中,使该软件对象(如,操作系统、应用程序级进程或任一类型的软件对象)可以拒绝到物理地址空间的页的地址。这一类型的存储器保护模式在IA32处理器家族(如,INTEL x86处理器)中尤其有用,因为INTEL x86处理器体系结构是当在保护模式中(处理器的正常操作状态)操作时,所有存储器访问需要通过虚拟地址翻译。通过禁止超级用户模式程序以将准许对某些物理地址的某一访问的方式修改翻译表而其作用的存储器保护模式被称为“地址翻译控制”或ATC。在典型的体系结构(如,x86)中,从虚拟地址到物理地址的翻译由普通存储器页(所谓的“页映射”页)的内容给出。这对于写操作系统是方便的,因为可由由普通的存储器操作创建并修改虚拟地址映射。如果使用ATC配置操作系统,则ATC必须防止操作系统具有允许其直接写入页映射页的映射,因为操作系统将使用到这类页的写来创建映射,向任意物理存储器页给予任意的访问。由此,除防止对软件对象不允许写的页的读写映射之外,ATC必须防止包括到页映射页的读写映射的“不安全”映射。尽管ATC的存储器隔离是有效的,引发的一个问题是如何处理创建不安全映射但是其本身不违反访问控制政策的写请求。处理这一写请求的一种方法是仅令该请求失败;然而,这将需要对操作系统实质上的修改。由此,一些当前的ATC算法要么修改写值(如,将到页映射页的读写映射改变为只读映射),要么修改其它页映射页来令该映射变得安全。该技术的问题是软件对象将执行该写请求,相信正在向目标位置写入指定的值,然而实际上,该位置最终将包含不同的值。这一偏差将以各种方式产生反响-如,软件对象可基于软件认为已储存的值来生成校验和,并且这些校验和对于由ATC系统生成的修改值是无效的。本专利技术的一个实施例的一个好处是提供一种环境,其中创建不安全映射(但是遵循安全政策)的写看似成功地未修改(从软件对象的观点来看),但是所得的映射无法被利用来回避安全政策,由此克服了现有技术的缺点。
技术实现思路
本专利技术提供了阴影页的使用来支持地址翻译控制。在典型的虚拟寻址系统中,给定的页可以是映射页(包含作为映射的一部分的数据)或数据页(某一虚拟地址的目标),或两者。映射页和数据页在不同的上下文环境中访问数据页中的条目是基础读或写请求的目标;另一方面,映射页中的条目被解除参照来查找其它页。本专利技术维护了对应于在其中可使用页的不同上下文环境的多个页副本(如,作为目录、表或数据页,如后文所解释的)。取决于页被访问的上下文环境,本专利技术使用合适的页副本。某些虚拟寻址系统(如INTEL x86处理器家族中使用的最常见的虚拟地址模式)具有两种类型的映射页目录和表。目录包含到表和大数据页的引用,表包含到小数据页的引用。(“大”和“小”页在下文更具体描述。)由此,从地址翻译过程的观点来看,有多达三种可访问给定页的不同上下文环境作为目录、作为表或作为目标数据。在一个较佳的实施例中,维护了给定页的多达三个版本目录版本、表版本和数据版本。当访问给定页时,使用该页的目录、表或数据,取决于访问该页的上下文环境。在ATC下,仅当页用作目录或表时,页内容可导致存储器访问政策的违反。例如,页可包含到界限外页的链接。然而,仅当地址翻译器实际上将页用作映射的一部分时,才存在该页将用于访问界限外页的危险;如果相反该页作为数据页来访问,则它不暴露界限外页的虚拟地址。由此,页的数据副本可包含软件对象相信它已写入页的实际数据,而页的目录和表副本可包含给出安全映射的修改版本。下文描述了本专利技术的其它特征。附图说明当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本专利技术的目的,附图中示出了本专利技术的示例性构造;然而,本专利技术不限于所揭示的具体方法和手段。附图中图1是可实现本专利技术的各方面的示例计算环境的框图;图2是示例虚拟地址系统的框图;图3是地址翻译映射中示例条目的框图;图4是用于通过地址翻译控制的存储器访问控制的示例不变式条件的框图;图5是在多个版本中存在的页的框图,其中,取决于使用该页的上下文环境采用页的不同版本;图6是用于衍生页的目录版本的示例过程的流程图;以及图7是用于衍生页的表版本的示例过程的流程图。具体实施例方式综述地址翻译控制可用于通过有效地拒绝将违反政策的虚拟地址映射来实现存储器访问控制政策。一般而言,地址翻译控制通过在编辑地址翻译映射的尝试上施加实质上的限制来起作用,使得该映射总是保持安全(在该映射不向给定的软件实体暴露到该实体的界限外(或不可写)的页的链接(或可写链接),并且不允许不可信实体写入该映射的意义上)。通常,通过评估编辑映射的请求以确定实施该请求是否会将该映射置于不利状态,来施加这些实质上的限制;如果将导致不利状态,则修改该请求使得实施所期望的请求仍能维持所期望的状态。(如,可修改将导致向政策下可读但不可写的页的读/写链接的编辑映射的请求以将该链接标记为只读。)该技术的问题是有时候软件的正确行为取决于包含该软件认为它已写入存储器的值的存储器-如,在核实校验和的情况下-并且修改请求将导致存储器包含不同于软件认为它所写入的值的值。本专利技术通过维护用作页映射页的页的不同版本解决了这一问题向软件对象展现的数据版本,以及可以在不违反映射安全的情况下用作地址翻译过程的一部分的一个或多个映射版本。令这一页的数据版本变得只读,使得可由ATC截取对页的写,从而可修改页使得保持不同的版本同步。示例性计算方案图1示出了适合在其中实现本专利技术的各方面的一个示例计算环境。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本专利技术的使用或功能的范围的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。本专利技术可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本专利技术的已知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、嵌入式系统、包括任一上述系统或设备的分布式计算环境等等。本专利技术可在计算机可执行指令的一般上下文环境中描述,计算机可执本文档来自技高网
...

【技术保护点】
一种在其上编码了执行为地址翻译映射创建阴影页的方法的计算机可执行指令的计算机可读媒质,所述地址翻译映射包括一页目录和多个页表,所述页目录包括到所述多个页表的链接,每一所述页表包括到多个数据页的链接,所述页目录和页表的每一个被储存在所述数据页之一中,其特征在于,所述方法包括:    对于所述多个页表的至少一个,基于所述多个页表之一创建第一阴影页表,所述第一阴影页表在以下至少一个方面有别于所述多个页表的第一个:    所述第一阴影页表中的至少一个条目链接到与该条目在所述多个页表的第一个中的对应链接不同的数据页;以及    所述第一阴影页表包含其在所述多个页表的第一个中的对应链接是读/写的一个或多个只读链接;以及    基于所述页目录创建一阴影页目录,所述页目录包括到所述多个页表之一的链接,所述阴影页目录包括到所述阴影页表的链接而非到所述多个页表之一的链接。

【技术特征摘要】
US 2003-10-30 10/697,1971.一种在其上编码了执行为地址翻译映射创建阴影页的方法的计算机可执行指令的计算机可读媒质,所述地址翻译映射包括一页目录和多个页表,所述页目录包括到所述多个页表的链接,每一所述页表包括到多个数据页的链接,所述页目录和页表的每一个被储存在所述数据页之一中,其特征在于,所述方法包括对于所述多个页表的至少一个,基于所述多个页表之一创建第一阴影页表,所述第一阴影页表在以下至少一个方面有别于所述多个页表的第一个所述第一阴影页表中的至少一个条目链接到与该条目在所述多个页表的第一个中的对应链接不同的数据页;以及所述第一阴影页表包含其在所述多个页表的第一个中的对应链接是读/写的一个或多个只读链接;以及基于所述页目录创建一阴影页目录,所述页目录包括到所述多个页表之一的链接,所述阴影页目录包括到所述阴影页表的链接而非到所述多个页表之一的链接。2.如权利要求1所述的计算机可读媒质,其中,一政策支配对存储器的访问,其中,基于应用到所述虚拟地址的所述地址翻译映射的对所述存储器的访问导致所示政策的违反,并且其中,基于所述阴影页目录和所述第一阴影页表被应用到所述虚拟地址对所述存储器的访问不导致所述政策的违反。3.如权利要求1所述的计算机可读媒质,其特征在于,所述数据页的每一个储存在存储器的一具体帧中,其中,所述页目录储存在第一帧中,并且其中,所述方法还包括在不同于所述第一帧的第二帧处维护所述页目录的副本;以及将所述阴影页目录储存在所述第一帧处。4.如权利要求1所述的计算机可读媒质,其特征在于,所述页目录包括到第一尺寸页的链接,所述第一尺寸页包括多个第二尺寸页,并且其中,所述方法还包括创建包括所述多个第二尺寸页的第二阴影页表,其中,所述阴影页目录包括到所述第二阴影页表的链接。5.一种管理存储器的使用的系统,其特征在于,它包括一包括可读和可写的多个可分别寻址组件的存储器,每一所述可分别寻址组件具有一与其关联的物理地址;一定义虚拟地址和所述可分别寻址组件的物理地址之间的映射的地址翻译数据结构;一接收访问所述可分别寻址组件的第一个的请求的存储器管理器,所述请求基于虚拟地址标识所述可分别寻址组件的第一个,所述存储器管理器基于包括所述地址翻译结构的阴影表示的数据将所述虚拟地址翻译成所述可分别寻址组件的第一个的物理地址。6.如权利要求5所述的系统,其特征在于,所述存储器被组织成多个页,所述可分别寻址组件的第一个位于所述多个页之一内,其中,所述地址翻译结构包括(1)包含到所述多个页的链接的多个页表,以及(2)一包含到所述多个页表的链接的页目录,并且其中,所述地址翻译结构的阴影表示在至少一个链接上不同于所述地址翻译结构。7.如权利要求6所述的系统,其特征在于,每一所述链接包含在所述页目录中,并且所述页表包含一个或多个属性,并且其中,所述阴影表示中的至少一个链接在至少一个属性上不同于所述地址翻译结构中的对应链接。8.如权利要求6所述的系统,其特征在于,所述页目录和所述页表的每一个储存在所述多个页之一中,每一所述页具有与其关联的一物理位置描述符,所述页目录和页表中的每一链接基于所述物理位置描述符标识所述页之一。9.如权利要求8所述的系统,其特征在于,所述阴影表示包括所述页目录或所述页表的至少一个的替换版本,并且其中,所述替换版本储存在具有与所述替换版本所基于的页不同的物理位置描述符的页处。10.如权利要求5所述的系统,其特征在于,一政策支配所述存储器的可访问性,其中,所述地址翻译结构使存储器遭受所述政策的违反,并且其中,所述系统还包括一存储器访问控制管理器,它基于所述地址翻译结构创建所述阴影表示,并确保如果用于基于虚拟地址访问所述存储器,不导致所述政策的违反。11.如权利要求10所述的系统,其特征在于,所述政策将所述存储器的一部分定义为不可访问,并且其中,所述存储器访问控制管理器确保所述阴影表示不向所述存储器的部分展现虚拟地址。12.如权利要求10所述的系统,其特征在于,所述政策将所述存储器的一部分定义为可读但不可写,并且其中,所述存储器访问控制管理器确保所述阴影表示包含将所述存储器部分标记为只读的一个或多个属性。13.如权利要求10所述的系统,其特征在于,...

【专利技术属性】
技术研发人员:ES科恩
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1