分配存储器访问控制策略的制作方法

文档序号:6485394阅读:132来源:国知局
分配存储器访问控制策略的制作方法
【专利摘要】使能使用VMX非根指令负责用于协处理器的访问控制高速缓存。作为结果,不需要到VMX根的转变,从而节约了这样的转变中涉及的周期。
【专利说明】分配存储器访问控制策略

【背景技术】
[0001] 本发明一般地涉及使用虚拟化的计算机处理。
[0002] 计算机系统遭受恶意程序的攻击。未授权的软件可能侵染计算机系统并且使得计 算机以不适当的方式操作。一般地,通过诸如环和范围寄存器的各种技术控制在中央处理 单元上运行的软件。然而,在相同系统上的其他协处理器可以独立于这些保护而操作,并且 因此可能为系统攻击提供途径(avenue )。
[0003] -个已知的解决方案是使用虚拟化技术,包括从Intel公司可获得的VT-d虚拟化 技术。VMX根模式操作主要意图供虚拟机监视器(VMM)使用,并且其操作就像没有虚拟化一 样。VMX非根模式由虚拟机监视器(VMM)控制并且被设计为支持虚拟化。
[0004] 有时协处理器需要以协处理器上执行的软件的粒度的对系统存储器的经调节的 访问。在图形处理器上执行的软件模块被称为着色器内核,并且需要以着色器内核的粒度 的系统存储器访问。

【专利附图】

【附图说明】
[0005] 关于以下图描述了 一些实施例: 图1是针对一个实施例的流程图;以及 图2是针对一个实施例的系统描绘。

