DE10297687B4 - Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion - Google Patents
Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion Download PDFInfo
- Publication number
- DE10297687B4 DE10297687B4 DE10297687T DE10297687T DE10297687B4 DE 10297687 B4 DE10297687 B4 DE 10297687B4 DE 10297687 T DE10297687 T DE 10297687T DE 10297687 T DE10297687 T DE 10297687T DE 10297687 B4 DE10297687 B4 DE 10297687B4
- Authority
- DE
- Germany
- Prior art keywords
- permission
- security context
- port
- instruction
- port number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 18
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000007246 mechanism Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011076 safety test Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Devices For Executing Special Programs (AREA)
- Bus Control (AREA)
Abstract
Prozessor
(202), der zur Ankopplung an einen Speicher (206) ausgebildet ist,
wobei der Prozessor (202) umfasst:
eine Ausführungseinheit (400), die ausgebildet ist, I/O-Instruktionen auszuführen;
eine Speicherverwaltungseinheit (402), die ausgebildet ist, Daten in dem Speicher (206) zu speichern; und
eine Busschnittstelleneinheit (406), die angeschlossen ist, um eine Eingabe/Ausgabe-(I/O)-Port-Nummer und ein Erlaubnisbit entsprechend der I/O-Port-Nummer zu empfangen und um ein Ausgangssignal in Abhängigkeit eines Wertes des Erlaubnisbits zu erzeugen, wobei die I/O-Port-Nummer eine Nummer des Eingabe/Ausgabe-(I/O)Ports anzeigt, der von einer I/O-Instruktion angesprochen wird, und wobei die Busschnittstelleneinheit (406) ferner angeschlossen ist, um einen Sicherheitskontextidentifizierungswert zu empfangen, und wobei der Sicherheitskontextidentifizierungswert eine Sicherheitskontextebene einer Speicherstelle kennzeichnet, die die I/O-Instruktion enthält, wobei die Busschnittstelleneinheit (406) ausgebildet ist, den Sicherheitskontextidentifizierungswert und die I/O-Port-Nummer zu verwenden, um auf eine dem Sicherheitskontextidentifizierungswert entsprechende Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur (600) zuzugreifen, die in dem Speicher (206) abgelegt ist, um das Erlaubnisbit zu erhalten, und
wobei die Ausführungseinheit...
eine Ausführungseinheit (400), die ausgebildet ist, I/O-Instruktionen auszuführen;
eine Speicherverwaltungseinheit (402), die ausgebildet ist, Daten in dem Speicher (206) zu speichern; und
eine Busschnittstelleneinheit (406), die angeschlossen ist, um eine Eingabe/Ausgabe-(I/O)-Port-Nummer und ein Erlaubnisbit entsprechend der I/O-Port-Nummer zu empfangen und um ein Ausgangssignal in Abhängigkeit eines Wertes des Erlaubnisbits zu erzeugen, wobei die I/O-Port-Nummer eine Nummer des Eingabe/Ausgabe-(I/O)Ports anzeigt, der von einer I/O-Instruktion angesprochen wird, und wobei die Busschnittstelleneinheit (406) ferner angeschlossen ist, um einen Sicherheitskontextidentifizierungswert zu empfangen, und wobei der Sicherheitskontextidentifizierungswert eine Sicherheitskontextebene einer Speicherstelle kennzeichnet, die die I/O-Instruktion enthält, wobei die Busschnittstelleneinheit (406) ausgebildet ist, den Sicherheitskontextidentifizierungswert und die I/O-Port-Nummer zu verwenden, um auf eine dem Sicherheitskontextidentifizierungswert entsprechende Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur (600) zuzugreifen, die in dem Speicher (206) abgelegt ist, um das Erlaubnisbit zu erhalten, und
wobei die Ausführungseinheit...
Description
- Technisches Gebiet
- Diese Erfindung betrifft im Allgemeinen Speicherverwaltungssysteme und Verfahren und betrifft insbesondere Speicherverwaltungssysteme und Verfahren, die einen Schutz für in einem Speicher gespeicherte Daten gewähren.
- Hintergrund
- Die 80×86 (d. h. „x86") Prozessorarchitektur bietet einen Eingabe/Ausgabe-(I/O-Adressenraum, der separat zu einem Speicheradressenraum vorhanden ist. Der x86-I/O-Adressenraum ist ein zusammenhängender Block aus 64k 8-Bit Dateneinheiten, die an Adressen angeordnet sind, die von 0 bis 65535 reichen (0000h bis FFFFh, wobei „h" eine Hexadezimalzahl bezeichnet) und dieser wird typischerweise für die Kommunikation mit peripheren Geräten (beispielsweise einer Tastatur, Plattenlaufwerken, etc.) verwendet. Periphere Geräte enthalten typischerweise spezielle Zugriffsregister, die als „I/O-Ports" oder einfach als „Ports" bezeichnet werden. Die I/O-Ports können 8-Bit Ports, 16-Bit Ports, oder 32-Bit Ports sein. Auf die 8-Bit Ports wird unter Anwendung ihrer einzigartigen Bit-Adressen zugegriffen. Die 16-Bit I/O-Ports enthalten zwei zusammenhängende Bytes und 32 Bit I/O-Ports enthalten vier zusammenhängende Bytes. Auf die 16- und 32-Bit I/O-Ports wird zugegriffen, indem die kleinste Adresse aller ihrer zusammenhängende Bytes verwendet wird.
- Adressen in dem I/O-Adressenraum eines x-86-Prozessors können unterschiedlichen Ports von peripheren Geräten entsprechen, die mit dem x86-Prozessor verbunden sind. Der x86-Prozessor steuert eine M/IO (Speicher-I/O) Signalleitung mit einem M/IO-Signal an, das anzeigt, ob eine Adresse, die mittels Adresssignalen auf den Adresssignalleitungen übertragen wird, in dem Speicheradressenraum oder dem I/O-Adressenraum liegt.
- Der x86-Instruktionssatz enthält spezielle I/O-Instruktionen, um auf den I/O-Adressenraum zuzugreifen. Die x86-I/O-Instruktionen stellen Verfahren zum Austauschen von Daten zwischen internen Registern eines x86-Prozessors und I/O-Ports, die auf den I/O-Adressenraum abgebildet sind, und zwischen einem mit dem x86-Prozessor verbundenen Speicher und den I/O-Ports bereit. Die x86-I/O-Instruktionen enthalten die „IN"-(Eingabe von dem Port) und „OUT"-(Ausgabe auf den Port)Register-I/O-Instruktionen sowie die „INS"-(Zeichenketteeingabe von dem Port) und „OUTS"-(Zeichenketteausgabe zum Port)Block- oder Zeichenketten-I/O-Instruktionen. Die Block-x86-Instruktionen übertragen Daten direkt von einem I/O-Port zu dem Speicher und von dem Speicher zu dem I/O-Port.
- Eine „Aufgabe" ist ein einzelner, sequenzieller Pfad an Anweisungen. Der 80286 und spätere x86-Prozessoren unterstützen die Parallelverarbeitung, d. h. die Fähigkeit, mehrere Aufgaben gleichzeitig abzuarbeiten. Tatsächlich wird nur eine einzige Aufgabe zu einer gegebenen Zeit abgearbeitet. Der x86-Prozessor schaltet einfach zwischen mehreren Aufgaben nach Vereinbarung um.
- Moderne x86-Prozessoren sind in der Lage, in diversen verschiedenen Modi zu arbeiten, wozu der Modus mit realen Adressen oder der „reale" Modus, der geschützte Modus mit virtueller Adresse oder „geschützte" Modus und der virtuelle 8086 Modus oder „virtuelle" Modus gehören. In dem geschützten Modus wird die Anwendung der I/O-Instruktion durch Festlegen des IOPL-(I/O-Privilegebene)Feldes in den FLAGS-Registern gesteuert. In 80386 und späteren x86-Prozessoren wird der Zugriff auf einzelne Ports, die auf den I/O-Adressenraum abgebildet sind, durch eine I/O-Erlaubnisbitstruktur bzw. Bitmap in dem Aufgabenzustandssegment (TSS) der Aufgabe gesteuert. Die meisten Betriebssysteme, die im geschützten Modus arbeiten, beschränken den Zugriff auf I/O-Ports auf sich selbst (Privilegebene 0) und auf eine kleine Anzahl „vertrauenswürdiger" Gerätetreiber (Privilegebene 1).
- Wenn ein 80386-Prozessor oder ein späterer x86-Prozessor in dem geschützten Modus arbeitet, können zwei Mechanismen angewendet werden, um den Zugriff von Aufgaben auf den I/O-Adressenraum zu beschränken. Zunächst wird die Anwendung der I/O-Instruktionen durch das Festlegen des I/O-Privilegebenen-(IOPL)Feldes in den Markierungs- bzw. Flag-(EFLAGS)Registern gesteuert. Zum Zweiten kann der Zugriff auf einzelne I/O-Ports in dem I/O-Raum über eine I/O-Erlaubnis-Bit-Struktur in einem Aufgabenzustandssegment (TSS) jeder der Aufgaben gesteuert werden. Zu beachten ist, dass der I/O-Erlaubnisbitstrukturmechanismus lediglich auf dem 80386 Prozessor und späteren x86-Prozessoren eingerichtet ist.
- Die meisten Betriebsysteme, die in dem geschützten Modus arbeiten, versuchen die Anwendung der I/O-Instruktionen auf sich selbst und eine kleine Anzahl „vertrauenswürdig" Gerätetreiber zu beschränken. In dem Privilegmodell mit konzentrischen Ringen der x86-Prozessorarchitektur arbeitet die Betriebssystemsoftware mit geschütztem Modus typischerweise in dem inneren Ring auf der Privilegebene 0 und eine vertrauenswürdige Gerätetreibersoftware arbeitet typischerweise in einem Ring, der den inneren Ring umgibt, auf der Privilegebene 1 oder auf der Privilegebene 0. Anwendungsprogramme laufen typischerweise in einem äußeren Ring mit der Privilegebene 3.
- Wenn ein x86-Prozessor, der in dem geschützten Modus arbeitet, eine I/O-Instruktion einer Aufgabe abarbeitet, vergleicht der x86-Prozessor zunächst die aktuelle Privilegebene (CPL) der Aufgabe mit der I/O-Privilegebene (IOPL). Wenn die aktuelle Privilegebene (CPL) der Aufgabe mindestens vom gleichen Rang ist (d. h. numerisch kleiner oder gleich zu) der I/O-Privilegebene (IOPL) ist, führt der x86-Prozessor die I/O-Instruktion aus. Wenn andererseits die aktuelle Privilegebene (CPL) der Aufgabe nicht so privilegiert ist wie (d. h. numerisch größer ist als) die I/O-Privilegebene (IOPL), überprüft der x86-Prozessor die I/O-Erlaubnis Bit-Struktur in dem Aufgabenzustandssegment (TSS) der Aufgabe.
-
1 wird nunmehr verwendet, um den gut bekannten I/O-Erlaubnisbitstrukturschutzmechanismus der x86-Architektur darzustellen.1 ist eine Ansicht, die ein Aufgabenzustandssegment (TSS)102 und eine entsprechende I/O-Erlaubnisbitstruktur bzw. Bitmap104 , die in einem Speicher100 gespeichert sind, zeigt. Das Aufgabenzustandssegment (TSS)103 beginnt am Anfang (d. h. an der Basis) eines Speichersegments und die I/O-Erlaubnisbitstruktur104 endet an einem Ende (d. h. einer Grenze) des Speichersegments. Das Aufgabenzustandssegment (TSS)102 enthält eine 16-Bit „I/O-Strukturbasis" an der relativen Adresse66h innerhalb des Speichersegments. Die I/O-Strukturbasis enthält einen Offset in Bytes eines ersten Bytes der entsprechenden I/O-Erlaubnisbitstruktur104 . - Jedes Bit der I/O-Erlaubnisbitstruktur
104 entspricht einem Byte in dem I/O-Raum. Beispielsweise repräsentiert das erste Bit der I/O-Erlaubnisbitstruktur104 einen 8-Bit-Port bei der Adresse „0" in dem I/O-Raum, das zweite Bit repräsentiert einen 8-Bit-Port bei der Adresse „1" in dem I/O-Raum usw. Die Nummer des I/O-Ports, auf den zugegriffen wird, wird als ein Bit-Offset für die I/O-Erlaubnisbitstruktur104 verwendet. Wenn das Bit in der I/O- Erlaubnisbitstruktur104 , das dem I/O-Port entspricht, auf den zugegriffen wird, auf „0" zurückgesetzt ist, führt der x86-Prozessor (der mit dem Speicher100 verbunden ist und auf die I/O-Erlaubnisbitstruktur104 zugreift), die I/O-Instruktion aus. Wenn das Bit auf „1" gesetzt ist, führt der x86-Prozessor die I/O-Instruktion nicht aus und erzeugt einen allgemeinen Schutzfehler. Wenn 16-Bit/Wort oder 32-Bit/Doppelwort I/O-Ports angesprochen werden, müssen alle Bits, die zusammenhängende Bytes der Ports repräsentieren, auf „0" gesetzt sein, wenn der x86-Prozessor die I/O-Instruktion ausführen soll. - Da I/O-Räume tendenziell wenig bevölkert sind, und 8k Bytes erforderlich sind, um alle 64k Ports der I/O-Räume zu repräsentieren, enthält der I/O-Erlaubnisbitstrukturschutzmechanismus eine Möglichkeit, I/O-Erlaubnisbitstrukturen abzukürzen. I/O-Ports mit Adressen, die über das Ende einer I/O-Erlaubnisbitstruktur hinausreichen, werden so behandelt, als ob die entsprechenden Bits in der I/O-Erlaubnisbitstruktur auf „1" gesetzt sind.
- Ein Problem tritt dabei dahingehend auf, dass der I/O-Erlaubnisbitstrukturmechanismus der x86-Prozessorarchitektur nicht ausreichend ist, um in geeigneter Weise den I/O-Adressenraum zu schützen. Beispielsweise kann eine beliebige Aufgabe, die auf der übergeordneten Ebene (z. B. mit einer CPL von 0) ausgeführt wird, auf einen beliebigen Port des I/O-Adressenraumes zu jeder Zeit zugreifen. Ferner kann eine erste Aufgabe, die auf der übergeordneten Ebene ausgeführt wird, die Bits in einer I/O-Erlaubnisbitstruktur einer zweiten Aufgabe modifizieren, um der zweiten Aufgabe einen Zugriff auf einige oder alle der Ports in dem I/O-Adressenraum zu gewähren. Die zweite Aufgabe kann dann fortfahren, auf einen oder mehrere dieser Ports zuzugreifen.
- Die Patentanmeldung
EP 1 132 801 A2 offenbart ein Zugriffsüberwachungsverfahren, wobei der Speicherzugriff von Anwendungen in einer Zugriffsüberwachungseinheit überwacht wird, um zu erkennen, ob das entsprechende Programm auf den gewünschten Speicherplatz zugreifen darf. Dabei werden den unterschiedlichen Anwendungen verschiedene Identifizierungsnummern zugeordnet, die festlegen, ob die Zugriffsüberwachungseinheit für eine bestimmte Anwendung auf eine Zugriffserlaubnistabelle zugreift oder nicht. - Die Patentschrift
US 6 334 130 B1 offenbart ein Dokumentregistrierungsverfahren, wobei eine große Anzahl von Dokumenten registriert werden kann und eine Zugriffskontrolltabelle erstellt wird, die die Steuerung des Zugriffs von verschiedenen Benutzergruppen ermöglicht. - Es ist die Aufgabe der vorliegenden Erfindung Systeme und Verfahren bereitzustellen, die das zuvor beschriebene Problem des nicht adäquaten Schutzes des I/O-Raumes der x86-Architektur lösen oder zumindest reduzieren.
- Überblick über die Erfindung
- Im Allgemeinen bezieht sich die vorliegende Erfindung auf ein Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-(I/O)Instruktion. Das Verfahren umfasst das Erzeugen einer Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur bzw. Bitmap in einem Speicher und das Empfangen einer I/O-Portnummer und eines Sicherheitskontextidentifizierungs-(SCID)Wertes. Das Verfahren umfasst ferner das Verwenden des SCID-Wertes und der I/O-Portnummer, um auf die gespeicherte I/O-Erlaubnisbitstruktur zuzugreifen, um ein Erlaubnisbit, das dem I/O-Port entspricht zu ermitteln, und das Ausführen der I/O-Instruktion in Abhängigkeit eines Wertes des Erlaubnisbits, das dem I/O-Port entspricht. Die I/O-Erlaubnisbitstruktur enthält mehrere Erlaubnisbits. Jedes der Erlaubnisbits entspricht einem anderen Port von mehreren I/O-Ports. Jedes der Erlaubnisbits besitzt einen Wert, der anzeigt, ob ein Zugriff auf den entsprechenden I/O-Port zulässig ist. Die I/O-Portnummer kennzeichnet den I/O-Port, der von der I/O-Instruktion angesprochen wird. Der SCID-Wert bezeichnet einen Sicherheitskontextpegel bzw. eine Sicherheitskontextebene einer Speicherstelle, die die I/O-Instruktion enthält.
- Die Aufgabe der vorliegenden Erfindung wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 8 gelöst.
- Kurze Beschreibung der Zeichnungen
- Die Erfindung kann durch Bezugnahme auf die folgende Beschreibung im Zusammenhang mit den begleitenden Zeichnungen verstanden werden, wobei gleiche Bezugszeichen ähnliche Elemente kennzeichnen und wobei:
-
1 eine Ansicht ist, die ein Aufgabezustandssegment (TSS) der x86-Architektur und eine entsprechende I/O-Erlaubnisbitstruktur der x86-Architektur, die in einem Speicher gespeichert sind, zeigt; -
2 eine Ansicht einer Ausführungsform eines Computersystems ist mit einer zentralen Recheneinheit (CPU), einer System- oder „Rost"-Brücke, einem Speicher, einem ersten Gerätebus (beispielsweise einen peripheren Komponentenverbindungs- oder PCI-Bus), einer Gerätebusbrücke, einem zweiten Gerätebus (beispielsweise einem Industriestandardarchitektur- oder ISA-Bus) und vier Gerätehardwareeinheiten, wobei die CPU eine Eingabe/Ausgabe-(I/O)Sicherheitsprüfeinheit (SCU) aufweist, die verwendet wird, um die Gerätehardwareeinheiten vor unautorisierten Zugriffen zu schützen, die von der CPU erzeugt werden; -
3 eine Ansicht ist, die die Abhängigkeiten zwischen den diversen Hard- und Softwarekomponenten des Computersystems aus2 zeigt; -
4 eine Ansicht einer Ausführungsform der CPU des Computersystems200 aus2 ist, wobei die CPU eine Ausführungseinheit, eine Speicherverwaltungseinheit (MMU) und eine Busschnittstelleneinheit (BIU), die mit der Ausführungseinheit und der MMU gekoppelt ist, aufweist und wobei die BIU die I/O-SCU enthält; -
5 eine Ansicht ist, die eine Ausführungsform der I/O-SCU aus4 zeigt; -
6 eine Ansicht ist, die eine Ausführungsform einer I/O-Erlaubnisbitstruktur für einen sicheren Exekutions- bzw. Ausführungsmodus (SEM) ist, die in dem Speicher aus2 gespeichert ist, und eine Ausführungsform eines Mechanismus zum Zugreifen auf die SEM-I/O-Erlaubnisbitstruktur zeigt; -
7 eine Ansicht ist, die eine weitere Ausführungsform der SEM-I/O-Erlaubnisbitstruktur aus6 und eine weitere Ausführungsform des Mechanismus zum Zugreifen auf die SEM-I/O-Erlaubnisbitstruktur zeigt; -
8 eine Ansicht einer alternativen Ausführungsform der CPU des Computersystems aus2 ist, wobei die CPU eine Ausführungseinheit, eine MMU, eine Busschnittstelleneinheit (BIU), die mit der Ausführungseinheit und der MMU verbunden ist, und eine Mikrocodierungsmaschine aufweist, die mit der Ausführungseinheit, der MMU und der BIU verbunden ist, und wobei die Mikrocodierungsmaschine Mikrocodierungsinstruktionen ausführt, die in einem Mikrocodierungsspeicherbereich gespeichert sind, und Signale erzeugt, die den Arbeitsablauf der Ausführungseinheit, der MMU und der BIU in Abhängigkeit der Mikrocodierungsinstruktionen steuern; und -
9 eine Ansicht ist, die die Beziehungen zwischen den diversen Hardware- und Softwarekomponenten des Computersystems aus2 zeigt, wobei ein erster Gerätetreiber und eine entsprechende erste Gerätehardwareeinheit in einem ersten Sicherheits- „Abteil", und ein zweiter Gerätetreiber und eine entsprechende zweite Gerätehardwareeinheit in einem zweiten Sicherheitsabteil, das separat und funktionsmäßig von dem ersten Sicherheitsabteil getrennt ist, angeordnet sind. - Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, werden spezielle Ausführungsformen davon beispielhaft in den Zeichnungen dargestellt und hierin detailliert beschrieben. Es sollte jedoch selbstverständlich sein, dass die Beschreibung spezieller Ausführungsformen nicht beabsichtigt ist, um die Erfindung auf die speziellen offenbarten Formen einzuschränken, sondern es ist vielmehr beabsichtigt, alle Modifizierungen, Äquivalente und Alternativen abzudecken, die innerhalb des Schutzbereichs der Erfindung liegen, wie sie durch die angefügten Patentsansprüche definiert ist.
- Art bzw. Arten zum Ausführen der Erfindung
- Es werden nun anschauliche Ausführungsformen der Erfindung beschrieben. Der Einfachheit halber sind nicht alle Merkmale einer tatsächlichen Implementierung in der Beschreibung aufgeführt. Es soll jedoch betont werden, dass bei der Entwicklung einer derartigen tatsächlichen Ausführungsform zahlreiche implementationsspezifische Entscheidungen getroffen werden müssen, um die speziellen Ziele der Entwickler, etwa die Kompatibilität mit systembezogenen und geschäftsbezogenen Rahmenbedingungen, zu erreichen, die sich von Implementierung zu Implementierung unterscheiden können. Ferner ist zu beachten, dass ein derartiger Entwicklungsaufwand komplex und zeitaufwendig sein kann, aber dennoch eine Routinemaßnahme für den Fachmann darstellt, der im Besitz der vorliegenden Offenbarung ist.
-
2 ist eine Ansicht einer Ausführungsform eines Computersystems200 mit einer CPU (Prozessor)202 , einer System- oder „Rost-"Brücke204 , einem Speicher206 , einem ersten Gerätebus208 (beispielsweise einem peripheren Komponentenverbindungs-(PCI-Bus)), einer Gerätebusbrücke210 , einem zweiten Gerätebus212 (beispielsweise einem Industriestandardarchitektur-(ISA-Bus)), und vier Gerätehardwareeinheiten214a bis214d . Die Host-Brücke204 ist mit der CPU202 , dem Speicher206 und dem ersten Gerätebus208 verbunden. Die Host-Brücke204 leitet Signale zwischen der CPU202 und dem ersten Gerätebus208 weiter und verbindet funktionsmäßig den Speicher206 mit der CPU202 und dem ersten Gerätebus208 . Die Gerätebusbrücke210 ist zwischen dem ersten Gerätebus208 und dem zweiten Gerätebus212 angeordnet und vermittelt Signale zwischen dem ersten Gerätebus208 und dem zweiten Gerätebus212 . In der Ausführungsform aus2 sind die Gerätehardwareeinheiten214a und214b mit dem ersten Gerätebus208 verbunden, und die Gerätehardwareeinheiten214c und214d sind mit dem zweiten Gerätebus212 verbunden. Eine oder mehrere der Gerätehardwareeinheiten214a bis214d können beispielsweise Speichereinrichtungen (z. B. Festplatten, Diskettenlaufwerke und CD-ROM-Laufwerke), Kommunikationseinrichtungen (beispielsweise ein Modem und Netzwerkadap ter), oder Eingabe- oder Ausgabe-Einrichtungen (beispielsweise Video-Einrichtungen, Audiogeräte und Drucker) sein. - In der Ausführungsform aus
2 umfasst die CPU202 eine Eingabe/Ausgabe-(I/O)Sicherheitsprüfeinheit (SCU)216 . Die Gerätehardwareeinheiten214a bis214d können diversen I/O-Ports des I/O-Raums der CPU202 zugeordnet sein, und die CPU202 kann mit den Gerätehardwareeinheiten214a bis214d über entsprechende I/O-Ports kommunizieren. Hierbei wird die I/O-SCU216 verwendet, um die Gerätehardwareeinheiten214a bis214d vor unautorisierten Zugriffen, die von der CPU202 erzeugt werden, zu schützen. Zu beachten ist, dass in anderen Ausführungsformen die Host-Brücke204 ein Teil der CPU202 sein kann, wie in2 gezeigt ist. -
3 ist eine Ansicht, die die Beziehungen zwischen den diversen Hardware- und Softwarekomponenten des Computersystems200 aus2 zeigt. In der Ausführungsform aus3 sind mehrere Anwendungsprogramme300 , ein Betriebssystem302 , ein Sicherheitskernel304 und Gerätetreiber306a bis306d in dem Speicher206 abgelegt. Die Anwendungsprogramme300 , das Betriebssystem302 , der Sicherheitskernel304 und die Gerätetreiber306a bis306d enthalten Instruktionen, die von der CPU202 ausgeführt werden. Das Betriebssystem302 stellt eine Anwenderschnittstelle und eine Software- „Plattform" bereit, auf der die Anwendungsprogramme300 laufen. Das Betriebssystem302 kann ferner beispielsweise grundlegende Hilfsfunktionen bereitstellen, einschließlich der Dateisystemverwaltung, der Prozessverwaltung und der Eingabe/Ausgabe-(I/O)-Steuerung. - Das Betriebssystem
302 kann ferner grundlegende Sicherheitsfunktionen bereitstellen. Beispielsweise kann die CPU202 (2 ) ein x86-Prozessor sein, der Instruktionen des x86-Instruktionssatzes ausführt. Hierbei kann die CPU202 spezialisierte Hardwareelemente aufweisen, die sowohl Schutzmerkmale für den virtuellen Speicher als auch für den physikalischen Speicher in dem geschützten Modus, wie dies zuvor beschrieben ist, bereitstellen. Das Betriebssystem302 kann beispielsweise ein Betriebssystem aus der Windows-Familie sein (Microsoft Corporation, Redmond, WA), das die CPU302 im geschützten Modus betreibt und spezialisierte Hardwareelemente der CPU202 verwendet, um sowohl virtuellen Speicher- als auch Speicherschutz in dem geschützten Modus bereitzustellen. - Wie nachfolgend detaillierter beschrieben ist, liefert der Sicherheitskernel
304 weitere Sicherheitsfunktionen, die über die von dem Betriebssystem302 bereitgestellten Sicherheitsfunktionen hinausgehen, um Daten, die in dem Speicher206 abgelegt sind, vor einem unautorisierten Zugriff zu schützen. Wie in3 gezeigt ist, ist der Sicherheitskernel304 mit der I/O-SCU216 verbunden. Wie nachfolgend detaillierter beschrieben ist, überwacht die I/O-SCU216 alle softwareinitiierten Zugriffe auf die I/O-Ports in dem I/O-Adressenraum und erlaubt lediglich autorisierte Zugriffe auf die I/O-Ports. - In der Ausführungsform aus
3 sind die Gerätetreiber306a bis306d funktionsmäßig den entsprechenden Gerätehardwareeinheiten214a bis214d zugeordnet und mit diesen verbunden. Die Gerätehardwareeinheiten214a bis214d können beispielsweise „sichere" Geräte bzw. Einrichtungen sein und die entsprechenden Gerätetreiber306a und306d können „sichere" Gerätetreiber sein. Der Sicherheitskernel304 ist zwischen dem Betriebssystem302 und den sicheren Gerätetreibern306a und306d angeordnet und überwacht alle Zugriffe von den Anwendungsprogrammen300 und dem Betriebssystem302 auf die sicheren Gerätetreiber306a und306d und die entsprechenden sicheren Geräte214a und214d . Der Sicherheitskerne)304 kann nicht autorisierte Zugriffe auf die sicheren Gerätetreiber306a und306d und die entsprechenden sicheren Geräte214a und214d von den Anwendungsprogrammen300 und dem Betriebsystem302 verhindern. Die Gerätetreiber306b und306c können andererseits „nicht sichere" Gerätetreiber sein und die entsprechenden Gerätehardwareeinheiten214b und214c können „nicht sichere" Gerätehardwareeinheiten sein. Die Gerätetreiber306b und306c und die entsprechenden Gerätehardwareeinheiten214b und214c können beispielsweise „vererbte" Gerätetreiber und Gerätehardwareeinheiten sein. - Anzumerken ist, dass in anderen Ausführungsformen der Sicherheitskernel
304 ein Teil des Betriebssystems302 sein kann. In noch weiteren Ausführungsformen können der Sicherheitskernes304 , die Gerätetreiber306a und306d und/oder die Gerätetreiber306b und306d Teil des Betriebssystems302 sein. -
4 ist eine Ansicht einer Ausführungsform der CPU202 des Computersystems200 aus2 . In der Ausführungsform aus4 enthält die CPU202 eine Ausführungseinheit400 , eine Speicherverwaltungseinheit (MMU)402 , eine Cache- bzw. Kernspeichereinheit404 , eine Busschnittstelleneinheit (BIU)406 , einen Satz an Steuerregistern408 und einen Satz aus Sicherheitsexekutions- bzw. Ausführungsmodus-(SEM)Registern410 . Die BIU406 ist mit der Host-Brücke204 (2 ) verbunden und bildet eine Schnittstelle zwischen der CPU202 und der Host-Brücke204 . Die BIU406 ist ferner mit dem Speicher206 (2 ) über die Host-Brücke204 gekoppelt und bildet eine Schnittstelle zwischen der CPU202 und dem Speicher206 . In der Ausführungsform aus4 ist die I/O SCU216 in der BIU406 angeordnet. - Wie nachfolgend detaillierter beschrieben ist, wird der Satz aus SEM-Registern
410 verwendet, um einen sicheren Exekutions- bzw. Ausführungsmodus (SEM) in dem Computersystem200 aus2 einzurichten, und der Betrieb der I/O SCU216 wird von dem Inhalt des Satzes an SEM-Registern410 gesteuert. Auf die SEM-Register410 wird von dem Sicherheitskernel304 (3 ) zugegriffen (d. h. diese werden beschrieben und/oder ausgelesen von dem Sicherheitskernel304 ). - In der Ausführungsform aus
4 enthält der Satz aus SEM-Registern410 ein Sicherheitsausführungsmodus-(SEM-)Bit. Das Computersystem200 aus2 kann beispielsweise in dem sicheren Ausführungsmodus (SEM) arbeiten, wenn: (i) die CPU202 ein x86 Prozessor ist, der in dem geschützten x-86 Modus arbeitet, (ii) die Speicherseiteneinteilung aktiviert ist und (iii) ds SEM-Bit auf „1" gesetzt ist. - Im Allgemeinen steuert der Inhalt des Satzes der Steuerregister
408 die Arbeitsweise der CPU202 . Folglich steuert der Inhalt des Satzes der Steuerregister408 die Arbeitsweise der Ausführungseinheit400 , der MMU402 , der Kernspeichereinheit404 und/oder der BIU406 . Der Satz an Steuerregistern408 kann beispielsweise die mehreren Steuerregister der x86-Prozessorarchitektur enthalten. - Die Ausführungseinheit
400 der CPU202 holt die Instruktionen (beispielsweise x86-Instruktionen) und Daten ab, führt die abgeholten Instruktionen aus und erzeugt Signale (beispielsweise Adressen-, Daten- und Steuersignale) während der Abarbeitung der Instruktionen. Die Ausführungseinheit400 ist mit der Kernspeichereinheit404 gekoppelt und kann die Instruktionen von dem Speicher206 (2 ) über die Kernspeichereinheit404 und die BIU406 empfangen. - Der Speicher
206 (2 ) des Computersystems200 enthält mehrere Speicherplätze, von denen jede eine einzigartige physikalische Adresse besitzt. Beim Arbeiten in dem geschützten Modus mit aktivierter Seiteneinteilung wird ein Adressenraum der CPU202 in mehrere Blöcke unterteilt, die als Seitenrahmen oder „Seiten" bezeichnet sind. In dem Speicher206 werden zu einer gegebenen Zeit lediglich Daten abgelegt, die einem Bereich der Seiten entsprechen. In der Ausführungsform aus4 repräsentieren Adresssignale, die von der Ausführungseinheit400 während der Instruktionsabarbeitung erzeugt werden, segmentierte (d. h. „logische") Adressen. Die MMU402 übersetzt die von der Ausführungseinheit400 erzeugten segmentierten Adressen in entsprechende physikalische Adressen des Speichers206 . Die MMU402 leitet die physikalischen Adressen der Kernspeichereinheit404 zu. Die Kernspeichereinheit404 ist eine relativ kleine Speichereinheit, die zur Speicherung von Instruktionen und Daten verwendet wird, die zuvor von der Ausführungseinheit400 abgerufen wurden. - Die BIU
406 ist zwischen der Kernspeichereinheit404 und der Host-Brücke204 angeordnet. Die BIU406 wird verwendet, um Instruktionen und Daten, die nicht in der Kernspeichereinheit404 vorhanden sind, aus dem Speicher206 über die Host-Brücke204 zu holen. Die BIU406 enthält ferner die I/O SCU216 . Die I/O SCU216 ist mit den SEM-Registern410 , der Ausführungseinheit404 und der MMU402 verbunden. Wie zuvor beschrieben ist, überwacht die I/O SCU216 alle softwareinitiierten Zugriffe auf die I/O-Ports und den I/O-Adressenraum und erlaubt lediglich autorisierte Zugriffe auf die I/O-Ports. -
5 ist eine Ansicht, die eine Ausführungsform der I/O SCU216 aus4 darstellt. In der Ausführungsform aus5 enthält die I/O SCU216 eine Sicherheitsprüflogik500 . Die Sicherheitsprüflogik500 empfängt ein „Freigabe"-Signal und I/O-Port-Nummer von der Ausführungseinheit400 und einen Sicherheitskontextidentifizierungs-(SCID)Wert von der MMU402 . Die Ausführungseinheit400 kann das Freigabesignal vor dem Ausführen einer I/O-Instruktion erstellen, die auf einen „Ziel"-I/O-Port in dem I/O-Adressenraum zugreift. Die I/O-Port-Nummer ist die Nummer des Ziel-I/O-Ports. Der SCID-Wert bezeichnet einen Sicherheitskontextpegel bzw. eine Sicherheitskontextebene der Speicherseite, die die I/O-Instruktion enthält. - Wenn das Computersystem
200 aus2 in dem sicheren Ausführungsmodus (SEM) arbeitet, erzeugt der Sicherheitskernel304 (3 ) eine oder mehrere Sicherheitsattributda tenstrukturen (beispielsweise Tabellen) in dem Speicher206 (2 ) und verwaltet diese. Jede Speicherseite besitzt einen entsprechenden Sicherheitskontextidentifizierungs-(SCID)Wert, und der entsprechende Sicherheitskontextidentifizierungs-(SCID)Wert wird in den Sicherheitsattributdatenstrukturen gespeichert. Die MMU402 verwendet eine Adresse, die während der Instruktionsausführung erzeugt wird (beispielsweise eine physikalische Adresse), um auf eine oder mehrere Sicherheitsattributdatenstrukturen zuzugreifen, um die Sicherheitskontextidentifizierungen (SCID's) der entsprechenden Speicherseiten zu ermitteln. Im Allgemeinen besitzt das Computersystem200 n unterschiedliche Slcherheitskontextidentifizierungs-(SCID)Werte, wobei n eine Ganzzahl und n ≥ 1 ist. - Wenn das Computersystem
200 aus2 in dem sicheren Ausführungsmodus (SEM) arbeitet, erzeugt der Sicherheitskernel304 (3 ) ferner eine I/O-Erlaubsnisbitstruktur für einen sicheren Ausführungsmodus (SEM) in dem Speicher206 (2 ) und verwaltet diese. Wenn die Ausführungseinheit400 (4 ) eine I/O-Instruktion einer Aufgabe ausführt, vergleicht eine Logik in der CPU202 eine aktuelle Privilegebene (CPL) der Aufgabe mit einer I/O-Privilegebene (IOPL). Wenn die aktuelle Privilegebene (CPL) der Aufgabe mindestens so privilegiert ist wie (d. h. numerisch kleiner oder gleich ist zu) der I/O-Privilegebene (IOPL), kann die Logik innerhalb der CPU202 die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur prüfen. Wenn andererseits die aktuelle Privilegebene (CPL) der Aufgabe nicht so privilegiert ist wie (d. h. numerisch größer ist als) die I/O-Privilegebene (IOPL), dann führt die Ausführungseinheit400 die I/O-Instruktion nicht aus. In einer Ausführungsform tritt dabei ein allgemeiner Schutzfehler auf. - Wenn die Ausführungseinheit
400 (4 ) das Freigabesignal erstellt, liefert die Sicherheitsprüflogik500 das Freigabesignal, den empfangenen Sicherheitskontextidentifizierungs-(SCID)Wert und die empfangene I/O-Port-Nummer zu der Logik innerhalb der BIU406 . Die Logik in der BIU406 verwendet den Sicherheitskontextidentifizierungs-(SCID)Wert und die empfangene I/O-Port-Nummer, um auf die Sicherheitsausführungsmodus (SEM) I/O-Erlaubnisbitstruktur zuzugreifen und liefert das entsprechende Bit von der Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur an die Sicherheitsprüflogik500 . Wenn das entsprechende Bit von der Sicherheitsausführungsmodus (SEM) I/O-Erlaubnisbitstruktur auf „0" zurückgesetzt ist, kann die Sicherheitsprüflogik500 ein Ausgangs-„Ausführungs-"Signal erstellen, das der Ausführungseinheit400 zugeleitet wird. In Reaktion auf die erzeugten Ausführungssignale kann dann die Ausführungseinheit400 die I/O-Instruktion aus führen. Wenn andererseits das entsprechende Bit auf „1" gesetzt ist, kann die Sicherheitsprüflogik500 ein Ausgangs-(SEM)„Sicherheitsausnahme-"Signal erzeugen, das der Ausführungseinheit400 zugeleitet ist. In Reaktion auf das erzeugte SEM-Sicherheitsausnahmesignal führt die Ausführungseinheit400 die I/O-Instruktion nicht aus und kann stattdessen eine Sicherheitsausführungsmodus-(SEM)Ausnahmehandhabungsroutine ausführen. - Wenn die I/O-Instruktion versucht, auf einen 16-Bit/Wort-I/O-Port oder einen 32-Bit/Doppelwort-I/O-Port zuzugreifen, kann die Ausführungseinheit
400 die I/O-Portnummern mit mehreren Bytes der Sicherheitsprüflogik500 der Reihe nach zuleiten. Wenn die Sicherheitsprüflogik500 das Ausführungssignal für jedes Byte der I/O-Port-Nummer erzeugt, kann die Ausführungseinheit400 die I/O-Anweisung ausführen. Wenn andererseits die Sicherheitsprüflogik500 das SEM-Sicherheitsausnahmesignal für eines oder mehrere Bytes der I/O-Port-Nummer erstellt, führt die Ausführungseinheit400 die I/O-Instruktion nicht aus und kann stattdessen die Sicherheitsausführungsmodus-(SEM)Ausnahmehandhabungsroutine ausführen. -
6 ist eine Ansicht, die eine Ausführungsform der Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnis-Bit-Struktur, die in6 mit600 bezeichnet ist, und eine Ausführungsform eines Mechanismus zum Zugreifen auf die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur600 zeigt. Der Mechanismus aus6 kann in der Logik innerhalb der BIU406 (4 ) eingerichtet sein und kann anwendbar sein, wenn das Computersystem200 in dem sicheren Ausführungsmodus (SEM) betrieben wird. In6 enthält der Satz an Sicherheitsausführungsmodus-(SEM)Registern410 ein modellspezifisches Register (MSR)602 . Das modellspezifische Register (MSR)602 wird verwendet, um eine Anfangs(d. h. Basis-)Adresse der Sicherheitsausführungsmodus (SEM) I/O-Erlaubnisbitstruktur600 zu speichern. Wie zuvor beschrieben ist, besitzt das Computersystem200 n unterschiedliche Sicherheitskontextidentifizierungs-(SCID)Werte, wobei n eine Ganzzahl und n ≥ 1 ist. Die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur600 enthält eine unterschiedliche I/O-Bitstruktur für jeden der n unterschiedlichen Sicherheitskontextidentifizierungs-(SCID)Werte. Jede der unterschiedlichen I/O-Erlaubnisbitstrukturen enthält 64 k Bits oder 8 k Bytes. - In der Ausführungsform aus
6 wird der Sicherheitskontextidentifizierungs-(SCID)Wert der Speicherseite, die die I/O-Instruktion enthält, die auf den I/O-Port zugreift, als ein Offset von dem Inhalt des modellspezifischen Registers602 (d. h. die Basisadresse der Sicherheitsausführungsmodus-I/O-Erlaubnisbitstruktur600 ) in die eine oder mehreren 64 k Bit (8 k-Byte)I/O-Erlaubnisbitstrukturen verwendet, die die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur600 bilden. Als Folge davon wird diejenige I/O-Erlaubnisbitstruktur, die dem Sicherheitskontextidentifizierungs-(SCID)Wert entspricht, angesprochen. Die I/O-Port-Nummer wird dann als ein Bit-Offset in die I/O-Erlaubnisbitstruktur verwendet, die dem Sicherheitskontextidentifizierungs (SCID) Wert entspricht. Das Bit, auf das in dieser Weise zugegriffen wird, ist das Bit, das dem durch die I/O-Port-Nummer gekennzeichneten I/O-Port entspricht. -
7 ist eine Ansicht, die eine weitere Ausführungsform der Sicherheitsausführungsmodus (SEM) I/O-Erlaubnisbitstruktur, die in7 als700 bezeichnet ist, und eine weitere Ausführungsform des Mechanismus zum Zugreifen auf die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur zeigt. Der Mechanismus aus7 kann in der Logik in der BIU406 (4 ) eingerichtet sein. In der Ausführungsform aus7 enthält die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur700 eine einzelne 64 k Bit (8k Byte) I/O-Erlaubnisbitstruktur. Die I/O-Port-Nummer wird als ein Bit-Offset von dem Inhalt des modellspezifischen Registers602 (d. h. die Basisadresse der Sicherheitsausführungsmodus(I/O-Erlaubnisbitstruktur700 ) in die I/O-Erlaubnisbitstruktur verwendet. Das auf diese Weise angesprochene Bit ist das Bit, das dem durch die I/O-Port-Nummer definierten I/O-Port entspricht. -
8 ist eine Ansicht einer alternativen Ausführungsform der CPU202 des Computersystems200 aus2 . In der Ausführungsform aus8 enthält die CPU202 die Ausführungseinheit404 , die Speicherverwaltungseinheit (MMU)402 , die Cache- bzw. Kernspeichereinheit404 , die Busschnittstelleneinheit (BIU)406 , den Satz an Steuerregistern408 und den Satz an Sicherheitsausführungsmodus-(SEM)Registern410 , die zuvor beschrieben sind. Ferner umfasst die CPU202 eine Mikrocodierungsmaschine800 und eine Mikrocodierungsspeicher802 . Die Mikrocodierungsmaschine800 ist mit der Ausführungseinheit400 , der MMU402 , der Kernspeichereinheit404 , der BIU406 , dem Satz an Steuerregistern408 und dem Satz an Sicherheitsausführungsmodus-(SEM)Registern410 verbunden. Die Mikrocodierungsmaschine800 führt Mikrocodierungsinstruktionen aus, die in dem Mikroco dierungsspeicher802 abgelegt sind, und erzeugt Signale, die die Vorgänge in der Ausführungseinheit400 , der MMU402 , der Kernspeichereinheit404 und der BIU406 in Abhängigkeit von den Mikrocodierungsinstruktionen und den Inhalten des Satzes der Steuerregister408 und des Satzes der Sicherheitsausführungsmodus-(SEM)Register410 steuern. Die Mikrocodierungsmaschine800 kann die Ausführungseinheit400 beim Ausführen komplexerer Instruktionen des x86-Instruktionssatzes unterstützen. - In der Ausführungsform aus
8 bildet ein Teil der Mikrocodierungsinstruktionen, die in dem Mikrocodierungsspeicher802 abgelegt sind, eine I/O-Sicherheitsprüfcodierung804 . Die I/O-Sicherheitsprüfcodierung804 wird ausgeführt, wenn das Computersystem200 aus2 in dem Sicherheitsausführungsmodus (SEM) betrieben wird und eine I/O-Instruktion der Ausführungseinheit400 zur Abarbeitung zugeleitet wird. Insbesondere bewirken die Mikrocodierungsinstruktionen der I/O-Sicherheitsprüfcodierung804 , dass die Mikrocodierungsmaschine800 und die BIU406 die Funktionen der I/O-SCU216 (2 bis4 ), die zuvor beschrieben ist, ausführen. - Wenn beispielsweise eine I/O-Instruktion an die Ausführungseinheit
400 zur Abarbeitung geleitet wird, kann die Ausführungseinheit400 das Vorhandensein der I/O-Instruktion der Mikrocodierungsmaschine800 anzeigen. Die Mikrocodierungsmaschine kann Signale an die MMU402 und die BIU406 leiten. In Reaktion auf ein Signal von der Mikrocodierungsmaschine800 kann die MMU402 den Sicherheitskontextidentifizierungs-(SCID)Wert der Speicherseite, die die I/O-Instruktion enthält, für die BIU406 bereitstellen. Die Ausführungseinheit400 kann die I/O-Port-Nummer, auf die von der I/O-Instruktion zugegriffen wird, der BIU406 zuführen. - In Reaktion auf ein Signal von der Mikrocodierungsmaschine
800 kann die BIU406 den Sicherheitskontextidentifizierungs-(SCID)Wert und die empfangene I/O-Port-Nummer verwenden, um auf die Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur in der oben beschriebenen Weise zuzugreifen, und kann das entsprechende Bit von der Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur der Mikrocodierungsmaschine800 zuführen. Wenn das entsprechende Bit von der Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur auf „0" zurückgesetzt ist, fährt die Mikrocodierungsmaschine800 fort, die Ausführungseinheit400 beim Fertigstellen der Ausführung der I/O-Instruktion zu unterstützen. Wenn andererseits das entsprechende Bit auf „1" gesetzt ist, kann die Mikrocodie rungsmaschine der Ausführungseinheit400 signalisieren, die Ausführung der I/O-Instruktion zu beenden und die Ausführung der Instruktion der Sicherheitsausführungsmodus-(SEM)Ausnahmehandhabungsroutine zu beginnen. -
9 wird nunmehr verwendet, um zu beschreiben, wie die Zuordnung der Sicherheitskontextidentifizierungs-(SCID)Werte und die Erzeugung entsprechender Sicherheitsausführungsmodus(SEM)I/O-Erlaubnisbitstrukturen dazu dienen, Gerätetreiber und zugeordnete Hardwaregeräteeinheiten in dem Computersystem200 aus2 für Sicherheitszwecke „in Abteile aufzuteilen".9 ist eine Ansicht, in der die Abhängigkeiten zwischen den diversen Hardware- und Softwarekomponenten des Computersystems200 aus2 dargestellt sind, wobei der Gerätetreiber306a und die entsprechende Gerätehardwareeinheit214a in einem ersten Sicherheits- „Abteil"900 angeordnet sind und wobei der Gerätetreiber306d und die entsprechende Gerätehardwareeinheit214d in einen zweiten Sicherheitsabteil902 angeordnet sind. Die Sicherheitsabteile900 und902 sind voneinander getrennt und sind auch funktionelle voneinander isoliert. Lediglich der Gerätetreiber306a darf auf die Gerätehardwareeinheit214a zugreifen, und nur der Gerätetreiber306d darf auf die Gerätehardwareeinheit214d zugreifen. Diese „Einteilung in Abteile" der Gerätetreiber und der zugeordneten Gerätehardwareeinheiten hilft dabei zu verhindern, dass schadhafte oder fehlerhafte Codierungen den Zustand der Gerätehardwareeinheiten negativ beeinflussen oder den korrekten Betrieb des Computersystems200 aus2 stören. - Beispielsweise können in der Ausführungsform aus
9 die Speicherseiten mit den Instruktionen der Gerätetreiber306a und306d unterschiedlichen Sicherheitskontextidentifizierungs-(SCID)Werten zugeordnet sein. Eine erste Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur, die für den SCID-Wert des Gerätetreibers306a erzeugt wurde, kann dem Gerätetreiber306a erlauben, auf einen ersten Bereich eines I/O-Adressenraumes des Computersystems200 zuzugreifen, der der Gerätehardwareeinheit214 zugeordnet ist und kann ferner dem Gerätetreiber306a verbieten, auf einen zweiten Bereich des I/O-Adressenraumes zuzugreifen, der der Gerätehardwareeinheit214d zugeordnet ist. In ähnlicher Weise kann eine zweite Sicherheitsausführungsmodus-(SEM)I/O-Erlaubnisbitstruktur, die für den SCID-Wert des Gerätetreibers306d erzeugt wurde, diesem erlauben, auf den zweiten Bereich des I/O-Adressenraumes zuzugreifen, der der Gerätehardwareeinheit214d zugeordnet ist, und kann dem Gerätetreiber306a verbieten, auf den ersten Bereich des I/O-Adressenraumes zuzugreifen, der der Gerätehardwareeinheit214a zugeordnet ist. Als Folge davon darf lediglich der Gerätetreiber306a auf die Gerätehardwareeinheit214a und nur der Gerätetreiber206d auf die Gerätehardwareeinheit214d zugreifen. - Einige Aspekte der Erfindung, wie sie zuvor dargestellt ist, sind in Hard- oder Software implementierbar. Somit sind einige Teile der detaillierten Beschreibung in Begriffen eines hardwareimplementierten Prozesses und einige Bereiche der detaillierten Beschreibung sind daher im Hinblick auf einen softwareimplementierten Prozess beschrieben, der symbolische Darstellungen von Operationen an Datenbits innerhalb eines Speichers eines Computersystems oder einer Computereinrichtung beinhaltet. Diese Beschreibungen und Darstellungen sind die Mittel, die vom Fachmann zur effizienten Vermittlung seiner Arbeit an andere Fachleute, die mit Hardware und Software vertraut sind, verwendet werden. Die Bearbeitung und die Operation an beiden erfordert physikalische Manipulationen physikalischer Größen. In der Software nehmen diese Größen, obwohl dies nicht notwendig ist, die Form elektrischer, magnetischer oder optischer Signale an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich gelegentlich als günstig erwiesen, insbesondere aus Gründen der gemeinsamen Benutzung, diese Signale als Bits, Werte, Element, Symbole, Zeichen, Terme, Zahlen oder dergleichen zu bezeichnen.
- Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe mit den geeigneten physikalischen Größen verknüpft werden müssen und dass diese lediglich bequeme Namen sind, die diesen Größen verliehen wurden. Sofern nicht anderes gesagt wird oder dies nicht anders deutlich wird in der vorliegenden Beschreibung, bezeichnen diese Beschreibungen Aktionen und Prozesse einer elektronischen Einrichtung, die Daten, die als physikalische (elektronische, magnetische oder optische) Größen innerhalb gewisser Speicherbereiche der elektronischen Einrichtung vorhanden sind, manipulieren und in andere Daten umwandeln, die in ähnlicher Weise als physikalische Größen innerhalb eines Speicherbereichs, oder einer Übertragungs- oder Anzeigeeinrichtung dargestellt sind. Beispielhaft für Begriffe, die eine derartige Beschreibung kennzeichnen, sind, ohne Einschränkung, die Begriffe „Bearbeiten", „Berechnen", „Ausrechnen", „Bestimmen", „Darstellen", und dergleichen. Ferner ist zu beachten, dass softwareimplementierte Aspekte der Erfindung typischerweise in einer gewissen Form eines Programmspeichermediums codiert sind oder über eine gewisse Art eines Übertragungsmediums eingerichtet werden. Das Programm speichermedium kann magnetisch (beispielsweise eine Diskette oder ein Festplatte) oder optisch (beispielsweise eine kompakte Scheibe mit einem Nur-Lesespeicher oder „CD-ROM") und kann nur lesbar sein oder einen wahlfreien Zugriff erlauben. Das Übertragungsmedium kann durch verdrillte Leitungspaare, ein Koaxialkabel, eine Glasfaser oder ein beliebiges anderes geeignetes Übertragungsmedium, das im Stand der Technik bekannt ist, repräsentiert sein. Die Erfindung ist nicht durch diese Aspekte einer beliebigen vorgegebenen Implementierung beschränkt.
Claims (9)
- Prozessor (
202 ), der zur Ankopplung an einen Speicher (206 ) ausgebildet ist, wobei der Prozessor (202 ) umfasst: eine Ausführungseinheit (400 ), die ausgebildet ist, I/O-Instruktionen auszuführen; eine Speicherverwaltungseinheit (402 ), die ausgebildet ist, Daten in dem Speicher (206 ) zu speichern; und eine Busschnittstelleneinheit (406 ), die angeschlossen ist, um eine Eingabe/Ausgabe-(I/O)-Port-Nummer und ein Erlaubnisbit entsprechend der I/O-Port-Nummer zu empfangen und um ein Ausgangssignal in Abhängigkeit eines Wertes des Erlaubnisbits zu erzeugen, wobei die I/O-Port-Nummer eine Nummer des Eingabe/Ausgabe-(I/O)Ports anzeigt, der von einer I/O-Instruktion angesprochen wird, und wobei die Busschnittstelleneinheit (406 ) ferner angeschlossen ist, um einen Sicherheitskontextidentifizierungswert zu empfangen, und wobei der Sicherheitskontextidentifizierungswert eine Sicherheitskontextebene einer Speicherstelle kennzeichnet, die die I/O-Instruktion enthält, wobei die Busschnittstelleneinheit (406 ) ausgebildet ist, den Sicherheitskontextidentifizierungswert und die I/O-Port-Nummer zu verwenden, um auf eine dem Sicherheitskontextidentifizierungswert entsprechende Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur (600 ) zuzugreifen, die in dem Speicher (206 ) abgelegt ist, um das Erlaubnisbit zu erhalten, und wobei die Ausführungseinheit (400 ) so angeschlossen ist, um das Ausgangssignal zu empfangen und ferner so ausgebildet ist, um die I/O-Instruktion in Abhängigkeit des Ausgangssignals auszuführen. - Der Prozessor (
202 ) nach Anspruch 1, wobei die Busschnittstelleneinheit (406 ) mit der Ausführungseinheit (400 ) und der Speicherverwaltungseinheit (402 ) verbunden ist, und wobei die I/O-Portnummer von der Ausführungseinheit (400 ) empfangen wird, und wobei der Sicherheitskontextidentifizierungswert von der Speicherverwaltungseinheit (402 ) empfangen wird. - Der Prozessor (
202 ) nach Anspruch 1, wobei die I/O-Port-Nummer und der Sicherheitskontextidentifizierungswert während der Ausführung der I/O-Instruktion durch die Ausführungseinheit (400 ) empfangen werden. - Der Prozessor (
202 ) nach Anspruch 1, wobei die I/O-Erlaubnisbit-Struktur (600 ) mehrere Erlaubnisbits umfasst, und wobei jedes der Erlaubnisbits einem anderen Port von mehreren I/O-Ports entspricht, und wobei jedes der Erlaubnisbits einen Wert besitzt, der anzeigt, ob ein Zugriff auf den entsprechenden I/O-Port zulässig ist. - Der Prozessor (
202 ) nach Anspruch 1, der ferner ein modellspezifisches Register (602 ) aufweist, das ausgebildet ist, eine Basisadresse der I/O-Erlaubnisbitstruktur (600 ) zu speichern, wobei die Busschnittstelleneinheit (406 ) auf die I/O-Erlaubnisbitstruktur (600 ) zugreift, um das Erlaubnisbit zu erhalten, das der I/O-Portnummer entspricht, wobei die I/O-Portnummer als ein Bit-Offset von dem Inhalt des modellspezifischen Registers (602 ) in die I/O-Erlaubnisbitstruktur (600 ) verwendet wird. - Der Prozessor (
202 ) nach Anspruch 1, wobei die I/O-Erlaubnisbitstruktur (600 ) eine pri- märe I/O-Erlaubnisbitstruktur (600 ) ist, und wobei die primäre I/O-Erlaubnisbitstruktur (600 ) mehrere sekundäre I/O-Erlaubnisbitstrukturen enthält, und wobei jede der sekundären I/O-Erlaubnisbitstrukturen mehrere Erlaubnisbits aufweist, und wobei jedes der Erlaubnisbits einer gegebenen sekundären I/O-Erlaubnisbitstruktur einem anderen Port von mehreren I/O-Ports entspricht, und wobei jedes der Erlaubnisbits einen Wert aufweist, der anzeigt, ob ein Zugriff auf den entsprechenden I/O-Port zulässig ist, und wobei jeder der sekundären I/O-Erlaubnisbitstrukturen einem anderen von mehreren Sicherheitskontextidentifizierungswerten entspricht. - Der Prozessor (
202 ) nach Anspruch 1, der ferner eine Mikrocodierungsmaschine (800 ) aufweist, die mit der Ausführungseinheit (400 ), der Speicherverwaltungseinheit (402 ) und der Busschnittstelleneinheit (406 ) verbunden und ausgebildet ist, Mikrocodierungsinstruktionen, die in einem Mikrocodierungsspeicher (802 ) gespeichert sind, auszuführen, wobei die Mikrocodierungsmaschine (800 ) Steuersignale während der Ausführung mindestens einer der Mikrocodierungsinstruktionen erzeugt, wobei ein Teil der Mikrocodierungsinstruktionen bewirkt, dass die Mikrocodierungsmaschine (800 ) Steuersignale erzeugt, die bewirken, dass die Busschnittstelleneinheit (406 ): die Eingabe/Ausgabe-(I/O)Port-Nummer und einen Sicherheitskontextidentifizierungswert empfängt, wobei die I/O-Port-Nummer eine Nummer eines Eingabe/Ausgabe-(I/O)-Ports kennzeichnet, der von einer I/O-Instruktion angesprochen wird, wobei der Sicherheitskontextidentifizierungswert eine Sicherheitskontextebene einer Speicherstelle kennzeichnet, die die I/O-Instruktion enthält, und den Sicherheitskontextidentifizierungswert und die I/O-Port-Nummer verwendet, um auf eine Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur (600 ) zuzugreifen, die in dem Speicher (206 ) abgelegt ist, um das Erlaubnisbit, das dem I/O-Port entspricht, zu erhalten, und um das Ausgangssignal in Abhängigkeit eines Wertes des Erlaubnisbits zu erzeugen; und wobei die Ausführungseinheit (400 ) so angeschlossen ist, um das Ausgangssignal zu empfangen und ferner ausgebildet ist, die I/O-Instruktion in Abhängigkeit des Ausgangssignals auszuführen. - Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-(I/O)Instruktion, wobei das Verfahren umfasst: Erzeugen einer Eingabe/Ausgabe-(I/O)Erlaubnisbitstruktur (
600 ) in einem Speicher (206 ), wobei die I/O-Erlaubnisbitstruktur (600 ) mehrere Erlaubnisbits umfasst, und wobei jedes der Erlaubnisbits einem anderen Port von mehreren I/O-Ports entspricht, und wobei jedes der Erlaubnisbits einen Wert besitzt, der anzeigt, ob ein Zugriff auf den entsprechenden I/O-Port zulässig ist; Empfangen einer I/O-Port-Nummer und eines Sicherheitskontextidentifizierungswertes, wobei die I/O-Port-Nummer den I/O-Port kennzeichnet, der von der I/O-Instruktion angesprochen wird, und wobei der Sicherheitskontextidentifizierungswert eine Sicherheitskontextebene einer Speicherstelle kennzeichnet, die die I/O-Instruktion enthält; Verwenden des Sicherheitskontextidentifizierungswertes und der I/O-Port-Nummer, um auf die gespeicherte I/O-Erlaubnisbitstruktur (600 ) zuzugreifen, um ein dem I/O-Port und dem Sicherheitskontextidentifizierungswert entsprechendes Erlaubnisbit zu erhalten; und Ausführen der I/O-Instruktion in Abhängigkeit eines Wertes des Erlaubnisbits, das dem I/O-Port entspricht. - Das Verfahren nach Anspruch 8, wobei Empfangen der I/O-Port-Nummer und des Sicherheitskontextidentifizierungswertes ferner umfasst: Empfangen der I/O-Port-Nummer und des Sicherheitskontextidentifizierungswertes während der Ausführung der I/O-Instruktion, und wobei Ausführen der I/O-Instruktion in Abhängigkeit des Wertes des dem I/O-Port entsprechenden Erlaubnisbits ferner umfasst: Ausführen der I/O-Instruktion, wenn der Wert des Erlaubnisbits, das dem I/O-Port entspricht, anzeigt, dass ein Zugriff auf den I/O-Port zulässig ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/107,784 | 2002-03-27 | ||
US10/107,784 US7493498B1 (en) | 2002-03-27 | 2002-03-27 | Input/output permission bitmaps for compartmentalized security |
PCT/US2002/040396 WO2003083671A1 (en) | 2002-03-27 | 2002-12-17 | Input/output permission bitmaps for compartmentalized security |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10297687T5 DE10297687T5 (de) | 2005-07-07 |
DE10297687B4 true DE10297687B4 (de) | 2008-11-13 |
Family
ID=28673583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10297687T Expired - Fee Related DE10297687B4 (de) | 2002-03-27 | 2002-12-17 | Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion |
Country Status (8)
Country | Link |
---|---|
US (1) | US7493498B1 (de) |
JP (1) | JP4391832B2 (de) |
KR (1) | KR101001344B1 (de) |
CN (1) | CN1320466C (de) |
AU (1) | AU2002361757A1 (de) |
DE (1) | DE10297687B4 (de) |
GB (1) | GB2404058B (de) |
WO (1) | WO2003083671A1 (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103914B2 (en) * | 2002-06-17 | 2006-09-05 | Bae Systems Information Technology Llc | Trusted computer system |
CA2551045C (en) * | 2005-06-30 | 2008-04-22 | Hitachi, Ltd. | Input-output control apparatus, input-output control method, process control apparatus and process control method |
US20100132053A1 (en) * | 2005-10-04 | 2010-05-27 | Nec Corporation | Information processing device, information processing method and program |
KR101540798B1 (ko) * | 2008-11-21 | 2015-07-31 | 삼성전자 주식회사 | 가상화 환경에서 보안 정보를 제공하기 위한 장치 및 방법 |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
CN103632088A (zh) * | 2012-08-28 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种木马检测方法及装置 |
US9043632B2 (en) | 2012-09-25 | 2015-05-26 | Apple Inc. | Security enclave processor power control |
US8873747B2 (en) | 2012-09-25 | 2014-10-28 | Apple Inc. | Key management using security enclave processor |
US9047471B2 (en) | 2012-09-25 | 2015-06-02 | Apple Inc. | Security enclave processor boot control |
US8832465B2 (en) * | 2012-09-25 | 2014-09-09 | Apple Inc. | Security enclave processor for a system on a chip |
US8775757B2 (en) | 2012-09-25 | 2014-07-08 | Apple Inc. | Trust zone support in system on a chip having security enclave processor |
JP5920595B2 (ja) * | 2013-07-16 | 2016-05-18 | 横河電機株式会社 | 電子機器、オペレーティングシステム、アクセス管理方法 |
US9547778B1 (en) | 2014-09-26 | 2017-01-17 | Apple Inc. | Secure public key acceleration |
CN106326130B (zh) * | 2015-06-16 | 2019-03-15 | 辰芯科技有限公司 | 寄存器地址空间的控制方法、控制器及片上系统 |
US10261748B2 (en) * | 2015-12-18 | 2019-04-16 | Intel Corporation | Technologies for protecting audio data with trusted I/O |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10360163B2 (en) | 2016-10-27 | 2019-07-23 | Google Llc | Exploiting input data sparsity in neural network compute units |
US9959498B1 (en) | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
EP4248323B1 (de) * | 2021-02-12 | 2024-08-21 | Huawei Technologies Co., Ltd. | Aktive abschwächung von sicherheitsschwachstellen mit geringem overhead durch speichermarkierung |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1132801A2 (de) * | 2000-03-10 | 2001-09-12 | Fujitsu Limited | Zugangsmonitor und Zugangskontrollverfahren |
US6334130B1 (en) * | 1997-02-19 | 2001-12-25 | Hitachi, Ltd. | Information registration method and document information processing apparatus |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5146565A (en) * | 1986-07-18 | 1992-09-08 | Intel Corporation | I/O Control system having a plurality of access enabling bits for controlling access to selective ports of an I/O device |
US5596739A (en) * | 1994-02-08 | 1997-01-21 | Meridian Semiconductor, Inc. | Method and apparatus for detecting memory segment violations in a microprocessor-based system |
US5644755A (en) * | 1995-02-24 | 1997-07-01 | Compaq Computer Corporation | Processor with virtual system mode |
US6978018B2 (en) * | 2001-09-28 | 2005-12-20 | Intel Corporation | Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment |
-
2002
- 2002-03-27 US US10/107,784 patent/US7493498B1/en not_active Expired - Lifetime
- 2002-12-17 KR KR1020047014855A patent/KR101001344B1/ko not_active IP Right Cessation
- 2002-12-17 JP JP2003581027A patent/JP4391832B2/ja not_active Expired - Fee Related
- 2002-12-17 AU AU2002361757A patent/AU2002361757A1/en not_active Abandoned
- 2002-12-17 WO PCT/US2002/040396 patent/WO2003083671A1/en active Application Filing
- 2002-12-17 GB GB0423536A patent/GB2404058B/en not_active Expired - Fee Related
- 2002-12-17 CN CNB028286227A patent/CN1320466C/zh not_active Expired - Lifetime
- 2002-12-17 DE DE10297687T patent/DE10297687B4/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334130B1 (en) * | 1997-02-19 | 2001-12-25 | Hitachi, Ltd. | Information registration method and document information processing apparatus |
EP1132801A2 (de) * | 2000-03-10 | 2001-09-12 | Fujitsu Limited | Zugangsmonitor und Zugangskontrollverfahren |
Also Published As
Publication number | Publication date |
---|---|
KR20040101332A (ko) | 2004-12-02 |
JP4391832B2 (ja) | 2009-12-24 |
GB0423536D0 (en) | 2004-11-24 |
AU2002361757A1 (en) | 2003-10-13 |
US7493498B1 (en) | 2009-02-17 |
WO2003083671A1 (en) | 2003-10-09 |
GB2404058A (en) | 2005-01-19 |
DE10297687T5 (de) | 2005-07-07 |
CN1320466C (zh) | 2007-06-06 |
JP2005521941A (ja) | 2005-07-21 |
GB2404058B (en) | 2005-11-02 |
KR101001344B1 (ko) | 2010-12-14 |
CN1623143A (zh) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10297687B4 (de) | Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion | |
DE10297433B4 (de) | Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor | |
DE69533312T2 (de) | Geschütztes speichersystem und verfahren dafür | |
EP3274825B1 (de) | Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen | |
DE112005003340B4 (de) | Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten | |
DE3789175T2 (de) | Programmverwaltung für mehrere zentrale Verarbeitungseinheiten. | |
DE10394383B4 (de) | Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems | |
DE10196005B4 (de) | Einrichtung und Verfahren zur isolierten Ausführung von Isoliert-Befehlen | |
DE69724862T2 (de) | Verfahren und Anordnung für die Zugangs- und Informationsverfälschungskontrolle in Rechnersystemen | |
DE10195999B3 (de) | Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung | |
DE3689961T2 (de) | Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem. | |
DE10392470B4 (de) | System und Verfahren zum Ausführen von Initialisierungsbefehlen einer gesicherten Umgebung | |
DE2456602C2 (de) | Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher | |
DE69531112T2 (de) | Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer | |
DE69534867T2 (de) | Verfahren und System zur Lieferung geschützter Gerätetreiber | |
DE102006061939B4 (de) | Verfahren und Vorrichtung zum Zugriff auf eine speicherabgebildete Vorrichtung durch einen Gast | |
DE19847676B4 (de) | Modifizierbarer Partitionsstarteintrag für ein Computerspeichergerät | |
DE10196440B4 (de) | Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung | |
DE102009061252B3 (de) | Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2458065A1 (de) | Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff | |
DE102007046475A1 (de) | Überwachen eines Ausführungsmusters eines Target-Agents auf einem VT-fähigen System | |
DE69818135T2 (de) | Verfahren zum Zugriff auf Datenbankinformation | |
DE10297494T5 (de) | System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit | |
DE3131204A1 (de) | Adressumrechnungs- und generatoranordnung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10297687 Country of ref document: DE Date of ref document: 20050707 Kind code of ref document: P |
|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20130702 |