[go: up one dir, main page]

CN1252597C - Control access to multiple independent memories in one independent execution environment - Google Patents

Control access to multiple independent memories in one independent execution environment Download PDF

Info

Publication number
CN1252597C
CN1252597C CNB018158838A CN01815883A CN1252597C CN 1252597 C CN1252597 C CN 1252597C CN B018158838 A CNB018158838 A CN B018158838A CN 01815883 A CN01815883 A CN 01815883A CN 1252597 C CN1252597 C CN 1252597C
Authority
CN
China
Prior art keywords
page
access
independent
processor
storer
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 - Lifetime
Application number
CNB018158838A
Other languages
Chinese (zh)
Other versions
CN1459059A (en
Inventor
R·戈利弗
J·苏顿二世
D·林
S·塔卡
G·奈格尔
F·麦基恩
H·赫尔伯特
K·雷内里斯
C·埃利森
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
Priority claimed from US09/618,738 external-priority patent/US6678825B1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1459059A publication Critical patent/CN1459059A/en
Application granted granted Critical
Publication of CN1252597C publication Critical patent/CN1252597C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means

Landscapes

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

Abstract

The present invention provides a method, apparatus and system for controlling memory access to multiple independent memory regions in independent execution environments. The page manager is used to distribute a plurality of pages to a plurality of different areas of the memory, respectively. The memory is divided into a non-independent area and an independent area. The page manager is located in a separate area of memory. In addition, the memory ownership page table describes the attributes of each page in memory and is located in a separate region of memory. The page manager assigns a separate attribute to a page if it is distributed to a separate area of memory. On the other hand, if a page is distributed to a non-independent area of memory, the page manager assigns it a non-independent attribute. The memory ownership page table records the attributes of each page. In one embodiment, a processor having a normal execution mode and a stand-alone execution mode generates an access transaction. The access transaction is configured with a configuration store containing information relating to pages and access information. The access checking circuit coupled to the configuration settings and the access information generates an access grant signal if the access transaction is valid.

Description

在一个独立执行环境中控制对多个独立存储器的访问Control access to multiple independent memories in one independent execution environment

背景background

发明领域field of invention

本发明涉及微处理器。尤其涉及处理器安全。This invention relates to microprocessors. Especially related to processor security.

相关技术的描述Description of related technologies

微处理器以及通信技术的发展已经为超出传统商业经营途径的应用开发出了很多机会。电子商务(E-commerce)以及企业对企业的电子商务(B2B)事务正在变得流行起来并且正在以不断增长的速度传遍全球市场。不幸的是,尽管现代微处理器系统向用户提供了方便且有效的商业经营、通信和交易方法,但它们也容易受到肆无忌惮的攻击。这种攻击的例子包括病毒、侵入、违反安全性以及窜改等,可以举出很多这样的例子。因此计算机安全变得越来越重要,以保护计算机系统的完整并提升用户的信用值。Advances in microprocessors and communications technology have opened up many opportunities for applications that go beyond traditional ways of doing business. Electronic commerce (E-commerce) and business-to-business (B2B) transactions are becoming popular and spreading across the global market at an ever-increasing rate. Unfortunately, while modern microprocessor systems provide users with convenient and efficient methods of doing business, communicating and transacting, they are also vulnerable to unscrupulous attacks. Examples of such attacks include viruses, intrusions, security breaches, and tampering, the list goes on. Therefore, computer security is becoming more and more important to protect the integrity of computer systems and enhance the credit value of users.

攻击导致的威胁可以有多种形式。一种由黑客在远程启动的入侵性攻击可以破坏与几千甚至几百完个用户相连的系统的正常运转。一个病毒程序可能破坏单用户平台的代码和/或数据。The threat posed by an attack can take many forms. An invasive attack initiated remotely by a hacker can disrupt the normal operation of a system connected to thousands or even hundreds of users. A virus program can destroy code and/or data on a single-user platform.

现有的保护系统免受攻击的技术有很多缺陷。反病毒程序只能扫描和检测已知病毒。安全协处理器或使用加密或其它安全技术的智能卡在速度性能、存储容量和适应性上有一定的局限性。此外,重新设计操作系统会导致软件兼容性问题并且需要极大的开发投资。Existing techniques for protecting systems from attacks have many flaws. Antivirus programs can only scan and detect known viruses. Security coprocessors or smart cards that use encryption or other security techniques have limitations in speed performance, storage capacity, and adaptability. Furthermore, redesigning the operating system can cause software compatibility issues and require significant development investment.

附图概述Figure overview

从下面对本发明的详细描述可以清楚地看到本发明的特性和优点:The characteristics and advantages of the present invention will be clearly seen from the following detailed description of the invention:

图1A是一个图,依照本发明的一个实施方案描述一种操作系统。Figure 1A is a diagram depicting an operating system according to one embodiment of the present invention.

图1B是一个图,依照本发明的一种实施方案描述操作系统和处理器的不同单元以及单个连续的独立存储器的可访问性。Figure 1B is a diagram depicting the accessibility of different elements of the operating system and processor and a single contiguous independent memory according to one embodiment of the present invention.

图1C是和图1B类似的图,依照本发明的一种实施方案描述操作系统和处理器的不同单元,尤其是多个独立的存储区域和多个非独立的存储区域的可访问性。1C is a diagram similar to FIG. 1B depicting the accessibility of different elements of the operating system and processor, particularly multiple independent memory areas and multiple non-independent memory areas, according to one embodiment of the present invention.

图1D是一个流程图,依照本发明的一种实施方案描述为独立的执行实体分发存储器页面的方法。Figure 1D is a flowchart illustrating a method of distributing memory pages to individual execution entities in accordance with one embodiment of the present invention.

图1E是一个图,依照本发明的一种实施方案描述描述存储器所有权页表和转换虚地址为物理地址的方法。Figure 1E is a diagram depicting a method for describing memory ownership page tables and converting virtual addresses to physical addresses, according to one embodiment of the present invention.

图1F是一个图,描述在其中实践本发明的一种实施方案的计算机系统。Figure IF is a diagram depicting a computer system in which one embodiment of the present invention is practiced.

图2A是一个图,依照本发明的一种实施方案描述图1F中所示的独立执行电路。FIG. 2A is a diagram depicting the stand-alone implementation circuit shown in FIG. 1F according to one embodiment of the present invention.

图2B是一个图,依照本发明的一种实施方案描述图2A中的访问管理器。Figure 2B is a diagram illustrating the access manager of Figure 2A, according to one embodiment of the present invention.

图3A是一个图,依照本发明的一种实施方案描述访问检查。Figure 3A is a diagram illustrating access checks according to one embodiment of the present invention.

图4是一个流程图,依照本发明的一种实施方案描述为独立执行产生访问许可信号的方法。FIG. 4 is a flowchart illustrating a method for generating an access grant signal for a stand-alone execution, according to one embodiment of the present invention.

图5是一个流程图,依照本发明的一种实施方案描述为独立执行管理进程和线程操作的方法。Figure 5 is a flow chart depicting a method for managing process and thread operations for independent execution, according to one embodiment of the present invention.

图6是一个图,依照本发明的一种实施方案描述图1F中所示的存储控制器中心(MCH)中的独立区域访问控制。FIG. 6 is a diagram depicting individual region access control in the memory controller hub (MCH) shown in FIG. 1F according to one embodiment of the present invention.

图7是一个图,依照本发明的一种实施方案描述图6中所示的MCH访问检查电路。FIG. 7 is a diagram illustrating the MCH access check circuit shown in FIG. 6 according to one embodiment of the present invention.

图8是一个流程图,依照本发明的一种实施方案描述为MCH的独立执行产生访问许可信号的方法。FIG. 8 is a flowchart illustrating a method of generating an access grant signal for independent execution of the MCH, according to one embodiment of the present invention.

描述describe

本发明是一种控制对独立执行环境中多个独立存储器的存储访问的方法、设备和系统。用一个页面管理器来分别分发多个页面到多不同的存储器区域。存储器被分为非独立区域和独立区域。页面管理器位于存储器的独立区域。此外,存储器所有权页表描述存储器的每个页面并且也位于存储器的独立区域中。如果一个页面被分配到存储器的一个独立区域就由页面管理器赋予该页面独立属性。另一方面,如果一个页面被分配到存储器的一个非独立区域就由页面管理器赋予该页面非独立属性。存储器所有权页表记录每个页面的属性。The present invention is a method, device and system for controlling storage access to multiple independent memories in an independent execution environment. A page manager is used to distribute multiple pages to different memory regions respectively. Memory is divided into dependent and independent areas. The page manager resides in a separate area of memory. In addition, a memory ownership page table describes each page of memory and is also located in a separate area of memory. If a page is allocated to a separate area of memory, the page manager assigns the page separate attribute. On the other hand, if a page is allocated to a non-isolated area of memory, the page manager assigns the non-isolated attribute to the page. The memory ownership page table records the attributes of each page.

在一种实施方案中,有正常执行模式和独立执行模式的处理器产生一个访问事务。用包含配置设置的配置存储区来配置访问事务。访问事务包括像要访问的存储物理地址这样的访问信息。配置设置提供该访问事务中涉及的存储器页面的有关信息。配置设置包括定义该页面为独立或非独立的页面属性以及当处理器配置成独立模式时建立执行模式字。在一种实施方案中,执行模式字是表示处理器是否是独立执行模式的单一位。与配置存储区耦合的访问检查电路用配置设置和访问信息中的至少一种检查访问事务。In one embodiment, a processor having a normal execution mode and an independent execution mode generates an access transaction. Configure access transactions with a configuration store containing configuration settings. An access transaction includes access information like the physical address of storage to be accessed. The configuration settings provide information about the memory pages involved in the access transaction. Configuration settings include page attributes that define whether the page is standalone or non-standalone and establish the execution mode word when the processor is configured in standalone mode. In one embodiment, the execution mode word is a single bit indicating whether the processor is in independent execution mode. Access checking circuitry coupled to the configuration storage area checks access transactions with at least one of configuration settings and access information.

在一种实施方案中,访问检查电路包括一个TLB访问检查电路。如果访问事务有效TLB访问检查电路产生访问许可信号。尤其是在页面属性被设置为独立并且执行模式字信号建立时,TLB访问检查电路产生到存储器独立区域的访问许可信号。因此,当处理器请求存储器独立区域的一个物理地址时,仅在处理器以独立执行模式运行且与该物理地址相关的页面的属性被设置为独立时,才会允许该访问事务。In one embodiment, the access checking circuit includes a TLB access checking circuit. If the access transaction is valid, the TLB access check circuit generates an access permission signal. Especially when the page attribute is set to independent and the execution mode word signal is established, the TLB access checking circuit generates an access permission signal to the independent area of the memory. Therefore, when a processor requests a physical address in an isolated region of memory, the access transaction will only be allowed if the processor is running in independent execution mode and the attribute of the page associated with the physical address is set to independent.

在下面的描述中,为方便说明起见,阐述了大量细节以提供对本发明的透彻理解。但是,本领域的技术人员来说应该能够理解并不需要用这些明确的细节来实践本发明。在其它实例中,以框图形式描述了从所周知的电子设备和电路以免模糊本发明。In the following description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that these specific details are not required to practice the invention. In other instances, well-known electronic devices and circuits are described in block diagram form in order not to obscure the present invention.

体系结构总览Architecture overview

在计算机系统或平台中提供安全性的一个原则是独立执行体系结构的概念。独立执行体系结构包括与计算机系统或平台的操作系统直接或间接互连的硬件和软件部件的逻辑和物理定义。操作系统和处理器对应于多种操作模式可以有多级结构,称为环(Ring)。一个环是为在操作系统中执行特定任务而设计的硬件和软件部件的一个划分。划分通常是基于优先度或优先级,即改变平台的能力。例如,环-0是最内层的环,位于整个体系的最高级。环-0包括最关键、优先级最高的部件。另外,环-0中的模块还可以访问较低优先级的数据,但反之则不行。环-3是最外层的环,位于整个体系的最低级。环-3通常包括最低优先级的用户或应用程序。环-1和环-2表示中间的环,其安全和/或保护级别递减。One principle of providing security in a computer system or platform is the concept of independent execution architecture. Execution-independent architecture includes the logical and physical definition of hardware and software components interconnected directly or indirectly with the operating system of a computer system or platform. Operating systems and processors can have multi-level structures corresponding to various operating modes, which are called rings. A ring is a division of hardware and software components designed to perform specific tasks in an operating system. Segmentation is usually based on priority or prioritization, the ability to change platforms. For example, Ring-0 is the innermost ring and is at the highest level of the entire hierarchy. Ring-0 includes the most critical and highest priority components. Additionally, modules in ring-0 can also access lower priority data, but not vice versa. Ring-3 is the outermost ring, located at the lowest level of the entire system. Ring-3 typically includes the lowest priority users or applications. Ring-1 and Ring-2 represent intermediate rings with decreasing levels of security and/or protection.

图1A是依照本发明描述逻辑运行体系50的图。逻辑运行结构50是对操作系统部件和处理器的抽象。逻辑操作体系结构50包括环-010、环-1 20、环-2 30、环-3 40和处理器核心装载器52。处理器核心装载器52是处理器执行实例(PE)管理器。PE管理器用于处理和/或管理处理器执行实体,随后将对处理器执行实体进行论述。逻辑运行体系50有两种运行模式:正常执行模式和独立执行模式。逻辑运行体系中的每个环都能够以两种模式运行。处理器核心装载器52只能以独立执行模式运行。FIG. 1A is a diagram depicting a logic execution architecture 50 in accordance with the present invention. Logical execution structure 50 is an abstraction of operating system components and processors. Logical operating architecture 50 includes ring-0 10, ring-1 20, ring-2 30, ring-3 40 and processor core loader 52. Processor core loader 52 is a processor execution instance (PE) manager. The PE manager is used to process and/or manage processor execution entities, which will be discussed later. The logic operation system 50 has two operation modes: normal execution mode and independent execution mode. Each ring in the logical operating system can operate in two modes. Processor core loader 52 can only run in standalone execution mode.

环-0 10包括两个部分:正常执行环-0 11和独立执行环-0 15。正常执行环-0 11包括对操作系统非常关键的软件模块,通常称为内核。这些软件模块包括主操作系统(例如,内核)12、软件驱动13和硬件驱动14。独立执行环-0 15包括操作系统(OS)核心16和处理器核心18。OS核心16和处理器核心18分别是OS执行实体(OSE)和处理器执行实体(PE)的实例。OSE和PE是在与独立区域和独立执行模式相关的受保护环境中运行的执行实体的一部分。处理器核心装载器52是建立在系统中的一块芯片组上的受保护的自举装载器并负责从处理器或芯片组装载处理器核心18到独立区域,后面将讨论独立区域。Ring-0 10 includes two parts: normal execution ring-0 11 and independent execution ring-0 15. Normal execution ring-0 11 includes software modules that are critical to the operating system, often called the kernel. These software modules include a main operating system (eg, kernel) 12 , software drivers 13 and hardware drivers 14 . The independent execution ring-0 15 includes an operating system (OS) core 16 and a processor core 18. OS core 16 and processor core 18 are examples of an OS execution entity (OSE) and a processor execution entity (PE), respectively. OSEs and PEs are part of an execution entity running in a protected environment associated with an independent zone and an independent execution mode. Processor core loader 52 is a protected bootloader built into a chipset in the system and is responsible for loading processor cores 18 from the processor or chipset into a separate area, which will be discussed later.

同样,环-1 20、环-2 30、和环-3 40分别包括正常执行环-1 21、环-2 31、环-3 41和独立执行环-1 25、环-2 35和环-3 45。尤其正常执行环-3包括N个应用程序42l到42N,独立执行环-3包括K个小应用程序(Applet)46l到46K。独立执行体系结构的一个概念是在系统存储器中创建独立区段,称为独立区域,受计算机系统中处理器和芯片组的保护。独立区域还可以位于高速缓冲存储器中,受翻译后援缓冲器(TLB)访问检查保护。同样,独立区域可以再细分为多个独立区域,后面将对其进行讨论。只有处理器的前端总线(FSB)用特殊的总线(例如,存储器读和写)周期,称为独立读写周期,允许访问独立区域。这些特殊的总线周期也用于监听。独立读和写周期由以独立执行模式执行的处理器发出。独立执行模式是用处理器中的特权指令结合处理器核心装载器52进行初始化的。处理器核心装载器52验证并装载环-0核心软件模块(例如,处理器核心18)到独立区域。处理器核心18为独立执行提供与硬件相关的服务。Likewise, Ring-1 20, Ring-2 30, and Ring-3 40 include normal execution Ring-1 21, Ring-2 31, Ring-3 41 and independent execution Ring-1 25, Ring-2 35, and Ring-3 40, respectively. 3 45. In particular, the normal execution ring-3 includes N application programs 42 l to 42 N , and the independent execution ring-3 includes K small application programs (Applets) 46 l to 46 K . One concept of the independent execution architecture is the creation of independent sections of system memory, called isolated regions, that are protected by the processor and chipset in the computer system. Separate regions can also be located in cache memory, protected by translation lookaside buffer (TLB) access checks. Likewise, an independent region can be subdivided into independent regions, which are discussed later. Only the processor's front-side bus (FSB) uses special bus (for example, memory read and write) cycles, called independent read and write cycles, to allow access to independent regions. These special bus cycles are also used for listening. Independent read and write cycles are issued by the processor executing in independent execution mode. The standalone execution mode is initiated using privileged instructions in the processor in conjunction with the processor core loader 52 . Processor core loader 52 verifies and loads ring-0 core software modules (eg, processor cores 18) into separate regions. Processor core 18 provides hardware-related services for independent execution.

处理器核心18的一个任务是验证并装载环-0 OS16到独立区域,并产生对平台、处理器以及操作系统核心16的组合唯一的关键体系的根。处理器核心18提供对独立区域的初始设置和低层管理,包括操作系统核心16的验证、装载和记录,以及保护操作系统核心的秘密的对称密钥的管理。处理器核心18还可以提供对由其它硬件提供的低层安全服务的应用程序编程接口(API)抽象。One of the tasks of the processor core 18 is to verify and load the ring-0 OS 16 into a separate region and generate a key architectural root unique to the combination of platform, processor, and operating system core 16. The processor core 18 provides initial setup and low-level management of the individual areas, including authentication, loading and logging of the operating system core 16, and management of symmetric keys that protect the operating system core's secrets. Processor core 18 may also provide application programming interface (API) abstractions to low-level security services provided by other hardware.

操作系统核心16提供到主OS(例如,操作系统中不受保护的段)中的服务的链接,提供独立区域范围内的页面管理,并负责装载环-3应用程序模块45(包括小应用程序46l到46K)到在独立区域中分配的受保护页面中。操作系统核心16还装载环-0支持模块。将要讨论主OS12管理位于独立区域之外的页面。The operating system kernel 16 provides links to services in the main OS (e.g., an unprotected segment of the operating system), provides page management within a separate area, and is responsible for loading Ring-3 application modules 45 (including applets 46L to 46K ) into protected pages allocated in separate regions. The operating system kernel 16 also loads the ring-0 support modules. It will be discussed that the main OS12 manages pages located outside the isolated area.

操作系统核心16可以在独立区域和正常(例如,非独立)存储器之间选择为数据分页。如果这样的话,操作系统核心16还负责在剔除页面到普通存储器之前对独立区域页面进行加密和哈希(Hash),并负责在恢复页面时检查页面内容。独立模式的小应用程序46l到46K和它们的数据对来自其它小应用程序以及来自非独立空间的应用程序(例如,42l到42N)、动态链接库(DLL)、驱动甚至主操作系统12的所有软件攻击具有抗干扰和抗监视能力。只有处理器核心18或操作系统核心16能够干预或监控小应用程序的执行。Operating system kernel 16 can choose between independent regions and normal (eg, non-isolated) memory for paging for data. If so, the operating system kernel 16 is also responsible for encrypting and hashing (Hash) the independent area page before evicting the page to the common memory, and is responsible for checking the page content when restoring the page. Standalone mode applets 461 to 46K and their data pairs from other applets as well as from non-standalone space applications (for example, 421 to 42N ), dynamic link libraries (DLLs), drivers and even main operating All software attacks of the system 12 are anti-jamming and anti-surveillance. Only the processor core 18 or operating system core 16 can intervene or monitor the execution of applets.

图1B是依照本发明的一个实施方案描述操作系统10和处理器的不同部件的可访问性的图。为描述方便起见,只显示了了环-0 10和环-3 40的部件。逻辑运行体系50中的不同单元根据它们的环层次和执行模式访问可访问的物理存储器60。FIG. 1B is a diagram depicting the accessibility of various components of the operating system 10 and processor, according to one embodiment of the present invention. For ease of description, only the components of Ring-0 10 and Ring-3 40 are shown. Different units in the logical runtime 50 access the accessible physical memory 60 according to their ring hierarchy and execution mode.

可访问物理存储器60包括独立区域70和非独立区域80。独立区域70包括Java应用程序页72和核心页74。非独立区域80包括应用程序页80和操作系统页84。独立区域70只能由以独立执行模式运行的操作系统和处理器的部件访问。非独立区域80可以由环-0操作系统和处理器的所有部件访问。The accessible physical memory 60 includes an independent area 70 and a non-independent area 80 . Independent area 70 includes Java application pages 72 and core pages 74 . Non-isolated area 80 includes application program pages 80 and operating system pages 84 . The isolated area 70 can only be accessed by the operating system and components of the processor running in an isolated execution mode. Non-isolated area 80 is accessible by all components of the ring-0 operating system and processor.

正常执行环-0 11包括主OS 12、软件驱动13和硬件驱动14,能够访问OS页面84和应用程序页面82。正常执行环-3包括应用程序42l到42N,只能访问应用程序页面82。但正常执行环-0 11和环-3 41都不能访问独立区域70。Normal execution ring-0 11 includes main OS 12 , software driver 13 and hardware driver 14 and can access OS page 84 and application program page 82 . Normal execution ring-3 includes applications 421 to 42N and can only access application page 82. But neither ring-0 11 nor ring-3 41 can access the independent area 70 normally.

独立执行环-0 15包括OS核心16和处理器核心18,能够访问独立区域70和非独立区域80,独立区域70包括小应用程序页面72和核心页面74,非独立区域80包括应用程序页面82和OS页面84。独立执行环-3包括小应用程序46l到46K,只能访问应用程序页面82和小应用程序页面72。小应用程序46l到46K驻留在独立区域70中。The independent execution ring-0 15 includes the OS core 16 and the processor core 18, and has access to the independent area 70, which includes the applet page 72 and the core page 74, and the non-isolated area 80, which includes the application program page 82 and OS page 84. The independent execution ring-3 includes applets 461 to 46K and can only access application page 82 and applet page 72. Applets 461 through 46K reside in separate area 70.

图1C是和图1B类似的图,依照本发明的一种实施方案描述操作系统和处理器中不同单元的可访问性,其中独立存储区域70被分为多个独立存储区域71,非独立存储区域80被分为多个非独立存储区域83。为描述方便起见,只显示了环-0 10和环-3 40的元素。逻辑运行体系50根据它们的环层次和执行模式访问可访问的物理存储器60。可访问的物理存储器60包括多个独立区域71和非独立区域83。Fig. 1C is a diagram similar to Fig. 1B, describing the accessibility of different units in the operating system and processor according to an embodiment of the present invention, wherein the independent storage area 70 is divided into a plurality of independent storage areas 71, non-independent storage The area 80 is divided into a plurality of non-independent storage areas 83 . For ease of description, only elements of Ring-0 10 and Ring-3 40 are shown. Logical runtimes 50 access accessible physical memory 60 according to their ring hierarchy and execution mode. Accessible physical memory 60 includes a plurality of independent areas 71 and non-independent areas 83 .

多个独立区域71包括小应用程序页面72和操作系统(OS)核心页面74。多个独立区域71的其中一个还包括实现在处理器核心页面73中的处理器核心18(即,处理器执行实体(PE))。多个非独立区域83包括应用程序页面82和操作系统(OS)页面84。多个独立区域71只能由以独立执行模式运行的操作系统和处理器的元素访问。非独立区域83可以由环-0操作系统和处理器的所有元素访问。A plurality of independent areas 71 includes applet pages 72 and operating system (OS) core pages 74 . One of the plurality of independent regions 71 also includes a processor core 18 (ie, a processor execution entity (PE)) implemented in a processor core page 73 . The plurality of dependent areas 83 includes application program pages 82 and operating system (OS) pages 84 . Multiple independent regions 71 can only be accessed by elements of the operating system and processor running in independent execution mode. The non-isolated area 83 is accessible by all elements of the ring-0 operating system and processor.

在图1C所示的实施方案中,与图1B中所示的单块独立存储区域相对,独立存储区域70被分割成一组多个独立存储区域71,在使用独立存储器中允许增强的平台功能。为了支持多个独立存储区域71,实现在OS核心页面74中的OS核心16(即,OS执行实体(OSE))包含页面管理器75和存储器所有权页表77。OS核心控制页面管理器75。页面管理器75负责分发页面到多个独立存储区域71,例如OS核心页面74和小应用程序页面72,并分发页面到非独立存储区域83,例如OS页面84和应用程序页面82。页面管理器75还管理并维护存储器所有权页表77。后面将要讨论存储器所有权页表77描述每面并用来帮助配置处理器的访问事务并进一步验证访问事务有效。通过允许页面管理器75创建多个独立存储区域71和多个非独立存储区域83,可访问物理存储器60能够更容易的满足系统存储需求的变化。In the embodiment shown in Figure 1C, the isolated memory area 70 is partitioned into a set of multiple isolated memory areas 71, as opposed to the single block of isolated memory areas shown in Figure IB, allowing for enhanced platform functionality in the use of isolated memories. To support multiple independent memory areas 71 , OS core 16 (ie, OS Executing Entity (OSE)) implemented in OS core pages 74 includes page manager 75 and memory ownership page table 77 . The OS core controls the page manager 75 . Page manager 75 is responsible for distributing pages to multiple independent storage areas 71 , such as OS core pages 74 and applet pages 72 , and to non-isolated storage areas 83 , such as OS pages 84 and application pages 82 . The page manager 75 also manages and maintains a memory ownership page table 77 . As will be discussed later, the memory ownership page table 77 describes each plane and is used to help configure the processor's access transactions and further verify that the access transactions are valid. By allowing page manager 75 to create multiple independent storage areas 71 and multiple dependent storage areas 83, accessible physical memory 60 can more easily accommodate changes in system storage requirements.

正常执行环-0 11包括主OS 12、软件驱动13和硬件驱动14,能够访问OS页面84和应用程序页面82。正常执行环-3包括应用程序42l到42N,只能访问应用程序页面82。但正常执行环-0 11和环-3 41不能访问多个独立存储区域71。Normal execution ring-0 11 includes main OS 12 , software driver 13 and hardware driver 14 and can access OS page 84 and application program page 82 . Normal execution ring-3 includes applications 421 to 42N and can only access application page 82. However, normal execution of ring-0 11 and ring-3 41 cannot access multiple independent storage areas 71 .

独立执行环-0 15包括OS核心16和处理器核心18,能够访问多个独立存储区域71和多个非独立存储区域83,多个独立存储区域71包括小应用程序页面72和OS核心页面74,多个非独立存储区域83包括应用程序页面82和OS页面84。独立执行环-345包括小应用程序46l到46K,只能访问应用程序页面82和小应用程序页面72。小应用程序46l到46K驻留在多个独立存储区域71中。The independent execution ring-0 15 includes the OS core 16 and the processor core 18, and can access a plurality of independent storage areas 71 and a plurality of non-independent storage areas 83, and the plurality of independent storage areas 71 include applet pages 72 and OS core pages 74 , a plurality of non-independent storage areas 83 including application program pages 82 and OS pages 84 . The independent execution ring-345 includes applets 461 to 46K and can only access application page 82 and applet page 72. Applets 461 to 46K reside in a plurality of independent storage areas 71 .

图1D是依照本发明的一种实施方案描述为独立执行分发存储器页面的方法86的流程图。Figure ID is a flowchart depicting a method 86 of distributing memory pages for stand-alone execution, in accordance with one embodiment of the present invention.

从START开始,方法86分别分发存储器页面到可访问物理存储器60的不同区域(块87)。页面被分发给独立区域71和非独立区域83。在优选实施方案中页面的大小是固定的。例如,每个页面可以是4MB或4KB。然后,方法86给每个页面分配属性(块88)。如果一个页面被分配给了存储器的一个独立区域,方法86就赋予该页面非独立属性,否则如果一个页面被分配给了存储器的一个非独立区域,方法86就赋予该页面非独立属性。From START, method 86 distributes memory pages to different regions of accessible physical memory 60, respectively (block 87). Pages are distributed to the independent area 71 and the non-independent area 83 . In the preferred embodiment the page size is fixed. For example, each page can be 4MB or 4KB. The method 86 then assigns attributes to each page (block 88). If a page is allocated to an independent region of memory, method 86 assigns the page non-isolated attribute, otherwise if a page is allocated to a non-isolated region of memory, method 86 assigns the page non-isolated attribute.

图1E是依照本发明描述存储器所有权页表77和转换虚拟地址为物理地址的方法的图。如前所述,页面管理器75管理存储器所有权页表77。存储器所有权页表77包括多个页表记录93。每个页表记录93包括下列成分:页面95的基地址和该页面的属性96(独立或非独立)。只有页面管理器75能够更改分配给页面的属性96。每个页面98包括多个物理地址99。当独立和非独立存储区域改变时页面管理器75洗空存储器所有权页表77或使页表记录93无效。页表管理器75随后重新分配并初始化独立和非独立存储区域。FIG. 1E is a diagram illustrating a memory ownership page table 77 and a method of converting virtual addresses to physical addresses in accordance with the present invention. Page manager 75 manages memory ownership page table 77 as previously described. Memory ownership page table 77 includes a plurality of page table records 93 . Each page table record 93 includes the following components: the base address of the page 95 and the attributes 96 of the page (independent or non-independent). Only the page manager 75 can change the properties 96 assigned to a page. Each page 98 includes a plurality of physical addresses 99 . Page manager 75 flushes memory ownership page table 77 or invalidates page table entries 93 when independent and non-independent storage areas change. The page table manager 75 then reallocates and initializes the independent and non-independent storage areas.

虚地址212包括页表部分91和偏移92。后面将讨论转换虚拟地址212为物理地址99的方法。Virtual address 212 includes page table portion 91 and offset 92 . A method of converting virtual address 212 to physical address 99 will be discussed later.

图1F是描述在其中实践本发明的一种实施方案的计算机系统100。计算机系统100包括处理器110、主机总线120、存储控制器中心(MCH)130、系统存储器140、输入/输出控制器中心(ICH)150、非易失性存储器或系统闪存160、大容量存储设备170、输入/输出设备175、令牌总线180、主板(MB)令牌182、读入器184和令牌186。MCH 130可以集成到集成了像独立执行模式、主机-到-外设总线接口和存储器控制的芯片组。同样,ICH 150也可以集成到与MCH 130在一起或分开的芯片组中以执行I/O功能。为清楚起见,产未显示所有的外围总线。设想系统100也可以包括外围总线,像外围设备互连(PCI)、加速图形接口(AGP)、工业标准结构(ISA)总线以及通用串行总线(USB)等。Figure IF is a depiction of a computer system 100 in which one embodiment of the present invention is practiced. Computer system 100 includes processor 110, host bus 120, memory controller hub (MCH) 130, system memory 140, input/output controller hub (ICH) 150, non-volatile memory or system flash memory 160, mass storage devices 170 , input/output devices 175 , token bus 180 , main board (MB) token 182 , reader 184 and token 186 . The MCH 130 can be integrated into chipsets that integrate features like standalone execution mode, host-to-peripheral bus interface and memory control. Likewise, the ICH 150 can be integrated into a chipset either together with or separate from the MCH 130 to perform I/O functions. For clarity, not all peripheral buses are shown. It is contemplated that system 100 may also include peripheral buses, such as Peripheral Component Interconnect (PCI), Accelerated Graphics Port (AGP), Industry Standard Architecture (ISA) bus, Universal Serial Bus (USB), and the like.

处理器110代表任意类型架构的中央处理单元,例如复杂指令集计算机(CISC)、精简指令集计算机(RISC)、超长指令字(VLIW)以及混合结构。在一种实施方案中,处理器110与Intel架构(IA)的处理器兼容,例如PentiumTM系列、IA-32TM和IA-64TM。处理器110包括正常执行模式112和独立执行电路115。正常执行模式112是处理器在非保护环境或没有由独立执行模式提供的安全特性的正常环境中运行的模式。独立执行电路115提供一种机制允许处理器110以独立执行模式运行。独立执行电路115为独立执行模式提供硬件和软件支持。这种支持包括独立执行的配置、一个或多个独立区域的定义、独立指立的定义(例如,解码和执行)、独立访问总线周期的产生以及独立模式中断的产生。Processor 110 represents a central processing unit of any type of architecture, such as Complex Instruction Set Computer (CISC), Reduced Instruction Set Computer (RISC), Very Long Instruction Word (VLIW), and hybrid architectures. In one embodiment, processor 110 is compatible with Intel Architecture (IA) processors, such as the Pentium( TM) series, IA-32 (TM) , and IA-64 (TM) . Processor 110 includes normal execution mode 112 and independent execution circuitry 115 . Normal execution mode 112 is a mode in which the processor operates in a non-protected environment or a normal environment without the security features provided by the independent execution mode. Independent execution circuitry 115 provides a mechanism to allow processor 110 to operate in an independent execution mode. The standalone execution circuit 115 provides hardware and software support for the standalone execution mode. This support includes configuration of independent execution, definition of one or more independent regions, definition of independent pointers (eg, decode and execute), generation of independent access bus cycles, and generation of independent mode interrupts.

在一种实施方案中,计算机系统100可能是一个单独的处理器系统,例如桌面型计算机,它只有一个主中央处理单元,例如处理器110。在其它实施方案中,计算机系统100可以包括多个处理器,例如处理器110、110a、110b等,如图1D中所示。因而,计算机系统100可以是有多个处理器的多处理器计算机系统。例如,多处理器计算机系统100能够作为服务器或工作站环境的一部分而运行。下面将详细讨论处理器110的基本描述和操作。本领域的技术人员将认识到依照本发明的一种实施方案处理器110的基本描述和操作可以应用于图1中所示的其它处理器110a和110b以及可能用在多处理器计算机系统100中的任意数量的处理器。In one embodiment, computer system 100 may be a single processor system, such as a desktop computer, that has only one main central processing unit, such as processor 110 . In other embodiments, computer system 100 may include multiple processors, such as processors 110, 110a, 110b, etc., as shown in Figure ID. Thus, computer system 100 may be a multi-processor computer system having multiple processors. For example, multiprocessor computer system 100 can operate as part of a server or workstation environment. The basic description and operation of processor 110 will be discussed in detail below. Those skilled in the art will recognize that the basic description and operation of processor 110 according to one embodiment of the present invention can be applied to other processors 110a and 110b shown in FIG. 1 and possibly in multiprocessor computer system 100. any number of processors.

处理器110还可以包括多个逻辑处理器。逻辑处理器有时也称为线程,一个逻辑处理器是一个物理处理器的功能单元,该物理处理器有根据一些划分策略而分配的架构状态和物理资源。在本发明的环境中,术语“线程”和“逻辑处理器”用来指相同的事物。多线程处理器是有多个线程或多个逻辑处理器的处理器。多处理器系统(例如,包括处理器110、110a和110b的系统)可以有多个多线程处理器。Processor 110 may also include multiple logical processors. Logical processors are sometimes called threads. A logical processor is a functional unit of a physical processor that has architectural state and physical resources allocated according to some partitioning policy. In the context of the present invention, the terms "thread" and "logical processor" are used to refer to the same thing. A multi-threaded processor is a processor that has multiple threads or multiple logical processors. A multiprocessor system (eg, a system including processors 110, 110a, and 110b) may have multiple multithreaded processors.

主机总线120提供接口信号以允许处理器110或处理器110、110a和110b和其它处理器或设备(例如,MCH130)通信。除了正常模式之外,当用独立执行模式配置处理器110时主机总线120用存储器读和写的对应接口信号提供独立访问总线模式。当处理器110处在独立执行模式时在启动存储器访问时维持独立访问总线模式。如果地址在独立区域地址范围内并且用独立执行模式配置处理器110时也在指令预取和高速缓冲存储器的写回周期建立独立访问总线模式。如果建立了独立访问总线周期并且处理器110被初始化为独立执行模式,处理器110就响应对独立区域地址范围内缓存的地址的监听周期。Host bus 120 provides interface signals to allow processor 110 or processors 110, 110a and 110b to communicate with other processors or devices (eg, MCH 130). In addition to the normal mode, host bus 120 provides an independent access bus mode with corresponding interface signals for memory reads and writes when processor 110 is configured in an independent execution mode. The independent access bus mode is maintained when the memory access is initiated when the processor 110 is in the independent execution mode. The independent access bus mode is also established for instruction prefetch and cache write-back cycles if the address is within the independent region address range and processor 110 is configured for independent execution mode. If an independent access bus cycle is established and processor 110 is initialized to an independent execution mode, processor 110 responds to a snoop cycle to an address cached within the independent region address range.

MCH 130提供对存储器和输入/输出设备(例如系统存储器140和ICH150)的控制和配置。MCH 130提供接口电路来识别和服务存储器访问总线周期(包括独立存储器读和写周期)上的独立访问请求。另外,MCH 130有存储器范围寄存器(例如,基地址和长度寄存器)来表示系统存储器140中的一个或多个独立区域。一旦配置完毕,MCH 130放弃对没有建立独立访问总线的独立区域的任意访问。MCH 130 provides control and configuration of memory and input/output devices such as system memory 140 and ICH 150. The MCH 130 provides interface circuitry to identify and service individual access requests on memory access bus cycles, including individual memory read and write cycles. In addition, MCH 130 has memory range registers (eg, base address and length registers) to represent one or more separate regions in system memory 140. Once configured, the MCH 130 relinquishes any access to independent regions for which no independent access buses have been established.

系统存储器140存储系统代码和数据。系统存储器140通常是用动态随机访问存储器(DRAM)或静态随机访问存储器(SRAM)实现。系统存储器140包括(图1B和图1C中所示的)可访问物理存储器60。可访问物理存储器包括装入的操作系统142、独立区域70(图1B)或多个独立区域71(图1C)以及独立控制和状态空间148。装入的操作系统142是装入系统存储器140的操作系统部分。装入的OS 142通常是通过像引导只读存储器(ROM)这样的引导设备中的引导代码从大容量存储设备装入的。独立区域70(图1B)或独立区域71(图1C)是在以独立执行模式运行时由处理器定义的存储器区域。对独立区域的访问由处理器110和/或MCH 130或集成了独立区域功能的其它芯片组约束并执行。独立控制和状态空时148是由处理器110和/或MCH 130定义的与输入/输出(I/O)类似的独立的地址空间。独立控制和状态空间148主要包含独立执行控制和状态寄存器。独立控制和状态空间148并不与任意现有的地址空间重叠并且只能用独立总线周期来访问。系统存储器140还可以包括没有显示的其它程序或数据。System memory 140 stores system code and data. System memory 140 is typically implemented with dynamic random access memory (DRAM) or static random access memory (SRAM). System memory 140 includes accessible physical memory 60 (shown in FIGS. 1B and 1C ). Accessible physical memory includes a loaded operating system 142 , a separate area 70 ( FIG. 1B ) or multiple separate areas 71 ( FIG. 1C ), and a separate control and state space 148 . Loaded operating system 142 is the portion of the operating system that is loaded into system memory 140 . The loaded OS 142 is typically loaded from a mass storage device via boot code in a boot device such as a boot read-only memory (ROM). Isolated region 70 (FIG. IB) or isolated region 71 (FIG. 1C) is a region of memory defined by the processor when operating in an isolated execution mode. Access to the independent area is constrained and performed by the processor 110 and/or the MCH 130 or other chipset integrating the independent area functionality. Independent control and state space 148 is an independent address space similar to input/output (I/O) defined by processor 110 and/or MCH 130. Independent control and state space 148 primarily contains independent execution control and status registers. The independent control and state space 148 does not overlap with any existing address space and can only be accessed with independent bus cycles. System memory 140 may also include other programs or data not shown.

ICH 150代表有独立执行功能的系统中已知的单个点。为清楚起见,只显示了ICH 150。系统100还可以有与ICH 150类似的多个ICH。当有多个ICH时,选择一个指定的ICH来控制独立区域的配置和状态。在一种实施方案中,这种选择是由外部带状引脚实现的。本领域的技术人员知道也可以用其它选择方法,包括使用可编程配置寄存器。ICH150有多种设计用来在传统I/O功能外支持独立执行模式的功能。特别地,ICH 150包括独立总线周期接口152、(图1A中所示的)处理器核心装载器52、摘要存储器154、加密密钥存储区155、独立执行逻辑管理器156和令牌总线接口159。ICH 150 represents a known single point in a system with independently performing functions. For clarity, only ICH 150 is shown. System 100 may also have multiple ICHs similar to ICH 150. When there are multiple ICHs, a designated ICH is selected to control the configuration and status of the independent regions. In one embodiment, this selection is accomplished by external ribbon pins. Those skilled in the art will appreciate that other selection methods are also possible, including the use of programmable configuration registers. The ICH150 has various functions designed to support independent execution mode in addition to traditional I/O functions. In particular, ICH 150 includes independent bus cycle interface 152, processor core loader 52 (shown in FIG. 1A ), digest memory 154, encryption key storage area 155, independent execution logic manager 156, and token bus interface 159 .

独立总线周期接口152包括和独立总线周期对接的电路以识别并服务独立总线周期,例如独立读和写总线周期。处理器核心装载器152,如图1A中所示,包括处理器核心装载器代码和它的摘要(例如,哈希)值。处理器核心装载器52由执行适当的独立指令(例如,Iso-Init)而启动,然后被传输到独立区域70或独立区域71之一。从独立区域,处理器核心装载器52从系统闪存(例如,非易失性存储器160中的处理器核心代码18)复制处理器核心到独立区域70中,验证并记录它的完整性,并管理用来保护处理器核心的安全的密钥。在一种实施方案中,处理器核心装载器52被实现在只读存储器(ROM)中。为安全起见,处理器核心装载器52是不变的,抗干扰和不可替代的。摘要存储器154通常被实现在RAM中,存储装入的处理器核心18、操作系统核心16以及装入独立空间的任意其它关键模块(例如,环-0模块)的摘要(例如,哈希)值。Independent bus cycle interface 152 includes circuitry to interface with individual bus cycles to recognize and service individual bus cycles, such as individual read and write bus cycles. Processor core loader 152, shown in FIG. 1A, includes the processor core loader code and its digest (eg, hash) value. The processor core loader 52 is started by executing the appropriate independent instruction (eg, Iso-Init), and then transferred to one of the independent area 70 or the independent area 71 . From the isolated area, the processor core loader 52 copies the processor core from the system flash memory (e.g., the processor core code 18 in the non-volatile memory 160) into the isolated area 70, verifies and records its integrity, and manages A key used to secure the processor core. In one embodiment, processor core loader 52 is implemented in read-only memory (ROM). For security reasons, the processor core loader 52 is invariable, anti-interference and irreplaceable. Digest memory 154, typically implemented in RAM, stores digest (e.g., hash) values for loaded processor cores 18, operating system cores 16, and any other critical modules (e.g., ring-0 modules) loaded into separate spaces .

加密密钥存储区155保存对系统100的平台唯一的对称加密/解密密钥。在一种实施方案中,加密密钥存储区155包括在制造时编程设定的内部引信。作为选择,也可以用随机数发生器和引脚带创建。独立执行逻辑处理管理器156管理以独立执行模式运行的逻辑处理器的操作。在一种实施方案中,独立执行逻辑处理管理器156包括一个逻辑处理器计数寄存器,它跟踪参入独立执行模式的逻辑处理器的数量。令牌总线接口159和令牌总线180对接。处理器核心装载器摘要、处理器核心摘要、操作系统核心摘要和可选的附加摘要的组合代表整个独立执行摘要,称为独立摘要。独立摘要是识别控制独立执行配置和操作的环-0代码的指纹。独立摘要用来表明或证明当前独立执行的状态。The encryption key storage area 155 holds symmetric encryption/decryption keys unique to the platform of the system 100 . In one embodiment, encryption key storage area 155 includes an internal fuse that is programmed at the time of manufacture. Alternatively, it can also be created with a random number generator and pin strips. Independent execution logical process manager 156 manages the operation of logical processors operating in independent execution mode. In one embodiment, the independent execution logical process manager 156 includes a logical processor count register which tracks the number of logical processors participating in independent execution mode. The token bus interface 159 is connected to the token bus 180 . The combination of the Processor Core Loader Digest, Processor Core Digest, OS Core Digest, and optional Additional Digest represents the entire independent executive summary, known as the Independent Digest. A standalone digest is a fingerprint identifying the Ring-0 code that controls configuration and operations performed independently. Standalone digests are used to indicate or prove the state of the current stand-alone execution.

非易失性存储器160存储非易失信息。通常,非易失性存储器160是实现在闪存中的。非易失性存储器160包括处理器核心18。The nonvolatile memory 160 stores nonvolatile information. Typically, non-volatile memory 160 is implemented in flash memory. Non-volatile memory 160 includes processor core 18 .

处理器核心18提供(系统存储器140中的)独立区域的初始设置和低层管理,包括操作系统核心16的验证、装载和记录,以及对用于保护操作系统核心的安全的对称密钥的管理。处理器核心18也可以提供由其它硬件提供的低层安全性服务的应用程序编程接口(API)抽象。处理器核心18也可以由原始设备制造商(OEM)或操作系统提供商通过引导盘发布。Processor core 18 provides initial setup and low-level management of separate areas (in system memory 140), including authentication, loading and logging of operating system core 16, and management of symmetric keys used to secure the operating system core. Processor core 18 may also provide application programming interface (API) abstractions of low-level security services provided by other hardware. Processor core 18 may also be distributed by an original equipment manufacturer (OEM) or operating system provider on a boot disk.

大容量存储设备170存储像代码(例如,处理器核心18)、程序、文件、数据、应用程序(例如,应用程序421到42N)、小应用程序(例如,applet461到46K)和操作系统这样的存储文件。大容量存储设备170可能包括光盘(CD)ROM 172、软盘174和硬盘176,以及任意其它磁或光存储设备。大容量存储设备170提供读取机读介质的机制。Mass storage device 170 stores items like code (e.g., processor core 18), programs, files, data, applications (e.g., applications 42 1 through 42 N ), applets (e.g., applets 46 1 through 46 K ), and storage files such as the operating system. Mass storage device 170 may include compact disc (CD) ROM 172, floppy disk 174, and hard disk 176, as well as any other magnetic or optical storage device. Mass storage device 170 provides a mechanism for reading machine-readable media.

I/O设备175可以包括任意I/O设备来执行I/O功能。I/O设备175的实例包括输入设备(例如,键盘、鼠标、轨迹球、定位设备)、媒体卡(例如,音频、视频、图形)、网卡的控制器和任意其它外围控制器。I/O device 175 may include any I/O device to perform I/O functions. Examples of I/O devices 175 include input devices (eg, keyboard, mouse, trackball, pointing device), media cards (eg, audio, video, graphics), controllers for network cards, and any other peripheral controllers.

令牌总线180提供ICH 150和系统中的多个令牌之间的接口。令牌是执行带有安全功能的特定输入/输出功能的设备。令牌的特性与智能卡类似,包括至少一个保留目的的公共/私有密钥对和用私有密钥标记数据的能力。与令牌总线180相连的令牌实例包括主板令牌182、令牌读取器184和其它移动令牌186(例如,智能卡)。ICH 150中的令牌总线接口159通过令牌总线180连接到ICH 150并确保被命令证明独立执行的状态时,对应的令牌(例如,主板令牌182、令牌186)只标记有效的独立摘要信息。为安全起见,令牌应该连接到摘要存储器。Token bus 180 provides an interface between ICH 150 and multiple tokens in the system. Tokens are devices that perform specific input/output functions with security functions. Tokens have characteristics similar to smart cards, including at least one public/private key pair for retention purposes and the ability to sign data with the private key. Examples of tokens connected to token bus 180 include motherboard tokens 182, token readers 184, and other mobile tokens 186 (eg, smart cards). The token bus interface 159 in the ICH 150 is connected to the ICH 150 through the token bus 180 and ensures that when it is ordered to prove the state of independent execution, the corresponding token (for example, main board token 182, token 186) only marks valid independent summary information. For security, tokens should be connected to digest storage.

当用软件实现时,本发明的元素是执行必要任务的代码段。程序或代码段可以存储在机器可读介质中,例如处理器可读介质,也可以由载波中包含的计算机数字信号传输。处理器可读介质的实例包括电子电路、半导体存储设备、光盘CD-ROM、光盘、硬盘、光纤介质、无线电频率(RF)链路等。计算机数字信号可以包括能够通过像电子网络信道、光纤、空气、电磁介质、RF链路传输介质等传输介质传播的任意信号。When implemented in software, the elements of the invention are the code segments to perform the necessary tasks. Programs or code segments can be stored on a machine-readable medium, such as a processor-readable medium, or can be transmitted by a computer digital signal embodied in a carrier wave. Examples of processor-readable media include electronic circuits, semiconductor memory devices, compact disks CD-ROMs, compact disks, hard disks, fiber optic media, radio frequency (RF) links, and the like. A computer digital signal may include any signal capable of propagating through transmission media like electronic network channels, fiber optics, air, electromagnetic media, RF link transmission media, and the like.

在一个独立执行环境中控制对多个独立存储器的访问Control access to multiple independent memories in one independent execution environment

本发明是在一个独立执行环境中控制对多个独立存储器71(如图1C所示)的访问的方法、设备和系统。图2A是依照本发明的一种实施方案描述图1F中所示的独立执行电路115的图。独立执行电路115包括核心执行电路205、访问管理器220和高速缓冲存储器管理器230。The present invention is a method, device and system for controlling access to multiple independent memories 71 (as shown in FIG. 1C ) in an independent execution environment. FIG. 2A is a diagram illustrating the independent execution circuit 115 shown in FIG. 1F according to one embodiment of the present invention. Independent execution circuitry 115 includes core execution circuitry 205 , access manager 220 and cache manager 230 .

核心执行单元205包括指令译码器和执行单元210以及翻译后援缓冲区(TLB)218。指令译码器和执行单元210从取指令单元接收指令流215。指令流215包括多个指令。指令解码器和执行单元210对指令进行解码并执行解码过的指令。这些指令可以是微指令级或宏指令级。指令解码器和执行单元210可以是物理电路或对解码指令的执行的过程的抽象。另外,指令可以包括独立指令和非独立指令。当存在访问事务时指令解码器和执行单元210产生一个虚拟地址。Core execution unit 205 includes instruction decoder and execution unit 210 and translation lookaside buffer (TLB) 218 . Instruction decoder and execution unit 210 receives instruction stream 215 from instruction fetch unit. Instruction stream 215 includes a plurality of instructions. The instruction decoder and execution unit 210 decodes instructions and executes the decoded instructions. These instructions may be at the micro-level or macro-level. Instruction decoder and execution unit 210 may be a physical circuit or an abstraction of the process of decoding instruction execution. Additionally, instructions may include independent instructions and dependent instructions. The instruction decoder and execution unit 210 generates a virtual address when there is an access transaction.

TLB218把虚拟地址212转换成物理地址99。TLB 218包括存储器所有权页表(MOPT)77的高速缓冲219。TLB 218首先在高速缓冲存储器219中查找与虚拟地址12匹配的物理地址以及相关的页表记录。如果物理地址不在高速缓冲存储器219中TBL218就查找MOP 77自身。TLB 218用MOPT 221的基地址查找物理地址。也参考图1E,从MOPT 221的基地址和虚地址212的页表内容91开始,TLB 218为虚地址212找到页表记录93。如前所述,每个页表记录93包括页面95的基地址和该页的属性96(独立或非独立)。TLB 218用页面95的基地址和虚地址的偏移内容92能够与该虚地址对应的物理地址99。应该知道使用TLB转换虚地址为物理地址是一项众所周知的技术。后面将要讨论要页面的属性96(独立或非独立)在配置独立执行的访问事务中是非常重要的。TLB 218 translates virtual address 212 into physical address 99 . TLB 218 includes cache 219 of memory ownership page table (MOPT) 77. TLB 218 first looks in cache memory 219 for a physical address matching virtual address 12 and the associated page table entry. If the physical address is not in the cache memory 219 the TBL 218 looks up the MOP 77 itself. The TLB 218 uses the base address of the MOPT 221 to look up the physical address. Referring also to FIG. 1E , starting from the base address of MOPT 221 and page table content 91 of virtual address 212 , TLB 218 finds page table record 93 for virtual address 212 . As previously described, each page table record 93 includes the base address of a page 95 and the page's attributes 96 (independent or dependent). The TLB 218 uses the base address of the page 95 and the offset content 92 of the virtual address to be able to correspond to the physical address 99 of the virtual address. It should be known that using the TLB to translate virtual addresses to physical addresses is a well-known technique. The attribute 96 (independent or non-independent) of the page to be discussed later is very important in configuring independently executed access transactions.

再来参考图2A,核心执行电路205通过控制/状态信息222、操作数224和访问信息226与访问管理器220通信。控制/状态信息222包括管理独立总线周期发生器220中的不同部件的控制位以及来自访问管理器220的状态数据。操作数224包括要写入访问管理器220以及从其读取的数据。访问信息226包括地址信息(例如,由TLB218提供的物理地址)、读/写、和访问类型信息。Referring again to FIG. 2A , core execution circuitry 205 communicates with access manager 220 via control/status information 222 , operands 224 and access information 226 . Control/status information 222 includes control bits that manage the various components in individual bus cycle generators 220 as well as status data from access manager 220 . Operands 224 include data to be written to and read from access manager 220 . Access information 226 includes address information (eg, physical address provided by TLB 218), read/write, and access type information.

访问管理器220接收并提供控制/状态信息222,接收并提供操作数224信息,从核心执行电路205接收访问信息226作为指令执行的结果,从高速缓冲存储器管理器230接收高速缓冲存储器访问信号235(例如,高速缓冲存储器命中)和属性96(独立或非独立)。访问管理器220还从系统中的另一个处理器接收外部独立访问信号278和前端总线(FSB)地址信息信号228。当系统中的另一个处理器试图访问独立存储区域之一时建立外部独立访问信号278。访问管理器220产生独立访问信号272、访问许可信号274、和处理器监听访问信号276。独立访问信号272可以用于产生送往处理器外部的设备(例如,芯片组)的独立总线周期230以指示处理器110正在执行独立模式指令。处理器监听访问信号276可以由其它设备或芯片组用来确定监听访问是命中还是氛失独立访问信号272、访问许可信号274和处理器监听访问信号276也可以由处理器110在内部用来控制并监测其它独立或非独立活动。Access manager 220 receives and provides control/status information 222, receives and provides operand information 224, receives access information 226 from core execution circuitry 205 as a result of instruction execution, receives cache access signals 235 from cache manager 230 (eg, cache hit) and attribute 96 (independent or non-independent). Access manager 220 also receives external independent access signals 278 and front side bus (FSB) address information signals 228 from another processor in the system. External independent access signal 278 is asserted when another processor in the system attempts to access one of the independent memory areas. Access manager 220 generates independent access signal 272 , access permission signal 274 , and processor listen access signal 276 . The independent access signal 272 may be used to generate an independent bus cycle 230 to a device external to the processor (eg, a chipset) to indicate that the processor 110 is executing an independent mode instruction. Processor snoop access signal 276 may be used by other devices or chipsets to determine whether a snoop access is a hit or miss. Independent access signal 272, access grant signal 274, and processor snoop access signal 276 may also be used internally by processor 110 to control and monitor other independent or dependent activities.

高速缓冲存储器存储管理器230从核心执行单元205接收访问信息226并产生高速缓冲存储器访问信号235给访问管理器220。像本领域的技术人员知道的那样,高速缓冲存储器存储管理器230包括存储高速缓冲存储器信息的高速存储器232和管理高速缓冲存储器事务的其它电路。高速缓冲存储器访问信号235指示高速缓冲存储器访问的结果。在一种实施方案中,高速缓冲存储器访问信号235是在高速缓冲存储器访问命中时建立起来的高速缓冲存储器命中信号。Cache storage manager 230 receives access information 226 from core execution unit 205 and generates cache access signal 235 to access manager 220 . Cache storage manager 230 includes high speed memory 232 that stores cache information and other circuitry that manages cache transactions, as is known to those skilled in the art. The cache access signal 235 indicates the result of the cache access. In one embodiment, cache access signal 235 is a cache hit signal that is asserted upon a cache access hit.

图2B是依照本发明的一种实施方案描述图2A中所示的访问管理器的图。访问管理器220包括配置存储区250和访问检查电路270。访问管理器220与图2A中所示的核心执行电路205交换操作数224信息并从其接收访问信息226。操作数224信息包括与物理地址99相联的页面的属性96(独立或非独立)。访问管理器220还从高速缓冲存储器管理器230接收高速缓冲存储器访问信号235,并从图2A中所示的另一个处理器接收外部独立访问信号278和FSB地址信息228.访问管理器220还从高速缓冲存储器管理器230接收属性96(独立或非独立)。属性位于每个高速缓冲存储器行基础上。访问信息226包括物理地址99、读/写(RD/WR#)信号284和访问类型286。访问信息226是由处理器110在访问事务期间产生的。访问类型286指示访问类型,包括存储器引导、输入/输出引导和逻辑处理器访问。逻辑处理器访问包括独立激活状态的逻辑处理器记录和从独立激活状态退出的逻辑处理器。Figure 2B is a diagram depicting the access manager shown in Figure 2A, according to one embodiment of the present invention. Access manager 220 includes configuration storage 250 and access checking circuitry 270 . Access manager 220 exchanges operand 224 information with and receives access information 226 from core execution circuitry 205 shown in FIG. 2A . Operand 224 information includes attributes 96 (independent or non-independent) of the page associated with physical address 99 . Access manager 220 also receives cache memory access signal 235 from cache memory manager 230, and external independent access signal 278 and FSB address information 228 from another processor shown in FIG. 2A. Access manager 220 also receives from Cache manager 230 receives attributes 96 (independent or non-independent). Attributes are located on a per cache line basis. Access information 226 includes physical address 99 , read/write (RD/WR#) signal 284 and access type 286 . Access information 226 is generated by processor 110 during an access transaction. Access type 286 indicates the type of access, including memory directed, input/output directed, and logical processor access. Logical processor access includes logical processor records for independent active states and logical processors exiting independent active states.

配置存储区250包含配置由处理器110产生的访问事务的配置参数。处理器110有正常执行模式和独立执行模式。访问事务拥有访问信息。配置存储区250从指令译码器和执行单元210(图2A)接收操作数224信息。配置存储区250包括页面251的属性寄存器和处理器控制寄存器252。属性寄存器251包含与设置为独立或非独立的物理地址相关的页面的属性96。处理器控制寄存器252包含执行模式字253。当用独立执行模式配置处理器110时建立执行模式字253。在一种实施方案中,执行模式字253是指示处理器110是否处于独立执行模式的一个单一位。Configuration store 250 contains configuration parameters that configure access transactions generated by processor 110 . Processor 110 has a normal execution mode and an independent execution mode. Access transactions own access information. Configuration store 250 receives operand 224 information from instruction decoder and execution unit 210 (FIG. 2A). Configuration store 250 includes attribute registers of page 251 and processor control registers 252 . The attribute register 251 contains the attribute 96 of the page associated with the physical address set as independent or non-independent. Processor control register 252 contains execution mode word 253 . Execution mode word 253 is established when processor 110 is configured with standalone execution mode. In one embodiment, the execution mode word 253 is a single bit that indicates whether the processor 110 is in an independent execution mode.

访问检查电路270用至少一个配置参数(例如,执行模式字253和属性96)和访问信息226检查访问事务。访问检查电路270用配置存储区250中的至少一个参数、由处理器110产生的事务中的访问信息226和FSB地址信息228产生处理器独立访问信号272、访问许可信号274和处理器监听访问信号276。FSB地址信息228通常是由另一个处理器提供并且在FSB上被监听。当用独立执行模式配置处理器110时建立独立访问信号272。访问许可信号274用来指示访问已经被允许。处理器监听访问信号276用来确定来自另一个处理器的访问导致命中或缺失。Access checking circuitry 270 checks access transactions with at least one configuration parameter (eg, execution mode word 253 and attributes 96 ) and access information 226 . Access check circuit 270 generates processor independent access signal 272, access permission signal 274, and processor snoop access signal using at least one parameter in configuration memory area 250, access information 226 and FSB address information 228 in transactions generated by processor 110 276. FSB address information 228 is typically provided by another processor and snooped on the FSB. Independent access signal 272 is asserted when processor 110 is configured with independent execution mode. Access permission signal 274 is used to indicate that access has been granted. A processor listens to the access signal 276 to determine that an access from another processor results in a hit or miss.

图3A是依照本发明的一种实施方案描述访问检查电路270的图。访问检查电路270包括TLB访问检查电路310和FSB监听检查电路330。FIG. 3A is a diagram illustrating an access check circuit 270 according to one embodiment of the present invention. The access check circuit 270 includes a TLB access check circuit 310 and a FSB snoop check circuit 330 .

TLB访问检查电路310接收属性96和执行模式字253来产生访问许可信号274。当属性96被设置为独立并且建立执行模式字253以指示独立访问有效或允许这样配置时建立访问许可信号274。在一种实施方案中,TLB访问检查电路310执行逻辑“异或”操作。因而是,当处理器请求独立区域的一个物理地址时,仅当处理器以独立执行模式运行并且与该物理地址相关联的页的属性也被设置为独立时,才允许该访问事务。TLB access check circuit 310 receives attribute 96 and execution mode word 253 to generate access grant signal 274 . Access permission signal 274 is established when attribute 96 is set to independent and execution mode word 253 is established to indicate that independent access is enabled or to allow such configuration. In one embodiment, TLB access check circuit 310 performs a logical "exclusive OR" operation. Thus, when a processor requests a physical address of an isolated region, the access transaction is only allowed if the processor is running in an independent execution mode and the attribute of the page associated with the physical address is also set to independent.

FSB监听检查电路330执行与TLB访问检查电路310类似的功能。FSB监听检查电路330通过组合高速缓冲存储器访问信号235、外部独立访问信号278和属性96产生处理器监听访问信号276。FSB监听检查电路330包括第一组合器342和第二组合器344。第一组合342从高速缓冲存储器存储管理器230接收要监听的线路的属性96(独立或非独立),并从执行监听的另一个处理器接收外部独立访问信号278。该属性们于每个高速缓冲存储器行基础上。在一种实施方案中,第一组合器342执行逻辑“异或”操作。第二组合器344组合第一组合器342的结果和高速缓冲存储器访问信号235(例如,高速缓冲存储器命中)。在一种实施方案中,第二组合器344执行逻辑AND操作。因而,当监听处理器以独立执行模式运行、页属性被设置为独立并且高速缓冲存储器命中时一个处理器只能在来自独立区域的另一个处理器的线路上监听。仅当满足条件时才允许访问事务并为独立区域产生处理器监听访问信号276。The FSB snoop check circuit 330 performs a similar function to the TLB access check circuit 310 . FSB snoop check circuit 330 generates processor snoop access signal 276 by combining cache access signal 235 , external independent access signal 278 and attribute 96 . The FSB snoop check circuit 330 includes a first combiner 342 and a second combiner 344 . The first combination 342 receives the attribute 96 (independent or non-independent) of the line to snoop from the cache memory manager 230 and receives an external independent access signal 278 from another processor performing the snoop. The attributes are on a per cache line basis. In one embodiment, the first combiner 342 performs a logical "exclusive OR" operation. The second combiner 344 combines the result of the first combiner 342 with the cache access signal 235 (eg, a cache hit). In one embodiment, the second combiner 344 performs a logical AND operation. Thus, a processor can only snoop on a line from another processor in the isolated region when the listening processor is running in independent execution mode, the page attribute is set to independent, and there is a cache hit. The access transaction is only allowed if the condition is met and a processor listen access signal 276 is generated for the individual region.

当没有为独立存储器区域访问初始化所有处理器时FSB监听检查电路330确保微处理器系统中的正确功能。X-NOR部件342确保监听命中只从已经允许独立访问的处理器发生。如果一个处理器还没有参与独立存储区域的访问,就不会允许它监听另一个参与独立存储区域访问的处理器的线路输出。同样,已经为独立访问而激活的处理器不会不经意地监听没有激活的另一个处理器的线路输出。FSB snoop check circuit 330 ensures correct functionality in a microprocessor system when not all processors are initialized for an individual memory region access. The X-NOR component 342 ensures that snoop hits only occur from processors that have allowed independent access. If a processor is not already participating in an access to an isolated memory region, it will not be allowed to listen to the line output of another processor participating in an independent memory region access. Likewise, a processor that has been activated for independent access does not inadvertently listen to the line output of another processor that is not activated.

当建立了高速缓冲存储器访问信号235指示高速缓冲存储器命中并建立外部独立访问信号278以及属性96被设置为独立时建立独立区域的处理器监听访问信号276。The processor that establishes the independent region listens to the access signal 276 when the cache access signal 235 is established indicating a cache hit and the external independent access signal 278 is established and the attribute 96 is set to independent.

图3B是依照本发明的一种实施方案描述管理逻辑处理器操作的访问检查电路270的图。访问检查电路270包括逻辑处理器管理器360。FIG. 3B is a diagram depicting access check circuitry 270 that governs logical processor operation, according to one embodiment of the present invention. Access check circuit 270 includes logical processor manager 360 .

一个物理处理器可以有多个逻辑处理器。每个逻辑处理器可以进入或退出独立处理器状态,称为逻辑处理器访问。逻辑处理器访问通常是在对应的逻辑处理顺执行独立指令时产生的,例如独立进入(iso_enter)和独立退出(iso_exit)。逻辑处理器360管理由逻辑处理器访问导致的逻辑处理器操作。实际上,逻辑处理器管理器360跟踪一个处理器中激活的逻辑处理器的数量。逻辑处理器管理器360包括逻辑处理器寄存器370、逻辑处理器状态激活器382、逻辑处理器更新器380、最小探测器374和最大探测器376。逻辑处理器寄存器370存储逻辑处理器寄数372以指示当前激活的逻辑处理器的数量。当逻辑处理器访问有效时逻辑处理器状态激活器382激活逻辑处理器状态。逻辑处理器更新器380根据逻辑处理器访问更新逻辑处理器计数372。逻辑处理器更新器380由激活的逻辑处理器状态激活。在一种实施方案中,逻辑处理器寄存器370和逻辑处理器更新器380被实现为带激活信号的上/下计数器。最小检测器确定逻辑处理器计数372是否等于逻辑处理器数(例如,0)。最大检测器376确定逻辑处理器计数372是否超出最大逻辑处理器数。最大逻辑处理器数指示处理器110中的独立执行模式所支持的最大逻辑处理器数。A physical processor can have multiple logical processors. Each logical processor can enter or exit the independent processor state, known as logical processor access. A logical processor access is usually generated when the corresponding logical process executes an independent instruction in sequence, such as independent entry (iso_enter) and independent exit (iso_exit). Logical processor 360 manages logical processor operations resulting from logical processor accesses. In effect, logical processor manager 360 keeps track of the number of active logical processors in a processor. Logical processor manager 360 includes logical processor registers 370 , logical processor state activator 382 , logical processor updater 380 , min probe 374 and max probe 376 . Logical processor registers 370 store logical processor registers 372 to indicate the number of currently active logical processors. The logical processor state activator 382 activates the logical processor state when the logical processor access is active. The LP updater 380 updates the LP count 372 according to the LP access. The logical processor updater 380 is activated by the active logical processor state. In one embodiment, LP registers 370 and LP updater 380 are implemented as up/down counters with active signals. The minimum detector determines whether the logical processor count 372 is equal to the logical processor number (eg, 0). Maximum detector 376 determines whether logical processor count 372 exceeds the maximum number of logical processors. The maximum number of logical processors indicates the maximum number of logical processors supported by the independent execution mode in the processor 110 .

逻辑处理器更新器380在系统重启时初始化逻辑处理器寄存器370。当访问事务与逻辑处理器入口对应时逻辑处理器更新器380以第一方向(即,增加)更新逻辑处理器计数372。当访问事务与逻辑处理器出口或逻辑处理器后退对应时逻辑处理器更新器380以和第一方向相反的第二方向(即,减少)更新逻辑处理器计数372。当逻辑处理器计数372等于最小逻辑处理器数时,逻辑处理器管理器360使处理器110通过把高速缓存器232(图2A)写回主存储器来清空它,并使来自所有独立信息的独立设置寄存器(图2A)在这些存储段中恢复初始状态。当逻辑处理器计数372超过最大逻辑处理器数时,逻辑处理器管理器360使处理器110产生失败或缺失条件,因为逻辑处理器的总数超过处理器中能够支持的逻辑处理器的最大数。The LP updater 380 initializes the LP registers 370 upon system restart. LP updater 380 updates LP count 372 in a first direction (ie, increment) when an access transaction corresponds to a LP entry. The LP updater 380 updates the LP count 372 in a second direction opposite to the first direction (ie, decrements) when the access transaction corresponds to a LP exit or a LP back. When the logical processor count 372 is equal to the minimum number of logical processors, the logical processor manager 360 causes the processor 110 to flush the cache 232 (FIG. 2A) by writing it back to main memory, and makes independent The setup registers (Figure 2A) restore the initial state in these memory segments. Logical processor manager 360 causes processor 110 to fail or miss a condition when logical processor count 372 exceeds the maximum number of logical processors because the total number of logical processors exceeds the maximum number of logical processors that can be supported in the processor.

图4是依照本发明的一种实施方案描述为独立执行产生访问许可信号的方法400。FIG. 4 depicts a method 400 for generating an access grant signal for a stand-alone execution, in accordance with one embodiment of the present invention.

从START开始,方法400分发页面到多个独立存储区域(块410)。然后,方法400在处理器控制寄存器中建立执行模式字以便用独立执行模式配置处理器(块420)。方法400然后从来自处理器的访问事务接收访问信息(块425)。访问信息包括物理地址(由TLB提供、页面属性(独立/非独立)和访问类型。接着,方法400确定属性是否被设置为独立以及是否建立了执行模式字(指示设置为独立)(块430)。如果不是,方法400就产生一个失败或错误条件(块435)并结束。否则,方法400建立访问许可信号(块440)。然后方法400结束。Beginning at START, method 400 distributes pages to multiple independent storage areas (block 410). The method 400 then sets up the execution mode word in the processor control register to configure the processor in an independent execution mode (block 420). The method 400 then receives access information from the access transaction from the processor (block 425). Access information includes physical address (provided by TLB, page attribute (independent/non-independent) and access type. Next, method 400 determines whether attribute is set to independent and whether an execution mode word is set up (indicating setting to independent) (block 430) If not, method 400 generates a failure or error condition (block 435) and ends. Otherwise, method 400 establishes an access permission signal (block 440). Method 400 then ends.

图5是描述依照本发明的一种实施方案管理独立执行的逻辑处理器操作的过程500的流程图。FIG. 5 is a flowchart depicting a process 500 for managing independently executing logical processor operations in accordance with one embodiment of the present invention.

从START开始,当没有激活的逻辑处理器时过程500初始化逻辑处理器寄存器(块510)。然后过程500执行一个逻辑处理器访问指令(例如,iso_enter、iso_exit)。逻辑处理器访问指令建立执行模式字。接着,过程500激活逻辑处理器状态(块525)。然后,过程500确定逻辑处理器访问类型(块530)。From START, process 500 initializes logical processor registers when there are no active logical processors (block 510). Process 500 then executes a logical processor access instruction (eg, iso_enter, iso_exit). A logical processor access instruction establishes an execution mode word. Next, process 500 activates the logical processor state (block 525). Process 500 then determines the logical processor access type (block 530).

如果逻辑处理器访问类型是一个逻辑处理器入口,过程500以第一方向(例如,增加)更新逻辑处理器计数(块540)。然后,过程500确定逻辑处理器计数是否超过了最大逻辑处理器数(块550)。如果没有,过程500就流经块570。否则,过程500产生一个失败或错误条件(块560)并结束。If the LP access type is a LP entry, process 500 updates the LP count in a first direction (eg, increment) (block 540). Process 500 then determines whether the logical processor count exceeds the maximum number of logical processors (block 550). If not, process 500 flows through block 570. Otherwise, process 500 generates a failure or error condition (block 560) and ends.

如果逻辑处理器访问类型是逻辑处理器出口或逻辑处理器后退时,过程500以和第一方法相反的第二方向(例如,减少)更新逻辑处理器计数(块545)。然后,过程500确定逻辑处理器计数是否等于最小值(例如,0)(块555)。如果不是,过程500流经块570。否则,过程500从所有独立信息初始化高速缓存器和独立设置寄存器。(块565)。If the LP access type is LP exit or LP back, process 500 updates the LP count in a second direction (eg, decrement) opposite the first method (block 545 ). Process 500 then determines whether the logical processor count is equal to a minimum value (eg, 0) (block 555). If not, process 500 flows through block 570 . Otherwise, process 500 initializes the cache and individual setup registers from all individual information. (block 565).

接着,过程500判断下一个逻辑寄存器访问(块570)。如果有下一个逻辑处理器访问,过程500返回块520以执行逻辑处理器访问指令。如果没有其它逻辑处理器访问,过程500结束。Next, the process 500 judges the next logical register access (block 570). If there is a next logical processor access, process 500 returns to block 520 to execute the logical processor access instruction. If there are no other logical processor accesses, process 500 ends.

在一个独立执行环境中控制对多个独立存储器的访问Control access to multiple independent memories in one independent execution environment

上面的描述指的是处理器110中的独立执行过程。对图1C中所示的多个独立存储区域71的访问由MCH 130(图1F)进一步控制。参考图1F,处理器110把MCH 130看作映射到一个地址单元的输入/输出设备。为了访问独立存储区域70,尤其是多个独立存储区域71(图1C),处理器110需要配置MCH 130中的存储器配置存储区。MCH 130还包括允许处理器110访问多个独立存储区域83中的存储器140的控制功能。MCH 130通过主机总线120从处理器110接收信号(例如独立访问信号)或总线周期信息。The above description refers to independent execution processes in the processor 110 . Access to the multiple independent memory areas 71 shown in Figure 1C is further controlled by the MCH 130 (Figure 1F). Referring to FIG. 1F, the processor 110 regards the MCH 130 as an input/output device mapped to an address unit. In order to access the independent storage area 70, especially the plurality of independent storage areas 71 (FIG. 1C), the processor 110 needs to configure the memory configuration storage area in the MCH 130. MCH 130 also includes control functions that allow processor 110 to access memory 140 in multiple independent storage areas 83. MCH 130 receives signals (eg, independent access signals) or bus cycle information from processor 110 via host bus 120.

在图1F中,MCH 130被描述为在处理器110之外。但也可以把MCH130包括在处理器110之中。这种情况下,要使MCH 130中的寄存器的写周期具体化以允许任意外部高速缓冲存储器参与高速缓冲存储器一致性。In FIG. 1F , MCH 130 is depicted as being external to processor 110. However, MCH 130 may also be included in processor 110 . In this case, write cycles to registers in the MCH 130 are materialized to allow any external cache to participate in cache coherency.

本质上,MCH 130中的访问控制器执行与图3A中所示的访问检查电路270类似的功能。通过维持处理器110和MCH 130中的访问一致性,可以更紧密地控制对存储器的访问。MCH 130中的访问控制器确定来自处理器110的访问事务是否有效。如果有效,访问控制器返回一个访问许可信号以允许完成访问事务。否则,就产生一个失败或错误条件。另外,MCH 130中的访问控制器还保护对它配置和控制存储区的有意或无意的定。因为MCH 130是和存储器140直接接合,访问控制器还在重启时提供对独立存储区域和它自己的内部存储区的内容的初始化。Essentially, the access controller in the MCH 130 performs a similar function to the access check circuit 270 shown in FIG. 3A. By maintaining access coherency in processor 110 and MCH 130, access to memory can be more tightly controlled. The access controller in MCH 130 determines whether the access transaction from processor 110 is valid. If valid, the access controller returns an access-grant signal to allow the access transaction to complete. Otherwise, a failure or error condition is generated. In addition, the access controller in the MCH 130 also protects the intentional or unintentional setting of its configuration and control memory areas. Because the MCH 130 is directly interfaced with the memory 140, the access controller also provides initialization of the contents of the separate memory area and its own internal memory area upon restart.

图6是依照本发明的一种实施方案描述图1F中所示的存储控制器中心(MCH)130中的独立区域访问控制器135。访问控制器135包括配置存储区610、配置控制器640和MCH地址检查电路810。FIG. 6 is a diagram illustrating an individual zone access controller 135 in the memory controller hub (MCH) 130 shown in FIG. 1F according to one embodiment of the present invention. Access controller 135 includes configuration storage 610 , configuration controller 640 and MCH address checking circuit 810 .

配置存储区610配置由图1F中的处理器110产生的访问事务。处理器110有正常执行模式和独立执行模式。访问事务拥有访问信息660。访问信息660由主机总线120(图1F)传送并且包括地址信息和独立访问状态。地址信息由物理地址662表示。独立访问状态由独立访问信号664表示。独立访问信号664实际上等价于图2A中所示的处理器独立访问信号272。当处理器110产生对(图1C中所示的)多个独立存储区域71其中之一的有效引用时建立独立访问信号664。Configuration store 610 configures access transactions generated by processor 110 in FIG. 1F . Processor 110 has a normal execution mode and an independent execution mode. The access transaction has access information 660 . Access information 660 is carried by host bus 120 (FIG. IF) and includes address information and individual access status. Address information is represented by a physical address 662 . The independent access state is represented by independent access signal 664 . Independent access signal 664 is effectively equivalent to processor independent access signal 272 shown in FIG. 2A. The independent access signal 664 is asserted when the processor 110 makes a valid reference to one of the plurality of independent storage areas 71 (shown in FIG. 1C ).

配置存储区610包括存储器所有权页表(MOPT)77的高速缓冲存储器660。配置存储区610在高速缓冲存储器660中为物理地址662执行查找工作以找到该物理地址和相关页表记录。如果该物理地址不在高速缓冲存储器219中配置存储区610就在MOPT 77(图1E)自身中为物理地址662执行查找。配置存储区610使用MOPT 221的基地址在MOPT 77中查找物理地址662。也参考图1E,配置存储区610从MOPT221的基地址开始执行对MOPT 77的查找并找到与物理地址662相关的页表记录93。配置存储区能够查找页面98的物理地址来定位与该物理地址相关的页表记录93。每个页表记录93包括和为MCH 130配置访问事务非常重要的物理地址相关的页面的属性96(独立或非独立)。应该理解在页表中执行查找以个物理地址和相关页表记录在本领域中是一项众所周知的技术,在本领域技术人员的知识范围中其它查找方法也可以使用。Configuration store 610 includes cache memory 660 of memory ownership page table (MOPT) 77 . Configuration store 610 performs a lookup in cache memory 660 for physical address 662 to find the physical address and the associated page table record. If the physical address is not configured in cache memory 219, storage area 610 performs a lookup for physical address 662 in MOPT 77 (FIG. 1E) itself. Configuration store 610 uses the base address of MOPT 221 to look up physical address 662 in MOPT 77. Referring also to FIG. 1E , configuration store 610 performs a lookup of MOPT 77 starting from the base address of MOPT 221 and finds page table entry 93 associated with physical address 662. The configuration store can look up the physical address of the page 98 to locate the page table record 93 associated with that physical address. Each page table record 93 includes an attribute 96 (independent or non-independent) of the page associated with the physical address that is important for the MCH 130 configuration access transaction. It should be understood that performing a lookup in a page table to obtain a physical address and associated page table records is a well-known technique in the art, and other lookup methods can also be used within the knowledge of those skilled in the art.

配置存储区250还包含配置由MCH 130产生的访问事务的配置参数。配置存储区包括与查找找到的被设置为独立或非独立的物理地址相关的页面的属性96。如前所述,只有独立执行模式下的处理器110能够访问独立存储区域71。The configuration storage area 250 also contains configuration parameters that configure the access transactions generated by the MCH 130. The configuration store includes attributes 96 of the pages associated with the physical addresses found by the lookup that are set as independent or non-independent. As mentioned above, only the processor 110 in the independent execution mode can access the independent storage area 71 .

配置控制器640控制对配置存储区610的访问并向存储器140提供一些控制功能。Configuration controller 640 controls access to configuration storage 610 and provides some control functions to memory 140 .

MCH访问检查电路810用访问信息660、属性96、独立访问信号664和独立存储器优先级736产生访问许可信号652。访问许可信号652指示访问事务是否有效。访问许可信号652可以由处理器110或其它芯片组或其它设备产生以确定是否允许访问独立存储区域71的企图。MCH access check circuit 810 uses access information 660 , attributes 96 , individual access signal 664 and individual memory priority 736 to generate access grant signal 652 . Access permission signal 652 indicates whether the access transaction is valid. Access permission signal 652 may be generated by processor 110 or other chipset or other device to determine whether an attempt to access separate storage area 71 is permitted.

图7是依照本发明的一种实施方案描述图6中所示的MCH访问检查电路810的图。FIG. 7 is a diagram illustrating the MCH access check circuit 810 shown in FIG. 6 according to one embodiment of the present invention.

MCH访问检查电路810根据属性96和独立访问信号664产生访问许可信号652。访问许可信号652指示访问事务是否有效。MCH访问检查电路810接收属性96和独立访问信号664以产生访问许可信号652。当属性96被设为独立并建立了指示独立访问有效或允许这样配置的独立访问信号664时建立访问许可信号652。在一种实施方案中,MCH访问检查电路810执行逻辑“异或”操作。因而,当处理器请求独立区域的一个物理地址时,仅当处理器以独立执行模式运行并且与该物理地址相关的页面的属性被设为独立时,才许可该访问事务。MCH access check circuit 810 generates access grant signal 652 based on attributes 96 and independent access signal 664 . Access permission signal 652 indicates whether the access transaction is valid. MCH access check circuit 810 receives attribute 96 and independent access signal 664 to generate access grant signal 652 . The access permission signal 652 is established when the attribute 96 is set to independent and the independent access signal 664 is asserted indicating that independent access is enabled or that such configuration is allowed. In one embodiment, the MCH access check circuit 810 performs a logical "exclusive OR" operation. Thus, when a processor requests a physical address of an isolated region, the access transaction is granted only if the processor is running in an independent execution mode and the attribute of the page associated with the physical address is set to independent.

图8是依照本发明的一种实施方案描述为MCH的独立执行配置访问事务的过程800。FIG. 8 illustrates a process 800 for configuring access transactions for independent execution of the MCH, in accordance with one embodiment of the present invention.

从START开始,过程800为MCH配置访问事务(块810)。然后,过程800从访问事务接收访问信息(块820)。访问信息包括物理地址、独立访问信号和页面属性(独立/非独立)。接着,过程800确定该属性是否被设置为独立以及是否建立了独立访问信号(块830)。如果条件不满足,过程800产生一个失败或错误条件(块835)并结束。否则,过程800建立访问许可信号(块840)。然后过程800结束。Beginning at START, process 800 configures an access transaction for the MCH (block 810). Process 800 then receives access information from the access transaction (block 820). Access information includes physical addresses, independent access signals, and page attributes (independent/non-independent). Next, the process 800 determines whether the attribute is set to independent and whether the independent access signal is asserted (block 830). If the condition is not met, process 800 generates a failure or error condition (block 835) and ends. Otherwise, the process 800 establishes an access permission signal (block 840). Process 800 then ends.

虽然我们是参考说明性的实施方案对本发明进行了描述,但这些描述并不是为了限制本发明。对本发明所适合的本领域的技术人员来说显而易见的对说明性实施方案的不同更改以及本发明的其它实施方案都被认为在本发明的精神和范围内。While the invention has been described with reference to illustrative embodiments, these descriptions are not intended to limit the invention. Various modifications of the illustrative embodiments, as well as other embodiments of the invention, which are apparent to those skilled in the art to which the invention pertains are considered to be within the spirit and scope of the invention.

Claims (30)

1, a kind of equipment comprises:
Distribute the page manager of a plurality of pages to a plurality of zoness of different of storer respectively, storer is divided into isolated area and non-isolated area, and page manager is arranged in an isolated area of storer; With
Be arranged in the storer entitlement page table of an isolated area of storer, storer entitlement page table is described each page or leaf of storer.
2, the equipment of claim 1 is if wherein page isolated area page manager being assigned to storer is just distributed to this page independent attribute.
3, the equipment of claim 2, if wherein page non-isolated area page manager being assigned to storer is just distributed to its non-independent attribute, storer entitlement page table writes down the attribute of each page.
4, the equipment of claim 3 also comprises:
The configuration store district comprises the configuration setting of configuration by the accessing work of the processor generation that normal execution pattern and independent execution pattern are arranged, and accessing work has visit information; With
With the access checking circuit of configuration store district coupling, at least one that be responsible for disposing in setting and the visit information checked accessing work.
5, the equipment of claim 4, wherein configuration setting comprises page properties and execution pattern word.
6, the equipment of claim 5, wherein visit information physical address and access type, access type indication accessing work is memory access, I/O visit or logic processor visit.
7, the equipment of claim 5, wherein the configuration store district also comprises the property store district, the property store district comprises the definition page and is independent or dependent attribute.
8, the equipment of claim 5, wherein the configuration store district also comprises the processor control register to comprise the execution pattern word, the execution pattern word is set up by processor when processor is configured in independent execution pattern.
9, the equipment of claim 5, wherein the access checking circuit comprises whether attribute that TLB access checking circuit detects the page is configured to independent and whether has set up the execution pattern word, and TLB access checking circuit produces the access permission signal.
10, the equipment of claim 5, wherein the access checking circuit comprises that the FSB that is coupled with cache memory monitors check circuit, FSB monitors the check circuit composite attribute, from the outside independent access signal and the cache access signal of another processor, FSB monitors check circuit and produces processor snoop accesses signal.
11, a kind of method comprises:
Use page manager to distribute a plurality of zoness of different of a plurality of pages to storer respectively, storer is divided into isolated area and non-isolated area, and page manager is arranged in an isolated area of storer; With
Each page of storer is described.
12, the method for claim 11, each page of wherein describing storer are included in a page and distribute independent attribute to it when being assigned to isolated area of storer.
13, the method for claim 12, each page of wherein describing storer also comprises:
If the non-isolated area that page is distributed to storer distributes non-independent attribute to it; With
The attribute of each page of record in storer entitlement page table.
14, the method in the claim 13 also comprises:
The accessing work that configuration is produced by the processor that has the configuration store district that comprises the configuration setting, processor has normal execution pattern and independent execution pattern, and accessing work has visit information; With
Use at least a inspection accessing work that disposes in setting and the visit information by the access checking circuit.
15, the method for claim 14, wherein configuration setting comprises page properties and execution pattern word.
16, the method for claim 15, wherein visit information comprises physical address and access type, access type indication accessing work is memory access, I/O visit or logic processor visit.
17, the method for claim 15, wherein configuration access affairs also comprise:
The attribute that the page is set is independent or non-independence; And memory attribute in the property store district in the configuration store district.
18, the method for claim 15, wherein configuration access affairs also comprise sets up the execution pattern word in the processor control store when processor is configured to independent execution pattern.
19, the method for claim 15, check that wherein accessing work comprises:
Whether the attribute of checking the page has been configured to independence;
Detect and whether set up the execution pattern word; With
Produce the access permission signal.
20, the method for claim 15, check that wherein accessing work comprises:
Composite attribute, from the independent access signal and the cache access signal of another processor; With
Produce processor snoop accesses signal.
21, a kind of system comprises:
Chipset;
Be coupled to the storer of chipset;
Be coupled to the processor of chipset and storer, this processor has independent execution pattern and normal execution pattern;
The page manager of operation under processor control, page manager is distributed a plurality of zoness of different of a plurality of pages to storer respectively, storer is divided into the storer of isolated area and non-isolated area, the page manager in the isolated area of page manager storer; With
Be arranged in the storer entitlement page table of an isolated area of storer, storer entitlement page table is described each page of storer.
22, the system of claim 21, wherein page manager is given when a page is distributed to isolated area of storer and is given this page independent attribute.
23, the system of claim 22, wherein page manager gives this page non-independent attribute when a page is distributed to non-isolated area of storer, and storer entitlement page table writes down the attribute of each page.
24, the system of claim 23 also comprises:
Comprise the configuration store district of configuration by the configuration setting of the accessing work of the processor generation that normal manipulation mode and independent manipulation mode are arranged, accessing work has visit information; With
With configuration store coupling and with the access checking circuit of at least a inspection accessing work of configuration setting and visit information.
25, the system of claim 24, wherein configuration setting comprises page properties and execution pattern word.
26, the system of claim 25, wherein visit information comprises physical address and access type, access type indication accessing work is memory access, I/O visit or logic processor visit.
27, the system of claim 25, wherein the configuration store district comprises that also the property store district is independent or dependent page properties to comprise the definition page.
28, the system of claim 25, wherein the configuration store district also comprises the processor control register comprising the execution pattern word, the execution pattern word is set up with independent execution pattern configuration processor the time.
29, the system of claim 25, wherein the access checking circuit comprises whether TLB access checking circuit is set to independently and whether has set up the execution pattern word with the attribute that detects the page, and TLB access checking circuit produces the access permission signal.
30, the system of claim 25, wherein the access checking circuit comprises that also the FSB that is coupled with cache memory monitors check circuit, FSB monitors the check circuit composite attribute, from the outside independent access signal and the cache access signal of another processor, FSB monitors check circuit and produces processor snoop accesses signal.
CNB018158838A 2000-07-18 2001-07-13 Control access to multiple independent memories in one independent execution environment Expired - Lifetime CN1252597C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/618,738 2000-07-18
US09/618,738 US6678825B1 (en) 2000-03-31 2000-07-18 Controlling access to multiple isolated memories in an isolated execution environment

Publications (2)

Publication Number Publication Date
CN1459059A CN1459059A (en) 2003-11-26
CN1252597C true CN1252597C (en) 2006-04-19

Family

ID=24478929

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018158838A Expired - Lifetime CN1252597C (en) 2000-07-18 2001-07-13 Control access to multiple independent memories in one independent execution environment

Country Status (8)

Country Link
JP (1) JP3982687B2 (en)
CN (1) CN1252597C (en)
AU (1) AU2001271996A1 (en)
DE (1) DE10196440B4 (en)
GB (1) GB2381626B (en)
HK (1) HK1052237B (en)
TW (1) TW526416B (en)
WO (1) WO2002006929A2 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2378005A (en) * 2001-07-27 2003-01-29 Chien-Tzu Hou Method for Controlling Paged Memory Access Attributes
US7571318B2 (en) * 2002-03-27 2009-08-04 Advanced Micro Devices, Inc. Method and apparatus for improved security in a data processor
US7325115B2 (en) * 2003-11-25 2008-01-29 Microsoft Corporation Encryption of system paging file
EP1544820B1 (en) * 2003-12-11 2013-07-31 Atos Worldline S.A. Electronic data processing device
KR100917290B1 (en) * 2004-06-24 2009-09-11 인텔 코오퍼레이션 Method and apparatus for secure virtualization of trust platform module
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7587595B2 (en) 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7571312B2 (en) 2005-05-13 2009-08-04 Intel Corporation Methods and apparatus for generating endorsement credentials for software-based security coprocessors
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
US7477535B2 (en) * 2006-10-05 2009-01-13 Nokia Corporation 3D chip arrangement including memory manager
US9280659B2 (en) 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US8060876B2 (en) 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8064605B2 (en) 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8249257B2 (en) 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8584229B2 (en) 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8307180B2 (en) * 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
CN103209212B (en) * 2013-03-22 2015-09-16 烽火通信科技股份有限公司 Based on the data cache method in the Web network management client of RIA and system
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
CN106528453B (en) * 2015-09-10 2019-10-18 中国航空工业第六一八研究所 Device and method for page table partition management based on composite scale page

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
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
EP0600112A1 (en) * 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Data processing system with virtual memory addressing and memory access controlled by keys
US6542919B1 (en) * 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
DE19735948C1 (en) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Method for improving controllability in data processing equipment with translation-look-aside-buffer (TLB)
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution

Also Published As

Publication number Publication date
JP2004504663A (en) 2004-02-12
DE10196440T5 (en) 2004-04-29
TW526416B (en) 2003-04-01
WO2002006929A2 (en) 2002-01-24
GB2381626A (en) 2003-05-07
GB2381626B (en) 2005-02-09
GB0303644D0 (en) 2003-03-19
HK1052237B (en) 2005-06-03
AU2001271996A1 (en) 2002-01-30
WO2002006929A3 (en) 2002-04-25
HK1052237A1 (en) 2003-09-05
JP3982687B2 (en) 2007-09-26
DE10196440B4 (en) 2006-03-23
CN1459059A (en) 2003-11-26

Similar Documents

Publication Publication Date Title
CN1252597C (en) Control access to multiple independent memories in one independent execution environment
CN1308783C (en) Isolated instructions for isolated execution
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
US6795905B1 (en) Controlling accesses to isolated memory using a memory controller for isolated execution
US6941458B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
JP4822646B2 (en) Generating a key hierarchy for use in an isolated execution environment
US7194634B2 (en) Attestation key memory device and bus
US7689733B2 (en) Method and apparatus for policy-based direct memory access control
US7013484B1 (en) Managing a secure environment using a chipset in isolated execution mode
US9734092B2 (en) Secure support for I/O in software cryptoprocessor
US20060047959A1 (en) System and method for secure computing
KR20210047975A (en) Memory initialization in a protected region
CN1846195A (en) Computer system employing a trusted execution environment including a memory controller configured to clear memory
US7013481B1 (en) Attestation key memory device and bus
CN1781069A (en) A computer system including a bus bridge for connection to a security services processor
JP4391832B2 (en) Input/Output Permission Bitmaps for Compartmentalized Security
US20080163366A1 (en) User-level privilege management
US6754815B1 (en) Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7089418B1 (en) Managing accesses in a processor for isolated execution
US7111176B1 (en) Generating isolated bus cycles for isolated execution
US6769058B1 (en) Resetting a processor in an isolated execution environment
KR100802686B1 (en) Array boundary checking method and system

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
CX01 Expiry of patent term

Granted publication date: 20060419

CX01 Expiry of patent term