CN104067218A - 分配存储器访问控制策略 - Google Patents
分配存储器访问控制策略 Download PDFInfo
- Publication number
- CN104067218A CN104067218A CN201180075986.3A CN201180075986A CN104067218A CN 104067218 A CN104067218 A CN 104067218A CN 201180075986 A CN201180075986 A CN 201180075986A CN 104067218 A CN104067218 A CN 104067218A
- Authority
- CN
- China
- Prior art keywords
- vmx
- root
- context
- devices
- described processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
使能使用VMX非根指令负责用于协处理器的访问控制高速缓存。作为结果,不需要到VMX根的转变,从而节约了这样的转变中涉及的周期。
Description
背景技术
本发明一般地涉及使用虚拟化的计算机处理。
计算机系统遭受恶意程序的攻击。未授权的软件可能侵染计算机系统并且使得计算机以不适当的方式操作。一般地,通过诸如环和范围寄存器的各种技术控制在中央处理单元上运行的软件。然而,在相同系统上的其他协处理器可以独立于这些保护而操作,并且因此可能为系统攻击提供途径(avenue)。
一个已知的解决方案是使用虚拟化技术,包括从Intel公司可获得的VT-d虚拟化技术。VMX根模式操作主要意图供虚拟机监视器(VMM)使用,并且其操作就像没有虚拟化一样。VMX非根模式由虚拟机监视器(VMM)控制并且被设计为支持虚拟化。
有时协处理器需要以协处理器上执行的软件的粒度的对系统存储器的经调节的访问。在图形处理器上执行的软件模块被称为着色器内核,并且需要以着色器内核的粒度的系统存储器访问。
附图说明
关于以下图描述了一些实施例:
图1是针对一个实施例的流程图;以及
图2是针对一个实施例的系统描绘。
具体实施方式
因为通过在VMX根模式中运行的VMM施行访问控制,所以访问控制的管理需要在运行在VMX非根模式中的虚拟机(VM)和运行在VMX根模式中的VMM之间的转变。因为这些转变是昂贵的,所以存在将这些转变加速到在协处理器软件上的上下文切换的频率的需要。因此,存在这样的需要:使得计算机系统能够在具有与虚拟化技术相关联的所有保护并且具有高存储器访问速度的非根模式中操作,而不需要切换到VMX根模式。
在一些实施例中,这可以通过设立每上下文的许可映射来完成,可以当需要快速上下文切换时在不用切换到VMX根模式的情况下切换上下文。许可映射提供适合的访问限制来保护系统不受在系统上的协处理器设备的恶意访问。VMM建立存储器映射,其为给定的处理设备提供限制来使能来自VMX非根模式的对存储器的快速访问。
参考图1,可以在软件、固件和/或硬件中实现用于在不必显式转变到VMX根模式的情况下改变访问控制许可映射的序列10。在软件和固件实施例中,其可以通过在诸如磁、光学或半导体存储部的非暂态计算机可读介质中存储的计算机执行指令来实现。
该序列基本上具有两个部分。VMX根模式在图1中的左边,并且VMX非根模式在图1中的右边。因此,左列全部在VMX根模式中并且仅右列在VMX非根模式中。
该序列在块12中开始,其中VMX非根模式设立上下文。上下文是操作系统或设备驱动需要在其向处理设备指派角色之前建立的数据结构的集合。这样的处理设备的示例包括图形处理单元、网络接口控制器、协处理器或者任何其他基于处理处理器的设备。
在一个示例中,当处理设备是网络接口卡时,上下文是操作系统或设备驱动需要发出到网络接口卡的所有信息,诸如网际协议地址、网络接口卡速度等等。
接着移动到块14,获得需要是由特定处理设备可访问的有关堆的开始和结束地址。因此,在图形处理单元的情况下,需要的堆可以是表面堆、指令堆或者一般堆。不同的堆可以需要由不同的处理设备访问,并且因此标识需要的堆并且取得它们的开始和结束地址。
接着如在块16中指示的,将上下文信息以及开始和结束堆地址连同读写(RWX)许可一起发送到VMX根模式。因此流程移动到在标题VMX根下的第一列。
在块18中,即在VMX根模式中的第一块中,执行以下步骤来创建每个上下文。针对将被牵连的每个设备需要不同的上下文,并且在某些情况下单个设备可能需要多于一个的上下文。例如,图形处理单元一般具有若干上下文。每个上下文与可以在处理设备上执行的不同软件相关联。
在块20中,取得在非根模式中收集的上下文信息。然后在块22中提取针对给定上下文的访问控制信息。还提取的是针对给定上下文的上下文标识符。
在块24中,获得针对处理设备的总线号、设备号和功能号。一般地,可以按照诸如外围部件互连总线协议的总线协议来指派这些号。
接着参考块26,设立根条目表寄存器。在Intel®处理器中,被称为VT-d的虚拟化基于总线设备号、功能号和总线号来设立访问规定。在其他实施例中可以使用其他虚拟化协议。
在每个虚拟化中,建立针对设备的存储器映射。可以通过改变存储器映射来提供针对给定处理设备的对存储器的访问。可以通过设立根条目表来改变存储器映射以实现针对该处理设备的需要的上下文。
存储器映射的该改变避免在其之后的在任何建立的上下文中的处理设备操作期间的VMX根和非根模式之间的转变的需要。这样的切换在时延和周期方面是极端昂贵的。
因此,在一个实施例中,可以使用切换_上下文指令来改变存储器映射。VMX非根请求VMX根来设立访问表。然后,当VMX非根想要切换访问表时,其可以使用相同的指令来翻转(flip),而不用从非根到根模式的切换。这消除了从非根模式切换不需要的多个步骤,并且这些步骤趋于是计算上非常昂贵的。因此针对已如上文描述那样设立的该特定设备和功能,不必切换回根模式。
参考块28,针对根表、上下文表和页表分配存储器。然后在块30中,将访问控制策略映射到页表中。将其他一切事物标记(块32)为针对该上下文在VT-d或其他虚拟化表中不可用。因此设备仅可以访问已被设立的存储器并且不可以访问其他任何事物。因此可以维持安全。
然后在块34中,上下文标识符返回到VMX根并且流程回到VMX非根模式。
在VMX非根模式中,可以如在块36中指示的那样获得上下文标识符。当执行给定内核时,将VT-d或虚拟化表切换到适当的上下文标识符,而无需切换回VMX根模式(块38)。因此,在VMX根中运行的代码设立针对用于每个许可集合的独特根指针的分层访问表。然后,在VMX非根模式中运行的代码使用切换_上下文指令将这些许可指派到适当的上下文。切换_上下文指令仅切换根指针并且冲洗任何许可高速缓存,而不用显式引起从VMX非根到VMX根模式的切换,由此节约许多周期。
在某些系统中,将内核调度卸载到诸如在图形处理单元本身中的微控制器的微控制器。在那些系统中,微控制器需要能够切换VT-d指针。在这样的系统中,由主机操作系统或者虚拟机监视器设立VT-d表,但是由设备控制器而不是中央处理单元切换根指针。
在图2中示出的计算机系统130可以包括通过总线104耦合到芯片组核心逻辑110的硬驱动器134和可移除介质136。该计算机系统可以是任何计算机系统,包括诸如智能电话的智能移动设备、平板电脑或移动因特网设备。键盘和鼠标120或其他常规部件可以经由总线108耦合到芯片组核心逻辑。在一个实施例中,核心逻辑可以经由总线105耦合到图形处理器112并且耦合到中央处理器100。图形处理器112也可以通过总线106耦合到帧缓冲区114。帧缓冲区114可以通过总线107耦合到显示屏118。在一个实施例中,图形处理器112可以是使用单指令多数据(SIMD)架构的多线程、多核心并行处理器。
在软件实现的情况下,有关代码可以存储在任何适合的半导体、磁或光学存储器中,包括主存储器132(如在139处指示的)或在图形处理器之内的任何可用的存储器。因此,在一个实施例中,用于执行图1的序列的代码可以存储在诸如存储器132的非暂态机器或计算机可读介质中和/或图形处理器112和/或中央处理器100中,并且在一个实施例中可以由处理器100和/或图形处理器112执行。
图1是流程图。在一些实施例中,可以在硬件、软件或固件中实现在这些流程图中描绘的序列。在软件实施例中,诸如半导体存储器、磁存储器或光学存储器的非暂态计算机可读介质可以被用于存储指令并且可以通过处理器来执行以实现在图1中示出的序列。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在涵盖在本发明之内的至少一种实现中。因此,短语“一个实施例”或者“在实施例中”的出现并不必然是指相同的实施例。此外,这些特定特征、结构或特性可以以不同于所说明的特定实施例的其他适合的形式来制定,并且所有这样的形式可以涵盖在本申请的权利要求之内。
虽然已关于有限数量的实施例描述了本发明,但是本领域技术人员将从其中意识到许多修改和变型。所附权利要求意图覆盖如落入该本发明的真实精神和范围内的所有这样的修改和变型。
Claims (30)
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根中提取针对上下文的访问控制信息。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067450 WO2013100921A1 (en) | 2011-12-28 | 2011-12-28 | Allocating memory access control policies |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067218A true CN104067218A (zh) | 2014-09-24 |
CN104067218B CN104067218B (zh) | 2019-06-18 |
Family
ID=48698165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075986.3A Active CN104067218B (zh) | 2011-12-28 | 2011-12-28 | 分配存储器访问控制策略 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9342704B2 (zh) |
CN (1) | CN104067218B (zh) |
WO (1) | WO2013100921A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292344A (zh) * | 2015-05-13 | 2018-07-17 | 英特尔公司 | 使用虚拟机扩展根操作在操作系统中对强制访问控制策略进行的完整性保护 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275593B2 (en) * | 2013-04-01 | 2019-04-30 | Uniquesoft, Llc | Secure computing device using different central processing resources |
US9747123B2 (en) * | 2015-09-25 | 2017-08-29 | Intel Corporation | Technologies for multi-level virtualization |
US10367639B2 (en) | 2016-12-29 | 2019-07-30 | Intel Corporation | Graphics processor with encrypted kernels |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993683A (zh) * | 2004-07-30 | 2007-07-04 | 英特尔公司 | 体系结构事件期间维持处理器资源 |
CN101048735A (zh) * | 2004-08-03 | 2007-10-03 | 索芙特瑞斯提股份有限公司 | 用于经由上下文策略控制来控制应用程序间关联的系统和方法 |
CN101351776A (zh) * | 2005-12-30 | 2009-01-21 | 英特尔公司 | 用于管理存储器访问、与存储位置相关联的标识符 |
CN101405712A (zh) * | 2006-03-21 | 2009-04-08 | 英特尔公司 | 利用虚拟化技术来加速域特定运行时环境的框架 |
CN101488113A (zh) * | 2008-11-25 | 2009-07-22 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN101882113A (zh) * | 2009-05-05 | 2010-11-10 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN102110008A (zh) * | 2009-12-29 | 2011-06-29 | 联想(北京)有限公司 | 访问主板附加设备的方法、虚拟机管理器及计算机 |
US20110293097A1 (en) * | 2010-05-27 | 2011-12-01 | Maino Fabio R | Virtual machine memory compartmentalization in multi-core architectures |
US20110296201A1 (en) * | 2010-05-27 | 2011-12-01 | Pere Monclus | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795855B2 (en) * | 2001-04-05 | 2004-09-21 | Hewlett-Packard Development Company, L.P. | Non-root users execution of root commands |
US7093125B2 (en) * | 2001-05-08 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Rote based tool delegation |
US6976270B2 (en) | 2001-05-08 | 2005-12-13 | Hewlett-Packard Development Company, L.P. | Process and component for inquiring about security relationships |
US7890771B2 (en) * | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7139892B2 (en) * | 2003-05-02 | 2006-11-21 | Microsoft Corporation | Implementation of memory access control using optimizations |
US20050144422A1 (en) * | 2003-12-30 | 2005-06-30 | Mcalpine Gary L. | Virtual to physical address translation |
US7506096B1 (en) * | 2005-10-06 | 2009-03-17 | Parallels Software International, Inc. | Memory segment emulation model for virtual machine |
US20080005447A1 (en) * | 2006-06-30 | 2008-01-03 | Sebastian Schoenberg | Dynamic mapping of guest addresses by a virtual machine monitor |
US7917724B2 (en) * | 2007-12-28 | 2011-03-29 | Intel Corporation | Protection of user-level applications based on page table information |
US8176293B2 (en) * | 2009-03-27 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | Method and system for moving active virtual partitions between computers |
US8479196B2 (en) * | 2009-09-22 | 2013-07-02 | International Business Machines Corporation | Nested virtualization performance in a computer system |
US8412754B2 (en) * | 2010-04-21 | 2013-04-02 | International Business Machines Corporation | Virtual system administration environment for non-root user |
CN102262557B (zh) * | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
US8479295B2 (en) * | 2011-03-30 | 2013-07-02 | Intel Corporation | Method and apparatus for transparently instrumenting an application program |
EP2795464B1 (en) * | 2011-12-22 | 2019-01-23 | Intel Corporation | Enabling efficient nested virtualization |
-
2011
- 2011-12-28 CN CN201180075986.3A patent/CN104067218B/zh active Active
- 2011-12-28 US US13/993,421 patent/US9342704B2/en active Active
- 2011-12-28 WO PCT/US2011/067450 patent/WO2013100921A1/en active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993683A (zh) * | 2004-07-30 | 2007-07-04 | 英特尔公司 | 体系结构事件期间维持处理器资源 |
CN101048735A (zh) * | 2004-08-03 | 2007-10-03 | 索芙特瑞斯提股份有限公司 | 用于经由上下文策略控制来控制应用程序间关联的系统和方法 |
CN101351776A (zh) * | 2005-12-30 | 2009-01-21 | 英特尔公司 | 用于管理存储器访问、与存储位置相关联的标识符 |
CN101405712A (zh) * | 2006-03-21 | 2009-04-08 | 英特尔公司 | 利用虚拟化技术来加速域特定运行时环境的框架 |
CN101488113A (zh) * | 2008-11-25 | 2009-07-22 | 华为技术有限公司 | 一种设备驱动域的实现方法、系统及装置 |
CN101882113A (zh) * | 2009-05-05 | 2010-11-10 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN102110008A (zh) * | 2009-12-29 | 2011-06-29 | 联想(北京)有限公司 | 访问主板附加设备的方法、虚拟机管理器及计算机 |
US20110293097A1 (en) * | 2010-05-27 | 2011-12-01 | Maino Fabio R | Virtual machine memory compartmentalization in multi-core architectures |
US20110296201A1 (en) * | 2010-05-27 | 2011-12-01 | Pere Monclus | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292344A (zh) * | 2015-05-13 | 2018-07-17 | 英特尔公司 | 使用虚拟机扩展根操作在操作系统中对强制访问控制策略进行的完整性保护 |
Also Published As
Publication number | Publication date |
---|---|
US20140123235A1 (en) | 2014-05-01 |
WO2013100921A1 (en) | 2013-07-04 |
US9342704B2 (en) | 2016-05-17 |
CN104067218B (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741019B2 (en) | Memory pools in a memory model for a unified computing system | |
US9606936B2 (en) | Generalized control registers | |
US10242420B2 (en) | Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta | |
US9239793B2 (en) | Mechanism for using a GPU controller for preloading caches | |
US20200218568A1 (en) | Mechanism for issuing requests to an accelerator from multiple threads | |
KR20150112778A (ko) | 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈 | |
US20170031593A1 (en) | Maintaining guest input/output tables in swappable memory | |
US9207919B2 (en) | System, method, and computer program product for bulk synchronous binary program translation and optimization | |
US10474616B2 (en) | Asynchronous mapping of hot-plugged device associated with virtual machine | |
US11467870B2 (en) | VMID as a GPU task container for virtualization | |
US8959319B2 (en) | Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction | |
CN104067218A (zh) | 分配存储器访问控制策略 | |
US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
US9448831B2 (en) | Efficient graphics virtualization with address ballooning | |
US11481250B2 (en) | Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values | |
US9329893B2 (en) | Method for resuming an APD wavefront in which a subset of elements have faulted | |
US11675568B2 (en) | Dual vector arithmetic logic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |