CN101107593A - 支持虚拟机环境中的地址转换的方法及装置 - Google Patents
支持虚拟机环境中的地址转换的方法及装置 Download PDFInfo
- Publication number
- CN101107593A CN101107593A CNA2006800031107A CN200680003110A CN101107593A CN 101107593 A CN101107593 A CN 101107593A CN A2006800031107 A CNA2006800031107 A CN A2006800031107A CN 200680003110 A CN200680003110 A CN 200680003110A CN 101107593 A CN101107593 A CN 101107593A
- Authority
- CN
- China
- Prior art keywords
- data structure
- translation data
- shadow
- subclauses
- clauses
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Abstract
在一个实施例中,一种方法包括接收由于有关转换后备缓冲器(TLB)的特许事件而从虚拟机(VM)转移的控制,以及确定客人转换数据结构中的哪些条目已被VM修改。根据从虚拟机监控器(VMM)维护的影子转换数据结构中提取的元数据以及与影子转换数据结构中的条目关联的属性进行确定。该方法还包括使对应于客人转换数据结构中的已修改条目的影子转换数据结构中的条目与客人转换数据结构中的已修改条目同步。
Description
技术领域
[0001]一般来说,本发明的实施例涉及虚拟机,更具体来说,涉及支持虚拟机环境中的地址转换。
背景技术
[0002]传统的虚拟机监控器(VMM)通常在计算机上运行,并为其它软件提供一个或多个虚拟机的抽象。各虚拟机可用作独立平台,运行它自己的“客人操作系统”(即,VMM接管的操作系统(OS))和其它软件,它们统称为客人软件。客人软件预期像它在专用计算机而不是虚拟机上运行一样工作。也就是说,客人软件预期将控制各种事件,并且有权访问诸如物理存储器和存储器映射输入/输出(I/O)装置之类的硬件资源。例如,客人软件预期将保持对地址转换操作的控制,并且具有分配物理存储器、提供对客人应用以及客人应用之间的保护、使用各种分页技术等的能力。但是,在虚拟机环境中,VMM应当能够具有对计算机资源的最终控制,以便提供对虚拟机以及虚拟机之间的保护。
附图说明
[0003]在附图的各图中,以举例而不是限定的方式说明本发明,附图中相似的参考标号表示类似的元件,附图中:
[0004]图1说明本发明可在其中工作的虚拟机环境的一个实施例;
[0005]图2说明根据本发明的一个实施例的虚拟TLB的操作;
[0006]图3A和图3B说明根据本发明的两个备选实施例、创建和维护影子PT分级结构的元数据的过程;
[0007]图4是用于同步客人转换数据结构和影子转换数据结构的过程的一个实施例的流程图;
[0008]图5是用于维护影子转换数据结构的元数据的过程的一个实施例的流程图;
[0009]图6是用于帮助改变地址空间的过程的一个实施例的流程图;
[0010]图7是用于同步指定地址的两个转换数据结构的条目的过程的一个实施例的流程图;
[0011]图8是用于从VMM维护的影子PT分级结构的工作集中删除影子PT分级结构的过程的一个实施例的流程图;
[0012]图9是用于向影子PT分级结构的PD添加条目的过程的一个实施例的流程图;
[0013]图10是用于从影子PT分级结构的PD中删除条目的过程的一个实施例的流程图;
[0014]图11是用于向影子PT分级结构的PT添加条目的过程的一个实施例的流程图;
[0015]图12是用于从影子PT分级结构的PT中删除条目的过程的一个实施例的流程图;
[0016]图13是用于监控影子PT分级结构的PTE的过程的一个实施例的流程图;以及
[0017]图14是用于从影子PT分级结构的PTE中删除监控的过程的一个实施例的流程图。
具体实施方式
[0018]描述用于支持虚拟机环境中的地址转换的方法及装置。为便于说明,在以下描述中陈述了大量具体细节,以便透彻地理解本发明。然而,本领域的技术人员十分清楚,即使没有这些具体细节,也可以实施本发明。
[0019]按照对计算机系统的寄存器或存储器中的数据位的操作的算法和符号表示来提供以下详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于向本领域的其他技术人员最有效地传达其工作实质的方式。算法在此以及一般被认为是产生预期结果的独立操作序列。操作是要求物理量的物理处理的那些操作。这些量通常但不一定采取能够被存储、传送、组合、比较以及以其它方式处理的电或磁信号的形式。主要为了一般使用的原因,将这些信号称作位、值、元素、符号、字符、项、数等,已经证明有时是方便的。
[0020]但应当记住,所有这些及类似的项均与适当的物理量关联,并且只是应用于这些量的便捷标签。除非明确说明,否则从以下论述中清楚地知道,在本发明中,采用诸如“处理”或“计算”或“运算”或者“确定”等术语的论述可能指的是计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置处理表示为计算机系统的寄存器和存储器中的物理(电子)量的数据并将其转换为同样表示为计算机系统存储器或寄存器或者其它这种信息存储、传送或显示装置中的物理量的其它数据。
[0021]在对实施例的以下详细描述中,参照附图,作为说明,附图中表示可实现本发明的具体实施例。附图中,相似的标号在若干视图中描述实质上相似的组件。足够详细地描述这些实施例,使本领域的技术人员能够实施本发明。可采用其它实施例,并且可进行结构、逻辑以及电气变更,而没有背离本发明的范围。此外,要理解,本发明的各种实施例虽然不同,但不一定相互排斥。例如,在一个实施例中描述的特定功能、结构或特性可包含在其它实施例中。因此,以下详细描述不是限制性的,本发明的范围仅由所附权利要求以及权利要求涵盖的全部等效范围来限定。
[0022]虽然以下实例可能描述了在执行单元和逻辑电路的上下文中提供对虚拟机环境中的地址转换的支持,但是本发明的其它实施例可通过软件来实现。例如,在一些实施例中,本发明可作为计算机程序产品或软件来提供,它可包括其中已存储指令的机器或计算机可读媒体,这些指令可用于对计算机(或其它电子装置)编程以执行根据本发明的过程。在其它实施例中,本发明的过程可能由包含用于执行过程的硬连线逻辑的特定硬件组件来执行,或者由编程计算机组件和定制硬件组件的任何组合来执行。
[0023]因此,机器可读媒体可包括用于存储或传送机器(例如计算机)可读形式的信息的任何机构,但不限于软盘、光盘、压缩盘-只读存储器(CD-ROM)以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁或光卡、闪速存储器、基于因特网的传输、电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)等等。
[0024]此外,设计可能经过从创建到模拟直到制造的各种阶段。表示设计的数据可用多种方式来表示设计。首先,如在模拟中有用的那样,硬件可采用硬件描述语言或者另一种功能描述语言来表示。另外,采用逻辑和/或晶体管门电路的电路级模型可在设计过程的某些阶段产生。此外,在某个阶段,大部分设计达到表示硬件模型中的各种装置的物理设置的数据级。在采用传统半导体制造技术的情况中,表示硬件模型的数据可能是指定用于生产集成电路的掩模的不同掩模层上的各种特征是否存在的数据。在设计的任何表示中,数据可存储在任何形式的机器可读媒体中。经调制或者以其它方式产生以传送这种信息的光或电波、存储器或者磁或光存储装置、如盘可能是机器可读媒体。这些媒体中的任一种可“携带”或“表明”设计或软件信息。在传送表明或携带代码或设计的电载波以便执行电信号的复制、缓冲或重传时,制作新的副本。因此,通信提供商或网络提供商可制作体现本发明的技术的产品(载波)的副本。
[0025]图1说明本发明可在其中工作的虚拟机环境100的一个实施例。在这个实施例中,裸平台硬件116包括计算平台,它可能能够例如运行标准操作系统(OS)或虚拟机监控器(VMM)、如MM 112。
[0026]通常以软件来实现的VMM 112可模拟裸机接口并将其导出到高层软件。这种高层软件可包括标准或实时OS,可能是具有有限操作系统功能性的高度拆开的操作环境,可能不包括传统OS工具,等等。或者,例如,VMM 112可在另一个VMM之中或之上运行。VMM例如可通过硬件、软件、固件或者通过各种技术的组合来实现。
[0027]平台硬件116可能是个人计算机(PC)、大型计算机、手持装置、便携计算机、机顶盒或其它任何计算系统的。平台硬件116包括处理器118和存储器120。
[0028]处理器118可以是能够运行软件的任何类型的处理器,诸如微处理器、数字信号处理器、微控制器等等。处理器118可包括用于完成本发明的方法实施例的执行的微码、可编程逻辑或硬编码逻辑。虽然图1仅示出一个这样的处理器118,但是系统中可能存在一个或多个处理器。
[0029]存储器120可能是硬盘、软盘、随机存取存储器(RAM)(例如动态RAM(DRAM)或静态RAM(SRAM))、只读存储器(ROM)、闪速存储器、以上装置的任何组合、或者处理器118可读的其它任何类型的机器媒体。存储器120可存储用于完成本发明的方法实施例的执行的指令和/或数据。
[0030]VMM 112为其它软件(即“客人”软件)提供一个或多个虚拟机(VM)的抽象,它可向各种客人提供相同或不同的抽象。图1示出两个VM 102和114。在各VM上运行的客人软件可包括诸如客人OS 104或106等的客人OS以及各种客人软件应用108和110。客人OS 104和106中的每个预期将访问客人OS 104或106正在其中运行的VM 102和1 14中的物理资源(例如处理器寄存器、存储器和I/O装置)以及执行其它功能。例如,根据VM 102和114中提供的处理器和平台的体系结构,客人OS 104或106预期将有权访问所有寄存器、高速缓存、结构、I/O装置、存储器等。可由客人软件访问的资源可分类为“特许”或者“非特许”。对于特许资源,VMM 112有助于客人软件所需的功能性,同时保持对这些特许资源的最终控制。非特许资源不需要由VMM 112控制,并且可由客人软件直接访问。
[0031]此外,每个客人OS预期将处理诸如异常(例如页面错误、一般保护错误等)、中断(例如硬件中断、软件中断)以及平台事件(例如初始化(INIT)和系统管理中断(SMI))之类的各种错误事件。这些错误事件中的一部分是“特许的”,因为它们必须由VMM 112来处理,以便确保VM 102和114的正确操作,以及用于对客人软件以及客人软件之间的保护。
[0032]当特许错误事件出现或者客人软件尝试访问特许资源时,控制可转移到VMM 112。控制从容人软件到VMM 112的转移在本文称作VM退出。在帮助资源访问或者适当地处理事件之后,VMM112可把控制返回给客人软件。控制从VMM 112到客人软件的转移称作VM进入。
[0033]在一个实施例中,处理器118根据虚拟机控制结构(VMCS)125中存储的数据来控制VM 102和114的操作。VMCS 125是一种可包含客人软件的状态、VMM 112的状态、表明VMM 112希望如何控制客人软件的操作的执行控制信息、控制VMM 112与VM之间的转移的信息等的结构。处理器118从VMCS 125中读取信息,以便确定VM的执行环境以及限制其行为。在一个实施例中,VMCS存储在存储器120中。在一些实施例中,多个VMCS结构用来支持多个VM。
[0034]在地址转换操作中,VM 102或114预期将分配物理存储器、提供对客人软件应用(例如应用108或110)以及客人软件应用之间的保护、使用各种分页技术等。在非虚拟机环境中,OS预期的地址转换机制可基于由处理器118控制的转换后备缓冲器(TLB)122以及由OS控制并用于在启用分页时把虚拟存储器地址转换为物理存储器地址的转换数据结构、如页面表(PT)分级结构。
[0035]IntelPentium4处理器的体系结构支持多种分页模式。最常用的分页模式采用两级分级分页结构(本文中称作两级分级结构分页模式)来支持32位线性地址空间。本发明的实施例不限于这种分页模式,而是可由本领域的技术人员用于虚拟化其它分页模式(例如物理地址扩展(PAE)模式、Intel64位扩充内存技术(EM64T)模式等)和实现(例如散列页面表)。在基于TLB的一个实施例中,虚拟存储器地址到物理存储器地址的转换以采用虚拟地址的上20位(对于4 KB页面帧)或者上10位(对于4 MB页面帧)来搜索TLB 122开始。如果找到匹配(TLB命中),则包含在TLB 122中的物理页面帧的上位与虚拟地址的下位结合以组成物理地址。TLB还包含与映射关联的访问和许可属性。如果没有找到匹配(TLB未命中),则处理器咨询PT分级结构,以便确定虚拟-物理转换,然后高速缓存在TLB 122中。PT分级结构中的条目可包括由处理器对某些访问自动设置的某些属性。
[0036]如果PT分级结构被修改,则在TLB 122中存在对应的地址转换时,TLB 122可能变得与PT分级结构不一致。OS可预期将能够通过向处理器118发出指令来解决这种不一致。例如,在IntelPentium4的指令集体系结构(ISA)(本文中称作IA-32 ISA)中,处理器允许软件通过发出INVLPG指令来使TLB中高速缓存的转换无效。另外,OS可预期将请求处理器118完全改变地址空间,这应当引起从TLB 122中删除所有转换。例如,在IA-32 ISA中,OS可采用MOV指令或任务切换来请求处理器加载CR3(它包含PT分级结构的基址),由此从TLB中删除所有转换。页面表分级结构的不同级根据模式和实现可具有不同名称。在两级分级结构分页模式中,存在两级分页结构。CR3寄存器指向页面目录页面的基址。页面目录中的条目可指定到大尺寸页面(例如4MB超页、2MB超页、1GB超页等)的映射或者对页面表的引用。页面表又可包含到小尺寸页面的映射。
[0037]如上所述,在虚拟机环境中,VMM 112应当能够具有对包括TLB 122的物理资源的最终控制。本发明的实施例通过采用模拟处理器的物理TLB的功能性的虚拟TLB,来解决VM 102和114的预期与VMM 112的作用之间的冲突。
[0038]虚拟TLB包括TLB 122和VMM 112控制的影子PT分级结构的集合。影子PT分级结构的集合从VM 102或114当前可能使用或者没有使用的客人PT分级结构中得出其格式和内容。如果VM102或114修改客人PT分级结构的内容,则这个内容变得与影子PT分级结构的内容不一致。采用类似于处理器118在管理TLB 122时所使用的那些技术的技术来解决客人PT分级结构与影子PT分级结构之间的不一致。这些技术中的一部分迫使VM 102或114发出表明尝试处理TLB的事件(例如INVLPG、页面错误和加载CR3)。这类事件是特许的,因而产生到VMM 112的VM退出。VMM则评估事件,并且根据需要使所有所维护的影子PT分级结构与当前客人状态同步。将把所维护影子PT分级结构的集合称作工作集。由于多个进程可能使用同一个客人页面表,因此能够让相同的影子PT作为多个客人PT分级结构的一部分。对应的影子PT又将作为多个影子PT分级结构的成员。
[0039]注意,VMM执行的同步可能更新当前未使用的影子PT分级结构的影子页面表或页面目录条目。同样,对于不是使用中的客人PT分级结构的一部分的客人页面可能需要同步。
[0040]在一个实施例中,VMM 112包括地址转换模块126,它负责在虚拟TLB(VTLB)数据存储器124中创建和维护VM 102和114中的每个的影子PT分级结构的工作集。为VM 102或114的对应活动进程(即可能在不久以后由VM 102或114激活的进程)维护影子PT分级结构的工作集。对于IA32 ISA,唯一明确定义的客人分级结构是由当前使用的分页结构所定义。实际上,对于客人进程及其地址空间存在大量时间局域性。VMM可采用试探或明确信息来确定活动进程的集合。
[0041]当VM 102或114为VM 102或114的活动进程之一启用客人PT分级结构时,地址转换模块126标识工作集中的对应影子PT分级结构,并请求处理器118加载其基址。适用时,地址转换模块126则可再使用存储于影子PT分级结构中的先前计算的映射。
[0042]如果VM 102或114激活新进程,则地址转换模块126从对应的客人PT分级结构中得出新的影子PT分级结构,并将它加入工作集。或者,如果VM 102或114去活现有进程,则地址转换模块126从工作集中删除与客人PT分级结构对应的信息。
[0043]在一个实施例中,地址转换模块126负责执行来自每个新影子PT分级结构的元数据、把元数据存储在VTLB数据存储器124中以及在影子PT分级结构被修改时更新元数据。在一个实施例中,元数据包括PT向量(PTV)、PD向量(PDV)、活动PTE列表以及活动PDE列表。
[0044]PTV和PDV跟踪用作PT和PD的客人帧。在一个实施例中,这个信息被编码在位向量中。PTV可通过页面帧号(PFN)来索引,其中各条目位在对应的PFN为PT时被设置。PDV可通过页面帧号(PFN)来索引,其中各条目位在对应的PFN为PD时被设置。
[0045]活动PTE列表是指向保存PT和PD的帧的影子PT分级结构中的PT条目(PTE)的列表。活动PDE列表标识指向包含活动PTE列表中所标识的PT条目的PT的影子PT分级结构中的PD条目(PDE)。
[0046]在一个实施例中,活动PDE和PTE列表包含描述映射是对PD还是对PT帧的附加元数据。
[0047]本领域的技术人员会理解,本发明的实施例可采用可比本文所述的那些更多或更少空间或时间效率的各种数据结构。本领域的技术人员还会知道支持附加分页模式的跟踪结构的扩展。例如,EM64T分页模式通过四级分级分页结构把64位虚拟地址映射到物理地址。虚拟或物理地址空间中支持的实际位数可能是实现相关的,并且可能在特定实现中少于64位。下面更详细地进行论述,EM64T实现可能需要添加页面映射4级(PML4)页面向量和页面目录指针(PDP)页面向量,以便跟踪EM64T分页结构中使用的附加页面表。同样,本领域的技术人员会知道,活动PTE列表将扩展为包括映射分页结构中使用的任何页面(例如用于EM64T的PML4或PDP页面)的条目。
[0048]在一个实施例中,保存活动PTE/PDE列表元数据,以便跟踪通过页面表映射的PD和PT帧的数量。当每页的映射数量从0递增时,映射PT的PDE必须被加入活动PDE列表,以及当映射的数量减少到零时,映射这个PT的PDE必须从活动PDE列表中删除。
[0049]在一个实施例中,在需要同步时,地址转换模块126负责把当前影子PT分级结构与当前客人PT分级结构同步。地址转换模块126通过确定客人PT分级结构中的哪些条目最近已被修改、然后相应地更新影子PT分级结构中的对应条目,来执行同步。地址转换模块126根据从影子PT分级结构中提取的元数据以及与影子PT分级结构的条目关联的属性来确定客人PT分级结构中的哪些条目最近已被修改。在一个实施例中,属性包括与影子PT分级结构中的PD条目关联的访问属性以及与影子PT分级结构中的PT条目关联的更新属性。
[0050]图2说明根据本发明的一个实施例的虚拟TLB 204的操作。虚拟TLB 204包括由影子PT分级结构206和物理TLB 208表示的影子转换数据结构。影子PT分级结构206从客人PT分级结构202所表示的客人转换数据结构中得出其结构和内容。在一个实施例中,VMM维护VM的活动进程的影子PT分级结构的工作集。
[0051]在一个实施例中,当VM请求处理器启用不同的客人PT分级结构(例如通过在IA-32 ISA中向CR3或任务切换发出MOV)时,控制转到VMM,VMM指示处理器加载与所请求客人PT分级结构202对应的影子PT分级结构206的基址214。在一些实施例中,采用相关元数据和属性使这个影子PT分级结构206与客人PT分级结构202同步,下面更详细地进行论述。
[0052]在一个实施例中,虚拟TLB在影子PD和PT的条目中保存访问和更新属性。这些属性又称作已访问(A)位和脏(D)位。在一个实施例中,当页面帧由客人软件首次访问时,处理器在影子PT分级结构206中的对应PT条目或PD条目中设置已访问(A)属性。如果客人软件尝试写入页面帧,则处理器在对应的影子PT条目中设置脏(D)属性。
[0053]允许客人软件自由修改客人PT分级结构202,包括改变虚拟-物理映射、许可等。相应地,影子PT分级结构206可能不会始终与客人PT分级结构202一致。从分级结构202与206之间的不一致产生问题时,把虚拟TLB 204看作物理TLB的客人OS尝试通过请求处理器执行相关ISA定义的操作来改变虚拟TLB 204。例如,在IA-32ISA中,这类操作包括INVLPG指令、CR3加载、分页激活(CR0.PG的修改)、全局分页的修改(CR4.PGE位的切换)等。尝试改变虚拟TLB204的操作由VMM配置为特许的(例如采用VMCS中存储的对应执行控制),因而产生到VMM的VM退出。VMM则确定VM退出的原因,并在必要时修改影子PT分级结构206的内容。例如,如果VM退出由于应当由客人OS处理的页面错误(例如客人PT分级结构202不允许的访问所导致的页面错误)而发生,则页面错误被送入客人OS进行处理。或者,如果VM退出由于从分级结构202与206的条目之间的不一致产生的页面错误(或者诸如INVLPG之类的其它任何操作)而发生,则VMM可能需要删除陈旧的条目、添加新条目或者修改现有条目,下面更详细地进行论述。客人PT分级结构所引起的页面错误在本文中称作‘实际’页面错误,而不会随直接使用客人页面表而发生的页面错误在本文中则称作‘感应’页面错误。
[0054]图3A说明根据本发明的一个实施例、以两级分级结构分页模式创建和维护影子PT分级结构的元数据的过程。
[0055]参照图3A,说明由不同字母(字母A至W)标识的多个物理页面帧。一些客人页面帧可包含PD(例如帧A)。另一些客人页面帧可包含PT(例如帧A、B、C和L)。分级结构302是客人PT分级结构。
[0056]图3A说明根据客人PT分级结构302创建的影子PT分级结构304。客人PT分级结构302中的各PD或PT包括影子PT分级结构304中对应的PD或PT。注意,对于客人PT中的各页面一般不需要影子页面。一些实施例可选择根据使用统计数据(例如仅生成已经使用的客人PT页面的影子页面)或者根据资源限制(例如根据可用存储器仅保存影子页面的集合)来限制影子页面。对于从相同物理帧中得出的PD和PT表维护分开的影子表。例如,对于从相同物理帧3 14中得出的PD 306和PT 308维护分开的表330和332。影子PT分级结构304中的PD和PT条目包含客人帧314至324的变换映射。
[0057]在客人PT分级结构302中,帧316和318用作PT 310和312,以及帧314同时用作PD 306以及PT 308。这种用法被说明为影子PT分级结构304下表示的页面帧314至316中的“PT”和“PD/PT”。
[0058]影子PT分级结构304与活动PTE列表342和活动PDE列表344关联。在一个实施例中,活动PTE列表342标识映射来自客人PT分级结构302的PT和PD页面帧的影子PT分级结构304中的PT条目。具体来说,活动PTE列表342标识映射页面帧314至318的PT 332中的条目。在一个实施例中,活动PDE列表344标识指向具有活动PTE列表342中所标识的条目的PT的影子PT分级结构中的PD条目。具体来说,活动PDE列表344包括指向PT 332的PD 330中的条目。活动PTE列表342和活动PDE列表344是影子PT分级结构304的元数据的构成部分。
[0059]影子PT分级结构304与PT位向量(PTV)362和PD位向量(PDV)364关联。在一个实施例中,PTV 362跟踪用作PT的客人页面帧。具体来说,PTV 362包括用作客人PT分级结构302中的PT的页面帧314至318。在一个实施例中,PDV 364跟踪用作PD的客人页面帧。具体来说,PDV 364包括用作客人PT分级结构302中的PD的页面帧314。在一个实施例中,PTV 362和PDV 364表示工作集中的所有影子PT分级结构,并跟踪在工作集中使用影子页面的容量(例如,如果没有为客人PT分配影子页面,则PTV不会反映客人PT页面,即使它出现在客人分页结构中)。
[0060]在一个实施例中,如果客人OS把新PT添加到客人PT分级结构302,则VMM可检测这种添加(例如在与TLB处理相关的下一个或后续VM退出时),并向影子PT分级结构304加入对应的PT。例如,如果从帧319中得出的新PT 352被加入客人PT分级结构302,具有新帧354的映射,则MM可把具有已变换映射的对应PT 360添加到影子PT分级结构304中,并更新元数据以反映这个变化。具体来说,VMM把映射PT 332中的帧319的条目添加到活动PTE列表342,以及把指向PD 330中的PT 360的条目添加到活动PDE列表344。VMM还把帧319添加到PTV 362,它跟踪用作PT的客人帧(即,在这里为帧319)。
[0061]图3B说明根据本发明的一个实施例、以EM64T分页模式创建和维护影子PT分级结构的元数据的过程。
[0062]参照图3B,分页结构的基础为PML4页面(例如帧A)。PML4页面中的各条目可引用PDP页面(例如帧B和C)。PDP页面中的各条目可引用页面目录(PD)页面(例如帧D或E),它的各条目又可引用页面表(P)页面中的页面(例如帧F、G、H或I)。
[0063]各PML4、PDP、PD或PT页面的大小可能为4KB。为了支持大于32位的物理地址空间,条目大小可相对于32位分页模式增大。具体来说,每页可能有512个条目,要求虚拟地址的9位在各级上用来选择适当的条目。这种选择器大小可能导致2MB而不是4MB的大页面尺寸,如前面所述。
[0064]在一个实施例中,EM64T分页模式中的元数据的创建包括若干向量、活动条目列表和若干活动目录列表的生成。向量包括标识用作PML4页面的帧的PML4V向量、标识用作PDP页面的帧的PDPV向量、标识用作PD页面的帧的PDV向量以及标识用作PT页面的帧的PTV向量。活动条目列表是包括映射PML4、PDP、PD或PT页面的所有映射的活动PTE列表。活动目录列表包括标识引用通过其中可访问与影子结构对应的客人页面的低级结构的高级映射结构的列表。具体来说,活动目录列表由包括引用包含活动PTE列表条目的页面的那些PDE的活动PDE列表、包括引用包含活动PDE列表条目的PD的活动PDPE条目的活动PDPE列表、以及包括映射包含活动PDPE列表中的元素的PDP的条目的活动PML4E列表组成。
[0065]在一个实施例中,影子页面表的同步以检查与所使用影子PT分级结构关联的活动PML4E列表中的各条目开始。如果已经访问该条目,则检查与已访问PML4条目对应的活动PDPE列表中的各元素,然后继续进行处理,如前面所述。
[0066]在一个备选实施例中,没有为分级结构的上级的一个或多个维护和/或处理活动列表。例如,在最高的分页结构中只有单个条目被填充的系统中,分级结构的各级的活动列表的使用将使这个单一条目始终被访问,由此不能减小分级结构中的低级所需的处理量。为了适应这种使用模型,同步可改为通过处理分级结构中更低的活动列表开始。例如,在一个实施例中,活动PDPE列表元素可能首先被处理,之后是与所使用影子PT分级结构关联的活动PDE列表元素或活动PTE列表元素。在一个实施例中,可预先确定在同步时所处理的初始层。在另一个实施例中,待处理的初始层可通过客人的页面表使用的动态仿形来确定。
[0067]其它各种分页模式可与本发明的实施例配合使用。例如,IA-32支持附加分页模式,在其中,32位虚拟地址被映射到较大的物理地址。在这种附加操作模式中,页面表基址寄存器配置成指向包含四个元素的PDP页面。这个附加操作模式中的条目大小和行为与以上对于64位虚拟地址模式所述的相似。由于这个附加模式没有利用PML4页面,所以不需要PML4V和活动PML4E列表。
[0068]图4是用于同步客人转换数据结构和影子转换数据结构的过程400的一个实施例的流程图。该过程可通过可包括硬件(例如,专用逻辑、可编程逻辑、微码等)、软件(例如,运行于通用计算机系统或专用机器的软件)或者它们两者的组合的处理逻辑来执行。在一个实施例中,该过程由图1的地址转换模块126来执行。
[0069]参照图4,过程400以处理逻辑接收由于与TLB的处理有关的事件而从VM转移的控制开始(处理框402)。这类事件的实例可包括改变当前地址空间的请求(例如CR3加载)、调节TLB中的指定虚拟地址的不一致转换的请求(例如INVLPG)、页面错误等。
[0070]在处理框404,处理逻辑确定与TLB的处理有关的事件是否应当由VM处理。如果是(例如,事件是客人转换数据结构中的有问题映射所引起的页面错误),则控制返回给VM用于处理该事件(处理框406)。如果不是,则处理逻辑确定事件是否与指定的有问题地址关联(处理框408)。
[0071]如果事件不需要由VM处理,则它可能与指定的有问题地址关联。这种事件的实例可包括把有问题地址当作操作数的INVLPG指令所引起的事件、由感应页面错误(例如,从相对于特定映射的两个转换数据结构之间的不一致产生的页面错误、虚拟化客人转换数据结构中的A/D位的需要所引起的页面错误等)所引起的事件等等。如果事件与指定的有问题地址关联,则处理逻辑在影子转换数据结构中对于指定地址进行校正(例如,删除指定地址的陈旧映射或者添加指定地址的新映射),以便符合客人转换数据结构(处理框410)。下面结合图7更详细地论述用于同步指定地址的两个转换数据结构的条目的过程的一个实施例。
[0072]如果事件不与任何特定地址关联(例如,事件由VM改变地址空间的请求所引起,它刷新LA32中的所有TLB条目),则处理逻辑确定客人转换数据结构的哪些条目已经被修改(处理框412)。采用从影子转换数据结构中提取的元数据以及与影子转换数据结构的条目关联的属性来进行确定(处理框412)。元数据包括影子转换数据结构的各级的向量和活动列表。影子转换数据结构的特定级的向量标识在客人转换数据结构的这一级上用作页面的帧。活动列表包括活动条目列表和一个或多个活动目录列表。活动条目列表包括映射由客人用于形成客人转换数据结构的页面的映射。活动目录列表标识引用通过其中可访问与影子分页结构对应的客人页面的低级结构的高级映射结构。如上所述,在两级分级结构分页模式中,在一个实施例中,元数据包括向量PTV和PDV、活动条目列表(PTE列表)以及活动目录列表(PDE列表)。在EM64T分页模式中,在一个实施例中,元数据包括向量PTV、PDV、PDPV和PML4V、活动条目列表(PTE列表)以及活动目录列表(活动PDE列表、活动PDPE列表和活动PML4E列表)。
[0073]下面结合图6更详细地论述用于采用元数据来标识客人转换数据结构的最近已修改条目的过程的一个实施例。
[0074]在处理框414,处理逻辑使影子转换数据结构中的对应条目与客人转换数据结构的已修改条目同步。相应地,处理逻辑仅需要同步被修改的条目,而不是重新填充影子转换数据结构的整个内容。
[0075]在一个实施例中,当某些客人PD和/或PT内容最后被同步时,额外的存储装置用来保存这些客人PD和/或PT内容。这允许VMM确定已经进行修改的位置而无需计算或查找附加重定位或许可信息。
[0076]注意,对客人页面表的某些修改不需要对影子页面表的修改。例如,如果客人PT包含以后被修改的不存在映射,则不需要对相应影子PT进行改变。
[0077]图5-14说明根据本发明的不同实施例、为了支持采用两级分级结构分页模式的虚拟机环境中的地址转换所执行的各种过程。这些过程可通过可包括硬件(例如,专用逻辑、可编程逻辑、微码等)、软件(例如,运行于通用计算机系统或专用机器的软件)或者它们两者的组合的处理逻辑来执行。在一个实施例中,这些过程中的每个由图1的地址转换模块126来执行。
[0078]图5是用于维护影子转换数据结构、如影子PT分级结构的元数据的过程500的一个实施例的流程图。
[0079]参照图5,过程500以处理逻辑从客人PT分级结构创建各PD或PT页面的影子页面开始(处理框502)。
[0080]在处理框504,处理逻辑跟踪用作客人PT分级结构中的PD或PT的页面帧。在一个实施例中,如果对应的PFN是客人PT分级结构中的PD,则处理逻辑在PDV中设置条目。类似地,如果对应的PFN是客人PT分级结构中的PT,则处理逻辑在PTV中设置条目。
[0081]在处理框506,处理逻辑跟踪到任何动态随机存取存储器(DRAM)后备的页面的映射(以便标识可能是PD或PT的页面)。在一个实施例中,处理逻辑采用逆页面表(IPT)和逆页面目录(IPD)来跟踪到基于DRAM的页面的映射。IPT通过数据页面帧的PFN来索引,其中各条目包含映射数据页面帧的PTE的地址的列表。IPD通过页面表的PFN来索引,其中各条目包含把PFN引用为页面表的PDE的地址的列表。
[0082]在一个实施例中,在处理框508,处理逻辑标识客人PT分级结构中的4MB页面,并且为各4BM页面创建影子PT分级结构中的页面表,以便避免大页面映射,由此减少将来的同步时间。否则,4MB页面的更新会引起4MB中的每一个PD和PT页面的同步。在一个实施例中,逆扩充表(IET)用来跟踪客人PT分级结构中的哪些PDE指向4MB页面。IET通过PFN和属性位来索引,其中每一个条目列出指向分解4MB页面的PDE。
[0083]在本发明的一个实施例中,IPD可通过影子PFN的地址来索引,以便使所需地址转换步骤为最少。
[0084]在IA32中,存储器类型信息(例如可高速缓存性信息)可存储在映射页面的PDE/PTE内的PAT位中。在作为页面表指针的PDE中没有捕捉这个类型信息。因此,如果两个4MB页面将映射具有不同PAT属性的同一个区域,则需要分开的页面表来传递正确的PAT属性。把分开的扩充表用于属性的各集合解决这个问题。
[0085]在处理框510,处理逻辑标识映射用作客人PT分级结构中的PD或PT的页面的影子PT分级结构中的PTE,并创建活动PTE列表。
[0086]在处理框512,处理逻辑标识指向具有在活动PTE列表中标识的PTE的PT的影子PT分级结构中的PDE,并创建活动PDE列表。
[0087]随后,在处理框514,如果客人OS修改客人PT分级结构的结构(例如,添加或删除PD或PT),则处理逻辑相应地改变以上活动PTE和PDE列表。
[0088]图6是用于帮助改变地址空间的过程600的一个实施例的流程图。注意,在IA32中,也可重新加载相同的CR3值来迫使陈旧TLB映射的刷新。对于CR3的变更或者对于CR3重新加载采取类似的处理步骤。
[0089]参照图6,过程600以处理逻辑确定VM退出由于VM启用不同客人PT分级结构的请求(例如,通过发出CR3加载请求)而发生了开始(处理框602)。
[0090]作为响应,处理逻辑扫描与元数据的活动PDE列表中标识的当前使用中的影子PT分级结构对应的所有活动PDE,以便查找已经访问了这些PDE中的哪些(具有设置为访问值的访问属性)(处理框604),然后初始化已访问PDE的访问属性(处理框606)。在IA32中,非叶分页表不支持脏位。如果已访问位被清零,则4MB区域中没有页面已被读或写,因此任何客人页面表或页面目录没有被修改。但是,已访问位不区分读和写,因此,已经被访问的4MB区域应当被进一步处理,即使可能没有修改任何内容。在支持非叶页面表的脏位的体系结构中,而是检查脏位以及只有已经被写入的区域才需要进一步处理。
[0091]随后,对于每个已访问PDE,处理逻辑扫描元数据的活动PTE列表中的已访问活动PDE对应的所有影子PTE,以便查找这些PTE中的哪些包括已更新页面的映射(具有设置为更新值的更新属性)(处理框608)。
[0092]此外,对于各个已更新页面,处理逻辑把客人PT分级结构中的PD/PT条目与影子PT分级结构中的对应条目进行比较(处理框610),以及把影子PT分级结构的对应条目改变为符合客人PT分级结构的已修改条目(例如,通过从影子PT分级结构中删除客人PT分级结构中不存在的PTE/PDE,通过向影子PT分级结构添加最近添加到客人PT分级结构的新PTE/PDE等)(处理框612)。注意,添加PDE可能需要附加影子PT的分配和初始化。这又可能需要对地址转换模块126维护的各种元数据结构进行更新。
[0093]在处理框614,处理逻辑初始化被设置为更新值的更新属性。已更新映射标识由客人OS修改的页面。
[0094]在处理框616,处理逻辑根据已修改客人页面来同步影子映射,以及在因上述修改而需要时更新元数据。
[0095]在处理框618,处理逻辑确定VMM维护的工作集是否包含与VM所请求的新客人PD对应的影子PD。如果是,则处理逻辑请求处理器加载这个影子PT分级结构的基址(处理框620)。如果不是,则处理逻辑分配与所请求客人PT分级结构对应的新的影子PT分级结构(处理框622),把新的影子PT分级结构的PD添加到PDV(处理框624),把各有效PDE添加到新的影子PT分级结构的PD(处理框626),把活动PDE和PTE列表配置成监控映射PD覆盖范围的这个PD的PTE(处理框628),然后请求处理器加载这个影子PT分级结构的基址(处理框620)。下面结合图13更详细地论述用于监控PTE的过程的一个实施例。
[0096]图7是用于同步指定地址的两个转换数据结构的条目的过程700的一个实施例的流程图。例如,可能由于VM发出的INVLPG指令或者由于感应页面错误而执行过程700。
[0097]参照图7,过程700以处理逻辑确定指定地址的影子PT分级结构中的映射是否陈旧(即,存在与客人页面表的当前内容不对应的有效映射)开始(处理框702)。如果不是,则处理逻辑进入处理框712。如果是,则处理逻辑确定陈旧条目是否映射PD或PT页面(处理框704)。如果陈旧条目没有映射PD或PT页面,则处理逻辑删除该陈旧条目(处理框710),以及进入处理框712。
[0098]如果陈旧条目映射了PD或PT页面,则处理逻辑还确定是否已经更新所映射页面(处理框706)。如果没有,则处理逻辑进入处理框710。如果是,则处理逻辑更新、同步或删除已修改PD或PT影子(处理框708),以及进入处理框710。在一个实施例中,页面被标记供将来同步。
[0099]在处理框712,处理逻辑确定客人PT分级结构是否包含指定地址的新映射。如果不是,则过程700结束。如果是,则处理逻辑添加新映射作为对应的PTE或PDE,以及在必要时,创建影子页面并根据该添加来更新元数据(处理框714)。
[00100]图8是用于从VMM维护的影子PT分级结构的工作集中删除影子PT分级结构的过程800的一个实施例的流程图。
[00101]可在检测到对应进程由VM去活时从工作集中删除影子PT分级结构。可采用为相关OS定义的试探或者相对于当前地址空间采用基于客人VM的行为所提供的线索的校验集合来检测去活。如果VM支持OS或驱动器通过其通知VMM去活的接口,则可避免试探。还可因资源限制、例如由于用于影子结构的存储空间大小超过目标门限而删除影子PT分级结构。
[00102]参照图8,处理逻辑以从影子PT分级结构中的PD删除各有效PDE开始(处理框802)。
[00103]在处理框804,处理逻辑清除PDV中的对应条目。
[00104]在处理框806,处理逻辑取消分配PD页面,并从PD转换表(PDTT)中删除转换。PDTT用来跟踪页面的地址和类型(例如PD或PT)。PDTT通过客人PFN来索引,其中的各条目包含物理PFN和元数据。
[00105]在处理框808,处理逻辑从映射PD的PTE中删除监控。下面结合图14更详细地论述用于从PTE中删除监控的过程的一个实施例。
[00106]图9是用于向影子PT分级结构的PD添加条目的过程900的一个实施例的流程图。为了便于说明,将考虑映射页面表的当前条目。
[00107]参照图9,处理逻辑以向IPD添加PDE的条目开始(处理框902)。
[00108]在处理框904,处理逻辑确定在PTV中是否设置了这个PDE映射的PT。如果是,则在PTTT中查找适当的影子PT(处理框916),创建新的影子PDE(处理框914),以及过程900结束。如果没有,则处理逻辑在PTV中设置对应的向量(处理框906),分配影子页面并初始化转换(处理框908),填充新的影子页面表(处理框910),更新活动PTE/PDE列表和元数据以反映由当前客人PDE用作页面表的客人页面将被监控(处理框912),以及添加新的PDE,在影子页面表包含任何活动PTE列表元素时将其添加到活动PDE列表(处理框914)。下面结合图13更详细地论述用于监控PTE的过程的一个实施例。
[00109]图10是用于从影子PT分级结构的PD中删除条目的过程1000的一个实施例的流程图。
[00110]参照图10,处理逻辑以从IPD PDE列表中删除这个PDE的条目开始(处理框1002)。如果PDE处于活动PDE列表中,则必须更新活动PDE列表。
[00111]在处理框1004,处理逻辑确定PDE是否是映射对应PT的最后一个条目。如果不是,则过程1000结束。如果是,则处理逻辑清除PTV中的PT的条目(处理框1006),删除各有效PTE(处理框1008),更新映射PT覆盖范围的这个PT的活动PTE/PDE列表(处理框1010),以及删除影子页面转换并释放用于存储PT影子页面的存储器(处理框1010)。
[00112]图11是用于向影子PT分级结构的PT添加条目的过程1100的一个实施例的流程图。
[00113]参照图11,处理逻辑以向IPT添加这个PTE的条目开始(处理框1102)。
[00114]在处理框1106,处理逻辑创建影子映射,以及进入处理框1108。
[00115]在处理框1108,处理逻辑确定是否设置了PDV或PTV中的对应条目。如果没有,则过程1100结束。如果是,则处理逻辑把这个条目添加到活动PTE列表,以及更新关联元数据,从而表明它是否映射PD和/或PT页面(处理框1110)。如果刚创建的活动PTE条目是这个页面表的第一个,则必须咨询IPD,以及映射这个页面表页面的各PDE被添加到活动PDE列表。
[00116]图12是用于从影子PT分级结构的PT中删除条目的过程1200的一个实施例的流程图。
[00117]参照图12,处理逻辑以确定这个PTE是否映射PDV或PTV中的页面集合开始(处理框1202)。如果不是,则处理逻辑进入处理框1206。如果是,则处理逻辑从活动PTE列表中删除PTE。如果这是PT中的最后一个活动PTE列表元素,则从活动PDE列表中删除引用这个PT的PDE(处理框1204),以及进入处理框1206。
[00118]在处理框1206,处理逻辑从IPT中删除对应的条目。
[00119]图13是用于监控影子PT分级结构的PTE的过程1300的一个实施例的流程图。图13所示的步骤表示当监控器认识到已经作为数据页面映射的页面被用作页面目录或页面表页面时可能需要的处理。因此,这个过程将通过由PTE映射的页面的状态变化来触发。
[00120]参照图13,处理逻辑以确定在活动PTE列表中是否标识PTE开始(处理框1302)。如果是,则处理逻辑添加先前未命中的覆盖范围(处理框1304)。这个流程通过所映射页面的状态变化来触发。由于这个PTE已经处于活动PTE列表中,所以情况必定是,这个PTE先前作为PT或PD被使用,这时也在其它容量中使用。这种信息可明确地与条目一起存储或者存储在关联元数据中。如果PTE不在活动PTE列表中,则处理逻辑向活动PTE列表添加PTE,并相应地更新元数据(处理框1306)。
[00121]随后,在处理框1308,处理逻辑确定PTE是否为这个PT的第一活动PTE列表条目。如果不是,则过程1300结束。如果是,则处理逻辑向活动PDE列表添加映射这个PT的条目(如通过IPD找到的)(处理框1310)。
[00122]图14是用于减少影子PT分级结构的PTE所提供的监控覆盖范围的过程1400的一个实施例的流程图。可当从工作集中删除进程或者删除引用页面表的最后一个PDE、从而引起先前监控的页面目录或页面表页面的状态变化时,调用这个过程。
[00123]参照图14,处理逻辑以确定这个PTE是否已经监控作为页面表以及页面目录页面的页面开始(处理框1402)。如果是,则处理逻辑减小覆盖范围等级,从而表明PTE这时监控作为PT或者作为PD但不是作为两者的页面(处理框1404)。如果不是,则处理逻辑从活动PTE列表中删除PTE(处理框1406)。注意,如果PTE是对于它在单个容量中的使用跟踪的页面的元素,则在这时的情况必定是,页面不再需要监控。
[00124]随后,如果删除PT中的最后一个活动PTE列表元素(处理框1408),则处理逻辑从活动PDE列表中删除映射这个页面表的对应条目(如通过IPD找到的)(处理框1410)。
[00125]如上所述,物理或虚拟平台可包括多个处理器。各处理器又可包括一个或多个线程或逻辑处理器。以上所述的过程可用于支持单线程VM的单线程系统或者用于具有支持一个或多个各包含单个虚拟逻辑处理器的VM的多个逻辑处理器的物理系统。注意,各VM具有它自己的元数据集、影子页面表等,以及同步步骤限于给定VM。
[00126]这样描述了用于支持虚拟机环境中的地址转换的方法及装置。要理解,以上描述只是说明性而不是限制性的。通过阅读和理解以上描述,本领域的技术人员将会十分清楚其它许多实施例。因此,本发明的范围应当参照所附权利要求以及这些权利要求涵盖的完整等效范围来确定。
Claims (30)
1.一种方法,包括:
接收由于有关转换后备缓冲器(TLB)的特许事件而从虚拟机(VM)转移的控制;
根据从虚拟机监控器(VMM)维护的影子转换数据结构中提取的元数据以及与所述影子转换数据结构中的条目关联的属性,确定客人转换数据结构中的哪些条目已被所述VM修改;以及
使对应于所述客人转换数据结构中的已修改条目的所述影子转换数据结构中的条目与所述客人转换数据结构中的已修改条目同步。
2.如权利要求1所述的方法,其特征在于:
所述客人转换数据结构由所述VM用于地址转换操作;以及
所述影子转换数据结构的内容由处理器用于在所述TLB中高速缓存地址转换。
3.如权利要求1所述的方法,其特征在于,还包括:
维护影子转换数据结构的工作集,所述工作集中的每个影子转换数据结构与所述VM的多个活动进程之一关联;以及
当启用与所述多个活动进程之一关联的客人转换数据结构时,再使用来自所述工作集的、与所述多个活动进程之一关联的影子转换数据结构的内容。
4.如权利要求3所述的方法,其特征在于,所述特许事件是所述VM启用不同客人转换数据结构的请求、所述客人转换数据结构的条目与所述影子转换数据结构的条目之间的一个或多个不一致所引起的页面错误、以及所述VM使转换后备缓冲器(TLB)中的一个或多个地址转换无效的请求其中的任一个。
5.如权利要求3所述的方法,其特征在于,还包括:
确定所述特许事件是页面错误、INVLPG指令以及启用新客人转换数据结构的请求其中的任一个;
根据所述新客人转换数据结构来创建新影子转换数据结构;以及
从所述新影子转换数据结构中得出元数据。
6.如权利要求3所述的方法,其特征在于,还包括:
确定所述VM的所述多个活动进程之一被去活;以及
从所述工作集中删除与被去活的所述活动进程关联的影子转换数据结构。
7.如权利要求3所述的方法,其特征在于,还包括:
确定不再使用所述影子转换数据结构之一;以及
从所述工作集中删除所述影子转换数据结构之一。
8.如权利要求1所述的方法,其特征在于,所述元数据包含向量集、活动条目列表以及一个或多个活动目录列表。
9.如权利要求8所述的方法,其特征在于:
所述集合中的各向量标识在所述客人转换数据结构的对应级用作页面的帧;
所述活动条目列表标识映射在形成存在其影子转换数据结构的客人转换数据结构时使用的页面的映射;以及
所述一个或多个活动目录列表标识引用通过其中可访问所述影子转换数据结构的低级结构的高级映射结构。
10.如权利要求9所述的方法,其特征在于:
所述活动条目列表是活动页面表(PT)条目列表,所述活动PT条目(PTE)列表标识映射来自所述客人转换数据结构的PT页面和PD页面的所述影子转换数据结构中的PTE,以及
所述一个或多个活动目录列表包括活动页面目录(PD)条目列表,所述活动PD条目(PDE)列表标识指向具有来自所述活动PTE列表的PTE的PT的所述影子转换数据结构中的PDE。
11.如权利要求9所述的方法,其特征在于:
所述活动条目列表是活动页面表(PT)条目列表,所述活动PT条目(PTE)列表标识映射页面映射4级(PML4)页面、页面目录指针(PDP)页面、页面目录(PD)页面和PT页面中的任一个的映射;以及
所述一个或多个活动目录列表包括包含引用具有活动PTE列表条目的页面的PDE的活动PD条目(PDE)列表、包含引用具有活动PDE列表条目的PD的活动PDPE条目的活动PDP条目(PDPE)列表、以及包含映射具有来自所述活动PDPE列表的元素的PDP的条目的活动PML4E条目(PML4E)列表。
12.如权利要求10所述的方法,其特征在于,与所述影子转换数据结构中的条目关联的所述属性包括与所述影子转换数据结构中的PDE关联的访问属性以及与所述影子转换数据结构中的PTE关联的更新属性。
13.如权利要求12所述的方法,其特征在于,确定所述客人转换数据结构中的哪些条目已被所述VM修改包括:
从对应于被同步的活动PT分级结构的活动PDE列表中标识具有设置为访问值的访问属性的一个或多个PDE;以及
对于所标识PDE中的每个,从所述活动PTE列表中查找具有设置为更新值的更新属性的对应PTE。
14.如权利要求13所述的方法,其特征在于,还包括:
初始化所述访问属性;以及
初始化所述更新属性。
15.一种方法,包括:
根据客人操作系统用于地址转换操作的客人页面表(PT)分级结构来创建影子PT分级结构;以及
从所述影子PT分级结构中得出元数据,以便随后确定在所述影子PT分级结构中表示的所述客人PT分级结构的哪些条目已被修改,所述元数据包括标识映射所述客人操作系统用于形成所述客人PT分级结构的页面的映射的活动条目列表、以及标识引用通过其中访问所述影子PT分级结构的低级结构的高级映射结构的一个或多个活动目录列表。
16.如权利要求15所述的方法,其特征在于:
所述活动条目列表是标识映射来自所述客人PT分级结构的PT页面和节面目录(PD)页面的所述影子PT分级结构中的PTE的活动PT条目(PTE)列表,以及
所述一个或多个活动目录列表包括标识指向具有所标识PTE的PT的所述影子PT分级结构中的PDE的活动PD条目(PDE)列表。
17.如权利要求15所述的方法,其特征在于:
所述活动条目列表是标识映射页面映射4级(PML4)页面、页面目录指针(PDP)页面、页面目录(PD)页面和PT页面中的任一个的所述影子PT分级结构中的PTE的活动PT条目(PTE)列表;以及
所述一个或多个活动目录列表包括包含引用具有活动PTE列表条目的页面的PDE的活动PD条目(PDE)列表、包含引用具有活动PDE列表条目的PD的活动PDPE条目的活动PDP条目(PDPE)列表、以及包含映射具有来自所述活动PDPE列表的元素的PDP的条目的活动PML4E条目(PML4E)列表。
18.如权利要求16所述的方法,其特征在于,还包括:
跟踪所述客人操作系统用于形成所述客人PT分级结构的页面;以及
跟踪到任何动态随机存取存储器(DRAM)后备的页面帧的映射。
19.如权利要求15所述的方法,其特征在于,还包括:
标识所述客人PT分级结构中的一个或多个大尺寸页面;以及
对于所述一个或多个大尺寸页面中的每一个在所述影子PT分级结构中创建PT表。
20.如权利要求15所述的方法,其特征在于,还包括:
检测所述客人PT分级结构的结构中的变化;以及
修改所述元数据以反映所述变化。
21.如权利要求15所述的方法,其特征在于:
所述影子PT分级结构的内容由处理器用于在所述TLB中高速缓存地址转换。
22.一种装置,包括:
客人转换数据结构,由虚拟机(VM)用于地址转换操作;
虚拟机监控器(VMM)维护的影子转换数据结构,所述影子转换数据结构从所述客人转换数据结构中得出格式和结构;以及
地址转换模块,根据从所述影子转换数据结构中提取的元数据来确定所述客人转换数据结构中的哪些条目已被所述VM修改,以及使对应于所述客人转换数据结构中的已修改条目的所述影子转换数据结构中的条目与所述客人转换数据结构中的已修改条目同步。
23.如权利要求22所述的装置,其特征在于,所述地址转换模块还将维护影子转换数据结构的工作集,所述工作集中的每个影子转换数据结构与所述VM的多个活动进程之一关联,以及当启用与所述多个活动进程之一关联的客人转换数据结构时,将再使用来自所述工作集的、与所述多个活动进程之一关联的影子转换数据结构的内容。
24.如权利要求23所述的装置,其特征在于,所述特许事件是所述VM启用不同客人转换数据结构的请求、所述客人转换数据结构的条目与所述影子转换数据结构的条目之间的一个或多个不一致所引起的页面错误、以及所述VM使转换后备缓冲器(TLB)中的一个或多个地址转换无效的请求其中的任一个。
25.一种系统,包括:
动态随机存取存储器(DRAM),存储由虚拟机(VM)用于地址转换操作的客人转换数据结构以及从所述客人转换数据结构中得出格式和结构的影子转换数据结构;以及
处理器,耦合到所述DRAM,根据从所述影子转换数据结构中提取的元数据来确定所述客人转换数据结构中的哪些条目已被所述VM修改,以及使对应于所述客人转换数据结构中的已修改条目的所述影子转换数据结构中的条目与所述客人转换数据结构中的已修改条目同步。
26.如权利要求25所述的系统,其特征在于,所述处理器还维护影子转换数据结构的工作集,所述工作集中的每个影子转换数据结构与所述VM的多个活动进程之一关联,以及当启用与所述多个活动进程之一关联的客人转换数据结构时,将再使用来自所述工作集的、与所述多个活动进程之一关联的影子转换数据结构的内容。
27.如权利要求26所述的系统,其特征在于,所述特许事件是所述VM启用不同客人转换数据结构的请求、所述客人转换数据结构的条目与所述影子转换数据结构的条目之间的一个或多个不一致所引起的页面错误、以及所述VM使转换后备缓冲器(TLB)中的一个或多个地址转换无效的请求其中的任一个。
28.一种机器可读媒体,其中包含指令,这些指令当由处理系统执行时,使所述处理系统执行一种方法,所述方法包括:
接收由于有关转换后备缓冲器(TLB)的特许事件而从虚拟机(VM)转移的控制;
根据从虚拟机监控器(VMM)维护的影子转换数据结构中提取的元数据以及与所述影子转换数据结构中的条目关联的属性,确定客人转换数据结构中的哪些条目已被所述VM修改;以及
使对应于所述客人转换数据结构中的已修改条目的所述影子转换数据结构中的条目与所述客人转换数据结构中的已修改条目同步。
29.如权利要求28所述的机器可读媒体,其特征在于,所述方法还包括:
维护影子转换数据结构的工作集,所述工作集中的每个影子转换数据结构与所述VM的多个活动进程之一关联,以及
当启用与所述多个活动进程之一关联的客人转换数据结构时,再使用来自所述工作集的、与所述多个活动进程之一关联的影子转换数据结构的内容。
30.如权利要求29所述的机器可读媒体,其特征在于,所述特许事件是所述VM启用不同客人转换数据结构的请求、所述客人转换数据结构的条目与所述影子转换数据结构的条目之间的一个或多个不一致所引起的页面错误、以及所述VM使转换后备缓冲器(TLB)中的一个或多个地址转换无效的请求其中的任一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/045,524 US7395405B2 (en) | 2005-01-28 | 2005-01-28 | Method and apparatus for supporting address translation in a virtual machine environment |
US11/045,524 | 2005-01-28 | ||
PCT/US2006/003587 WO2006081582A2 (en) | 2005-01-28 | 2006-01-27 | A method and apparatus for supporting address translation in a virtual machine environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101107593A true CN101107593A (zh) | 2008-01-16 |
CN101107593B CN101107593B (zh) | 2013-02-06 |
Family
ID=36603334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800031107A Expired - Fee Related CN101107593B (zh) | 2005-01-28 | 2006-01-27 | 支持虚拟机环境中的地址转换的方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7395405B2 (zh) |
EP (1) | EP1856606B1 (zh) |
JP (1) | JP5038907B2 (zh) |
KR (1) | KR100928353B1 (zh) |
CN (1) | CN101107593B (zh) |
WO (1) | WO2006081582A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957775A (zh) * | 2009-07-14 | 2011-01-26 | 英特尔公司 | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 |
CN101882113B (zh) * | 2009-05-05 | 2012-02-22 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN102662722A (zh) * | 2010-12-23 | 2012-09-12 | 韩国电子通信研究院 | 用于完全虚拟化的地址空间变换方法和设备 |
CN104081346A (zh) * | 2012-02-07 | 2014-10-01 | 英特尔公司 | 用于使用跟踪数据消除处理器间中断来支持多处理器虚拟机环境中的地址转换的方法和设备 |
CN105518746A (zh) * | 2014-12-24 | 2016-04-20 | 英特尔公司 | 混合请求式图形转换表阴影化 |
CN105760312A (zh) * | 2010-09-24 | 2016-07-13 | 英特尔公司 | 用于实现微页表的装置、方法和系统 |
CN101957775B (zh) * | 2009-07-14 | 2016-12-14 | 英特尔公司 | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 |
CN107408077A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 存储器扫描方法和装置 |
Families Citing this family (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7299337B2 (en) * | 2005-05-12 | 2007-11-20 | Traut Eric P | Enhanced shadow page table algorithms |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
US8423747B2 (en) * | 2008-06-30 | 2013-04-16 | Intel Corporation | Copy equivalent protection using secure page flipping for software components within an execution environment |
US9785485B2 (en) * | 2005-07-27 | 2017-10-10 | Intel Corporation | Virtualization event processing in a layered virtualization architecture |
US8909946B2 (en) | 2005-11-15 | 2014-12-09 | Microsoft Corporation | Efficient power management of a system with virtual machines |
US7475183B2 (en) * | 2005-12-12 | 2009-01-06 | Microsoft Corporation | Large page optimizations in a virtual machine environment |
US7555628B2 (en) * | 2006-08-15 | 2009-06-30 | Intel Corporation | Synchronizing a translation lookaside buffer to an extended paging table |
US8694712B2 (en) * | 2006-12-05 | 2014-04-08 | Microsoft Corporation | Reduction of operational costs of virtual TLBs |
US8615643B2 (en) * | 2006-12-05 | 2013-12-24 | Microsoft Corporation | Operational efficiency of virtual TLBs |
US9098347B2 (en) | 2006-12-21 | 2015-08-04 | Vmware | Implementation of virtual machine operations using storage system functionality |
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 |
US7788464B2 (en) * | 2006-12-22 | 2010-08-31 | Microsoft Corporation | Scalability of virtual TLBs for multi-processor virtual machines |
US7685401B2 (en) | 2006-12-27 | 2010-03-23 | Intel Corporation | Guest to host address translation for devices to access memory in a partitioned system |
JP4897578B2 (ja) * | 2007-06-06 | 2012-03-14 | 株式会社日立製作所 | 仮想計算機の制御プログラムおよび仮想計算機システム |
WO2009001153A1 (en) * | 2007-06-28 | 2008-12-31 | Nokia Corporation | Memory protection unit in a virtual processing environment |
US8078827B2 (en) * | 2007-07-05 | 2011-12-13 | International Business Machines Corporation | Method and apparatus for caching of page translations for virtual machines |
US8739156B2 (en) * | 2007-07-24 | 2014-05-27 | Red Hat Israel, Ltd. | Method for securing the execution of virtual machines |
US8032897B2 (en) * | 2007-07-31 | 2011-10-04 | Globalfoundries Inc. | Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization |
US8515075B1 (en) | 2008-01-31 | 2013-08-20 | Mcafee, Inc. | Method of and system for malicious software detection using critical address space protection |
GB2460393B (en) * | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
US8296547B2 (en) * | 2008-08-27 | 2012-10-23 | International Business Machines Corporation | Loading entries into a TLB in hardware via indirect TLB entries |
US10802990B2 (en) * | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
US10255463B2 (en) | 2008-11-17 | 2019-04-09 | International Business Machines Corporation | Secure computer architecture |
US8301863B2 (en) * | 2008-11-17 | 2012-10-30 | International Business Machines Corporation | Recursive logical partition real memory map |
US8135937B2 (en) * | 2008-11-17 | 2012-03-13 | International Business Machines Corporation | Logical partition memory |
JP4769308B2 (ja) * | 2009-01-20 | 2011-09-07 | 株式会社東芝 | 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法 |
JP4961459B2 (ja) * | 2009-06-26 | 2012-06-27 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムにおける制御方法 |
US8234407B2 (en) * | 2009-06-30 | 2012-07-31 | Oracle America, Inc. | Network use of virtual addresses without pinning or registration |
US8195917B2 (en) * | 2009-07-01 | 2012-06-05 | Advanced Micro Devices, Inc. | Extended page size using aggregated small pages |
US8560758B2 (en) * | 2009-08-24 | 2013-10-15 | Red Hat Israel, Ltd. | Mechanism for out-of-synch virtual machine memory management optimization |
US20110061050A1 (en) * | 2009-09-04 | 2011-03-10 | Sahita Ravi L | Methods and systems to provide platform extensions for trusted virtual machines |
US8327059B2 (en) * | 2009-09-30 | 2012-12-04 | Vmware, Inc. | System and method to enhance memory protection for programs in a virtual machine environment |
US9069592B2 (en) * | 2009-11-02 | 2015-06-30 | International Business Machines Corporation | Generic transport layer mechanism for firmware communication |
US8347290B2 (en) * | 2009-11-16 | 2013-01-01 | Novell, Inc. | Monitoring spin locks in virtual machines in a computing system environment |
US8656397B2 (en) | 2010-03-30 | 2014-02-18 | Red Hat Israel, Ltd. | Migrating groups of threads across NUMA nodes based on remote page access frequency |
US8364915B2 (en) * | 2010-06-23 | 2013-01-29 | Intel Corporation | Method, apparatus and system for generating access information from an LRU tracking list |
KR101671494B1 (ko) | 2010-10-08 | 2016-11-02 | 삼성전자주식회사 | 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 |
US9767039B2 (en) | 2011-07-18 | 2017-09-19 | Vmware, Inc. | Increasing granularity of dirty bit information in hardware assisted memory management systems |
US8694738B2 (en) | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US9069586B2 (en) * | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US9804870B2 (en) | 2011-10-28 | 2017-10-31 | Intel Corporation | Instruction-set support for invocation of VMM-configured services without VMM intervention |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
US9600419B2 (en) | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9280488B2 (en) | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9075789B2 (en) | 2012-12-11 | 2015-07-07 | General Dynamics C4 Systems, Inc. | Methods and apparatus for interleaving priorities of a plurality of virtual processors |
US9223602B2 (en) * | 2012-12-28 | 2015-12-29 | Intel Corporation | Processors, methods, and systems to enforce blacklisted paging structure indication values |
US10114662B2 (en) | 2013-02-26 | 2018-10-30 | Red Hat Israel, Ltd. | Updating processor topology information for virtual machines |
US10061622B2 (en) | 2013-02-26 | 2018-08-28 | Red Hat Israel, Ltd. | Updating memory topology information for virtual machines |
WO2014174580A1 (ja) * | 2013-04-22 | 2014-10-30 | 富士通株式会社 | 情報処理装置、方法、及びプログラム |
WO2015061731A1 (en) | 2013-10-27 | 2015-04-30 | Advanced Micro Devices, Inc. | Input/output memory map unit and northbridge |
US9772867B2 (en) * | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US9696933B2 (en) | 2014-08-15 | 2017-07-04 | International Business Machines Corporation | Virtual machine manager initiated page-in of kernel pages |
US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
US9892060B2 (en) | 2015-12-02 | 2018-02-13 | International Business Machines Corporation | Identifying stale entries in address translation cache |
US10963280B2 (en) | 2016-02-03 | 2021-03-30 | Advanced Micro Devices, Inc. | Hypervisor post-write notification of control and debug register updates |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US10223281B2 (en) | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10162764B2 (en) | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10241925B2 (en) | 2017-02-15 | 2019-03-26 | Ati Technologies Ulc | Selecting a default page size in a variable page size TLB |
US10282309B2 (en) | 2017-02-24 | 2019-05-07 | Advanced Micro Devices, Inc. | Per-page control of physical address space distribution among memory modules |
US10339068B2 (en) | 2017-04-24 | 2019-07-02 | Advanced Micro Devices, Inc. | Fully virtualized TLBs |
EP3688583A1 (en) * | 2017-09-26 | 2020-08-05 | INTEL Corporation | Methods and apparatus to process commands from virtual machines |
US10768968B2 (en) | 2018-09-28 | 2020-09-08 | Intel Corporation | Split-control of page attributes between virtual machines and a virtual machine monitor |
Family Cites Families (233)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4319223A (en) * | 1965-07-01 | 1982-03-09 | The Bendix Corporation | Full code means for electromechanical decoder |
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4319323A (en) | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4419724A (en) | 1980-04-14 | 1983-12-06 | Sperry Corporation | Main bus interface package |
US4366537A (en) | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4403283A (en) | 1980-07-28 | 1983-09-06 | Ncr Corporation | Extended memory system and method |
DE3034581A1 (de) | 1980-09-13 | 1982-04-22 | Robert Bosch Gmbh, 7000 Stuttgart | Auslesesicherung bei einchip-mikroprozessoren |
JPS58140862A (ja) | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4521852A (en) | 1982-06-30 | 1985-06-04 | Texas Instruments Incorporated | Data processing device formed on a single semiconductor substrate having secure memory |
JPS59111561A (ja) | 1982-12-17 | 1984-06-27 | Hitachi Ltd | 複合プロセツサ・システムのアクセス制御方式 |
US4759064A (en) | 1985-10-07 | 1988-07-19 | Chaum David L | Blind unanticipated signature systems |
US4975836A (en) * | 1984-12-19 | 1990-12-04 | Hitachi, Ltd. | Virtual computer system |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2618002B1 (fr) * | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) * | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) * | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
EP0473913A3 (en) | 1990-09-04 | 1992-12-16 | International Business Machines Corporation | Method and apparatus for providing a service pool of virtual machines for a plurality of vm users |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
US5446904A (en) * | 1991-05-17 | 1995-08-29 | Zenith Data Systems Corporation | Suspend/resume capability for a protected mode microprocessor |
JPH04348434A (ja) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5319760A (en) * | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (ja) | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5627987A (en) | 1991-11-29 | 1997-05-06 | Kabushiki Kaisha Toshiba | Memory management and protection system for virtual memory in computer system |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
EP0600112A1 (de) | 1992-11-30 | 1994-06-08 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff |
JP2765411B2 (ja) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
EP0602867A1 (en) | 1992-12-17 | 1994-06-22 | NCR International, Inc. | An apparatus for securing a system platform |
JPH06187178A (ja) * | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) * | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) * | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
US5473692A (en) * | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5533123A (en) | 1994-06-28 | 1996-07-02 | National Semiconductor Corporation | Programmable distributed personal security |
US5978481A (en) | 1994-08-16 | 1999-11-02 | Intel Corporation | Modem compatible method and apparatus for encrypting data that is transparent to software applications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
DE69534757T2 (de) | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften |
US6058478A (en) * | 1994-09-30 | 2000-05-02 | Intel Corporation | Apparatus and method for a vetted field upgrade |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5903752A (en) * | 1994-10-13 | 1999-05-11 | Intel Corporation | Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US6269392B1 (en) | 1994-11-15 | 2001-07-31 | Christian Cotichini | Method and apparatus to monitor and locate an electronic device using a secured intelligent agent |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
FR2731536B1 (fr) | 1995-03-10 | 1997-04-18 | Schlumberger Ind Sa | Procede d'inscription securisee d'informations dans un support portable |
US5717903A (en) | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3451595B2 (ja) | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
US5684948A (en) | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
US5633929A (en) | 1995-09-15 | 1997-05-27 | Rsa Data Security, Inc | Cryptographic key escrow system having reduced vulnerability to harvesting attacks |
US5737760A (en) | 1995-10-06 | 1998-04-07 | Motorola Inc. | Microcontroller with security logic circuit which prevents reading of internal memory by external program |
US6093213A (en) | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
JP3693721B2 (ja) | 1995-11-10 | 2005-09-07 | Necエレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
IL116708A (en) | 1996-01-08 | 2000-12-06 | Smart Link Ltd | Real-time task manager for a personal computer |
WO1997025798A1 (en) | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) * | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978892A (en) | 1996-05-03 | 1999-11-02 | Digital Equipment Corporation | Virtual memory allocation in a virtual address space having an inaccessible gap |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US6205550B1 (en) * | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US6175925B1 (en) * | 1996-06-13 | 2001-01-16 | Intel Corporation | Tamper resistant player for scrambled contents |
US6178509B1 (en) * | 1996-06-13 | 2001-01-23 | Intel Corporation | Tamper resistant methods and apparatus |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
US6055637A (en) * | 1996-09-27 | 2000-04-25 | Electronic Data Systems Corporation | System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US5935242A (en) | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
JPH10134008A (ja) | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
DE19649292A1 (de) * | 1996-11-28 | 1998-06-04 | Deutsche Telekom Ag | Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
US5818939A (en) | 1996-12-18 | 1998-10-06 | Intel Corporation | Optimized security functionality in an electronic system |
US6412035B1 (en) | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
JP4000654B2 (ja) | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | 半導体装置及び電子機器 |
US6272637B1 (en) | 1997-04-14 | 2001-08-07 | Dallas Semiconductor Corporation | Systems and methods for protecting access to encrypted information |
US6557104B2 (en) * | 1997-05-02 | 2003-04-29 | Phoenix Technologies Ltd. | Method and apparatus for secure processing of cryptographic keys |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US6584565B1 (en) | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
US6014745A (en) * | 1997-07-17 | 2000-01-11 | Silicon Systems Design Ltd. | Protection for customer programs (EPROM) |
US6212635B1 (en) * | 1997-07-18 | 2001-04-03 | David C. Reardon | Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place |
US5978475A (en) | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US5919257A (en) | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
DE19735948C1 (de) * | 1997-08-19 | 1998-10-01 | Siemens Nixdorf Inf Syst | Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung |
US6282657B1 (en) | 1997-09-16 | 2001-08-28 | Safenet, Inc. | Kernel mode protection |
US5935247A (en) | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6148379A (en) | 1997-09-19 | 2000-11-14 | Silicon Graphics, Inc. | System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system |
US6182089B1 (en) * | 1997-09-23 | 2001-01-30 | Silicon Graphics, Inc. | Method, system and computer program product for dynamically allocating large memory pages of different sizes |
US6061794A (en) * | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6357004B1 (en) * | 1997-09-30 | 2002-03-12 | Intel Corporation | System and method for ensuring integrity throughout post-processing |
US5970147A (en) | 1997-09-30 | 1999-10-19 | Intel Corporation | System and method for configuring and registering a cryptographic device |
US6085296A (en) | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6219787B1 (en) | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6308270B1 (en) | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
US6108644A (en) | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6192455B1 (en) * | 1998-03-30 | 2001-02-20 | Intel Corporation | Apparatus and method for preventing access to SMRAM space through AGP addressing |
US6374286B1 (en) * | 1998-04-06 | 2002-04-16 | Rockwell Collins, Inc. | Real time processor capable of concurrently running multiple independent JAVA machines |
US6173417B1 (en) * | 1998-04-30 | 2001-01-09 | Intel Corporation | Initializing and restarting operating systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
FR2778998B1 (fr) | 1998-05-20 | 2000-06-30 | Schlumberger Ind Sa | Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre |
EP0961193B1 (en) | 1998-05-29 | 2010-09-01 | Texas Instruments Incorporated | Secure computing device |
US6421702B1 (en) | 1998-06-09 | 2002-07-16 | Advanced Micro Devices, Inc. | Interrupt driven isochronous task scheduler system |
US6505279B1 (en) * | 1998-08-14 | 2003-01-07 | Silicon Storage Technology, Inc. | Microcontroller system having security circuitry to selectively lock portions of a program memory address space |
US6339815B1 (en) * | 1998-08-14 | 2002-01-15 | Silicon Storage Technology, Inc. | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space |
JP2000076139A (ja) | 1998-08-28 | 2000-03-14 | Nippon Telegr & Teleph Corp <Ntt> | 携帯型情報記憶媒体 |
US6363485B1 (en) * | 1998-09-09 | 2002-03-26 | Entrust Technologies Limited | Multi-factor biometric authenticating device and method |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6230248B1 (en) | 1998-10-12 | 2001-05-08 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6609199B1 (en) | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6445797B1 (en) | 1998-12-16 | 2002-09-03 | Secure Choice Llc | Method and system for performing secure electronic digital streaming |
US6463537B1 (en) | 1999-01-04 | 2002-10-08 | Codex Technologies, Inc. | Modified computer motherboard security and identification system |
US6282650B1 (en) | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
EP1030237A1 (en) | 1999-02-15 | 2000-08-23 | Hewlett-Packard Company | Trusted hardware device in a computer |
US6272533B1 (en) | 1999-02-16 | 2001-08-07 | Hendrik A. Browne | Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6275933B1 (en) | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
EP1056014A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for providing a trustworthy user interface |
EP1055989A1 (en) | 1999-05-28 | 2000-11-29 | Hewlett-Packard Company | System for digitally signing a document |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6633981B1 (en) | 1999-06-18 | 2003-10-14 | Intel Corporation | Electronic system and method for controlling access through user authentication |
US6158546A (en) | 1999-06-25 | 2000-12-12 | Tenneco Automotive Inc. | Straight through muffler with conically-ended output passage |
US6301646B1 (en) | 1999-07-30 | 2001-10-09 | Curl Corporation | Pointer verification system and method |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP2001148344A (ja) | 1999-09-09 | 2001-05-29 | Nikon Corp | 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法 |
EP1085396A1 (en) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
US6535988B1 (en) * | 1999-09-29 | 2003-03-18 | Intel Corporation | System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate |
US6374317B1 (en) * | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
US6292874B1 (en) | 1999-10-19 | 2001-09-18 | Advanced Technology Materials, Inc. | Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges |
EP1269425A2 (en) | 2000-02-25 | 2003-01-02 | Identix Incorporated | Secure transaction system |
AU2001243365A1 (en) | 2000-03-02 | 2001-09-12 | Alarity Corporation | System and method for process protection |
JP3710671B2 (ja) | 2000-03-14 | 2005-10-26 | シャープ株式会社 | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 |
CA2341931C (en) | 2000-03-24 | 2006-05-30 | Contentguard Holdings, Inc. | System and method for protection of digital works |
US6507904B1 (en) * | 2000-03-31 | 2003-01-14 | Intel Corporation | Executing isolated mode instructions in a secure system running in privilege rings |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6921939B2 (en) * | 2000-07-20 | 2005-07-26 | Fairchild Semiconductor Corporation | Power MOSFET and method for forming same using a self-aligned body implant |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US6715057B1 (en) * | 2000-08-31 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7631160B2 (en) | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
EP1271277A3 (en) | 2001-06-26 | 2003-02-05 | Redstrike B.V. | Security system and software to prevent unauthorized use of a computing device |
US6523245B2 (en) * | 2001-07-10 | 2003-02-25 | Great Dane Limited Partnership | Automated drill and rivet machine |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
US7103771B2 (en) | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US20030126453A1 (en) | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7107460B2 (en) | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7343493B2 (en) | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7136867B1 (en) * | 2002-04-08 | 2006-11-14 | Oracle International Corporation | Metadata format for hierarchical data storage on a raw storage device |
US6895491B2 (en) * | 2002-09-26 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7389308B2 (en) * | 2003-05-30 | 2008-06-17 | Microsoft Corporation | Shadow paging |
US7310721B2 (en) * | 2003-10-30 | 2007-12-18 | Microsoft Corporation | Shadow page tables for address translation control |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7281102B1 (en) * | 2004-08-12 | 2007-10-09 | Vmware, Inc. | Restricting memory access to protect data when sharing a common address space |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
-
2005
- 2005-01-28 US US11/045,524 patent/US7395405B2/en active Active
-
2006
- 2006-01-27 EP EP06720101.2A patent/EP1856606B1/en not_active Not-in-force
- 2006-01-27 WO PCT/US2006/003587 patent/WO2006081582A2/en active Application Filing
- 2006-01-27 KR KR1020077017491A patent/KR100928353B1/ko not_active IP Right Cessation
- 2006-01-27 CN CN2006800031107A patent/CN101107593B/zh not_active Expired - Fee Related
- 2006-01-27 JP JP2007553378A patent/JP5038907B2/ja not_active Expired - Fee Related
-
2008
- 2008-05-22 US US12/154,627 patent/US7836275B2/en not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882113B (zh) * | 2009-05-05 | 2012-02-22 | 北京大学 | 一种基于客户操作系统内核代码替换的内存虚拟化方法 |
CN101957775B (zh) * | 2009-07-14 | 2016-12-14 | 英特尔公司 | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 |
CN101957775A (zh) * | 2009-07-14 | 2011-01-26 | 英特尔公司 | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 |
CN105760312B (zh) * | 2010-09-24 | 2019-03-15 | 英特尔公司 | 用于实现微页表的装置、方法和系统 |
CN105760312A (zh) * | 2010-09-24 | 2016-07-13 | 英特尔公司 | 用于实现微页表的装置、方法和系统 |
CN102662722A (zh) * | 2010-12-23 | 2012-09-12 | 韩国电子通信研究院 | 用于完全虚拟化的地址空间变换方法和设备 |
CN104081346A (zh) * | 2012-02-07 | 2014-10-01 | 英特尔公司 | 用于使用跟踪数据消除处理器间中断来支持多处理器虚拟机环境中的地址转换的方法和设备 |
CN104081346B (zh) * | 2012-02-07 | 2018-02-27 | 英特尔公司 | 用于使用跟踪数据消除处理器间中断来支持多处理器虚拟机环境中的地址转换的方法和设备 |
CN105518746B (zh) * | 2014-12-24 | 2018-12-04 | 英特尔公司 | 混合请求式图形转换表影子化 |
CN105518746A (zh) * | 2014-12-24 | 2016-04-20 | 英特尔公司 | 混合请求式图形转换表阴影化 |
CN107408077A (zh) * | 2015-03-27 | 2017-11-28 | 英特尔公司 | 存储器扫描方法和装置 |
US11080401B2 (en) | 2015-03-27 | 2021-08-03 | Intel Corporation | Memory scanning methods and apparatus |
CN107408077B (zh) * | 2015-03-27 | 2021-09-03 | 英特尔公司 | 存储器扫描方法和装置 |
US11797678B2 (en) | 2015-03-27 | 2023-10-24 | Intel Corporation | Memory scanning methods and apparatus |
Also Published As
Publication number | Publication date |
---|---|
WO2006081582A3 (en) | 2007-04-12 |
US20060174053A1 (en) | 2006-08-03 |
US20090006805A1 (en) | 2009-01-01 |
EP1856606B1 (en) | 2016-05-11 |
US7836275B2 (en) | 2010-11-16 |
KR100928353B1 (ko) | 2009-11-23 |
JP5038907B2 (ja) | 2012-10-03 |
EP1856606A2 (en) | 2007-11-21 |
KR20070090047A (ko) | 2007-09-04 |
US7395405B2 (en) | 2008-07-01 |
WO2006081582A2 (en) | 2006-08-03 |
CN101107593B (zh) | 2013-02-06 |
JP2008529176A (ja) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101107593B (zh) | 支持虚拟机环境中的地址转换的方法及装置 | |
CN100501680C (zh) | 虚拟化虚拟机系统中的物理存储器 | |
CN101814056B (zh) | 将翻译后援缓冲器同步到扩充的分页表 | |
JP5214670B2 (ja) | マルチプロセッサ仮想マシン環境においてアドレス変換をサポートする方法及び装置 | |
US11074191B2 (en) | Linear to physical address translation with support for page attributes | |
US8095771B2 (en) | Method and system for caching address translations from multiple address spaces in virtual machines | |
CN101346706B (zh) | 虚拟转换后备缓冲器 | |
US9405567B2 (en) | Method and apparatus for supporting address translation in a multiprocessor virtual machine environment using tracking data to eliminate interprocessor interrupts | |
CN102693188B (zh) | 用于在可控运行时环境中进行基于硬件的动态逸出检测的方法和装置 | |
CN101477495B (zh) | 分布式内存虚拟化技术的实现方法 | |
CN104516830A (zh) | 多阶段地址转换中的转换旁路 | |
WO2002008905A2 (en) | Emulating a memory management unit and translation look-aside buffer | |
CN103262052A (zh) | 具有共享的输入/输出的安全分区 | |
CN101957775B (zh) | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 | |
CN103262053A (zh) | 具有共享的输入/输出的安全分区 |
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: 20130206 Termination date: 20180127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |