CN1282928C - 回收地址翻译数据结构的现有字段以扩展存储器访问控制 - Google Patents

回收地址翻译数据结构的现有字段以扩展存储器访问控制 Download PDF

Info

Publication number
CN1282928C
CN1282928C CNB2003101172967A CN200310117296A CN1282928C CN 1282928 C CN1282928 C CN 1282928C CN B2003101172967 A CNB2003101172967 A CN B2003101172967A CN 200310117296 A CN200310117296 A CN 200310117296A CN 1282928 C CN1282928 C CN 1282928C
Authority
CN
China
Prior art keywords
address translation
data structure
translation data
page
subclauses
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
CNB2003101172967A
Other languages
English (en)
Other versions
CN1506847A (zh
Inventor
理查德·乌利希
吉尔伯特·奈格
埃里克·科塔-罗布尔斯
斯塔林塞尔瓦拉·杰亚辛格
阿兰·卡希
迈克尔·科祖克
史蒂文·M·贝内特
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 CN1506847A publication Critical patent/CN1506847A/zh
Application granted granted Critical
Publication of CN1282928C publication Critical patent/CN1282928C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种存储器访问控制装置和方法。在一个实施例中,当确定需要修改活动地址翻译数据结构的内容时,修改活动地址翻译数据结构中的条目,以与访客地址翻译数据结构中的对应条目保持一致。在修改期间,不用来自访客地址翻译数据结构的对应数据对活动地址翻译数据结构的条目中包括一个或多个访问控制指示符的位字段进行重写。

Description

回收地址翻译数据结构的现有字段以扩展存储器访问控制
技术领域
本发明涉及存储器访问控制,更具体地说,本发明涉及回收(reclaim)地址翻译数据结构中的现有字段以扩展对存储器访问的控制。
背景技术
计算机处理器访问系统存储器以获取或存储系统存储器中的数据。具体地说,处理器使用存储器中数据的物理地址以标识并访问数据。然而,数据存储在存储器中的物理地址并不是处理器在内部操纵期间用来索引数据的地址。相反地,根据程序指令,处理器为正在被处理的数据分配了虚拟地址。因此,存储器访问经常需要将虚拟地址翻译成物理地址。
传统的地址翻译机制一般基于翻译后援缓冲器(translation lookasidebuffer,TLB),这是一种处理器内的结构,用作以前处理过的地址翻译的高速缓存。例如,在32位Intel体系结构的处理器指令集体系结构(ISA)(以下称为IA-32 ISA)中,地址翻译由TLB和页表层级结构(page-table hierarchy)控制。被处理器的控制寄存器CR3所引用的页表层级结构是一种翻译数据结构,当允许调页时,其用于将虚拟存储器地址(在IA-32 ISA上下文中也被称作线性存储器地址)翻译成物理存储器地址。页表层级结构包括页目录(PD)、一组页表(多个PT)和多个页帧(PF)。一般地,虚拟存储器地址到物理存储器地址的翻译开始于使用虚拟地址的高20位(对4KB的页)或高10位(对4MB的页)来查找TLB。如果找到了匹配项,就将包含在TLB中的物理页帧的高位与虚拟地址的低位相连接,以形成物理地址。如果没有找到匹配项,处理器就查询页表层级结构,以确定虚拟地址到物理地址的翻译,然后就在TLB中缓存这一翻译。
PD和PT中的每个条目一般都包括各种字段,所述字段控制存储器页的可访问性。这些字段的示例包括当前(P)标志,其表示被该条目所引用的页是否有效,用户/管理者(U/S)标志,其基于特权级来控制对该条目所引用的页的访问,以及读/写(R/W)标志,基于访问类型(即读或写)来控制访问。
发明内容
本发明描述了一种方法和装置,用于回收地址翻译数据结构中的现有位,以扩展对虚拟机环境中的存储器访问的控制。
根据本发明的第一方面,提供了一种用于控制存储器访问的方法,包括:确定需要修改活动地址翻译数据结构的内容;以及在修改所述活动地址翻译数据结构中的条目以与访客地址翻译数据结构中的对应条目保持一致时,避免重写所述活动地址翻译数据结构中条目的一部分,其中,所述活动地址翻译数据结构中的条目的所述部分包括至少一个访问控制指示符并且对应于所述访客地址翻译数据结构的所述条目内由访客软件指定来操作使用的字段。
根据本发明的第二方面,提供了一种用于控制存储器访问的装置,包括:存储访客地址翻译数据结构和活动地址翻译数据结构的存储设备,所述访客地址翻译数据结构用于由访客软件将虚拟存储器地址翻译成物理存储器地址,所述活动地址翻译数据结构用于从所述访客地址翻译数据结构获得部分内容,所述部分内容排除了所述访客地址翻译数据结构中的多个条目中每一个条目内由访客软件指定来操作使用的字段;和翻译后援缓冲器,用于存储由处理器从所述活动地址翻译数据结构获得的地址翻译。
通过本发明提供的方法和装置,地址翻译数据结构中的现有字段可以多种方式而被解释和使用,而不会丧失通用性,从而扩展了对虚拟机环境中的存储器访问的控制。
附图说明
在附图中以示例性而非限制性的方式图示了本发明,其中相同的标号指向类似的元件,其中:
图1图示了虚拟机环境的一个实施例,本发明可运行于其中;
图2是虚拟TLB系统的一个实施例的方框图;
图3是以下过程的一个实施例的流程图,该过程用于在虚拟机环境中回收地址翻译数据结构中的现有字段,以扩展对存储器访问的控制;
图4是在IA-32 ISA中支持地址翻译的虚拟TLB系统的一个实施例的方框图;并且
图5图示了用于IA-32 ISA的传统页表层级结构中的页目录条目(PDE)和页表条目(PTE)的格式。
具体实施方式
在下面的描述中,为了说明的目的,给出了大量的具体细节,以提供对本发明的透彻的了解。然而,对本领域内的技术人员来说,很明显没有这些具体细节也可实施本发明。
下面的详细描述的一些部分以对计算机系统的寄存器或存储器中的数据位的操作的算法和符号表示的形式而被提供。这些算法式描述和表示是一种手段,数据处理领域内的技术人员借助这种手段可向本领域内其他技术人员最有效地表达其工作的实质。在此,并且也是一般地,算法被设想成自我一致的操作序列,可以获得预期结果。所述操作是那些需要对物理量进行物理操纵的操作。尽管未必一定如此,但是这些量一般都采用了能够被存储、传输、组合、比较或者操纵的电或磁信号的形式。主要是为了通用起见,将这些信号称为位、值、元素、符号、字符、项、数字等等经常已被证明是很方便的。
然而应该理解到,所有这些以及类似的术语都要和合适的物理量相结合,并且仅仅是应用到这些量的便捷标记。除非在下述讨论中以相反的明显形式具体地提出了,应该理解到,在整个的本发明中,使用“处理”或“计算”或“运算”或“确定”等术语的讨论可以指称计算机系统或类似的电子计算设备的动作或过程,该系统操纵被表示成计算机系统的寄存器和存储器中的物理(电子)量的数据,并将之转换成类似地被表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备中的物理量的其他数据。
在下面对实施例的具体描述中对附图做了标号,这些附图以图示的形式示出了多个可实施本发明的具体实施例。在附图中,相同的数字在几个视图中都描述基本相似的组件。用充分的细节描述了这些实施例,以使得本领域内的技术人员可实施本发明。也可应用其他实施例,并且可做出结构性、逻辑性或电气性改变,而不会偏离本发明的范围。而且应该理解到,本发明的各种实施例尽管有所不同,但未必是互相排斥的。例如,在一个实施例中描述的具体特征、结构或特性可被包括在其他实施例中。因此,下面的详细描述不应该被理解成限制性的。
图1图示了虚拟机环境100的一个实施例,本发明可运行于其中。在此实施例中,裸平台硬件116包括一个计算平台,其能够例如执行标准操作系统(OS)或虚拟机监控器(VMM),例如VMM 112。VMM 112虽然一般是以软件实现的,但也可模拟裸机接口并向更高级软件输出。这种更高级软件可包括标准或实时OS,可以是一个具有有限的操作系统功能的高度精简的操作环境,或者可以不包括传统OS工具。或者,VMM 112例如可以运行在另一个VMM中或其上。VMM及它们的特征和功能都是本领域内的技术人员所公知的,并且可以用例如软件、固件或通过各种技术的组合来实现。
平台硬件116包括处理器118和存储器120。处理器118可以是任何类型的能执行软件的处理器,例如微处理器、数字信号处理器、微控制器等等。存储器120可以是硬盘、软盘、随机访问存储器(RAM)、只读存储器(ROM)、闪存、上述设备的任意组合,或处理器118可读的任何其他类型的机器介质。存储器120可以存储用来执行本发明的方法实施例的指令。
平台硬件116可以是个人计算机(PC)、大型机、手持设备、便携式计算机、机顶盒,或任何其他计算设备。
VMM 112向其他软件(即“访客”软件,guest software)提供一个或多个虚拟机(VM)的抽象,其可向各种访客提供相同或不同的抽象。图1示出了两个虚拟机,102和114。运行在每个VM上的访客软件可以包括访客OS例如访客OS 104或106,以及各种访客软件应用程序108和110。访客OS 104和106期望访问VM 102和114中的物理资源(例如处理器寄存器、存储器和I/O设备)以及执行其他功能,所述访客OS 104或106运行在VM 102和114之上。例如,在地址翻译操作期间,访客OS期望分配物理存储器,提供免受软件应用程序(例如应用程序108或110)影响的保护以及在软件应用程序之间的保护,使用多种调页技术等等。然而,在虚拟机环境中,处理器118和VMM 112需要拥有对地址翻译操作的最终控制权,以支持对VM 102和114的正确操作,并提供免受VM 102和114影响的保护以及在VM 102和114之间的保护。在一个实施例中,提供了一种在此称为虚拟翻译后援缓冲器(TLB)的地址翻译系统,该系统在允许处理器118和VMM 112保留对地址翻译操作的最终控制权的同时,容忍并支持OS控制地址翻译的尝试。下面将更详细地描述虚拟TLB系统的一些实施例。
可被访客软件访问的资源可以被分类为“特许”或“非特许”。对特许资源,VMM 112辅助实现访客软件所需的功能,同时保留对这些特许资源的最终控制权。非特许资源不需要由VMM 112控制,并且可以被访客软件访问。
在一个实施例中,如果访客软件试图访问一个特许资源,控制权就被转移给VMM 112。响应于此,VMM 112或者允许访客软件访问该特许资源,或者模拟访客软件所需的功能,然后将控制权转移回到访客软件。在一个实施例中,VM 102或114与VMM 112之间控制权的转移通过执行一条专用指令来实现。访客软件通过这种机制的控制在此被称为VMX操作,并且,控制权从访客软件到VMM的转移在此被称为VM退出(VMexit)。在另一个实施例中,控制权在VM 102或114和VMM 112之间的转移由非指令事件启动,例如异步硬件中断或页故障。
在一个实施例中,当发生了VM退出时,保存访客软件所使用的处理器状态的多个部分,并载入VMM 112所需要的处理器状态的多个部分。依赖于处理器指令集体系结构(ISA),对处理器状态的这种保存和载入可能具有改变活动地址空间的效果。例如,在32位Intel体系结构的ISA(以下称为IA-32 ISA)中,活动地址空间可由控制寄存器中的值确定,所述值可在VM退出时被保存和恢复。
在一个实施例中,当发生从VMM 112到访客软件的转移时,VM退出时所保存的处理器状态(此状态可能已被VMM 112修改)可被恢复,并且控制权被返还给访客OS 104或106,或者访客应用程序108或110。
应该注意到,本领域内任何其他公知机制都可用来在访客软件和VMM 112之间转移控制权,而不会丧失通用性。
图2是虚拟TLB系统200的一个实施例的方框图。虚拟TLB系统200包括访客地址翻译数据结构208和虚拟TLB 202。访客地址翻译数据结构208表示访客OS会怎样把虚拟存储器地址翻译成物理存储器地址。这种地址翻译数据结构的一个示例是IA-32 ISA中使用的页表层级结构。然而,各种其他的地址翻译数据结构也可与本发明一起使用而不会丧失通用性。访客地址翻译数据结构208由访客OS管理,该OS可访问并修改访客地址翻译数据结构208中的任何条目。访客地址翻译数据结构208的一些条目包括多个字段,这些字段由软件来专门指定以用于操作使用。如图2所示,访客地址翻译数据结构208中的一个示例条目212包括软件可用字段216,其包括一个或多个位,这些位由访客软件来指定以用于操作使用(即,访客软件可出于任何所需目的在此位字段中设置值)。应该注意到,包括软件可用位字段的条目,以及包含在每个条目中的软件可用字段中的位的数目可根据ISA而有所变动。例如在IA-32 ISA的页表层级结构中,页目录和页表中的每个条目都包括3个“AVAIL”(可用)位,这些位在体系结构上被保证对于系统程序员的使用来说是可用的。结果,这些位不能被硬件所使用或解释(例如,以引起任何具体的动作或保护)。
虚拟TLB 202包括由处理器管理的物理TLB 204,以及由VMM管理的活动地址翻译数据结构206。活动地址翻译数据结构206和访客地址翻译数据结构208从以体系结构方式定义的格式(例如,IA-32格式)获得它们的格式。物理TLB 204由处理器载入从活动地址翻译数据结构206获得的地址翻译。
在一个实施例中,VMM基于访客地址翻译数据结构208而创建活动地址翻译数据结构206,然后定期修改活动地址翻译数据结构206中地一个或多个条目,以与访客地址翻译数据结构208中的相应条目保持一致。在一个实施例中,一旦接收对由访客软件启动的事件的控制权,并确定该事件的可能原因是活动地址翻译数据结构206的内容与访客地址翻译数据结构的内容之间不一致,VMM就修改活动地址翻译数据结构206。例如,这一事件可以是访客OS操纵TLB 204的尝试(例如,访客软件无效TLB 204中所缓存的地址翻译的请求),或由处理器响应于由访客软件执行的操作而产生的页故障(例如,响应于访客软件写一个存储器区域的请求而产生的页故障,该区域在活动地址翻译数据结构中被标记为只读,而在访客地址翻译数据结构中被标记为可写)。
在修改活动地址翻译数据结构206的内容时,VMM避免将软件可用位字段216从访客地址翻译数据结构208拷贝到活动地址翻译数据结构206,因为位字段216是由访客软件内部所使用,并且对VMM没有任何意义。相应地,因为包含在活动地址翻译数据结构206的条目中的位字段216不会被来自访客地址翻译数据结构208的数据所重写(overwrite),所以VMM能够回收这一位字段以为自己所用。在一个实施例中,VMM使用活动地址翻译数据结构206的条目(例如条目210)中的位字段来存储访问控制指示符214,所述访问控制指示符控制由条目210所引用的存储器区域的可访问性。访问控制指示符的示例及其在虚拟机环境中的用途将在下面更详细地进行描述。
图3是过程300的一个实施例的流程图,该过程用于在虚拟机环境中回收地址翻译数据结构中的现有字段,以扩展对存储器访问的控制。所述过程可以由处理逻辑来执行,所述处理逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上的软件)或二者的组合。
参考图3,过程300开始于处理逻辑设置在活动地址翻译数据结构的一个或多个条目中的访问控制指示符(处理方框302)。当在活动地址翻译数据结构中创建条目时,处理逻辑设置访问控制指示符。在一个实施例中,当处理逻辑基于访客地址翻译数据结构来创建整个活动地址翻译数据结构时创建条目,其中访客OS使用所述访客地址翻译数据结构用于地址翻译操作。或者,在一个新条目被加入到访客地址翻译数据结构后,处理逻辑在活动地址翻译数据结构中创建一个条目。在一个实施例中,一旦设置访问控制指示符,处理逻辑就可以在任何时候根据需要修改它们。
然后,在处理方框304,处理逻辑检测向VMM的控制权转移,所述转移是由一个由访客软件启动的事件(例如,访客软件操纵TLB的尝试,或响应于访客软件执行的操作而产生的页故障)所引起的,并且评估此事件。基于这一评估,处理逻辑确定此事件是否需要修改活动地址翻译数据结构(判定框306)。例如,这一确定可依赖于页故障是因为活动地址翻译数据结构的内容与访客地址翻译数据结构的内容不一致,还是因为其他的原因而产生的。
如果在决定框306做出的确定是否定的,过程300就结束。或者,如果在决定框306做出的确定是肯定的,那么,在修改活动地址翻译数据结构的其他内容以与访客地址翻译数据结构的内容匹配时,处理逻辑避免重写访问控制指示符(处理方框308)。结果,在地址翻译操作期间,在活动地址翻译数据结构中维护访问控制指示符,以为处理器所用。
下面将参考IA-32 ISA的具体特征来描述访问控制指示符的示例功能。然而,应该注意到,访问控制指示符可用于下面描述的功能之外的各种目的,并和IA-32处理器之外的各种处理器一起使用。
图4是支持在IA-32 ISA中的地址翻译的虚拟TLB系统400的一个实施例的方框图。系统400包括虚拟TLB 404和物理TLB 408,其中虚拟TLB 404包含由活动页表层级结构406表示的活动地址翻译数据结构。系统400还包括由访客页表层级结构402表示的访客地址翻译数据结构。活动页表层级结构406和访客页表层级结构402从以IA-32体系结构方式定义的格式获得它们的格式。访客页表层级结构402的条目具有根据IA-32ISA的传统格式。
图5图示了用于IA-32 ISA的传统页表层级结构中的页目录条目(PDE)的格式502和页表条目(PTE)的格式(504)。每个PDE和PTE都包括一组位,控制存储器页的可访问性。例如,这些位包括当前(P)标志516或510,表示被该条目所引用的页是否有效,用户/管理者(U/S)标志520或514,基于特权级来控制对该条目所引用的页的访问,以及读/写(R/W)标志518或512,基于访问类型(即读或写)来控制访问。每个PDE和PTE还包括三个“AVAIL”位506和508。AVAIL位506和508在体系结构上被保证对于系统程序员的使用来说是可用的。即,软件可出于任何所需目的而在AVAIL位中置入多个值(例如,为了记录与给定页相关的信息)。结果,硬件就不能出于任何其它目的(例如,新的页级别的保护)而解释或使用这些位。因此,如果这些字段不为软件所使用,它们就“浪费”了。
回到图4,每个PDE和PTE中的AVAIL位都由VMM设置,并且在修改活动页表层级结构406的内容时不会被来自访客页表层级结构402的数据所重写。在一个实施例中,在创建活动页表层级结构406或新条目被加入到活动页表层级结构406时,AVAIL位被创建。
在一个实施例中,活动页表层级结构406中的所有条目最初都被标记为无效(使用每个PDE中的P标志516和每个PTE中的P标志510),以模拟TLB没有条目时TLB的初始化状态。随后,当访客软件向处理器提供虚拟地址时,处理器在活动页表层级结构406中只发现无效条目,并且产生页故障。页故障将控制权从访客OS转移到VMM。然后,VMM将相应条目从访客页表层级结构402拷贝到活动页表层级结构406,重填活动页表层级结构406。在重填期间,访客页表层级结构402中的AVAIL位被忽略(即,AVAIL位没有被拷贝到活动页表层级结构406)。
允许访客软件自由修改访客页表层级结构402,包括改变虚拟到物理映射、许可权等等。相应地,活动页表层级结构406可能不总是与访客页表层级结构402保持一致。即,活动页表层级结构406可能会过时,例如,它可能允许对其条目过多的访问,提供错误的虚拟到物理地址映射等等。当因为层级结构402和406之间的不一致而产生问题时,访客OS就向物理TLB 408发出指令416中的一条指令。这些指令导致控制权从访客OS向VMM的转移。VMM然后将确定该指令的起因,并修改活动页表层级结构406的内容(例如,从活动页表层级结构406中去除由访客软件在所发出的指令中引用的条目)。在修改期间,访客页表层级结构402中的AVAIL位不被拷贝到活动页表层级结构406。
因为活动页表层级结构406中的AVAIL位未被改变,因此它们可被VMM回收。一旦被回收,AVAIL位可以各种方式而被使用。例如,AVAIL位中的一位可以是访客/主机(“G/H”)访问位,其控制访客软件对页的访问。即,如果活动PTE中的“G/H”位被清除时,那么只有当VMM(“主机”)正在运行时,处理器才可允许对由该PTE引用的页进行访问。如果设置了“G/H”位,那么当VMM或访客软件正在运行时,处理器可允许对该页的访问。
“G/H”位可被用来解决在VMM和访客OS之间的地址空间冲突。在当前的IA-32 ISA中,地址空间冲突一般是因为下述原因而产生,即现有的处理器(例如IA-32微处理器)不允许VMM接收对由访客OS启动的事件的控制权(例如,访客OS访问特许硬件资源的尝试),除非VMM代码和/或数据结构的一部分位于与访客OS相同的虚拟地址空间中。然而,因为访客OS预计VMM代码和/或数据结构并不驻留在相同的地址空间中,因此,它可能尝试去访问此地址空间中一个由VMM占据的区域,从而导致在访客OS和VMM之间的地址空间冲突。这一冲突可能导致VMM或访客OS执行的操作的异常终止。
“G/H”位防止在访客OS和VMM之间发生地址空间冲突。具体地说,利用“G/H”位,VMM在访客OS的虚拟地址空间中发现一个位置,以映射它的代码和数据结构,并确保对应的“G/H”位被清除,以保护VMM代码和数据结构不被访客OS所访问。当访客OS访问由VMM占据的地址空间的尝试被检测到时,VMM代码和数据结构被重映射到访客OS的虚拟地址空间中一个未使用的区域,并且访客OS能访问所需的地址空间。
“G/H”位也可被用来简化一些ISA中的地址切换,所述ISA不需要VMM代码和/或数据结构的一部分驻留在访客OS地址空间中以接收对由访客OS启动的事件的控制权。例如,当VMX操作控制访客软件时,在向VMM转移控制权之前,VM退出会引发完全的地址空间切换,因此不需要使VMM代码和/或数据结构的一部分驻留在访客OS地址空间中。然而,对每次VM退出都执行完全的地址切换,其代价是很高的。相应地,如上所述,可通过在访客OS地址空间中运行VMM代码和/或数据结构的一部分,并且使用“G/H”位来保护VMM代码和数据结构不被访客OS所访问,从而优化这一切换的执行。
在另一个实施例中,AVAIL位中的两位可以由处理器解释为执行特权“X”和读特权“R”位,而现有的“R/W”位可被重新解释位写特权“W”位。结果,可独立地控制不同类型的页访问。例如,当X位被清除时,处理器可以禁止执行来自该页的任何指令,并且,当X位被设置时,允许执行来自该页的指令。类似地,“R”位可控制从该页的数据读访问,而“W”位可控制对该页的写访问。
可独立设置的“R”、“W”和“X”位的组合和动态二进制翻译器一起使用可能是有益的,其中所述二进制翻译器修改指令二进制码以用于各种目的,例如指令集模拟、地址跟踪等等。例如,“R”、“W”和“X”位的组合可简化IA-32处理器上的动态二进制翻译器对自修改代码(self-modifying code,SMC)和自检查代码(self-examining code,SEC)的处理。即,动态二进制翻译器可将一个保持有已翻译指令的页上的“R”、“W”和“X”位的组合设置成001,从而允许处理器执行所述代码,同时检测代码修改或读该代码的指令字节的尝试(该指令字节可能与代码的初始指令有所不同,因为二进制翻译器的翻译或打补丁动作)。对于同时保持有指令和数据的页来说,二进制翻译器可以适当地设置“R”和“W”位,但保持“X”位被设置为0,以使得代码可直接访问该页上的数据,但不能执行该页上的指令。执行该页上的指令的尝试会导致向VMM的转移,然后这一转移可模拟引发故障的指令。
“R”、“W”和“X”位的组合还可允许对包含嵌入式秘密密钥或算法的代码的安全执行。即,VMM可将包含嵌入式秘密密钥或算法的代码映射到一个页上,该页由其“R”、“W”和“X”位的组合被设置成001的条目所引用。结果,可调用并执行所述安全代码,同时,嵌入式秘密密钥或算法可被保护起来,不被运行在相同地址空间中的其他代码所读取或修改。
“R”、“W”和“X”位的组合还可用来辅助调试操作。具体地说,保持有数据的当前页可被VMM驻留调试器进行映射,其“R”、“W”和“X”位的组合被设置成010或110。利用这些保护,调试器可立即确定有问题的代码已何时不经意地开始执行数据,好像它就是指令一样。
在另一个实施例中,AVAIL位中的一位可与现有的“U/S”位组合起来,以表示一个给定的页是否可被运行在某个特权级的代码访问。VMM然后可以使用两位来指定可访问给定页的最高特权级。例如,值00可以表示只有运行在特权级0的代码可访问给定的页,值01可表示运行在特权级0或1的代码可访问该页,值10可表示运行在特权级0、1或2的代码可访问该页,而值11可表示运行在任何特权级的代码都可访问该页。使用两位来控制访问代码的特权级提供了更大的灵活性,例如使得可以在特权级1运行设备驱动器,而在特权级0运行OS内核的其余部分,同时使用页级别的保护来守护第0环内核,以防止破坏性的或出故障的第1环设备驱动器的操作。使用现有的“U/S”位不可能得到这些页级别的保护,因为现有的“U/S”位将第0、1、2环集群到一起作为管理者(S)特权级,而将第3环指定为用户(U)特权级。
上面参考了“G/H”位,可独立设置的“R”、“W”和“X”位,以及“U/S”位与一个AVAIL位的组合而描述的功能可通过重定义3个现有的“P”、“R/W”和“U/S”位并将它们与所回收的3个AVAIL位组合起来而同时实现。具体地说,所得到的6个位中的3个可被用作可独立设置的“R”、“W”和“X”位,其余三个位中的两个可被用来表示代码具有访问权限的最高环,而最后一位可被用作“G/H”位。对于这些位的这一解释,如果“R”、“W”和“X”位的组合具有设置000,则该页可被认为是“不是当前的”。
应该注意到,除上述方式之外,活动地址翻译数据结构中的现有字段可以多种方式而被解释和使用,而不会丧失通用性。
因此,上面已经描述了一种方法和装置,用于回收地址翻译数据结构中的现有字段。应该理解到,上述描述是描述性的而非限制性的。对本领域内的技术人员来说,一旦阅读和理解了上述内容,许多其他实施例也是很清楚的。

Claims (20)

1.一种用于控制存储器访问的方法,包括:
确定需要修改活动地址翻译数据结构的内容;以及
在修改所述活动地址翻译数据结构中的条目以与访客地址翻译数据结构中的对应条目保持一致时,避免重写所述活动地址翻译数据结构中条目的一部分,其中,所述活动地址翻译数据结构中的条目的所述部分包括至少一个访问控制指示符并且对应于所述访客地址翻译数据结构的所述条目内由访客软件指定来操作使用的字段。
2.根据权利要求1的方法,其中,所述活动地址翻译数据结构的所述内容被处理器用来在翻译后援缓冲器中缓存地址翻译。
3.根据权利要求1的方法,其中,所述访客地址翻译数据结构被访客软件用于地址翻译操作。
4.根据权利要求1的方法,其中,由虚拟机监控器管理所述活动地址翻译数据结构。
5.根据权利要求1的方法,还包括:
将至少一个访问控制指示符设置成特定值。
6.根据权利要求1的方法,其中,所述活动地址翻译数据结构是活动页表层级结构。
7.根据权利要求6的方法,其中:
所述活动地址翻译数据结构中的所述条目是页表条目和页目录条目中的任何之一;并且
所述至少一个访问控制指示符是所述条目中的至少一个软件可用位。
8.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括访客主机指示符,用于控制访客软件对所述页表层级结构中的对应页的访问。
9.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括:执行特权指示符,用于控制对来自所述页表层级结构中的对应页的指令的执行;以及读特权指示符,用于控制对所述页表层级结构中的所述对应页的读访问。
10.根据权利要求9的方法,其中,所述至少一个访问控制指示符中的读/写位被重解释为写特权指示符,用于控制对所述页表层级结构中的所述对应页的写访问。
11.根据权利要求6的方法,其中,所述至少一个访问控制指示符包括特权级访问指示符,用于控制由运行在特定特权级上的代码对所述页表层级结构中的对应页的访问。
12.一种用于控制存储器访问的装置,包括:
存储访客地址翻译数据结构和活动地址翻译数据结构的存储设备,所述访客地址翻译数据结构用于由访客软件将虚拟存储器地址翻译成物理存储器地址,所述活动地址翻译数据结构用于从所述访客地址翻译数据结构获得部分内容,所述部分内容排除了所述访客地址翻译数据结构中的多个条目中每一个条目内由访客软件指定来操作使用的字段;和
翻译后援缓冲器,用于存储由处理器从所述活动地址翻译数据结构获得的地址翻译。
13.根据权利要求12的装置,其中,由虚拟机监控器管理所述活动地址翻译数据结构。
14.根据权利要求13的装置,其中,所述虚拟机监控器将所述活动地址翻译数据结构的条目中的至少一个访问控制指示符设置为特定值。
15.根据权利要求12的装置,其中,所述活动地址翻译数据结构是活动页表层级结构。
16.根据权利要求15的装置,其中:
所述活动地址翻译数据结构中的所述条目是页表条目和页目录条目中的任何之一;并且
所述至少一个访问控制指示符是所述条目中的至少一个软件可用位。
17.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括访客主机指示符,用于控制访客软件对所述页表层级结构中的对应页的访问。
18.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括:执行特权指示符,用于控制对来自所述页表层级结构中的对应页的指令的执行;以及读特权指示符,用于控制对所述页表层级结构中的所述对应页的读访问。
19.根据权利要求18的装置,其中,所述至少一个访问控制指示符中的读/写位被重解释为写特权指示符,用于控制对所述页表层级结构中的所述对应页的写访问。
20.根据权利要求15的装置,其中,所述活动地址翻译数据结构的条目中的所述至少一个访问控制指示符包括特权级访问指示符,用于控制由运行在特定特权级上的代码对所述页表层级结构中的对应页的访问。
CNB2003101172967A 2002-12-12 2003-12-10 回收地址翻译数据结构的现有字段以扩展存储器访问控制 Expired - Fee Related CN1282928C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/319,900 2002-12-12
US10/319,900 US7073042B2 (en) 2002-12-12 2002-12-12 Reclaiming existing fields in address translation data structures to extend control over memory accesses

Publications (2)

Publication Number Publication Date
CN1506847A CN1506847A (zh) 2004-06-23
CN1282928C true CN1282928C (zh) 2006-11-01

Family

ID=32506732

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101172967A Expired - Fee Related CN1282928C (zh) 2002-12-12 2003-12-10 回收地址翻译数据结构的现有字段以扩展存储器访问控制

Country Status (3)

Country Link
US (1) US7073042B2 (zh)
CN (1) CN1282928C (zh)
DE (1) DE10357804B4 (zh)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7111145B1 (en) * 2003-03-25 2006-09-19 Vmware, Inc. TLB miss fault handler and method for accessing multiple page tables
US7111146B1 (en) * 2003-06-27 2006-09-19 Transmeta Corporation Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US7711931B2 (en) * 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
US7849297B2 (en) * 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7870553B2 (en) * 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7418585B2 (en) * 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7610473B2 (en) * 2003-08-28 2009-10-27 Mips Technologies, Inc. Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
US7836450B2 (en) 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7222221B1 (en) * 2004-02-06 2007-05-22 Vmware, Inc. Maintaining coherency of derived data in a computer system
US7562179B2 (en) 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8522253B1 (en) 2005-03-31 2013-08-27 Guillermo Rozas Hardware support for virtual machine and operating system context switching in translation lookaside buffers and virtually tagged caches
US20070234330A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation Prevention of executable code modification
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
US8370559B2 (en) * 2007-09-28 2013-02-05 Intel Corporation Executing a protected device model in a virtual machine
US8307360B2 (en) * 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
US8095773B2 (en) * 2008-02-26 2012-01-10 International Business Machines Corporation Dynamic address translation with translation exception qualifier
US8667504B2 (en) 2008-06-20 2014-03-04 Netapp, Inc. System and method for achieving high performance data flow among user space processes in storage system
US8689349B2 (en) 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection
EP2416251B1 (en) * 2010-08-06 2013-01-02 Alcatel Lucent A method of managing computer memory, corresponding computer program product, and data storage device therefor
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
KR101966712B1 (ko) 2011-03-25 2019-04-09 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
KR101639853B1 (ko) 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
US8700879B2 (en) * 2011-08-31 2014-04-15 Micron Technology, Inc. Concurrent memory operations
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US9152570B2 (en) * 2012-02-27 2015-10-06 Vmware, Inc. System and method for supporting finer-grained copy-on-write page sizes
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9251088B2 (en) * 2013-10-30 2016-02-02 Globalfoundries Inc. Mechanisms for eliminating a race condition between a hypervisor-performed emulation process requiring a translation operation and a concurrent translation table entry invalidation
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
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
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
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
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
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
US10713177B2 (en) * 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10489304B2 (en) * 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10467159B2 (en) 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write
US10613989B2 (en) 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10534719B2 (en) 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
CN109710267B (zh) * 2017-10-25 2022-02-08 康烁 基于二进制翻译自修改代码检测方法和装置
US10884850B2 (en) 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
US11113094B1 (en) 2019-08-28 2021-09-07 Parallels International Gmbh Physical memory management for virtual machines

