DE10297494T5 - System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit - Google Patents
System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit Download PDFInfo
- Publication number
- DE10297494T5 DE10297494T5 DE10297494T DE10297494T DE10297494T5 DE 10297494 T5 DE10297494 T5 DE 10297494T5 DE 10297494 T DE10297494 T DE 10297494T DE 10297494 T DE10297494 T DE 10297494T DE 10297494 T5 DE10297494 T5 DE 10297494T5
- Authority
- DE
- Germany
- Prior art keywords
- memory
- page
- access
- security
- security attribute
- 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.)
- Withdrawn
Links
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- 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)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Host-Brücke (404)
mit:
einer Speichersteuerung (1304), die zur Verbindung mit einem Speicher (406), der in mehreren Speicherseiten organisierte Daten gespeichert hat, ausgebildet ist, wobei die Speichersteuerung (1304) angeschlossen ist, um Speicherzugriffssignale zu empfangen, und wobei die Speichersteuerung (1304) ausgebildet ist, um auf die Speicherzugriffssignale durch Zugreifen auf den Speicher (406) zu reagieren; und
einer Sicherheitsprüfeinheit (418), die angeschlossen ist, um die Speicherzugriffssignale zu empfangen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten, und wobei die Sicherheitsprüfeinheit (418) ausgebildet ist, die physikalische Adresse zu verwenden, um auf mindestens eine Sicherheitsattributdatenstruktur, die in dem Speicher (406) angeordnet ist, zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten, und wobei Sicherheitsprüfeinheit (418) ausgebildet ist, die Speicherzugriffssignale für die Speichersteuerung (1304) in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite bereit zu stellen.
einer Speichersteuerung (1304), die zur Verbindung mit einem Speicher (406), der in mehreren Speicherseiten organisierte Daten gespeichert hat, ausgebildet ist, wobei die Speichersteuerung (1304) angeschlossen ist, um Speicherzugriffssignale zu empfangen, und wobei die Speichersteuerung (1304) ausgebildet ist, um auf die Speicherzugriffssignale durch Zugreifen auf den Speicher (406) zu reagieren; und
einer Sicherheitsprüfeinheit (418), die angeschlossen ist, um die Speicherzugriffssignale zu empfangen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten, und wobei die Sicherheitsprüfeinheit (418) ausgebildet ist, die physikalische Adresse zu verwenden, um auf mindestens eine Sicherheitsattributdatenstruktur, die in dem Speicher (406) angeordnet ist, zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten, und wobei Sicherheitsprüfeinheit (418) ausgebildet ist, die Speicherzugriffssignale für die Speichersteuerung (1304) in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite bereit zu stellen.
Description
- TECHNISCHES GEBIET
- Diese Erfindung betrifft im Allgemeinen Speicherverwaltungssysteme und Verfahren und betrifft insbesondere Speicherverwaltungssysteme und Verfahren, die Schutz für in einem Speicher gespeicherte Daten bieten.
- STAND DER TECHNIK
- Ein typisches Computersystem beinhaltet eine Speicherhierarchie, um ein relativ hohes Maß an Leistungsfähigkeit bei relativ geringen Kosten zu erreichen. Anweisungen diverser unterschiedlicher Softwareprogramme sind typischerweise in einer relativ großen aber langsamen nichtflüchtigen Speichereinheit (beispielsweise einer Diskettenlaufwerkseinheit) gespeichert. Wenn ein Anwender eines der Programme für die Abarbeitung auswählt, werden die Anweisungen bzw. Instruktionen des ausgewählten Programms in eine Hauptspeichereinheit (beispielsweise ein Speicher mit wahlfreiem Zugriff (RAM)) kopiert, und eine zentrale Recheneinheit (CPU) erhält die Instruktionen des ausgewählten Programms von der Hauptspeichereinheit. Eine gut bekannte virtuelle Speicherverwaltungstechnik ermöglicht es der CPU, auf Datenstrukturen zuzugreifen, die größer sind als die Struktur der Hauptspeichereinheit, indem lediglich ein Teil der Datenstrukturen zu einer gegebenen Zeit in der Hauptspeichereinheit gespeichert wird. Der Rest der Datenstrukturen wird in der relativ großen aber langsamen nicht flüchtigen Speichereinheit gespeichert und wird lediglich bei Bedarf in die Hauptspeichereinheit kopiert.
- Ein virtueller Speicher wird typischerweise so eingerichtet, dass ein Adressenraum der CPU in mehrere Blöcke aufgeteilt wird, die als Rahmen oder „Seiten" bezeichnet werden. Lediglich solche Daten, die einem Teil der Seiten entsprechen, werden in der Hauptspeichereinheit zu einer gegebenen Zeit gespeichert. Wenn die CPU eine Adresse innerhalb einer gegebenen Seite erzeugt, und eine Kopie dieser Seite nicht in der Hauptspeichereinheit vorhanden ist, wird die angeforderte Seite mit den Daten aus der relativ großen aber langsamen nichtflüchtigen Speichereinheit in die Hauptspeichereinheit kopiert. Während dieses Vorganges kann eine weitere Seite mit Daten von der Hauptspeichereinheit in die nichtflüchtige Speichereinheit kopiert werden, um für die geforderte Seite Platz zu schaffen.
- Die populäre 80x86 (x86) Prozessorarchitektur enthält spezialisierte Hardwareelemente, um einen geschützten virtuellen Adressenmodus (d. h. einen geschützten Modus) zu unterstützen.
1 bis3 werden nunmehr benutzt, um zu beschreiben, wie ein x86-Prozessor sowohl einen virtuellen Speicher als auch Speicherschutzmerkmale implementiert.1 ist ein Diagramm eines gut bekannten Mechanismus100 zur Überführung einer linearen in eine physikalischen Adresse der x86-Prozessorarchitektur. Es ist ein Adressenüberführungsmechanismus100 in einem x86-Prozessor eingerichtet und beinhaltet eine lineare Adresse102 , die in dem x86-Prozessor erzeugt wird, ein Seitentabellenverzeichnis (d. h. ein Seitenverzeichnis)104 , mehrere Seitentabellen mit einer Seitentabelle106 , mehrere Seitenrahmen mit einem Seitenrahmen108 und ein Steuerregister (CR3)110 . Das Seitenverzeichnis104 und die mehreren Seitentabellen sind in seitenunterteilte Speicherdatenstrukturen eingeteilt, die von der Betriebssystemsoftware (d. h. einem Betriebssystem) erzeugt und verwaltet werden. Das Seitenverzeichnis104 ist stets in dem Speicher (beispielsweise der Hauptspeichereinheit) angeordnet. Der Einfachheit halber wird angenommen, dass die Seitentabelle106 und der Seitenrahmen108 ebenfalls in dem Speicher angeordnet sind. - Wie in
1 dargestellt ist, ist die lineare Adresse102 in drei Bereiche unterteilt, um den Übergang von der linearen zur physikalischen Adresse zu bewerkstelligen. Die höherwertigsten Bits des CR3110 werden verwendet, um ein Seitenverzeichnisbasisregister zu speichern. Das Seitenverzeichnisbasisregister ist eine Basisadresse einer Speicherseite, die das Seitenverzeichnis104 enthält. Das Seitenverzeichnis104 enthält mehrere Seitenverzeichnisseinträge, zu denen ein Seitenverzeichniseintrag112 gehört. Ein oberer „Verzeichnisindex-" Bereich der linearen Adresse102 , der die höherwertigsten oder signifikantesten Bits der linearen Adresse102 enthält, wird als ein Index für das Seitenverzeichnis104 verwendet. Der Seitenverzeichniseintrag112 wird aus dem Seitenverzeichnis104 ausgewählt, wobei die Seitenverzeichnisbasisadresse des CR3110 und der obere "Verzeichnisindex-" Bereich der linearen Adresse102 verwendet werden. -
2 ist eine Ansicht eines Seitenverzeichniseintragsformats200 der x86-Prozessorarchitekur. Wie in2 dargestellt ist, enthalten die höherwertigsten (d. h. die signifikantesten) Bits eines gegebenen Seitenverzeichniseintrages eine Seitentabellenbasisadresse, wobei die Seitentabellenbasisadresse eine Basisadresse einer Speicherseite ist, die eine entsprechende Seitentabelle enthält. Die Seitentabellebasisadresse des Seitenverzeichniseintrags112 wird verwendet, um die entsprechende Seitentabelle106 auszuwählen. - Es sei nun wieder auf
1 verwiesen; die Seitentabelle106 enthält mehrere Seitentabelleneinträge, zu denen ein Seitentabelleneintrag114 gehört. Ein mittlerer "Tabellenindex-" Bereich der linearen Adresse102 wird als ein Index für die Seitentabelle106 verwendet, wodurch der Seitentabelleneintrag114 ausgewählt wird.3 ist eine Ansicht eines Seitentabelleneintragsformats300 der x86-Prozessorarchitektur. Wie in3 dargestellt ist, enthalten die höherwertigsten (d. h. die signifikantesten) Bits eines gegebenen Seitentabelleneintrags eine Seitenrahmenbasisadresse, wobei die Seitenrahmenbasisadresse eine Rahmenadresse eines entsprechenden Seitenrahmens ist. - Es sei wieder auf
1 verwiesen; die Seitenrahmenbasisadresse des Seitentabelleneintrags114 wird verwendet, um den entsprechenden Seitenrahmen108 auszuwählen. Der Seitenrahmen108 enthält mehrere Speicherplätze. Ein unterer oder "Offset"-Bereich der linearen Adresse102 wird als ein Index für den Seitenrahmen108 verwendet. In kombinierter Form bilden die Seitenrahmenbasisadresse des Seitentabelleneintrags114 und der Offset-Bereich der linearen Adresse102 die physikalische Adresse entsprechend der linearen Adresse102 und bezeichnen einen Speicherplatz116 innerhalb des Seitenrahmens108 . Der Speicherplatz116 besitzt die physikalische Adresse, die aus dem Vorgang der Überführung der linearen in die physikalische Adresse resultiert. - Im Hinblick auf die Speicherschutzmerkmale besitzt das Seitenverzeichniseintragsformat
200 aus2 und das Seitentabelleneintragsformat300 aus3 ein Anwender/übergeordnete Ebene- (U/S) Bit und ein Lese/Schreib-(R/W) Bit. Der Inhalt der U/S und R/W-Bits wird von dem Betriebssystem verwendet, um die entsprechenden Seitenrahmen (d. h. Speicherseiten) vor einem nicht autorisierten Zugriff zu schützen. U/S = 0 wird angewendet, um Betriebssystemspeicherseiten zu kennzeichnen und entspricht ferner einer "Überwachungs- bzw. übergeordneten" Ebene des Betriebssystems. Die übergeordnete Ebene des Betriebssystems entspricht einer momentanen Privilegebene 0 (CPL0) von Softwareprogrammen und Routinen, die von dem x86-Prozessor ausgeführt werden. U/S > 0 (d. h., U/S = 1, 2 oder 3) wird verwendet, um Anwenderspeicherseiten zu bezeichnen und entspricht einer "Anwender-" Ebene des Betriebssystems. - Das R/W-Bit wird verwendet, um Zugriffsarten zu bezeichnen, die für die entsprechende Speicherseite zulässig sind. R/W = 0 zeigt an, dass lediglich Lesezugriffe für die entsprechende Speicherseite zulässig sind (d. h. die entsprechende Seite ist "nur lesbar"). R/W = 1 zeigt an, dass sowohl Lese- als auch Schreibezugriffe für die entsprechende Speicherseite zulässig sind (d. h. die entsprechende Speicherseite ist "lesbar/schreibbar").
- Während des Vorgangs zum Überführen der linearen in die physikalischen Adresse aus
1 werden die Inhalte der U/S-Bits des Seitenverzeichniseintrags112 und des Seitentabelleneintrags114 , die dem Seitenrahmen108 entsprechen, logisch UNDverknüpft, um zu bestimmen, ob der Zugriff auf den Seitenrahmen108 autorisiert ist. In ähnlicher Weise werden die Inhalte der R/W-Bits des Seitenverzeichniseintrags112 und des Seitentabelleneintrags114 logisch UND- verknüpft, um zu bestimmen, ob der Zugriff auf den Seitenrahmen108 autorisiert ist. Wenn die logischen Kombinationen der U/S- und R/W-Bits anzeigen, dass der Zugriff auf den Seitenrahmen108 autorisiert ist, wird auf den Speicherplatz116 unter Anwendung der physikalischen Adresse zugegriffen. Wenn andererseits die logischen Verknüpfungen der U/S- und R/W-Bits anzeigen, dass der Zugriff auf den Seitenrahmen108 nicht autorisiert ist, wird auf den Speicherplatz116 nicht zugegriffen und es wird ein Schutzfehler angezeigt. - Bedauerlicherweise sind die zuvor beschriebenen Speicherschutzmechanismen der x86-Prozessorarchitektur nicht ausreichend, um in dem Speicher gespeicherte Daten zu schützen. Beispielsweise kann ein Softwareprogramm oder eine Routine, die auf der übergeordneten Ebene (beispielsweise mit einer CPL von 0) ausgeführt wird, auf einen beliebigen Bereich des Speichers zugreifen und kann einen beliebigen Bereich des Speichers, der nicht als "nur lesbar" (R/W = 0) gekennzeichnet ist, modifizieren, d. h. in diesen schreiben). Zudem kann beim Arbeiten auf der übergeordneten Ebene das Softwareprogramm oder die Routine die Attribute (d. h. die U/S- und R/W-Bits) eines beliebigen Bereichs des Speichers ändern. Das Softwareprogramm oder die Routine kann somit einen beliebigen Bereich des Speichers ändern, der als "nur lesbar" bis "lesbar/schreibbar" (R/W = 1) gekennzeichnet ist, und kann dann ferner diesen Bereich des Speichers modifizieren.
- Die Schutzmechanismen der x86-Prozessarchitektur sind ebenso ungeeignet, um falsche oder fehlerhafte Zugriffe auf den Speicher durch Hardwaregeräte zu verhindern, die funktionsmäßig mit dem Speicher gekoppelt sind. Es ist zwar richtig, dass Bereiche des Speichers, die als "nur lesbar" bezeichnet sind, nicht durch Schreibzugriffe, die von den Hardwaregeräten initiiert werden, modifiziert werden können (ohne die Attribute jener Bereiche des Speichers, die zuerst geändert werden, wie dies zuvor beschrieben ist). Es ist auch richtig, dass Softwareprogramme oder Routinen (z. B. Gerätetreiber), die den Datentransfer zwischen Hardwaregeräten und dem Speicher handhaben, typischerweise auf Anwenderebene operieren (beispielsweise CPL3) und keinen Zugriff auf Bereiche des Speichers besitzen, die als übergeordnete Ebene gekennzeichnet sind (U/S = 0). Die Schutzmechanismen der x86-Prozessarchitektur decken jedoch lediglich Gerätezugriffe auf den Speicher ab, die als Ergebnis einer Instruktionsabarbeitung ausgeführt werden (d. h. programmierte Eingabe/Ausgabe). Ein Gerätetreiber kann ein Hardwaregerät mit einer Busbestimmungsfunktion oder einer DMA-Fähigkeit programmieren, um Daten in dem Gerät in einen beliebigen Bereich des Speichers zu übertragen, auf den von dem Hardwaregerät zugegriffen werden kann. Beispielsweise ist es relativ einfach, eine Diskettenlaufwerkssteuerung zu programmieren, um Daten von dem Diskettenlaufwerk direkt in einen Bereich des Speichers zu übertragen, der zur Speicherung des Betriebssystems verwendet wird.
- ÜBERBLICK ÜBER DIE ERFINDUNG
- Es wird eine Hauptrechner- bzw. Hostbrücke beschrieben, die eine Speichersteuerung und eine Sicherheitsprüfeinheit aufweist. Die Speichersteuerung ist ausgebildet, mit einem Speicher verbunden zu werden, der dann in mehreren Speicherseiten angeordnete Daten enthält. Die Speichersteuerung empfängt Speicherzugriffssignale (beispielsweise während eines Speicherzugriffs) und reagiert auf die Speicherzugriffssignale durch Zugriff auf den Speicher. Die Sicherheitsprüfeinheit empfängt die Speicherzugriffssignale, wobei die Speicherzugriffssignale eine physikalische Adresse für eine Zielspeicherseite enthalten. Die Sicherheitsprüfeinheit verwendet die physikalische Adresse, um auf eine oder mehrere Sicherheitsattributdatenstrukturen zuzugreifen, die in dem Speicher angeordnet sind, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten. Die Sicherheitsprüfeinheit leitet die Speicherzugriffssignale der Speichersteuerung in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite zu.
- Die eine oder mehreren Sicherheitsattributdatenstrukturen können ein Sicherheitsattributtabellenverzeichnis und eine oder mehrere Sicherheitsattributstabellen enthalten. Das Sicherheitsattributtabellenverzeichnis kann mehrere Einträge aufweisen. Jeder Eintrag des Sicherheitsattributstabellenverzeichnisses kann ein Anwesenheitsbit und ein Sicherheitsattributtabellenadressenfeld enthalten. Das Anwesenheitsbit kann kennzeichnen, ob eine Sicherheitsattributstabelle entsprechend dem Sicherheitsattributstabelleneintrag in dem Speicher vorhanden ist oder nicht. Das Sicherheitsattributsbasisadressenfeld kann für eine Basisadresse der Sicherheitsattributstabelle entsprechend dem Sicherheitsattributstabellenverzeichniseintrag reserviert sein. Die eine oder mehrere Sicherheitsattributstabellen können mehrere Einträge enthalten. Jeder Eintrag der einen oder mehreren Sicherheitsattributstabellen kann ein Sicherheitsseiten-(SP) Bit enthalten, das anzeigt, ob eine entsprechende Speicherseite eine sichere Seite ist oder nicht.
- Die Speicherzugriffssignale können mittels einer Gerätehardwareeinheit erzeugt werden, die mit der Hostbrücke gekoppelt ist. Das Sicherheitsattribut der Zielspeicherseite kann ein Sicherheitsseiten-(SP) Bit enthalten, das anzeigt, ob die Zielspeicherseite eine sichere Seite ist oder nicht. Wenn das Sicherheitsseiten-(SP) Bit anzeigt, dass die Zielspeicherseite keine sichere Seite ist, kann die Sicherheitsprüfeinheit die Speicherzugriffssignale zu der Speichersteuerung zuführen. Wenn das Sicherheitsseiten-(SP) Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist, kann der Speicherzugriff unautorisiert sind und die Sicherheitsprüfeinheit liefert die Speicherzugriffssignale nicht zu der Speichersteuerung.
- Die Speicherzugriffssignale können eine Speicherzugriffsart kennzeichnen. Beispielsweise kann die Speicherzugriffsart ein Lesezugriff oder ein Schreibzugriff sein. Wenn das Sicherheitsseiten-(SP) Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist und die Speicherzugriffssignale anzeigen, dass die Speicherzugriffsart ein Lesezugriff ist, so kann der Speicherzugriff ein unautorisierter Lesezugriff sein. In dieser Situation kann die Sicherheitsprüfeinheit auf den unautorisierten Lesezugriff reagieren, indem sie ungültige oder falsche Lesedaten bereitstellt. Die Sicherheitsprüfeinheit kann ferner auf den unautorisierten Lesezugriff reagieren, indem der unautorisierte Lesezugriff beendet wird.
- Wenn das Sicherheitsseiten-(SP) Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist und die Speicherzugriffssignale anzeigen, dass die Speicherzugriffsart ein Schreibzugriff ist, so kann der Speicherzugriff ein unautorisierter Schreibzugriff sein. Die Sicherheitsprüfeinheit kann auf den unautorisierten Schreibzugriff reagieren, indem die in den Speicherzugriffssignalen enthaltenen Schreibdaten verworfen werden. Die Sicherheitsprüfeinheit kann ferner auf den unautorisierten Schreibzugriff reagieren, indem der unautorisierte Schreibzugriff abgebrochen wird.
- Es wird ein Computersystem beschrieben mit einem Speicher, der in mehreren Speicherseiten angeordnete Daten enthält, einer Einrichtung, die mit dem Speicher funktionsmäßig verbunden und so ausgebildet ist, um Speicherzugriffssignale zu erzeugen; ferner enthält das System die zuvor beschriebene Hostbrücke. Das Computersystem kann beispielsweise eine zentrale Recheneinheit (CPU) mit einer Speicherverwaltungseinheit (MMU), die funktionsmäßig mit dem Speicher verbunden und ausgebildet ist, den Speicher zu verwalten, aufweisen. Die Speicherverwaltungseinheit (MMU) kann den Speicher so verwalten, dass der Speicher die Daten so speichert, dass sie in den mehreren Speicherseiten angeordnet sind.
- Es wird ferner ein Verfahren offenbart, um eine Zugriffssicherheit für einen Speicher bereitzustellen, der verwendet wird, um Daten in mehreren Speicherseiten zu speichern. Das Verfahren umfasst das Empfangen von Speicherzugriffssignalen, wobei die Speicherzugriffssignale eine physikalische Adresse innerhalb einer Zielspeicherseite enthalten. Die physikalische Adresse wird verwendet, um auf eine oder mehrere Sicherheitsattributsdatenstrukturen, die in dem Speicher angeordnet sind, zuzugreifen, um ein Sicherheitsattribut für die Zielspeicherseite zu erhalten. Es wird auf den Speicher unter Anwendung der Speicherzugriffssignale in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite zugegriffen.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Die Erfindung kann mit Bezug zu der folgenden Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden werden, wobei gleiche Bezugszeichen ähnliche Elemente bezeichnen und wobei:
-
1 ein Diagramm eines gut bekannten Adressenumwandlungsmechanismus von einer linearen zu einer physikalischen Adresse der x86-Prozessorarchitektur ist; -
2 eine Ansicht eines Seitenverzeichniseintragsformats der x86-Prozessorarchitektur ist; -
3 eine Ansicht eines Seitentabelleneintragsformats der x-86-Prozessorarchitektur ist; -
4 eine Ansicht einer Ausführungsform eines Computersystem mit einer CPU und einer Systems- oder "Host"-Brücke, wobei die CPU eine CPU-Sicherheitsprüfeinheit (SCU) aufweist, und wobei die Host-Brücke eine Host-Brücken-SCU aufweist; -
5 eine Ansicht ist, die die Beziehungen zwischen den diversen Hardware- und Softwarekomponenten des Computersystems aus4 zeigt; -
6 eine Ansicht einer Ausführungsform der CPU des Computersystems aus4 ist, wobei die CPU eine Speicherverwaltungseinheit (MMU) aufweist; -
7 eine Ansicht einer Ausführungsform der MMU aus6 ist, wobei die MMU eine Seitenbildungseinheit aufweist und wobei die Seitenbildungseinheit die CPU SCU aufweist; -
8 eine Ansicht einer Ausführungsform der CPU SCU aus7 ist; -
9 eine Ansicht einer Ausführungsform eines Mechanismus zum Zugreifen auf einen Eintrag einer Sicherheitsattributtabelle (SAT) einer ausgewählten Speicherseite, um zusätzliche Sicherheitsinformationen der ausgewählten Speicherseite zu erhalten ist; -
10 eine Ansicht einer Ausführungsform eines SAT-Ersatzregisters ist; -
11 ein Diagramm einer Ausführungsform eines SAT-Verzeichniseintragsformats ist; -
12 eine Ansicht einer Ausführungsform eines SAT-Eintragsformats ist; -
13 eine Ansicht einer Ausführungsform der Host-Brücke aus4 ist, wobei die Host-Brücke die Host-Brücken-SCU aufweist; -
14 eine Ansicht einer Ausführungsform der Host-Brücken-SCU aus13 ist; -
15 ein Flussdiagramm einer Ausführungsform eines ersten Verfahrens zum Bereitstellen einer Zugriffssicherheit für einen Speicher ist, der zur Speicherung von Daten verwendet wird, die in mehreren Speicherseiten angeordnet sind; und -
16 ein Flussdiagramm einer Ausführungsform eines zweiten Verfahrens ist, um eine Zugriffssicherheit für einen Speicher bereitzustellen, der zur Speicherung von Daten verwendet wird, die in mehreren Speicherseiten angeordnet sind. - Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind spezielle Ausführungsformen beispielhaft in den Zeichnungen gezeigt und sind hierin detailliert beschrieben. Es sollte jedoch selbstverständlich sein, dass die Beschreibung der speziellen Ausführungsformen nicht beabsichtigen, die Erfindung auf die speziellen offenbarten Formen einzuschränken, sondern es ist vielmehr beabsichtigt, alle Modifizierungen, Äquivalente und Alternativen, die innerhalb des Grundgedankens und Schutzbereichs der Erfindung liegen, wie sie in den angefügten Patentansprüchen definiert sind, abzudecken.
- ARTEN ZUM AUSFÜHREN DER ERFINDUNG
- Es werden nun anschauliche Ausführungsformen der Erfindung beschrieben. Im Interesse der Einfachheit werden nicht alle Merkmale einer tatsächlichen Implementierung in dieser Beschreibung dargelegt. Es ist jedoch selbstverständlich, dass bei der Entwicklung derartiger tatsächlicher Ausführungsformen zahlreiche implementationsspezifische Entscheidungen getroffen werden müssen, um die speziellen Ziele des Entwicklers zu erreichen, etwa die Verträglichkeit mit systembezogenen und geschäftsbezogenen Rahmenbedingungen, die für die einzelnen Implementierungen unterschiedlich sein können. Ferner ist anzumerken, dass der Entwicklungsaufwand komplex und zeitraubend sein kann, aber dennoch eine Routinemaßnahme für den Fachmann ist, sobald er im Besitz der vorliegenden Offenbarung ist.
-
4 ist eine Ansicht einer Ausführungsform eines Computersystem400 mit einer CPU402 , einer System- oder "Host"-Brücke404 , einem Speicher406 , einem ersten Gerätebus408 (beispielsweise einem peripheren Komponentenverbindungs- oder PCI-Bus), einer Gerätebusbrücke410 , einem zweiten Gerätebus412 (beispielsweise einem Industriestandardarchitektur- oder ISA-Bus) und vier Gerätehardwareeinheiten414a bis414d . Die Host-Brücke404 ist mit der CPU402 , dem Speicher406 und dem Gerätebus408 verbunden. Die Host-Brücke404 übersetzt Signale zwischen der CPU402 und dem Gerätebus408 und verbindet funktionsmäßig den Speicher406 mit der CPU402 und dem Gerätebus408 . Die Gerätebusbrücke410 ist zwischen den Gerätebus408 und den Gerätebus412 geschaltet und übersetzt Signale zwischen dem Gerätebus408 und dem Gerätebus412 . In der Ausführungsform aus4 sind die Gerätehardwareeinheiten414a und414b mit dem Gerätebus408 und die Gerätehardwareeinheiten414c und414d mit dem Gerätebus412 verbunden. Eine oder mehrere der Hardwaregeräteeinheiten414a bis414d können beispielsweise Speichereinrichtungen (z. B. Festplattenlaufwerke, Diskettenlaufwerke und CD-ROM-Laufwerke), Kommunikationseinrichtungen (z. B. Modems und Netzwerkadapter), oder Eingabe/Ausgabe-Einrichtungen (z. B. Videogeräte, Audiogeräte und Drucker) sein. - In der Ausführungsform aus
4 umfasst die CPU402 eine CPU-Sicherheitsprüfeinheit (SCU)416 und eine Host-Brücke404 mit einer Host-Brücken-SCU418 . Wie nachfolgend detailliert beschrieben ist, schützt die CPU SCU416 den Speicher406 vor unautorisierten Zugriffen, die von der CPU402 erzeugt werden (d. h. "softwareinitiierte Zugriffe"), und die Host-Brücken-SCU418 schützt den Speicher406 vor unautorisierten Zugriffen, die von den Gerätehardwareeinheiten414a bis414d hervorgerufen werden (d. h. "hardwareinitiierte Zugriffe"). Anzumerken ist, dass in anderen Ausführungsformen die Host-Brücke404 ein Teil der CPU402 sein kann, wie dies in4 angedeutet ist. -
5 ist eine Ansicht, die die Beziehungen zwischen den diversen Hardware- und Softwarekomponenten des Computersystems400 auf4 darstellt. In der Ausführungsform aus5 sind mehrere Anwendungsprogramme500 , ein Betriebssystem502 , ein Sicherheitskernel504 und Gerätetreiber506a bis506d in dem Speicher406 abgelegt. Die Anwendungsprogramme500 , das Betriebssystem502 , der Sicherheitskernel504 und die Gerätetreiber506a bis506d enthalten Instruktionen, die von der CPU402 abgearbeitet werden. Das Betriebssystem502 stellt eine Anwenderschnittstelle und eine Software"plattform" bereit, auf der die Anwendungsprogramme500 laufen. Das Betriebssystem502 kann ferner beispielsweise grundlegende Hilfsfunktionen einschließlich einer Dateisystemverwaltung, der Prozessablaufsverwaltung und der Eingabe/Ausgabe (I/O) Steuerung bereitstellen. - Das Betriebssystem
502 kann ferner grundlegende Sicherheitsfunktionen bereitstellen. Beispielsweise kann die CPU402 (4 ) ein x86-Prozessor sein, der die Anweisungen des x86-Instruktionssatzes ausführt. In dieser Situation kann die CPU402 spezialisierte Hardwareelemente enthalten, um sowohl eventuelle Speichereigenschaften und Speicherschutzeigenschaften in dem geschützten Modus bereitzustellen, wie dies zuvor beschrieben ist. Das Betriebssystem502 kann beispielsweise aus der Windows-Familie von Betriebssystemen (Microsoft Corp. Redmond, WA) sein, die die CPU402 in dem geschützten Modus betreiben, und die die spezialisierten Hardwareelemente der CPU402 benutzen, um sowohl einen virtuellen Speicher als auch einen Speicherschutz in dem geschützten Modus bereitzustellen. - Wie nachfolgend detaillierter beschrieben ist, liefert der Sicherheitskernel
504 zusätzliche Sicherheitsfunktionen, die über die von dem Betriebssystem502 bereitgestellten Sicherheitsfunktionen hinausgehen, um die in dem Speicher406 gespeicherten Daten vor einem unautorisierten Zugriff zu schützen. In der Ausführungsform aus5 sind die Gerätetreiber506a bis506d funktionsmäßig den entsprechenden Hardwaregeräteeinheiten414a bis414d zugeordnet und mit diesen funktionsmäßig verbunden. Die Gerätehardwareeinheiten414a und414d sind "sichere" Geräte und die entsprechenden Gerätetreiber506a und506d sind "sichere" Gerätetreiber. Der Sicherheitskernel504 ist zwischen dem Betriebssystem502 und den sicheren Gerätetreibern506a und506d angeordnet und überwacht alle Zugriffe durch die Anwendungsprogramme500 und das Betriebsystem502 auf die sicheren Gerätetreiber506a und506d und die entsprechenden sicheren Geräte414a und414d . Der Sicherheitskernel504 verhindert ferner unautorisierte Zugriffe auf die sicheren Gerätetreiber506a und506d und die entsprechenden sicheren Geräte414a und414d durch die Anwendungsprogramme500 und das Betriebssystem502 . - Wie in
5 gezeigt ist, ist der Sicherheitskernel504 mit der CPU SCU416 und der Host-Brücken-SCU418 (z. B. über einen oder mehrere Gerätetreiber) verbunden. Wie nachfolgend detailliert beschrieben ist, steuern die CPU SCU416 und die Host-Brücken-SCU418 die Zugriffe auf den Speicher406 . Die CPU SCU416 überwacht alle softwareinitiierten Zugriffe auf den Speicher406 und die Host-Brücken-SCU418 überwacht alle hardwareinitiierten Zugriffe auf den Speicher406 . Nach der Konfigurierung durch den Sicherheitskernel504 erlauben die CPU SCU416 und die Host-Brücken SCU418 lediglich autorisierte Zugriffe auf den Speicher406 . - In der Ausführungsform aus
5 sind die Gerätetreiber506b und506c "nicht sichere" Gerätetreiber und die entsprechenden Gerätehardwareeinheiten414b und414c sind "nicht sichere" Gerätehardwareeinheiten. Die Gerätetreiber506 und506c und die entsprechenden Gerätehardwareeinheiten414b und414c können beispielsweise "vererbte" Gerätetreiber und Gerätehardwareeinheiten sein. - Anzumerken ist, dass in anderen Ausführungsformen der Sicherheitskernel
504 ein Teil des Betriebssystems502 sein kann. In noch weiteren Ausführungsformen können der Sicherheitskernel504 , die Gerätetreiber506a und506d und/oder die Gerätetreiber506b und506c ein Teil des Betriebssystems502 sein. -
6 ist eine Ansicht einer Ausführungsform der CPU402 des Computersystem400 aus4 . In der Ausführungsform aus6 umfasst die CPU402 eine Ausführungseinheit600 , eine Speicherverwaltungseinheit (MMU)602 , eine Cache-Einheit bzw. Rechnerspeichereinheit604 , eine Busschnittstelleneinheit (BIU)606 , einen Satz an Steuerregistern608 und einen Satz an Sicherheitsausführungsmodus- (SEM) Registern610 . Die CPU SCU416 ist in der MMU602 enthalten. Wie nachfolgend detaillierter beschrieben ist, wird der Satz aus SEM-Register610 verwendet, um einen Sicherheitsausführungsmodus (SEM) in dem Computersystem400 aus4 einzurichten, und die Funktion der CPU SCU416 und der Host-Brücken418 wird durch den Inhalt des Satzes der SEM-Register610 gesteuert. Auf die SEM-Register610 wird durch den Sicherheitskernel504 (5 ) zugegriffen (d. h. diese werden beschrieben und/oder ausgelesen). Das Computersystem400 aus4 kann beispielsweise in dem SEM betrieben werden, wenn: (i) die CPU402 ein x86-Prozessor ist, der in dem geschützten x86-Modus arbeitet, (ii) die Seiteneinteilung des Speichers freigegeben ist und (iii) der Inhalt der SEM-Register610 den SEM-Betrieb spezifizieren. - Im Allgemeinen regelt der Inhalt des Satzes an Steuerregistern
608 den Betrieb der CPU402 . Daher regelt der Inhalt des Satzes der Steuerregister608 den Betrieb der Ausführungseinheit600 , der MMU602 , der Rechnerspeichereinheit604 und/oder der BIU606 . Der Satz aus Steuerregistern608 kann beispielsweise die mehreren Steuerregister der x86-Prozessorarchitektur enthalten. - Die Ausführungseinheit
600 der CPU402 holt Anweisungen (beispielsweise x86-Anweisungen) und Daten ab, führt die abgeholten Anweisungen aus und erzeugt Signale (z. B. Adress-, Daten- und Steuersignale) während der Ausführung der Instruktionen. Die Ausführungseinheit600 ist mit der Rechnerspeichereinheit604 verbunden und kann Anweisungen von dem Speicher406 (4 ) über die Rechnerspeichereinheit604 und die BIU606 empfangen. - Der Speicher
406 (4 ) des Computersystems400 enthält mehrere Speicherplätze, die jeweils eine einzigartige physikalische Adresse besitzen. Beim Betrieb im geschützten Modus, wobei die Seitenbildung freigegeben ist, ist ein Adressraum der CPU402 in mehrere Blöcke unterteilt, die als Seitenrahmen oder "Seiten" bezeichnet werden. Wie zuvor beschrieben ist, werden lediglich Daten, die einem Bereich der Seiten entsprechen, in dem Speicher406 zu einem gegebenen Zeitpunkt gespeichert. In der Ausführungsform aus6 repräsentieren Adressensignale, die von der Ausführungseinheit600 während der Abarbeitung der Instruktionen erzeugt werden, segmentierte (d. h. "logische") Adressen. Wie nachfolgend beschrieben ist, übersetzt die MMU602 die segmentierten Adressen, die von der Ausführungseinheit600 erzeugt werden, in entsprechende physikalische Adressen des Speichers406 . Die MMU602 liefert die physikalischen Adressen an die Rechnerspeichereinheit604 . Die Rechnerspeichereinheit604 ist eine relativ kleine Speichereinheit, die zur Speicherung von Instruktionen und Daten verwendet wird, die kurz zuvor von der Ausführungseinheit600 abgerufen wurden. Die BIU606 ist zwischen der Rechnerspeichereinheit604 und der Host-Brücke404 angeschlossen und wird verwendet, Anweisungen und Daten, die nicht in der Rechnerspeichereinheit604 vorhanden sind, von dem Speicher406 über die Host-Brücke404 abzurufen. -
7 ist eine Ansicht einer Ausführungsform der MMU602 aus6 . In der Ausführungsform aus7 umfasst die MMU602 eine Segmentierungseinheit700 , eine Seitenbildungseinheit702 und eine Auswahllogik 704 zum Auswählen zwischen Ausgängen der Segmentierungseinheit700 und der Seitenbildungseinheit 702, um eine physikalische Adresse zu erzeugen. Wie in7 gezeigt ist, empfängt die Segmentierungseinheit700 eine segmentierte Adresse von der Ausführungseinheit600 und wendet einen gut bekannten Übersetzungsmechanismus von der segmentierten zur linearen Adresse der x86-Prozessorarchitektur an, um eine entsprechende lineare Adresse an einem Ausgang zu erzeugen. Wie in7 dargestellt ist, empfängt bei Freigabe durch ein "Seitenbildungs"-Signal die Seitenbildungseinheit702 die linearen Adressen, die von der Segmentierungseinheit700 erzeugt wurden, und erzeugt entsprechende physikalische Adressen an einem Ausgang. Das Seitenbildungssignal kann das Seitenbildungsflag- (PG) Bit in einem Steuerregister0 (CR0) der x86-Prozessorarchitektur des Satzes der Steuerregister608 (6 ) wiedergeben. Wenn das Seitenbildungssignal nicht bestätigt wird, wird die Speichereinteilung in Seiten nicht freigegeben und die Auswahllogik704 erzeugt die lineare Adresse, die von der Segmentierungseinheit700 empfangen wird, als die physikalische Adresse. - Wenn das Seitenbildungssignal erkannt wird, wird die Seiteneinteilung des Speichers freigegeben und die Seitenbildungseinheit
702 übersetzt die von der Segmentierungseinheit700 empfangene lineare Adresse in eine entsprechende physikalische Adresse, wobei der zuvor beschriebene Übersetzungsmechanismus100 von linearer Adresse zur physikalischen Adresse der x86-Prozessorarchitektur (1 ) angewendet wird. Wie zuvor beschrieben ist, werden während des Übersetzungsvorganges von der linearen zur physikalischen Adresse die Inhalte der U/S-Bits des ausgewählten Seitenverzeichniseintrages und des ausgewählten Seitentabelleneintrages logisch UND-verknüpft, um zu bestimmen, ob der Zugriff auf einen Seitenrahmen autorisiert ist. In ähnlicher Weise werden die Inhalte der R/W-Bits des ausgewählten Seitenverzeichniseintrages und des ausgewählten Seitentabelleneintrages logisch UND-verknüpft, um zu bestimmen, ob der Zugriff auf den Seitenrahmen autorisiert ist. Wenn die logische Kombinierung der U/S- und R/W-Bits anzeigt, dass der Zugriff auf den Seitenrahmen autorisiert ist, erzeugt die Seitenbildungseinheit702 die physikalische Adresse, die sich aus dem Übersetzungsvorgang von der linearen in die physikalische Adresse ergeben hat. Die Auswahllogik704 empfängt die von der Seitenbildungseinheit702 erzeugte physikalische Adresse, erzeugt die von der Seitenbildungseinheit702 empfangene physikalische Adresse als die physikalische Adresse und leitet die physikalische Adresse der Rechnerspeichereinheit604 zu. - Wenn andererseits die logische Verknüpfung der U/S- und R/W-Bits anzeigt, dass der Zugriff auf den Seitenrahmen
108 nicht autorisiert ist, erzeugt die Seitenbildungseinheit702 keine physikalische Adresse während des Übersetzungsvorgangs von linearer in physikalische Adresse. Stattdessen erkennt die Seitenbildungseinheit702 ein Seitenfehlersignal und die MMU602 leitete das Seitenfehlersignal an die Ausführungseinheit600 weiter. In der x86-Prozessorarchitektur kann ein Seitenfehlersignal in einigen Fällen eine Schutzverletzung kennzeichnen. In Reaktion auf das Seitenfehlersignal kann die Ausführungseinheit600 eine Ausnahmehandhabungsroutine ausführen und kann schließlich die Ausführung eines der Anwendungsprogramme500 (5 ) anhalten, das gerade läuft, wenn das Seitenfehlersignal erkannt wurde. - In der Ausführungsform aus
7 ist die CPU SCU416 in der Seitenbildungseinheit702 der MMU602 angeordnet. Die Seitenbildungseinheit702 kann auch Übersetzungsnebenpuffer (TLB) aufweisen, um eine relativ geringe Anzahl jüngst bestimmter Übersetzungen von linearer in physikalische Adressen zu speichern. -
8 ist eine Ansicht einer Ausführungsform der CPU SCU416 aus7 . In der Ausführungsform aus8 enthält die CPU SCU416 eine Sicherheitsprüflogik800 , die mit dem Satz aus SEM-Registern610 (6 ) verbunden ist, und einen Sicherheitsattributstabellen-(SAT) Eintragspuffer802 . Wie nachfolgend beschrieben ist, gehören zu den SAT-Einträgen zusätzliche Sicherheitsinformationen über die U/S- und R/W-Bits der Seitenverzeichniseinträge und Seitentabelleneinträge, die den Speicherseiten entsprechen. Die Sicherheitsprüflogik800 verwendet die zusätzliche Sicherheitsinformation, die in einem gegebenen SAT-Eintrag enthalten ist, um unautorisierte softwareinitiierte Zugriffe auf die entsprechende Speicherseite zu verhindern. Der SAT-Eintragspuffer802 wird verwendet, um eine relativ geringe Anzahl von SAT-Einträgen von Speicherseiten zu speichern, auf die kürzlich zugegriffen wurde. - Wie zuvor beschrieben ist, wird der Satz aus SEM-Registern
610 verwendet, um einen Sicherheitsausführungsmodus (SEM) in dem Computersystem400 aus4 einzurichten. Der Inhalt des Satzes aus SEM-Registern610 regelt den Betrieb der CPU SCU416 . Die Sicherheitsprüflogik800 empfängt Informationen, die in dem SAT-Eintragspuffer802 zu speichern sind, von der MMU602 über einen Kommunikationsbus, der in8 gezeigt ist. Die Sicherheitsprüflogik800 empfängt ferner eine von der Seitenbildungseinheit702 erzeugte physikalische Adresse. - Es werden nun die
9 bis11 verwendet, um zu beschreiben, wie die zusätzliche Sicherheitsinformation von Speicherseiten, die unter Anwendung des Adressenübersetzungsmechanismus100 aus1 ausgewählt wird, in dem Computersystem400 aus4 erhalten wird.9 ist eine Ansicht einer Ausführungsform eines Mechanismus900 zum Zugreifen auf einen SAT-Eintrag einer ausgewählten Speicherseite, um eine zusätzliche Sicherheitsinformation der ausgewählten Speicherseite zu erhalten. Der Mechanismus900 aus9 kann in der Sicherheitsprüflogik800 aus4 eingerichtet werden und kann implementiert werden, wenn das Computersystem400 aus4 im SEM betrieben wird. Der Mechanismus900 enthält eine physikalische Adresse902 , die von dem Seitenbildungsmechanismus702 (7 ) unter Anwendung des Adressenübersetzungsmechanismus100 aus1 erzeugt wurde, ein SAT-Verzeichnis904 , mehrere SAT's mit einer SAT906 und ein SAT-Basisadressenregister908 aus dem Satz aus SEM-Registern610 . Das SAT-Verzeichnis104 und die mehreren SAT's mit der SAT906 sind SEM-Datenstrukturen, die von dem Sicherheitskernel504 erzeugt und bewahrt werden (5 ). Wie nachfolgend beschrieben ist, wird das SAT-Verzeichnis104 (falls es vorhanden ist) und eine beliebige benötigte SAT in den Speicher406 vor einem Zugriff kopiert. - Das SAT-Basisadressenregister
908 enthält ein Anwesenheits- (P) Bit, das die Anwesenheit einer zulässigen SAT-Verzeichnisadresse innerhalb des SAT-Basisadressenregister908 anzeigt. Die höchstrangigen (d. h. signifikantesten) Bits des SAT-Basisadressenregister908 sind für die SAT-Verzeichnisbasisadresse reserviert. Die SAT-Verzeichnisbasisadresse ist eine Basisadresse einer Speicherseite, die das SAT-Verzeichnis904 enthält. Wenn P = 1, ist die SAT-Verzeichnisbasisadresse zulässig und die SAT-Tabellen spezifizieren die Sicherheitsattribute von Speicherseiten. Wenn P = 0, ist die SAT-Verzeichnisbasisadresse nicht zulässig, es gibt keine SAT-Tabellen und Sicherheitsattribute der Speicherseite werden mittels eines SAT-Ersatzregisters bestimmt. -
10 ist eine Ansicht einer Ausführungsform des SAT-Ersatzregisters1000 . In der Ausführungsform aus10 enthält das SAT-Ersatzregister1000 ein Sicherheitsseiten(SP) Bit. Das SP-Bit zeigt an, ob alle Speicherseiten sichere Seiten sind oder nicht. Wenn beispielsweise SP = 0, sind unter Umständen nicht alle Speicherseiten sichere Seiten, und wenn SP = 1, sind alle Speicherseiten sichere Seiten. - Es sei nun wieder auf
9 verwiesen und angenommen, dass das P-Bit des SAT-Basisadressenregisters908 eine "1" ist, so wird die physikalische Adresse902 , die von de Seitenbildungseinheit702 (7 ) erzeugt wird, in drei Bereiche unterteilt, um auf den SAT-Eintrag der ausgewählten Speicherseite zuzugreifen. Wie zuvor beschrieben ist, ist die SAT-Verzeichnisbasisadresse des SAT-Basisadressenregisters908 die Basisadresse der Speicherseite, die das SAT-Verzeichnis904 enthält. Das SAT-Verzeichnis904 enthält mehrere SAT-Verzeichniseinträge einschließlich eines SAT-Verzeichniseintrags910 . Jeder SAT-Verzeichniseintrag kann eine entsprechende SAT in dem Speicher406 enthalten. Ein "oberer" Bereich der physikalischen Adresse902 , einschließlich der höchstrangigsten oder signifikantesten Bits der physikalischen Adresse902 , wird als ein Index für das SAT-Verzeichnis904 verwendet. Der SAT-Verzeichniseintrag910 wird aus dem SAT-Verzeichnis904 unter Anwendung der SAT-Verzeichnisbasisadresse des SAT-Basisadressenregisters908 und den oberen Bereich der physikalischen Adresse902 ausgewählt. -
11 ist eine Ansicht einer Ausführungsform eines SAT-Verzeichniseintragsformats1100 . Entsprechend11 enthält jeder SAT-Verzeichniseintrag ein Anwesenheits-(P) Bit, das die Anwesenheit einer gültigen SAT-Basisadresse in dem SAT-Verzeichniseintrag kennzeichnet. In der Ausführungsform aus11 sind die höchstrangigsten (d. h. die signifikantesten) Bits jedes SAT-Verzeichniseintrags für eine SAT-Basisadresse reserviert. Die SAT-Basisadresse ist eine Basisadresse einer Speicherseite, die eine entsprechende SAT enthält. Wenn P = 1, ist die SAT-Basisadresse zulässig und die entsprechende SAT ist in dem Speicher406 gespeichert. - Wenn P = 0, ist die SAT-Basisadresse nicht zulässig und die entsprechende SAT existiert nicht in dem Speicher
406 und muss von einer Speichereinrichtung (beispielsweise einem Laufwerk) in den Speicher406 kopiert werden. Wenn P = 0, kann die Sicherheitsprüflogik800 einen Seitenfehler einer Logik innerhalb der Seitenbildungseinheit702 anzeigen und die MMU602 kann das Seitenfehlersignal zu der Ausführungseinheit600 (6 ) weiterleiten. In Reaktion auf das Seitenfehlersignal kann die Ausführungseinheit600 eine Seitenfehlerbehandlungsroutine ausführen, die die erforderliche SAT aus der Speichereinrichtung prüft und die erforderliche SAT in dem Speicher406 ablegt. Nachdem die benötigte SAT in dem Speicher406 abgelegt ist, wird das P-Bit des entsprechenden SAT-Verzeichniseintrags "1" gesetzt und der Mechanismus900 wird fortgesetzt. - Es sei nun auf
9 verwiesen; ein "mittlerer" Bereich der physikalischen Adresse902 wird als ein Index für die SAT906 verwendet. Der SAT-Eintrag906 wird somit aus der SAT906 unter Anwendung der SAT-Basisadresse des SAT-Verzeichniseintrags910 und des mittleren Bereichs der physikalischen Adresse902 ausgewählt.12 ist eine Ansicht einer Ausführungsform eines SAT-Eintragsformats1200 . In der Ausführungsform aus12 enthält jeder SAT-Eintrag ein Sicherheitsseiten-(SP) Bit. Das SP-Bit zeigt an, ob die ausgewählte Speicherseite eine sichere Seite ist oder nicht. Wenn beispielsweise SP = 0, ist die ausgewählte Speicherseite keine sichere Seite, und wenn SP = 1, ist die ausgewählte Speicherseite eine sichere Seite. - Die BIU
606 (6 ) ruft die benötigten SEM-Datenstruktureneinträge aus dem Speicher406 ab und liefert die SEM-Datenstruktureinträge an die MMU602 weiter. Es sei auf8 verwiesen; die Sicherheitsprüflogik800 empfängt die SEM-Datenstruktureinträge von der MMU602 und der Seitenbildungseinheit702 über den Kommunikationsbus. Wie zuvor beschrieben ist, wird der SAT-Eintragspuffer802 verwendet, um ein relativ geringe Anzahl von SAT-Einträgen von Speicherseiten, auf die kürzlich zugegriffen wurde, zu speichern. Die Sicherheitsprüflogik800 speichert einen gegebenen SAT-Eintrag in dem SAT-Eintragspuffer802 zusammen mit einem "Markierungs-" Bereich der entsprechenden physikalischen Adresse. - Während eines nachfolgenden Speicherseitenzugriffs kann die Sicherheitsprüflogik
800 einen "Markierungs-" Bereich einer von der Seitenbildungseinheit702 erzeugten physikalischen Adresse mit den Markierungsbereichen von physikalischen Adressen entsprechend den SAT-Einträgen, die in dem SAT-Eintragspuffer802 abgelegt sind, vergleichen. Wenn der Markierungsbereich der physikalischen Adresse mit einem Markierungsbereich einer physikalischen Adresse übereinstimmt, die einen in dem SAT-Eintragspuffer802 gespeicherten SAT-Eintrag entspricht, kann die Sicherheitsprüflogik800 auf den SAT-Eintrag in dem SAT-Eintragspuffer802 zugreifen, wodurch kein Bedarf mehr besteht, den Prozess aus9 durchzuführen, um den SAT-Eintrag aus dem Speicher406 zu erhalten. Der Sicherheitskernel504 (5 ) modifiziert den Inhalt des SAT-Basisadressenregisters908 in der CPU402 (beispielsweise während Kontextänderungen). In Reaktion auf Modifizierungen des SAT-Basisadressenregisters908 kann die Sicherheitsprüflogik800 der CPU SCU416 den SAT-Eintragspuffer802 löschen. - Wenn das Computersystem
400 aus4 in dem SEM arbeitet, empfängt die Sicherheitsprüflogik800 die aktuelle Privilegebene (CPL) der momentan ablaufenden Aufgabe (d. h. des momentan ausgeführten Instruktionssatzes) zusammen mit dem Seitenverzeichniseintrags-(PDE) U/S-Bit, dem PDE R/W-Bit, dem Seitentabelleneintrag (PTE) U/S-Bit und dem PTE R/W-Bit einer ausgewählten Speicherseite, in der eine physikalische Adresse liegt. Die Sicherheitsprüflogik800 verwendet die obige Information zusammen mit dem SP-Bit des SAT-Eintrags entsprechend der ausgewählten Speicherseite, um zu bestimmen, ob der Zugriff auf den Speicher406 autorisiert ist. - Die CPU
402 aus6 kann ein x86-Prozessor sein und kann ein Codierungssegments-(CS) Register aufweisen, das eines der 16 Bit-Segementregister der x86-Prozessorarchitektur ist. Jedes Segmentregister bestimmt einen 64k-Block des Speichers, der als ein Segment bezeichnet wird. In dem geschützten Modus mit freigegebener Seiteneinteilung wird das CS-Register mit einem Segmentselektor geladen, der ein ausführbares Segment des Speichers406 kennzeichnet. Die höchstrangisten (d. h. die signifikantesten) Bits des Segmentselektors werden verwendet, um Informationen zu speichern, die ein Segment eines Speichers kennzeichnen, das eine nächste von der Ausführungseinheit600 der CPU402 (6 ) auszuführende Anweisung enthält. Ein Anweisungszeiger (IP) Register wird verwendet, um einen Offset bzw. Versatz in dem Segment, das von dem CS-Register bezeichnet wird, zu speichern. Das CS : IP-Paar bezeichnet somit eine segmentierte Adresse der nächsten Anweisung. Die zwei niedrigstrangigsten, d. h. wenigsten signifikanten Bits des CS-Registers werden verwendet, um einen Wert zu speichern, der eine aktuelle Privilegebene (CPL) einer momentan von der Ausführungseinheit600 ausgeführte Aufgabe bezeichnet (d. h. die CPL der aktuellen Aufgabe). - Tabelle 1 unten zeigt beispielhafte Regeln für CPU-initiierte (d. h. softwareinitiierte) Speicherzugriffe, wenn das Computersystem
400 aus4 in dem SEM arbeitet. Die CPU SCU416 (4 bis8 ) und der Sicherheitskernel504 (5 ) arbeiten zusammen, um die Regeln aus Tabelle 1 zu implementieren, wenn das Computersystem400 aus4 in dem SEM arbeitet, um eine zusätzliche Sicherheit für in dem Speicher406 bereit zu stellen, die über die von dem Betriebssystem502 (5 ) bereitgestellte Sicherheit hinausgeht. - Tabelle 1
- Beispielhafte Regeln für softwareinitiierte Speicherzugriffe, wenn das Computersystem
400 aus4 in dem SEM betrieben wird. - In der obigen Tabelle 1 ist das SP-Bit der momentan auszuführenden Anweisung das SP-Bit des SAT-Eintrags, der der Speicherseite entspricht, die die momentan auszuführende Anweisung enthält. Das U/S-Bit der ausgewählten Speicherseite ist das Ergebnis der logischen UND-Verknüpfung des PDE U/S-Bits und des PTE U/S-Bits der ausgewählten Speicherseite. Das R/W-Bit der ausgewählten Speicherseite ist das Ergebnis der logischen UND-Verknüpfung des PDE R/W-Bits und des PTE R/W-Bits der ausgewählten Speicherseite. Das Symbol "X" bezeichnet ein "beliebig": der logische Wert kann eine "0" oder "1" sein.
- Es sei wieder auf
8 verwiesen; die Sicherheitsprüflogik800 der CPU SCU416 erzeugt ein Seitenfehlersignal und ein "SEM-Sicherheitsausnahme-" Signal und liefert das Seitenfehlersignal und das SEM-Sicherheitsausnahmesignal zur einer Logik innerhalb der Seitenbildungseinheit702 . Wenn die Sicherheitsprüflogik800 das Seitenfehlersignal erkennt, leitet die MMU602 das Seitenfehlersignal zur Ausführungseinheit600 (6 ) weiter. In Reaktion auf das Seitenfehlersignal kann die Ausführungseinheit600 den gut bekannten Vektorisierungsmechanismus für die Interrupt-Diskriptortabelle (IDT) der x86-Prozessorarchitektur verwenden, um eine Seitenfehlerbehandlungsroutine abzurufen und auszuführen. - Wenn die Sicherheitsprüflogik
800 das SEM-Sicherheitsausnahmesignal erkennt, leitet die MMU602 das SEM-Sicherheitsausnahmesignal an die Ausführungseinheit600 weiter. Anders als bei normalen Prozessorausnahmeroutinen, in denen der IDT-Vektorisierungsmechanismus der x86-Prozessorarchitektur verwendet wird, kann ein anderes Vektorisierungsverfahren zur Behandlung der SEM-Sicherheitsausnahmen verwendet werden. SEM-Sicherheitsausnahmen können durch zwei Register ausgelöst werden (beispielsweise modellspezifische Register oder MSR), ähnlich wie x86 "SYSENTER" und "SYSEXIT" Anweisungen funktionieren. Die beiden Register können "Sicherheitsausnahmeeingangspunkt"- Register sein und können eine Verzweigungszieladresse für die Abarbeitung der Instruktionen sein, wenn eine SEM-Sicherheitsaufnahme auftritt. Die Sicherheitsausnahmeeintrittspunktregister können das Codierungssegment (CS) definieren, dann den Anweisungszeiger- (IP oder die 64-Bitversion RIP), den Stapelsegment- (SS) und den Stapelzeiger- (SP der die 64-Bit-Version RSP) Inhalt definieren, der bei Einsprung in eine SEM- Sicherheitsausnahmebehandlung verwendet wird. Unter Softwaresteuerung kann die Ausführungseinheit600 (6 ) die vorhergehenden SS-, SR/RSP-, EFLAGS-, CS- und IP/RIP- Werte auf einem neuen Stapel ablegen, um zu kennzeichnen, wo die Ausnahme auftrat. Zudem kann die Ausführungseinheit600 einen Fehlercode auf dem Stapel ablegen. Anzumerken ist, dass ein normaler Rücksprung von der Interrupt-(IRET) Instruktion nicht verwendet werden kann, da die vorhergehenden SS- und SP/RSP-Werte immer gesichert werden, und ein Umschalten des Stapels wird immer erreicht, selbst wenn eine Änderung in dem CPL nicht auftritt. Folglich kann eine neue Anweisung definiert werden, um einen Rücksprung aus der SEM-Sicherheitsausnahmebehandlung zu bewerkstelligen. -
13 ist eine Ansicht einer Ausführungsform der Host-Brücke404 aus4 . In der Ausführungsform aus13 umfasst die Host-Brücke404 eine Host-Schnittstelle1300 , eine Brückenlogik1302 , eine Host-Brücken SCU418 , eine Speichersteuerung1304 und eine Gerätebusschnittstelle1306 . Die Host-Schnittstelle1300 ist mit der CPU402 verbunden und die Gerätebusschnittstelle ist mit dem Gerätebus408 verbunden. Die Brückenlogik1302 ist mit der Host-Schnittstelle1300 und der Geräteschnittstelle1306 verbunden. Die Speichersteuerung1304 ist mit dem Speicher406 verbunden und führt alle Zugriffe auf den Speicher406 aus. Die Host-Brücken SCU418 ist zwischen der Brückenlogik1302 und der Speichersteuerung1304 angeordnet. Wie zuvor beschrieben ist, steuert die Host-Brücken SCU418 den Zugriff auf den Speicher406 über die Gerätebusschnittstelle1306 . Die Host-Brücken SCU418 überwacht alle Zugriffe auf den Speicher406 über die Gerätebusschnittstelle1306 und erlaubt lediglich autorisierte Zugriffe auf den Speicher406 . -
14 ist eine Ansicht einer Ausführungsform der Host-Brücken SCU418 aus13 . In der Ausführungsform aus14 umfasst die Host-Brücken SCU418 eine Sicherheitsprüflogik1400 1402 verbunden ist, und einen SAT-Eintragspuffer1404 . Der Satz aus SEM-Registern1402 regelt den Betrieb der Sicherheitsprüflogik1400 und umfasst ein zweites SAT-Basisadressenregister908 aus9 . Das zweite SAT-Basisadressenregister908 aus dem Satz aus SEM-Registern1402 kann ein adressierbares Register sein. Wenn der Sicherheitskernel504 (5 ) den Inhalt des SAT-Basisadressenregisters908 in dem Satz aus SEM-Registern610 der CPU402 modifiziert (beispielsweise während einer Kontextänderung), kann der Sicherheitskernel504 den gleichen Wert in das zweite SAT-Basisadressenregister908 in dem Satz aus SEM-Registern1402 der Host-Brücken SCU418 schreiben. In Reaktion auf Modifizierungen des zweiten SAT-Basisadressenregisters908 kann die Sicherheitsprüflogik1400 der Host-Brücken SCU418 den SAT-Eintragspuffer1404 löschen. - Die Sicherheitsprüflogik
1400 empfängt Speicherzugriffssignale von Speicherzugriffen, die durch die Hardwaregeräteeinheiten414a bis414d (4 ) initiiert werden, über die Gerätebusschnittstelle1306 und die Brückenlogik1302 (13 ). Die Speicherzugriffssignale enthalten physikalische Adressen von den Hardwaregeräteeinheiten414a bis414d , und zugeordnete Steuer- und/oder Datensignale. Die Sicherheitsprüflogik1400 kann den Mechanismus900 (9 ) enthalten, um die SAT-Einträge entsprechender Speicherseiten zu ermitteln, und kann den Mechanismus900 implementieren, wenn das Computersystem400 aus4 in dem SEM arbeitet. Der SAT-Eintragspuffer1404 ist ähnlich zu dem SAT-Eintragspuffer802 der CPU SCU416 (8 ), die zuvor beschrieben ist, und wird verwendet, um eine relativ geringe Anzahl von SAT-Einträgen von Speicherseiten zu speichern, auf die kürzlich zugegriffen wurde. - Wenn das Computersystem
400 aus4 in dem SEM arbeitet, verwendet die Sicherheitsprüflogik1400 aus14 zusätzliche Sicherheitsinformationen eines SAT-Eintrags, der mit einer ausgewählten Speicherseite verknüpft ist, um zu bestimmen, ob ein gegebener hardwareinitiierter Speicherzugriff autorisiert ist. Wenn der vorliegende hardwareinitiierte Speicherzugriff autorisiert ist, liefert die Sicherheitsprüflogik1400 die Speicherzugriffssignale (d. h. Adressensignale, die eine physikalische Adresse beinhalten und die dazugehörigen Steuer- und/oder Datensignale) des Speicherzugriffs zu der Speichersteuerung1304 . Die Speichersteuerung1304 verwendet die physikalische Adresse und die zugeordneten Steuer- und/oder Datensignale, um auf den Speicher406 zuzugreifen. Wenn der Zugriff auf den Speicher406 ein Schreibzugriff ist, werden die von den Datensignalen transportierten Daten in den Speicher406 geschrieben. Wenn der Zugriff auf den Speicher406 ein Lesezugriff ist, liest die Speichersteuerung1304 Daten aus dem Speicher406 aus und liefert die gewonnenen ausgelesenen Daten an die Sicherheitsprüflogik1400 weiter. Die Sicherheitsprüflogik1400 leitet die ausgelesenen Daten zu der Brückenlogik1302 weiter und die Brückenlogik1302 liefert die Daten zu der Gerätebusschnittstelle1306 . - Wenn andererseits der vorliegende hardwareinitiierte Speicherzugriff nicht autorisiert ist, stellt die Sicherheitsprüflogik
1400 die physikalische Adresse und die zugeordneten Steuer- und/oder Datensignale aus den Zugriffen des Speichers406 nicht für die Speichersteuerung1304 bereit. Wenn der nicht autorisierte hardwareinitiierte Speicherzugriff ein Speicherschreibzugriff ist, kann die Sicherheitsprüflogik1400 das Ende des Schreibzugriffes anzeigen und die Schreibdaten verwerten, wodurch der Speicher406 ungeäundert bleibt. Die Sicherheitsprüflogik1400 kann ferner einen Aufzeichnungseintrag in einer Registrierung erzeugen (beispielweise ein oder mehrere Bits eines Statusregisters setzen oder zurücksetzen), um die Sicherheitszugriffsverletzung zu dokumentieren. Der Sicherheitskernel504 kann periodisch auf die Aufzeichnung zugreifen, um derartige Aufzeichnungseinträge zu überprüfen. Wenn der nicht autorisierte hardwareinitiierte Speicherzugriff ein Speicherlesezugriff ist, kann die Sicherheitsprüflogik1400 ein falsches Ergebnis (beispielsweise nur die Ziffern "F") an die Gerätebusschnittstelle1306 über die Brückenlogik1302 als die ausgelesenen Daten zurückgeben. Die Sicherheitsprüflogik1400 kann ferner einen Aufzeichnungseintrag in der oben beschriebenen Weise erzeugen, um die Sicherheitszugriffsverletzung zu dokumentieren. -
15 ist ein Flussdiagramm einer Ausführungsform eines Verfahrens 1500 zum Bereitstellen einer Zugriffssicherheit für einen Speicher, der zur Speicherung von Daten verwendet wird, die in mehreren Speicherseiten angeordnet sind. Das Verfahren1500 gibt die beispielhaften Regeln aus Tabelle 1 für CPU-initiierte (d. h. softwareinitiierte) Speicherzugriffe wieder, wenn das Computersystem400 aus4 in dem SEM betrieben wird. Das Verfahren1500 kann in der MMU602 (6 bis7 ) eingerichtet sein. Während eines Schritts1502 des Verfahrens1500 wird eine während der Abarbeitung einer Anweisung erzeugte lineare Adresse zusammen mit einem Sicherheitsattribut der Anweisung (beispielsweise ein CPL einer Aufgabe, die die Anweisung enthält) empfangen. Die Anweisung liegt in einer Speicherseite. Während eines Schritts 1504 wird die lineare Adresse verwendet, um auf mindestens eine in Speicherseiten organisierte Datenstruktur, die in dem Speicher angeordnet ist (beispielsweise ein Seitenverzeichnis oder eine Seitentabelle) zuzugreifen, um eine Basisadresse einer ausgewählten Speicherseite und Sicherheitsattribute der ausgewählten Speicherseite zu erhalten. Die Sicherheitsattribute der ausgewählten Speicherseite können beispielsweise ein U/S-Bit und ein R/W-Bit eines Seitenverzeichniseintrages und ein U/S-Bit und ein R/W-Bit eines Seitentabelleneintrags enthalten. - Während eines Entscheidungsschritts
1506 werden das Sicherheitsattribut der Anweisung und die Sicherheitsattribute der ausgewählten Speicherseite verwendet, um zu bestimmen, ob der Zugriff autorisiert ist oder nicht. Wenn der Zugriff autorisiert ist, werden die Basisadresse der ausgewählten Speicherseite und ein Offset während eines Schritts1508 kombiniert, um eine physikalische Adresse in der ausgewählten Speicherseite zu erzeugen. Wenn der Zugriff nicht autorisiert ist, wird ein Fehlersignal (beispielsweise ein Seitenfehlersignal) während eines Schritts1510 erzeugt. - Während eines Schritts
1512 , der auf den Schritt1508 folgt, wird auf mindestens eine Sicherheitsattributdatenstruktur, die in dem Speicher angeordnet ist (beispielsweise das SAT-Verzeichnis904 aus9 und eine SAT) zugegriffen, wobei die physikalische Adresse der ausgewählten Speicherseite verwendet wird, um ein zusätzliches Sicherheitsattribut der ersten Speicherseite und ein zusätzliches Sicherheitsattribut der ausgewählten Speicherseite zu erhalten. Das zusätzliche Sicherheitsattribut der ersten Speicherseite kann beispielsweise ein Sicherheitsseiten-(ISP) Bit enthalten, wie es zuvor beschrieben ist, wobei das SP-Bit anzeigt, ob die erste Speicherseite eine sichere Seite ist oder nicht. In ähnlicher Weise kann das zusätzliche Sicherheitsattribut der ausgewählten Speicherseite ein Sicherheitsseiten-(SP) Bit enthalten, wobei das SP-Bit anzeigt, ob die ausgewählte Speicherseite eine sichere Seite ist oder nicht. - Das Fehlersignal wird während eines Schritts
1514 in Abhängigkeit des Sicherheitsattributs der Anweisung, des zusätzlichen Sicherheitsattributs der ersten Speicherseite, der Sicherheitsattribute der ausgewählten Speicherseite und des zusätzlichen Sicherheitsattributs der ausgewählten Speicherseite erzeugt. Anzumerken ist, dass die Schritte1512 und1514 des Verfahrens1500 in der CPU CSU416 (4 bis8 ) eingerichtet werden können. - Die folgende Tabelle 2 zeigt beispielhafte Regeln für Speicherseitenzugriffe, die von den Gerätehardwareeinheiten
414a bis414d initiiert werden (d. h. hardwareinitiierte Speicherzugriffe), wenn das Computersystem400 aus4 in dem SEM betrieben wird. Derartige hardwareinitiierte Speicherzugriffe können von einer Bussteuerschaltung innerhalb der Gerätehardwareeinheiten414a bis414d initiiert werden, oder durch DMA-Geräte auf Anforderung der Gerätehardwareeinheiten414a bis414d . Die Sicherheitsprüflogik1400 kann die Regeln aus Tabelle 2 einrichten, wenn das Computersystem aus4 in dem SEM betrieben wird, um eine zusätzliche Sicherheit für in dem Speicher406 gespeicherte Daten bereitzustellen, die über die von dem Betriebssystem502 (5 ) bereitgestellte Sicherheit hinausgeht. In der folgenden Tabelle 2 ist die "Ziel"-Speicherseite die Speicherseite, innerhalb derer eine physikalische Adresse liegt, die von Speicherzugriffssignalen eines Speicherzugriffes transportiert wird. - Tabelle 2
- Beispielhafte Regeln für hardwareinitiierte Speicherzugriffe, wenn das Computersystem
400 aus4 in SEM arbeitet. - In der Tabelle 2 oben kann das SP-Bit der Zielspeicherseite durch die Host-Brücken SCU
418 erhalten werden, indem die physikalische Adresse des Speicherzugriffs und der zuvor beschriebenen Mechanismus900 aus9 zum Erhalten von SAT-Einträgen entsprechender Speicherseiten verwendet wird. - Wie in
2 angezeigt ist, wenn SP = 1 ist, wobei die Zielspeicherseite als eine sichere Seite bezeichnet wird, ist der Speicherzugriff nicht autorisiert. In dieser Situation liefert die Sicherheitsprüflogik1400 (14 ) keine Speicherzugriffsignale an die Speichersteuerung. Ein Teil der Speicherzugriffssignale (beispielsweise die Steuersignale) kennzeichnen die Art des Speicherzugriffs, wobei die Speicherzugriffsart ein Lesezugriff oder ein Schreibzugriff ist. Wenn SP = 1 und die Speicherzugriffssignale an die Speicherzugriffsart als einen Lesezugriff kennzeichnen, ist der Speicherzugriff ein nicht autorisierter Lesezugriff und die Sicherheitslogik1400 reagiert auf den unautorisierten Lesezugriff, indem nur "F" anstelle des tatsächlichen Speicherinhalts bereitgestellt werden (d. h. falsche Lesedaten). Die Sicherheitsprüflogik1400 kann auch auf den unautorisierten Lesezugriff reagieren, indem der unautorisierte Lesezugriff in der oben beschriebenen Weise registriert wird. - Wenn SP = 1 und die Speicherzugriffssignale die Speicherzugriffsart als einen Schreibzugriff kennzeichnen, ist der Speicherzugriff ein unautorisierter Schreibzugriff. In dieser Situation reagiert die Sicherheitsprüflogik
1400 auf den unautorisierten Schreibzugriff durch Verwerten der Schreibdaten, die von den Speicherzugriffssignalen transportiert werden. Die Sicherheitsprüflogik1400 kann ferner auf den unautorisierten Schreibzugriff durch Registrieren des unautorisierten Schreibzugriffs in der oben beschriebenen Weise reagieren -
16 ist ein Flussdiagramm einer Ausführungsform eines Verfahrens 1600 zum Bereitstellen einer Zugriffssicherheit für einen Speicher, der zum Speichern von Daten verwendet wird, die in mehreren Speicherseiten organisiert sind. Das Verfahren1600 reflektiert die beispielhaften Regeln aus Tabelle 2 für hardwareinitiierte Speicherzugriffe, wenn das Computersystem400 aus4 in dem SEM betrieben wird. Das Verfahren1600 kann in der Host-Brücke404 (4 und13 bis14 ) eingerichtet sein. Während eines Schritts1602 des Verfahrens1600 werden Speicherzugriffssignale eines Speicherzugriffs empfangen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten. Wie zuvor beschrieben ist, können die Speicherzugriffssignale durch eine Gerätehardwareeinheit erzeugt werden. Die physikalische Adresse wird verwendet, um auf mindestens eine Sicherheitsattributsdatenstruktur zuzugreifen, die in dem Speicher angeordnet ist, um ein Sicherheitsattribut der Zielspeicherseite während eines Schritts1604 zu erhalten. Die mindestens eine Sicherheitsattributsdatenstruktur kann beispielsweise ein SAT-Verzeichnis (beispielsweise das SAT-Verzeichnis904 in9 ) und mindestens eine SAT (beispielsweise die SAT906 in9 ) enthalten, und das zusätzliche Sicherheitsattribut der Zielspeicherseite kann ein Sicherheitsseiten- (SP) Bit enthalten, wie es zuvor beschrieben ist, das anzeigt, ob die Zielspeicherseite eine sichere Seite ist oder nicht. Während eines Schritts1606 wird auf den Speicher unter Anwendung der Speicherzugriffssignale in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite zugegriffen. Anzumerken ist, dass die Schritte1602 und1604 des Verfahrens1600 in der Host-Brücken SCU418 (4 und13 bis14 ) eingerichtet sein können. - Die speziellen zuvor offenbarten Ausführungsformen sind lediglich anschaulicher Natur, da die Erfindung in unterschiedlichen aber äquivalenten Weisen modifiziert und praktiziert werden kann, die dem Fachmann offensichtlich werden, wenn er in Besitz der Lehren hierin ist. Ferner sind keine Einschränkungen auf die Details des Aufbaus oder der Gestaltung, wie sie hierin gezeigt sind, beabsichtigt, sofern sie nicht in den nachfolgenden Patentansprüchen beschrieben sind. Es ist daher offensichtlich, dass die offenbarten speziellen Ausführungsformen geändert oder modifiziert werden können und dass alle derartigen Variationen als innerhalb des Grundgedankens und des Schutzbereichs der Erfindung liegend betrachtet werden. Daher ist der angestrebte Schutzbereich in den nachfolgenden Patentansprüchen festgelegt.
- Zusammenfassung
- Eine Host-Brücke umfasst eine Speichersteuerung und eine Sicherheitsprüfeinheit Die Speichersteuerung ist mit einem Speicher verbunden, der Daten enthält, die in mehreren Speicherseiten angeordnet sind. Die Speichersteuerung empfängt Speicherzugriffssignale und greift auf den Speicher Die Sicherheitsprüfeinheit empfängt die Speicherzugriffssignale, die eine physikalische Adresse in einer Zielspeicherseite enthalten. Die Sicherheitsprüfeinheit verwendet die physikalische Adresse, um auf eine oder mehrere Sicherheitsattributdatenstrukturen zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten. Die Sicherheitsprüfeinheit liefert die Speicherzugriffssignale zu der Speichersteuerung in Abhängigkeit von dem Sicherheitsattribut der Zielspeicherseite.
- Figurenbeschreibung
-
15 -
-
1502 Empfangen der linearen Adresse und des Sicherheitsattributs der Anweisung -
1504 Verwenden der linearen Adresse, um auf die in Seiten eingeteilten Speicherdatenstrukturen zuzugreifen, um Sicherheitsattribute der ausgewählten Speicherseite zu erhalten. -
1506 Zugriff autorisiert? -
1510 Erzeugen des Fehlersignals -
1508 Erzeugen der physikalischen Adresse -
1512 Verwenden der physikalischen Adresse, um auf SEM-Datenstrukturen zuzugreifen, um ein zusätzliches Sicherheitsattribut der Instruktionsspeicherseite und der ausgewählten Speicherseite zu erhalten. -
1514 Erzeugen eines Fehlersignals in Abhängigkeit des Instruktionssicherheitsattributs, des zusätzlichen Sicherheitsattributs der Instruktionsspeicherseite, der Sicherheitsattribute der ausgewählten Speicherseite und des zusätzlichen Sicherheitsattributs der ausgewählten Speicherseite. -
16 -
-
1602 Empfangen der Speicherzugriffssignale, die die physikalische Adresse in der Zielspeicherseite enthalten -
1604 Verwenden der physikalischen Adresse, um auf SEM-Datenstrukturen zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten -
1606 Zugreifen auf den Speicher unter Verwendung der Speicherzugriffssignale in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite
Claims (10)
- Host-Brücke (
404 ) mit: einer Speichersteuerung (1304 ), die zur Verbindung mit einem Speicher (406 ), der in mehreren Speicherseiten organisierte Daten gespeichert hat, ausgebildet ist, wobei die Speichersteuerung (1304 ) angeschlossen ist, um Speicherzugriffssignale zu empfangen, und wobei die Speichersteuerung (1304 ) ausgebildet ist, um auf die Speicherzugriffssignale durch Zugreifen auf den Speicher (406 ) zu reagieren; und einer Sicherheitsprüfeinheit (418 ), die angeschlossen ist, um die Speicherzugriffssignale zu empfangen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten, und wobei die Sicherheitsprüfeinheit (418 ) ausgebildet ist, die physikalische Adresse zu verwenden, um auf mindestens eine Sicherheitsattributdatenstruktur, die in dem Speicher (406 ) angeordnet ist, zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten, und wobei Sicherheitsprüfeinheit (418 ) ausgebildet ist, die Speicherzugriffssignale für die Speichersteuerung (1304 ) in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite bereit zu stellen. - Die Host-Brücke (
404 ) nach Anspruch 1, wobei die mindestens eine Sicherheitsattributsdatenstruktur ein Sicherheitsattributtabellenverzeichnis (904 ) und mindestens eine Sicherheitsattributstabelle (906 ) aufweist. - Die Host-Brücke (
404 ) nach Anspruch 2, wobei das Sicherheitsattributtabellenverzeichnis (904 ) mehrere Einträge (910 ) umfasst, und wobei jeder Eintrag (910 ) des Sicherheitsattributstabellenverzeichnisses (904 ) ein Anwesenheitsbit und ein Sicherheitsattributstabellen-(906 ) Basisadressenfeld enthält, und wobei das Anwesenheitsbit anzeigt, ob eine Sicherheitsattributstabelle (906 ) entsprechend dem Sicherheitsattributtabellenverzeichniseintrag (910 ) in dem Speicher (406 ) vorhanden ist oder nicht, und wobei das Sicherheitsattributstabellenbasisadressenfeld für eine Basisadresse der Sicherheitsattributstabelle (906 ) entsprechend dem Sicherheitsattributtabellenverzeichniseintrag (910 ) reserviert ist. - Die Host-Brücke (
404 ) nach Anspruch 1, wobei das Sicherheitsattribut der Zielspeicherseite ein Sicherheitsseiten- (SP) Bit aufweist und wobei das SP-Bit anzeigt, ob die Zielspeicherseite eine sichere Seite ist oder nicht. - Die Host-Brücke (
404 ) nach Anspruch 4, wobei, wenn das SP-Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist, der Speicherzugriff unautorisiert ist, und wobei die Sicherheitsprüfeinheit (418 ) keine Speicherzugriffssignale an die Speichersteuerung (1304 ) bereitstellt. - Die Host-Brücke (
404 ) nach Anspruch 5, wobei wenn das SP-Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist und die Speicherzugriffsignale anzeigen, dass eine Speicherzugriffsart ein Lesezugriff und/oder ein unautorisierter Lesezugriff ist, die Sicherheitsprüfeinheit (418 ) ausgebildet ist, auf den unautorisierten Lesezugriff durch Bereitstellen von falschen Lesedaten zu reagieren. - Die Host-Brücke (
404 ) nach Anspruch 5, wobei, wenn das SP-Bit anzeigt, dass die Zielspeicherseite eine sichere Seite ist und die Speicherzugriffssignale anzeigen, dass eine Speicherzugriffsart ein Schreibzugriff und/oder ein unautorisierter Schreibzugriff ist, die Sicherheitsprüfeinheit (418 ) ausgebildet ist, auf den unautorisierten Schreibzugriff durch Verwerten der Schreibdaten, die von den Speicherzugriffssignalen transportiert werden, zu reagieren. - Computersystem (
400 ) zur Verwaltung eines Speichers (406 ), dadurch gekennzeichnet, dass das Computersystem (400 ) umfasst: einen Speicher (406 ), der Daten speichert, die in mehreren Speicherseiten organisiert sind; eine Einrichtung (414a bisd ), die funktionsmäßig mit dem Speicher (406 ) verbunden und ausgebildet ist, Speicherzugriffssignale zu erzeugen; und eine Host-Brücke (404 ), die funktionsmäßig mit der Einrichtung (414a bisd ) und dem Speicher (406 ) verbunden ist, und die umfasst: eine Speichersteuerung (1304 ), die zur Verbindung mit dem Speicher (406 ), der in mehreren Speicherseiten gespeicherte Daten enthält, ausgebildet ist, wobei die Speichersteuerung (1304 ) so angeschlossen ist, um Speicherzugriffssignale zu empfangen, und wobei die Speichersteuerung (1304 ) ausgebildet ist, auf die Speicherzugriffssignale durch Zugreifen auf den Speicher (406 ) zu reagieren; und eine Sicherheitsprüfeinheit (418 ), die angeschlossen ist, um die Speicherzugriffssignale zu empfangen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten, und wobei die Sicherheitsprüfeinheit (418 ) ausgebildet ist, die physikalische Adresse zu verwenden, um auf mindestens eine Sicherheitsattributsdatenstruktur, die in dem Speicher (406 ) angeordnet ist, zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten, und wobei die Sicherheitsprüfeinheit (418 ) ausgebildet ist, die Speicherzugriffssignale für die Speichersteuerung (1304 ) in Abhängigkeit des Sicherheitsattributs der Zielspeicherseite bereit zu stellen. - Verfahren zum Bereitstellen einer Zugriffssicherheit für einen Speicher (
406 ), der zur Speicherung von Daten verwendet wird, die in mehreren Speicherseiten organisiert sind, wobei das Verfahren umfasst: Empfangen von Speicherzugriffssignalen, wobei die Speicherzugriffssignale eine physikalische Adresse in einer Zielspeicherseite enthalten; Verwenden der physikalischen Adresse, um auf mindestens eine Sicherheitsattributdatenstruktur, die in dem Speicher (406 ) angeordnet ist, zuzugreifen, um ein Sicherheitsattribut der Zielspeicherseite zu erhalten; und Zugreifen auf den Speicher (406 ) unter Anwendung der Speicherzugriffssignale in Abhängigkeit von dem Sicherheitsattribut der Zielspeicherseite. - Das Verfahren nach Anspruch 9, wobei das Verwenden der physikalischen Adresse zum Zugreifen auf mindestens eine Sicherheitsattributsdatenstruktur umfasst: Verwenden der physikalischen Adresse, um auf mindestens eine Sicherheitsattributsdatenstruktur zuzugreifen, die ein Sicherheitsattributtabellenverzeichnis (
904 ) und mindestens eine Sicherheitsattributtabelle (906 ) aufweist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/011,151 | 2001-12-05 | ||
US10/011,151 US7426644B1 (en) | 2001-12-05 | 2001-12-05 | System and method for handling device accesses to a memory providing increased memory access security |
PCT/US2002/028981 WO2003050688A2 (en) | 2001-12-05 | 2002-09-12 | System and method for handling device accesses to a memory providing increased memory access security |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10297494T5 true DE10297494T5 (de) | 2004-11-25 |
Family
ID=21749091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10297494T Withdrawn DE10297494T5 (de) | 2001-12-05 | 2002-09-12 | System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit |
Country Status (9)
Country | Link |
---|---|
US (1) | US7426644B1 (de) |
JP (1) | JP2005512228A (de) |
KR (1) | KR100995146B1 (de) |
CN (1) | CN1285038C (de) |
AU (1) | AU2002336493A1 (de) |
DE (1) | DE10297494T5 (de) |
GB (1) | GB2399920B (de) |
TW (1) | TWI262389B (de) |
WO (1) | WO2003050688A2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1619572A1 (de) * | 2004-07-23 | 2006-01-25 | Texas Instruments Incorporated | System und Verfahren um Sicherheitseinbrüche innerhalb eines Rechnersystems zu identifizieren und vorzukommen |
DE102005014837B4 (de) * | 2004-08-02 | 2007-08-30 | Mahltig, Holger | Sicherheitsmodul und Verfahren zum Steuern und Kontrollieren eines Datenverkehrs eines Personalcomputers |
JP4794269B2 (ja) * | 2004-11-08 | 2011-10-19 | パナソニック株式会社 | セキュアデバイスおよび中継端末 |
JP4628149B2 (ja) * | 2005-03-14 | 2011-02-09 | 株式会社エヌ・ティ・ティ・ドコモ | アクセス制御装置及びアクセス制御方法 |
TWI310153B (en) | 2006-08-17 | 2009-05-21 | Quanta Comp Inc | Computer system and boot code accessing method thereof |
TWI448902B (zh) * | 2007-08-24 | 2014-08-11 | Cypress Semiconductor Corp | 具頁存取基礎處理器介面之橋接裝置 |
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
TWI484334B (zh) * | 2009-12-24 | 2015-05-11 | Univ Nat Taiwan | 非揮發記憶體的區域式管理方法 |
US20110202740A1 (en) * | 2010-02-17 | 2011-08-18 | Arm Limited | Storing secure page table data in secure and non-secure regions of memory |
US8935800B2 (en) | 2012-12-31 | 2015-01-13 | Intel Corporation | Enhanced security for accessing virtual memory |
US8959576B2 (en) * | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
US9767044B2 (en) * | 2013-09-24 | 2017-09-19 | Intel Corporation | Secure memory repartitioning |
WO2015061970A1 (zh) * | 2013-10-29 | 2015-05-07 | 华为技术有限公司 | 一种访问内存的方法及设备 |
US9875189B2 (en) | 2015-06-12 | 2018-01-23 | Intel Corporation | Supporting secure memory intent |
US20170109526A1 (en) * | 2015-10-20 | 2017-04-20 | Intel Corporation | Systems and methods for providing anti-malware protection and malware forensics on storage devices |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
WO2018090201A1 (zh) | 2016-11-15 | 2018-05-24 | 华为技术有限公司 | 一种安全的处理器芯片及终端设备 |
KR20200067633A (ko) * | 2018-12-04 | 2020-06-12 | 삼성전자주식회사 | 메모리 장치 및 그것의 보안 데이터 처리 방법 |
FR3100901B1 (fr) * | 2019-09-12 | 2021-08-27 | Stmicroelectronics Grand Ouest Sas | Système de protection de la mémoire |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63752A (ja) | 1986-06-20 | 1988-01-05 | Nippon Telegr & Teleph Corp <Ntt> | メモリ保護方式 |
US5335334A (en) | 1990-08-31 | 1994-08-02 | Hitachi, Ltd. | Data processing apparatus having a real memory region with a corresponding fixed memory protection key value and method for allocating memories therefor |
US5263147A (en) * | 1991-03-01 | 1993-11-16 | Hughes Training, Inc. | System for providing high security for personal computers and workstations |
US5442704A (en) * | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
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 |
JPH10289158A (ja) | 1997-04-11 | 1998-10-27 | Hitachi Ltd | タスク管理装置 |
US6516395B1 (en) * | 1997-11-20 | 2003-02-04 | Advanced Micro Devices, Inc. | System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes |
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 |
US6745306B1 (en) * | 1999-07-29 | 2004-06-01 | Microsoft Corporation | Method and system for restricting the load of physical address translations of virtual addresses |
US7624249B2 (en) * | 2005-11-10 | 2009-11-24 | O'connor Dennis | Processor multi-partition security architecture |
-
2001
- 2001-12-05 US US10/011,151 patent/US7426644B1/en active Active
-
2002
- 2002-09-12 GB GB0414778A patent/GB2399920B/en not_active Expired - Fee Related
- 2002-09-12 CN CNB028241371A patent/CN1285038C/zh not_active Expired - Lifetime
- 2002-09-12 JP JP2003551676A patent/JP2005512228A/ja active Pending
- 2002-09-12 WO PCT/US2002/028981 patent/WO2003050688A2/en active Application Filing
- 2002-09-12 KR KR1020047008690A patent/KR100995146B1/ko not_active IP Right Cessation
- 2002-09-12 AU AU2002336493A patent/AU2002336493A1/en not_active Abandoned
- 2002-09-12 DE DE10297494T patent/DE10297494T5/de not_active Withdrawn
- 2002-11-28 TW TW091134576A patent/TWI262389B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
AU2002336493A1 (en) | 2003-06-23 |
US7426644B1 (en) | 2008-09-16 |
GB0414778D0 (en) | 2004-08-04 |
CN1285038C (zh) | 2006-11-15 |
JP2005512228A (ja) | 2005-04-28 |
GB2399920B (en) | 2005-07-06 |
GB2399920A (en) | 2004-09-29 |
WO2003050688A3 (en) | 2004-02-12 |
TW200300885A (en) | 2003-06-16 |
WO2003050688A2 (en) | 2003-06-19 |
KR100995146B1 (ko) | 2010-11-18 |
TWI262389B (en) | 2006-09-21 |
CN1599902A (zh) | 2005-03-23 |
KR20050027085A (ko) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10297433B4 (de) | Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor | |
DE10297494T5 (de) | System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit | |
DE68924720T2 (de) | Verfahren und Vorrichtung für Zugriffsrechtensteuerung. | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE112005002405B4 (de) | Fehlerverarbeitung für Direktspeicherzugriffs-Adreßübersetzung | |
DE10357804B4 (de) | Neu-Beanspruchung vorhandener Felder in Adressübersetzungsdatenstrukturen zum Erweitern der Kontrolle über Speicherzugriffe | |
DE3587694T2 (de) | Speicherzugriffssteuergerät zur Realisierung von geschützten Gebieten in einem Speicher, und mit solchem Speicherzugriffssteuergerät ausgerüsteter Speicher. | |
EP1005676B1 (de) | Verfahren zur verbesserung der steuerungsmöglichkeit in datenverarbeitungsanlagen mit adressübersetzung | |
DE69531112T2 (de) | Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer | |
DE602004011018T2 (de) | Ungültigkeitserklärung eines speichers und löschen von puffereinträgen | |
DE3889816T2 (de) | Virtuelle Ein/Ausgabebefehle. | |
DE3689209T2 (de) | Direkte Ein-- und Ausgabe in einer virtuellen Speicheranordnung. | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE3689287T2 (de) | Datenverarbeitungsgerät. | |
DE69724572T2 (de) | Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen | |
DE3688978T2 (de) | Seitenspeicherverwaltungseinheit mit der fähigkeit nach wahl mehrere adressräume zu unterstützen. | |
DE69732181T2 (de) | Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE19635204A1 (de) | Ausnahme-Sicherheitsschaltung | |
DE10297687B4 (de) | Prozessor mit Eingabe/Ausgabeerlaubnisbitstrukturen für in Bereiche aufgeteilte Sicherheit und Verfahren zum selektiven Ausführen einer Eingabe/Ausgabe-Instruktion | |
DE102020125599A1 (de) | Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu | |
DE112009000344T5 (de) | Zugriffsrechte auf eine Speicher-Map | |
DE102006015106A1 (de) | Bereitstellen eines erweiterten Speicherschutzes | |
DE2458065A1 (de) | Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff | |
DE10196440B4 (de) | Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10297494 Country of ref document: DE Date of ref document: 20041125 Kind code of ref document: P |
|
8127 | New person/name/address of the applicant |
Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
8128 | New person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |
|
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20120403 |