CN1991808B - 用于访客访问存储器映射的设备的方法和装置 - Google Patents

用于访客访问存储器映射的设备的方法和装置 Download PDF

Info

Publication number
CN1991808B
CN1991808B CN2006100640963A CN200610064096A CN1991808B CN 1991808 B CN1991808 B CN 1991808B CN 2006100640963 A CN2006100640963 A CN 2006100640963A CN 200610064096 A CN200610064096 A CN 200610064096A CN 1991808 B CN1991808 B CN 1991808B
Authority
CN
China
Prior art keywords
visit
visitor
logic module
access
equipment
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.)
Expired - Fee Related
Application number
CN2006100640963A
Other languages
English (en)
Other versions
CN1991808A (zh
Inventor
G·奈格尔
A·V·安德森
S·M·本尼特
R·S·马杜卡鲁穆库马纳
R·A·乌利希
R·S·帕塔萨拉蒂
S·谢恩伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1991808A publication Critical patent/CN1991808A/zh
Application granted granted Critical
Publication of CN1991808B publication Critical patent/CN1991808B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

公开了访客访问存储器映射的设备的装置、方法和***的实施例。在一个实施例中,装置包括评价逻辑和退出逻辑。评价逻辑响应于访客使用映射到设备的存储器地址访问设备的尝试并且基于访问类型来确定访问是否被允许。如果评价逻辑确定所述访问不被允许,则退出逻辑将控制权转交给主机。

Description

用于访客访问存储器映射的设备的方法和装置
技术领域
本发明属于信息处理领域,尤其涉及虚拟化信息处理***中资源的领域。
背景技术
一般地,信息处理***中的资源的虚拟化理论允许一个或更多操作***(每一个是一个“OS”)的多个实例运行在单个信息处理***上,即使每个OS被设计为对于该***及其资源拥有完全、直接的控制权也是如此。典型地,虚拟化是通过使用软件(例如虚拟机监视器,即“VMM”)向每个OS提供一个“虚拟机”(“VM”)来实现,所述“虚拟机”拥有OS可以完全、直接控制的虚拟资源,同时该VMM维持用于实现虚拟化策略(例如在VM之间共享和/或分配物理资源)的***环境(“虚拟化环境”)。在VM上运行的每个OS和其它的任何软件被称为“访客”或“访客软件(guest software)”,而“主机”或“主机软件”是运行在该虚拟化环境的外部的软件,例如“VMM”,它可能知道也可能不知道该虚拟化环境。
信息处理***中的处理器可以支持虚拟化,例如通过支持进入虚拟化环境以在VM上运行一个访客的指令。在该虚拟化环境中,某些事件、操作和情况(例如外部中断或访问特权寄存器或资源的尝试)可以被“拦截”,即,使处理器退出虚拟化环境以便VMM可以运行例如来实现虚拟化策略。处理器还可以支持用于维持虚拟化环境的其它指令,并可以包括指示或控制处理器的虚拟化能力的寄存器位。
该***的特权资源可以包括输入/输出(“I/O”)设备,所述I/O设备可以通过I/O事务和/或通过其中I/O设备已被映射到存储器地址(存储器映射的设备)的存储器事务进行访问。I/O事务可以被拦截以防止访客直接访问I/O设备。在基于页面(page-based)的存储器管理体系结构中,对存储器映射的I/O设备的存储器事务可以被拦截,这种拦截通过将I/O设备已经被映射到的页面标记为不存在或不可写来实现,由此导致访客试图访问存储器映射的设备时发生页面故障拦截。
发明内容
本发明提供了一种装置,包括:
评价逻辑,用来响应于访客使用映射到设备的存储器地址访问该设备的尝试并且基于访问类型来确定访问是否被允许;以及
退出逻辑,用来如果评价逻辑确定所述访问不被允许则将该装置的控制权从访客转交给主机。
优选地,所述访问类型包括读访问、写访问、执行访问、读-修改-写访问、隐式访问和显式访问中的至少一种,并且如果所述访问是预定类型的访问,则评价逻辑确定访问被允许。
优选地,所述预定类型是读访问类型。
优选地,所述装置还包括阴影逻辑,用以使来自所述尝试的数据写入到阴影位置。
优选地,所述阴影逻辑在将该装置的控制权从访客转交给主机之前使来自所述尝试的数据写入到阴影位置。
优选地,所述访问类型包括投影的访问、部分投影的访问和未投影的访问中的至少一种,并且如果所述访问是投影的访问类型的访问,则评价逻辑确定访问被允许。
优选地,所述装置还包括配置逻辑,其基于配置指示符使退出逻辑将该装置的控制权从访客转交给主机,而不管评价逻辑的确定结果如何。
优选地,所述设备包括中断控制器,并且投影的访问类型包括只访问指示任务优先级的位置,部分投影的访问类型包括访问指示任务优先级的位置和除了指示任务优先级的位置之外的位置。
优选地,所述设备包括中断控制器,所述预定类型是写访问类型,所述访问是访问指示任务优先级的位置,且所述访问被允许访问阴影位置,并且退出逻辑还在所述访问被允许之后将该装置的控制权从访客转交给主机。
本发明提供了一种方法,包括:
使用映射到设备的存储器地址来检测访问该设备的尝试;
基于访问的类型确定是否允许该访问;以及
如果该访问不被允许,则将控制权从访客转交给主机。
优选地,所述访问类型包括读访问、写访问、执行访问、读-修改-写访问、隐式访问和显式访问中的至少一种。
优选地,如权利要求11所述的方法,其中确定所述访问是否被允许包括确定所述访问是否是预定类型的访问。
优选地,如果所述访问是读类型的访问,则所述访问被允许。
优选地,所述方法还包括使来自所述尝试的数据写入到阴影位置。
优选地,所述访问类型包括投影的访问、部分投影的访问和未投影的访问中的至少一种。
优选地,所述方法确定所述访问是否被允许包括确定如果所述访问是投影的访问类型则确定所述访问被允许。
本发明提供了一种***,包括:
存储器,和
处理器,该处理器包括:
评价逻辑,其响应于访客使用映射到设备的存储器地址对该设备访问的尝试并且基于访问类型来确定是否允许访问;以及
退出逻辑,如果评价逻辑确定不允许所述访问,则退出逻辑将处理器的控制权从访客转交给主机。
优选地,所述处理器还包括阴影逻辑,用以使来自所述尝试的数据被写入到存储器中的阴影位置。
优选地,所述存储器用于为访客存储访客的虚拟机的控制结构。
优选地,所述控制结构包括指示符,用来指示退出逻辑将处理器的控制权从访客转交给主机,而不管评价逻辑的确定结果如何。
附图说明
本发明以实例的方式进行图示说明,并且不限于附图所示。
图1图示说明本发明的一个实施例可以在其中工作的虚拟化环境。
图2图示说明本发明的一个实施例用于VMM初始化对访客访问存储器映射的设备的支持的方法。
图3图示说明本发明的一个实施例用于访客访问存储器映射的设备的方法。
具体实施方式
下面说明用于访客访问存储器映射的设备的装置、方法和***的实施例。
在本说明书中,为了提供对本发明的更彻底的理解,会阐述许多具体细节,例如部件和***配置。然而本领域技术人员应当明白的是,没有这些具体细节也可以实现本发明。此外,一些公知的结构、电路等未被详细显示,以避免使本发明不必要地模糊。
如果被拦截事件的频率被最小化,则可以提高虚拟化环境的性能。本发明的实施例可以用来支持存储器映射的设备的虚拟化,且对于在虚拟化环境中提供改进的性能是希望和想要的。在一个实施例中,它们可以被用来支持奔腾
Figure G200610064096301D00041
处理器家族的处理器中的高级可编程中断控制器(“APIC”)的任务优先级寄存器(“TPR”)的虚拟化。在这个实施例中,通过消除VMM拦截一些访客访问TPR的需要,提升了在VMM拦截所有访客访问TPR的虚拟化环境上的性能。
图1图示说明本发明的一个实施例可以在其中工作的虚拟化体系结构100。在图1中,裸平台硬件110可以是任何能够执行OS或VMM软件的数据处理设备。例如,裸平台硬件可以是个人电脑、大型计算机(Mainframe Computer)、便携式电脑、手持式设备、机顶盒、服务器或其它计算***的硬件。裸平台硬件110包括处理器120、存储器130、输入/输出(I/O)设备111和芯片组112。
处理器120可以是任何类型的处理器,包括通用微处理器,例如Intel公司的奔腾处理器家族、安腾处理器家族或其它处理器家族的处理器,或其它公司的处理器,或数字信号处理器或微控制器。尽管图1只显示了一个这样的处理器120,但裸平台硬件110可以包括任意数目的处理器,包括任意数目的多核处理器,每个多核处理器都带有任意数目的执行核心(Execution Core),和任意数目的多线程处理器,每个多线程处理器都有任意数目的线程。
存储器130可以是静态或动态随机访问存储器、基于半导体的只读或闪速存储器、磁或光盘存储器、处理器120可读的任何其他类型的介质、或这些种类介质的组合。存储器130可以依据任何寻址技术加以寻址,并且裸平台硬件110中的示出或未示出的任何设备都可以被映射到存储器130的地址范围内的地址。
I/O设备115可以代表任意数目的外设或I/O设备,例如监视器、键盘、鼠标、打印机、网络接口、信息存储设备等。芯片组11可以包括用来执行任意数目任务(例如,***逻辑、总线控制、总线接口连接、总线桥接、存储器控制、外设控制、外设功能、和***配置等)的任意数目的组件。在一些实施例中,I/O设备115可以通过一个或更多的I/O端口被访问(如果处理器和平台体系结构支持这样的访问机制)。在一些实施例中,I/O设备115可以通过一个或更多的地址范围使用常规存储器访问指令被访问,即通过存储器映射的接口被访问。存储器映射的I/O设备具有至少一个这样的地址范围,通过该地址范围该存储器映射的I/O设备可以被访问。
处理器120、存储器130、I/O设备115、和芯片组111可以依据任何公知的方法(例如直接或间接通过一条或更多条总线、点对点、或其它有线或无线连接)相互耦合或相互通信。裸平台硬件110还可以包括任何数目的附加设备或连接。
除裸平台硬件100之外,图1还图示了VMM 140、VM 150和160,以及访客OS和应用152、154、155、162、164和165。
VMM 140可以是安装在裸平台硬件110上的、或可由裸平台硬件访问的任何软件、固件或硬件主机,以便为访客提供VM-即裸平台硬件110的抽象,或另外产生VM、管理VM、和在虚拟化环境100中实现虚拟化策略。在另外的实施例中,主机可以是任何VMM、管理程序、OS、或能够控制裸平台硬件110的其它软件、固件或硬件。访客可以是任何OS、任何VMM(包括VMM 140的另一实例)、任何管理程序、或任何应用或其它软件。
每个访客期望依据处理器的体系结构和VM中给出的平台来访问裸平台硬件110的物理资源(例如处理器和平台寄存器)、存储器和输入/输出设备。图1显示了两个VM,即150和160,访客OS 152和访客应用154和155安装在VM150上、访客OS 162和访客应用164和165安装在VM 160上。尽管图1只显示了两个VM和每个VM的两个应用,但是在本发明的范围内可以建立任何数目的VM、在每个VM上可以运行任何数目的应用。
访客可访问的资源可以分类为“特权”或“非特权”资源。对于特权资源,VMM 140使访客希望的功能性更容易,同时保留对资源的最终控制。非特权资源不需要由VMM 140控制并且可以由访客直接访问。
此外,每个访客OS期望处理不同的事件,例如异常(例如,页面错误和一般的保护错误)、中断(例如硬件中断和软件中断),和平台事件(例如,初始化和***管理中断)。本文中,这些异常、中断、和平台事件被共同称为或各自称为“事件”。这些事件中的一些是“特权的”,因为它们必须由VMM 140处理以确保VM 150和160正确的操作、确保保护VMM 140不受访客干扰、并确保保护访客彼此不受干扰。
在任何指定时间,处理器120可以执行来自VMM 140或任何访客的指令,这样VMM 140或访客可以在处理器120上运行或处于处理器120的控制下。当特权事件发生或访客试图访问特权资源时,控制权可以从访客转交到VMM140。此处从访客到VMM 140的控制权的转交被称作“VM退出”。在事件被处理或适当地使资源的访问变容易之后,VMM 140可以将控制权返还给访客。此处从VMM 140到访客的控制权的转交被称作“VM进入”。
在图1的实施例中,处理器120依据存储在虚拟机控制结构(VMCS)132中的数据来控制VM 150和160的操作。VMCS 132是这样的一种结构:其可以包含一个或者多个访客的状态、VMM 140的状态、指示VMM 140如何控制访客操作的执行控制信息、关于VM退出和VM进入的信息,以及任何其它这样的信息。处理器120从VMCS 132中读取信息以确定VM的执行环境并约束其行为。在这个实施例中,VMCS 132被存储在存储器130中。在一些实施例中,多个VMCS被用来支持多VM。尽管图1显示VMCS 132存储在存储器130中,但是本发明并不要求将VMCS存储在存储器中。
处理器120可以包括存储器映射的设备122,该存储器映射的设备122具有寄存器或其他控制、配置、状态或信息存储结构或位置123和124。例如,存储器映射的设备122可以是APIC,存储位置123可以是TPR,而存储位置124可以是任何其它APIC寄存器或寄存器的一部分。芯片组111还可以包括具有存储位置113和114的存储器映射的设备112,I/O设备115也可以是具有存储位置116和117的存储器映射的设备。处理器120和/或芯片组111可以包括任何附加的存储器映射的设备,任何其它的I/O设备可以是存储器映射设备,和/或图1未示出的任何其它的处理器、芯片组、或组件依据本发明的实施例可以是访客可访问的存储器映射设备。如上所述,存储位置123、124、116和117可以通过I/O指令和/或存储器通路进行访问。因此,当提到访问存储位置时,应当将下面的描述的含义解释为对存储器范围或与存储位置相对应的I/O端口的访问。这样的存储器可以由I/O设备中的存储器支持,或者可以对I/O设备所提供的功能提供接口。
处理器120还包括到存储器130的接口121,该接口可以是总线单元或其它单元、端口或接口,以允许处理器120与存储器130直接通过任何类型的总线、点对点或其它连接或通过其它组件(例如芯片组111)进行通信。
此外,处理器120包括控制逻辑125以支持虚拟化,所述虚拟化包括访问诸如设备122、112和115的存储器映射设备的虚拟化。控制逻辑125可以是处理器120内的微代码、可编程逻辑、硬编码逻辑、或任何其它形式的的控制逻辑。在另外的实施例中,在处理器中或在处理器可访问的任何组件或可读的任何介质(例如存储器130)中,控制逻辑125可以以任何硬件、软件或固件形式实现,例如处理器抽象层。
控制逻辑125使处理器120执行本发明的方法实施例,诸如下面图2和图3中所示的方法实施例,例如通过使处理器120响应于来自主机或访客的虚拟化指令或其它指令而包含一个或更多的微操作的执行(例如用以支持虚拟化)。
控制逻辑125包括阴影(shadow)逻辑126、评价逻辑127和退出逻辑128。阴影逻辑126如下所述用来支持存储器映射的设备的投影(shadowing)。评价逻辑127用来确定是否允许访客试图访问存储器区域(例如存储器映射设备的存储)。如果上述的试图不被允许,则退出逻辑128用来准备VM退出并引起VM退出。这些逻辑单元的每一个还可以执行附加的功能,包括如由别的逻辑单元执行的所述那些功能,以及任何或所有这些逻辑单元可以集成到单个逻辑单元中。
VMCS 132可以包括字段、控制位或其它数据结构以支持存储器映射设备(例如设备122、112和115)的虚拟化。这些数据结构可以由控制逻辑125检查或引用以确定如何管理VM环境。例如,可以设置拦截控制位134以引起访客访问存储器映射的设备中的存储位置的投影(shadowed)或虚拟拷贝的某些试图,导致VM退出,如下面所描述的。在本实施例的描述中,设置这些控制位以得到或引起希望的效果,其中设置意思是写逻辑1到该位,但可以在本发明的范围内使用任何逻辑惯例或命名法。
还有,在VMCS 132中,阴影地址字段135可以被用来存储存储器位置的地址,在该存储器位置处可以存储存储器映射的设备中的存储位置的阴影或虚拟拷贝。例如,在存储位置123是TPR的情况下,阴影地址字段135可以是64位的字段,用以确定4千字节的虚拟APIC页在存储器中的位置,以使任务优先级的虚拟拷贝可以被存储在TPR字段的位7:4中,位于虚拟APIC页的偏移80H处。在一个替代的实施例中,VMCS 132可以包括用以直接存储希望存储在存储位置123的值的阴影拷贝(shadow copy)的字段,而不是指向该值的存储器位置的指针。例如,VMCS 132可以包括4位的字段以直接存储想要存储于TPR中的值的虚拟拷贝。
图2和图3图示本发明的方法实施例。尽管方法实施例并不局限于该方面,但是仍然参考图1中的虚拟化环境100来描述图2和图3所示的方法实施例。本说明书使用“访问存储器映射的设备”、“访问存储”等术语,其中这种术语意思是这些访问通过正常的存储器访问指令而发生。
图2图示本发明的一个实施例用于VMM初始化对访客访问存储器映射设备的支持的方法。
在图2的框210中,图1中的VMM 140建立用于VM的VMCS(例如VMCS 132)。在框212到216中,VMM 140配置VMCS 132以实现存储器映射的设备(例如存储器映射的设备122)的虚拟化。
在框214中,用于存储存储位置123的阴影拷贝的存储器位置的地址被写到地址字段135。如上所述,该地址可以是基地址,可以在该基地址上加上偏移量来确定将要被用作阴影位置的存储器位置的地址,或者该地址可以是阴影位置的地址。可替代地,可以在VMCS中直接存储投影的值,而不是指向该投影值的指针。在一个实施例中,VMM 140可以分配存储器以存储该阴影值。
在框216中,设置拦截控制位134以导致访客访问存储器映射的设备122中的存储位置123的投影的或虚拟的拷贝的某些试图,从而导致VM退出,如参考图3所述的。注意,在参考图3将要进一步描述的这个实施例中,存储器映射的设备122还可以包括没有被投影的存储位置124。
图3图示本发明的一个实施例用于访客访问存储器映射的设备的方法。
在图3的框310中,执行VM进入并且把控制权转交给访客。在框320中,访客开始或继续在VM上运行。在框330中,访客试图对被分配给存储器映射的设备122的存储器地址范围内的地址进行存储器访问。该存储器访问可以是读、写、执行尝试、或读-修改-写尝试。该存储器访问可以包括特定的限定符,例如总线锁定指示。该存储器访问可以是显式的(例如数据存取、堆栈读、指令取出)或可以是隐式的(例如在TLB未命中之后的页表数据的取出、页表数据的访问位或脏位(dirty bit)的写入、或片段描述符的读取)。评价逻辑127可以使用地址比较器或通过本领域公知的任何其它方法来检测被尝试的访问。在一个实施例中,可以通过物理地址的分析来进行存储器访问的检测。在另一个实施例中,使用线性或虚拟地址。
如果访客有权访问存储器映射的设备中可用的所有存储器地址的阴影的或虚拟拷贝(例如如果存储器映射设备只包括存储位置123和124并且两者都被投影),则可以认为该存储器映射设备是完全被投影的。如果访客有权访问存储器映射设备中可用的存储器地址中的至少一个存储器地址的阴影或虚拟拷贝
(例如如果存储位置123被投影但存储位置124未被投影),则可以认为该存储器映射设备被部分投影。在一些实施例中,可以检查一个以上的控制位,或者可以根据访客正试图访问的存储器映射的设备的哪一存储位置而检查不同的控制位。
如果在框340中没有启用对存储器映射设备122的拦截机制,那么在框390中,退出逻辑128引起VM退出发生,以允许VMM处理该访问。然而,如果在框340中启用对存储器映射设备122的拦截机制,那么方法300前进到框360。在框360中,评价逻辑127确定是否允许该访问。如果该访问不被允许,则在框390中,退出逻辑128引起VM退出发生,以允许VMM处理该访问。
然而,如果在框350中启用拦截控制位134,则方法300前进到框360。在框360中,评价逻辑127确定是否应允许该访问。如果该访问不被允许,则在框390中,退出逻辑128引起VM退出发生,以允许VMM处理该访问。
可以基于被尝试的访问的类型来确定是否应允许该访问。在一个实施例中,可以允许读访问,但可以不允许写访问。在一个实施例中,可以不允许执行尝试。在一个实施例中,可以不允许读-修改-写尝试。在一些实施例中,可以不允许隐式访问。基于访问类型的其它限制也是可能的。在另一个实施例中,是否允许访问可以取决于该访问是访问投影的位置,访问未投影的位置还是访问部分投影的位置。因此,访问类型可以是被投影的、未被投影的、或被部分投影的。例如,如果该访问是访问投影的位置(例如设备122中的位置123),则可以允许该访问,但是如果该访问是访问未投影的位置(例如设备122中的位置124)或访问部分投影的位置(例如包括投影的位置123和未投影的位置124这二者的位置),则可以不允许访问。在本发明范围内,其它访问类型也是可能的。
将存储器映射的设备122是APIC的一个实施例作为附加实施例来进行描述。所尝试的访问可以是试图访问TPR的指令(该访问实际上会是访问TPR的虚拟拷贝(“V-TPR”),因为TPR被投影着)。这样的指令可以引起一个或更多的对虚拟APIC(“V-APIC”)页面的访问。如果该指令包括从V-TPR的读操作并且没有对V-APIC的其它访问,则可以允许该读操作。如果所述指令包括对V-TPR的写并且没有对V-APIC页面的其它访问,则可以允许该写操作,并且阴影逻辑126确保在该写操作后清空V-TPR字段的位127:8(即阴影逻辑将执行下面所述的特殊处理)。在使用V-APIC的实施例中前两个指令可以被认为是投影的访问(其中访问的类型可以是投影的、未投影的或部分投影的),因为TPR被投影。在一个实施例中,阴影逻辑126可以对投影的存储器的部分或对其它存储位置或机器寄存器(machine register)执行适当的更新。例如,在一个实施例中,可以忽略对投影的存储位置的部分的写操作。在另一个实施例中,对是只读的投影的存储位置的读操作可以总是返回相应的保留值,例如零,而不管存储在阴影存储器中的值是多少。
使用V-APIC的实施例中的另一个指令可以被认为是部分投影的。如果一条指令包括对V-TPR的访问和对V-APIC中的另一个位置(其未被投影)的访问,则执行VM退出。
如果,在框360中,评价逻辑127确定应允许该访问,则在框370中,评价逻辑127确定是否需要特殊处理。特殊处理可以包括对可由控制逻辑125执行的所尝试的访问的任何处理。对于包括对V-TPR的写操作的指令,上面给出了一个示例。也是在使用V-APIC的实施例中的另一个示例是指令是否包括一个以上的对V-TPR的访问的情况。在这种情况下,该特殊处理可以允许该指令执行,但是接着引起VM退出发生。
如果,在框370中,评价逻辑127确定不需要任何特殊处理,则在框352中,阴影逻辑126引起使用存储器映射的设备122的虚拟版本执行访客访问,并且方法300返回到框320以使访客继续运行。然而,如果在框370中,评价逻辑127确定需要特殊处理,则在框372中,控制逻辑125执行该特殊处理。该特殊处理可以包括整体或部分地使用存储器映射的设备122的虚拟版本执行访客访问,如下面所讨论的。
在框380中,控制逻辑125确定特殊处理是否包括VM退出。如果包括,则在框390中,退出逻辑128引起VM退出发生。如果不包括,则方法300返回到框320以使访客继续运行。
在一个实施例中,可以提供特殊处理以支持APIC中的TPR的虚拟化。在这个实施例中,对TPR的写操作可以总是被允许以对阴影进行写操作。如果所写的值小于VMM规定的阈值(例如存储在VMCS的字段中的),则VM退出发生。如上所述,被部分投影的访问(例如修改除了V-APIC的TPR字段之外的地址的写操作)引起VM退出。在另一个实施例中,允许完成对存储器映射的设备122的虚拟版本的写操作,并且在指令完成时,VM退出发生。
在本发明的范围内,图2和图3所示的方法可以以不同的顺序执行,可以省略图示的框,也可以添加附加的框,或者可以是重新排序的、省略的、或附加的框的组合。例如,VMCS可以包括可与阴影控制和/或拦截控制位结合使用以确定是否允许读和/或写访问的载入控制和存储控制位。
处理器120,或依据本发明的实施例设计的任何其它组件或组件的一部分,可以设计在从形成到模拟到制造的不同阶段中。表示设计的数据可以代表多种方式的设计。首先,当在模拟中有用时,硬件可以使用硬件描述语言或另外的功能性描述语言表示。附加地或可替代地,可以在设计过程的一些阶段产生带有逻辑和/或晶体管门的电路级模型。另外,在某个阶段,大部分设计达到了它们可以用表示不同设备的物理布局的数据建模的水平。在使用传统半导体制造技术的情况下,代表设备布局模型的数据可以是规定在掩模的不同的掩模层上各种特征存在或不存在的数据,所述掩模用来产生集成电路。
在所述设计的任何表示中,所述数据可以被存储在任何形式的机器可读介质中。所调制的或另外所产生的光波或电波传送这样的信息,存储器、或磁或光存储器介质,例如光盘,可以是机器可读的介质。这些介质的任何一种都可以“承载”或“表明”所述设计、或用在本发明的实施例中的其它信息,例如在错误恢复程序中的指令。当表明或承载所述信息的电力载波被传送达到这种程度以致执行电子信号的复制、缓冲、或重传送的程度时,制作新的拷贝。因此,通信提供商或网络提供商的行为可以形成物品副本的制作,例如体现本发明的技术的载波。
这样,已经公开了用于访客访问存储器映射设备的装置和方法。虽然某些实施例已被描述且在附图中显示,但应当理解的是,这样的实施例只是示例性的,并且不限制本发明的范围,并且本发明并不限于所示或所述的特定结构和配置,因为本领域技术人员可以在研究本发明的公开内容时进行各种变更。在诸如这样的技术领域(其中快速和更进一步的提升并不容易预测)中,在不脱离本发明公开内容的原则或所附的权利要求的范围的情况下,所公开的实施例可以通过改进的技术进行有利的配置和细节上的修改。

Claims (11)

1.一种用于访客访问存储器映射的设备的装置,包括:
评价逻辑模块,用来响应于访客使用映射到设备的存储器地址访问该设备的尝试并且基于访问类型来确定访问是否被允许;
退出逻辑模块,用来如果评价逻辑模块确定所述访问不被允许则将该装置的控制权从访客转交给主机;以及
配置逻辑模块,其基于配置指示符使退出逻辑模块将该装置的控制权从访客转交给主机,而不管评价逻辑模块的确定结果如何。
2.如权利要求1所述的装置,其中访问类型包括读访问、写访问、执行访问、读-修改-写访问、隐式访问和显式访问中的至少一种,并且如果所述访问是预定类型的访问,则评价逻辑模块确定访问被允许。
3.如权利要求2所述的装置,其中所述预定类型是读访问类型。
4.如权利要求2所述的装置,还包括阴影逻辑模块,用以使来自所述尝试的数据写入到阴影位置。
5.如权利要求4所述的装置,其中所述阴影逻辑模块在将该装置的控制权从访客转交给主机之前使来自所述尝试的数据写入到阴影位置。
6.如权利要求1所述的装置,其中访问类型包括投影的访问、部分投影的访问和未投影的访问中的至少一种,并且如果所述访问是投影的访问类型的访问,则评价逻辑模块确定访问被允许。
7.如权利要求6所述的装置,其中所述设备包括中断控制器,并且投影的访问类型包括只访问指示任务优先级的位置,部分投影的访问类型包括访问指示任务优先级的位置和除了指示任务优先级的位置之外的位置。
8.如权利要求2所述的装置,其中所述设备包括中断控制器,所述预定类型是写访问类型,所述访问是访问指示任务优先级的位置,且所述访问被允许访问阴影位置,并且退出逻辑模块还在所述访问被允许之后将该装置的控制权从访客转交给主机。
9.一种用于访客访问存储器映射的中断控制器的方法,包括:
由访客使用映射到中断控制器的存储器地址来检测访问中断控制器的任务优先级的位置的尝试;
基于访问的类型确定访问是写访问;
允许对阴影位置的访问;以及
如果该访问未被允许,则将控制权从访客转交给主机,而不管确定结果如何。
10.一种用于访客访问存储器映射的设备的***,包括:
处理器,该处理器包括:
评价逻辑模块,其响应于访客使用映射到设备的存储器地址对该设备访问的尝试并且基于访问类型来确定是否允许访问;以及
退出逻辑模块,如果评价逻辑模块确定不允许所述访问,则退出逻辑模块将处理器的控制权从访客转交给主机;以及
存储器,用于为访客存储虚拟机的控制结构,所述控制结构包括指示符,用来指示退出逻辑模块将处理器的控制权从访客转交给主机,而不管评价逻辑模块的确定结果如何。
11.如权利要求10所述的***,其中所述处理器还包括阴影逻辑模块,用以使来自所述尝试的数据被写入到存储器中的阴影位置。
CN2006100640963A 2005-12-30 2006-12-30 用于访客访问存储器映射的设备的方法和装置 Expired - Fee Related CN1991808B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/322,757 US7506121B2 (en) 2005-12-30 2005-12-30 Method and apparatus for a guest to access a memory mapped device
US11/322757 2005-12-30

Publications (2)

Publication Number Publication Date
CN1991808A CN1991808A (zh) 2007-07-04
CN1991808B true CN1991808B (zh) 2011-05-25

Family

ID=38214071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100640963A Expired - Fee Related CN1991808B (zh) 2005-12-30 2006-12-30 用于访客访问存储器映射的设备的方法和装置

Country Status (4)

Country Link
US (1) US7506121B2 (zh)
JP (1) JP4668166B2 (zh)
CN (1) CN1991808B (zh)
DE (1) DE102006061939B4 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510827B1 (en) 2006-05-18 2013-08-13 Vmware, Inc. Taint tracking mechanism for computer security
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US9354927B2 (en) * 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US8099574B2 (en) * 2006-12-27 2012-01-17 Intel Corporation Providing protected access to critical memory regions
US8386664B2 (en) * 2008-05-22 2013-02-26 International Business Machines Corporation Reducing runtime coherency checking with global data flow analysis
US8281295B2 (en) * 2008-05-23 2012-10-02 International Business Machines Corporation Computer analysis and runtime coherency checking
US8285670B2 (en) * 2008-07-22 2012-10-09 International Business Machines Corporation Dynamically maintaining coherency within live ranges of direct buffers
US8117346B2 (en) 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US20110225464A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation Resilient connectivity health management framework
US20120047313A1 (en) * 2010-08-19 2012-02-23 Microsoft Corporation Hierarchical memory management in virtualized systems for non-volatile memory models
WO2012148841A1 (en) * 2011-04-29 2012-11-01 Google Inc. Method and apparatus for detecting memory access faults
US9113164B1 (en) 2012-05-15 2015-08-18 Google Inc. Constant bit rate control using implicit quantization values
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US9253483B2 (en) 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US9053065B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for restoring virtual machine state from a checkpoint file
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US11042495B2 (en) * 2019-09-20 2021-06-22 Advanced Micro Devices, Inc. Providing interrupts from an input-output memory management unit to guest operating systems
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828900A (en) * 1996-01-03 1998-10-27 Intel Corporation International multiple-byte character generator support in application sharing which distinguishes guest keyboard input from host key board and bypassing execution of the generator module when guest keyboard input is determined
CN1561485A (zh) * 2000-12-27 2005-01-05 英特尔公司 用于限制在由虚拟机监控器支持的虚拟机上运行的客户软件操作的新处理器模式

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828900A (en) * 1996-01-03 1998-10-27 Intel Corporation International multiple-byte character generator support in application sharing which distinguishes guest keyboard input from host key board and bypassing execution of the generator module when guest keyboard input is determined
CN1561485A (zh) * 2000-12-27 2005-01-05 英特尔公司 用于限制在由虚拟机监控器支持的虚拟机上运行的客户软件操作的新处理器模式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CN 1561485 A,全文.

Also Published As

Publication number Publication date
CN1991808A (zh) 2007-07-04
US20070156986A1 (en) 2007-07-05
DE102006061939B4 (de) 2022-07-14
JP2007183952A (ja) 2007-07-19
JP4668166B2 (ja) 2011-04-13
US7506121B2 (en) 2009-03-17
DE102006061939A1 (de) 2007-09-13

Similar Documents

Publication Publication Date Title
CN1991808B (zh) 用于访客访问存储器映射的设备的方法和装置
EP1939754B1 (en) Providing protected access to critical memory regions
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
JP5571208B2 (ja) パフォーマンスカウンタの仮想化
RU2550558C2 (ru) Сравнение и замена позиции таблицы динамической трансляции адреса
CN101339518B (zh) 在分层虚拟化体系结构中***虚拟化事件的装置和方法
CN100468324C (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
JP5611622B2 (ja) バーチャルマシーンシステムの物理的メモリのバーチャル化
CN100468351C (zh) 对在虚拟机体系结构中客户软件操作期间出现的故障的控制
CN101952807B (zh) 管理计算环境的多个可分页客户端对存储装置的使用
CN101187902B (zh) 在虚拟机环境中的客户机之间共享信息
EP2283429B1 (en) Hypervisor-enforced isolation of entities within a single logical partition's virtual address space
CN104685479A (zh) 客户虚拟机内的虚拟输入/输出存储器管理单元
US8370559B2 (en) Executing a protected device model in a virtual machine
US20070156968A1 (en) Performing direct cache access transactions based on a memory access data structure
CN103562874B (zh) 解除配置存储级内存命令
CN104021063A (zh) 一种基于硬件虚拟化的模块化计算机取证***及其方法
CN101211271A (zh) 根据活动性状态控制虚拟机
CN102906707A (zh) 管理与硬件事件关联的处理
US7975267B2 (en) Virtual interrupt processing in a layered virtualization architecture
US20070220231A1 (en) Virtual address translation by a processor for a peripheral device
US20240220417A1 (en) Segmented non-contiguous reverse map table

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110525

CF01 Termination of patent right due to non-payment of annual fee