Family Cites Families (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
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 仮想計算機制御方式
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
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
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
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
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
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
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
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
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
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
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エレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
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
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
US5757604A (en) 1996-06-27 1998-05-26 Raychem Corporation Surge arrester having grooved and ridged terminals
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
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
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
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
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
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
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
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
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
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
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
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
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
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
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
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
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
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
US6275933B1 (en) * 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
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
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
WO2001063567A2 (en) * 2000-02-25 2001-08-30 Identix Incorporated Secure transaction system
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
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
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Also Published As

Publication number Publication date
DE10357804B4 (de) 2008-11-13
US7073042B2 (en) 2006-07-04
DE10357804A1 (de) 2004-07-08
CN1506847A (zh) 2004-06-23
US20040117593A1 (en) 2004-06-17

Similar Documents

Publication Publication Date Title
CN1282928C (zh) 回收地址翻译数据结构的现有字段以扩展存储器访问控制
Gandhi et al. Agile paging: Exceeding the best of nested and shadow paging
US9430402B2 (en) System and method for providing stealth memory
US7089377B1 (en) Virtualization system for computers with a region-based memory architecture
EP1131721B1 (en) Memory management unit for java environment computers and method therefor
JP6764485B2 (ja) ページ・フォールト解決法
US8316211B2 (en) Generating multiple address space identifiers per virtual machine to switch between protected micro-contexts
US8560806B2 (en) Using a multiple stage memory address translation structure to manage protected micro-contexts
CN104516830A (zh) 多阶段地址转换中的转换旁路
US8549254B2 (en) Using a translation lookaside buffer in a multiple stage memory address translation structure to manage protected microcontexts
US7506096B1 (en) Memory segment emulation model for virtual machine
US20090119089A1 (en) Method, apparatus and full-system simulator for speeding mmu simulation
CN103460179A (zh) 用于透明地对应用程序进行插桩的方法和设备
CN104516833A (zh) 用于多个顺序地址转换的合并的tlb结构
US20020046305A1 (en) Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables
Gandhi Efficient memory virtualization
EP3226143B1 (en) Method and apparatus for performing protected walk based shadow paging
US11609863B2 (en) Capability write address tracking
KR102605793B1 (ko) 자격들의 이용을 관리하는 장치 및 방법
CN1991808A (zh) 用于访客访问存储器映射的设备的方法和装置
US7996833B2 (en) Method and system for replacing instructions and instruction blocks in computer code
Yassour et al. On the DMA mapping problem in direct device assignment
CN112639750B (zh) 用于控制存储器存取的装置及方法
US20230236925A1 (en) Tag checking apparatus and method
JP2021512400A (ja) メモリ・アクセスにおける保護タグ・チェックの制御

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1066071

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1066071

Country of ref document: HK

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

Granted publication date: 20061101

Termination date: 20131210