DE10196440B4 - Control access to multiple isolated storage in an isolated execution environment - Google Patents

Control access to multiple isolated storage in an isolated execution environment Download PDF

Info

Publication number
DE10196440B4
DE10196440B4 DE10196440T DE10196440T DE10196440B4 DE 10196440 B4 DE10196440 B4 DE 10196440B4 DE 10196440 T DE10196440 T DE 10196440T DE 10196440 T DE10196440 T DE 10196440T DE 10196440 B4 DE10196440 B4 DE 10196440B4
Authority
DE
Germany
Prior art keywords
isolated
access
memory
page
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10196440T
Other languages
German (de)
Other versions
DE10196440T5 (en
Inventor
Roger Beaverton Golliver
James Portland Sutton II
Derrick Foster City Lin
Shreekant Portland Thakkar
Gilbert Portland Neiger
Francis Portland Mckeen
Howard Phoenix Herbert
Kenneth Woodinville Reneris
Carl Portland Ellison
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 DE10196440T5 publication Critical patent/DE10196440T5/en
Application granted granted Critical
Publication of DE10196440B4 publication Critical patent/DE10196440B4/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/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

Eine Einrichtung zum Steuern von Speicherzugriffen, aufweisend:
einen Prozessor mit einem normalen Ausführungsmodus und einem isolierten Ausführungsmodus, wobei der Prozessor in dem isolierten Ausführungsmodus eine Unterstützung für eine isolierte Ausführung zur Verfügung stellt, die das Festlegen isolierter Speicherbereiche, das Unterstützen isolierter Befehle und das Sicherstellen, daß auf die isolierten Speicherbereiche nur im isolierten Ausführungsmodus zugegriffen werden kann, einschließt;
einen Seitenmanager, der unter der Kontrolle des im isolierten Ausführungsmodus befindlichen Prozessors arbeitet, um eine Mehrzahl von Seiten auf eine Mehrzahl verschiedener Bereiche eines Speichers zu verteilen, wobei der Speicher in nicht-isolierte Bereiche und isolierte Bereiche unterteilt ist, wobei der Seitenmanager in einem isolierten Bereich des Speichers angeordnet ist; und
eine Speicherbesitz-Seitentabelle, die in einem isolierten Bereich des Speichers angeordnet ist, wobei die Speicherbesitz-Seitentabelle jede Seite des Speichers beschreibt, wobei eine Beschreibung einer Seite in der Speicherbesitz-Seitentabelle eine Speicheradresse und ein Attribut umfaßt, wobei das Attribut die Seite als...
A device for controlling memory accesses, comprising:
a processor having a normal execution mode and an isolated execution mode, wherein in the isolated execution mode the processor provides support for isolated execution, setting isolated storage areas, supporting isolated instructions, and ensuring that the isolated storage areas are isolated only Execution mode can be accessed includes;
a page manager operating under the control of the isolated execution mode processor to distribute a plurality of pages to a plurality of different portions of a memory, wherein the memory is divided into non-isolated regions and isolated regions, the page manager being isolated Area of the memory is arranged; and
a memory-ownership page table located in an isolated area of the memory, the memory-occupancy page table describing each page of memory, a description of a page in the memory-ownership page table comprising a memory address and an attribute, the attribute defining the page as. ..

Figure 00000001
Figure 00000001

Description

Die Erfindung bezieht sich auf eine Einrichtung bzw. ein Verfahren zum Steuern von Speicherzugriffen mit einem Prozessor und einem Seitenmanager, der unter der Kontrolle des Prozessors arbeitet.The The invention relates to a device or a method for Controlling memory accesses with a processor and a page manager, which works under the control of the processor.

Fortschritte bei Mikroprozessoren und in der Kommunikationstechnologie eröffneten viele Möglichkeiten für Anwendungen, die über herkömmliche Wege, Geschäfte auszuführen, hinausgehen. Electronic commerce (E-commerce) und Business-to-business(B2B)-Transaktionen werden jetzt populär und über globale Märkte bei stets wachsenden Raten ausführt. Während moderne Mikroprozessorsysteme den Benutzern bequeme und effiziente Verfahren zum Ausführen von Geschäften, zum Kommunizieren und zur Ausführung von Transaktionen zur Verfügung stellen, sind sie unglücklicherweise auch für skrupellose Angriffe anfällig. Beispiele dieser Angriffe umfassen Viren, ein Eindringen, Sicherheitsverletzungen und unbefugtes Einmischen, um nur einige wenige zu nennen. Die Computersicherheit wird somit zunehmend wichtiger, um die Integrität der Computersysteme zu schützen und das vertrauen der Benutzer zu erhöhen.progress in microprocessors and in communications technology many possibilities for applications, the above conventional ways shops perform, go out. Electronic commerce (e-commerce) and business-to-business (B2B) transactions are becoming popular now and over global markets executes at ever-increasing rates. While Modern microprocessor systems provide users with convenient and efficient procedures to run of shops, to communicate and to execute of transactions available unfortunately they are also for unscrupulous attacks vulnerable. Examples of these attacks include viruses, intrusions, security breaches and unauthorized interference, just to name a few. Computer security is thus becoming increasingly important to protect the integrity of computer systems and to increase the trust of users.

Von skrupellosen Angriffen verursachte Gefahren können eine Reihe von Formen annehmen. Ein invasiver ferngestarteter Angriff durch Hacker kann den normalen Betrieb eines mit Tausenden oder gar Millionen von Benutzern verbundenen Systems unterbrechen. Ein Virenprogramm kann Befehlscode und/oder Daten einer Einzelbenutzerplattform zerstören.From Dangers caused by unscrupulous attacks can take a number of forms accept. An invasive remote-launched attack by hackers can the normal operation of one with thousands or even millions of Interrupt user connected system. A virus program can Destroy command code and / or data of a single-user platform.

Vorhandene Techniken zum Schutz gegen Angriffe weisen eine Reihe von Nachteilen auf. Antivirenprogramme können nur nach bekannten Viren suchen und diese erfassen. Sicherheitscoprozessoren oder -Smartcards, die kryptografische oder andere Sicherheitstechniken verwenden, weisen Einschränkungen bei der Geschwindigkeitsleistung, der Speicherkapazität und der Flexibilität auf. Darüber hinaus schafft die Neuentwicklung von Betriebssystemen Software-Kompatibilitätsprobleme und erfordert enorme Investitionen bei den Entwicklungsanstrengungen.Existing Attack protection techniques have a number of disadvantages on. Anti-virus programs can only search for known viruses and capture them. Sicherheitscoprozessoren or smartcards that use cryptographic or other security techniques use, have limitations in the speed performance, the storage capacity and the flexibility on. About that In addition, redesigning operating systems creates software compatibility issues and requires huge investment in development efforts.

Eine Einrichtung, bei der ein Seitenmanager unter der Kontrolle eines zusätzlichen sicheren Prozessors arbeitet, ist z. B. aus dem US-Patent Nr. 5,469,556 bekannt.A Facility where a site manager is under the control of a site manager additional secure processor works, z. From US Pat. No. 5,469,556 known.

Aufgabe der Erfindung ist es, einen verbesserten Schutz von Daten gegen unberechtigte Zugriffe zu unterstützen.task The invention is an improved protection of data against to support unauthorized access.

Diese Aufgabe wird erfindungsgemäß durch eine Einrichtung mit den Merkmalen des Anspruchs 1 bzw. ein Verfahren mit den Merkmalen des Anspruchs 11 gelöst.These The object is achieved by a Device with the features of claim 1 and a method solved with the features of claim 11.

Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.advantageous and / or preferred developments of the invention are characterized in the subclaims.

Einzelheiten und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der vorliegenden Erfindung klar, in welcher:details and advantages of the present invention will become apparent from the following detailed description of the present invention, in which:

1A ein Schema ist, das ein Betriebssystem gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1A is a diagram illustrating an operating system according to an embodiment of the invention.

1B ist ein Schema, das die Zugreifbarkeit der verschiedenen Elemente in dem Betriebssystem und dem Prozessor und einen einzigen zusammenhängenden isolierten Speicherbereich gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1B Figure 13 is a diagram illustrating the accessibility of the various elements in the operating system and the processor and a single contiguous isolated memory area according to one embodiment of the invention.

1C ist ein 1B ähnliches Schema, das die Zugreifbarkeit der verschiedenen Elemente in dem Betriebssystem und dem Prozessor und insbesondere mehrere isolierte Speicherbereiche und mehrere nicht-isolierte Speicherbereiche gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1C is a 1B Similar scheme illustrating the accessibility of the various elements in the operating system and processor, and more particularly, multiple isolated storage areas and multiple non-isolated storage areas according to one embodiment of the invention.

1D ist ein Ablaufdiagramm, das einen Prozeß zum Verteilen von Seiten des Speichers für eine isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1D Fig. 10 is a flowchart illustrating a process for distributing pages of the isolated-execution memory according to an embodiment of the invention.

1E ist ein Schema, das eine Speicherbesitz-Seitentabelle und einen Prozeß zum Konvertieren einer virtuellen Adresse in eine physikalische Adresse gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1E FIG. 12 is a diagram illustrating a memory ownership page table and a process for converting a virtual address to a physical address according to an embodiment of the invention. FIG.

1F ist ein Schema, das ein Computersystem veranschaulicht, in welchem ein Ausführungsbeispiel der Erfindung ausgeführt werden kann. 1F Figure 13 is a diagram illustrating a computer system in which an embodiment of the invention may be practiced.

2A ist ein Schema, das die in 1F gezeigte Isolierte-Ausführung-Schaltung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 2A is a scheme that the in 1F illustrated isolated-execution circuit according to an embodiment of the invention illustrated.

2B ist ein Schema, das den in 2A gezeigten Zugriffsmanager gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 2 B is a schema that uses the in 2A shown access manager according to a Ausfüh illustrated embodiment of the invention.

3A ist ein Schema, das eine Zugriffsüberprüfungsschaltung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 3A FIG. 12 is a diagram illustrating an access checking circuit according to an embodiment of the invention. FIG.

3E ist ein Schema, das die Zugriffsüberprüfungsschaltung zum Verwalten Logischer-Prozessor-Operationen gemäß einem weiteren Ausführungsbeispiel der Erfindung veranschaulicht. 3E FIG. 12 is a diagram illustrating the access checking circuitry for managing logical processor operations in accordance with another embodiment of the invention. FIG.

4 ist ein Ablaufdiagramm, das einen Prozeß zum Erzeugen eines Zugriffsgewährungssignals für eine isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 4 FIG. 10 is a flowchart illustrating a process for generating an isolated-access access grant signal according to an embodiment of the invention. FIG.

5 ist ein Ablaufdiagramm, das einen Prozeß zum Verwalten von Prozeß-Thread-Operationen für eine isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 5 FIG. 10 is a flow chart illustrating a process for managing process thread operations for isolated execution according to an embodiment of the invention. FIG.

6 ist ein Schema, das die Zugriffssteuerung für den isolierten Bereich in dem in 1F gezeigten Speicher-Controller-Hub (MCH) gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 6 is a scheme that sets the access control for the isolated area in the in 1F illustrated memory controller hub (MCH) according to an embodiment of the invention.

7 ist ein Schema, das die in 6 gezeigte MCH-Zugriffsüberprüfungsschaltung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 7 is a scheme that the in 6 shown MCH access checking circuit according to an embodiment of the invention illustrated.

8 ist ein Ablaufdiagramm, das einen Prozeß zum Erzeugen eines Zugriffsgewährungssignals für eine isolierte Ausführung für einen MCH gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 8th Fig. 10 is a flowchart illustrating a process for generating an isolated execution access grant signal for an MCH according to an embodiment of the invention.

Die vorliegende Erfindung ist ein Verfahren und eine Einrichtung zum Steuern/Kontrollieren von Speicherzugriffen auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung. Ein Seitenmanager wird verwendet, um eine Mehrzahl von Seiten jeweils auf eine Mehrzahl verschiedener Speicherberei che zu verteilen. Der Speicher ist in nicht-isolierte Bereiche und isolierte Bereiche unterteilt. Der Seitenmanager ist in einem isolierten Speicherbereich angeordnet. Ferner beschreibt eine Speicherbesitz-Seitentabelle jede Seite des Speichers und ist ebenfalls in einem isolierten Speicherbereich angeordnet. Der Seitenmanager weist einer Seite ein Isolier-Attribut zu, wenn die Seite zu einem isolierten Bereich des Speichers verteilt wird. Andererseits weist der Seitenmanager einer Seite ein Nicht-Isoliert-Attribut zu, wenn die Seite zu einem nicht-isolierten Bereich des Speichers verteilt wird. Die Speicherbesitz-Seitentabelle zeichnet das Attribut für jedes Seite auf.The The present invention is a method and an apparatus for the Control / control memory accesses to multiple isolated Storage in an isolated execution environment. A page manager is used to make a plurality of pages each on a plurality various storage areas to distribute. The memory is in non-isolated Divided areas and isolated areas. The page manager is arranged in an isolated storage area. Further describes a memory ownership page table is each page of memory and also arranged in an isolated storage area. The page manager assigns an insulating attribute to a page if the page becomes an isolated one Area of memory is distributed. On the other hand, the page manager points Add a non-isolated attribute to a page if the page is in a non-isolated area of the memory is distributed. The memory ownership page table records the attribute for every page on.

Bei einem Ausführungsbeispiel erzeugt ein Prozessor, der einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus aufweist, eine Zugriffstransaktion. Die Zugriffstransaktion wird unter Verwendung eines Konfigurationsspeichers, der Konfigurationseinstellungen enthält, konfiguriert. Die Zugriffstransaktion schließt Zugriffsinformationen ein, wie beispielsweise eine physikalische Adresse des Speichers, auf den zugegriffen werden soll. Die Konfigurationseinstellungen liefern Informationen bezüglich einer Seite des Speichers, die in die Zugriffstransaktion involviert ist. Die Konfigurationseinstellungen enthalten ein Attribut für die Seite, das die Seite als isoliert oder nicht-isoliert definiert und ein Ausführungsmoduswort, das angelegt wird, wenn der Prozessor in einem isolierten Ausführungsmodus konfiguriert ist. Bei einem Ausführungsbeispiel ist das Ausführungsmoduswort ein Einzelbit, das anzeigt, ob der Prozessor sich in dem isolierten Ausführungsmodus befindet. Eine mit dem Konfigurationsspeicher gekoppelte Zugriffsüberprüfungsschaltung überprüft die Zugriffstransaktion unter Verwendung wenigstens einer der Konfigurationseinstellungen und der Zugriffsinformationen.at an embodiment creates a processor that has a normal execution mode and an isolated execution mode execution mode has, an access transaction. The access transaction is under Using a configuration store, the configuration settings contains configured. The access transaction includes access information, such as a physical address of the memory to be accessed. Supply the configuration settings Information regarding a page of memory involved in the access transaction is. The configuration settings include an attribute for the page, which defines the page as isolated or non-isolated and an execution mode word, which is created when the processor is configured in an isolated execution mode is. In one embodiment is the execution mode word a single bit indicating whether the processor is in the isolated one execution mode located. An access check circuit coupled to the configuration memory checks the access transaction using at least one of the configuration settings and the access information.

Bei einem Ausführungsbeispiel enthält die Zugriffsüberprüfungsschaltung eine TLB-Zugriffsüberprüfungsschaltung. Die TLB-Zugriffsüberprüfungsschaltung erzeugt ein Zugriffsgewährungssignal, wenn die Zugriffstransaktion gültig ist. Insbesondere dann, wenn das Attribut für die Seite auf isoliert gesetzt ist und das Ausführungsmoduswort-Signal angelegt wird, erzeugt die TLB-Zugriffsüberprüfungsschaltung ein Zugriffsgewährungssignal für den isolierten Bereich des Speichers. Wenn somit ein Prozessor eine physikalische Adresse eines isolierten Bereichs des Speichers anfordert, wird nur dann, wenn der Prozessor in dem isolierten Ausführungsmodus arbeitet und das Attribut für die der physikalischen Adresse zugeordnete Seite auf isoliert gesetzt ist, die Zugriffstransaktion gewährt.at an embodiment contains the access checking circuit a TLB access checking circuit. The TLB access checking circuit generates an access grant signal, if the access transaction is valid is. Especially if the attribute for the page is set to isolated and the execution mode word signal is asserted generates the TLB access checking circuit an access grant signal for the isolated area of the memory. Thus, if a processor has a requests physical address of an isolated area of the memory, will only be when the processor is in the isolated execution mode works and the attribute for the page assigned to the physical address is set to isolated, grants the access transaction.

In der folgenden Beschreibung werden aus Gründen der Erläuterung zahlreiche Details argegegeben, um ein besseres Verständnis der vorliegenden Erfindung zu erreichen. Für einen Fachmann ist es jedoch klar, daß diese speziellen Details nicht erforderlich sind, um die vorliegende Erfindung auszuführen. An anderen Stellen werden gut bekannte elektrische Strukturen und Schaltungen in Blockdarstellungsform gezeigt, um die vorliegende Erfindung nicht zu verdecken.In The following description will be made for explanatory purposes Numerous details are given to get a better understanding of to achieve the present invention. However, it is for a specialist clearly, that this Special details are not required to the present invention perform. Elsewhere, well-known electrical structures and Circuits shown in block diagram to the present Not to obscure the invention.

ARCHITEKTURÜBERSICHTARCHITECTURE OVERVIEW

Ein Prinzip für die Bereitstellung von Sicherheit in einem Computersystem oder einer Plattform ist das Konzept einer Architektur der isolierten Ausführung. Die Architektur der isolierten Ausführung schließt logische und physikalische Definitionen von Hardware- und Softwarekomponenten ein, die direkt oder indirekt mit einem Betriebssystem des Computersystems oder der Plattform in Interaktion treten. Ein Betriebssystem und der Prozessor können verschiedene Ebenen der Hierarchie aufweisen, die als Ringe bezeichnet werden, die verschiedenen Betriebsmodi entsprechen. Ein Ring ist eine logische Unterteilung von Hardware- und Softwarekomponenten, die so ausgebildet sind, daß sie spezielle Aufgaben innerhalb des Betriebssystems ausführen. Die Unterteilung basiert typischerweise auf dem Grad oder dem Niveau der Privilegierung, nämlich der Möglichkeit, Änderungen an der Plattform vorzunehmen. Beispielsweise ist ein Ring-0 der innerste Ring, der auf der höchsten Ebene der Hierarchie ist. Ring-0 umfaßt die kritischen, privilegiertesten Komponenten. Darüber hinaus können Module im Ring-0 auch auf weniger privilegierte Daten zugreifen, jedoch nicht umgekehrt. Ring-3 ist der äußerste Ring, der sich auf der niedrigsten Ebene der Hierarchie befindet. Ring-3 umfaßt typischerweise die Ebene der Benutzer oder Anwendungen und weist das geringste Privileg auf. Ring-1 und Ring-2 stellen Zwischenringe mit absinkenden Ebenen der Sicherheit und/oder des Schutzes dar.One principle for providing security in a computer system or platform is the concept of an isolated execution architecture. The isolated execution architecture includes logical and physical definitions of hardware and software components that directly or interact indirectly with an operating system of the computer system or platform. An operating system and processor may have different levels of hierarchy, referred to as rings, that correspond to different modes of operation. A ring is a logical subdivision of hardware and software components designed to perform specific tasks within the operating system. The subdivision is typically based on the degree or level of privilege, namely the ability to make changes to the platform. For example, a ring-0 is the innermost ring that is at the highest level of the hierarchy. Ring-0 includes the most critical, privileged components. In addition, modules in Ring-0 can also access less privileged data, but not vice versa. Ring-3 is the outermost ring that is at the lowest level of the hierarchy. Ring-3 typically includes the level of users or applications and has the least privilege. Ring-1 and Ring-2 are intermediate rings with decreasing levels of safety and / or protection.

1A ist ein Schema, das eine logische Betriebsarchitektur 50 gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die logische Betriebsarchitektur 50 ist eine Abstraktion der Komponenten eines Betriebssystems und des Prozessors. Die logische Betriebsarchitektur 50 schließt Ring-0 10, Ring-1 20, Ring-2 30, Ring-3 40 und einen Prozessor-Nub-Lader 52 ein. Der Prozessor-Nub-Lader 52 ist eine Instanz eines Prozessor-Exekutive(PE)-Behandlers. Der PE-Behandler wird verwendet, um eine Prozessor-Exekutive (PE) zu handhaben und/oder zu verwalten, wie es später erörtert wird. Die logische Betriebsarchitektur 50 weist zwei Betriebsmodi auf: Einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus. Jeder Ring in der logischen Be triebsarchitektur 50 kann in beiden Modi betrieben werden. Der Prozessor-Nub-Lader 52 arbeitet nur in dem isolierten Ausführungsmodus. 1A is a schema that is a logical operating architecture 50 illustrated according to an embodiment of the invention. The logical operating architecture 50 is an abstraction of the components of an operating system and the processor. The logical operating architecture 50 closes ring-0 10 , Ring-1 20 , Ring-2 30 , Ring-3 40 and a processor nub loader 52 one. The processor nub loader 52 is an instance of a processor executive (PE) handler. The PE handler is used to manage and / or manage a processor executive (PE), as will be discussed later. The logical operating architecture 50 has two modes of operation: a normal execution mode and an isolated execution mode. Each ring in the logical operating architecture 50 can be operated in both modes. The processor nub loader 52 works only in the isolated execution mode.

Ring-0 10 enthält zwei Abschnitte: einen Normale-Ausführung-Ring-0 11 und einen Isolierte-Ausführung-Ring-0 15. Der Normale-Ausführung-Ring-0 11 enthält Softwaremodule, die für das Betriebssystem kritisch sind, üblicherweise als Kernel bezeichnet. Diese Softwaremodule enthalten das primäre Betriebssystem (z.B. Kernel) 12, Software-Treiber 13 und Hardware-Treiber 14. Der Isolierte-Ausführung-Ring-0 15 enthält einen Betriebssystem(OS)-Nub 16 und einen Prozessor-Nub 18. Der OS-Nub 16 und der Prozessor-Nub 18 sind Instanzen einer OS-Exekutive (OSE) bzw. einer Prozessor-Exekutive (PE). Die OSE und die PE sind Teil der Exekutive- Entitäten, die in einer einem isolierten Bereich zugeordneten geschützten Umgebung und dem isolierten Ausführungsmodus arbeiten. Der Prozessor-Nub-Lader 52 ist ein geschützter Bootstrap-Lader-Code, der in einem Chipsatz in dem System gehalten wird und für das Laden des Prozessor-Nubs 18 aus dem Prozessor oder dem Chipsatz in einen isolierten Bereich verantwortlich ist, wie später erörtert wird.Ring 0 10 contains two sections: a normal-execution-ring-0 11 and an isolated-execution-ring-0 15 , The normal-execution-ring-0 11 contains software modules that are critical to the operating system, commonly referred to as kernels. These software modules contain the primary operating system (eg kernel) 12 , Software driver 13 and hardware drivers 14 , The isolated-execution-ring-0 15 contains an operating system (OS) sub 16 and a processor nub 18 , The OS Nub 16 and the processor nub 18 are instances of an OS executive (OSE) or a processor executive (PE). The OSE and the PEs are part of the executive entities that operate in a protected environment associated with an isolated area and the isolated execution mode. The processor nub loader 52 is a protected bootstrap loader code held in a chipset in the system and for loading the processor hub 18 from the processor or chipset into an isolated area, as will be discussed later.

In ähnlicher Weise umfassen der Ring-1 20, der Ring-2 30 und der Ring-3 40 einen Ring-1 21, einen Ring-2 31 und einen Ring-3 41 der normalen Ausführung und einen Ring-1 25, Ring-2 35 und Ring-3 45 der isolierten Ausführung. Insbesondere enthält der Normale-Ausführung-Ring-3 N Anwendungen 421 bis 42N , und der Isolierte-Ausführung-Ring-3 enthält K Applets 461 bis 46K .Similarly, ring-1 20 , the ring-2 30 and the ring-3 40 a ring-1 21 , a ring-2 31 and a ring-3 41 the normal version and a ring-1 25 , Ring-2 35 and ring-3 45 the isolated version. In particular, the normal-execution-ring-3 contains N applications 42 1 to 42 N , and the isolated-execution-ring-3 contains K applets 46 1 to 46 K ,

Ein Konzept der Architektur der isolierten Ausführung ist die Schaffung eines isolierten Gebiets in dem Systemspeicher, das als isolierter Bereich bezeichnet wird, welches sowohl durch den Prozessor als auch den Chipsatz in dem Computersystem geschützt ist. Das isolierte Gebiet kann sich auch in dem Cache-Speicher befinden, geschützt durch eine Übersetzungsnachschlagepuffer(TLB)-Zugriffsüberprüfung. Dar über hinaus kann das isolierte Gebiet in mehrere isolierte Speicherbereiche unterteilt sein, wie erörtert wird. Ein Zugriff auf dieses isolierte Gebiet ist nur ausgehend von einem frontseitigen Bus (FSB) des Prozessors unter Verwendung spezieller Buszyklen (z.B. Speicherlese- und -schreib-Zyklen) gestattet, die als isolierte Lese- und Schreib-Zyklen bezeichnet werden. Die speziellen Buszyklen werden auch für das Snooping verwendet. Die isolierten Lese- und Schreibzyklen werden von dem Prozessor ausgegeben, der in einem isolierten Ausführungsmodus ausführt. Der isolierte Ausführungsmodus wird unter Verwendung eines privilegierten Befehls in dem Prozessor, kombiniert mit dem Prozessor-Nub-Lader 52, initialisiert. Der Prozessor-Nub-Lader 52 überprüft und lädt ein Ring-0-Nub-Softwaremodul (z.B. Prozessor-Nub 18) in den isolierten Bereich. Der Prozessor-Nub 18 stellt hardwarebezogene Dienste für die isolierte Ausführung zur Verfügung.One concept of the isolated embodiment architecture is to provide an isolated area in the system memory, referred to as an isolated area, which is protected by both the processor and chipset in the computer system. The isolated area may also reside in the cache protected by translation lookaside buffer (TLB) access checking. In addition, the isolated area may be divided into multiple isolated memory areas, as discussed. Access to this isolated area is only permitted from a front-end bus (FSB) of the processor using special bus cycles (eg, memory read and write cycles) called isolated read and write cycles. The special bus cycles are also used for snooping. The isolated read and write cycles are issued by the processor executing in an isolated execution mode. The isolated execution mode is using a privileged instruction in the processor combined with the processor nub loader 52 , initialized. The processor nub loader 52 checks and loads a ring 0 nub software module (eg processor nub 18 ) in the isolated area. The processor nub 18 provides hardware-related services for isolated execution.

Eine Aufgabe des Prozessor-Nubs 18 besteht darin, den Ring-0-OS-Nub 16 zu überprüfen und in den isolierten Bereich zu laden und die Wurzel einer Schlüsselhierarchie zu erzeugen, die eine Kombination der Plattform, des Prozessor-Nubs 18 und des Betriebssystems-Nubs 16 eindeutig kennzeichnet. Der Prozessor-Nub 18 stellt das anfängliche Einricht- und Low-Level-Management des isolierten Bereichs zur Verfügung, einschließlich einer Überprüfung, des Ladens und des Protokollierens (logging) des Betriebssystem-Nubs 16 und der Verwaltung eines symmetrischen Schlüssels, der zum Schützen der Geheimnisse des Betriebssystem-Nubs verwendet wird. Der Prozessor-Nub 18 kann darüber hinaus Anwendungsprogrammierschnittstellen(API)-Abstraktionen an Low-Level-Sicherheitsdienste zur Verfügung stellen, die durch andere Hardware zur Verfügung gestellt werden.A task of the processor hub 18 is the Ring 0 OS Nub 16 check and load into the isolated area and generate the root of a key hierarchy that is a combination of platform, processor hub 18 and the operating system Nubs 16 clearly identifies. The processor nub 18 provides the initial setup and low-level management of the isolated area, including checking, loading, and logging of the operating system hub 16 and the management of a symmetric key used to protect the secrets of the operating system hub. The processor nub 18 In addition, application programmers provide interface (API) abstraction to low-level security services provided by other hardware.

Der Betriebssystem-Nub 16 stellt Verknüpfungen (Links) zu Diensten in den primären OS 12 (z.B. den ungeschützten Segmenten des Betriebssystems) zur Verfügung, stellt ein Seitenmanagement innerhalb des isolierten Bereichs zur Verfügung und ist für das Laden der Ring-3-Anwendungsmodule 45, einschließlich der Applets 461 bis 46K , in dem isolierten Bereich zugewiesene geschützte Seiten verantwortlich. Der Betriebssystem-Nub 16 kann außerdem Ring-0-Unterstützungsmodule laden. Wie erörtert wird, verwaltet das primäre OS 12 Seiten, die sich außerhalb des isolierten Bereichs befinden.The operating system nub 16 provides links to services in the primary OS 12 (eg, the unprotected segments of the operating system) provides page management within the isolated area and is for loading the Ring 3 application modules 45 including the applets 46 1 to 46 K responsible in the isolated area assigned protected pages. The operating system nub 16 can also load Ring 0 support modules. As discussed, the primary OS manages 12 Pages that are outside the isolated area.

Der Betriebssystem-Nub 16 kann auswählen, daß er ein Paging von Daten zwischen dem isolierten Bereich und gewöhnlichem (z.B. nicht-isolierten) Speicher unterstützt. Wenn dies der Fall ist, dann ist der Betriebssystem-Nub 16 auch für das Verschlüsseln und Hashing der Seiten des isolierten Bereichs, bevor die Seite in den gewöhnlichen Speicher geopfert wird, und für das Überprüfen der Seiteninhalte bei Wiederherstellung der Seite verantwortlich. Die Applets 461 bis 46K des isolierten Modus und ihre Daten sind verfälschungssicher und überwachungsresistent gegenüber sämtlichen Softwareangriffen aus anderen Applets sowie aus Anwendungen des nicht-isolierten Raums (z.B. 421 bis 42N ), dynamischen Verknüpfungsbibliotheken (DLLs), Treibern und selbst dem primären Betriebssystem 12. Nur der Prozessor-Nub 18 oder der Betriebssystem-Nub 16 können in die Ausführung der Applets eingreifen oder diese überwachen.The operating system nub 16 may choose to support paging of data between the isolated area and ordinary (eg non-isolated) memory. If so, then the operating system nub 16 also for encrypting and hashing the pages of the quarantined area before sacrificing the page into ordinary memory, and for checking the page contents when restoring the page. The applets 46 1 to 46 K The isolated mode and its data are tamper-proof and monitoring resistant to all software attacks from other applets as well as non-isolated space applications (eg 42 1 to 42 N ), dynamic link libraries (DLLs), drivers, and even the primary operating system 12 , Only the processor nub 18 or the operating system nub 16 can interfere with or monitor the execution of the applets.

1B ist ein Schema, das die Zugreifbarkeit der verschiedenen Elemente im Betriebssystem 10 und dem Prozessor gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Aus Gründen der Veranschaulichung sind nur Elemente des Rings-0 10 und des Rings-3 40 gezeigt. Die verschiedenen Elemente in der logische Betriebsarchitektur 50 greifen auf einen zugreifbaren physikalischen Speicher 60 in Übereinstimmung mit ihrer Ringhierarchie und dem Ausführungsmodus zu. 1B is a schema that provides the accessibility of various elements in the operating system 10 and the processor according to an embodiment of the invention. For the sake of illustration only elements of the ring-0 are 10 and the ring-3 40 shown. The different elements in the logical operating architecture 50 access an accessible physical memory 60 in accordance with their ring hierarchy and execution mode.

Der zugreifbare physikalische Speicher 60 enthält einen isolierten Bereich 70 und einen nicht-isolierten Bereich 80. Der isolierte Bereich 70 enthält Applet-Seiten 72 und Nub- Seiten 74. Der nicht-isolierte Bereich 80 enthält Anwendungsseiten 82 und Betriebssystemseiten 84. Der isolierte Bereich 70 ist nur für Elemente des Betriebssystems und den im isolierten Ausführungsmodus arbeitenden Prozessor zugreifbar. Der nicht-isolierte Bereich 80 ist für sämtliche Elemente des Ring-0-Betriebssystems und Prozessors zugreifbar.The accessible physical memory 60 contains an isolated area 70 and a non-isolated area 80 , The isolated area 70 contains applet pages 72 and Nub pages 74 , The non-isolated area 80 contains application pages 82 and operating system pages 84 , The isolated area 70 is accessible only to elements of the operating system and the processor running in isolated execution mode. The non-isolated area 80 is accessible to all elements of the Ring 0 operating system and processor.

Der Normale-Ausführung-Ring-0 11, einschließlich des primären OS 12, der Software-Treiber 13 und der Hardware-Treiber 14, kann auf sowohl die OS-Seiten 84 als auch die Anwendungsseiten 82 zugreifen. Der Normale-Ausführung-Ring-3, einschließlich der Anwendungen 421 bis 42N , kann nur auf die Anwendungsseiten 82 zugreifen. Sowohl der Normale-Ausführung-Ring-0 11 als auch der Ring-3 41 können jedoch nicht auf den isolierten Bereich 70 zugreifen.The normal-execution-ring-0 11 including the primary OS 12 , the software driver 13 and the hardware driver 14 , on both the OS pages 84 as well as the application pages 82 access. The normal-execution-ring-3, including the applications 42 1 to 42 N , only on the application pages 82 access. Both the normal-execution-ring-0 11 as well as the ring-3 41 however, can not access the isolated area 70 access.

Der Isolierte-Ausführung-Ring-0 15, einschließlich des OS-Nub 16 und des Prozessor-Nub 18, kann sowohl auf den isolierten Bereich 70, einschließlich der Applet-Seiten 72 und der Nub-Seiten 74, als auch auf den nicht-isolierten Bereich 80, einschließlich der Anwendungsseiten 82 und der OS-Seiten 84, zugreifen. Der Isolierte-Ausführung-Ring-3 45, einschließlich der Applets 461 bis 46K , kann nur auf die Anwendungsseiten 82 und die Applet-Seite 72 zugreifen. Die Applets 461 bis 46K halten sich in dem isolierten Bereich 70 auf.The isolated-execution-ring-0 15 including the OS Nub 16 and the processor nub 18 , can be used both on the isolated area 70 including the applet pages 72 and the nub pages 74 , as well as on the non-isolated area 80 including the application pages 82 and the OS pages 84 , access. The insulated version ring-3 45 including the applets 46 1 to 46 K , only on the application pages 82 and the applet page 72 access. The applets 46 1 to 46 K stay in the isolated area 70 on.

1C ist ein Schema, das ähnlich der 1B die Zugreifbarkeit der verschiedenen Elemente in dem Betriebssystem und dem Prozessor veranschaulicht, bei welchem der isolierte Speicherbereich 70 in mehrere isolierte Speicherbereiche 71 und der nicht-isolierte Speicherbereich 80 in mehrere nicht-isolierte Speicherbereiche 83 gemäß einem Ausführungsbeispiel der Erfindung unterteilt ist. Aus Gründen der Veranschaulichung sind nur Elemente des Rings-0 10 und des Rings-3 40 gezeigt. Die verschiedenen Elemente in der logischen Betriebsarchitektur 50 greifen auf einen zugreif baren physikalischen Speicher 60 in Übereinstimmung mit ihrer Ringhierarchie und dem Ausführungsmodus zu. Der zugreifbare physikalische Speicher 60 enthält die mehreren isolierten Bereiche und die mehreren nicht-isolierten Bereiche 83. 1C is a scheme similar to that 1B illustrates the accessibility of the various elements in the operating system and the processor in which the isolated storage area 70 into several isolated storage areas 71 and the non-isolated storage area 80 into several non-isolated storage areas 83 is divided according to an embodiment of the invention. For the sake of illustration only elements of the ring-0 are 10 and the ring-3 40 shown. The different elements in the logical operating architecture 50 access an accessible physical memory 60 in accordance with their ring hierarchy and execution mode. The accessible physical memory 60 contains the multiple isolated areas and the multiple non-isolated areas 83 ,

Die mehreren isolierten Bereiche 71 enthalten Applet-Seiten 72 und Betriebssystem(OS)-Nub-Seiten 74. Einer der mehreren isolierten Bereiche 71 enthält außerdem den Prozessor-Nub 18 (d.h. die Prozessor-Exekutive (PE)), der in den Prozessor-Nub-Seiten 73 enthalten ist. Die mehreren nicht-isolierten Bereiche 83 enthalten Anwendungsseiten 82 und Betriebssysteme(OS)-Seiten 84. Die mehreren isolierten Bereiche 71 sind nur für Elemente des Betriebssystems und des Prozessors, die im isolierten Ausführungsmodus arbeiten, zugreifbar. Die nicht-isolierten Bereiche 83 sind für sämtliche Elemente des Ring-0-Betriebssystems und Prozessors zugreifbar.The several isolated areas 71 contain applet pages 72 and OS (OS) sub-pages 74 , One of several isolated areas 71 also contains the processor nub 18 (ie, the processor executive (PE)) operating in the processor nub pages 73 is included. The several non-isolated areas 83 contain application pages 82 and OS (OS) pages 84 , The several isolated areas 71 are only accessible to elements of the operating system and the processor that operate in isolated run mode. The non-isolated areas 83 are accessible to all elements of the Ring 0 operating system and processor.

Bei diesem in 1C gezeigten Ausführungsbeispiel ist der isolierte Speicherbereich 70 in eine Mehrzahl isolierter Speicherbereiche 71 unterteilt, die im Unterschied zu einem einzigen Block eines isolierten Speicherbereichs 70, wie er in 1B gezeigt ist, eine erhöhte Plattformfunktionalität bei der Verwendung des isolierten Speichers gestatten. Um die mehreren isolierten Speicherbereiche 71 zu unterstützen, enthält der OS-Nub 16 (d.h. die OS-Exekutive (OSE)), der in den OS-Nub-Seiten 74 enthalten ist, einen Seitenmanager 75 und eine Speicherbesitz-Seitentabelle 77. Der OS-Nub steuert den Seitenmanager 75. Der Seitenmanager 75 ist für die Verteilung von Seiten an mehrere isolierte Speicherbereiche 71, wie beispielsweise OS-Nub-Seiten 74 und Applet-Seiten 72, und an die nicht-isolierten Speicherbereiche 83, wie beispielsweise OS-Seiten 84 und Anwendungsseiten 82, verantwortlich. Der Seitenmanager 75 verwaltet darüber hinaus die Speicherbesitz-Seitentabelle 77 und hält diese aufrecht. Wie später erörtert wird, beschreibt die Speicherbe sitz-Seitentabelle 77 jede Seite und wird verwendet, um eine Konfiguration von Zugriffstransaktionen durch einen Prozessor zu unterstützen, und ferner, um zu überprüfen, daß die Zugriffstransaktion gültig ist. Indem es dem Seitenmanager 75 gestattet wird, mehrere isolierte Speicherbereiche 71 und mehrere nicht-isolierte Speicherbereiche 83 zu erzeugen, kann der zugreifbare physikalische Speicher 60 leichter an Änderungen in den Systemspeicheranforderungen angepaßt werden.In this in 1C The embodiment shown is the isolated memory area 70 into a plurality of isolated storage areas 71 divided, which in contrast to a single block ei isolated storage area 70 as he is in 1B shown to allow increased platform functionality in the use of isolated storage. To the several isolated storage areas 71 to support, includes the OS Nub 16 (ie, the OS executive (OSE)) operating in the OS Nub pages 74 included is a page manager 75 and a memory ownership page table 77 , The OS Nub controls the page manager 75 , The page manager 75 is for distributing pages to multiple isolated storage areas 71 , such as OS Nub pages 74 and applet pages 72 , and to the non-isolated storage areas 83 , such as OS pages 84 and application pages 82 , responsible. The page manager 75 also manages the memory ownership page table 77 and keep it upright. As will be discussed later, the memory location page table describes 77 each page and is used to assist in configuring access transactions by a processor and also to verify that the access transaction is valid. By giving the page manager 75 is allowed, several isolated storage areas 71 and several non-isolated storage areas 83 can generate the accessible physical memory 60 be more easily adapted to changes in system memory requirements.

Der Normale-Ausführung-Ring-0 11, der das primäre OS 12, die Software-Treiber 13 und die Hardware-Treiber 14 enthält, kann sowohl auf die OS-Seiten 84 als auch die Anwendungsseiten 82 zugreifen. Der Normale-Ausführung-Ring-3, einschließlich der Anwendungen 421 bis 42N , kann nur auf die Anwendungsseiten 82 zugreifen. Sowohl der Ring-0 11 als auch der Ring-3 41 der normalen Ausführung können jedoch nicht auf die mehreren isolierten Speicherbereiche 71 zugreifen.The normal-execution-ring-0 11 who is the primary OS 12 , the software driver 13 and the hardware drivers 14 contains, both on the OS pages 84 as well as the application pages 82 access. The normal-execution-ring-3, including the applications 42 1 to 42 N , only on the application pages 82 access. Both the ring-0 11 as well as the ring-3 41 however, the normal execution can not access the multiple isolated storage areas 71 access.

Der Isolierte-Ausführung-Ring-0 15, einschließlich des OS-Nub 16 und des Prozessor-Nub 18, kann sowohl auf die mehreren isolierten Speicherbereiche 71 einschließlich der Applets-Seiten 72 und der OS-Nub-Seiten 74 als auch auf die mehreren nicht-isolierten Speicherbereiche 83, die die Anwendungsseiten 82 und die OS-Seiten 84 enthalten, zugreifen. Der Isolierte-Ausführung-Ring-3 45, der die Applets 461 bis 46K , enthält, kann nur auf die Anwendungsseiten 82 und die Applet-Seiten 72 zugreifen. Die Applets 461 bis 46K halten sich in den mehreren isolierten Speicherbereichen 71 auf.The isolated-execution-ring-0 15 including the OS Nub 16 and the processor nub 18 , can work on both the multiple isolated storage areas 71 including the applets pages 72 and the OS Nub pages 74 as well as the several non-isolated memory areas 83 that the application pages 82 and the OS pages 84 included, access. The insulated version ring-3 45 who's the applets 46 1 to 46 K , contains, can only on the application pages 82 and the applet pages 72 access. The applets 46 1 to 46 K stick in the multiple isolated storage areas 71 on.

1D ist ein Ablaufdiagramm, das einen Prozeß 86 zum Verteilen von Seiten des Speichers zur isolierten Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 1D is a flowchart illustrating a process 86 for distributing pages of the isolated-execution memory according to an embodiment of the invention.

Bei START verteilt der Prozeß 86 Seiten des Speichers an verschiedene Bereiche des zugreifbaren physikalischen Speichers 60 (Block 87). Die Seiten werden sowohl an isolierte Bereiche 71 als auch nicht-isolierte Bereiche 83 verteilt.At START, the process distributes 86 Pages of memory to different areas of accessible physical memory 60 (Block 87 ). The pages are both on isolated areas 71 as well as non-isolated areas 83 distributed.

Bei einem bevorzugten Ausführungsbeispiel ist die Größe der Seiten fest vorgegeben. Beispielsweise könnte jede Seite 4 MB oder 4 KB sein. Als nächstes weist der Prozessor 86 jeder Seite ein Attribut zu (Block 88). Der Prozessor 86 weist einer Seite ein Isoliert-Attribut zu, wenn die Seite an einen isolierten Bereich des Speichers verteilt wird, oder Prozeß 86 weist einer Seite ein Nicht-Isoliert-Attribut zu, sofern die Seite an einen nicht-isolierten Bereich des Speichers verteilt wird. Der Prozeß 86 wird dann beendet.In a preferred embodiment, the size of the pages is fixed. For example, each page could be 4 MB or 4 KB. Next, the processor points 86 each page has an attribute too (block 88 ). The processor 86 assigns an isolated attribute to a page if the page is distributed to an isolated area of memory, or process 86 assigns a non-isolated attribute to a page if the page is distributed to a non-isolated area of the store. The process 86 is then terminated.

1E ist ein Schema, das die Speicherbesitz-Seitentabelle 77 und einen Prozeß des Konvertierens einer virtuellen Adresse in eine physikalische Adresse gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Wie zuvor erörtert, verwaltet der Seitenmanager 75 die Speicherbesitz-Seitentabelle 77. Die Speicherbesitz-Seitentabelle 77 enthält eine Mehrzahl von Seitentabelleneinträgen 93. Jeder Seitentabelleneintrag 93 enthält die folgenden Komponenten: Die Basis der Seite 95 und eine Attribut 96 (isoliert oder nicht-isoliert) für die Seite. Ausschließlich der Seitenmanager 75 kann das einer Seite zugewiesene Attribut 96 ändern. Jede Seite 98 enthält eine Mehrzahl physikalischer Adressen 99. Der Seitenmanager 75 löscht (flushes) die Speicherbesitz-Seitentabelle 77 oder macht einen Seitentabelleneintrag 93 ungültig, wenn sich die isolierten und nicht-isolierten Speicherbereiche ändern. Der Seitenmanager 75 weist dann die isolierten und nicht-isolierten Speicherbereiche neu zu und initialisiert sie. 1E is a schema that stores the memory page 77 and illustrates a process of converting a virtual address to a physical address in accordance with an embodiment of the invention. As discussed earlier, the page manager manages 75 the memory ownership page table 77 , The memory ownership page table 77 contains a plurality of page table entries 93 , Each page table entry 93 Contains the following components: The base of the page 95 and an attribute 96 (isolated or non-isolated) for the page. Exclusively the page manager 75 can be the attribute assigned to a page 96 to change. Every side 98 contains a plurality of physical addresses 99 , The page manager 75 flushes the memory ownership page table 77 or make a page table entry 93 invalid if the isolated and non-isolated memory areas change. The page manager 75 then reassigns and initializes the isolated and non-isolated memory areas.

Eine virtuelle Adresse 212 enthält eine Seitentabellenkomponente 91 und ein Offset 92. Der Prozeß des Konvertierens der virtuellen Adresse 212 in eine physikalische Adresse 99 wird später erörtert.A virtual address 212 contains a page table component 91 and an offset 92 , The process of converting the virtual address 212 into a physical address 99 will be discussed later.

1F ist ein Schema, das ein Computersystem 100 veranschaulicht, in welchem ein Ausführungsbeispiel der Erfindung ausgeführt werden kann. Das Computersystem 100 enthält einen Prozessor 110, einen Host-Bus 120, einen Speicher-Con trolley-Hub (MCH) 130, einen Systemspeicher 140, einen Eingabe/Ausgabe-Controller-Hub (ICH) 150, einen nicht-flüchtigen Speicher oder System-Flash 160, eine Massenspeichereinrichtung 170, Eingabe/Ausgabe-Einrichtungen 175, einen Token-Bus 180, ein Mutterplatinen(MB)-Token 182, einen Leser 184 und ein Token 186. Der MCH 130 kann in einen Chipsatz integriert sein, der mehrere Funktionalitäten integriert, wie beispielsweise den isolierten Ausführungsmodus, Host-Zu-Peripherie-Bus-Schnittstelle, Speichersteuerung. In ähnlicher Weise kann der ICH 150 ebenfalls in einen Chipsatz zusammen mit oder separat von dem MCH 130 integriert sein, um I/O-Funktionen auszuführen. Aus Gründen der Klarheit sind nicht sämtliche Peripheriebusse gezeigt. Es ist beabsichtigt, daß das System 100 auch Peripheriebusse, wie beispielsweise den Peripheriekomponentenverbindungs(PCI)-Bus, einen Accelerated Graphics Port(AGP)-Bus, einen Industriestandardarchitektur(ISA)-Bus und einen universellen seriellen Bus (USB), etc. enthält. 1F is a schema that is a computer system 100 illustrates in which an embodiment of the invention can be carried out. The computer system 100 contains a processor 110 , a host bus 120 , a storage trolley hub (MCH) 130 , a system memory 140 , an input / output controller hub (ICH) 150 , a non-volatile memory or system flash 160 , a mass storage device 170 , Input / output devices 175 , a token bus 180 , a motherboard (MB) token 182 , a reader 184 and a token 186 , The MCH 130 can be integrated into a chipset that integrates multiple functionalities, such as the isolated execution mode, host-to-periphery bus interface, memory control. Similarly, the ICH 150 also in a chipset together with or separately from the MCH 130 be integrated to perform I / O functions. For the sake of clarity Not all peripheral buses are shown. It is intended that the system 100 also includes peripheral buses, such as the peripheral component interconnect (PCI) bus, an accelerated graphics port (AGP) bus, an industry standard architecture (ISA) bus, and a universal serial bus (USB), etc.

Der Prozessor 110 repräsentiert eine zentrale Verarbeitungseinheit einer beliebigen Architektur, wie beispielsweise einer Architektur eines Computers mit einem komplexen Befehlssatz (CISC), eines Computers mit einem reduzierten Befehlssatz (RISC) oder eines sehr langen Befehlsworts (VLIW) oder eine Hybridarchitektur. Bei einem Ausführungsbeispiel ist der Prozessor 110 mit einem Prozessor der Intel-Architektur (IA) kompatibel, wie beispielsweise einem Prozessor der PentiumTM-Serie, der IA-32TM und IA 64TM. Der Prozessor 110 weist einen normalen Ausführungsmodus 112 und eine Isolierte-Ausführung-Schaltung 115 auf. Der normale Ausführungsmodus 112 ist der Modus, in welchem der Prozessor 110 in einer nicht-geschützten Umgebung oder einer normalen Umgebung ohne die durch den isolierten Ausführungsmodus zur Verfügung gestellten Sicherheitsmerkmale arbeitet. Die Isolierte-Ausführung-Schaltung 115 schafft einen Mechanismus, der es dem Prozessor 110 ermöglicht, in einem isolierten Ausführungsmodus zu arbeiten. Die Isolierte-Ausführung-Schaltung 115 stellt eine Hardware- und Software-Unterstützung für den isolierten Ausführungsmodus zur Verfügung. Diese Unterstützung schließt eine Konfiguration für die isoliert Ausführung, eine Definition eines isolierten Bereichs oder isolierter Bereiche, eine Definition (z.B. Decodierung und Ausführung) isolierter Befehle, die Erzeugung isolierter Zugriffsbuszyklen und die Erzeugung eines Interrupts des isolierten Modus ein.The processor 110 represents a central processing unit of any architecture, such as a complex instruction set computer (CISC), a reduced instruction set (RISC) or very long instruction word (VLIW) computer, or a hybrid architecture. In one embodiment, the processor is 110 compatible with an Intel Architecture (IA) processor, such as a Pentium series, IA-32 and IA 64 processor. The processor 110 indicates a normal execution mode 112 and an isolated-execution circuit 115 on. The normal execution mode 112 is the mode in which the processor 110 in an unprotected environment or environment without the security features provided by the isolated execution mode. The isolated-design circuit 115 creates a mechanism that allows the processor 110 allows you to work in an isolated execution mode. The isolated-design circuit 115 provides hardware and software support for the isolated execution mode. This support includes a configuration for isolated execution, a definition of isolated region or isolated regions, a definition (eg, decoding and execution) of isolated instructions, generation of isolated access bus cycles, and generation of an isolated mode interrupt.

Bei einem Ausführungsbeispiel kann das Computersystem 100 ein Einzelprozessorsystem, wie beispielsweise ein Desktop-Computer, sein, welches nur eine zentrale Hauptverarbeitungseinheit, z.B. den Prozessor 110, aufweist. Bei anderen Ausführungsbeispielen kann das Computersystem 100 mehrere Prozessoren, z.B. die Prozessoren 110, 110a, 110b, etc., enthalten, wie es in 1D gezeigt ist. So kann das Computersystem 100 ein Multi-Prozessor-Computersystem mit einer beliebigen Anzahl von Prozessoren sein. Beispielsweise kann das Multi-Prozessor-Computer-System 100 als Teil einer Server- oder Workstation-Umgebung arbeiten. Die grundlegende Beschreibung und der Betrieb des Prozessors 110 werden unten im Detail erörtert. Fachleuten ist es klar, daß die grundlegende Beschreibung und die Operation des Prozessors 110 für die weiteren in 1D gezeigten Prozessoren 110a und 110b sowie für eine Reihe weiterer Prozessoren gelten, die in dem Multi-Prozessor-Computersystem 100 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung benutzt werden können.In one embodiment, the computer system 100 a single-processor system, such as a desktop computer, which only has one central main processing unit, eg the processor 110 , having. In other embodiments, the computer system 100 several processors, eg the processors 110 . 110a . 110b , etc., included as it is in 1D is shown. So can the computer system 100 a multi-processor computer system with any number of processors. For example, the multi-processor computer system 100 work as part of a server or workstation environment. The basic description and operation of the processor 110 will be discussed in detail below. Professionals, it is clear that the basic description and operation of the processor 110 for the others in 1D shown processors 110a and 110b as well as a number of other processors included in the multi-processor computer system 100 according to an embodiment of the present invention can be used.

Der Prozessor 110 kann auch mehrere logische Prozessoren aufweisen. Ein logischer Prozessor, der manchmal als Thread bezeichnet wird, ist eine Funktionseinheit innerhalb eines physikalischen Prozessors, die einen Architekturzustand und in Übereinstimmung mit irgendeiner Aufteilungsvorgehensweise zugewiesene physikalische Ressourcen aufweisen. Im Kontext der vorliegenden Erfindung werden die Begriffe "Thread" und "logischer Prozessor" in derselben Bedeutung verwendet. Ein Multi-Thread-Prozessor ist ein Prozessor, der mehrere Threads oder mehrere logische Prozessoren aufweist. Ein Multi-Prozessor-System (z.B. das System, das die Prozessoren 110, 110a und 110b aufweist) kann mehrere Multi-Thread-Prozessoren aufweisen.The processor 110 can also have multiple logical processors. A logical processor, sometimes referred to as a thread, is a functional unit within a physical processor that has an architectural state and allocated physical resources in accordance with any partitioning approach. In the context of the present invention, the terms "thread" and "logical processor" are used in the same meaning. A multi-threaded processor is a processor that has multiple threads or multiple logical processors. A multi-processor system (eg the system that uses the processors 110 . 110a and 110b may comprise a plurality of multi-threaded processors.

Der Host-Bus 120 stellt Schnittstellensignale zur Verfügung, die es dem Prozessor 110 oder den Prozessoren 110, 110a und 110b ermöglichen, mit anderen Prozessoren oder Einrichtungen, beispielsweise dem MCH 130, zu kommunizieren. Zusätzlich zum normalen Modus stellt der Host-Bus 120 einen Busmodus des isolierten Zugriffs mit zugehörigen Schnittstellensignalen für Speicherlese- und -schreibzyklen zur Verfügung, wenn der Prozessor 110 in den isolierten Ausführungsmodus konfiguriert ist. Der Busmodus des isolierten Zugriffs wird bei Speicherzugriffen angelegt, die initialisiert worden sind, während sich der Prozessor 110 in dem isolierten Ausführungsmodus befindet. Der Busmodus des isolierten Zugriffs wird darüber hinaus bei Befehlsvorabruf- und Cache-Rückschreib-Zyklen angelegt, wenn sich die Adresse im Adreßbereich des isolierten Bereichs befindet und der Prozessor 110 in den isolierten Ausführungsmodus initialisiert ist. Der Prozessor 110 antwortet auf Snoop-Zyklen zu einer cache-gespeicherten Adresse in dem Adreßbereich des isolierten Bereichs, wenn der Buszyklus des isolierten Zugriffs angelegt wird und der Prozessor 110 in den isolierten Ausführungsmodus initialisiert ist.The host bus 120 Provides interface signals to the processor 110 or the processors 110 . 110a and 110b allow with other processors or devices, such as the MCH 130 , to communicate. In addition to normal mode, the host bus 120 provide an isolated access bus mode with associated interface signals for memory read and write cycles when the processor 110 is configured in the isolated execution mode. The isolated access bus mode is applied to memory accesses that have been initialized while the processor is in use 110 is in the isolated execution mode. The isolated access bus mode is also applied to instruction prefetch and write-back cycles when the address is in the isolated area address range and the processor 110 is initialized to the isolated execution mode. The processor 110 responds to snoop cycles to a cached address in the isolated area address space when the isolated access bus cycle is asserted and the processor 110 is initialized to the isolated execution mode.

Der MCH 130 stellt eine Kontrolle und Konfiguration des Speichers und von Eingabe/Ausgabeeinrichtungen zur Verfügung, wie beispielsweise des Systemspeichers 140 und des ICH 150. Der MCH 130 stellt Schnittstellenschaltungen zur Verfügung, um ein Anlegen isolierter Zugriffe bei Speicherreferenzbuszyklen, einschließlich isolierter Speicherlese- und – schreibzyklen, zu erkennen und zu bedienen. Darüber hinaus weist der MCH 130 Speicherbereichsregister (z.B. Basis- und Längenregister) auf, um den isolierten Bereich oder die isolierten Bereiche in dem Systemspeicher 140 darzustellen. Sobald er konfiguriert ist, bricht der MCH 130 jeglichen Zugriff auf einen isolierten Bereich ab, bei dem nicht der Busmodus des isolierten Zugriffs angelegt ist.The MCH 130 provides control and configuration of the memory and input / output devices, such as the system memory 140 and the ICH 150 , The MCH 130 provides interface circuits to detect and service isolated accesses in memory reference bus cycles, including isolated memory read and write cycles. In addition, the MCH 130 Storage area registers (eg, base and length registers) to the isolated area or areas in the system memory 140 display. Once configured, the MCH breaks 130 any access to an isolated area where the isolated access bus mode is not applied.

Der Systemspeicher 140 speichert Systembefehlscode und Daten. Der Systemspeicher 140 ist typischerweise mit dynamischem Speicher mit wahlfreiem Zugriff (DRAM) oder statischem Speicher mit wahlfreiem Zugriff (SRAM) implementiert. Der Systemspeicher 140 schließt den zugreifbaren physikalischen Speicher 60 (der in 1B und 1C gezeigt ist) ein. Der zugreifbare physikalische Speicher enthält ein geladenes Betriebssystem 142, den isolierten Bereich 70 (1B) oder die isolierten Bereiche 71 (1C) und einen isolierten Steuer- und Statusraum 148. Das geladene Betriebssystem 142 ist der Teil des Betriebssystems, der in den Systemspeicher 140 geladen ist. Das geladene OS 142 wird typischerweise aus einer Massenspeichereinrichtung über irgendeinen Anfangsladecode in einem Anfangsladespeicher, wie beispielsweise einem Boot-Nur-Lese-Speicher (ROM) geladen. Der isolierte Bereich 70 (1B) oder die isolierten Bereiche 71 (1C) ist bzw. sind der Speicherbereich, der durch den Prozessor 110 definiert wird, wenn dieser in dem isolierten Ausführungsmodus betrieben wird. Der Zugriff auf den isolierten Bereich bzw. die isolierten Bereiche ist eingeschränkt und wird von dem Prozessor 110 und/oder dem MCH 130 oder einem anderen Chipsatz, der die Funktionalitäten des isolierten Bereichs integriert, durchgesetzt. Der isolierte Steuer- und Statusraum 148 ist ein Eingabe/Ausgabe(I/O)-ähnlicher, unabhängiger Adreßraum, der von dem Prozessor 110 oder dem MCH 130 definiert wird. Der isolierte Steuer- und Statusraum 148 enthält hauptsächlich die Steuer- und Statusregister der isolierten Ausführung. Der isolierte Steuer- und Statusraum 148 überlappt keinen vorhandenen Adreßraum, und es wird auf ihn unter Verwendung isolierter Buszyklen zugegriffen. Der Systemspeicher 140 kann darüber hinaus weitere Programme oder Daten enthalten, welche nicht gezeigt sind.The system memory 140 saves system Command code and data. The system memory 140 is typically implemented with Dynamic Random Access Memory (DRAM) or Static Random Access Memory (SRAM). The system memory 140 closes the accessible physical memory 60 (the in 1B and 1C shown). The accessible physical memory contains a loaded operating system 142 , the isolated area 70 ( 1B ) or the isolated areas 71 ( 1C ) and an isolated control and status space 148 , The loaded operating system 142 is the part of the operating system that is in system memory 140 loaded. The loaded OS 142 is typically loaded from a mass storage device via some initial load code in an initial load memory, such as a boot read only memory (ROM). The isolated area 70 (1B) or the isolated regions 71 ( 1C ) is the memory area occupied by the processor 110 is defined when operating in the isolated execution mode. Access to the isolated area (s) is restricted and is handled by the processor 110 and / or the MCH 130 or another chipset that integrates the functionalities of the isolated area. The isolated control and status space 148 is an input / output (I / O) -like, independent address space used by the processor 110 or the MCH 130 is defined. The isolated control and status space 148 contains mainly the control and status registers of the isolated execution. The isolated control and status space 148 does not overlap any existing address space and it is accessed using isolated bus cycles. The system memory 140 may also contain other programs or data that are not shown.

Der ICH 150 stellt einen bekannten einzelnen Punkt im System dar, der die Funktionalität der isolierten Ausführung aufweist. Aus Gründen der Klarheit ist nur ein ICH 150 gezeigt. Das System 100 kann viele dem ICH 150 ähnliche ICHs aufweisen. Wenn es mehrere ICHs gibt, wird ein bestimmter ICH ausgewählt, um die Konfiguration und den Status des isolierten Bereichs zu kontrollieren. Bei einem Ausführungsbeispiel wird diese Auswahl durch eine externe Pin-Verbindung (strapping pin) ausgeführt. Wie es einem Fachmann bekannt ist, können andere Verfahren der Auswahl verwendet werden, einschließlich der Verwendung programmierbarer Konfigurationsregister. Der ICH 150 weist eine Reihe von Funktionen auf, die zusätzlich zu den herkömmlichen I/O-Funktionen zum Unterstützen des isolierten Ausführungsmodus entwickelt sind. Insbesondere enthält der ICH 150 eine Isolierte-Bus-Schnittstelle 152, den Prozessor-Nub-Lader 52 (der 1A gezeigt ist), einen Digest-Speicher 154, einen Speicher 155 für einen kryptografischen Schlüssel, einen logischen Verarbeitungsmanager der isolierten Ausführung 156 und eine Token-Bus-Schnittstelle 159.The ICH 150 represents a known single point in the system having the functionality of the isolated embodiment. For clarity, only an ICH 150 shown. The system 100 can many the ICH 150 have similar ICHs. If there are multiple ICHs, a specific ICH is selected to control the configuration and status of the isolated area. In one embodiment, this selection is performed by an external pin connection (strapping pin). As known to those skilled in the art, other methods of selection may be used, including the use of programmable configuration registers. The ICH 150 has a number of functions that are designed in addition to the traditional I / O functions to support the isolated execution mode. In particular, the ICH contains 150 an isolated bus interface 152 , the processor nub loader 52 (of the 1A shown), a digest memory 154 , a store 155 for a cryptographic key, a logical processing manager of the isolated execution 156 and a token bus interface 159 ,

Die Isolierte-Buszyklus-Schnittstelle 152 enthält eine Schaltung zum Bilden einer Schnittstelle zu den Signalen des isolierten Buszyklus, um isolierte Buszyklen, wie beispielsweise die isolierten Lese- und Schreib-Buszyklen, zu erkennen und zu bedienen. Der Prozessor-Nub-Lader 52, wie er in 1A gezeigt ist, enthält einen Prozessor-Nub-Lader-Befehlscode und seinen Digest-Wert (z.B. Hash-Wert). Der Prozessor-Nub-Lader 52 wird durch Ausführung eines geeigneten isolierten Befehls (z.B. Iso-Init) aufgerufen und in den isolierten Bereich 70 oder einen der isolierten Bereiche 71 übertragen. Aus dem isolierten Bereich kopiert der Prozessor-Nub-Lader 52 den Prozessor-Nub 18 aus dem System- Flash (z.B. den Prozessor-Nub-Code 18 im nicht-flüchtigen Speicher 160) in den isolierten Bereich 70, überprüft und protokolliert seine Integrität und verwaltet einen symmetrischen Schlüssen, der verwendet wird, um die Geheimnisse des Prozessor-Nubs zu schützen. Bei einer Ausführungsform ist der Prozessor-Nub-Lader 52 im Nur-Lese-Speicher (ROM) implementiert. Aus Sicherheitsgründen ist der Prozessor-Nub-Lader 52 unveränderbar, verfälschungssicher und nicht austauschbar. Der Digest-Speicher 154, der typischerweise in RAM implementiert ist, speichert die Digest-Werte (z.B. Hash-Werte) des geladenen Prozessor-Nubs 18, des Betriebssystem-Nubs 16 und irgendwelcher weiterer kritischer Module (z.B. Ring-0-Module), die in den Raum der isolierten Ausführung geladen sind.The isolated bus cycle interface 152 includes a circuit for interfacing with the signals of the isolated bus cycle to detect and service isolated bus cycles, such as the isolated read and write bus cycles. The processor nub loader 52 as he is in 1A , contains a processor-nub loader opcode and its digest value (eg hash value). The processor nub loader 52 is called by execution of a suitable isolated command (eg Iso-Init) and in the isolated area 70 or one of the isolated areas 71 transfer. The processor-nub loader copies from the isolated area 52 the processor nub 18 from the system flash (eg the processor nub code 18 in non-volatile memory 160 ) in the isolated area 70 It checks and logs its integrity and manages a symmetric reason that is used to protect the secrets of the processor hub. In one embodiment, the processor is nub loader 52 implemented in read-only memory (ROM). For security reasons, the processor is nub loader 52 unchangeable, tamper-proof and non-exchangeable. The digest memory 154 Typically implemented in RAM stores the digest values (eg, hash values) of the loaded processor hub 18 , the operating system hub 16 and any other critical modules (eg, ring 0 modules) loaded in the space of the isolated design.

Der Speicher 155 des kryptografischen Schlüssels hält einen symmetrischen Verschlüsselungs/Entschlüsselungs-Schlüssel, der der Plattform des Systems 100 eindeutig zugeordnet ist. Bei einem Ausführungsbeispiel enthält der Kryptografischer-Schlüssel-Speicher 155 interne Schmelzleiter, die bei der Herstellung programmiert werden.The memory 155 The cryptographic key holds a symmetric encryption / decryption key, which is the platform of the system 100 is uniquely assigned. In one embodiment, the cryptographic key store includes 155 internal fusible links programmed during manufacture.

Alternativ könnte der Kryptografischer-Schlüssel-Speicher 155 mit einem Zufallszahlengenerator und einer Brücke zu einem Pin erzeugt werden. Der logische Verarbeitungsmanager 156 der isolierten Ausführung verwaltet die Operation der logischen Prozessoren, die im isolierten Ausführungsmodus betrieben werden. Bei einem Ausführungsbeispiel enthält der logische Verarbeitungsmanager der isolierten Ausführung 156 ein Zählregister für logische Prozessoren, das die Anzahl der an dem isolierten Ausführungsmodus teilnehmenden logischen Prozessoren verfolgt. Die Token-Bus-Schnittstelle 159 bildet eine Schnittstelle zu dem Token-Bus 180. Eine Kombination des Digest des Prozessor-Nub-Laders, des Digest des Prozessor-Nubs, des Betriebssystem-Nub-Digest und, optional, zusätzlicher Digests repräsentiert den Gesamt-Digest der isolierten Ausführung, der als Isoliert- Digest bezeichnet wird. Der Isoliert-Digest ist ein Fingerabdruck, der den Ring-0-Befehlscode identifiziert, der die Konfiguration und den Betrieb der isolierten Ausführung steuert. Der Isoliert-Digest wird verwendet, um den Zustand der aktuellen isolierten Ausführung zu attestieren oder nachzuweisen.Alternatively, the cryptographic key store could 155 be generated with a random number generator and a bridge to a pin. The logical processing manager 156 The isolated execution manages the operation of the logical processors that operate in isolated execution mode. In one embodiment, the logical processing manager includes the isolated implementation 156 a logical processor count register that keeps track of the number of logical processors participating in the isolated execution mode. The token bus interface 159 forms an interface to the token bus 180 , A combination of the processor nub loader digest, the processor hub digest, the operating system nub digest, and, optionally, additional digest, represents the total digest of the isolated execution, referred to as an isolation digest. The Isolated Digest is a fingerprint containing the Identifies Ring 0 command code that controls the configuration and operation of the isolated execution. The isolated digest is used to attest to or prove the state of the current isolated execution.

Der nicht-flüchtige Speicher 160 speichert nichtflüchtige Informationen. Typischerweise ist der nicht-flüchtige Speicher 160 in Flash-Speicher implementiert. Der nicht-flüchtige Speicher 160 enthält den Prozessor-Nub 18.The non-volatile memory 160 stores non-volatile information. Typically, the non-volatile memory 160 implemented in flash memory. The non-volatile memory 160 contains the processor nub 18 ,

Der Prozessor-Nub 18 schafft das anfängliche Einricht- und Low-Level-Management der isolierten Bereiche (in dem Systemspeicher 140) einschließlich der Überprüfung, des Ladens und der Protokollierung des Betriebssystem-Nubs 16, und die Verwaltung des symmetrischen Schlüssels, der zum Schützen der Geheimnisse des Betriebssystem-Nubs verwendet wird. Der Prozessor-Nub 18 kann darüber hinaus Anwendungsprogrammierschnittstellen(API)-Abstraktionen an Low-Level-Sicherheitsdienste, die von anderer Hardware zur Verfügung gestellt werden, zur Verfügung stellen. Der Prozessor-Nub 18 kann darüber hinaus durch den ursprünglichen Ausrüstungshersteller (OEM) oder Betriebssystemanbieter (OSV) über eine Boot-Diskette verteilt werden.The processor nub 18 provides the initial setup and low-level management of the isolated areas (in the system memory 140 ) including the checking, loading and logging of the operating system hub 16 and the symmetric key management used to protect the secrets of the operating system hub. The processor nub 18 may also provide application programming interface (API) abstractions to low-level security services provided by other hardware. The processor nub 18 can also be distributed by the original equipment manufacturer (OEM) or operating system vendor (OSV) via a boot diskette.

Die Massenspeichereinrichtung 170 speichert Archivinformationen, wie beispielsweise Code (z.B. Prozessor-Nub 18), Programme, Dateien, Daten, Anwendungen (z.B. Anwendungen 421 bis 42N ), Applets (z.B. Applets 461 bis 46K ) und Betriebssysteme. Die Massenspeichereinrichtung 170 kann eine CDROM 172, Disketten 174 und ein Festplattenlaufwerk 176 sowie beliebige andere magnetische oder optische Speichereinrichtungen einschließen. Die Massenspeichereinrichtung 170 stellt einen Mechanismus zum Lesen eines maschinen-lesbaren Mediums zur Verfügung.The mass storage device 170 stores archive information, such as code (eg processor nub 18 ), Programs, files, data, applications (eg applications 42 1 to 42 N ), Applets (eg applets 46 1 to 46 K ) and operating systems. The mass storage device 170 can a CDROM 172 , Floppy disks 174 and a hard drive 176 and any other magnetic or optical storage devices. The mass storage device 170 provides a mechanism for reading a machine-readable medium.

Die I/O-Einrichtungen 175 können beliebige I/O-Geräte zum Ausführen von I/O-Funktionen einschließen. Beispiele der I/O-Einrichtungen 175 umfassen Controller für Eingabegeräte (z.B. Tastatur, Maus, Track-Ball, Zeigereinrichtung), Medienkarten (z.B. Audio, Video, Grafik), Netzwerkkarten und irgendwelche andere Peripheriecontroller.The I / O facilities 175 can include any I / O device for performing I / O functions. Examples of I / O devices 175 include controllers for input devices (eg, keyboard, mouse, trackball, pointing device), media cards (eg, audio, video, graphics), network cards, and any other peripheral controllers.

Der Token-Bus 180 schafft eine Schnittstelle zwischen dem ICH 150 und verschiedenen Tokens in dem System. Ein Token ist eine Einrichtung, die spezielle Eingabe/Ausgabe-Funktionen mit Sicherheitsfunktionen ausführt. Ein Token weist Eigenschaften auf, die ähnlich einer Smartcard sind, einschließlich wenigstens eines reservierten öffentlichen/privaten Schlüsselpaars und der Fähigkeit, Daten mit dem privaten Schlüssel zu signieren. Beispiele von mit dem Token-Bus 180 verbundenen Tokens umfassen ein Mutterplatinen-Token 182, einen Token-Leser 184 und weitere transportable Tokens 186 (z.B. Smartcard). Die Token-Bus-Schnittstelle 159 in dem ICH 150 verbindet den Token-Bus 180 mit dem ICH 150 und sichert, daß dann, wenn der Nachweis des Zustands der isolierten Ausführung angewiesen wird, das entsprechende Token (z.B. das Mutterplatinen-Token 182, das Token 186) nur gültig isolierte Digest-Informationen signiert. Aus Gründen der Sicherheit sollte das Token mit dem Digest-Speicher verbunden sein.The token bus 180 creates an interface between the ICH 150 and various tokens in the system. A token is a device that performs special input / output functions with security functions. A token has properties that are similar to a smart card, including at least one reserved public / private key pair and the ability to sign data with the private key. Examples of using the token bus 180 Connected tokens include a motherboard token 182 , a token reader 184 and more portable tokens 186 (eg smartcard). The token bus interface 159 in the ME 150 connects the token bus 180 with the ME 150 and assert that if the evidence of the isolated execution state is instructed, then the corresponding token (eg, the motherboard token 182 , the token 186 ) only validly isolated digest information signed. For security reasons, the token should be connected to the digest memory.

Wenn sie in Software implementiert sind, sind die Elemente der vorliegenden Erfindung Codesegmente zum Ausführen der erforderlichen Aufgaben. Die Programm- oder Codesegmente können in einem maschinen-lesbaren Medium, wie beispielsweise einem prozessor-lesbaren Medium, gespeichert oder über ein in einer Trägerwelle enthaltenes Computerdatensignal oder ein durch einen Träger moduliertes Signal über ein Übertragungsmedium übertragen werden. Das "prozessor-lesbare Medium" kann ein beliebiges Medium umfassen, das Informationen speichern oder übertragen kann. Beispiele des prozessorlesbaren Mediums umfassen eine elektronische Schaltung, ein Halbleiterspeicherbauelement, einen ROM, einen Flash-Speicher, einen löschbaren programmierbaren ROM (EPROM), eine Diskette, eine CDROM, eine optische Platte, eine Festplatte, ein faseroptisches Medium, eine Hochfrequenz(HF)-Verbindung etc.. Das Computerdatensignal kann ein beliebiges Signal umfassen, das sich über ein Übertragungsmedium, wie beispielsweise elektronische Netzwerkkanäle, Lichtleiter, Luft, elektromagnetische Wellen, HF-Verbindungen etc. ausbreiten kann. Die Codesegmente können über Computernetzwerke, wie beispielsweise das Internet, ein Intranet etc., heruntergeladen werden.If They are implemented in software, are the elements of the present Invention Code segments for execution the required tasks. The program or code segments can be in one machine-readable medium, such as a processor-readable medium Medium, saved or over one in a carrier wave contained computer data signal or modulated by a carrier Signal over transmit a transmission medium become. The "processor-readable Medium "can be include any medium that stores or transmits information can. Examples of the processor-readable medium include an electronic one Circuit, a semiconductor memory device, a ROM, a flash memory, an erasable one programmable ROM (EPROM), a floppy disk, a CDROM, an optical disk Disk, a hard disk, a fiber optic medium, a radio frequency (RF) connection etc. The computer data signal may include any signal that over a transmission medium, such as electronic network channels, optical fibers, air, electromagnetic Waves, RF connections, etc. can spread. The code segments can be accessed via computer networks, such as the Internet, an intranet, etc. downloaded become.

KONTROLLIEREN DER ZUGRIFFE AUF MEHRERE ISOLIERTE SPEICHER IN EINER ISOLIERTEN AUSFÜHRUNGSUMGEBUNGCONTROLLING THE ACCESS TO MULTIPLE ISOLATED MEMORY IN AN ISOLATED EMBODIMENT

Die vorliegende Erfindung ist ein Verfahren, eine Einrichtung und ein System zum Steuern/Kontrollieren von Speicherzugriffen auf mehrere isolierte Speicher 71, wie sie in 1C gezeigt sind, in einer isolierten Ausführungsumgebung. 2A ist ein Schema, das die Isolierte-Ausführung-Schaltung 115, die in 1F gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Isolierte-Ausführung-Schaltung 115 enthält eine Kernausführungsschaltung 205, einen Zugriffsmanager 220 und einen Cache-Speichermanager 230.The present invention is a method, apparatus, and system for controlling memory accesses to multiple isolated memories 71 as they are in 1C are shown in an isolated execution environment. 2A is a scheme that uses the isolated-execution circuit 115 , in the 1F is shown, according to an embodiment of the invention illustrated. The isolated-design circuit 115 contains a core execution circuit 205 , an access manager 220 and a cache manager 230 ,

Die Kernausführungseinheit 205 enthält eine Befehlsdecodierer- und -ausführungseinheit 210 und einen Übersetzungsnachschlagepuffer (TLB; Translation Lookaside Buffer) 218. Die Befehlsdecodierer- und -ausführungseinheit 210 empfängt einen Befehlstrom 215 aus einer Befehlsabrufeinheit. Der Befehlsstrom 215 enthält eine Reihe von Befehlen. Die Befehlsdecodierer- und -ausführungseinheit 210 decodiert die Befehle und führt die decodierten Befehle aus. Diese Befehle können Mikro- oder Makrobefehle sein. Die Befehlsdecodierer- und -ausführungseinheit 210 kann eine physische Schaltung oder eine Abstraktion eines Prozesses des Decodierens und der Ausführung von Befehlen sein. Darüber hinaus können die Befehle isolierte Befehle und nicht-isolierte Befehle ein schließen. Die Befehlsdecodierer- und -ausführungseinheit 210 erzeugt eine virtuelle Adresse 212, wenn es eine Zugriffstransaktion gibt.The core execution unit 205 contains an instruction decoder and execution unit 210 and a translation lookaside buffer (TLB) 218 , The instruction decoder and execution unit 210 receives a command electricity 215 from an instruction fetch unit. The command stream 215 contains a series of commands. The instruction decoder and execution unit 210 decodes the instructions and executes the decoded instructions. These commands can be micro or macro commands. The instruction decoder and execution unit 210 may be a physical circuit or an abstraction of a process of decoding and executing instructions. In addition, the commands may include isolated commands and non-isolated commands. The instruction decoder and execution unit 210 generates a virtual address 212 if there is an access transaction.

Der TLB 218 übersetzt die virtuelle Adresse 212 in eine physikalische Adresse 99. Der TLB 218 enthält einen Cache 219 der Speicherbesitz-Seitentabelle (MOPT; "Memory Ownership Page Table") 77. Der TLB 218 schlägt zunächst in dem Cache 219 nach, um die physikalische Adresse zu suchen, die mit der virtuellen Adresse 212 übereinstimmt, und einen zugehörigen Seitentabelleneintrag. Wenn die physikalische Adresse nicht in dem Cache 219 ist, durchsucht der TLB 218 dann die MOPT 77 selbst. Der TLB 218 verwendet die Basis der MOPT 221, um nach der physikalischen Adresse zu suchen. Es wird auch auf 1E Bezug genommen; beginnend mit der Basis der MOPT 221 und der Seitentabellenkomponente 91 der virtuellen Adresse 212 findet der TLB 218 den Seitentabelleneintrag 93 für die virtuelle Adresse 212. wie zuvor erörtert, enthält jeder Seitentabelleneintrag 93 die Basis der Seite 95 und ein Attribut 96 (isoliert oder nicht-isoliert) für die Seite. Unter Verwendung der Basis der Seite 95 und der Offset-Komponente 92 der virtuellen Adresse kann der TLB 218 die der virtuellen Adresse entsprechende physikalische Adresse 99 finden. Es ist klar, daß die Übersetzung der virtuellen Adressen in physikalische Adressen unter Verwendung eines TLB im Stand der Technik gut bekannt ist. Wie später erörtert wird, ist das Attribut 96 (isoliert oder nicht-isoliert) für die Seite beim Konfigurieren einer Zugriffstransaktion für die isolierte Ausführung wichtig.The TLB 218 translates the virtual address 212 into a physical address 99 , The TLB 218 contains a cache 219 Memory Ownership Page Table (MOPT) 77 , The TLB 218 beats first in the cache 219 to search for the physical address that matches the virtual address 212 matches and a related page table entry. If the physical address is not in the cache 219 is, searches the TLB 218 then the MOP 77 itself. The TLB 218 uses the base of the MOPT 221 to search for the physical address. It will also open 1E Reference is made; starting with the base of the MOPT 221 and the page table component 91 the virtual address 212 finds the TLB 218 the page table entry 93 for the virtual address 212 , As previously discussed, each page table entry contains 93 the base of the page 95 and an attribute 96 (isolated or non-isolated) for the page. Using the base of the page 95 and the offset component 92 the virtual address can be the TLB 218 the physical address corresponding to the virtual address 99 Find. It is clear that the translation of the virtual addresses into physical addresses using a TLB is well known in the art. As will be discussed later, the attribute is 96 (isolated or non-isolated) is important to the page when you configure an isolated execution access transaction.

Es wird wieder auf 2A Bezug genommen; die Kernausführungsschaltung 205 bildet eine Schnittstelle zu dem Zugriffsmanager 220 über Steuer/Status-Informationen 222, einen Operanden 224 und Zugriffsinformationen 226. Die Steuer/Status-Informationen 222 umfassen Steuerbits zum Manipulieren verschiedener Elemente in dem Isolierter-Buszyklus-Generator 220 und Statusdaten aus dem Zugriffsmanager 220. Der Operand 224 umfasst in den Zugriffsmanager 220 zu schreibende Daten und aus ihm zu lesende Daten. Die Zugriffsinformationen 226 umfassen Adreßinformationen (z.B. die von dem TLB 218 zur Verfügung gestellte physikalische Adresse), Lese/Schreib- und Zugriffsartinformationen.It will be up again 2A Reference is made; the core execution circuit 205 forms an interface to the access manager 220 about tax / status information 222 , an operand 224 and access information 226 , The tax / status information 222 include control bits for manipulating various elements in the isolated bus cycle generator 220 and status data from the Access Manager 220 , The operand 224 includes in the access manager 220 data to be written and data to be read from. The access information 226 include address information (eg those from the TLB 218 provided physical address), read / write and access type information.

Der Zugriffsmanager 220 empfängt die Steuer/Status-Informationen 220 und stellt diese zur Verfügung, empfängt Informationen des Operanden 224 und stellt diese zur Verfügung, empfängt die Zugriffsinformationen 226 aus der Kernausführungsschaltung 205 im Ergebnis der Befehlsausführung, empfängt ein Cache-Zugriffssignal 235 (z.B. einen Cache-Treffer) und ein Attribut 96 (isoliert oder nicht-isoliert) aus dem Cache-Speichermanager 230. Der Zugriffsmanager 220 empfängt darüber hinaus ein externes Isolierter-Zugriff-Signal 278 und ein Frontseitenbus(FSB)-Adreßinformationssignal 228 von einem anderen Prozessor in dem System. Das externe Isolierter-Zugriff-Signal 278 wird angelegt, wenn ein anderer Prozessor in dem System versucht, auf einen der isolierten Speicherbereiche zuzugreifen. Der Zugriffsmanager 220 erzeugt ein Isolierter-Zugriff-Signal 272, ein Zugriffsgewährungssignal 274 und ein Prozessor-Snoop-Zugriffssignal 276. Das Isolierter-Zugriff-Signal 272 kann verwendet werden, um einen isolierten Buszyklus 230 zu erzeugen, der an Bauelemente (z.B. Chipsätze) gesendet wird, die sich außerhalb des Prozessors 110 befinden, um anzuzeigen, daß der Prozessor 110 einen Befehl des isolierten Modus ausführt. Das Prozessor-Snoop-Zugriffssignal 276 kann durch andere Bauelemente oder Chipsätze verwendet werden, um zu bestimmen, ob ein Snoop-Zugriff ein Treffer oder ein Fehlversuch ist. Das Isolierter-Zugriff-Signal 272, das Zugriffsgewährungssignal 274 und das Prozessor-Snoop-Zugriffssignal 276 können darüber hinaus intern von dem Prozessor 110 verwendet werden, um andere isolierte oder nicht-isolierte Aktivitäten zu überwachen.The access manager 220 receives the control / status information 220 and provides these, receives information from the operand 224 and provides them, receives the access information 226 from the core execution circuit 205 as a result of the instruction execution receives a cache access signal 235 (eg a cache hit) and an attribute 96 (isolated or non-isolated) from the cache memory manager 230 , The access manager 220 also receives an external isolated access signal 278 and a front-end bus (FSB) address information signal 228 from another processor in the system. The external isolated access signal 278 is asserted when another processor in the system attempts to access one of the isolated storage areas. The access manager 220 generates an isolated access signal 272 , an access grant signal 274 and a processor snoop access signal 276 , The isolated access signal 272 Can be used to provide an isolated bus cycle 230 which is sent to components (eg, chipsets) that are external to the processor 110 to indicate that the processor 110 Run an isolated mode command. The processor snoop access signal 276 may be used by other devices or chipsets to determine if snoop access is a hit or a miss. The isolated access signal 272 , the access grant signal 274 and the processor snoop access signal 276 In addition, internally from the processor 110 used to monitor other isolated or non-isolated activities.

Der Cache-Speichermanager 230 empfängt die Zugriffsinformationen 226 aus der Kernausführungsschaltung 205 und erzeugt das Cache-Zugriffssignal 235 zu dem Zugriffsmanager 220. Der Cache-Speichermanager 230 enthält einen Cache-Speicher 232 zum Speichern von Cache-Informationen und weitere Schaltungen zum Verwalten von Cache-Transaktionen, wie es einem Fachmann bekannt ist. Das Cache-Zugriffssignal 235 zeigt das Ergebnis des Cache-Zugriffs an. Bei einem Ausführungsbeispiel ist das Cache-Zugriffssignal 235 ein Cache-Treffer-Signal, das angelegt wird, wenn es einen Cache-Treffer aus einem Cache-Zugriff heraus gibt:The cache memory manager 230 receives the access information 226 from the core execution circuit 205 and generates the cache access signal 235 to the access manager 220 , The cache memory manager 230 contains a cache memory 232 for storing cache information and other circuits for managing cache transactions, as known to those skilled in the art. The cache access signal 235 indicates the result of the cache access. In one embodiment, the cache access signal is 235 a cache hit signal that is asserted when there is a cache hit out of a cache access:

2B ist ein Schema, das den in 2A gezeigten Zugriffsmanager gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Der Zugriffsmanager 220 enthält einen Konfigurationsspeicher 250 und eine Zugriffsüberprüfungsschaltung 270. Der Zugriffsmanager 220 tauscht Operandeninformationen 224 mit der in 2A gezeigten Kernausführungsschaltung 205 aus und empfängt die Zugriffsinformationen 226 aus der Schaltung. Die Operandeninformationen 224 umfassen das Attribut 96 (isoliert oder nicht-isoliert) für die der physikalischen Adresse 99 zugeordnete Seite. Der Zugriffsmanager 220 empfängt darüber hinaus das Cache-Zugriffssignal 235 aus dem Cache-Manager 230 und das externe Isolierter-Zugriff-Signal 278 und die FSB-Adreßinformationen 228 aus einem weiteren Prozessor, wie es in 2A gezeigt ist. Der Zugriffsmanager 220 empfängt ferner ein Attribut 96 (isoliert oder nicht-isoliert) aus dem Cache-Manager 230. Das Attribut ist pro Cache-Zeile vorhanden. Die Zugriffsinformationen 226 umfassen eine physikalische Adresse 99, ein Lese/Schreib(RD/WR#)-Signal 284 und eine Zugriffsart 286. Die Zugriffsinformationen 226 werden während einer Zugriffstransaktion von dem Prozessor 110 erzeugt. Die Zugriffsart 286 zeigt die Art des Zugriffs an, die eine Speicherbezugnahme, eine Eingabe/Ausgabe(I/O)-Bezugnahme und einen Logischer-Prozessor-Zugriff einschließt. Der Logischer-Prozes sor-Zugriff umfasst einen Eintritt eines logischen Prozessors in einen Isoliert-Freigegeben-Zustand und eine Rücknahme eines logischen Prozessors aus einem Isoliert-Freigegeben-Zustand. 2 B is a schema that uses the in 2A illustrated access manager according to an embodiment of the invention illustrated. The access manager 220 contains a configuration memory 250 and an access checking circuit 270 , The access manager 220 exchanges operand information 224 with the in 2A shown core execution circuit 205 and receives the access information 226 from the circuit. The operand information 224 include the attribute 96 (isolated or non-isolated) for the physical address 99 associated page. The access manager 220 also receives the cache access signal 235 from the cache manager 230 and the external isolated access signal 278 and the FSB address information 228 from another processor, as in 2A is shown. The access manager 220 also receives an attribute 96 (isolated or non-isolated) from the cache manager 230 , The attribute exists per cache line. The access information 226 include a physical address 99 , a read / write (RD / WR #) signal 284 and an access type 286 , The access information 226 be during an access transaction by the processor 110 generated. The access type 286 indicates the type of access that includes memory reference, input / output (I / O) reference, and logical processor access. The logical processor access includes an entry of a logical processor into an isolated-enabled state and a return of a logical processor from an isolated-enabled state.

Der Konfigurationsspeicher 250 enthält Konfigurationsparameter zum Konfigurieren einer von dem Prozessor 110 erzeugten Zugriffstransaktion. Der Prozessor 110 weist einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus auf. Die Zugriffstransaktion weist Zugriffsinformationen auf. Der Konfigurationsspeicher 250 empfängt die Operandeninformationen 224 aus der Befehlsdekodierer- und -Ausführungseinheit 210 (2A). Der Konfigurationsspeicher 250 enthält ein Attributregister für eine Seite 251 und ein Prozessorsteuerregister 252. Das Attributregister 251 enthält das Attribut 96 für die der physikalischen Adresse zugeordnete Seite, das entweder auf isoliert oder auf nicht-isoliert gesetzt ist. Das Prozessorsteuerregister 252 enthält ein Ausführungsmoduswort 253. Das Ausführungsmoduswort 253 wird angelegt, wenn der Prozessor 110 in den isolierten Ausführungsmodus konfiguriert ist. Bei einem Ausführungsbeispiel ist das Ausführungsmoduswort 253 ein einzelnes Bit, das anzeigt, ob der Prozessor 110 sich in dem isolierten Ausführungsmodus befindet.The configuration memory 250 Contains configuration parameters for configuring one from the processor 110 generated access transaction. The processor 110 has a normal execution mode and an isolated execution mode. The access transaction has access information. The configuration memory 250 receives the operand information 224 from the instruction decoder and execution unit 210 ( 2A ). The configuration memory 250 contains an attribute register for a page 251 and a processor control register 252 , The attribute register 251 contains the attribute 96 for the page associated with the physical address, which is set either to isolated or to non-isolated. The processor control register 252 contains an execution mode word 253 , The execution mode word 253 is created when the processor 110 is configured in the isolated execution mode. In one embodiment, the execution mode word is 253 a single bit that indicates whether the processor 110 is in the isolated execution mode.

Die Zugriffsüberprüfungsschaltung 270 überprüft die Zugriffstransaktionen unter Verwendung wenigstens eines der Konfigurationsparameter (z.B. des Ausführungsmoduswortes 253 und des Attributes 96) und der Zugriffsinformationen 226. Die Zugriffsüberprüfungsschaltung 270 erzeugt das Prozessor-Isolierter-Zugriff-Signal 272, das Zugriffsgewährungssignal 274 und das Prozessor-Snoop-Zugriff-Signal 276 unter Verwendung wenigstens eines der Parameter in dem Konfigurationsspeicher 250, der Zugriffsinformationen 226 in einer von dem Prozessor 110 erzeugten Transaktionen und der FSB-Adreßinformationen 228. Die FSB-Adreßinformationen 228 werden typischerweise von einem anderen Prozessor zur Verfügung ge stellt und werden an dem FSB einer Snoop-Operation unterzogen. Das Isolierter-Zugriff-Signal 272 wird angelegt, wenn der Prozessor 110 in den isolierten Ausführungsmodus konfiguriert ist. Das Zugriffsgewährungssignal 274 wird verwendet, um anzuzeigen, das ein Zugriff gewährt worden ist. Das Prozessor-Snoop-Zugriffssignal 276 wird verwendet, um zu bestimmen, ob ein Zugriff aus einem anderen Prozessor zu einem Treffer oder Fehlversuch führt.The access checking circuit 270 checks the access transactions using at least one of the configuration parameters (eg, the execution mode word 253 and the attribute 96 ) and the access information 226 , The access checking circuit 270 generates the processor isolated access signal 272 , the access grant signal 274 and the processor snoop access signal 276 using at least one of the parameters in the configuration memory 250 , the access information 226 in one of the processor 110 generated transactions and the FSB address information 228 , The FSB address information 228 are typically provided by another processor and are snooped on the FSB. The isolated access signal 272 is created when the processor 110 is configured in the isolated execution mode. The access grant signal 274 is used to indicate that access has been granted. The processor snoop access signal 276 is used to determine if access from another processor results in a hit or miss.

3A ist ein Schema, das die Zugriffsüberprüfungsschaltung 270 gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffsüberprüfungsschaltung 270 enthält eine TLB-Zugriffsüberprüfungsschaltung 310 und eine FSB-Snoop-Überprüfungsschaltung 330. 3A is a schema that uses the access validation circuit 270 illustrated according to an embodiment of the invention. The access checking circuit 270 contains a TLB access checking circuit 310 and an FSB snoop check circuit 330 ,

Die TLB-Zugriffsüberprüfungsschaltung 310 empfängt das Attribut 96 und das Ausführungsmoduswort 253 zum Erzeugen eines Zugriffsgewährungssignals 274. Das Zugriffsgewährungssignal 274 an den isolierten Bereich wird angelegt, wenn das Attribut 96 auf isoliert gesetzt ist und das Ausführungsmoduswort 253 angelegt ist, was anzeigt, das ein isolierter Zugriff gültig oder gestattet ist wie es konfiguriert ist. Bei einem Ausführungsbeispiel führt die TLB-Zugriffsüberprüfungsschaltung 310 eine logische "Exclusiv-NOR"-Operation aus. Wenn somit ein Prozessor eine physikalische Adresse eines isolierten Bereichs anfordert, wird die Zugriffstransaktion nur dann gewährt, wenn der Prozessor in dem isolierten Ausführungsmodus arbeitet und das Attribut für die der physikalischen Adresse zugeordnete Seite auf isoliert gesetzt ist.The TLB access checking circuit 310 receives the attribute 96 and the execution mode word 253 for generating an access grant signal 274 , The access grant signal 274 to the isolated area is created if the attribute 96 is set to isolated and the execution mode word 253 is created, indicating that isolated access is valid or allowed as it is configured. In one embodiment, the TLB access checking circuit performs 310 a logical "Exclusive NOR" operation. Thus, when a processor requests a physical address of an isolated area, the access transaction is granted only if the processor is operating in the isolated execution mode and the attribute for the page associated with the physical address is set to isolated.

Die FSB-Snoop-Überprüfungsschaltung 330 führt eine der TLB-Zugriffsüberprüfungsschaltung 310 ähnliche Funktionen aus. Die FSB-Snoop-Überprüfungsschaltung 330 erzeugt das Prozessor-Snoop-Zugriffssignal 276 durch Kombinieren des Cache-Zugriffssignals 235, des externen Isolierter-Zugriff-Signals 278 und des Attributs 96. Die FSB-Snoop-Überprüfungsschaltung 330 enthält einen ersten Kombinierer 342 und einen zweiten Kombinierer 344. Der erste Kombinierer 342 empfängt das Attribut 96 (isoliert oder nicht-isoliert) für die einer Snoop-Operation zu unterziehende Zeile aus dem Cache-Speichermanager 230 und das externe Isolierter-Zugriff-Signal 278 aus einem anderen Prozessor, der die Snoop-Operation ausführt. Das Attribut ist für jede Cache-Zeile vorhanden. Bei einem Ausführungsbeispiel führt der erste Kombinierer 342 eine logische "Exclusiv-NOR"-Operation aus. Der zweite Kombinierer 344 kombiniert das Ergebnis des ersten Kombinierers 342 mit dem Cache-Zugriffssignal 235 (z.B. Cache-Treffer). Bei einem Ausführungsbeispiel führt der zweite Kombinierer 344 eine logische UND-Operation aus. So kann ein Prozessor nur dann eine Zeile aus einem anderen Prozessor für einen isolierten Bereich einer Snoop-Operation unterziehen, wenn der die Snoop-Operation ausführende Prozessor in dem isolierten Ausführungsmodus arbeitet, das Attribut für die Seite auf isoliert gesetzt ist und es einen Cache-Treffer gibt. Nur wenn diese Bedingungen erfüllt sind, wird die Zugriffstransaktion gewährt und das Prozessor-Snoop-Zugriffssignal 276 für einen isolierten Bereich erzeugt.The FSB snoop verification circuit 330 performs one of the TLB access checking circuits 310 similar functions. The FSB snoop verification circuit 330 generates the processor snoop access signal 276 by combining the cache access signal 235 , the external isolated access signal 278 and the attribute 96 , The FSB snoop verification circuit 330 contains a first combiner 342 and a second combiner 344 , The first combiner 342 receives the attribute 96 (isolated or not-isolated) for the row to be snooped from the cache memory manager 230 and the external isolated access signal 278 from another processor performing the snoop operation. The attribute exists for each cache line. In one embodiment, the first combiner performs 342 a logical "Exclusive NOR" operation. The second combiner 344 combines the result of the first combiner 342 with the cache access signal 235 (eg cache hits). In one embodiment, the second combiner performs 344 a logical AND operation. Thus, a processor can only take a line from another processor for an isolated area of a snoop operation When the processor executing the snoop operation operates in the isolated execution mode, the attribute for the page is set to isolated and there is a cache hit. Only when these conditions are met will the access transaction be granted and the processor snoop access signal 276 generated for an isolated area.

Die FSB-Snoop-Überprüfungsschaltung 330 sichert eine richtige Funktion in einem Multi-Prozessor-System, wenn nicht sämtliche Prozessoren für Zugriffe auf einen isolierten Speicherbereich initialisiert worden sind. Das X-NOR-Element 342 sichert, daß ein Snoop-Treffer nur aus einem Prozessor auftreten kann, dem ein isolierter Zugriff ermöglicht worden ist. Wenn ein Prozessor noch nicht an den Zugriffen auf isolierte Speicherbereiche teilnimmt, so ist er nicht in der Lage, eine Zeile aus einem anderen Prozessor, der an Zugriffen auf den isolierten Speicherbereich teilhat, einer Snoop-Operation zu unterziehen. In ähnlicher Weise wird vermieden, daß ein Prozessor, der für isolierte Zugriffe freigegeben worden ist, nicht versehentlich eine Zeile aus einem anderen Prozessor, der noch nicht freigegeben worden ist, einer Snoop-Operation unterzieht.The FSB snoop verification circuit 330 assures a proper function in a multi-processor system, if not all processors have been initialized for access to an isolated memory area. The X-NOR element 342 ensures that a snoop hit can only occur from a processor that has been granted isolated access. If a processor does not yet participate in accessing isolated storage areas, it will not be able to snoop a line from another processor sharing accesses to the isolated storage area. Similarly, it is avoided that a processor that has been freed for isolated accesses will not inadvertently snoop a line from another processor that has not yet been freed.

Das Prozessor-Snoop-Zugriffssignal 276 für einen isolierten Bereich wird angelegt, um anzuzeigen, daß es einen Zugriffstreffer gibt, wenn das Cache-Zugriffssignal 235 angelegt wird, was anzeigt, das es einen Cache-Treffer gibt, und wenn das externe Isolierter-Zugriff-Signal 278 angelegt wird und das Attribut 96 auf isoliert gesetzt ist.The processor snoop access signal 276 for an isolated area is applied to indicate that there is an access hit when the cache access signal 235 which indicates that there is a cache hit, and if the external isolated access signal 278 is created and the attribute 96 is set on isolated.

3B ist ein Schema, das die Zugriffsüberprüfungsschaltung 270 zum Verwalten logischer Prozessoroperationen gemäß einem weiteren Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffsüberprüfungsschaltung 270 enthält einen Logischer-Prozessor-Manager 360. 3B is a schema that uses the access validation circuit 270 for managing logical processor operations according to another embodiment of the invention. The access checking circuit 270 contains a Logical Processor Manager 360 ,

Ein physikalischer Prozessor kann eine Reihe logischer Prozessoren enthalten. Jeder logische Prozessor kann in einen isolierten Prozessorzustand eintreten oder diesen verlassen, was als Logischer-Prozessor-Zugriff bezeichnet wird. Ein Logischer-Prozessor-Zugriff wird typischerweise erzeugt, wenn der zugehörige logische Prozessor einen Isoliert-Befehl ausführt, wie beispielsweise einen Isoliert_Eintritt (iso_enter) und ein Isoliert_Verlassen (iso_exit). Der Logischer-Prozessor-Manager 360 verwaltet eine logische Prozessoroperation, die durch den logischen Prozessorzugriff verursacht worden ist. Im Wesentlichen verfolgt der Logischer-Prozessor-Manager 360 die Anzahl der freigegebenen logischen Prozessoren in dem Prozessor. Der Logischer-Prozessor-Manager 360 enthält ein Logischer-Prozessor-Register 370, einen Logischer-Prozessor-Zustandsfreigeber 382, einen Logischer-Prozessor-Aktualisierer 380, einen Minimumdetektor 374 und einen Maximumdetektor 376. Die Logischer-Prozessor-Register 370 speichern eine Zählung logischer Prozessoren 372 zum Kennzeichnen einer Anzahl logischer Prozessoren, die gegenwärtig freigegeben sind. Der Logischer-Prozessor-Zustandsfreigeber 382 gibt einen logischen Prozessor frei, wenn der Logischer-Prozessor-Zugriff gültig ist. Der Logischer-Pro zessor-Aktualisierer 380 aktualisiert die Zählung 372 logischer Prozessoren in Übereinstimmung mit dem Zugriff auf logische Prozessoren. Der Logischer-Prozessor-Aktualisierer 380 wird durch den freigegebenen Logischer-Prozessor-Zustand freigegeben. Bei einem Ausführungsbeispiel sind die Logischer-Prozessor-Register 370 und der Logischer-Prozessor-Aktualisierer 380 als Aufwärts/Abwärts-Zähler mit Freigabe implementiert. Der Minimumdetektor 374 bestimmt, ob die Logischer-Prozessor-Zählung 372 gleich einem minimalen Logischer-Prozessor-Wert (z.B. gleich Null) ist. Der Maximumdetektor 376 bestimmt, ob die Logischer-Prozessor-Zählung 372 einen maximalen Logischer-Prozessor-Wert überschreitet. Der maximale Logischer-Prozessor-Wert ist eine Zahl, die die maximale Anzahl logischer Prozessoren anzeigt, die durch den isolierten Ausführungsmodus in einem Prozessor 110 unterstützt werden können.A physical processor may include a number of logical processors. Each logical processor may enter or leave an isolated processor state, referred to as logical processor access. Logic processor access is typically generated when the associated logical processor executes an isolated command, such as an iso_enter and an iso_exit. The Logical Processor Manager 360 manages a logical processor operation caused by the logical processor access. Essentially, the Logical Processor Manager keeps track of it 360 the number of shared logical processors in the processor. The Logical Processor Manager 360 contains a logical processor register 370 , a logical processor state enable 382 , a Logical Processor Updater 380 , a minimum detector 374 and a maximum detector 376 , The logical processor registers 370 store a count of logical processors 372 for identifying a number of logical processors that are currently enabled. The logical processor state enable 382 releases a logical processor if the logical processor access is valid. The Logical Processor Updater 380 updates the count 372 logical processors in accordance with the access to logical processors. The Logical Processor Updater 380 is released by the enabled logical processor state. In one embodiment, the logical processor registers are 370 and the Logical Processor Updater 380 implemented as an up / down counter with enable. The minimum detector 374 determines if the logical processor count 372 is equal to a minimum logical processor value (eg equal to zero). The maximum detector 376 determines if the logical processor count 372 exceeds a maximum logical processor value. The maximum logical processor value is a number that indicates the maximum number of logical processors that may be isolated by the execution mode in a processor 110 can be supported.

Der Logischer-Prozessor-Aktualisierer 380 initialisiert das Logischer-Prozessor-Register 370 beim Systemrücksetzen. Der Logischer-Prozessor-Aktualisierer 380 aktualisiert die Logischer-Prozessor-Zählung 372 in einer ersten Richtung (z.B. durch Inkrementieren), wenn die Zugriffstransaktion dem Logischer-Prozessor-Eintrag entspricht. Der Logischer-Prozessor-Aktualisierer 380 aktualisiert die Logischer-Prozessor-Zählung 372 in einer zweiten Richtung, die der ersten Richtung entgegengesetzt ist (z.B. durch Dekrementieren), wenn die Zugriffstransaktion dem Logischer-Prozessor-Verlassen oder einer Rücknahme eines logischen Prozessors entspricht. Wenn die Logischer-Prozessor-Zählung 372 gleich dem minimalen Logischer-Prozessor-Wert ist, veranlaßt der Logischer-Prozessor-Manager 360 den Prozessor 110, den Cache-Speicher 232 (2A) durch Rückschreiben in den Hauptspeicher und das Isoliert-Einstellung-Register (2A) von sämtlichen Isoliert-Informationen zu löschen, um die anfänglichen Zustände in diesen Speicherelementen wiederherzustellen. Wenn die Logischer-Prozessor-Zählung 372 den maxi malen Logischer-Prozessor-Wert überschreitet, veranlaßt der Logischer-Prozessor-Manager 360 den Prozessor 110, eine Mißerfolg- oder Fehler-Bedingung zu erzeugen, weil die Gesamtzahl der logischen Prozessoren die maximale Anzahl der logischen Prozessoren, die in dem Prozessor unterstützt werden können, überschreitet.The Logical Processor Updater 380 initializes the logical processor register 370 during system reset. The Logical Processor Updater 380 updates the logical processor count 372 in a first direction (eg, by incrementing) if the access transaction corresponds to the logical processor entry. The Logical Processor Updater 380 updates the logical processor count 372 in a second direction that opposes the first direction (eg, by decrementing) when the access transaction corresponds to the logical processor exit or a withdrawal of a logical processor. When the logical processor count 372 is equal to the minimum logical processor value, causes the Logical Processor Manager 360 the processor 110 , the cache memory 232 ( 2A ) by writing back to the main memory and the isolation setting register ( 2A ) of all the isolation information to restore the initial states in these memory elements. When the logical processor count 372 exceeds the maximum logical processor value, causes the Logical Processor Manager 360 the processor 110 to generate a fail condition because the total number of logical processors exceeds the maximum number of logical processors that can be supported in the processor.

4 ist ein Ablaufdiagramm, das einen Prozeß 400 zum Erzeugen eines Zugriffsgewährungssignals für eine isolierte Ausführung gemäß einem Ausführungsbespiel der Erfindung veranschaulicht. 4 is a flowchart illustrating a process 400 for generating an access grant signal for an isolated execution according to ei nem Ausführungsbespiel the invention illustrated.

Bei START verteilt der Prozeß 400 Seiten an mehrere isolierte Speicherbereiche (Block 410). Dann legt der Prozeß 400 das Ausführungsmoduswort in dem Prozessorsteuerregister an, um den Prozessor in den isolierten Ausführungsmodus zu konfigurieren (Block 420). Der Prozeß 400 empfängt dann Zugriffsinformationen aus einer Zugriffstransaktion aus einem Prozessor (Block 425). Die Zugriffsinformationen schließen eine physikalische Adresse (wie sie von dem TLB zur Verfügung gestellt wird), ein Attribut (isoliert/nicht-isoliert) für die Seite und einen Zugriffstyp ein. Als nächstes bestimmt der Prozeß 400, ob das Attribut auf isoliert gesetzt ist und ob das Ausführungsmoduswort angelegt ist (was ein Setzen auf isoliert anzeigt) (Block 430). Wenn dies nicht der Fall ist, erzeugt der Prozeß 400 eine Mißerfolg- oder Fehler-Bedingung (Block 435) und wird dann beendet. Anderenfalls legt der Prozeß 400 das Zugriffsgewährungssignal an (Block 440). Dann ist der Prozeß 400 beendet.At START, the process distributes 400 Pages to multiple isolated storage areas (block 410 ). Then the process sets 400 the execution mode word in the processor control register to configure the processor in the isolated execution mode (block 420 ). The process 400 then receives access information from an access transaction from a processor (block 425 ). The access information includes a physical address (as provided by the TLB), an attribute (isolated / non-isolated) for the page, and an access type. Next, the process determines 400 whether the attribute is set to isolated and whether the execution mode word is asserted (indicating a set to isolated) (Block 430 ). If not, the process generates 400 a failure or error condition (block 435 ) and then quit. Otherwise, the process stops 400 the access grant signal (block 440 ). Then the process is 400 completed.

5 ist ein Ablaufdiagramm, das einen Prozeß 500 zum Verwalten Prozeß-Logischer-Prozessor-Operationen für eine isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 5 is a flowchart illustrating a process 500 for managing illustrated process logical processor operations for an isolated embodiment according to an embodiment of the invention.

Bei START initialisiert der Prozeß 500 das Logischer-Prozessor-Register, wenn es keinen freigegebenen logischen Prozessor gibt (Block 510). Dann führt der Prozeß 500 einen Logischer-Prozessor-Zugriffsbefehl aus (z.B. iso_enter, iso_exit). Der Logischer-Prozessor-Zugriffsbefehl legt das Ausführungsmoduswort an. Als nächstes gibt der Prozeß 500 den Logischer-Prozessor-Zustand frei (Block 525). Dann bestimmt der Prozeß 500 den Logischer-Prozessor-Zugriffstyp (Block 530).At START, the process initializes 500 the logical processor register if there is no shared logical processor (block 510 ). Then the process leads 500 a logical processor access command (eg, iso_enter, iso_exit). The logical processor access command asserts the execution mode word. Next is the process 500 free the logical processor state (block 525 ). Then the process determines 500 the logical processor access type (block 530 ).

Wenn der Logischer-Prozessor-Zugriffstyp ein Logischer-Prozessor-Eintritt ist, aktualisiert der Prozeß 500 die Zählung logischer Prozessoren in eine erste Richtung (z.B. inkrementierend) (Block 540). Dann bestimmt der Prozeß 500, ob die Zählung logischer Prozessoren den Maximalwert logischer Prozessoren überschreitet (Block 550). Wenn dies nicht der Fall ist, geht der Prozeß 500 zum Block 570. Anderenfalls erzeugt der Prozeß 500 eine Mißerfolg- oder Fehler-Bedingung (Block 560) und wird dann beendet.If the logical processor access type is a Logic Processor entry, the process updates 500 the count of logical processors in a first direction (eg incrementing) (block 540 ). Then the process determines 500 whether the count of logical processors exceeds the maximum value of logical processors (block 550 ). If not, the process goes 500 to the block 570 , Otherwise, the process creates 500 a failure or error condition (block 560 ) and then quit.

Wenn der Logischer-Prozessor-Zugriffstyp ein Verlassen eines logischen Prozessors oder eine Zurücknahme eines logischen Prozessors ist, aktualisiert der Prozeß 500 die Zählung logischer Prozessoren in einer zweiten Richtung, die der ersten Richtung entgegengesetzt ist (z.B. dekrementierend) (Block 545). Dann bestimmt der Prozeß 500, ob die Zählung logischer Prozessoren gleich dem Minimalwert (z.B. Null) ist (Block 555). Wenn dies nicht der Fall ist, geht der Prozeß 500 zum Block 570. Anderenfalls initialisiert der Prozeß 500 den Cache-Speicher und das Isoliert-Einstellung-Register durch Löschen sämtlicher Isoliert-Informationen (Block 565).If the Logical Processor Access Type is an exiting of a logical processor or a retirement of a logical processor, the process updates 500 the count of logical processors in a second direction opposite to the first direction (eg decrementing) (block 545 ). Then the process determines 500 whether the count of logical processors is equal to the minimum value (eg zero) (block 555 ). If not, the process goes 500 to the block 570 , Otherwise, the process initializes 500 the cache memory and the isolation setting register by clearing all the isolation information (block 565 ).

Als nächstes bestimmt der Prozeß 500, ob es einen nächsten Logischer-Prozessor-Zugriff gibt (Block 570). Wenn es einen nächsten Logischer-Prozessor-Zugriff gibt, kehrt der Prozeß 500 zum Block 520 zurück, um einen Logischer-Prozessor-Zugriffsbefehl auszuführen. Wenn keinen weiteren Logischer-Prozessor-Zugriff gibt, wird der Prozeß 500 beendet.Next, the process determines 500 whether there is a next logical processor access (block 570 ). If there is a next logical processor access, the process returns 500 to the block 520 back to execute a logical processor access command. If there is no further logical processor access, the process becomes 500 completed.

STEUERN VON ZUGRIFFEN AUF MEHRERE ISOLIERTE SPEICHER UNTER VERWENDUNG EINES SPEICHER-CONTROLLERS IN EINER ISOLIERTEN AUSFÜHRUNGSUMGEBUNGTAX OF ACCESSING MULTIPLE ISOLATED MEMORY USING A MEMORY CONTROLLER IN AN INSULATED EMBODIMENT

Die obige Beschreibung bezieht sich auf den Prozeß der isolierten Ausührung in dem Prozessor 110. Zugriffe auf mehrere isolierte Speicherbereiche 71, die in 1C gezeigt sind, werden darüber hinaus von dem MCH 130 (1F) kontrolliert/gesteuert. Gemäß 1F betrachtet der Prozessor 110 den MCH 130 als eine Eingabe/Ausgabe-Einrichtung, die in einen Adreßort abgebildet ist. Um auf den isolierten Speicherbereich 70 und insbesondere auf die mehreren isolierten Speicherbereiche 71 (1C) zugreifen zu können, muß der Prozessor 110 den Speicherkonfigurationsspeicher in dem MCH 130 entsprechend konfigurieren. Der MCH 130 enthält darüber hinaus Steuerfunktionen, um es dem Prozessor 110 zu ermöglichen, auf den Speicher 140 in den mehreren nicht-isolierten Speicherbereichen 83 (1C) ebenso zuzugreifen. Der MCH 130 empfängt Signale aus dem Prozessor 110 über den Host-Bus 120, wie beispielsweise das Isolierter-Zugriff-Signal oder die Buszyklusinformationen.The above description refers to the process of isolated execution in the processor 110 , Accesses to several isolated storage areas 71 , in the 1C are also shown by the MCH 130 ( 1F ) controlled / controlled. According to 1F the processor considers 110 the MCH 130 as an input / output device which is mapped to an address location. To access the isolated storage area 70 and more particularly to the multiple isolated storage areas 71 ( 1C ), the processor must 110 the memory configuration memory in the MCH 130 configure accordingly. The MCH 130 Also includes control functions to the processor 110 to allow on the memory 140 in the multiple non-isolated storage areas 83 ( 1C ) as well. The MCH 130 receives signals from the processor 110 over the host bus 120 such as the isolated access signal or the bus cycle information.

In 1F ist der MCH 130 außerhalb des Prozessors 110 gezeigt. Es ist jedoch möglich, daß der MCH 130 in den Prozessor 110 aufgenommen wird. In diesem Fall wird ein Schreib-Zyklus in die Register in dem MCH 130 extern gemacht, um es irgendeinem externen Cache zu ermöglichen, aus Gründen der Cache-Kohärenz daran teilzuhaben.In 1F is the MCH 130 outside the processor 110 shown. However, it is possible that the MCH 130 in the processor 110 is recorded. In this case, a write cycle into the registers in the MCH 130 made external to allow any external cache to participate for reasons of cache coherence.

Im wesentlichen führt die Zugriffssteuereinrichtung in dem MCH 130 eine ähnliche Funktion wie die Zugriffsüberprüfungsschaltung 270 aus, die in 3A gezeigt ist. Durch Aufrechterhalten einer Zugriffskonsistenz in sowohl dem Prozessor 110 als auch dem MCH 130 kann das Zugreifen auf den Speicher genau kontrolliert werden. Die Zugriffssteuereinrichtung in dem MCH 130 bestimmt, ob eine Zugriffstransaktion aus dem Prozessor 110 gültig ist. Wenn sie es ist, gibt die Zugriffssteuereinrichtung ein Zugriffsgewährungssignal zurück, um einen Abschluß der Zugriffstransaktion zu ermöglichen. Anderenfalls wird eine Mißerfolgs- oder Fehlerbedingung erzeugt. Darüber hinaus schützt die Zugriffssteuereinrichtung in dem MCH 130 auch vor irgendeiner absichtlichen oder versehentlichen Schreiboperation zu ihrem eigenen Konfigurations- und Steuerspeicher. Da der MCH 130 eine direkte Schnittstelle zu dem Speicher 140 aufweist, sorgt die Zugriffssteuereinrichtung außerdem für die Initialisierung des Inhalts der isolierten Speicherbereiche und seines eigenen internen Speichers beim Rücksetzen.Essentially, the access control device in the MCH 130 a similar function to the access checking circuit 270 out, in 3A is shown. By maintaining access consistency in both the processor 110 as well as the MCH 130 the access to the memory can be controlled precisely. The access control device in the MCH 130 determines if an access transaction from the processor 110 is valid. If it is, the access control device inputs Access grant signal back to allow completion of the access transaction. Otherwise, a failure or error condition is generated. In addition, the access control device in the MCH protects 130 also against any intentional or accidental write to its own configuration and control memory. Since the MCH 130 a direct interface to the memory 140 In addition, the access control means provides for initialization of the contents of the isolated storage areas and its own internal memory upon reset.

6 ist ein Schema, das die Zugriffssteuereinrichtung 135 des isolierten Bereichs in dem Speicher-Controller-Hub (MCH) 130, der in 1F gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffssteuereinrichtung 135 enthält einen Konfigurationsspeicher 610, eine Konfigurationssteuereinrichtung 640 und eine MCH-Zugriffsüberprüfungsschaltung 810. 6 is a schema that the access control device 135 the isolated area in the memory controller hub (MCH) 130 who in 1F is shown, according to an embodiment of the invention illustrated. The access control device 135 contains a configuration memory 610 , a configuration control device 640 and an MCH access checking circuit 810 ,

Der Konfigurationsspeicher 610 konfiguriert eine Zugriffstransaktion, die von dem Prozessor 110, der in 1F gezeigt ist, erzeugt wird. Der Prozessor 110 weist einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus auf. Die Zugriffstransaktion weist Zugriffsinformationen 660 auf. Die Zugriffsinformationen 660 werden über den Host-Bus 120 (1F) geführt und umfassen Adreßinformationen und einen Isolierter-Zugriff-Zustand. Die Adreßinformationen werden durch eine physikalische Adresse 662 dargestellt. Der Isolierter-Zugriff-Zustand wird durch das Isolierter-Zugriff-Signal 664 dargestellt. Das Isolierter-Zugriff-Signal 664 ist im wesentlichen dem Prozessor-Isolierter-Zugriff-Signal 272, das in 2A gezeigt ist, äquivalent. Das Isolierter-Zugriff-Signal 664 wird angelegt, wenn der Prozessor 110 eine gültige Bezugnahme (Referenz) auf einen der mehreren isolierten Speicherbereiche 71 (die in 1C gezeigt sind) erzeugt.The configuration memory 610 configures an access transaction performed by the processor 110 who in 1F is shown is generated. The processor 110 has a normal execution mode and an isolated execution mode. The access transaction has access information 660 on. The access information 660 be over the host bus 120 ( 1F ) and include address information and an isolated access state. The address information is given by a physical address 662 shown. The isolated access state is determined by the isolated access signal 664 shown. The isolated access signal 664 is essentially the processor isolated access signal 272 , this in 2A shown is equivalent. The isolated access signal 664 is created when the processor 110 a valid reference to one of the multiple isolated storage areas 71 (in the 1C shown).

Der Konfigurationsspeicher 610 enthält einen Cache 660 der Speicherbesitz-Seitentabelle (MOPT) 77. Der Konfigurationsspeicher 610 führt ein Nachschlagen nach der physikalischen Adresse 662 in dem Cache 660 durch, um nach der physikalischen Adresse und einem zugehörigen Seitentabelleneintrag zu suchen. Wenn sich die physikalische Adresse nicht in dem Cache 219 befindet, führt der Konfigurationsspeicher 610 dann ein Nachschlagen nach der physikalischen Adresse 662 in der MOPT 77 (1E) selbst durch. Der Konfigurationsspeicher 610 verwendet die Basis der MOPT 221, um nach der physikalischen Adresse 662 in der MOPT 77 zu suchen. Es wird auch auf 1E Bezug genommen; beginnend mit der Basis der MOPT 221 führt der Konfigurationsspeicher 610 ein Nachschlagen in der MOPT 77 durch und findet den der physikalischen Adresse 662 zugeordneten Seitentabelleneintrag 93. Der Konfigurationsspeicher 610 kann die physikalischen Adressen der Seiten 98 durchsuchen, um den der physikalischen Adresse zugeordneten Seitentabelleneintrag 93 zu lokalisieren. Jeder Seitentabelleneintrag 93 enthält ein Attribut 96 (isoliert oder nicht-isoliert) für die der physikalischen Adresse zugeordnete Seite, welches zum Konfigurieren einer Zugriffstransaktion für der MCH 130 wichtig ist. Es ist klar, daß das Durchführen eines Nachschlagens in eine Seitentabelle zum Lokalisieren einer physikalischen Adresse und eines zugehörigen Seitentabelleneintrags im Stand der Technik gut bekannt ist und daß weitere Verfahren zum Durchführen des Nachschlagens dem Fachmann gut bekannt sind.The configuration memory 610 contains a cache 660 the memory ownership page table (MOPT) 77 , The configuration memory 610 performs a lookup for the physical address 662 in the cache 660 to search for the physical address and an associated page table entry. If the physical address is not in the cache 219 is the configuration memory 610 then a lookup for the physical address 662 in the MOP 77 ( 1E ) by yourself. The configuration memory 610 uses the base of the MOPT 221 to get to the physical address 662 in the MOP 77 to search. It will also open 1E Reference is made; starting with the base of the MOPT 221 performs the configuration memory 610 a lookup in the MOPT 77 through and find the physical address 662 associated page table entry 93 , The configuration memory 610 can be the physical addresses of the pages 98 search for the page table entry associated with the physical address 93 to locate. Each page table entry 93 contains an attribute 96 (isolated or non-isolated) for the physical address associated page used to configure an access transaction for the MCH 130 important is. It will be appreciated that performing look-up into a page table for locating a physical address and associated page table entry is well known in the art, and that other methods for performing lookup are well known to those skilled in the art.

Der Konfigurationsspeicher 250 enthält außerdem Konfigurationsparameter zum Konfigurieren einer von dem MCH 130 erzeugten Zugriffstransaktion. Der Konfigurationsspeicher enthält ein Attributregister 611, das das Attribut 96 für die der physikalischen Adresse zugeordnete Seite enthält, das entweder auf isoliert oder auf nicht-isoliert gesetzt ist und durch das Nachschlagen gefunden wird. Wie oben erörtert, ist der isolierte Speicherbereich 71 für den Prozessor 110 nur in dem isolierten Ausführungsmodus zugreifbar.The configuration memory 250 also includes configuration parameters to configure one from the MCH 130 generated access transaction. The configuration memory contains an attribute register 611 that's the attribute 96 for the page associated with the physical address, which is either set to isolated or non-isolated and found by lookup. As discussed above, the isolated storage area is 71 for the processor 110 accessible only in the isolated execution mode.

Die Konfigurationssteuereinrichtung 640 steuert den Zugriff auf den Konfigurationsspeicher 610 und stellt einige Steuerfunktionen für den Speicher 140 zur Verfügung.The configuration control device 640 controls access to the configuration memory 610 and provides some control functions for the memory 140 to disposal.

Die MCH-Zugriffsüberprüfungsschaltung 810 erzeugt ein Zugriffsgewährungssignal 652 unter Verwendung der Zugriffsinformationen 660, des Attributs 96 des Isolierter-Zugriff-Signals 664 und der Isolierter-Speicher-Priorität 736. Das Zugriffsgewährungssignal 652 zeigt an, ob die Zugriffstransaktion gültig ist. Das Zugriffsgewährungssignal 652 kann von dem Prozessor 110 oder anderen Chipsätzen oder Peripherieeinrichtungen verwendet werden, um zu bestimmen, ob ein Versuch zum Zugreifen auf den isolierten Speicherbereich 71 gewährt worden ist.The MCH access checking circuit 810 generates an access grant signal 652 using the access information 660 , the attribute 96 the isolated access signal 664 and the isolated memory priority 736 , The access grant signal 652 indicates whether the access transaction is valid. The access grant signal 652 can from the processor 110 or other chipsets or peripherals may be used to determine if there is an attempt to access the isolated storage area 71 has been granted.

7 ist ein Schema, das die in 6 gezeigte MCH-Zugriffsüberprüfungsschaltung 810 gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 7 is a scheme that the in 6 shown MCH access checking circuit 810 illustrated according to an embodiment of the invention.

Die MCH-Zugriffs-Überprüfungsschaltung 810 erzeugt ein Zugriffsgewährungssignal 652 auf der Grundlage des Attributs 96 und des Isolierter-Zugriff-Signals 664. Das Zugriffsgewährungssignal 652 zeigt an, ob die Zugriffstransaktion gültig ist. Die MCH-Zugriffsüberprüfungsschaltung 810 empfängt das Attribut 96 und das Isolierter-Zugriff-Signal 664, um ein Zugriffsgewährungssignal 652 zu erzeugen. Das Zugriffsgewährungssignal 652 für den isolierten Bereich wird angelegt, wenn das Attribut 96 auf isoliert gesetzt ist und das Isolierter-Zugriff-Signal 664 angelegt ist, was anzeigt, daß ein isolierter Zugriff gültig oder gestattet ist, wie es konfiguriert ist. Bei einem Ausführungsbeispiel führt die MCH-Zugriffsüberprüfungsschaltung 810 eine logische "Exklusiv-NOR"-Operation aus. Wenn somit ein Prozessor eine physikalische Adresse eines isolierten Bereichs anfordert, wird die Zugriffstransaktion nur dann gewährt, wenn der Prozessor in dem isolierten Ausführungsmodus arbeitet und das Attribut für die der physikalischen Adresse zugeordnete Seite auf isoliert gesetzt ist.The MCH access checking circuit 810 generates an access grant signal 652 based on the attribute 96 and the isolated access signal 664 , The access grant signal 652 indicates whether the access transaction is valid. The MCH access checking circuit 810 receives the attribute 96 and the isolated access signal 664 to an access grant signal 652 to create. The access grant signal 652 for the isolated area is created if the attribute 96 is set to isolated and the isolated-access signal 664 is created, indicating that isolated access is valid or allowed as it is configured. In one embodiment, the MCH access checking circuit performs 810 a logical "Exclusive NOR" operation. Thus, if a processor requests a physical address of an isolated area, the access transaction is granted only if the processor is operating in the isolated execution mode and the attribute for the page associated with the physical address is set to isolated.

8 ist ein Ablaufdiagramm, das einen Prozeß 800 zum Erzeugen eines Zugriffsgewährungssignals für eine isolierte Ausführung für einen MCH gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. 8th is a flowchart illustrating a process 800 for generating an isolated access grant grant signal for an MCH according to an embodiment of the invention.

Bei START konfiguriert der Prozeß 800 eine Zugriffstransaktion für der MCH (Block 810). Dann empfängt der Prozeß 800 Zugriffsinformationen aus einer Zugriffstransaktion (Block 820). Die Zugriffsinformationen umfassen eine physikalische Adresse, ein Isolierter-Zugriff-Signal und ein Attribut (isoliert/nicht-isoliert) für die Seite. Als nächstes bestimmt der Prozeß 800, ob das Attribut auf isoliert gesetzt ist und ob das Isolierter-Zugriff-Signal angelegt ist (Block 830). Wenn dies nicht der Fall ist, erzeugt der Prozeß 800 eine Mißerfolgs- oder Fehlerbedingung (Block 835) und wird dann beendet. Anderenfalls legt der Prozeß 800 das Zugriffsgewährungssignal an (Block 840). Dann ist der Prozeß 800 beendet.At START, the process configures 800 an access transaction for the MCH (block 810 ). Then the process receives 800 Access information from an access transaction (Block 820 ). The access information includes a physical address, an isolated access signal and an attribute (isolated / non-isolated) for the page. Next, the process determines 800 whether the attribute is set to isolated and whether the isolated access signal is asserted (block 830 ). If not, the process generates 800 a failure or error condition (block 835 ) and then quit. Otherwise, the process stops 800 the access grant signal (block 840 ). Then the process is 800 completed.

Während diese Erfindung unter Bezugnahme auf veranschaulichende Ausführungsbeispiele beschrieben worden ist, soll diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Verschiedene Modifikationen der veranschaulichenden Ausführungsbeispiele sowie weitere Ausführungsbeispiele der Erfindung, welche Fachleuten klar werden, an welche sich die Erfindung richtet, werden als im Geist und Umfang der Erfindung liegend angesehen.While these Invention described with reference to illustrative embodiments This description is not intended to be limiting Meaning be interpreted. Various modifications of the illustrative embodiments and further embodiments of the invention, which will become apparent to those skilled in the art to which the The invention is deemed to be within the spirit and scope of the invention considered.

Claims (20)

Eine Einrichtung zum Steuern von Speicherzugriffen, aufweisend: einen Prozessor mit einem normalen Ausführungsmodus und einem isolierten Ausführungsmodus, wobei der Prozessor in dem isolierten Ausführungsmodus eine Unterstützung für eine isolierte Ausführung zur Verfügung stellt, die das Festlegen isolierter Speicherbereiche, das Unterstützen isolierter Befehle und das Sicherstellen, daß auf die isolierten Speicherbereiche nur im isolierten Ausführungsmodus zugegriffen werden kann, einschließt; einen Seitenmanager, der unter der Kontrolle des im isolierten Ausführungsmodus befindlichen Prozessors arbeitet, um eine Mehrzahl von Seiten auf eine Mehrzahl verschiedener Bereiche eines Speichers zu verteilen, wobei der Speicher in nicht-isolierte Bereiche und isolierte Bereiche unterteilt ist, wobei der Seitenmanager in einem isolierten Bereich des Speichers angeordnet ist; und eine Speicherbesitz-Seitentabelle, die in einem isolierten Bereich des Speichers angeordnet ist, wobei die Speicherbesitz-Seitentabelle jede Seite des Speichers beschreibt, wobei eine Beschreibung einer Seite in der Speicherbesitz-Seitentabelle eine Speicheradresse und ein Attribut umfaßt, wobei das Attribut die Seite als Seite eines isolierten oder eines nicht-isolierten Speicherbereichs definiert, wobei die Beschreibung sowohl bei isolierten als auch bei nicht-isolierten Zugriffs-Transaktionen verwendet wird.A device for controlling memory accesses, comprising: a processor with a normal execution mode and an isolated execution mode, wherein the processor in the isolated execution mode has support for an isolated one Execution to disposal Setting isolated storage areas, supporting isolated Commands and make sure that on the isolated memory areas only in isolated execution mode can be accessed; a page manager, under the control of the processor in isolated execution mode works to make a plurality of pages in a variety of different ways Distribute areas of a memory, leaving the memory in non-isolated Areas and isolated areas is divided, with the page manager is disposed in an isolated area of the memory; and a Memory ownership page table stored in an isolated area of the Memory, wherein the memory ownership page table describes each page of memory, with a description of a Page in the memory ownership page table a memory address and includes an attribute where the attribute is the page as an isolated page or a non-isolated page Memory area defined, with the description both isolated as well as non-isolated access transactions. Die Einrichtung nach Anspruch 1, wobei der Seitenmanager einer Seite ein Isoliert-Attribut zuweist, wenn die Seite an einen isolierten Bereich des Speichers verteilt wird.The device of claim 1, wherein the page manager Assign an Insulated attribute to a page when the page is next to a page isolated area of the memory is distributed. Die Einrichtung nach Anspruch 2, wobei der Seitenmanager der Seite ein Nicht-Isoliert-Attribut zuweist, sofern die Seite zu einem nicht-isolierten Bereich des Speichers verteilt wird.The device of claim 2, wherein the page manager assigns a non-isolated attribute to the page, provided the page is distributed to a non-isolated area of the memory. Die Einrichtung nach Anspruch 3, ferner aufweisend: einen Konfigurationsspeicher, der Konfigurationseinstellungen enthält, um eine von dem Prozessor erzeugte Zugriffstransaktion zu konfigurieren, wobei die Zugriffstransaktion Zugriffsinformationen aufweist; und eine mit dem Konfigurationsspeicher gekoppelte Zugriffsüberprüfungsschaltung zum Überprüfen der Zugriffstransaktion unter Verwendung zumindest der Konfigurationseinstellungen und der Zugriffsinformationen.The device of claim 3, further comprising: one Configuration memory, which contains configuration settings, by one to configure the access transaction generated by the processor, wherein the access transaction comprises access information; and a access checking circuit coupled to the configuration memory to check the Access transaction using at least the configuration settings and the access information. Die Einrichtung nach Anspruch 4, wobei die Konfigurationseinstellungen das Attribut für eine Seite und ein Ausführungsmoduswort einschließen.The device of claim 4, wherein the configuration settings the attribute for a page and an execution mode word lock in. Die Einrichtung nach Anspruch 5, wobei die Zugriffsinformationen eine physikalische Adresse und einen Zugriffstyp umfassen, wobei der Zugriffstyp anzeigt, ob die Zugriffstransaktion ein Speicherzugriff, ein Eingabe/Ausgabe-Zugriff oder ein Logischer-Prozessor-Zugriff ist.The device of claim 5, wherein the access information a physical address and an access type, wherein the access type indicates whether the access transaction is a memory access, an input / output access or a logical processor access is. Die Einrichtung nach Anspruch 5, wobei der Konfigurationsspeicher ferner einen Attributspeicher zum Aufnehmen eines eine Seite als isolierte oder nicht-isolierte definierenden Attributs für die Seite aufweist.The device of claim 5, wherein the configuration memory an attribute memory for recording a page as has isolated or non-isolated defining attribute for the page. Die Einrichtung nach Anspruch 5, wobei der Konfigurationsspeicher ferner ein Prozessorsteuerregister zum Aufnehmen des Ausführungmodusworts aufweist, wobei das Ausführungsmoduswort angelegt wird, wenn der Prozessor in den isolierten Ausführungsmodus konfiguriert wird.The apparatus of claim 5, wherein the configuration memory further comprises a processor control register for receiving the execution mode word wherein the execution mode word is applied when the processor is configured in the isolated execution mode. Die Einrichtung nach Anspruch 5, wobei die Zugriffsüberprüfungsschaltung eine TLB-Zugriffsüberprüfungsschaltung aufweist, um zu erfassen, ob das Attribut für die Seite auf isoliert gesetzt und das Ausführungsmoduswort angelegt ist, wobei die TLB-Zugriffsüberprüfungsschaltung ein Zugriffsgewährungssignal erzeugt.The device of claim 5, wherein the access checking circuit a TLB access checking circuit to detect if the attribute for the page is set to isolated and the execution mode word is applied, the TLB access checking circuit an access grant signal generated. Die Einrichtung nach Anspruch 5, wobei die Zugriffsüberprüfungsschaltung eine mit einem Cache gekoppelte FSB-Snoop-Überprüfungsschaltung aufweist, wobei die FSB-Snoop-Überprüfungsschaltung das Attribut, ein externes Isolierter-Zugriff-Signal aus einem anderen Prozessor und ein Cache-Zugriffssignal kopiert, wobei die FSB-Snoop-Überprüfungsschaltung ein Prozessor-Snoop-Zugriffssignal erzeugt.The device of claim 5, wherein the access checking circuit comprising a cache coupled FSB snoop verify circuit, wherein the FSB snoop check circuit the Attribute, an external isolated access signal from another processor and a cache access signal copied using the FSB snoop verification circuit generates a processor snoop access signal. Ein Verfahren zum Steuern von Speicherzugriffen, umfassend: Verteilen einer Mehrzahl von Seiten auf eine Mehrzahl verschiedener Bereiche eines Speichers unter Verwendung eines Seitenmanagers, der unter der Steuerung eines Prozessors mit einem normalen Ausführungsmodus und einem isolierten Ausführungsmodus arbeitet, wobei der Speicher in nicht-isolierte Bereiche und isolierte Bereiche unterteilt ist, wobei der Seitenmanager in einem isolierten Speicherbereich angeordnet ist, wobei der Prozessor in dem isolierten Ausführungsmodus eine Unterstützung für eine isolierte Ausführung zur Verfügung stellt, die das Festlegen isolierter Speicherbereiche, die Unterstützung isolierter Befehle und das Sicherstellen, daß auf die isolierten Speicherbereiche nur im isolierten Ausführungsmodus zugegriffen werden kann, einschließt; und Erzeugen einer Beschreibung für jede Seite des Speichers in einer Speicherbesitz-Seitentabelle, wobei eine Beschreibung einer Seite in der Speicherbesitz-Seitentabelle eine Speicheradresse und ein Attribut umfaßt, wobei das Attribut die Seite als Seite eines isolierten Speicherbereichs oder eines nicht-isolierten Speicherbereichs definiert, wobei die Beschreibung für isolierte und normale Transaktionen verwendet wird.A method for controlling memory accesses full: Distributing a plurality of pages to a plurality different areas of a memory using a page manager, under the control of a processor with a normal execution mode and an isolated execution mode works, leaving the memory in non-isolated areas and isolated Areas is subdivided, with the page manager in an isolated storage area is arranged, wherein the processor in the isolated execution mode a support for one insulated version provides Setting Isolated Storage Spaces Supporting Isolated Commands and make sure that on the isolated memory areas only in isolated execution mode can be accessed; and Create a Description for each page of memory in a memory ownership page table, a description of a page in the memory ownership page table a memory address and an attribute, the attribute being the Page as the page of an isolated storage area or a non-isolated storage area defined using the description for isolated and normal transactions becomes. Das Verfahren nach Anspruch 11, wobei das Beschreiben jeder Seite des Speichers das Zuweisen eines Isoliert-Attri buts zu einer Seite, wenn die Seite zu einem isolierten Bereich des Speichers verteilt wird, umfaßt.The method of claim 11, wherein describing each side of the memory allocating an isolated attribute to a page when the page is to an isolated area of memory is distributed. Das Verfahren nach Anspruch 12, wobei das Beschreiben jeder Seite des Speichers das Zuweisen eines Nicht-Isoliert-Attributs zu einer Seite, wenn die Seite zu einem nicht-isolierten Bereich des Speichers verteilt wird, umfaßt.The method of claim 12, wherein describing each page of memory assigning a non-isolated attribute to one Page, if the page to a non-isolated area of the memory is distributed. Das Verfahren nach Anspruch 13, ferner umfassend: Konfigurieren einer Zugriffstransaktion, die von einem Prozessor erzeugt wird, der einen Konfigurationsspeicher aufweist, der Konfigurationseinstellungen enthält, wobei der Prozessor einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus aufweist, wobei die Zugriffstransaktion Zugriffsinformationen aufweist; und Überprüfen der Zugriffstransaktion durch eine Zugriffsüberprüfungsschaltung unter Verwendung wenigstens einer der Konfigurationseinstellungen und der Zugriffsinformationen.The method of claim 13, further comprising: Configure an access transaction generated by a processor, which has a configuration memory, the configuration settings contains the processor being a normal execution mode and an isolated one execution mode wherein the access transaction comprises access information; and Check the Access transaction by an access checking circuit using at least one of the configuration settings and the access information. Das Verfahren nach Anspruch 14, wobei die Konfigurationseinstellungen das Attribut für eine Seite und ein Ausführungsmoduswort einschließen.The method of claim 14, wherein the configuration settings the attribute for a page and an execution mode word lock in. Das Verfahren nach Anspruch 15, wobei die Zugriffsinformationen einen physikalische Adresse und einen Zugriffstyp umfassen, wobei der Zugriffstyp anzeigt, ob die Zugriffstransaktion ein Speicherzugriff, ein Eingabe/Ausgabe-Zugriff oder ein Logischer-Prozessor-Zugriff ist.The method of claim 15, wherein the access information a physical address and an access type, wherein the access type indicates whether the access transaction is a memory access, an input / output access or a logical processor access is. Das Verfahren nach Anspruch 15, wobei das Konfigurieren der Zugriffstransaktion ferner umfaßt: Setzen des Attributs für die Seite als isoliert oder nicht-isoliert; und Speichern des Attributs in einem Attributspeicher innerhalb des Konfigurationsspeichers.The method of claim 15, wherein configuring the access transaction further comprises: Set the attribute for the Page as isolated or non-isolated; and Save the attribute in an attribute store within the configuration store. Das Verfahren nach Anspruch 15, wobei das Konfigurieren der Zugriffstransaktion das Anlegen des Ausführungsmoduswort, das in einem Prozessorsteuerregister gespeichert ist, wenn der Prozessor in dem isolierten Ausführungsmodus konfiguriert ist, umfaßt.The method of claim 15, wherein configuring the access transaction, the creation of the execution mode word, which in a Processor control register is stored when the processor in the isolated execution mode is configured. Das Verfahren nach Anspruch 15, wobei das Überprüfen der Zugriffstransaktion umfaßt: Erfassen, ob das Attribut für die Seite auf isoliert gesetzt ist; Erfassen, ob das Ausführungsmoduswort angelegt ist; und Erzeugen eines Zugriffsgewährungssignals.The method of claim 15, wherein checking the Access transaction includes: To capture, whether the attribute for the page is set to isolated; Detect if the execution mode word is created; and Generating an access grant signal. Das Verfahren nach Anspruch 15, wobei das Überprüfen der Zugriffstransaktion umfaßt: Kombinieren des Attributs, eines externen Isolierter-Zugriff-Signals aus einem weiteren Prozessor und eines Cache-Zugriffssignals; und Erzeugen eines Prozessor-Snoop-Zugriffssignals.The method of claim 15, wherein checking the Access transaction includes: Combine of the attribute, an external isolated access signal from another processor and a cache access signal; and Generating a processor snoop access signal.
DE10196440T 2000-07-18 2001-07-13 Control access to multiple isolated storage in an isolated execution environment Expired - Lifetime DE10196440B4 (en)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
DE10196440T5 DE10196440T5 (en) 2004-04-29
DE10196440B4 true DE10196440B4 (en) 2006-03-23

Family

ID=24478929

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10196440T Expired - Lifetime DE10196440B4 (en) 2000-07-18 2001-07-13 Control access to multiple isolated storage in an isolated 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
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
KR100917290B1 (en) * 2004-06-24 2009-09-11 인텔 코오퍼레이션 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
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7636442B2 (en) 2005-05-13 2009-12-22 Intel Corporation Method and apparatus for migrating software-based security coprocessors
US8074262B2 (en) 2005-05-13 2011-12-06 Intel Corporation Method and apparatus for migrating virtual trusted platform modules
US7571312B2 (en) 2005-05-13 2009-08-04 Intel Corporation Methods and apparatus for generating endorsement credentials for software-based security coprocessors
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 中国航空工业第六一八研究所 Page table partition management device and method based on compound scale page

Citations (2)

* 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
WO1997036236A2 (en) * 1996-03-22 1997-10-02 Philips Electronics N.V. Operating system for use with protection domains in a single address space

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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)
US6795905B1 (en) * 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings

Patent Citations (2)

* 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
WO1997036236A2 (en) * 1996-03-22 1997-10-02 Philips Electronics N.V. Operating system for use with protection domains in a single address space

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10196005B4 (en) Apparatus and method for isolated execution of isolated instructions
DE10196440B4 (en) Control access to multiple isolated storage in an isolated execution environment
DE10195999B3 (en) A computer system comprising a memory controller, included in a chipset, for controlling accesses to an isolated memory for an isolated implementation
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
DE10394383B4 (en) Method and apparatus for loading a trusted operating system
DE10196006B4 (en) Create a key hierarchy for use in an isolated execution environment
US7149854B2 (en) External locking mechanism for personal computer memory locations
DE112005003340B4 (en) Mechanism for determining the trustworthiness of out-of-band management agents
DE112005002298B4 (en) Increasing the performance of an address translation using translation tables comprising large address spaces
DE202019005671U1 (en) Coexistence of trust domain architecture with multi-key total storage encryption technology on servers
DE112004001605B4 (en) Computer system in which a secure execution environment is applied and in which a memory controller is formed, which is designed to erase the memory
US6941458B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7013484B1 (en) Managing a secure environment using a chipset in isolated execution mode
DE112016004330T5 (en) Processors, methods, systems and instructions for allowing secure communications between a protected container store and input / output devices
US7194634B2 (en) Attestation key memory device and bus
DE102020125599A1 (en) TRUSTED LOCAL MEMORY MANAGEMENT IN A VIRTUALIZED GPU
DE102014003690A1 (en) Processors, methods and systems for command emulation
DE112009000344T5 (en) Access rights to a storage map
DE102010035603A1 (en) Providing hardware support for shared virtual memory between physical local and remote storage
DE102014003705A1 (en) Processors, methods and systems for command emulation
DE10393662T5 (en) Providing a safe execution mode in a preboot environment
DE112007000363T5 (en) Method for providing secure firmware
DE102021124623A1 (en) PROTECT AGAINST INVALID MEMORY REFERENCES

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10196440

Country of ref document: DE

Date of ref document: 20040429

Kind code of ref document: P

8125 Change of the main classification

Ipc: G06F 1214

8364 No opposition during term of opposition
R071 Expiry of right