【具体实施方式】
[0006] 因为通过在VMX根模式中运行的VMM施行访问控制,所以访问控制的管理需要在 运行在VMX非根模式中的虚拟机(VM)和运行在VMX根模式中的VMM之间的转变。因为这 些转变是昂贵的,所以存在将这些转变加速到在协处理器软件上的上下文切换的频率的需 要。因此,存在这样的需要:使得计算机系统能够在具有与虚拟化技术相关联的所有保护并 且具有高存储器访问速度的非根模式中操作,而不需要切换到VMX根模式。
[0007] 在一些实施例中,这可以通过设立每上下文的许可映射来完成,可以当需要快速 上下文切换时在不用切换到VMX根模式的情况下切换上下文。许可映射提供适合的访问限 制来保护系统不受在系统上的协处理器设备的恶意访问。VMM建立存储器映射,其为给定的 处理设备提供限制来使能来自VMX非根模式的对存储器的快速访问。
[0008] 参考图1,可以在软件、固件和/或硬件中实现用于在不必显式转变到VMX根模式 的情况下改变访问控制许可映射的序列10。在软件和固件实施例中,其可以通过在诸如磁、 光学或半导体存储部的非暂态计算机可读介质中存储的计算机执行指令来实现。
[0009] 该序列基本上具有两个部分。VMX根模式在图1中的左边,并且VMX非根模式在图 1中的右边。因此,左列全部在VMX根模式中并且仅右列在VMX非根模式中。
[0010] 该序列在块12中开始,其中VMX非根模式设立上下文。上下文是操作系统或设备 驱动需要在其向处理设备指派角色之前建立的数据结构的集合。这样的处理设备的示例包 括图形处理单元、网络接口控制器、协处理器或者任何其他基于处理处理器的设备。 toon] 在一个示例中,当处理设备是网络接口卡时,上下文是操作系统或设备驱动需要 发出到网络接口卡的所有信息,诸如网际协议地址、网络接口卡速度等等。
[0012] 接着移动到块14,获得需要是由特定处理设备可访问的有关堆的开始和结束地 址。因此,在图形处理单元的情况下,需要的堆可以是表面堆、指令堆或者一般堆。不同的 堆可以需要由不同的处理设备访问,并且因此标识需要的堆并且取得它们的开始和结束地 址。
[0013] 接着如在块16中指示的,将上下文信息以及开始和结束堆地址连同读写(RWX)许 可一起发送到VMX根模式。因此流程移动到在标题VMX根下的第一列。
[0014] 在块18中,即在VMX根模式中的第一块中,执行以下步骤来创建每个上下文。针 对将被牵连的每个设备需要不同的上下文,并且在某些情况下单个设备可能需要多于一个 的上下文。例如,图形处理单元一般具有若干上下文。每个上下文与可以在处理设备上执 行的不同软件相关联。
[0015] 在块20中,取得在非根模式中收集的上下文信息。然后在块22中提取针对给定 上下文的访问控制信息。还提取的是针对给定上下文的上下文标识符。
[0016] 在块24中,获得针对处理设备的总线号、设备号和功能号。一般地,可以按照诸如 外围部件互连总线协议的总线协议来指派这些号。
[0017] 接着参考块26,设立根条目表寄存器。在Intel?处理器中,被称为VT-d的虚拟化 基于总线设备号、功能号和总线号来设立访问规定。在其他实施例中可以使用其他虚拟化 协议。
[0018] 在每个虚拟化中,建立针对设备的存储器映射。可以通过改变存储器映射来提供 针对给定处理设备的对存储器的访问。可以通过设立根条目表来改变存储器映射以实现针 对该处理设备的需要的上下文。
[0019] 存储器映射的该改变避免在其之后的在任何建立的上下文中的处理设备操作期 间的VMX根和非根模式之间的转变的需要。这样的切换在时延和周期方面是极端昂贵的。
[0020] 因此,在一个实施例中,可以使用切换_上下文指令来改变存储器映射。VMX非根 请求VMX根来设立访问表。然后,当VMX非根想要切换访问表时,其可以使用相同的指令来 翻转(flip),而不用从非根到根模式的切换。这消除了从非根模式切换不需要的多个步骤, 并且这些步骤趋于是计算上非常昂贵的。因此针对已如上文描述那样设立的该特定设备和 功能,不必切换回根模式。
[0021] 参考块28,针对根表、上下文表和页表分配存储器。然后在块30中,将访问控制策 略映射到页表中。将其他一切事物标记(块32)为针对该上下文在VT-d或其他虚拟化表中 不可用。因此设备仅可以访问已被设立的存储器并且不可以访问其他任何事物。因此可以 维持安全。
[0022] 然后在块34中,上下文标识符返回到VMX根并且流程回到VMX非根模式。
[0023] 在VMX非根模式中,可以如在块36中指示的那样获得上下文标识符。当执行给定 内核时,将VT-d或虚拟化表切换到适当的上下文标识符,而无需切换回VMX根模式(块38)。 因此,在VMX根中运行的代码设立针对用于每个许可集合的独特根指针的分层访问表。然 后,在VMX非根模式中运行的代码使用切换_上下文指令将这些许可指派到适当的上下文。 切换_上下文指令仅切换根指针并且冲洗任何许可高速缓存,而不用显式引起从VMX非根 到VMX根模式的切换,由此节约许多周期。
[0024] 在某些系统中,将内核调度卸载到诸如在图形处理单元本身中的微控制器的微控 制器。在那些系统中,微控制器需要能够切换VT-d指针。在这样的系统中,由主机操作系 统或者虚拟机监视器设立VT-d表,但是由设备控制器而不是中央处理单元切换根指针。
[0025] 在图2中示出的计算机系统130可以包括通过总线104耦合到芯片组核心逻辑 110的硬驱动器134和可移除介质136。该计算机系统可以是任何计算机系统,包括诸如智 能电话的智能移动设备、平板电脑或移动因特网设备。键盘和鼠标120或其他常规部件可 以经由总线108耦合到芯片组核心逻辑。在一个实施例中,核心逻辑可以经由总线105耦 合到图形处理器112并且耦合到中央处理器100。图形处理器112也可以通过总线106耦 合到帧缓冲区114。帧缓冲区114可以通过总线107耦合到显示屏118。在一个实施例中, 图形处理器112可以是使用单指令多数据(SMD)架构的多线程、多核心并行处理器。
[0026] 在软件实现的情况下,有关代码可以存储在任何适合的半导体、磁或光学存储器 中,包括主存储器132 (如在139处指示的)或在图形处理器之内的任何可用的存储器。因 此,在一个实施例中,用于执行图1的序列的代码可以存储在诸如存储器132的非暂态机器 或计算机可读介质中和/或图形处理器112和/或中央处理器100中,并且在一个实施例 中可以由处理器100和/或图形处理器112执行。
[0027] 图1是流程图。在一些实施例中,可以在硬件、软件或固件中实现在这些流程图中 描绘的序列。在软件实施例中,诸如半导体存储器、磁存储器或光学存储器的非暂态计算机 可读介质可以被用于存储指令并且可以通过处理器来执行以实现在图1中示出的序列。
[0028] 贯穿本说明书对"一个实施例"或"实施例"的引用意味着结合该实施例描述的特 定特征、结构或特性被包括在涵盖在本发明之内的至少一种实现中。因此,短语"一个实施 例"或者"在实施例中"的出现并不必然是指相同的实施例。此外,这些特定特征、结构或特 性可以以不同于所说明的特定实施例的其他适合的形式来制定,并且所有这样的形式可以 涵盖在本申请的权利要求之内。
[〇〇29] 虽然已关于有限数量的实施例描述了本发明,但是本领域技术人员将从其中意识 到许多修改和变型。所附权利要求意图覆盖如落入该本发明的真实精神和范围内的所有这 样的修改和变型。
【权利要求】
1. 一种方法,其包括: 使能使用VMX非根指令并且在不用转变到VMX根的情况下改变访问控制上下文。
2. 如权利要求1所述的方法,其包括以用于许可集合的独特根指针设立访问表。
3. 如权利要求2所述的方法,其包括将许可集合指派到上下文。
4. 如权利要求3所述的方法,其包括切换根指针。
5. 如权利要求3所述的方法,其包括冲洗许可高速缓存。
6. 如权利要求1所述的方法,其包括将内核调度卸载到图形处理器。
7. 如权利要求6所述的方法,其包括使图形处理器能够切换根指针。
8. 如权利要求1所述的方法,其包括在VMX非根中针对协处理器设立上下文。
9. 如权利要求8所述的方法,其包括将上下文发送到VMX根。
10. 如权利要求9所述的方法,其包括在VMX根中提取针对上下文的访问控制信息。
11. 一种非暂态计算机可读介质,其存储使处理器能够执行以下内容的指令: 使能使用VMX非根指令并且在不用转变到VMX根的情况下改变访问控制上下文。
12. 如权利要求11所述的介质,其进一步存储指令来执行包括以用于许可集合的独 特根指针设立访问表的方法。
13. 如权利要求12所述的介质,其进一步存储指令来执行包括将许可集合指派到上 下文的方法。
14. 如权利要求13所述的介质,其进一步存储指令来执行包括切换根指针的方法。
15. 如权利要求13所述的介质,其进一步存储指令来执行包括冲洗许可高速缓存的 方法。
16. 如权利要求11所述的介质,其进一步存储指令来执行包括将内核调度卸载到图 形处理器的方法。
17. 如权利要求16所述的介质,其进一步存储指令来执行包括使图形处理器能够切 换根指针的方法。
18. 如权利要求11所述的介质,其进一步存储指令来执行包括在VMX非根中针对协处 理器设立上下文的方法。
19. 如权利要求18所述的介质,其进一步存储指令来执行包括将上下文发送到VMX根 的方法。
20. 如权利要求19所述的介质,其进一步存储指令来执行包括在VMX根中提取针对上 下文的访问控制信息的方法。
21. -种装置,其包括: 处理器,用于使能使用VMX非根指令并且在不用转变到VMX根的情况下改变访问控制 上下文;以及 耦合到所述处理器的协处理器。
22. 如权利要求21所述的装置,所述处理器用于以用于许可集合的独特根指针设立 访问表。
23. 如权利要求22所述的装置,所述处理器用于将许可集合指派到上下文。
24. 如权利要求23所述的装置,所述处理器用于切换根指针。
25. 如权利要求23所述的装置,所述处理器用于冲洗许可高速缓存。
26. 如权利要求21所述的装置,所述处理器用于将内核调度卸载到是图形处理器的 协处理器。
27. 如权利要求26所述的装置,所述处理器用于使协处理器能够切换根指针。
28. 如权利要求21所述的装置,所述处理器用于在VMX非根中针对协处理器设立上下 文。
29. 如权利要求28所述的装置,所述处理器用于将上下文发送到VMX根。
30. 如权利要求29所述的装置,所述处理器用于在VMX根中提取针对上下文的访问控 制信息。
【文档编号】G06F9/06GK104067218SQ201180075986
【公开日】2014年9月24日 申请日期:2011年12月28日 优先权日:2011年12月28日
【发明者】P.德万, J.马丁, U.R.萨瓦高恩卡, C.V.罗扎斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1