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.