DE10195999B3 - Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung - Google Patents

Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung Download PDF

Info

Publication number
DE10195999B3
DE10195999B3 DE10195999.0T DE10195999T DE10195999B3 DE 10195999 B3 DE10195999 B3 DE 10195999B3 DE 10195999 T DE10195999 T DE 10195999T DE 10195999 B3 DE10195999 B3 DE 10195999B3
Authority
DE
Germany
Prior art keywords
isolated
processor
access
memory
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10195999.0T
Other languages
English (en)
Other versions
DE10195999T1 (de
Inventor
Carl M. Ellison
Roger A. Golliver
Howard C. Herbert
Derrick C. Lin
Francis X. McKeen
Gilbert Neiger
Ken Reneris
James A. Sutton
Shreekant S. Thakkar
Millind Mittal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE10195999T1 publication Critical patent/DE10195999T1/de
Application granted granted Critical
Publication of DE10195999B3 publication Critical patent/DE10195999B3/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

Computersystem (100) mit (a) wenigstens einem Prozessor (110), der in einem normalen und in einem isolierten Ausführungsmodus betrieben werden kann, wobei der Inhalt eines Prozessorsteuerregisters (252) anzeigt, ob sich der Prozessor (110) in dem isolierten Ausführungsmodus befindet, (b) einem Systemspeicher (140) mit einem isolierten physikalischen Speicherbereich (70), auf den der Prozessor (110) nur in dem isolierten Ausführungsmodus zugreifen kann, und (c) einem mit dem Prozessor (110) und dem Systemspeicher (140) gekoppelten Chipsatz (130, 150, 160), der eine mit dem Systemspeicher (140) gekoppelte Zugriffssteuereinrichtung (135) enthält, wobei der isolierte Ausführungsmodus durch Ausführung eines privilegierten Befehls (iso_init) in dem Prozessor (110) initialisiert wird, der einen Prozessor-Nub-Lader (52) aufruft und in den isolierten Speicherbereich (70) lädt, wobei der Prozessor-Nub-Lader (52) ein in dem Chipsatz (130, 150, 160) gehaltener geschützter Bootstrap-Lader-Code ist, der ein Prozessor-Nub-Softwaremodul (18) in den isolierten Speicherbereich (70) lädt und dessen Integrität überprüft, wobei das Prozessor-Nub-Softwaremodul (18) hardwarebezogene Dienste für die isolierte Ausführung zur Verfügung stellt, wobei die Zugriffssteuereinrichtung (135) aufweist: (c1) einen von dem Prozessor (110) konfigurierbaren Konfigurationsspeicher (610), der eine den isolierten physikalischen Speicherbereich (70) definierende Konfigurationseinstellung (612) in Speicherbereichsregistern (620, 630) speichert, (c2) einen Zugriffsgewährungsgenerator (650), der bei einer Zugriffstransaktion von dem Prozessor (110) Zugriffsinformationen (660) empfängt, die eine physikalische ...

Description

  • Diese Erfindung bezieht sich auf ein Computersystem mit wenigstens einem Prozessor, einem Systemspeicher und einem mit dem Prozessor und dem Systemspeicher gekoppelten Chipsatz, der eine mit dem Systemspeicher gekoppelte Zugriffssteuereinrichtung enthält.
  • Fortschritte bei Mikroprozessoren und in der Kommunikationstechnologie eröffneten viele Möglichkeiten für Anwendungen, die über die herkömmlichen Wege der Ausführung von Geschäften hinausgehen. Elektronischer Handel (E-commerce) und Business-to-Business(B2B)-Transaktionen werden jetzt populär, wobei sie die globalen Märkte bei einer schnellen Rate erreichen. Während moderne Mikroprozessorsysteme den Benutzern bequeme und effiziente Verfahren der Ausführung von Geschäften, der Kommunikation und der Transaktionen zur Verfügung stellen, sind sie unglücklicherweise auch für skrupellose Angriffe anfällig. Beispiele dieser Angriffe umfassen Viren, ein Eindringen, eine Sicherheitsverletzung und eine Verfälschung, um nur einige wenige zu nennen. Die Computersicherheit wird folglich zunehmend wichtiger, um die Integrität der Computersysteme zu schützen und das Vertrauen der Benutzer zu erhöhen.
  • Durch skrupellose Angriffe verursachte Gefahren können eine Reihe von Formen annehmen. Angriffe können aus der Ferne ausgeführt werden, ohne physikalische Zugriffe zu erfordern. Ein eindringender ferngestarteter Angriff durch Hacker kann den normalen Betrieb eines Systems stören, das mit Tausenden oder gar Millionen von Benutzern verbunden ist. Ein Virusprogramm kann Code und/oder Daten einer Einzelbenutzerplattform zerstören.
  • Vorhandene Techniken zum Schützen gegen Angriffe weisen eine Reihe von Nachteilen auf. Antivirenprogramme können nur nach bekannten Viren suchen und diese erfassen. Die meisten Antivirenprogramme verwenden eine schwache Vorgehensweise, bei welcher eine Datei oder ein Programm als gut gilt, solange sie sich nicht als schlecht herausstellt. Bei vielen Sicherheitsanwendungen könnte es sein, daß diese schwache Vorgehensweise nicht ausreichend ist. Darüber hinaus werden die meisten Antivirenprogramme lokal dort, wo sie sich in der Plattform aufhalten, verwendet. Dies kann in einer Gruppenarbeitsumgebung möglicherweise nicht geeignet sein. Sicherheitscoprozessoren oder Smart-Cards, die kryptographische oder andere Sicherheitstechniken verwenden, haben Grenzen bezüglich der Geschwindigkeit, Leistungsfähigkeit, Speicherkapazität und Flexibilität. Eine Neuentwicklung von Betriebssystemen schafft Softwarekompatibilitätsprobleme und verursacht enorme Investitionen bei den Entwicklungsbemühungen.
  • Im Stand der Technik sind diverse Schutzmechanismen bekannt. US 5,522,075 A beschreibt ein Computersystem mit virtueller Speicheradressierung und mit einem Schutzmechanismus mit mehreren hierarchisch angeordneten Schutz- oder Privilegringen. Je nach Privilegniveau kann ein Programm auf unterschiedliche Speicherbereiche zugreifen. Zusätzlich umfasst das Computersystem mehrere virtuelle Maschinen (VM) (als virtuelle Duplikate einer darunterliegenden realen Maschine) unter der Kontrolle eines „Virtual Machine Monitor“ (VMM), der die Ressourcen des realen Computersystems multiplext. Damit sowohl der VMM als auch die VM ein Zugriff auf alle Schutzmodi oder -ringe ermöglicht wird, schlägt die Druckschrift vor, die Schutzringe zu verdoppeln, den VMM in einem isolierten Adressraum unterzubringen und durch ein spezielles VM-Bit anzuzeigen, ob ein gerade ausführendes Programm sich in einer VM oder im VMM befindet, wobei jeweils verschiedene Adressübersetzungen virtueller Adressen in physikalische verwendet werden.
  • US 5,628,023 Druckschrift offenbart einen Computer mit einem virtuellen Speicher, über den ein geschützter Zugriff auf einen realen Speicher des Computersystems zur Verfügung gestellt wird. Einem Programm wird der Zugriff auf die gesicherten Seiten des Speichers erlaubt, wenn es sich durch ein entsprechendes Token ausweisen kann. Ein Prozessor umfasst eine mit einem Systemspeicher gekoppelte Zugriffssteuereinrichtung (address translation and protection verification facility), die eine von dem Prozessor ausgegebene virtuelle Adresse in eine reale Adresse übersetzt und ein von dem Prozessor gleichzeitig ausgegebenes Token mit einem in Zuordnung zu dem (an der realen Adresse befindlichen) Speicherplatz gespeichertes Token vergleicht und bei Übereinstimmung den Zugriff gestattet.
  • In dem Artikel von William A. Arbaugh et al., „A secure and reliable bootstrap architecture", in Proceedings IEEE Symposium on Security and Privacy, 1997, sowie in der Dissertation von William A. Arbaugh, „Chaining Layered Integrity Checks“, University of Pennsylvania, 1999, wird ein spezieller Bootprozess (AEGIS) beschrieben, bei dem der gesamte ausführbare Code vor der Ausführung über eine digitale Signatur verifiziert wird. Beim Booten des Computers wird zunächst ein in einem ROM gespeicherter erster Abschnitt des BIOS ausgeführt, der nach einer Standard-Prüfsummenberechnung zur Erkennung von ROM-Fehlern einen kryptographischen Hashwert eines zweiten Abschnitts des BIOS berechnet und diesen mit einem gespeicherten Wert (Signatur) vergleicht. Bei gültiger Sinatur wird der zweite BIOS-Abschnitt aufgerufen und abgearbeitet. Dieser wiederum berechnet Hashwerte von in Erweiterungskarten-ROM enthaltenen Programmen und vergleicht diese mit gespeicherten Signaturen. Anschließend wird die Kontrolle an den auf gleiche Weise zuvor geprüften Bootstrapcode des Betriebssystems übergeben. Der Bootstrapcode prüft den Bootblock eines bootfähigen Geräts und übergibt dann die Kontrolle an den Bootblock. Dann wird das Kernel des Betriebssystems geprüft, bevor an dieses die Kontrolle übergeben wird.
  • Eine ähnliche Vorgehensweise ist aus US 5,421,006 A bekannt. Hier wird zusätzlich ein Hardware-Latch (RS-Flipflop) verwendet, um den Schreibzugriff auf einen nicht-flüchtigen Speicher, der Daten zur Überprüfung der Integrität einer Start- oder Initialisierungssoftware speichert, zunächst nach dem Rücksetzen oder Starten zu gestatten (Flipflop gesetzt, gibt Signal an Schreibeingang des Speichers frei) und dann durch die Abarbeitung der sicheren Initialisierungssoftware zu sperren (Flipflop zurückgesetzt, sperrt Signal an Schreibeingang des Speichers). Ein Wieder-Setzen des Flipflops ist nur durch Anlegen des Reset-Signals, also Neustart möglich, nicht durch Software. Der Schreibzugriff auf den nichtflüchtigen Speicher wird gesperrt, nachdem in ihm die Daten zur Überprüfung der Integrität der Initialisierungssoftware gespeichert worden sind.
  • Auch aus dem Artikel von Sean W. Smith und Steve Weingart, „Building a high-performance, programmable secure coprocessor“, in Computer Networks, Vol. 31, 1999, S. 831–860, ist eine ähnliche Vorgehensweise bekannt. Anstelle eines Latch in Form eines RS-Flipflops wird hier ein mit Hilfe eines zusätzlichen kleinen Mikrocontrollers realisierter, „Ratchet“ („Sperrklinke“) genannter Mechanismus verwendet, bei dem in einem Register des Mikrocontrollers ein Wert gespeichert wird, der bei einem Hardware-Reset auf null initialisiert und dann nach Aufruf jeweils einer weiteren Ebene der Boot- und Betriebssystem-Software inkrementiert wird, aber niemals dekrementiert oder zurückgesetzt werden kann. In Abhängigkeit vom aktuellen „Ratchet“-Wert ermöglicht oder sperrt der Mikrocontroller dann den Zugriff auf Speicherseiten eines BBRAM und Segmente eines geschützten Flash-Speichers.
  • Das Signieren von ausführbaren Dateien (Programmdateien) nach ihrer Herstellung und die spätere wiederholte Prüfung der Signatur vor dem Ausführen der Datei zur Reduktion der Gefahr einer Ausbreitung eines Computervirus ist bereits aus dem Artikel von Maria M. Pozzi und Terence E. Gray, „A Model for the Containment of Computer Viruses“, 2nd Aerospace Computer Security Conference, Meeting Paper Archive, American Institute of Aeronautics and Astronautics, Inc., 1986, bekannt.
  • Ausgehend von diesem Stand der Technik ist es eine Aufgabe der Erfindung, mit einer höheren Sicherheit zu gewährleisten, dass bei einem Computersystem unabhängig von und zusätzlich zu herkömmlichen Schutzmechanismen, wie z.B. die Ausführung von Software auf verschiedenen Privilegierungsniveaus und davon abhängige Einschränkungen des Zugriffs auf Speicherbereiche, auf sicherheitsrelevante Bereiche des Systemspeichers nur dann zugegriffen werden kann, wenn sich der die zugreifende Software abarbeitende Prozessor in einem entsprechenden besonderen isolierten Modus befindet.
  • Diese Aufgabe wird erfindungsgemäß durch ein Computersystem mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der vorliegenden Erfindung klar, in welcher:
  • 1A ein Schema ist, das eine logische Betriebsarchitektur des erfindungsgemäßen Computersystems veranschaulicht.
  • 1B ist ein Schema, das die Zugreifbarkeit verschiedener Elemente in dem Betriebssystem und dem Prozessor des erfindungsgemäßen Computersystems veranschaulicht.
  • 1C ist ein Schema, das ein Ausführungsbeispiel es erfindungsgemäßen Computersystems veranschaulicht.
  • 2A ist ein Schema, das die Isolierte-Ausführung-Schaltung, die in 1C gezeigt ist, veranschaulicht.
  • 2B ist ein Schema, das den in 2A gezeigten Zugriffsmanager veranschaulicht.
  • 3A ist ein Schema, das die Zugriffsüberprüfungsschaltung zum Verwalten von Snoop-Zugriffen veranschaulicht.
  • 3B ist ein Schema, das die Zugriffsüberprüfungsschaltung zum Verwalten Logischer-Prozessor-Operationen veranschaulicht.
  • 4 ist ein Ablaufdiagramm, das einen Prozess zum Verwalten von Snoop-Zugriffen für die isolierte Ausführung veranschaulicht.
  • 5 ist ein Ablaufdiagramm, das einen Prozess zum Verwalten Logischer-Prozessor-Operationen für eine isolierte Ausführung veranschaulicht.
  • 6 ist ein Schema, das die Isolierter-Bereich-Zugriffskontrolle in dem Speicher-Controller-Hub (MCH), der in 1C gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • 7 ist ein Schema, das eine Konfigurationssteuereinrichtung, die in 6 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • 8 ist ein Schema, das einen Zugriffsgewährungsgenerator, der in 6 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • 9 ist ein Ablaufdiagramm, das einen Prozess zum Kontrollieren des Zugriffs auf den Speicher gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • ARCHITEKTURÜBERBLICK
  • Ein Prinzip zum Bereitstellen einer Sicherheit in einem Computersystem oder einer Plattform ist das Konzept einer Architektur der isolierten Ausführung. Die Isolierte-Ausführung-Architektur umfasst logische und physikalische Definitionen von Hardware- und Softwarekomponenten, die direkt oder indirekt mit einem Betriebssystem des Computersystems oder der Plattform interagieren. Ein Betriebssystem und der Prozessor können verschiedene Ebenen der Hierarchie aufweisen, die als Ringe bezeichnet werden und verschiedenen Betriebsmodi entsprechen. Ein Ring ist eine logische Unterteilung von Hardware- und Softwarekomponenten, der so ausgebildet ist, dass er spezielle Aufgaben in dem Betriebssystem ausführt. Die Unterteilung basiert typischerweise auf dem Grad oder dem Niveau der Privilegierung, nämlich der Fähigkeit, Änderungen an der Plattform vorzunehmen. Beispielsweise ist ein Ring-0 der innerste Ring, der sich auf dem höchsten Niveau der Hierarchie befindet. Ring-0 umfasst die kritischsten, privilegierten Komponenten. Darüber hinaus können Module in Ring-0 auch auf weniger privilegierte Daten zugreifen, aber nicht umgekehrt. Ring-3 ist der äußerste Ring, der das niedrigste Niveau der Hierarchie darstellt. Ring-3 umfasst typischerweise die Benutzer- oder Anwendungsebene und führt den am wenigstens vertrauenswürdigen Code aus. Es sei angemerkt, dass die Ebene der Ringhierarchie unabhängig vom Niveau des Sicherheitsschutzes dieses Rings ist.
  • 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 enthält einen Ring-0 10, Ring-1 20, Ring-2 30, Ring-3 40 und einen Prozessor-Nub-Lader 52. Der Prozessor-Nub-Lader 52 ist eine Instanz eines Prozessor-Exekutive(PE)-Behandlers. Der PE-Behandler wird verwendet, um eine Prozessor-Exekutive (PE) zu behandeln 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 der logischen Betriebsarchitektur 50 kann in beiden Modi betrieben werden. Der Prozessor-Nub-Lader 52 arbeitet nur in dem isolierten Ausführungsmodus.
  • 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 umfassen das primäre Betriebssystem (z.B. Kernel) 12, Softwaretreiber 13 und Hardwaretreiber 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 Exekutiveentitäten, die in einer sicheren Umgebung arbeiten, die einem isolierten Bereich und dem isolierten Ausführungsmodus zugeordnet ist. 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 werden wird.
  • In ähnlicher Weise umfassen Ring-1 20, Ring-2 30 und Ring-3 40 einen Ring-1 21, Ring-2 32, Ring-3 41 für normale Ausführung und einen Ring-1 25, Ring-2 35 und Ring-3 45 für isolierte Ausführung. Insbesondere enthält der Normale-Ausführung-Ring-3 N Anwendungen 42 1 bis 42 N, und der Isolierte-Ausführung-Ring-3 enthält K Applets 46 1 bis 46 K.
  • Ein Konzept der Architektur isolierter Ausführung ist die Schaffung eines isolierten Gebiets in dem Systemspeicher, das als isolierter Bereich bezeichnet wird und das sowohl durch den Prozessor als auch den Chipsatz in dem Computersystem geschützt ist. Teile des isolierten Bereichs können sich auch im Cache-Speicher befinden. Ein Zugriff auf dieses isolierte Gebiet ist nur über einen Frontseitenbus (FSB) des Prozessors unter Verwendung spezieller Buszyklen (z.B. Speicherlese- und Schreibzyklen), die als isolierte Lese- und Schreibzyklen bezeichnet werden, gestattet. Die speziellen Buszyklen werden auch für ein Snooping verwendet. Die isolierten Lese- und Schreibzyklen werden durch den in einem isolierten Ausführungsmodus ausführenden Prozessor ausgegeben. 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.
  • Eine Aufgabe des Prozessor-Nubs 18 besteht darin, den Ring-0-OS-Nub 16 in den isolierten Bereich zu laden und diesen zu überprüfen und die Wurzel der Schüsselhierarchie, die einzigartig für eine Kombination der Plattform, des Prozessor-Nubs 18 und des Betriebssystem-Nubs 16 ist, zu erzeugen. Der Betriebssystem-Nub 16 stellt Verbindungen (Links) zu Diensten in dem primären OS 12 (z.B. den ungeschützten Segmenten des Betriebssystems) zur Verfügung, schafft eine Seitenverwaltung in dem isolierten Bereich und ist dafür verantwortlich, die Ring-3-Anwendungsmodule 45 einschließlich der Applets 46 1 bis 46 K in die in dem isolierten Bereich zugeteilten geschützten Seiten zu laden. Der Betriebssystem-Nub 16 kann darüber hinaus Ring-0-Unterstützungsmodule laden.
  • Der Betriebssystem-Nub 16 kann auswählen, dass er ein Paging der Daten zwischen dem isolierten Bereich und dem gewöhnlichen (d.h. nicht isolierten) Speicher unterstützt. Wenn dies der Fall ist, dann ist der Betriebssystem-Nub 16 außerdem für eine Verschlüsselung und ein Hashing der Seiten des isolierten Bereichs verantwortlich, bevor die Seite in den gewöhnlichen Speicher geräumt wird, und für eine Überprüfung des Seiteninhalts bei der Wiederherstellung der Seite. Die Isolierter-Modus-Applets 46 1 bis 46 K und ihre Daten sind verfälschungssicher und überwachungsresistent gegenüber sämtlichen Softwareangriffen von anderen Applets sowie aus Anwendungen (z.B. 42 1 bis 42 N) aus dem nicht-isolierten Raum, Treibern und selbst gegenüber dem primären Betriebssystem 12. Die Software, die in die Ausführung des Applets eingreifen kann oder diese beobachten kann, ist der Prozessor-Nub-Lader 52, der Prozessor-Nub 18 oder der Betriebssystem-Nub 16.
  • 1B ist ein Schema, das die Zugreifbarkeit der verschiedenen Elemente in dem Betriebssystem 10 und dem Prozessor gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Zu Veranschaulichungszwecken sind nur Elemente des Rings-0 10 und des Rings-3 40 gezeigt. Die verschiedenen Elemente in der logischen Betriebsarchitektur 50 greifen auf einen zugreifbaren physikalischen Speicher 60 in Übereinstimmung mit ihrer Ringhierarchie und dem Ausführungsmodus zu.
  • 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 des Prozessors, die in dem isolierten Ausführungsmodus arbeiten, zugreifbar. Der nicht-isolierte Bereich 80 ist für sämtliche Elemente des Ring-0-Betriebssystems und des Prozessors zugreifbar.
  • Der Normale-Ausführung-Ring-0 11 enthält das primäre OS 12, die Softwaretreiber 13 und Hardwaretreiber 14 und kann sowohl auf die OS-Seiten 84 als auch die Anwendungsseiten 82 zugreifen. Der Normale-Ausführung-Ring-3, der die Anwendungen 42 1 bis 42 N enthält, kann nur auf die Anwendungsseiten 82 zugreifen. Grundsätzlich können Anwendungen nur auf ihre eigenen Seiten zugreifen, jedoch stellt das OS üblicherweise in kontrollierten Verfahren Dienste zum Teilen/gemeinsamen Benutzen von Speicher zur Verfügung. Jedoch können weder der Ring-0 11 noch der Ring-3 41 der normalen Ausführung auf den isolierten Bereich 70 zugreifen.
  • Der Isolierte-Ausführung-Ring-0 15 einschließlich des OS-Nubs 16 und des Prozessor-Nubs 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 46 1 bis 46 K, kann nur auf die Applet-Seiten 72 zugreifen. Die Applets 46 1 bis 46 K, halten sich in dem isolierten Bereich 70 auf. Allgemein können Applets nur auf ihre eigenen Seiten zugreifen; jedoch kann der OS-Nub 16 auch Dienste für die Applets zum gemeinsamen Benutzen von Speicher zur Verfügung stellen (z.B. zum Teilen von Speicher mit anderen Applets oder mit Anwendungen des nicht-isolierten Bereichs).
  • 1C ist ein Schema, das ein Computersystem 100 veranschaulicht, in welcher ein Ausführungsbeispiel der Erfindung ausgeführt werden kann. Das Computersystem 100 enthält einen Prozessor 110, einen Host-Bus 120, einen Speicher-Controller-Hub (MCH) 130, einen Systemspeicher 140, einen Eingabe/Ausgabe-Controller-Hub (ICH) 150, einen nicht-flüchtigen Speicher oder System-Flash-Speicher 160, eine Massenspeichereinrichtung 170, Eingabe/Ausgabe-Geräte 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 eine vielfache Funktionalität, wie beispielsweise den isolierten Ausführungsmodus, eine Host-Zu-Peripherie-Schnittstelle, eine Speichersteuereinrichtung integriert. In ähnlicher Weise kann der ICH 150 ebenfalls in einen Chipsatz gemeinsam mit dem oder getrennt 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, dass das System 100 darüber hinaus Peripheriebusse, wie beispielsweise einen Peripheriekomponentenverbindungsbus (PCI-Bus), einen beschleunigten Graphikport (AGP), einen Industriestandardarchitektur(ISA)-Bus und einen universellen seriellen Bus (USB), etc., enthält. Der "Token-Bus" kann Teil des USB-Busses sein, d.h. er kann Gast an dem USB-Bus sein.
  • Der Prozessor 110 repräsentiert eine zentrale Verarbeitungseinheit einer beliebigen Architektur, wie beispielsweise einer Komplexer-Befehlssatz-Computer(CISC)-Architektur, Reduzierter-Befehlssatz-Computer(RISC)-Architektur, Sehr-Langes-Befehlswort(VLIW)-Architektur oder einer Hybrid-Architektur. Bei einer Ausführungsform ist der Prozessor 110 mit einem Prozessor einer Intel-Architektur (IA), wie beispielsweise einem Prozessor der PentiumTM-Serie mit IA-32TM und IA-64TM kompatibel. Der Prozessor 110 schließt einen normalen Ausführungsmodus und eine Isolierte-Ausführung-Schaltung 115 ein. Der normale Ausführungsmodus 112 ist der Modus, in welchem der Prozessor 110 in einer nicht sicheren Umgebung oder einer normalen Umgebung ohne die von dem isolierten Ausführungsmodus zur Verfügung gestellten Sicherheitsmerkmale betrieben wird. Die Isolierte-Ausführung-Schaltung 115 stellt einen Mechanismus zur Verfügung, der es dem Prozessor 110 ermöglicht, in einem isolierten Ausführungsmodus zu arbeiten. Die Isolierte-Ausführung-Schaltung 115 schafft die Hardware- und Software-Unterstützung für den isolierten Ausführungsmodus. Diese Unterstützung umfasst eine Konfiguration für eine isolierte Ausführung, das Definieren eines isolierten Bereichs, das Definieren (z.B. Dekodieren und Ausführung) isolierter Befehle, das Erzeugen Isolierter-Zugriff-Buszyklen, das Erzeugen Isolierter-Modus-Interrupts und eine Zugriffsüberprüfung.
  • Bei einem Ausführungsbeispiel kann das Computersystem 100 ein Einzelprozessorsystem, wie beispielsweise ein Desktop-Computer sein, welcher nur eine Hauptzentralverarbeitungseinheit, beispielsweise den Prozessor 110, aufweist. Bei anderen Ausführungsbeispielen kann das Computersystem 100 mehrere Prozessoren, zum Beispiel die Prozessoren 110, 110a, 110b, etc. enthalten, wie es in 1C gezeigt ist. So kann das Computersystem 100 ein Multi-Prozessor-Computersystem mit einer beliebigen Anzahl von Prozessoren sein. Beispielsweise kann das Multi-Prozessor-Computersystem 100 als Teil einer Server- oder Workstation-Umgebung arbeiten. Die grundlegende Beschreibung und die Betriebsweise des Prozessors 110 werden detailliert nachfolgend erörtert. Für Fachleute ist es klar, dass diese grundlegende Beschreibung und Betriebsweise des Prozessors 110 auch für die anderen Prozessoren 110a und 110b, die in 1C gezeigt sind, sowie für eine beliebige Anzahl weiterer Prozessoren, die in dem Multi-Prozessor-Computersystem 100 in Übereinstimmung mit einem Ausführungsbeispiel der vorliegenden Erfindung benutzt werden können, gilt.
  • Der Prozessor 110 kann darüber hinaus mehrere logische Prozessoren aufweisen. Ein logischer Prozessor ist eine Funktionseinheit in einem physikalischen Prozessor mit einem Architekturzustand und gemäß irgendeiner Aufteilungsvorgehensweise zugeteilten physikalischen Ressourcen. Ein Multi-Prozessor-System (zum Beispiel das die Prozessoren 110a und 110b aufweisende System), kann mehrere mehrfach-logische Prozessoren aufweisen.
  • Der Host-Bus 120 stellt Schnittstellensignale zur Verfügung, um es dem Prozessor 110 oder den Prozessoren 110, 110a und 110b zu ermöglichen, mit anderen Prozessoren oder Einrichtungen, beispielsweise dem MCH 130, zu kommunizieren. Zusätzlich zum normalen Modus stellt der Host-Bus 120 einen Bus-Modus des isolierten Zugriffs mit zugehörigen Schnittstellensignalen für Speicherlese- und -schreibzyklen zur Verfügung. Der Busmodus des isolierten Zugriffs wird bei Speicherzugriffen angelegt, die initiiert werden, während sich der Prozessor 110 im isolierten Ausführungsmodus befindet und er auf Speicher im isolierten Bereich zugreift. Der Isolierter-Zugriff-Busmodus wird außerdem bei Befehls-Vorabruf- und Cache-Rückschreib-Zyklen angelegt, wenn die Adresse innerhalb des Adressbereichs des isolierten Bereichs liegt. Der Isolierter-Zugriff-Busmodus ist in dem Prozessor 110 konfiguriert. Der Prozessor 110 antwortet auf einen Snoop-Zyklus zu einer cache-gespeicherten Adresse, wenn der Isolierte-Zugriff-Busmodus auf dem FSB mit dem Modus der cachegespeicherten Adresse übereinstimmt.
  • Der MCH 130 stellt eine Steuerung und Konfiguration des Systemspeichers 140 zur Verfügung. Der MCH 130 stellt Schnittstellenschaltungen zur Verfügung, um das Anlegen isolierten Zugriffs bei Speicherreferenzbuszyklen, einschließlich isolierter Speicherlese- und -Schreibzyklen, zu erkennen und diese zu bedienen. Zusätzlich weist der MCH 130 Speicherbereichsregister (z.B. Basis- und Längenregister) auf, um den isolierten Bereich in dem Systemspeicher 140 darzustellen. Sobald er konfiguriert ist, bricht der MCH 130 jegliche Zugriffe auf einen isolierten Bereich ab, bei denen kein Isolierter-Zugriff-Busmodus angelegt ist.
  • Der Systemspeicher 140 speichert Systemcode 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 enthält den zugreifbaren physikalischen Speicher 60 (der in 1B gezeigt ist). Der zugreifbare physikalische Speicher enthält ein geladenes Betriebssystem 142, den isolierten Bereich 70 (der in 1B gezeigt ist) und einen isolierten Steuer- und Statusraum 148. Das geladene Betriebssystem 142 ist der Teil des Betriebssystems, der in den Systemspeicher 142 geladen wird. 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, wie er in 1B gezeigt ist, ist derjenige Speicherbereich, der von dem Prozessor 110 definiert wird, wenn er in dem isolierten Ausführungsmodus arbeitet. Der Zugriff auf den isolierten Bereich ist eingeschränkt und wird von dem Prozessor 110 und/oder dem MCH 130 oder einem anderen Chipsatz durchgesetzt, der die Isolierter-Bereich-Funktionalitäten integriert. Der isolierte Steuer- und Statusraum 148 ist ein dem Eingabe/Ausgabe(I/O) ähnlicher unabhängiger Adressraum, der von dem Prozessor 110 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 Adressraum, und es wird auf ihn unter Verwendung der isolierten Buszyklen zugegriffen. Der Systemspeicher 140 kann darüber hinaus weitere Programme und Daten enthalten, die nicht gezeigt sind.
  • Der ICH 150 repräsentiert einen bekannten Einzelpunkt in dem System, 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 ICHs enthalten, die ähnlich dem ICH 150 sind. 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 ein externes Strapping-Pin ausgeführt. Wie es Fachleuten bekannt ist, können auch andere Verfahren der Auswahl verwendet werden, einschließlich der Verwendung programmierbarer Konfigurationsregister. Der ICH 150 weist eine Reihe von Funktionalitäten auf, die so ausgebildet sind, dass sie zusätzlich zu den herkömmlichen I/O-Funktionen den isolierten Ausführungsmodus unterstützen. Insbesondere enthält der ICH 150 eine Isolierter-Buszyklus-Schnittstelle 152, den Prozessor-Nub-Lader 52 (der in 1A gezeigt ist), einen Digest-Speicher 154, einen Speicher 155 für einen kryptographischen Schlüssel, eine kryptographische Hash-Einheit 157, einen Isolierte-Ausführung-Logikverarbeitungs-Manager 156 und eine Token-Bus-Schnittstelle 159.
  • Die Isolierter-Buszyklus-Schnittstelle 152 enthält Schaltungen zum Bilden einer Schnittstelle zu den Isolierter-Buszyklus-Signalen, um isolierte Buszyklen, wie beispielsweise die isolierten Lese- und Schreibbuszyklen zu erkennen und zu bedienen. Der Prozessor-Nub-Lader 52, wie er in 1A gezeigt ist, umfasst einen Prozessor-Nub-Lader-Code und dessen Digest-Wert (z.B. kryptographischen Hash-Wert). Der Prozessor-Nub-Lader 52 wird durch Ausführung eines geeigneten Isoliert-Befehls (zum Beispiel iso_init) aufgerufen und in den isolierten Bereich 70 übertragen. Aus dem isolierten Bereich 80 kopiert der Prozessor-Nub-Lader 52 den Prozessor-Nub 18 aus dem System-Flash-Speicher (z.B. den Prozessor-Nub-Code 18 in dem nicht-flüchtigen Speicher 160) in den isolierten Bereich 70, überprüft und protokolliert seine Integrität und verwaltet einen symmetrischen Schlüssel, der verwendet wird, um die Geheimnisse des Prozessor-Nubs zu schützen. Bei einem Ausführungsbeispiel 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, üblicherweise in RAM implementiert, speichert die Digest-Werte (z.B. kryptographischen Hash-Werte) des geladenen Prozessor-Nubs 18, des Betriebssystem(OS)-Nubs 16 und irgendwelcher anderen Aufsichts-Module (z.B. Ring-0-Module), die in den isolierten Ausführungsraum geladen sind. Der Speicher 155 des kryptographischen Schlüssels hält einen symmetrischen Verschlüsselungs/Entschlüsselung-Schlüssel, der für die Plattform des Systems 100 einzigartig ist. Bei einem Ausführungsbeispiel enthält der Kryptographische-Schlüssel-Speicher 155 interne Schmelzsicherungen, die bei der Herstellung programmiert werden. Alternativ kann der Kryptographischer-Schlüssel-Speicher 155 auch während der Herstellung mit einem kryptographischen Zufallszahlengenerator erzeugt werden. Der Isolierte-Ausführung-Logikverarbeitungsmanager 156 verwaltet die Operation der logischen Prozessoren, wobei er deren Unterstützung der isolierten Ausführung konfiguriert. Bei einem Ausführungsbeispiel enthält der Isolierte-Ausführung-Logikverarbeitungsmanager 156 ein Logischer-Prozessor-Zählregister, das die Anzahl der logischen Prozessoren verfolgt, die an dem isolierten Ausführungsmodus teilnehmen. Die Token-Bus-Schnittstelle 159 bildet eine Schnittstelle zu dem Token-Bus 180. Eine Kombination des Prozessor-Nub-Lader-Digests, des Prozessor-Nub-Digests, des Betriebssystem-Nub-Digests und optional zusätzlicher Digests stellt den Gesamtdigest der isolierten Ausführung dar, der als Isoliert-Digest bezeichnet wird. Der Isoliert-Digest ist ein Fingerabdruck, der sämtlichen Supervisor-Befehlscode identifiziert, der in die Steuerung der Konfiguration und Operation der isolierten Ausführung involviert ist. Der Isoliert-Digest wird verwendet, um den Zustand der aktuellen isolierten Ausführungsumgebung zu attestieren oder nachzuweisen.
  • Der nicht-flüchtige Speicher 160 speichert nicht-flüchtige Informationen. Typischerweise ist der nicht-flüchtige Speicher 160 in Flash-Speicher implementiert. Bei einem Ausführungsbeispiel enthält der nicht-flüchtige Speicher 160 den Prozessor-Nub 18. Der Prozessor-Nub 18 stellt das Einricht-Management auf niedriger Ebene für den isolierten Bereich 70 (in dem Systemspeicher 140), einschließlich der Überprüfung, des Ladens und der Protokollierung (logging) des Betriebssystem-Nubs 16, und die Verwaltung des symmetrischen Schlüssels, der zum Schützen der Geheimnisse des Betriebssystem-Nubs verwendet wird, zur Verfügung. Der Prozessor-Nub-Lader 52 führt einen Teil des Einrichtens aus und verwaltet/aktualisiert den symmetrischen Schlüssel, bevor der Prozessor-Nub 18 und der OS-Nub 16 geladen werden. Der Prozessor-Nub 18 kann darüber hinaus Schnittstellenabstraktionen für Low-Level-Sicherheitsdienste, die von weiterer Hardware zur Verfügung gestellt werden, zur Verfügung stellen. Der Prozessor-Nub 18 kann außerdem durch den ursprünglichen Ausrüstungshersteller (OEM) oder Betriebssystemanbieter (OSV) verteilt werden.
  • Die Massenspeichereinrichtung 170 speichert Archivinformationen, wie beispielsweise Code (z.B. Prozessor-Nub 18), Programme, Dateien, Daten, Anwendungen (z.B. Anwendungen 42 1 bis 42 N), Applets (z.B. Applets 46 1 bis 46 K) und Betriebssysteme. Die Massenspeichereinrichtung 170 kann eine Compact-Disk(CD)-ROM 172, Disketten 174 und ein Festplattenlaufwerk 176 sowie irgendwelche weiteren Speichereinrichtungen umfassen. Die Massenspeichereinrichtung 170 stellt einen Mechanismus zum Lesen eines maschinenlesbaren Mediums zur Verfügung. 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 prozessor-lesbaren Medium gespeichert sein oder durch ein in einer Trägerwelle enthaltenes Computerdatensignal oder ein durch einen Träger moduliertes Signal über ein Übertragungsmedium übertragen werden. Das "prozessor-lesbare Medium" schließt irgendein Medium ein, das Informationen speichern oder übertragen kann. Beispiele prozessor-lesbarer Medien sind elektronische Schaltungen, Halbleiterspeicherbauelemente, ein ROM, ein Flash-Speicher, ein löschbarer und programmierbarer ROM (EPROM), eine Diskette, eine CD-ROM, eine optische Platte, eine Festplatte, ein Lichtleitermedium, eine Hochfrequenz(HF)-Verbindung, etc. Das Computerdatensignal kann irgendein Signal einschließen, das über ein Übertragungsmedium weitergeleitet werden kann, wie beispielsweise über elektronische Netzwerkkanäle, Lichtleiter, Luft, elektromagnetische, HF-Verbindungen, etc. Die Codesegmente können heruntergeladen werden über Computernetzwerke, wie beispielsweise das Internet, ein Intranet, etc.
  • Die I/O-Geräte 175 können beliebige I/O-Geräte zum Ausführen von I/O-Funktionen umfassen. Beispiele der I/O-Geräte 175 umfassen einen Controller für Eingabeeinrichtungen (z.B. Tastatur, Maus, Trackball, Zeigereinrichtung), Medienkarten (z.B. Audio-, Video-, Grafikkarten), eine Netzwerkkarte und irgendwelche anderen Peripheriegerätsteuereinrichtungen.
  • 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 Sicherheitsfunktionalitäten ausführt. Ein Token hat Eigenschaften, die ähnlich einer Smart-Card sind, einschließlich wenigstens eines öffentlichen/privaten Schlüsselpaars für reservierte Zwecke und der Fähigkeit, Daten mit dem privaten Schlüssel zu signieren. Beispiele des mit dem Token-Bus 180 verbundenen Tokens umfassen ein Mutterplatinen-Token 182, einen Token-Leser 184 und weitere transportable Tokens 186 (z.B. Smart-Card). Die Token-Bus-Schnittstelle 159 in dem ICH 150 koppelt den Token-Bus 180 mit dem ICH 150 und sichert, dass dann, wenn der Nachweis des Zustands der isolierten Ausführung angewiesen wird, das zugehörige 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.
  • VERWALTUNG VON ZUGRIFFEN IM ISOLIERTEN AUSFÜHRUNGSMODUS
  • 2A ist ein Schema, das die Isolierte-Ausführung-Schaltung 115, die in 1C 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-Speicher-Manager 230.
  • Die Kernausführungseinheit 205 enthält eine Befehlsdekodier- und -ausführungseinheit 210 und einen Übersetzungsnachschlagepuffer (TLB; Translation Lookaside Buffer) 218. Die Befehlsdekodier- und -ausführungseinheit 210 empfängt einen Befehlsstrom 215 aus einer Befehlsabrufeinheit. Der Befehlsstrom 215 enthält eine Reihe von Befehlen. Die Befehlsdekodier- und -ausführungseinheit 210 dekodiert die Befehle und führt die dekodierten Befehle aus. Diese Befehle können auf dem Mikro- oder dem Makroniveau vorliegen. Die Befehlsdekodier- und -ausführungseinheit 210 kann eine physikalische Schaltung oder eine Abstraktion eines Prozesses der Dekodierung und Ausführung von Befehlen sein. Darüber hinaus können die Befehle Isoliert-Befehle und Nicht-Isoliert-Befehle umfassen. Die Befehlsdekodier- und -Ausführungseinheit 210 erzeugt eine virtuelle Adresse 212, wenn es eine Zugriffstransaktion gibt. Der TLB 218 übersetzt die virtuelle Adresse 212 in eine physikalische Adresse.
  • Die Kernausführungsschaltung 205 bildet eine Schnittstelle zu dem Zugriffsmanager 220 über Steuer/Statusinformationen 222, Operanden 224 und Zugriffsinformationen 226. Die Steuer/Statusinformationen 222 umfassen Steuerbits zum Manipulieren verschiedener Elemente in dem Isolierter-Buszyklus-Generator 220 und Statusdaten aus dem Zugriffsmanager 220. Die Operanden 224 schließen in den Zugriffsmanager 220 zu schreibende Daten und aus ihm zu lesende Daten ein. Die Zugriffsinformationen 226 schließen Adressinformationen (z. B. die von dem TLB 218 zur Verfügung gestellte physikalische Adresse), Lese/Schreib-Informationen und andere Informationsarten ein.
  • Der Zugriffsmanager 220 empfängt die Steuer/Status-Informationen 222 und den 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 aus dem Cache-Speicher-Manager 230 und empfängt einen externen isolierten Zugriff 278 aus einem anderen Prozessor in dem System. 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 zu erzeugen, der zu Einrichtungen (z. B. Chipsätzen) gesendet wird, die sich außerhalb des Prozessors 110 befinden, um anzuzeigen, dass der Prozessor 110 einen Befehl des isolierten Modus ausführt. Das Prozessor-Snoop-Zugriffssignal 276 kann durch andere Einrichtungen 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 steuern und zu überwachen.
  • Der Cache-Speicher-Manager 230 empfängt die Zugriffsinformationen 226 aus der Kernausführungsschaltung 205 und erzeugt das Cache-Zugriffssignal 235 an den Zugriffsmanager 220. Der Cache-Speicher-Manager 230 enthält einen Cache-Speicher 232 zum Speichern von Cache-Informationen und weitere Schaltungen zum Verwalten von Cache-Transaktionen, wie sie Fachleuten bekannt sind. Das Cache-Zugriffssignal 235 zeigt das Ergebnis des Cache-Zugriffs an. Bei einem Ausführungsbeispiel ist das Cache-Zugriffssignal 235 ein Cache-Fehlversuch-Signal, welches angelegt wird, wenn es einen Cache-Fehlversuch im Ergebnis eines Cache-Zugriffs gibt.
  • 2B ist ein Schema, das den in 2A gezeigten Zugriffs-Manager 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 den Operanden 224 mit der in 2A gezeigten Kernausführungsschaltung 205 aus und empfängt die Zugriffsinformationen 226 aus der Kernausführungsschaltung 205. Der Zugriffsmanager 220 empfängt darüber hinaus das Cache-Zugriffssignal 235 aus dem Cache-Manager 230 und den externen isolierten Zugriff 278 aus einem anderen Prozessor, wie es in 2A gezeigt ist. Die Zugriffsinformationen 226 schließen eine physikalische Adresse 282, ein Lese/Schreib(RD/WR#)-Signal 284 und einen Zugriffstyp 286 ein. Die Zugriffsinformationen 226 werden während einer Zugriffstransaktion von dem Prozessor 110 erzeugt. Der Zugriffstyp 286 zeigt einen Typ des Zugriffs an, einschließlich einer Speicherreferenz, einer Eingabe/Ausgabe(I/O)-Referenz und eines Logischer-Prozessor-Zugriffs. Der Logischer-Prozessor-Zugriff schließt einen Eintritt eines logischen Prozessors in einen Isoliert-Freigegeben-Zustand und eine Rücknahme eines logischen Prozessors aus einem Isoliert-Freigegeben-Zustand ein.
  • Der Konfigurationsspeicher 250 enthält Konfigurationsparameter zum Konfigurieren einer Zugriffstransaktion, die von dem Prozessor 110 erzeugt wird. Der Prozessor 110 weist einen normalen Ausführungsmodus und einen isolierten Ausführungsmodus auf. Die Zugriffstransaktion weist Zugriffsinformationen auf. Der Konfigurationsspeicher 250 empfängt den Operanden 224 aus der Befehlsdecodier- und -ausführungseinheit 210 (2A) und enthält ein Prozessorsteuerregister 252 und ein Isolierte-Einstellung-Register 260. Das Prozessorsteuerregister 252 enthält ein Ausführungsmodus-Wort 253. Das Ausführungsmodus-Wort 253 wird angelegt, wenn der Prozessor 110 in den isolierten Ausführungsmodus konfiguriert wird. Bei einem Ausführungsbeispiel ist das Ausführungsmodus-Wort 253 ein einzelnes Bit, das anzeigt, ob sich der Prozessor 110 in dem isolierten Ausführungsmodus befindet. Das Isolierte-Einstellung-Register 260 enthält eine Isolierte-Einstellung 268. Die Isolierte-Einstellung 268 definiert den isolierten Speicherbereich (z.B. den isolierten Bereich 70 in dem Systemspeicher 140, der in 1C gezeigt ist). Das Isolierte-Einstellung-Register 260 enthält ein Maskenregister 262 und ein Basisregister 264. Das Maskenregister 262 enthält einen Isoliert-Maskenwert 263. Das Basisregister 264 enthält einen Isoliert-Basiswert 265. Der Isoliert-Maskenwert und der Isoliert-Basiswert 263 und 265 bilden die Isoliert-Einstellung 268 und werden verwendet, um den isolierten Speicherbereich zu definieren.
  • Die Zugriffsüberprüfungsschaltung 270 überprüft die Zugriffstransaktion unter Verwendung zumindest der Konfigurationsparameter und der Zugriffsinformationen 226. Die Zugriffsüberprüfungsschaltung 270 erzeugt das Isolierter-Zugriff-Signal 272, das Zugriffsgewährungssignal 274 und das Prozessor-Snoop-Zugriffssignal 276 unter Verwendung wenigstens eines der Isolierter-Bereich-Parameter in dem Konfigurationsspeicher 250 und der Zugriffsinformationen 260 in einer von dem Prozessor 110 erzeugten Transaktion. Das Isolierter-Zugriff-Signal 272 wird angelegt, wenn der Prozessor 110 in dem isolierten Ausführungsmodus konfiguriert ist. Das Gewährungssignal 274 wird verwendet, um anzuzeigen, ob ein isolierter Zugriff gewährt worden ist. Das Prozessor-Snoop-Zugriffssignal 276 wird verwendet, um zu bestimmen, ob ein isolierter Zugriff zu einem Treffer oder einem Fehlversuch führt.
  • 3A ist ein Schema, das die Zugriffsüberprüfungsschaltung 270 zum Verwalten von Snoop-Zugriffen gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffsüberprüfungsschaltung 270 enthält einen Adressdetektor 310, einen Zugriffsgewährungsgenerator 320 und eine Snoop-Überprüfungsschaltung 330.
  • Der Adressdetektor 310 empfängt die Isoliert-Einstellung 268 (z.B. den Isoliert-Maskenwert 263, den Isoliert-Basiswert 265) aus dem Konfigurationsspeicher 250 in 2B. Der Adressdetektor 310 erfasst, ob die physikalische Adresse 282 in dem durch die Isoliert-Einstellung 260 definierten isolierten Speicherbereich liegt. Der Adressdetektor 310 enthält ein Maskierelement 312, einen Komparator 314 und einen Kombinierer 318. Das Maskierelement 312 maskiert die physikalische Adresse 282 mit dem Isoliert-Maskenwert 263. Bei einem Ausführungsbeispiel führt das Maskierelement 312 eine logische UND-Operation aus. Der Komparator 314 vergleicht das Ergebnis der Maskieroperation, die von dem Maskierelement 312 erledigt worden ist, und den Isoliert-Basiswert 265 und erzeugt ein Vergleichsergebnis. Der Kombinierer 318 kombiniert das Vergleichsergebnis mit weiteren Bedingungen, um das Isolierter-Zugriff-Signal 272 zu erzeugen. Das Isolierter-Zugriff-Signal 272 wird angelegt, wenn die physikalische Adresse 282 innerhalb des isolierten Speicherbereichs liegt, wie er von dem Isoliert-Maskenwert und dem Isoliert-Basiswert 263 und 265 definiert ist, und weitere Bedingungen erfüllt sind. Es sei angemerkt, dass die Maske auch als Länge benutzt werden könnte.
  • Der Zugriffsgewährungsgenerator 320 kombiniert das Isolierter-Zugriff-Signal 272 und das Zugriffsmodus-Wort 253, um das Zugriffsgewährungssignal 274 zu erzeugen. Das Zugriffsgewährungssignal 274 wird angelegt, wenn sowohl das Isoliert-Zugriff-Signal 272 als auch das Zugriffsmodus-Wort 253 angelegt sind, um anzuzeigen, dass ein isolierter Zugriff gültig oder gestattet ist, wie es konfiguriert ist. Bei einem Ausführungsbeispiel führt der Zugriffsgewährungsgenerator 320 eine logische UND-Operation aus.
  • Der Snoop-Überprüfungsschaltung 330 erzeugt das Prozessor-Snoop-Zugriffssignal 276. Die Snoop-Überprüfungsschaltung 330 enthält einen Snoop-Kombinierer 340, um das Cache-Zugriffssignal 235, das Isolierter-Zugriff-Signal 272 und ein externes Isolierter-Zugriff-Signal 278 von einem anderen Prozessor zu kombinieren. Die Kombination des Cache-Zugriff-Signals 235, des Isolierter-Zugriff-Signals 272 und des externen Isolierter-Zugriff-Signals 278 entspricht dem Prozessor-Snoop-Zugriffssignal 276. Bei einem Ausführungsbeispiel enthält der Snoop-Kombinierer 340 ein Exklusiv-ODER(X-OR)-Element 342 und ein ODER-Element 344. Das X-OR-Element 342 führt eine Exklusiv-ODER-Operation an dem Isolierter-Zugriff-Signal 272 und dem externen Isolierter-Zugriff-Signal 278 aus. Das ODER-Element 344 führt eine ODER-Operation an dem Ergebnis des X-OR-Elements 342 und dem Cache-Zugriff-Signal 235 aus.
  • 3B ist ein Schema, das die Zugriffsüberprüfungsschaltung 270 zum Verwalten Logischer-Prozessor-Operationen gemäß einem anderen Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffsüberprüfungsschaltung 270 enthält einen Logischer-Prozessor-Manager 360.
  • Der Logischer-Prozessor-Manager 360 verwaltet (managt) eine Logischer-Prozessor-Operation, die von dem Logischer-Prozessor-Zugriff verursacht ist. Der Logischer-Prozessor-Manager 360 enthält ein Logischer-Prozessor-Register 370, einen Logischer-Prozessor-Zustandsfreigeber 382, einen Logischer-Prozessor-Aktualisierer 380, einen Minimumerfasser 374 und einen Maximumerfasser 376. Das Logischer-Prozessor-Register 370 speichert eine Logischer-Prozessor-Zählung 372, um eine Anzahl logischer Prozessoren, die gegenwärtig freigegeben sind, anzuzeigen. Der Logischer-Prozessor-Zustandsfreigeber 382 gibt einen Logischer-Prozessor-Zustand frei, wenn der Logischer-Prozessor-Zugriff gültig ist. Der Logischer-Prozessor-Aktualisierer 380 aktualisiert die Logischer-Prozessor-Zählung 372 in Übereinstimmung mit dem Logischer-Prozessor-Zugriff. Der Logischer-Prozessor-Aktualisierer 380 wird von dem freigegebenen Logischer-Prozessor-Zustand freigegeben. Der Minimumerfasser 374 bestimmt, ob die Logischer-Prozessor-Zählung 372 gleich einem minimalen Logischer-Prozessor-Wert (z.B. 0) ist. Der Maximumerfasser 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 von dem isolierten Ausführungsmodus in dem Prozessor 110 unterstützt werden können.
  • Der Logischer-Prozessor-Aktualisierer 380 initialisiert das Logischer-Prozessor-Register 370, wenn es keinen freigegebenen logischen Prozessor gibt. Der Logischer-Prozessor-Aktualisierer 380 aktualisiert die Logischer-Prozessor-Zählung 372 in einer ersten Richtung (z.B. inkrementierend), wenn die Zugriffstransaktion dem Eintritt eines logischen Prozessors 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. dekrementierend), wenn die Zugriffstransaktion dem Verlassen eines logischen Prozessors oder der Zurücknahme eines logischen Prozessors entspricht. Wenn die Logischer-Prozessor-Zählung 372 gleich dem minimalen Logischer-Prozessor-Wert ist, veranlasst der Logischer-Prozessor-Manager 360 den Prozessor 110, den Cache-Speicher 232 (2A) und das Isolierte-Einstellung-Register (2A) zu initialisieren oder sämtliche Isoliert-Informationen zu löschen (z.B. sämtliche ISO-Daten in den Hauptspeicher zurückzuschreiben). Wenn die Logischer-Prozessor-Zählung 372 den maximalen Logischer-Prozessor-Wert überschreitet, veranlasst der Logischer-Prozessor-Manager 360 den Prozessor 110, einen Fehlschlag oder eine Fehlerbedingung zu erzeugen.
  • 4 ist ein Ablaufdiagramm, das einen Prozess 400 zum Verwalten von Snoop-Zugriffen für eine isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • Bei START definiert der Prozess 400 einen isolierten Speicherbereich unter Verwendung der Isoliert-Einstellung (z.B. Isoliert-Masken- und -Basis-Werte) (Block 410). Dann legt der Prozess 400 das Ausführungsmodus-Wort in dem Prozessorsteuerregister an, um den Prozessor in den isolierten Ausführungsmodus zu konfigurieren (Block 420). Als nächstes bestimmt der Prozess 400, ob die physikalische Adresse, wie sie in einer Transaktion erzeugt wurde, innerhalb des isolierten Speicherbereichs liegt, wie er durch die Isoliert-Einstellung definiert ist (Block 430). Wenn nicht, erzeugt der Prozess 400 ein Fehlschlag oder eine Fehlerbedingung (Block 435) und wird dann beendet. Anderenfalls legt der Prozess 400 das Isolierter-Zugriff-Signal an (Block 440).
  • Als nächstes erzeugt der Prozess 400 ein Prozessor-Snoop-Zugriffssignal, indem er das Cache-Zugriffssignal, das externe Isolierter-Zugriff-Signal und das Isolierter-Zugriff-Signal kombiniert. Dann wird der Prozess 400 beendet.
  • 5 ist ein Ablaufdiagramm, das einen Prozess 500 zum Verwalten Logischer-Prozessor-Operationen für isolierte Ausführung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • Bei START initialisiert der Prozess 500 das Logischer-Prozessor-Register, wenn es keinen freigegebenen logischen Prozessor gibt (Block 510). Dies wird mit ISO_Create ausgeführt. Dann führt der Prozess 500 einen Logischer-Prozessor-Zugriffsbefehl aus (z.B. iso_create, iso_clear) (Block 520). Der Logischer-Prozessor-Zugriffsbefehl legt das Ausführungsmodus-Wort an. Als nächstes gibt der Prozess 500 den Logischer-Prozessor-Zustand frei (Block 525). Dann bestimmt der Prozess 500 den Logischer-Prozessor-Zugriffstyp (Block 530).
  • Wenn der Logischer-Prozessor-Zugriffstyp ein Logischer-Prozessor-Eintritt ist, aktualisiert der Prozess 500 die Logischer-Prozessor-Zählung in einer ersten Richtung (z.B. durch Inkrementieren) (Block 540). Dann bestimmt der Prozess 500, ob die Logischer-Prozessor-Zählung den maximalen Logischer-Prozessor-Wert überschreitet (Block 550). Wenn dies nicht der Fall ist, ist der Prozess 500 beendet. Anderenfalls erzeugt der Prozess 500 einen Fehlschlag oder eine Fehlerbedingung (Block 560) und wird dann beendet.
  • Wenn der Logischer-Prozessor-Zugriffstyp ein Logischer-Prozessor-Austritt oder eine Logischer-Prozessor-Zurücknahme ist, aktualisiert der Prozess 500 die Logischer-Prozessor-Zählung in einer zweiten Richtung, die der ersten Richtung entgegengesetzt ist (z.B. durch Dekrementieren) (Block 545). Dann bestimmt der Prozess 500, ob die Logischer-Prozessor-Zählung gleich dem minimalen Wert (z.B. Null) ist (Block 555). Wenn dies nicht der Fall ist, ist der Prozess 500 beendet. Anderenfalls löscht der Prozess 500 den Cache-Speicher und das Isoliert-Einstellung-Register von sämtlichen Isoliert-Informationen (Block 565) und wird dann beendet.
  • KONTROLLIEREN DER ZUGRIFFE AUF DEN ISOLIERTEN SPEICHER UNTER VERWENDUNG EINER SPEICHERSTEUEREINRICHTUNG
  • Die obige Beschreibung bezieht sich auf den Prozess der isolierten Ausführung in dem Prozessor 110. Zugriffe auf den isolierten Speicherbereich 70 (der in den 1B und 1C gezeigt ist) werden ferner durch den MCH 130 (1C) kontrolliert. Der Prozessor 110 betrachtet den MCH 130 als eine Eingabe/Ausgabe-Einrichtung, die in einen Adressort abgebildet ist. Um Zugriff auf den isolierten Speicherbereich 70 zu erlangen, muss der Prozessor 110 den Speicherkonfigurationsspeicher in dem MCH 130 entsprechend konfigurieren. Der MCH 130 enthält außerdem Steuerfunktionen, um dem Prozessor 110 zu ermöglichen, auf den Speicher 140 im nicht-isolierten Speicherbereich 80 ebenso zuzugreifen. Der MCH 130 empfängt Signale aus dem Prozessor 110 über den Host-Bus 120, wie beispielsweise das Isolierter-Zugriff-Signal 272 (2) oder die Buszyklusinformationen.
  • In 1C ist gezeigt, dass der MCH 130 sich außerhalb des Prozessors 110 befindet. Jedoch ist es möglich, daß der MCH 130 in den Prozessor 110 aufgenommen wird. In diesem Fall wird ein Schreibzyklus zu den Registern in dem MCH 130 extern gemacht, um es irgendwelchen externen Cache-Speichern zu ermöglichen, aus Gründen der Cache-Kohärenz teilzuhaben.
  • Im wesentlichen führt die Zugriffssteuereinrichtung in dem MCH 130 eine ähnliche Funktion aus wie die Zugriffsüberprüfungsschaltung 270, die in 3A gezeigt ist. Durch Aufrechterhalten der Zugriffskonsistenz in sowohl dem Prozessor 110 als auch dem MCH 130 kann das Zugreifen auf den Speicher eng kontrolliert werden. Die Zugriffssteuereinrichtung in dem MCH 130 bestimmt, ob eine Zugriffstransaktion aus dem Prozessor 110 gültig ist. Wenn dies der Fall ist, gibt die Zugriffssteuereinrichtung ein Zugriffsgewährungssignal zurück, um einen Abschluss der Zugriffstransaktionen zu ermöglichen. Anderenfalls wird ein Fehler oder eine Fehlerbedingung erzeugt. Zusätzlich schützt die Zugriffssteuereinrichtung in dem MCH 130 außerdem vor irgendwelchen vorsätzlichen oder versehentlichen Schreiboperationen zu ihrem eigenen Konfigurations- und Steuerspeicher. Da der MCH 130 eine direkte Schnittstelle zu dem Speicher 140 bildet, stellt die Zugriffssteuereinrichtung darüber hinaus Initialisierungsinhalte des isolierten Speicherbereichs und ihres eigenen internen Speichers beim Rücksetzen zur Verfügung.
  • 6 ist ein Schema, das die Isolierter-Bereich-Zugriffssteuereinrichtung 135 in dem Speicher-Controller-Hub (MCH) 130, der in 1C gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Zugriffssteuereinrichtung 135 enthält einen Konfigurationsspeicher 610, eine Konfigurationssteuereinrichtung 640 und einen Zugriffsgewährungsgenerator 650.
  • Der Konfigurationsspeicher 610 enthält eine Konfigurationseinstellung 612, um eine Zugriffstransaktion zu konfigurieren, die von dem Prozessor 110, der in 1C gezeigt ist, erzeugt worden ist. 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 (1C) übertragen und enthalten Adressinformationen und einen Isolierter-Zugriff-Zustand. Die Adressinformationen 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 äquivalent dem Isolierter-Zugriff-Signal 272, das in 2 gezeigt ist. Das Isolierter-Zugriff-Signal 664 wird angelegt, wenn der Prozessor 110 eine gültige Referenz zu dem isolierten Speicherbereich 70 (der in 1C gezeigt ist) erzeugt. Die Konfigurationseinstellung 612 enthält einen Speichermaskenwert 622 und einen Speicherbasiswert 632. Der Speichermasken- und der Speicherbasiswert 622 und 632 sind die zwei Gegenstückwerte des Isoliert-Maskenwerts 263 bzw. Isoliert-Basiswerts 265, wie sie in Verbindung mit 2 erörtert wurden. Der Speichermasken- und der Speicherbasiswert 622 und 632 definieren den isolierten Speicherbereich 70 in dem Speicher 140 außerhalb des Prozessors 110. Wie oben erörtert, ist der isolierte Speicherbereich 70 für den Prozessor 110 in dem isolierten Ausführungsmodus zugreifbar. Der Konfigurationsspeicher 610 enthält ein Speichermaskenregister 620 zum Speichern des Speichermaskenwerts 622 und ein Speicherbasisregister 630 zum Speichern des Speicherbasiswerts 632.
  • Die Konfigurationssteuereinrichtung 640 steuert Zugriffe auf den Konfigurationsspeicher 610 und stellt einige Steuerfunktionen für den Speicher 140 zur Verfügung. Der Zugriffsgewährungsgenerator 650 erzeugt ein Zugriffsgewährungssignal 652 unter Verwendung der Konfigurationseinstellung 612 und der Zugriffsinformationen 660. Das Zugriffsgewährungssignal 652 zeigt an, ob die Zugriffstransaktion gültig ist. Wenn der Zugriff nicht gewährt wird, gibt der Chipsatz einen vorgegebenen Datenwert zurück. Dies verhindert eine Blockierung (livelock). Dies versteckt darüber hinaus das Vorhandensein eines isolierten Bereichs.
  • 7 ist ein Schema, das die Konfigurationssteuereinrichtung 640, die in 6 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Konfigurationssteuereinrichtung 640 enthält einen Steuerspeicher 710, einen Verriegler 720, einen Priorisierer 730 und einen Rücksetzer 740.
  • Der Steuerspeicher 710 weist eine Schnittstelle zu dem Host-Bus 120 auf, um ein Verriegelungssteuerwort 712 zu empfangen und zu speichern. Das Verriegelungssteuerwort 712 zeigt an, ob der isolierte Speicherbereich freigegeben ist. Typischerweise wird das Verriegelungssteuerwort 712 durch den Prozessor-Nub 18 geschrieben, wenn dieser aufgerufen wird, um den isolierten Speicherbereich 70 freizugeben oder zu initialisieren. Das Verriegelungssteuerwort 712 kann ein einzelnes Bit sein, um anzuzeigen, ob eine Verriegelung erwünscht ist. Eine Verriegelung ist eine Operation zum Verhindern, dass ein Speicher durch eine versehentliche oder absichtliche Schreiboperation durch andere Einrichtungen überschrieben wird.
  • Der Verriegler 720 sperrt den Zugriff zu dem Konfigurationsspeicher 610 auf der Grundlage des Verriegelungssteuerworts 712. Wenn das Verriegelungssteuerwort 712 angelegt ist (z.B. das Verriegelungssteuerbit in den Freigabezustand gesetzt ist), schützt der Verriegler 720 den Konfigurationsspeicher 610 davor, überschrieben oder modifiziert zu werden. Der Verriegler 720 verhindert Aktualisierungen an den MCH-Steuerregistern. Der Verriegler 720 kann auf vielfältige Weise implementiert sein. Bei einer Methode kann der Verriegler ein Torelement (gating element) sein (z.B. ein ODER-Gatter bei einer positiven Logik), um das Lese/Schreib-Signal (R/W#) aus dem Prozessor mit dem Verriegelungssteuerwort 712 auszutasten. Wenn das Verriegelungssteuerwort 712 auf hohen Pegel angelegt ist, ist die Schreibfunktion gesperrt, was ein Schreiben in den Konfigurationsspeicher 610 verhindert.
  • Der Priorisierer 730 priorisiert die Zugriffstransaktion auf der Grundlage des Verriegelungssteuerworts 712. Diese Priorisierung ermöglicht, dass die Speichermasken- und basiswerte 622 und 632 Vorrang gegenüber irgendwelchen anderen Speicherdecodierungen habe. Mit anderen Worten, sämtliche Adressierung in den konfigurierten isolierten Speicherbereich und Steuerregistern wird von dem MCH 130 unabhängig davon behandelt, ob es ein Speicher-Backing in diesem Bereich gibt oder nicht. Andere Konfigurationsregister, wie beispielsweise Oberer-Rand-des-Speichers, Speicher-Loch-Register, verletzen diese Anforderung wegen des Verrieglers 720 nicht. Diese Priorisierung sichert, dass Code, der sich im nicht-isolierten Speicherbereich (zum Beispiel Bereich 80 im Speicher 140, der in 2b gezeigt ist) aufhält, nicht die Oberer-Rand-des-Speichers-, Speicherbereichs- oder Speicher-Loch-Einstellungen so ändern kann, dass Inhalte des isolierten Speicherbereichs 70 verlorengehen oder bewegt werden. Bei einem Ausführungsbeispiel enthält der Priorisierer 730 einen Buszyklusdecodierer 732 und einen Prioritätscodierer 734. Der Buszyklusdecodierer 732 decodiert den Buszyklus aus den Buszyklussignalen, wie sie von dem Prozessor 110 erzeugt werden. Der Buszyklus kann ein normaler oder spezieller Buszyklus sein. Der normale Buszyklus entspricht dem normalen Ausführungsmodus. Der spezielle Buszyklus entspricht dem isolierten Ausführungsmodus. Beispiele des speziellen Buszyklus umfassen einen Lese/Schreib-Datenzugriffszyklus, einen Lese/Schreib-Steuerzugriffszyklus, einen Logischer-Prozessor-Eintritt-Zyklus und einen Logischer-Prozessor-Zurücknahme-Zyklus. Der Prioritätscodierer 732 codiert den decodierten Buszyklus, wie es von dem Verriegelungssteuerwort 712 freigegeben ist. Der Priorisierer 730 erzeugt ein Isolierter-Speicher-Prioritätssignal 736 an den Zugriffsgewährungsgenerator 650. Es ist kein Speicherzugriff, der die Priorität erlangt. Es ist der Verriegler, der Änderungen an den Konfigurationsregistern verhindert.
  • Der Rücksetzer 740 initialisiert den isolierten Speicherbereich 70, den Konfigurationsspeicher 610 und den Steuerspeicher 710 beim Rücksetzen. Der Rücksetzer 740 enthält eine Schreibschaltung zum Schreiben von Anfangswerten (z.B. durchgehend Nullen, durchgehend Einsen oder eine Konstante) in sämtliche Speicher, den Konfigurationsspeicher 610 und den Steuerspeicher 710, wenn ein Rücksetzen ausgelöst worden ist.
  • 8 ist ein Schema, das den Zugriffsgewährungsgenerator 650, der in 6 gezeigt ist, gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. Der Zugriffsgewährungsgenerator 650 enthält einen Adressdetektor 810 und einen Zugriffsgewährungskombinierer 820.
  • Der Adressdetektor 810 erfasst, ob die physikalische Adresse 652 in dem isolierten Speicherbereich 70 liegt. Der Adressdetektor 810 erzeugt ein Adressübereinstimmungssignal 822. Der Adressdetektor 810 enthält ein Maskierungselement 812, einen Komparator 814 und einen Adresserfassungskombinierer 820. Das Maskierungselement 812 maskiert die physikalische Adresse 652 mit dem Speichermaskierungswert 622. Bei einem Ausführungsbeispiel implementiert das Maskierungselement 812 eine UND-Operation. Der Komparator 814 vergleicht die maskierte physikalische Adresse mit dem Speicherbasiswert 632. Der Komparator 814 erzeugt ein Vergleichsergebnis 816, das dem Adressübereinstimmungssignal 822 entspricht. Der Adresserfassungskombinierer 820 kombiniert das Vergleichsergebnis 816 mit wenigstens einer Zugriffsbedingung 818. Die Kombination des Vergleichsergebnisses 816 und der wenigstens eine Zugriffsbedingung 818 stellt das Adressübereinstimmungssignal 822 zur Verfügung. Zusätzlich kann der Adresserfassungskombinierer 820 außerdem durch das Isolierter-Speicher-Prioritätssignal 736, wie es von dem in 7 gezeigten Priorisierer 730 erzeugt worden ist, ausgetastet bzw. freigegeben werden.
  • Der Zugriffsgewährungskombinierer 830 kombiniert das Adressübereinstimmungssignal 822 (aus dem Adressdetektor 810) und das Isolierter-Zugriff-Signal 664 (aus den Zugriffsinformationen 660), um das Zugriffsgewährungssignal 652 zu erzeugen. Der Zugriffsgewährungskombinierer 830 sichert, dass eine übereinstimmende physikalische Adresse von einer gültigen Prozessorbezugnahme auf den isolierten Speicherbereich begleitet wird, wie es von dem Isolierter-Zugriff-Signal 664 angezeigt wird.
  • 9 ist ein Ablaufdiagramm, das einen Prozess 900 zum Kontrollieren des Zugriffs auf den Speicher gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht.
  • Beim START konfiguriert der Prozess 900 die Zugriffstransaktion in dem MCH (Block 910). Die Konfiguration umfasst das Schreiben der Konfigurationseinstellung in den Konfigurationsspeicher, z.B. das Speichern der Speichermasken- und Speicherbasiswerte in das Speichermasken- bzw. Speicherbasisregister. Als nächstes konfiguriert der Prozess 900 die Zugriffskontrolle auf den Konfigurationsspeicher (Block 915), indem er das Verriegelungssteuerwort in den Steuerspeicher speichert. Der Prozess 900 sperrt dann Zugriffe auf den Konfigurationsspeicher auf der Grundlage des Verriegelungssteuerworts (Block 920). Der Verriegelungssteuerblock könnte jegliche Zugriffe auf die Konfiguration verhindern. Folglich sind sämtliche Zugriffe auf die Konfiguration nach der Verriegelung Fehler (faults).
  • Als nächste empfängt der Prozess 900 eine Zugriffstransaktion aus dem Prozessor und decodiert den Zugriffsbuszyklus (Block 925) und priorisiert die Zugriffstransaktion auf der Grundlage des Verriegelungssteuerworts (Block 930). Dann bestimmt der Prozeß 900, ob andere Zugriffsbedingungen erfüllt sind (Block 935). Wenn dies nicht der Fall ist, erzeugt der Prozess 900 eine Fehlschlag- oder Fehlerbedingung (Block 940) und wird dann beendet. Anderenfalls bestimmt der Prozess, ob die physikalische Adresse in dem isolierten Speicherbereich liegt, wie er durch den Speichermaskenwert und den Speicherbasiswert definiert ist (Block 945). Wenn dies nicht der Fall ist, erzeugt der Prozess 900 ein Zugriffsgewährungssignal für den normalen Ausführungsmodus (Block 950) und wird dann beendet. Anderenfalls erzeugt der Prozess 900 eine Zugriffsgewährung für den isolierten Ausführungsmodus (Block 955). Dies schließt das Erzeugen eines Adressübereinstimmungssignals ein, das anzeigt, ob die physikalische Adresse in dem isolierten Speicherbereich liegt, und ein Kombinieren des Adressübereinstimmungssignal und des Isolierter-Zugriff-Signals zum Erzeugen des Zugriffsgewährungssignals. Das Erzeugen des Adressübereinstimmungssignals umfasst das Maskieren der physikalischen Adresse mit dem Speichermaskenwert und das Vergleichen der maskierten physikalischen Adresse mit dem Speicherbasiswert, um ein Vergleichsergebnis zu erzeugen.
  • Als nächstes bestimmt der Prozess 900, ob ein Rücksetzen ausgelöst worden ist (Block 960). Wenn dies nicht der Fall ist, wird der Prozess 900 beendet. Anderenfalls initialisiert der Prozess 900 den isolierten Speicherbereich, den Konfigurationsspeicher und den Steuerspeicher (Block 965). Der Prozess 900 wird dann beendet.

Claims (7)

  1. Computersystem (100) mit (a) wenigstens einem Prozessor (110), der in einem normalen und in einem isolierten Ausführungsmodus betrieben werden kann, wobei der Inhalt eines Prozessorsteuerregisters (252) anzeigt, ob sich der Prozessor (110) in dem isolierten Ausführungsmodus befindet, (b) einem Systemspeicher (140) mit einem isolierten physikalischen Speicherbereich (70), auf den der Prozessor (110) nur in dem isolierten Ausführungsmodus zugreifen kann, und (c) einem mit dem Prozessor (110) und dem Systemspeicher (140) gekoppelten Chipsatz (130, 150, 160), der eine mit dem Systemspeicher (140) gekoppelte Zugriffssteuereinrichtung (135) enthält, wobei der isolierte Ausführungsmodus durch Ausführung eines privilegierten Befehls (iso_init) in dem Prozessor (110) initialisiert wird, der einen Prozessor-Nub-Lader (52) aufruft und in den isolierten Speicherbereich (70) lädt, wobei der Prozessor-Nub-Lader (52) ein in dem Chipsatz (130, 150, 160) gehaltener geschützter Bootstrap-Lader-Code ist, der ein Prozessor-Nub-Softwaremodul (18) in den isolierten Speicherbereich (70) lädt und dessen Integrität überprüft, wobei das Prozessor-Nub-Softwaremodul (18) hardwarebezogene Dienste für die isolierte Ausführung zur Verfügung stellt, wobei die Zugriffssteuereinrichtung (135) aufweist: (c1) einen von dem Prozessor (110) konfigurierbaren Konfigurationsspeicher (610), der eine den isolierten physikalischen Speicherbereich (70) definierende Konfigurationseinstellung (612) in Speicherbereichsregistern (620, 630) speichert, (c2) einen Zugriffsgewährungsgenerator (650), der bei einer Zugriffstransaktion von dem Prozessor (110) Zugriffsinformationen (660) empfängt, die eine physikalische Adresse (662) und ein Isolierter-Zugriff-Signal (664) umfassen, wobei das Isolierter-Zugriff-Signal (664) angelegt wird, wenn der Prozessor (110) eine gültige Referenz auf den isolierten Speicherbereich (70) erzeugt, wobei der Zugriffsgewährungsgenerator (650) aus dem Konfigurationsspeicher (610) die Konfigurationseinstellung (612) empfängt und aus dieser und den Zugriffsinformationen (660; 662, 664) ein Zugriffsgewährungssignal (652) erzeugt, wenn die physikalische Adresse außerhalb des isolierten Speicherbereichs (70) liegt oder wenn die physikalische Adresse (662) innerhalb des isolierten Speicherbereichs (70) liegt und das Isolierter-Zugriff-Signal (664) eine gültige Referenz auf den isolierten Speicherbereich (70) anzeigt, wobei anderenfalls von der Zugriffsteuereinrichtung (135) anstelle des Inhalts des isolierten Speicherbereichs (70) ein vorgegebener Datenwert zurückgegeben wird, und (c3) eine Konfigurationssteuereinrichtung (640) zum Steuern des Zugriffs auf die Speicherbereichsregister (620, 630) des Konfigurationsspeichers (610) mit einem Steuerspeicher (710) zum Speichern eines Verriegelungssteuerworts (712), wobei das Verriegelungssteuerwort (712) anzeigt, ob der isolierte Speicherbereich (70) freigegeben ist, und durch das Prozessor-Nub-Softwaremodul (18) geschrieben wird, wenn dieses aufgerufen wird, um den isolierten Speicherbereich (70) zu initialisieren, und einem Verriegler (720) zum Sperren des Zugriffs auf die Speicherbereichsregister (620, 630) des Konfigurationsspeichers (610) auf der Grundlage des Verriegelungssteuerworts (712).
  2. Computersystem nach Anspruch 1, dadurch gekennzeichnet, dass die Konfigurationssteuereinrichtung (640) einen mit einer Rücksetzsignalleitung (750) gekoppelten Rücksetzer (740) enthält, der beim Rücksetzen des Computersystems den isolierten Speicherbereich (70), den Konfigurationsspeicher (610) und den Steuerspeicher (710) initialisiert, indem er Anfangswerte einschreibt.
  3. Computersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Prozessor-Nub-Lader (52) in einem Eingabe/Ausgabe-Controller-Hub (ICH; 150) des Chipsatzes gespeichert ist.
  4. Computersystem nach einem der Ansprüche 1–3, dadurch gekennzeichnet, dass der Prozessor-Nub (18) einen Betriebssystem-Nub (16) überprüft und in den isolierten Speicherbereich (70) lädt, wobei der Betriebssystem-Nub (16) ein im isolierten Ausführungsmodus ausgeführtes Programm ist, das Verbindungen zu Diensten in einem in dem normalen Ausführungsmodus ausführbaren primären Betriebssystem (12) und eine Seitenverwaltung in dem isolierten Speicherbereich (70) zur Verfügung stellt und Anwendungsmodule (46) in den isolierten Speicherbereich (70) lädt, wobei der Betriebssystem-Nub (16) und das primäre Betriebssystem (12) in einem höchsten Privilegierungsniveau (10) und die Anwendungsmodule (46) in einem niedrigsten Privilegierungsniveau (40) einer mehrere Privilegierungsniveaus (10, 20, 30, 40) umfassenden Betriebsarchitektur (50) ausgeführt werden.
  5. Computersystem nach einem der Ansprüche 1–4, dadurch gekennzeichnet, dass die Zugriffssteuereinrichtung (135) in einem Speicher-Controller-Hub (MCH; 130) des Chipsatzes angeordnet ist, wobei der Speicher-Controller-Hub (MCH; 130) die Konfiguration und Steuerung des Systemspeichers (140) zur Verfügung stellt.
  6. Computersystem nach einem der Ansprüche 1–5, dadurch gekennzeichnet, dass die Speicherbereichsregister (620, 630) des Konfigurationsspeichers (610) ein Speichermaskenregister (620) zum Speichern eines Speichermaskenwerts (622) und ein Speicherbasisregister (630) zum Speichern eines Speicherbasiswerts (632) umfassen, und dass der Zugriffsgewährungsgenerator (650) einen Adressdetektor (810) und einen Zugriffsgewährungskombinierer (830) aufweist, wobei der Adressdetektor (810) ein den Speichermaskenwert (622) und die physikalische Adresse (662) empfangendes Maskierungselement (812) und einen den Ausgang des Maskierungselements (812) mit dem Speicherbasiswert (632) vergleichenden Komparator (814) aufweist und ein Adressübereinstimmungssignal erzeugt, und wobei der Zugriffsgewährungskombinierer (830) das Adressübereinstimmungssignal (822) und das Isolierter-Zugriff-Signal (664) empfängt und daraus das Zugriffsgewährungssignal erzeugt.
  7. Computersystem nach einem der Ansprüche 1–6, dadurch gekennzeichnet, dass der Prozessor (110) einen Zugriffsmanager (220) enthält, der einen eigenen Konfigurationsspeicher (250) und eine Zugriffsüberprüfungsschaltung (270) umfasst, wobei der Konfigurationsspeicher (250) das den isolierten Ausführungsmodus anzeigende Prozessorsteuerregister (252) einschließt und den isolierten Speicherbereich (70) definierende Isolierte-Einstellung-Konfigurationsinformationen (268) in Isolierte-Einstellung-Registern (260; 265, 263) speichert und wobei die Zugriffsüberprüfungsschaltung (270) die Isolierte-Einstellung-Konfigurationsinformationen (268; 265, 263) sowie die physikalische Adresse (282) einschließende Zugriffsinformationen (226) empfängt und daraus das Isolierter-Zugriff-Signal (272) erzeugt.
DE10195999.0T 2000-03-31 2001-03-14 Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung Expired - Lifetime DE10195999B3 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US54060800A 2000-03-31 2000-03-31
US09/540,608 2000-03-31
PCT/US2001/008374 WO2001075595A2 (en) 2000-03-31 2001-03-14 Controlling accesses to isolated memory using a memory controller for isolated execution

Publications (2)

Publication Number Publication Date
DE10195999T1 DE10195999T1 (de) 2003-04-03
DE10195999B3 true DE10195999B3 (de) 2017-05-04

Family

ID=24156188

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10195999.0T Expired - Lifetime DE10195999B3 (de) 2000-03-31 2001-03-14 Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung

Country Status (7)

Country Link
US (1) US6795905B1 (de)
AU (1) AU2001249218A1 (de)
DE (1) DE10195999B3 (de)
GB (1) GB2377793B (de)
HK (1) HK1050253B (de)
TW (1) TW550501B (de)
WO (1) WO2001075595A2 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
CN1252597C (zh) * 2000-07-18 2006-04-19 英特尔公司 在一个独立执行环境中控制对多个独立存储器的访问
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
DE10105284A1 (de) * 2001-02-06 2002-08-29 Infineon Technologies Ag Mikroprozessorschaltung für Datenträger und Verfahren zum Organisieren des Zugriffs auf in einem Speicher abgelegten Daten
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
GB2396930B (en) * 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US8838950B2 (en) * 2003-06-23 2014-09-16 International Business Machines Corporation Security architecture for system on chip
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7496958B2 (en) * 2003-10-29 2009-02-24 Qualcomm Incorporated System for selectively enabling operating modes of a device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
EP1659474A1 (de) * 2004-11-15 2006-05-24 Thomson Licensing Verfahren und USB Flash Laufwerk zum Schutz von persönlichen Daten, die auf dem USB Flash Laufwerk gespeichert sind
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7673345B2 (en) * 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
US20060282683A1 (en) * 2005-06-13 2006-12-14 Subramanyam Chandramouli Flash array read, erase, and program security
US7752436B2 (en) * 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US7865740B2 (en) * 2005-09-27 2011-01-04 Intel Corporation Logging changes to blocks in a non-volatile memory
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8959339B2 (en) 2005-12-23 2015-02-17 Texas Instruments Incorporated Method and system for preventing unauthorized processor mode switches
US8285988B2 (en) * 2006-05-09 2012-10-09 Broadcom Corporation Method and system for command authentication to achieve a secure interface
US8560829B2 (en) * 2006-05-09 2013-10-15 Broadcom Corporation Method and system for command interface protection to achieve a secure interface
US8032761B2 (en) * 2006-05-09 2011-10-04 Broadcom Corporation Method and system for memory attack protection to achieve a secure interface
US20110035601A1 (en) * 2007-12-21 2011-02-10 University Of Virginia Patent Foundation System, method and computer program product for protecting software via continuous anti-tampering and obfuscation transforms
GB2457062A (en) * 2008-02-01 2009-08-05 Iti Scotland Ltd Tag reader / writer process partitioned for execution between secure and non-secure processing environments
US8127131B2 (en) * 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US8639943B2 (en) * 2008-06-16 2014-01-28 Qualcomm Incorporated Methods and systems for checking run-time integrity of secure code cross-reference to related applications
US8160365B2 (en) * 2008-06-30 2012-04-17 Sharp Laboratories Of America, Inc. Methods and systems for identifying digital image characteristics
KR101255593B1 (ko) * 2009-06-16 2013-04-16 퀄컴 인코포레이티드 보안 코드의 런-타임 완전성을 체크하기 위한 방법들 및 시스템들
DE102010004446A1 (de) * 2010-01-13 2011-07-14 Giesecke & Devrient GmbH, 81677 Verfahren zum Bereitstellen eines sicheren Zählers auf einem Endgerät
DE102011012227A1 (de) * 2011-02-24 2012-08-30 Giesecke & Devrient Gmbh Verfahren zum Datenaustausch in einer gesicherten Laufzeitumgebung
DE102011018431A1 (de) 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts
DE102011115135A1 (de) 2011-10-07 2013-04-11 Giesecke & Devrient Gmbh Mikroprozessorsystem mit gesicherter Laufzeitumgebung
CN104331671A (zh) * 2014-10-30 2015-02-04 无锡市合鑫川自动化设备有限公司 计算机从设备安全代码加载的方法与系统
WO2016159812A1 (ru) * 2015-03-30 2016-10-06 Валерий Аркадьевич КОНЯВСКИЙ Способ повышения устойчивости компьютера по отношению к хакерским атакам
US10810141B2 (en) * 2017-09-29 2020-10-20 Intel Corporation Memory control management of a processor
US11281796B2 (en) * 2018-06-13 2022-03-22 At&T Intellectual Property I, L.P. Blockchain based information management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
WO1995033239A1 (en) * 1994-05-26 1995-12-07 The Commonwealth Of Australia Secure computer architecture
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5628023A (en) * 1993-04-19 1997-05-06 International Business Machines Corporation Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
US5912453A (en) * 1995-09-29 1999-06-15 International Business Machines Corporation Multiple application chip card with decoupled programs

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4521852A (en) 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5022077A (en) 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
JPH04348434A (ja) 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) * 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
JPH06348867A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JP3693721B2 (ja) * 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
IL117085A (en) 1996-02-08 2005-07-25 Milsys Ltd Secure computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
JPH10134008A (ja) 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US6376477B2 (en) 1996-11-25 2002-04-23 Merck & Co., Inc. Combination of an agent that binds to the androgen receptor and a bisphosphonic acid in the prevention and/or treatment of diseases involving calcium or phosphate metabolism
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6148401A (en) 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
EP0970411B1 (de) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Datenkopierschutz
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6148379A (en) 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6339826B2 (en) 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6339815B1 (en) * 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
EP1030237A1 (de) 1999-02-15 2000-08-23 Hewlett-Packard Company Vertrautes Hardware-Gerät in einem Rechner
US6272533B1 (en) 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
EP1272948A1 (de) 1999-04-12 2003-01-08 Digital Media on Demand, Inc. ( DMOD, Inc.) Sicheres electronic-commerce-system
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6158546A (en) 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
GB9923802D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co User authentication
GB9923804D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
WO2001063567A2 (en) 2000-02-25 2001-08-30 Identix Incorporated Secure transaction system
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US20020062452A1 (en) 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
EP1384126A2 (de) 2001-04-24 2004-01-28 Hewlett-Packard Company Informationssicherheitssystem

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5628023A (en) * 1993-04-19 1997-05-06 International Business Machines Corporation Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
WO1995033239A1 (en) * 1994-05-26 1995-12-07 The Commonwealth Of Australia Secure computer architecture
US5912453A (en) * 1995-09-29 1999-06-15 International Business Machines Corporation Multiple application chip card with decoupled programs

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Arbaugh, W. A.: Chaining Layered Integrity Checks. Dissertation in Computer and Information Science, 1999, S. i-iii, v-viii, 21, 24-39, 44-45, 49-53, 75-83, 109, 111. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.12.9401&rep=rep1&type=pdf [abgerufen am 13.01.2016] *
ARBAUGH,W.A., et.al.: A Secure and Reliable Bootstrap Architecture. In: Proceedings of the 1997 IEEE Symposium on Security and Privacy. 4-7 May 1997. Oakland, CA, USA. pp.65-71 *
ARM: ARM Architecture Reference Manual, Issue D, Februar 2000, S. i-ii, v-vi, x, xiii-xvi, A1-2 - A1-4, A1-9, A2-3, A2-9 - A2-17, A2-26 - A2-30, A3-24, A4-62 - A4-63, A4-100 - A4-101, A7-102, B1-2, B2-1 - B2-4, B3-2 - B3-4, B3-17, B4-1 - B4-9. URL: https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/arm/DUI0100D_ARMARM.pdf [abgerufen am 12.01.2016] *
ARM: ARM Architecture Reference Manual, Issue D, Februar 2000, S. i-ii, x, xiii-xvi, A1-9, A2-15, A2-26-A2-30, A4-62-A4-63, A4-100-A4-102, B1-2, B2-1-B2-4, B3-2-B3-4, B3-17, B4-1-B4-8. URL: https://stuff.mit.edu/afs/sipb/contrib/doc/specs/ic/cpu/arm/DUI0100D_ARMARM.pdf [abgerufen am 08.09.2015] *
POZZO, M.; GRAY, T.: A model for the containment of computer viruses. In: 2nd Aerospace Computer Security Conference, Meeting Paper Archive, 1986, S. 11-18. http://arc.aiaa.org/doi/abs/10.2514/6.1986-2759 [abgerufen am 13.01.2016] *
SMITH, S. W.; WEINGART, S.: Building a high-performance, programmable secure coprocessor. In: Computer Networks 31, 1999, Seiten 831 - 860. *
Wilbur, R.: Memory Management and Protection, 1B11 Operating Systems - 3, Department of Computer Science, University College London, 1999. URL: http://www0.cs.ucl.ac.uk/staff/S.Wilbur/1b11/1b11-3.pdf [abgerufen am 15.09.2015] *

Also Published As

Publication number Publication date
AU2001249218A1 (en) 2001-10-15
GB2377793B (en) 2004-12-22
WO2001075595A2 (en) 2001-10-11
US6795905B1 (en) 2004-09-21
DE10195999T1 (de) 2003-04-03
HK1050253A1 (en) 2003-06-13
WO2001075595A3 (en) 2002-07-25
HK1050253B (zh) 2005-05-06
GB2377793A (en) 2003-01-22
TW550501B (en) 2003-09-01
GB0225049D0 (en) 2002-12-04

Similar Documents

Publication Publication Date Title
DE10195999B3 (de) Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung
DE10196005B4 (de) Einrichtung und Verfahren zur isolierten Ausführung von Isoliert-Befehlen
DE10196006B4 (de) Erzeugen einer Schlüsselhierarchie zur Verwendung in einer isolierten Ausführungsumgebung
DE10196440B4 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE112005003340B4 (de) Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten
US6633963B1 (en) Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) Controlling access to multiple isolated memories in an isolated execution environment
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
US6934817B2 (en) Controlling access to multiple memory zones in an isolated execution environment
DE112013001941B4 (de) Eingeschränkte Anweisungen in Transaktionsgebundener Ausführung
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
US6941458B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
DE112016004330T5 (de) Prozessoren, Verfahren, Systeme und Befehle zum Zulassen sicherer Kommunikationen zwischen einem geschützten Containerspeicher und Eingabe-/Ausgabegeräten
DE112004002259B4 (de) Zugriff auf private Daten zum Status einer datenverarbeitenden Maschine von einem öffentlich zugänglichen Speicher
DE112009005466T5 (de) Verfahren und Vorrichtung zum Bereitstellen einer sicheren Anwendungsausführung
DE102018115489A1 (de) Krypto-erzwungene rechte für isolation
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
US7013484B1 (en) Managing a secure environment using a chipset in isolated execution mode
DE202019005672U1 (de) System zum Verhindern eines unautorisierten Zugriffs auf verschlüsselten Speicher
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
CN109918919A (zh) 认证变量的管理
US20080208924A1 (en) Security model for common multiplexed transactional logs
DE102013200161A1 (de) Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung

Legal Events

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

Ref document number: 10195999

Country of ref document: DE

Date of ref document: 20030403

Kind code of ref document: P

R009 Remittal by federal patent court to dpma for new decision or registration
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right