DE4040963A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE4040963A1
DE4040963A1 DE4040963A DE4040963A DE4040963A1 DE 4040963 A1 DE4040963 A1 DE 4040963A1 DE 4040963 A DE4040963 A DE 4040963A DE 4040963 A DE4040963 A DE 4040963A DE 4040963 A1 DE4040963 A1 DE 4040963A1
Authority
DE
Germany
Prior art keywords
page
processor
access
address
descriptor
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.)
Granted
Application number
DE4040963A
Other languages
English (en)
Other versions
DE4040963C2 (de
Inventor
Konrad K Lai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE4040963A1 publication Critical patent/DE4040963A1/de
Application granted granted Critical
Publication of DE4040963C2 publication Critical patent/DE4040963C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Description

Moderne Datenverarbeitungssysteme sind so konzipiert, daß alle Informationen innerhalb des Systems durch Hardware-er­ kannte, speicherresidente Informationsstrukturen, die Objekte genannt werden, repräsentiert sind. Dieses wird als objektori­ entierte Rechnerarchitektur bezeichnet. Ein Objekt stellt ein Datenpaket aufeinander bezogener Informationen dar, die in ei­ ner zusammenhängend adressierten Menge von Speicherplätzen ver­ waltet werden.
In einem solchen objektorientierten Datenverarbeitungssy­ stem besitzt jeder Objekttyp oder jede Objektklasse eine Anzahl von Operationen, die an Objekten ausgeführt werden dürfen, wel­ che ebenfalls zu dieser Klasse gehören. Dies wird als objektbe­ zogener Zugangsmechanismus bezeichnet. Die interne Struktur der Objekte ist dem Programmierer nicht zugänglich; er kann ledig­ lich mit erlaubten Operationen die Objekte manipulieren. Zugang zu einem Objekt erhält man mittels eines auf das Objekt gerich­ teten Zeigers, der als Zugangsdeskriptor bezeichnet wird. Die­ ser Zugangsdeskriptor beschreibt die Art der Repräsentations­ rechte (rep), wie zum Beispiel Lese- oder Schreibrechte, die die verschiedenen, vom Inhaber des Zugangsdeskriptors für das Objekt erlaubten Zugangsarten definiert.
Aus der US-PS 43 25 120 ist ein objektbezogener Zugangsme­ chanismus bekannt, in dem zwei grundsätzliche Objektarten von einem Prozessor erkannt und unterschieden werden. Die erste Art ist ein Datensegment mit gewöhnlichen Daten als Inhalt, während der zweite Typ eine Zugangsliste ist, die Zugangsdeskriptoren für den Zugang zu Informationen, d. h. zu anderen Objekten im Speicher, beinhaltet. Jeder Zugangsdeskriptor stellt Informa­ tionen bereit, die die Lokalisierung und die Bestimmung des Um­ fanges des Zugangs zu einem mit dem Zugangsdeskriptor verbun­ denen Objekt betreffen. Hierbei wird unautorisierter Zugang zu dem Speicher durch einen Schutzmechanismus kontrolliert, der den während der Erzeugung von Verweisen auf Objekte im Speicher gebrauchten Zugangsdeskriptor überprüft.
In früheren Datenverarbeitungssystemen sorgte die Rechner­ architektur für zwei Programmzustände, den Überwachungsstatus und den Problemstatus, zwischen denen der Prozessor hin- und herschaltete. Im Problemzustand sind alle privilegierten In­ struktionen (Eingabe/Ausgabe-Instruktionen, Schutzinstruktionen und eine Gruppe von Steuerinstruktionen) ungültig. Dagegen sind im Überwachungsstatus alle Instruktionen gültig. Besteht nun im Problemstatus des Rechners eine priviligierte Instruktion, so wird eine Ablaufunterbrechung der priviligierten Operation er­ kannt, das Programm unterbrochen und somit die Operation unter­ drückt. Dieser Schutz besteht gegen Zerstörung oder Mißbrauch der Inhalte von bestimmten Bereichen des Hauptspeichers. Spei­ cherplätze werden dadurch geschützt, daß Speicherblöcke mit ei­ ner Kennung (key) identifiziert werden und diese Kennung mit einem gemeinsam mit den zu speichernden Daten zugeführten Schutzschlüssel vergeglichen wird. Passen diese Kennungen nicht zueinander, so wird eine Ablaufunterbrechung erkannt, das Pro­ gramm wird unterbrochen und die Operation unterdrückt.
Die Architektur des o. g. Patentes hat die Notwendigkeit von verschiedenen Ausführungszuständen, wie dem Überwachungszustand und dem Problemzustand innerhalb des Prozessors eliminiert. Die Notwendigkeit, privilegierte Instruktionen zu haben, die ledig­ lich im Überwachungsstatus des Prozessors ausgeführt werden, entfiel. Der Speicherschutz ist vielmehr dadurch erreicht wor­ den, daß Zugang zu bestimmten Objekten und nicht zu bestimmten Speicherplätzen gewährt oder verwehrt wurde.
In einer objektorientierten Rechnerarchitektur sind Seg­ mente die Basis für jedwede Adressierung und Schutz. Ein Seg­ ment ist ein einzelner linearer Adreßbereich mit einer defi­ nierten Größe oder Länge. Diese Segmente existieren im Haupt­ speicher und sind einer Start- oder Basisadresse zugeordnet. Um nun die tatsächliche physikalische Adresse eines Datenelements innerhalb eines Segmentes oder eines Objektes zu bestimmen, fügt man die Position des Elements innerhalb des Segmentes (Distanz) zur Basisadresse des Segmentes hinzu. Die Bewegung eines Segmentes erfordert in Systemen mit segmentierter Adres­ sierung die Aktualisierung seiner Basisadresse. Hier kann die Basisadreßinformation über den Speicher und auf die Prozessor­ register verteilt werden, was bedeutet, daß beim Bewegen eines Segmentes viele Kopien seiner Basisadresse lokalisiert und ak­ tualisiert werden müssen, um die Änderung zum Ausdruck zu brin­ gen. Diesem Problem wird in der o. g. Patentschrift aus dem Wege gegangen, indem die Rechnerarchitektur alle Informationen über ein Segment zusammenbringt und diese Informationen in ei­ ner Segmenttabelle ablegt. Diese Rechnerarchitektur erfordert zudem, daß alle Referenzen auf ein Segment die notwendige Basi­ sadresse und Längeninformation aus dieser Tabelle beziehen. Jede Referenz auf das Segment hat Zugang zu dem Segmentdeskrip­ tor und erhält die korrekte und aktuelle Basisadresse und Län­ geninformation.
Um diesen Mechanismus weiter zu verfeinern, besitzt das o. g. bekannte System eine zweite Ebene der Adreßabbildung über der, die von der Segmenttabelle bereitgestellt wird. Jede Pro­ grammeinheit wird in Rechenzeit mit einer Liste von Segmentnum­ mern (Indizes für Segmentdeskriptoren) für alle eventuell für den Zugang während der Programmausführung benötigten Segmente versorgt. Dieses Programm wählt ein bestimmtes Segment, indem es einen Index in die Liste von zugänglichen Segmenten als Teil jeder Operandenadresse in einer Instruktion spezifiziert; diese Liste wird Zugangsliste genannt.
Diese Art von Mechanismus bezeichnet man als einen "leistungsbezogenen Schutzmechanismus", welcher excellenten Schutz liefert, jedoch sehr komplexe Programmierung notwendig macht.
In objektorientierten Rechnerarchitekturen gibt es den Be­ griff von priviligierten Instruktionen nicht. Eine privili­ gierte Instruktion stellt eine Instruktion dar, die lediglich ausgeführt werden kann, wenn die zentrale Prozessoreinheit (CPU) sich im Überwachungszustand befindet. Dieser Überwa­ chungszustand besteht, wenn das Überwachungsprogramm läuft, das als Kontrollprogramm die Verwendung von Betriebsmitteln koordi­ niert und den Fluß von CPU-Operationen aufrechterhält. Während des Überwachungszustandes kann das Anwenderprogramm nicht aus­ geführt werden. Das Anwenderprogramm kann lediglich ausgeführt werden wenn die zentrale Prozessoreinheit (CPU) sich im Pro­ blemzustand befindet, in dem die CPU weder Input/Output- noch andere priviligierte Instruktionen ausführen kann. Dies wird als ein "statusbezogener Schutzmechanismus" bezeichnet.
Damit ein eine objektorientierte Rechnerarchitektur unter­ stützendes modernes Datenverarbeitungssystem ebenfalls den Sta­ tusschutzmechanismus in derselben Hardware unterstützen kann, muß ein solches System mit den Betriebssystemen früherer Typen kompatibel sein, die den Überwachungs- und Benutzerzustand be­ nutzen.
Es ist daher die Aufgabe der vorliegenden Erfindung, einen Speicherzugangschutzmechanismus vorzusehen, der entweder einen leistungsbezogenen Schutzmechanismus oder einen statusbezogenen Schutzmechanismus unterstützt.
In der vorliegenden Erfindung werden Objekte nicht in zwei Grundarten unterteilt; stattdessen ist jedem im Speicher ge­ speicherten 32-Bit-Wort ein dreiunddreißigstes Bit zugeordnet, welches als Kennung (tag) bezeichnet wird. Ist dieses Kennungs­ bit auf Eins gestellt, so ist das Wort ein Zugangsdeskriptor; auf Null gestellt, ist das Wort ein Datenwort. Man braucht nun nicht mehr zwei Grundarten von Objekten, nämlich ein eine Liste von Datensegmenten beinhaltendes Objekt und ein anderes eine Liste von Zugangsdeskriptoren beinhaltendes Objekt, womit diese unterschiedlichen Listen entfallen. Im vorliegenden System hin­ gegen ist es dem Benutzer lediglich möglich, eine Operation auszuführen, die einen Zugangsdeskriptor erfordert, wenn das aus dem Speicher bezogenene Wort, das ein Zugangsdeskriptor sein soll, ein auf Eins gesetztes Kennungsbit besitzt. Ist das Kennungsbit dagegen Null, liegt ein ungültiger Zugangsdeskrip­ tor vor.
Die vorliegende Erfindung besitzt den weiteren Vorteil, daß ein auf dem Zweizustandsschutzmodell basierendes Betriebssystem ohne größere Modifikationen auf ein Computersystem übertragen werden kann, welches übereinstimmend mit den Prinzipien der vorliegenden Erfindung aufgebaut ist.
Ein weiterer Vorteil der Erfindung liegt darin, daß ein Ob­ jekt Zugangsdeskriptoren und/oder Daten enthalten kann, d. h. irgendeine binäre Information. Zugangsdeskriptoren und Daten können sich in demselben Objekt befinden und können in willkür­ licher Ordnung miteinander verzahnt werden. Der Schutzmechanis­ mus der vorliegenden Erfindung schützt die Speicherintegrität durch die Verwendung eines Kennungsbit und nicht durch die Ver­ wendung von Problem-/Überwachungszuständen vor Benutzerein­ griff.
Die oben erwähnten und andere Aufgaben, Eigenschaften und Vorteile der Erfindung werden aus den folgenden, detaillierten Ausführungsbeispielen der Erfindung und den Zeichnungen klar ersichtlich. In der Zeichnung zeigt:
Fig. 1 ein Funktionsblockschaltbild aller wichtigen Kompo­ nenten des Mikroprozessors, in welchem die Erfin­ dung realisiert ist;
Fig. 2 ein detailliertes Blockschaltbild des Prozessorre­ gisterabschnitts des Adressenumsetzpuffers (TBL) der Fig. 1 und der Systemobjekte, die die Objek­ tadressierung und den Schutz im in Fig. 1 gezeigten Hauptspeicher unterstützen;
Fig. 3 ein detailliertes Blockschaltbild der Schutzlogik von Fig. 1;
Fig. 4a-4e Abbildungen von verschiedenen Instruktions­ formaten der vorliegenden Erfindung;
Fig. 5 eine Abbildung eines Datenworts;
Fig. 6 eine Abbildung eines Zugangsdeskriptors;
Fig. 7 eine Abbildung eines virtuellen Adreßformates;
Fig. 8 eine Abbildung der Prozessorsteuerungen des Prozes­ sorsteuerblocks von Fig. 2; und
Fig. 9 eine Abbildung der Prozeßsteuerungen des Prozeß­ steuerblocks von Fig. 2.
Wie in Fig. 1 dargestellt ist, ist der Mikroprozessor lo­ gisch unterteilt in fünf größere Einheiten: die Befehlsab­ rufeinheit 2, den Befehlsdecodierer und Mikrobefehlsortierer 4, den Adressenumsetzpuffer (TLB) 8, die Bussteuereinheit 9 und die Ganzzahlausführung und Gleitpunkteinheit 6.
Die Kommunikationswege zwischen all diesen Einheiten bein­ halten einen Datenbus, einen Mikrobefehlsbus und Steuersignale, einschließlich eines "Mikrobefehl gültig"-Signales. Der Mikro­ befehlsbus steuert und synchronisiert die Aktivitäten der auto­ nomen Einheiten. Im folgenden werden all diese Einheiten kurz beschrieben.
Die Befehlsabrufeinheit (IFU) führt den Abruf, Vorabruf und die Cache-Speicherung von Befehlen aus dem Hauptspeicher zur Verwendung durch den Befehlsdecodierer (ID) durch.
Der Befehlsdecodierer (ID) decodiert und steuert die Be­ fehls(Macrocode)ausführung. Er decodiert Befehle, führt Operan­ denadressierung und -abruf aus und sorgt für die Abwicklung von Zweigbefehlen (z. B. Befehlszeigermanipulation) und emittiert entweder Ausführungsmikrobefehle oder startet Mikroprogrammab­ läufe.
Der Mikrobefehlsortierer (MIS) sortiert Mikrocodeabläufe zur Abwicklung von Initialisierung, Makrobefehle, die für die direkte Abwicklung zu komplex sind, und Ausnahme- und Unterbre­ chungsbedingungen. Dieser Mikrobefehlsortierer enthält einen Mikrocode-ROM und eine Sortierlogik für die Mikrocodeabläufe. Die durch den Mikrobefehlsortierer ausgeführten Funktionen be­ inhalten den Abruf des nächsten Mikrobefehls, die Mikropro­ grammverzweigung, die Abwicklung von Ausnahmebedingungen und in Verbindung mit dem Befehlsdecodierer (ID) die Erkennung von Ma­ krobefehlsbereichsgrenzen und die Ereignisüberwachung. Die Ganzzahlausführungseinheit (IEU) führt die meisten der durch den Befehlsdecodierer und den Mikrobefehlsortierer ausge­ gebenen Mikroinstruktionen aus. Sie enthält die für den Pro­ grammierer sichtbaren Register, vom Mikrocode benutzte Zwi­ schenregister, eine Arithmetiklogikeinheit (ALU) und die zur Befehlsausführung benötigte Logik. Die Gleitpunkteinheit (FPU) beinhaltet die zur Ausführung von Gleitpunktoperationen und Ganzzahlmultiplikation und -division benötigte Logik.
Der Adreßumsetzpuffer (TLB) führt die zum Implementieren der virtuellen Speichermechanismen benötigte Adreßumsetzung aus. Diese Adreßumsetzung und der Speicherschutz verwendet eine assoziative Tabelle von Speicherdeskriptoren und Seitentafel­ eingaben. Der Adreßumsetzpuffer (TLB) beinhaltet einen Adreßca­ che, einen Adreßaddierer und Speicherschutzüberwachungshard­ ware.
Schließlich führt die Bussteuerlogik (BCL) die Parallelbe­ arbeitung und Sortierung der externen Buszugänge durch. Sie enthält die Interface-Hardware zum externen lokalen Bus, wic­ kelt das Busprotokoll ab und erkennt externe Ereignisse (z. B. Unterbrechungen oder Initialisierungen).
Ausführungsmodi
Das System besitzt zwei Ausführungsmodi, den Benutzermodus und den Überwachungsmodus, um die effiziente Emulation von kon­ ventionellen Betriebssystemen zu unterstützen. Das System defi­ niert hierbei nicht den Begriff von privilegierten Befehlen. Alle Befehle können in beiden Modi ausgeführt werden. Ein Pro­ gramm erhält hierbei Priorität durch die Art seiner Zugangsre­ präsentations(rep)rechte und seines Ausführungsmodus. Die Sei­ tenreprechte im laufenden Linearadreßraum werden abhängig vom Ausführungsmodus verschieden interpretiert. Vom Betriebssystem benutzte Speicherung hat generell Seitenreprechte, die Be­ nutzerzugang nicht erlauben, sondern die Nur-Lese-Speicher oder Nur-Schreib-Speicher im Überwachungsmodus sein können.
In einem System ohne Kennung ist der Systemaufrufsbefehl der einzige Weg einer Änderung des Ausführungsmodus vom Benut­ zer zum Überwachungsmodus ohne, daß ein Fehler auftritt. Das Systembereichsobjekt (system domain object) beinhaltet eine Gruppe von Eingabeprozeduren für das Betriebssystem.
Der Zugangsmechanismus wird im folgenden unter Bezugnahme auf Fig. 2 beschrieben.
Ein Objekt 38 ist im Hauptspeicherraum 10 gespeichert. Ein 32-Bit-Wort im Objekt kann dabei ein dreiunddreißigstes Bit als Kennungsbit (tag bit) besitzen.
Ein Befehl 14 im Speicher kann eine Adresse 20 beinhalten, die eine virtuelle Speicheradresse für das Objekt 38 darstellt. Diese Adresse wird in einem der Prozessorregister im Register­ raum 11 des Prozessors gespeichert. Diese Adresse besitzt ein Offset 22 und einen Zugangsdeskriptor 24, wobei der Zugangsde­ skriptor 24 ein 32-Bit-Wort mit Kennung darstellt. Der Zugangs­ deskriptor wiederum beinhaltet einen Objektindex 34 und ein Rechtfeld 35. Der Objektindex sorgt für ein Offset in einer Ob­ jekttabelle 42, die Speicherdeskriptoren für im Speicher ge­ speicherte Objekte enthält, unter denen ein Objekt eine Seiten­ tafel 44 darstellt. Der Deskriptor besitzt ein codiertes Feld 50 und eine Basisadresse 52. Ein Objekt wird durch einen Ob­ jekttabelleneintrag in die Objekttabelle 42 beschrieben, die die Abbildungsinformationen für die physikalischen Adressen der Speicherblöcke und -seiten liefert, welche dann zusammen die physikalischen Objekte repräsentieren. Im Falle eines einfachen Objektes wird ein Objekt durch einen Block in einen physikali­ schen Adreßraum direkt repräsentiert. Die physikalische Basi­ sadresse 52 wird im Objekttabelleneintrag gespeichert. Somit ist dieser Eintrag 44 ein einfacher Objektdeskriptor. Die In­ formationen innerhalb eines Objekts werden durch die Verwendung eines einfachen Offset 22 in der virtuellen Adresse 20 angeord­ net.
Ein Seitenobjekt ist durch eine Gruppe von physikalischen Seiten unter Verwendung einer Ein-Ebenen-Tabelle 44 darge­ stellt. Der Objekttabelleneintrag für ein Seitenobjekt, genannt Seitenobjektdeskriptor, beinhaltet die physikalische Basi­ sadresse der Seitentabelle, die eine Reihe von Seitentabellen­ einträgen für die Seiten ist. Dieser Seitentabelleneintrag wird durch Indexierung mittels im Offset 22 befindlichen Seiteninde­ xes gefunden.
Ein weiteres Objekt, der Prozessorsteuerblock (PRCB) 28 wird vom Speicher abgerufen und im Prozessorregisterraum ge­ speichert. Darüberhinaus wird ebenfalls ein Prozeßsteuerblock (PCB) 64 vom Speicher abgerufen und im Prozessorregisterraum gespeichert. Ein Eintrag 30 in dem PRCB beinhaltet Informatio­ nen über den laufenden Prozeß und enthält ebenso ein Kennungs­ freigabebit 40, das zur Anzeige, daß das benutzte System Ken­ nungsbits verwendet, codiert ist. Der PCB 64 besitzt einen Ein­ trag 31 mit einem Ausführungsmodusbit 41, welches codiert ist, um Systemen, die keine Kennung verwenden, anzuzeigen, ob sich der Prozessor im Überwachungsstatus oder im Benutzerstatus be­ findet. Bei Systemen, in denen eine Kennung aktiviert ist, ist die Kennungsbitinformation in einer Überwachungsschaltung, der Schutzlogik 13, kombiniert, um sicherzustellen, daß das Ken­ nungsbit eine Eins ist, was die Verwendung eines gültigen Zu­ gangsdeskriptors als Speicherbezug anzeigt. Detaillierter ist die Schutzlogik 13 in Fig. 3 dargestellt. In einem System, in dem Kennungen nicht verwendet werden, erzwingt das sich im Überwachungsstatus befindliche Ausführungsmodusbit eine Eins in die Fehlerüberwachungsschaltung, so daß der Schutzmechanismus keinen Fehler anzeigt, wenn ein Zugangsdeskriptor zum Hinweis auf Daten benutzt wird. Zeigt das Ausführungsmodusbit den Be­ nutzermodus an und wird ein Befehl des Überwachungstypes ausge­ führt, z. B. der Befehl Senden, so hat der Zugangsdeskriptor darin das Kennungsbit Null, was in der Schutzlogik zu einem Fehler führt.
Im folgenden wird auf Fig. 3 Bezug genommen. Die Rechte­ Kontrollogik 106 wird mit einem Zugangsdeskriptor mit Kennungs­ bit unter allen geeigneten Umständen versorgt. Steht das Ken­ nungsfreigabebit 101 nicht an und IST der Ausführungsmodus 103 auf Überwacher gesetzt, drängt eine Ausgabe von UND 102 das Kennungsbit in die ODER-Schaltung 104. Steht das Kennungsfrei­ gabebit 101 an und trifft es auf einen Zugangsdeskriptor, wird die Kennungsleitung 105 gesetzt, da die Kennung für einen Zu­ gangsdeskriptor Eins ist. Unabhängig davon, ob der Ausführungs­ modus auf Überwachungs- oder Benutzermodus steht, legt eine Ausgabe von der ODER-Schaltung 104 das Kennungssignal an die Rechte-Kontrollogik. Wird der Versuch einer Speicherreferenz gemacht, indem Daten als Zugangsdeskriptoren benutzt werden, ist dieses Signal 111 eine Null, und es wird dem Fehlerbehand­ ler 114 der CONSTRAINT INVALID_AD-Fehler signalisiert. Weist das Zugangsdeskriptorrecht-Feld 109 auf ein Objekt des richti­ gen Typs und besteht zwischen den Zugangsdeskriptorrechten und den Seitenrechten 107 Konsistenz, so ist die Operation erlaubt. Ansonsten wird dem Fehlerbehandler 114 ein RIGHTS PROTECTION- Fehler (Rechteschutzfehler) 113 signalisiert.
Im Benutzermodus kann der Benutzer einen gültigen Zugangs­ deskriptor nicht spezifizieren, da dies priviligierte und le­ diglich im Überwachungsmodus ausführbare Instruktionen dar­ stellt. Besteht im Benutzermodus ein Zugangsdeskriptor, so ist weder die Zwangskennung noch das Kennungsbit eine Eins, was zur Anzeige eines INVALID ACCESS DESCRIPTOR-Fehler (ungültiger Zu­ gangsdeskriptor) führt.
Zusammenfassend sei gesagt, daß das im Prozessor intern ge­ speicherte Kennungsfreigabefehlerflag die Interpretation von Informationen im Prozessor kontrolliert. Ist die Kennung entak­ tiviert und der Ausführungsmodus nicht auf Überwachung geschal­ tet, so verhält sich die Kontrollogik in derselben Weise, als wäre die Kennung freigegeben. Ist die Kennung entaktiviert und der Ausführungsmodus im Überwachungszustand, so ist das Verhal­ ten der Kontrollogik ebenfalls dasselbe, mit der Ausnahme, daß die Kontrollogik jeden Wert, den die Kontrollogik als Zugangs­ deskriptor fordert, auch als Zugangsdeskriptor behandelt; d.h. der Kontrollogik wird eine implizierte Kennung geliefert. In einem Kennungen nicht benutzenden System ist die Prozessorken­ nungsfreigabe auf Null gestellt, was Prozessoroperationen, wie Abfertigung und die Interpretation von Daten als ein Zugangsde­ skriptor erlaubt. Es wird somit jeder Bezug auf einen Zugangs­ deskriptor durch einen Prozeß zu einer priviligierten Opera­ tion, deren Durchführung lediglich erlaubt ist, wenn der Prozeß sich im Überwachungsmodus befindet.
Objektadressierung
Es werden drei verschiedene Adreßräume definiert: der logi­ sche Adreßraum, der virtuelle Adreßraum und der physikalische Adreßraum. Hierbei erfolgt der Zugriff auf den logischen Adreß­ raum mittels einer linearen Adresse, die einen Objektselektor und ein Objektoffset beinhaltet. Der Zugriff auf den virtuellen Adreßraum findet mittels eines Objektindexes und eines Objek­ toffset statt, während auf den physikalischen Adreßraum mit ei­ nem Objekt-/Seitentabelleneintrag und einem Block-/Seitenoffset zugegriffen wird.
Ein logischer Adreßraum wird auf einen virtuellen Adreßraum abgebildet, der wiederum auf einen physikalischen Adreßraum ab­ gebildet wird. Eine Adresse in jedem Raum hat eine einmalige Struktur, was im folgenden beschrieben wird.
Physikalischer Adreßraum
Der physikalische Adreßraum deckt Schreiblesespeicher, Nur- Lese-Speicher und speicherabgebildete Eingabe/Ausgabe (I/O) ab. Mit der physikalischen Umgebung findet die Kommunikation durch physikalische Adressen statt. Der physikalische Adreßraum ist Byte-adressierbar und muß atomaren und unteilbaren Zugriff (Lesen oder Schreiben) für Speicheradressen garantieren, die entsprechend dem Umfang des Zugriffs ausgerichtet sind, z. B. muß ein Wortzugriff auf eine Wortbereichsgrenze ausgerichtet sein. Ein unteilbarer Zugriff garantiert, daß ein eine Gruppe von Speicherplätzen lesender oder beschreibender Prozessor diese Operation beendet hat, bevor ein anderer Prozessor den­ selben Platz lesen oder beschreiben kann. Eine atomare Opera­ tion erlaubt dem Prozessor, eine Gruppe von Speicherplätzen zu lesen und zu modifizieren, wobei garantiert ist, daß ein ande­ rer Prozessor, der eine atomare Operation auf denselben Block ausführt, verzögert wird.
Virtueller Adreßraum
Der virtuelle Adreßraum ist ein Zusammenschluß unabhängiger Adreßräume, genannt Objekte. Berücksichtigt man, daß jedes Da­ tenelement innerhalb eines Objektes durch ein einfaches Offset lokalisiert wird, ist die virtuelle Adresse dieses Datenelemen­ tes durch zwei Komponenten spezifiziert: einen den gewünschten Adreßraum wählenden Objektindex und ein das Datenelement inner­ halb des Adreßraumes auswählendes Objektoffset. Die Größe des virtuellen Adreßraumes ist das Produkt der zugelassenen Anzahl von Objekten und der größtmöglichen Größe jedes Objekts.
Ein Objekt wird ferner als die Schutzeinheit definiert. Um innerhalb des virtuellen Adreßraumes den Zugriff zu steuern, schützt und schränkt das System die Generation von Objektindi­ zes ein. Das System definiert einen Zugangsdeskriptor (AD) da­ durch, daß er einen Objektindex beinhaltet. Das System schützt den Zugangsdeskriptorzeiger, indem es die Darstellung des Zei­ gers durch gewöhnliche Daten nicht ermöglicht. Ein Zugangsde­ skriptor (AD) kann auf jedes Objekt in dem virtuellen Adreßraum zeigen; daher wird die virtuelle Adresse durch einen geschütz­ ten Objektindex (d. h. einen Zugangsdeskriptor) und ein unge­ schütztes Offset in dem Objekt spezifiziert.
Logischer Adreßraum
Direkt oder indirekt zugängliche Zugangsdeskriptoren sind konzeptuell in Gruppen zusammengefügt, um noch eine dritte Art von Adreßraum zu bilden der logischer (oder momentaner) Adreß­ raum genannt wird. Dieser logische Adreßraum definiert die Sichtbarkeit der Ausführungsumgebung. Logische Adressen werden auf dem einzelnen virtuellen Adreßraum abgebildet. Um maximale Flexibilität zu erreichen, werden zwei Arten von logischen Adressen definiert: die lineare Adresse und die strukturierte Adresse.
Vier die Ausführungsumgebung bildende Objekte definieren den ersten Typ, die lineare Adresse. Sie wird benutzt, um den konventionellen Begriff eines Prozeßadreßraumes darzustellen. In einer gegebenen Umgebung interpretierte lineare Adressen werden auf den virtuellen Adreßraum abgebildet, und diese Ab­ bildung von linearen Adressen auf virtuelle Adressen stellt einen fundamentalen Teil des Befehlsinterpretationsprozesses dar. In einer linearen Adresse liefert ein Operandenspezifizie­ rer lediglich ein Offset; der aktuelle lineare Adreßraum ist dabei impliziert. Die oberen zwei Bits einer linearen Adresse wählen implizit eines der vier Objekte, die die Ausführungsum­ gebung definieren, während die verbleibenden dreißig Bits einen Offset im gewählten Objekt darstellen.
Eine virtuelle Adresse (d. h. Zugangsdeskriptor plus Offset) definiert die zweite Art, die strukturierte Adresse. Sie wird zum Aufruf fortgeschrittener objektorientierter Schutzeigen­ schaften benutzt. In einer strukturierten Adresse liefert ein Operandenspezifizierer eine virtuelle Adresse. Da dieses System die direkte Spezifizierung eines Zugangsdeskriptors im Befehls­ strom nicht erlaubt, muß der Zugangsdeskriptorteil der virtuel­ len Adresse indirekt spezifiziert werden, indem ein Zugangsde­ skriptorselektor in einem Operandenspezifizierer innerhalb des Befehls benutzt wird. Ein solcher Zugangsdeskriptorselektor spezifiziert einen lokal in den Prozessorregistern gespeicher­ ten Zugangsdeskriptor, was die momentane Adressierbarkeit von Objekten auf solche begrenzt, die nur in den Prozessorregistern von den Zugangsdeskriptoren zugreifbar sind.
Zugangsdeskriptoren und ihre Vorzugsrechte
Ein Zugangsdeskriptor (AD) stellt einen geschützten Zeiger auf ein Objekt in dem Adreßraum dar. Das System schützt Zu­ gangsdeskriptoren vor versehentlicher oder böswilliger Entwick­ lung und Modifikation.
Ein Programm kann kein Objekt direkt adressieren, sondern lediglich indirekt über einen Zugangsdeskriptor in der Ausfüh­ rungsumgebung. Da ein Programm keinen Bezug auf ein Objekt ohne Zugangsdeskriptor nehmen kann, ist es möglich, die Sichtbarkeit des Programms auf die Objekte zu begrenzen, deren Zugang uner­ läßlich ist.
Ein Zugangsdeskriptor enthält die folgende Information: Ob­ jektindex, Vorzugsrechte und Lebensdauerbit. Der Objektindex wählt das Objekt, während die Vorzugsrechte Leserechte, Schreibrechte und Typenrechte in einen Zugangsdeskriptor spezi­ fizieren. Die Rechte indizieren die erlaubten Operationen an dem Objekt. Sie sind mit einem Zugangsdeskriptor verknüpft und nicht mit dem Objekt selbst. Somit ist es möglich, verschiedene Rechte zu demselben Objekt durch Wahl verschiedener Zugangsde­ skriptoren zu haben. Das Lebensdauerbit zeigt die Lebensdauer des Objekts an, auf das ein Zugangsdeskriptor Bezug genommen hat.
Zugangsdeskriptor zur Objektabbildung
Mittels systemweit geschützte Zeiger darstellenden Zugangs­ deskriptoren wird auf Objekte Bezug genommen. Der Objektindex in einen Zugangsdeskriptor selektiert eine Objekttabellenein­ tragung (OTE) in dem systemweiten Objekttabellenobjekt 42. Eine Objekttabelleneintragung spezifiziert den Ort, die Größe, den Typ etc. des bezogenen Objekts.
Speicherblöcke und Seiten
Ein Objekt besteht physikalisch aus einem Speicherblock und/oder einer Gruppe von Seiten. Ein Block ist ein zusammen­ hängender Bereich im physikalischen Adreßraum. Er kann zur Dar­ stellung eines einfachen Objekts, einer Seitentabelle oder ei­ nes Seitentabellenverzeichnisses dienen.
Die Basisadresse eines Speicherblocks weist auf das erste sichtbare Byte des Blocks hin. Sie muß auf einer 64-Byte, phy­ sikalischen Adreßbereichsgrenze ausgerichtet werden. Die Länge eines Blocks variiert zwischen 64 Bytes und 4096 Bytes. Ein Block kann sich nicht über eine 4 K-Byte Bereichsgrenze hinaus erstrecken.
Auch kann ein Objekt durch eine Gruppe von Seiten mit einer oder zwei Ebenen von Seitentabellen dargestellt werden. Die er­ ste Ebenentabelle kann ein Speicherblock anstelle einer Seite sein. Die das Objekt 38 definierenden Seiten sind durch die Seitentabelle 44 beschrieben. Eine Seite ist ein Block einer festen Größe von 4 Kilobytes mit auf eine 4 Kilobyte Bereichs­ grenze ausgerichteter Basisadresse.
Kennzeichnung
Ein Objekt kann Zugangsdeskriptoren und/oder Daten enthal­ ten, d. h. irgendeine binäre Information. Zugangsdeskriptoren und Daten können sich in demselben Objekt befinden und können in willkürlicher Reihenfolge miteinander verschachtelt werden.
In einigen Systemen ist ein Kennungsbit jedem 4-Byte-ausge­ richteten Wort im Speicher zugeordnet, um anzuzeigen, ob das Wort Daten oder möglicherweise einen gültigen Zugangsdeskriptor darstellt. Ein gültiger Zugangsdeskriptor muß auf eine 4-Byte Bereichsgrenze mit auf Eins stehendem Kennungsbit ausgerichtet werden. Ein Kennungsbit von Null wird zur Anzeige dafür be­ nutzt, daß das Wort Daten enthält oder einen Zugangsdeskriptor, der zum Bezug auf den Inhalt eines Objekts nicht verwendet wer­ den kann.
In anderen Systemen existiert ein solches Kennungsbit nicht, und die Interpretation eines Wortes als Daten oder als ein Zugangsdeskriptor hängt hier von der Operation ab.
In einer wortausgerichteten Lese- oder Schreiboperation des gesamten Wortes wird das Kennungsbit entweder bewahrt oder auf Null getellt, was auf die Operation ankommt. In einer nicht­ wortausgerichteten Lesefunktion oder einem Teilwort-Lesevorgang wird das Kennungsbit des Rücklaufwertes immer und zwangsweise auf Null gestellt. Die (arithmetischen oder logischen) Datenma­ nipulationsbefehle erzeugen unabhängig von den Kennungsbits der Quellenoperanden Resultate mit zwangsweise auf Null gestellten Kennungsbits.
Typisierte Objekte
Die interne Organisation von bestimmten Objekten wird durch die Spezifizierung und Interpretation von Datenstrukturen in­ nerhalb ihrer Adreßräume definiert. Diese Objekte spielen eine Schlüsselrolle im Schutzsystem, im Interprozeß-/Interprozessor- Kommunikationssystem und im Speichermanagementsystem. Um diese systemdefinierten Objekte zu erkennen und ihren Gebrauch zu kontrollieren, kann jedes einzelne durch einen Code identifi­ ziert werden. Dieser Code wird Objekttyp genannt und wird mit der Adreßabbildungsinformation (address mapping information) des Objekts verwaltet. Benutzer können ihre eigenen Objekttypen erfinden und diesen spezielle Typencodes zuordnen.
Objektoffset
Ein Objektoffset ist eine 32-Bit-Ordnung, die verwendet wird, um ein Datenelement innerhalb eines Objektes zu spezifi­ zieren. Es kann entweder auf Daten oder auf Zugangsdeskriptoren in einem Objekt zeigen. Ein Objektoffset wird in eine Anzahl von Feldern unterteilt, deren Interpretation von der Objektdar­ stellung abhängt.
Objektgröße
Die Größe eines Objekts ist in codierten Feldern 50 der Ob­ jekttabelleneintragung (OTE) spezifiziert. Das Objektoffset in einer virtuellen Adresse in Verbindung mit der Operandengröße wird mit der Größe des Referenzobjekts in jeder Adreßübertra­ gung verglichen. Diese Operation wird Grenzkontrolle genannt und verhindert eine Referenz über das spezifizierte Objekt ei­ nes Datenelements hinaus, welches dann zu einem anderen Objekt gehören könnte.
Objektdarstellung
Ein Objekt wird durch die Objekttabelleneintragung be­ schrieben, die die Abbildungsinformation für die physikalischen Adressen der Speicherblöcke und Seiten liefert, die zusammen direkt oder indirekt das physikalische Objekt darstellen. Das System benutzt drei verschiedene Abbildungsschemata für ver­ schiedene Objektmaximalgrößen, um zusätzlichen Platzbedarf der Objektdarstellung zu minimieren.
Einfache Objekte: Ein einfaches Objekt ist direkt durch einen Block in dem physikalischen Adreßraum dargestellt. Die physikalische Basisadresse wird direkt in einer Objekttabellen­ eintragung gespeichert. Solch eine Eintragung wird einfach Ob­ jektdeskriptor genannt.
Seitenobjekte: Ein Seitenobjekt wird durch eine eine Ein- Ebenen-Tabelle verwendende Gruppe von physikalischen Seiten dargestellt. Die Objekttabelleneintragung für ein Seitenobjekt, bezeichnet als Seitenobjektdeskriptor, beinhaltet die physika­ lische Adresse einer Seitentabelle, die aus einem Feld von Sei­ tentabelleneinträgen für die Seiten besteht.
Zweiseitenobjekte: Ein Zweiseitenobjekt wird durch eine zwei Ebenen von Seitentafeln benutzende Gruppe von physikali­ schen Seiten dargestellt. Die Objekttabelleneintragung für ein solches Zweiseitenobjekt, Zweiseitenobjektdeskriptor genannt, beinhaltet die physikalische Adresse eines Seitentabellenver­ zeichnisses, welches ein Feld von Seitentabelleneinträgen für Seitentabellen ist.
Ein Einfachobjekt wird durch einen Einfachobjektdeskriptor definert und durch einen einzelnen Block repräsentiert. Ein Einfachobjektdeskriptor beinhaltet die physikalische Basi­ sadresse und die Blocklänge. Ein Einfachobjekt kann sich nicht über 4 Kilobytes physikalischer Adreßbereichsgrenze hinaus er­ strecken.
Ein Einfachobjektoffset ist wie folgt aufgeteilt:
Verzeichnisindex DI (Bits 22-31): Dieses 10-Bit-Feld muß Null sein, anderenfalls wird ein Schutzfehler hervorgerufen.
Seitenindex PI (Bits 12-21): Dieses 10-Bit-Feld muß Null sein, sonst wird auch hier ein Schutzfehler hervorgerufen.
Blockoffset SO (Bits 0-11): Dieses 12-Bit-Feld ist die Byte-Verschiebung, die zur Basisadresse des Blocks hinzugefügt wird, um die physikalische Adresse für das erste Byte des Ope­ randen zu bilden.
Seitenobjekte
Ein Seitenobjekt (paged object) ist durch eine Seitenob­ jektdeskriptor genannte Objekttabelleneintragung beschrieben. Diese Seitenobjekte werden mit einer Ebene der Seitentabelle implementiert. Jede Seite ist individuell wechselbar und um­ setzbar, so daß nicht alle Seiten eines Seitenobjekts im physi­ kalischen Adreßraum zur gleichen Zeit präsent sein müssen. Um zu einem Element eines Seitenobjekts Zugang zu gewinnen, müssen lediglich die Seitentabelle und die ausgewählte Seite in dem physikalischen Adreßraum angeordnet werden.
Ein Seitenobjektdeskriptor beinhaltet die Objektlänge, nicht aber die Basisadressen 45 der ein Objekt repräsentieren­ den Seiten. Das Basisadreßfeld 45 eines Seitenobjektdeskriptors enthält die Basisadresse eines Seitentabellenblocks. Die Länge dieses Seitentabellenblocks ist durch die Objektlänge defi­ niert.
Ein Seitenobjektoffset 22 ist wie folgt unterteilt:
Verzeichnisindex, DI (Bits 22-31): Dieses 10-Bit-Feld muß Null sein, da anderenfalls ein Schutzfehler angezeigt wird.
Seitenindex, PI (Bits 12-21): Dieses 10-Bit-Feld wird zur Indizierung in die ausgewählte Seitentabelle 44) für eine Sei­ tentabelleneintragung benutzt.
Seitenoffset, PO (Bits 0-11): Dieses 12-Bit-Feld ist die Byte-Verschiebung und ist an die Basisadresse 45 in der Seiten­ tabelleneintragung der Seite angefügt, um die physikalische Adresse für das erste Byte des Operanden im Seitenobjekt 38 zu bilden.
Zweiseitenobjekte
Ein Zweiseitenobjekt ist durch eine Objekttabelleneintra­ gung, genannt Zweiseitenobjektdeskriptor, beschrieben. Zweisei­ tenobjekte werden mit zwei Ebenen von Seitentabellen implemen­ tiert. Jede Seite oder Seitentabelle kann individuell ein- und ausgewechselt und umgesetzt werden, so daß nicht alle Seiten oder Seitentabellen eines Zweiseitenobjekts im physikalischen Adreßraum zur gleichen Zeit anwesend sein müssen. Zugang zu ei­ nem Element eines Zweiseitenobjekts wird dadurch gewonnen, daß nur die ausgewählte Seitentabelle und die ausgewählte Seite im physikalischen Adreßraum lokalisiert werden müssen.
Ein Zweiseitenobjektdeskriptor enthält die Objektlänge, aber nicht die Basisadressen der Seiten oder Seitentabellen, die das Objekt repräsentieren. Das Basisadreßfeld eines Zwei­ seitenobjektdeskriptors beinhaltet die Basisadresse des Seiten­ tabellenverzeichnisblocks. Die Länge dieses Seitentabellenver­ zeichnisblocks ist durch die Objektlänge festgelegt.
Ein Zweiseitenobjektoffset ist wie folgt unterteilt:
Verzeichnisindex, DI (Bits 22-31): Der Verzeichnisindex wählt eine durch den Zweiseitenobjektdeskriptor spezifizierte Seitentabelleneintragung im Seitentabellenverzeichnis.
Seitenindex, PI (Bits 12-21): Der Seitenindex wählt eine Seitentabelleneintragung in der spezifizierten Seitentabelle.
Seitenoffset, PO (Bits 11-0): Das Seitenoffset wird als Offseet in die Seite benutzt. Es ist der Basisadresse (in einer Seitentabelleneintragung) angefügt, um die physikalische Adresse für das erste Byte des Operanden zu erzeugen.
Abbildungstabellen Objekttabellenobjekte
Ein Objekttabellenobjekt 42 dient als Wurzel der virtuellen Adreßabbildung. Eine Objekttabelle ist eine Zusammenstellung von 16-Byte-Objekttabelleneinträgen. Das Objektindexfeld 34 in einem Zugangsdeskriptor wählt eine Objekttabelleneintragung in der Objekttabelle (OT) aus; diese Objekttabelleneintragungen werden im folgenden beschrieben.
Objekttabellen besitzen keinen systemdefinierten Systemtyp.
Obwohl ein Zugangsdeskriptor, der einen Zeiger auf einer Ob­ jekttabelle darstellt, globale Lebensdauer besitzt, haben die Objekttabelleneintragungen (OTE) oder die Seitentabelleneintra­ gungen einer Objekttabelle (OT) lokale Lebensdauer. Dies ist notwendig, um Zugangsdeskriptoren für Typendefinitionsobjekte (TDO) in Objekttabelleneintragungen (OTE) und eingebettete De­ skriptoren zu unterstützen.
Es existiert eine systemweite Objekttabelle (OT) für alle Prozessoren die einen einzigen, systemweiten virtuellen Adreß­ raum gemeinsamen haben.
Systemdefinierte Objektindizes
Das System definiert die folgenden Objektindizes, welche nicht für andere Zwecke verwendet werden sollten:
Objektindizes
Zweck
0
für leere Zugangsdeskriptoren
reserviert
1-7 geschützt
8 Objekttabelle
9-15 geschützt
16-31 vorgegebener Typendefinitionsobjekt-Zugangsdeskriptor für Objekttypen 0-15
Seitentabellen oder Seitentabellenverzeichnisse
Seitentabellen werden genutzt, um ein oder zwei Ebenen der Abbildung für Seitenobjekte und Zweiseitenobjekte bereitzustel­ len. Seitentabellenverzeichnisse werden hierbei zur Bereitstel­ lung der ersten Mappingebene für Zweiseitenobjekte benutzt. Seitentabellen (oder Seitentabellenverzeichnisse) beinhalten Seitentabelleneintragungen (oder Seitentabellenverzeichnisein­ tragungen), die die Basisadresse einer Seite definieren, und andere Informationen zur virtuellen Speicherverwaltung und zur Sammlung des Speicherausschusses.
Seitentabellen und Seitentabellenverzeichnisse sind System­ identifiziert, stellen aber keine Objekte dar und haben auch keine Systemtypen.
Eine Seitentabelle ist ein Datenfeld von Seitentabellenein­ tragungen deren Länge jeweils vier Bytes beträgt. Jede Seiten­ tabelleneintragung in einer Seitentabelle beschreibt eine Seite in einem Seitenobjekt oder einem Zweiseitenobjekt. Jede Seiten­ tabelleneintragung in einem Seitentabellenverzeichnis be­ schreibt eine Seitentabelle für ein Zweiseitenobjekt.
Die Seitentabelle eines Seitenobjekts oder das Seitentabel­ lenverzeichnis eines Zweiseitenobjekts können in Größe variie­ ren und an irgendeiner 64-Byte Bereichsgrenze ausgerichtet sein. Die Seitentabellen eines Zweiseitenobjekts müssen eine Größe von 4 Kilobytes besitzen und müssen an einer 4 Kilobyte- Bereichsgrenze ausgerichtet sein.
Seitentabellen und Seitentabellenverzeichnisse stellen keine Objekte dar und sind somit nicht direkt im virtuellen Adreßraum zugängig. Ein Weg des Zugangs besteht darin, physika­ lische Adressen zu verwenden. Ein weiterer Weg besteht in der Abbildung der Seitentabellen auf einen Teil des Objekts, wel­ ches sie definieren. Befolgt man diesen zweiten Weg, muß die physikalische Adresse des Seitentabellenverzeichnisses oder der Seitentabelle kopiert werden. Die Software muß garantieren kön­ nen, daß die Parallelbezeichnung der physikalischen Adresse während des Seitentransfers auf den neusten Stand gebracht wird.
Deskriptorformate Datenworte
Fig. 5 stellt ein Diagramm eines Datenwortes dar. Die Fel­ der eines Datenwortes sind wie folgt definiert:
Daten (Bits 0-31): Dieses Feld beinhaltet sämtliche Daten­ werte.
Kennung (Kennungsbit): Dieses Bit ist für Datenwerte Null.
Zugangsdeskriptoren
Fig. 6 ist ein Diagramm eines Zugangsdeskriptoren. Die Fel­ der eines Zugangsdeskriptors werden wie folgt definiert:
Leserechte (Bit 0): Dieses Bit zeigt an, daß das Lesen von Inhalten des durch den Zugangsdeskriptor angesprochenen Objekts erlaubt ist.
Schreibrechte (Bit 1): Dieses Bit zeigt an, daß der Inhalt des durch den Zugangsdeskriptor Referenz-Objekts geschrieben werden darf.
Typenrechte (Bits 2-4): Die Interpretation dieses 3-Bit- Feldes ist durch den Objekttypen des bezuggenommenen Objekts bestimmt.
Lokal (Bit 5): Dieses Bit zeigt die Lebensdauer des Objekts an - es ist Null für ein globales Objekt und Eins für ein loka­ les Objekt. Die Lebensdauer eines Objekts ist vollständig in der US-Patentanmeldung 4 55 635 beschrieben.
Objektindex (Bits 6-31): Dieses 26-Bit-Feld wählt eine Ob­ jekttabelleneintragung in der Objekttabelle aus.
Kennung (Kennungsbit): Dieses Bit muß für gültige Zugangs­ deskriptoren auf Eins stehen.
Gemischte Wörter
Ein gemischtes Wort ist die Vereinigung eines Datenwortes und eines Zugangsdeskriptors, so daß z. B. ein gemischtes Wort abhängig von dem Kontext entweder als Datenwort oder als Zu­ gangsdeskriptor betrachtet werden kann.
Die Werte eines gemischten Wortes sind in die folgenden Klassen aufgeteilt:
  • 1) Gültiger Zugangsdeskriptor: Ein gültiger Zugangsde­ skriptor besitzt auf ein Eins gesetztes Kennungsbit, welches zur Referenz auf den Inhalt des Objekts benutzt werden kann, wenn das Objekt für den entsprechenden Index definiert ist. Der eingeschränkt ungültige Zugangsdeskriptor-Fehler entsteht, wenn das Kennungsbit Null ist und ein Zugangsdeskriptor erwartet wird.
  • 2) Daten: Ein Datenwort hat ein auf Null gesetztes Ken­ nungsbit. Wird ein Datenwert erzeugt, so ist das Kennungsbit immer auf Null gesetzt. Wird ein Datenwert erwartet, so wird das Kennungsbit ignoriert und als Null interpretiert. Es ent­ steht so kein Fehler, wenn das Kennungsbit Eins ist und ein Da­ tenwert erwartet wird.
Virtuelle Adressen
Fig. 7 ist ein Diagramm eines virtuellen Adreßformates. Die Felder einer virtuellen Adresse sind wie folgt definiert:
Objektoffset (Bytes 0-3): Dieses 32-Bit-Feld enthält einen Ganzzahloffset in das durch den Zugangsdeskriptor in der virtu­ ellen Adresse angesprochene Objekt.
Zugangsdeskriptor (Bytes 4-7): Dieser Zugangsdeskriptor spezifiziert das durch diese virtuelle Adresse angesprochene Objekt. Der Zugangsdeskriptor spezifiziert ebenso die erlaubten Operationen mittels dieser virtuellen Adresse.
Objekttabelleneintragungen
Eine Objekttabelle (OT) kann die folgenden Typen von Ob­ jekttabelleneintragungen enthalten. Alle Objekttabelleneintra­ gungen besitzen eine Größe von 16 Bytes. Spezifische Objektta­ belleneintragungen werden durch das Eintragungstypenfeld (Bits 96-98) jeder Objekttabelleneintragung wie folgt identifiziert:
000 - ungültige Objekttabelleneintragung,
001 - eingebetteter Deskriptor,
010 - ungültiger Einfachobjektdeskriptor,
011 - Einfachobjektdeskriptor,
100 - ungültiger Seitenobjektdeskriptor,
101 - Seitenobjektdeskriptor,
110 - ungültiger Zweiseitenobjektdeskriptor,
111 - Zweiseitenobjektdeskriptor.
Die letzten sechs Objekttabelleneintragungen werden zusam­ mengenommen Speicherdeskriptoren genannt. Gültige Speicherde­ skriptoren enthalten physikalische Adressen, während ungültige Speicherdeskriptoren wo die Basisadreßfelder möglicherweise nicht gültig sind, zur Indikation benutzt werden, daß das aus­ gewählte Objekt nicht zugänglich ist.
Die Felder eines ungültigen Einfachobjektdeskriptors, eines ungültigen Seitenobjektdeskriptors oder eines ungültigen Zwei­ seitenobjektdeskriptors werden wie folgt definiert:
Zugangsdeskriptor des Typendefinitionsobjekts (TDO) (Bits 32-63): Dieses Feld beinhaltet den mit diesem Objektdeskriptor verknüpften TDO-Zugangsdeskriptor.
Reserviert (Bits 68-69): Dieses Feld muß Null sein. Basisadresse (Bits 70-95): Dieses 26-Bit-Feld enthält die physikalische Basisadresse (in Einheiten von 64 Bytes) des Blocks, der Seitentabelle oder des Seitentabellenverzeichnis­ ses. Dies liefert einen 232-Byte physikalischen Adreßraum. Die­ ses Feld wird in einem ungültigen Speicherdeskriptor nicht in­ terpretiert.
Eintragungstyp (Bits 96-98): Dieses 3-Bit-Feld zeigt den Typ der Objekttabelleneintragungen und die Definition des De­ skriptorrests an.
Zugangsstatus (Bits 99-103): Dieses 5-Bit-Feld wird im nächsten Abschnitt beschrieben. Es wird lediglich in einem Ein­ fachobjektdeskriptor definiert und ist anderen Eintragungstypen vorbehalten.
Objektlänge (Bits 114-119): Dieses Feld enthält die (codierte) Länge des durch das Basisadreßfeld Bezug genommenen Speicherblocks in Einheiten von 64 Bytes.
Das Wort "codiert" wird bei einem Längenfeld benutzt um an­ zuzeigen, daß das Feld die tatsächliche Länge minus 1 anstelle der tatsächlichen Länge enthält.
In einem Einfachobjekt enthält dieses Feld die durch diesen Deskriptor definierte (codierte) Länge in Einheiten von 64 By­ tes.
In einem Seitenobjektdeskriptor besteht der Inhalt dieses Feldes, definiert durch diesen Deskriptor, aus der (codierten) Länge in Einheiten von 64 Kilobytes oder der Anzahl von Seiten­ tabelleneintragungen in der Seitentabelle (minus 1) geteilt durch 16.
In einem Zweiseitendeskriptor besteht dieses Feld, defi­ niert durch diesen Deskriptor aus der (codierten) Länge in Ein­ heiten von 64 Megabytes oder der Anzahl von Seitentabellenein­ tragungen in dem Seitentabellenverzeichnis (minus 1) geteilt durch 16.
Zurückschreibevorgang (Bit 122): Dieses Bit ermöglicht die Zurückschreibe-Cachespeicherung für das Objekt, wenn das Seg­ ment oder die Seite eine solche Cachepufferung zuläßt.
Objekttyp (Bits 124-127): Dieses 4-Bit-Feld codiert den Ob­ jekttyp des Objekts.
Zugangsstatus
Ein Zugangsstatus enthält Informationen für die Verwaltung der Blöcke und Seiten. Der Status wird in Einfachobjektdeskrip­ toren und gültigen Seitentabelleneintragungen angetroffen. Die­ ses Feld erscheint nicht in einem ungültigen Objektdeskriptor, einem Seiten-/Zweiseitenobjektdeskriptor oder einer Seitenta­ bellenverzeichniseintragung.
Seitentabelleneintragungen
Eine Seitentabelle oder ein Seitentabellenverzeichnis ent­ hält ein Datenfeld von 4-Byte-Seitentabellenverzeichniseintra­ gungen von ähnlichem Format. Seitentabelleneintragungen in ei­ nem Seitentabellenverzeichnis spezifizieren Seitentabellen, während Seitentabelleneintragungen in einer Seitentabelle Sei­ ten spezifizieren.
Die Seiten einer gültigen Seitentabelleneintragung oder Seitentabellenverzeichniseintragungen werden wie folgt defi­ niert:
Gültig (Bit 0): Dieses Bit ist Eins, um eine gültige Sei­ tentabelleneintragung oder Seitentabellenverzeichniseintragung anzuzeigen.
Seitenrechte (Bits 1-2) : Dieses 2-Bit-Feld codiert die er­ laubten Operationen (Lesen oder Schreiben) in verschiedenen Ausführungsmodi bezüglich des Inhalts dieser Seite (in einem Seitentabelleneintrag) oder für die durch diese Seitentabelle (eines Seitentabellenverzeichniseintrags) definierten Seiten. Da eine Seite durch mehr als eine Gruppe von Seitenrechten kontrolliert werden kann, sind die effektiven Rechte das Mini­ mum aller Seitenrechte.
Zugangsstatus (Bits 3-7): Dieses 5-Bit-Feld ist dem in ei­ nem Speicherdeskriptor ähnlich; es ist für eine Seitentabellen­ eintragung definiert und für einen Seitentabellenverzeichni­ seintrag vorbehalten.
Basisadresse (Bits 12-31): Diese 20-Bit-Feld enthält die physikalische Basisadresse (in Seiteneinheiten von 4096 Bytes) der Seite.
Das Feld eines ungültigen Seitentabellenverzeichniseintrags wird wie folgt definiert:.
Gültig (Bit 0): Dieses Bit ist Null, um einen ungültigen Seitentabellenverzeichniseintrag anzuzeigen.
Virtuelle Adreßübersetzung
Hier ist auf Fig. 2 Bezug zu nehmen. Bei einer Speicheran­ forderung spezifiziert ein Befehl 14 einen Zugangsdeskriptor 24, einen Objektoffset 22 innerhalb einer Adresse 20, ferner ob es sich um einen Lese- oder einen Schreibzugang handelt, und die Länge der Anforderung.
Im folgenden wird die Adreßübersetzung einer virtuellen Adresse 20 in eine physikalische Adresse für den Zugang zu ei­ nem Seitenobjekt 38 beschrieben:
  • 1) Das letzte Byte der Speicheranforderung ist durch Hin­ zufügung der Anforderungslänge zum Objektoffset zu errechnen.
  • 2) Die Anforderung ist als zwei separate Speicheranforde­ rungen durchzuführen.
  • 3) Die vom Anforderungstyp benötigten Repräsentations­ rechte sind zu bestimmen.
  • 4) Ein Schutzfehler ist zu verursachen, wenn die benötig­ ten Rechte in den Lese- und Schreibrechten 35 des Zugangde­ skriptors nicht angeboten werden.
  • 5) Der durch den Objektindex 34 des Zugangsdeskriptors ausgewählte Objekttabelleneintrag 15 ist zu lesen. Der Eintra­ gungstyp und das gültige Bit sind in den codierten Feldern 50 des Objekttabelleneintrags zu finden. Nun läßt man einen De­ skriptorfehler eintreten, wenn der Eintragungstyp nicht ge­ eignet ist. Einen virtuellen Speicherfehler läßt man eintreten, wenn der Objekttabelleneintrag kein gültiger Speicherdeskriptor ist.
  • 6) Unter der Annahme, daß der Objekttabelleneintrag für ein Seitenobjekt sei, ist nun ein Schutzfehler hervorzurufen, wenn der in dem Offsetteil 22 der Adresse der Speicheranforde­ rung gefundene Verzeichnis- und Seitenindex größer ist als die Objektlänge in dem in der Seitentabelle 44 gefundenen Seitenob­ jektdeskriptor 17.
  • 7) Der Seitenindex (Bits 12-21 der Voreinstellung in der Adresse) ist mit 4 zu skalieren und zur Basisadresse des Ob­ jektdeskriptors (in der Objekttabelle 42) hinzuzufügen, um die physikalische Adresse des ausgewählten Datenseitentabellenein­ trags 17 in der Seitentabellen 44 zu erzeugen.
  • 8) Es ist nun der Seitentabelleneintrag 17 zu lesen und ein virtueller Speicherfehler hervorzurufen, wenn der Seitenta­ belleneintrag als ungültig gekennzeichnet ist.
  • 9) Man lasse einen Rechtesicherungsfehler eintreten, wenn die Zugangsdeskriptorrechte 35 größer sind als die Seitenrechte 46.
  • 10) Der Seitenoffset (Bits 0-11 des Adreßoffsetfeldes 22) ist mit der Basisadresse 45 in dem Seitentabelleneintrag in der Seitentabelle 44 zu kombinieren, um die physikalische Adresse des durch Speicheranforderung angesprochenen Seitenobjekts 38 zu erzeugen.
Objektreferenzkontrolle COMPARE_MIXED-Befehl (gemischter Vergleich) und CHECK_TAG- Befehl (Kennungskontrollbefehl)
Der COMPARE_MIXED-Befehl vergleicht Zugangsdeskriptoren oder Daten bezüglich Gleichheit. Sind beide Operanden Zugangs­ deskriptoren, so prüft der Befehl, ob sie auf das gleiche Ob­ jekt Bezug nehmen. Sind beide Operanden dagegen Daten, so prüft der Befehl, ob der Wert der Daten gleich ist. Der CHECK_TAG-Be­ fehl überprüft das Kennungsbit.
In einem nicht gekennzeichneten System im Überwachungsmodus wird das Kennungsbit als auf COMPARE_MIXED gesetzt angenommen.
Im Ada-Begriff "Zugangstypenvariable = Null", wo der Zu­ gangsdeskriptor als Repräsentation der Zugangsvariablen benutzt wird, sollte der CHECK_TAG anstelle des COMPARE_MIXED mit Null benutzt werden, da jegliche Datenwerte, die nicht Null sind, immer noch nicht zum Bezug auf ein Objekt benutzt werden kön­ nen.
Bildung eines Zugangsdeskriptors
Das Schutzsystem erfordert, daß das Kennungsbit nicht be­ liebig auf Eins gestellt wird, daß die Lebensdauerkontrolle nicht umgangen wird und daß die Mutatoroperation nicht igno­ riert wird. In bestimmten gesteuerten Situationen jedoch muß die Systemsoftware einen Zugangsdeskriptor (AD) für ein exi­ stierendes Objekt bilden. Dies wird durch den Befehl CREATE_ACCESS_DESCRIPTOR erreicht.
Der CREATE_ACCESS_DESCRIPTOR-Befehl wandelt ein Datenwort in einen Zugangsdeskriptor um.
Objektadressierungsbefehle LOAD_PHYSICAL_ADDRESS (physikalische Adresse beladen)
Der LOAD_PHYSICAL-ADDRESS-Befehl gibt die physikalische Adresse des Operanden zurück.
Während die Erfindung besonders anhand und in bezug auf die Ausführungsbeispiele erläutert und beschrieben worden ist, so wird der Sachkundige dieses Fachgebiets verstehen, daß ohne Ab­ weichung vom Erfindungsrahmen Änderungen in Form und Detail ge­ macht werden könnten.

Claims (5)

1. Datenverarbeitungssystem mit
einem Speicher (10),
wenigstens einem mit diesem verbundenen, durch einen in ei­ nem Befehl (14) spezifizierten Operator zur Ausführung einer Operation befähigten Prozessor, der in wenigstens zwei Operati­ onsmodi arbeiten kann, wobei ein Modus der Benutzermodus zum Aufrufen von Anwendungsprogrammen und der andere der Überwa­ chungsmodus zum Aufrufen eines Betriebssystems ist und wobei die Befehle in beiden Modi ausführbar sind,
einer Mehrzahl von adressierbaren, ein Seitenobjekt (38) enthaltenden Objekten, welche in einem von dem Prozessor und einer Anzahl anderer Prozessoren gemeinsam genutzten Adreßraum des Speichers gespeichert sind, wobei der Prozessor einen Adressiermechanismus zur Speicherung von Objektdeskriptoren mit darin gespeicherten Basis- und Längeninformationen zum Gebrauch bei der Lokalisierung von Objekten in diesem Adreßraum aufweist und wobei die Mehrzahl von adressierbaren Objekten Befehlsob­ jekte aus Befehlen, einschließlich des eine Operation definie­ renden Befehls (14), aufweist, und
einer als ein Offset (22) und ein Zugangsdeskriptor (24) spezifizierten Adresse, auf die in diesem Befehl Bezug genommen wird, wobei die Mehrzahl von Objekten ein Prozessorobjekt (28), ein Objekttabellenobjekt (42a), ein Seitentabellenobjekt (44) und ein Prozeßobjekt (64) aufweist,
dadurch gekennzeichnet,
daß der Prozessor ein Prozessorregistor (11) zur in dem Prozessor intern stattfindenden Speicherung von Worten und ei­ nes jedem aus dem Speicher gelesenen Wort zugeordneten Ken­ nungsbits (48) aufweist, das bei der ersten Codierung anzeigt, daß das Wort ein Datenwort ist, und bei der zweiten Codierung anzeigt, daß das Wort ein gültiger Zugangsdeskriptor ist;
daß jedes Objekt aus Wörtern besteht, die entweder Zugangs­ deskriptoren oder Datenwörter sind;
daß jeder Zugangsdeskriptor aufweist:
  • 1) einen Objektindex (34) zur Auswahl eines Objekts in dem Adreßraum und
  • 2) ein die erlaubten Operationen auf dem durch den Zu­ gangsdeskriptor ausgewählten Seitenobjekt (38) spezifizie­ rendes Rechtefeld (35),
daß das Prozessorobjekt (28) einen Prozessorsteuerblock aufweist,
daß ein Zugangsdeskriptor in dem Prozessorsteuerblock ein Kennungsfreigabebit enthält;
daß das Objekttabellenobjekt (42) an einer von dem Prozes­ sor nach Prozessor-Initialisierung zugreifbaren Adresse gespei­ chert ist, wobei die Objekttabelle diesem Prozessor und der den Adreßraum gemeinsam benutzenden Anzahl von anderen Prozessoren zugeordnet ist,
daß Objektdeskriptoren (15), welche von dem Adressiermecha­ nismus zur Bildung physikalischer Adressen für das Seitentabel­ lenobjekt verwendet werden, in der Objekttabelle gespeichert sind,
daß jeder dieser Objektdeskriptoren (15) die Basisadresse und Größe spezifizierende erste (50) und zweite (52) codierte Felder des durch den Zugangsdeskriptor angesprochenen Seitenta­ bellenobjekts aufweist,
daß in der Seitentabelle (44) Seitentabelleneinträge (17) zur Verwendung durch den Adressiermechanismus bei der Bildung physikalischer Adressen für das Seitenobjekt (38) gespeichert sind,
daß das Offset (22) einen zur Indexierung in einer ausge­ wählten Seitentabelle für die Lokalisierung des Seitentabellen­ eintrags verwendeten Seitenindex enthält und in Verbindung mit einer im Seitentabelleneintrag gespeicherten Basisadresse zur Lokalisierung einer Datenelementeneintragung in diesem Seiten­ objekt (38) verwendbar ist;
daß erste Mittel (54) zur Lokalisierung eines ersten Ob­ jektdeskriptors in der Objekttabelle vorgesehen sind, wobei eine bekannte virtuelle Adresse und der Objektindex (34) als Index in die Objekttabelle (42) verwendet werden;
daß der Adressiermechanismus (16) Mittel zum Kombinieren der Basisadresse in einem Objektdeskriptor mit dem Seitenoffset zur Bildung einer das Seitenobjekt (38) lokalisierenden Adresse aufweist;
daß das Prozeßobjekt (64) einen auf dem Prozessor gerade ablaufenden Prozeß definiert und einen Prozeßsteuerblock ent­ hält, der eine Ausführungsumgebung spezifiziert, den Ausfüh­ rungsstatus seines Programms speichert und Informationen über dem Prozeß zugeordnete Resourcen speichert;
daß einer der Zugangsdeskriptoren in dem Prozeßsteuerblock Ausführungsmodus-Anzeigemittel enthält, die auf einen entweder den Benutzermodus oder den Überwachmodus darstellenden Wert einstellbar sind; und
daß Mittel (100, 102, 104) zum Anlegen eines Kennungssi­ gnals (111) vorgesehen sind, die unter der Bedingung wirksam sind, daß das Kennungsfreigabebit (40) im inaktiven Zustand ist und die Ausführungsmodus-Anzeigemittel auf den den Überwacher­ modus darstellenden Wert eingestellt sind.
2. Datenverarbeitungssystem nach Anspruch 1, dadurch ge­ kennzeichnet, daß das Seitenrechtefeld (107) des Seitentabel­ leneintrags mit dem Rechtefeld (109) des Zugangsdeskriptors (24) vergleichende Mittel (106) vorgesehen sind, welche einen Fehler (113) unter der Bedingung anlegen, daß der vom Seiten­ rechtefeld (50) zugelassene Zugriff mit dem Rechtefeld (35) des Zugangsdeskriptors unvereinbar ist.
3. Verfahren zur Datenverarbeitung in einem Datenverarbei­ tungssystem mit einem Speicher (10), wenigstens einem mit dem Speicher verbundenen Prozessor, der zur Ausführung einer Opera­ tion mittels eines in einem Befehl (14) spezifizierten Opera­ tors geeignet ist, wobei der Prozessor in wenigstens zwei Be­ triebsmodi arbeiten kann, von denen einer ein Benutzermodus zum Aufrufen von Anwendungsprogrammen und ein anderer ein Überwa­ chermodus zum Aufrufen eines Betriebssystems ist und die Be­ fehle in beiden Modi ausgeführt werden können, wobei ferner eine Anzahl von adressierbaren Objekten, einschließlich eines Seitenobjekts (38) in einem Adreßraum des Speichers gespeichert ist, der Adreßraum von dem Prozessor und eine Anzahl anderer Prozessoren gemeinsam benutzt wird, der Prozessor einen Adres­ siermechanismus zur Speicherung von Objektdeskriptoren mit Ba­ sis- und Längeninformationen zur Verwendung beim Lokalisieren von Objekten in dem Adreßraum aufweist, die Anzahl adressierba­ rer Objekte Befehlsobjekte mit Befehlen einschließlich des eine Operation definierenden Befehls (14) enthält, eine Adresse (20), auf die in dem Befehl Bezug genommen wird, als ein Offset (22) und ein Zugangsdeskriptor (24) spezifiziert wird und die Anzahl von Objekten ein Prozessorobjekt (28), ein Objekttabel­ lenobjekt (42), ein Seitentabellenobjekt (44) und ein Prozeßob­ jekt (64) enthält, dadurch gekennzeichnet, daß
  • A. in einem Prozessorregister (11) in dem Prozessor intern Wörter und ein Kennungsbit in Zuordnung zu jedem aus dem Spei­ cher gelesenen Wort gespeichert werden, wobei jedes einem jeden Wort in dem Prozessorregister (11) zugeordnete Kennungsbit bei einer ersten Codierung anzeigt, daß das Wort ein Datenwort ist, und in einer zweiten Codierung anzeigt, daß das Wort ein gülti­ ger Zugangsdeskriptor ist, wobei ferner jedes der Objekte aus Worten besteht, die entweder Zugangsdeskriptoren oder Datenwör­ ter sind und wobei jeder der Zugangsdeskriptoren
    • i. einen Objektindex (34) zur Auswahl eines Objekts in dem Adreßraum und
    • ii. ein Rechtefeld aufweist, das die an dem vom Zugangsde­ skriptor ausgewählten Seitenobjekt (38) zulässigen Opera­ tionen spezifiziert,
  • wobei ferner das Prozessorobjekt (28) einen Prozessorsteuer­ block enthält und wobei ein Zugangsdeskriptor in dem Prozessor­ steuerblock ein Kennungsfreigabebit enthält;
  • B. das Objekttabellenobjekt (42) an einer vom Prozessor durch Prozessorinitialisierung zugreifbaren Adresse gespeichert wird, wobei die Objekttabelle einem Prozessor und der Anzahl von den Adreßraum gemeinsam nutzenden anderen Prozessoren zuge­ ordnet ist;
  • C. Objektdeskriptoren (15) in der Objekttabelle zur Verwen­ dung durch den Adressiermechanismus bei der Bildung physikali­ scher Adressen für das Seitentabellenobjekt gespeichert werden, wobei jeder der Objektdeskriptoren (15) die Basisadresse und Größe spezifizierende erste und zweite codierte Felder (50 und 52) des vom Zugangsdeskriptor bezeichneten Seitentabellenob­ jekts enthält;
  • D. in der Seitentabelle (44) Seitentabelleneinträge (17) zur Verwendung durch einen Adressiermechanismus bei der Bildung physikalischer Adressen für das Seitenobjekt (38) gespeichert sind;
  • E. ein Seitenindex in dem Offset (22) zum Indizieren in ei­ ner ausgewählten Seitentabelle zur Lokalisierung des Seitenta­ belleneintrags und ein Seitenoffset in Verbindung mit einer in dem Seitentabelleneintrag gespeicherten Basisadresse zum loka­ lisieren eines Datenelementeintrags in dem Seitenobjekt (38) verwendet werden;
  • F. ein erster Objektdeskriptor in der Objekttabelle unter Verwendung einer bekannten virtuellen Adresse sowie des Objekt­ indexes (34) als Index in die Objekttabelle (42) lokalisiert wird;
  • G. die Basisadresse im Objektdeskriptor mit dem Seitenoff­ set zur Bildung einer Adresse kombiniert wird, mit der das Sei­ tenobjekt (38) lokalisiert wird, wobei das Prozeßobjekt (64) einen gerade auf dem Prozessor ablaufenden Prozeß definiert, einen eine Ausführungsumgebung bezeichnenden Prozeßsteuerblock enthält, den Ausführungsstatus seines Programms speichert und Informationen über die dem Prozeß zugeordneten Systemresourcen aufrechterhält;
  • H. Ausführungsmodusanzeigemittel in einem der Zugangsde­ skriptoren im Prozeßsteuerblock auf einen entweder den Benut­ zermodus oder den Überwachermodus darstellenden Wert gesetzt werden; und
  • I. ein Kennungssignal unter der Bedingung angelegt wird, daß das Kennungsfreigabebit im inaktiven Zustand ist und die Ausführungsmodusanzeigemittel auf dem den Überwachermodus dar­ stellenden Wert gesetzt sind.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß
  • J. das Seitenrechtefeld (107) des Seitentabelleneintrags mit dem Rechtefeld (109) des Zugangsdeskriptors (24) vergli­ chen; und
  • K. ein Fehler unter der Bedingung angelegt wird, daß der vom Seitenrechtefeld (50) zugelassene Zugriff mit dem Rechte­ feld (35) des Zugangsdeskriptors nicht übereinstimmt.
DE4040963A 1989-12-22 1990-12-20 Datenverarbeitungssystem Expired - Fee Related DE4040963C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/455,625 US5075842A (en) 1989-12-22 1989-12-22 Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism

Publications (2)

Publication Number Publication Date
DE4040963A1 true DE4040963A1 (de) 1991-06-27
DE4040963C2 DE4040963C2 (de) 1998-01-22

Family

ID=23809597

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4040963A Expired - Fee Related DE4040963C2 (de) 1989-12-22 1990-12-20 Datenverarbeitungssystem

Country Status (4)

Country Link
US (1) US5075842A (de)
JP (1) JPH03225455A (de)
DE (1) DE4040963C2 (de)
GB (1) GB2239335B (de)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0438011A3 (en) * 1990-01-18 1993-05-19 International Business Machines Corporation Logic on main storage memory cards for insertion and extraction of tag bits
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5414812A (en) * 1992-03-27 1995-05-09 International Business Machines Corporation System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
CA2097540C (en) * 1993-06-01 1998-05-12 William G. O'farrell Accessing remote data objects in a distributed memory environment
JP2986051B2 (ja) * 1993-08-04 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US5504887A (en) * 1993-09-10 1996-04-02 International Business Machines Corporation Storage clustering and packing of objects on the basis of query workload ranking
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5845331A (en) * 1994-09-28 1998-12-01 Massachusetts Institute Of Technology Memory system including guarded pointers
US6292879B1 (en) 1995-10-25 2001-09-18 Anthony S. Fong Method and apparatus to specify access control list and cache enabling and cache coherency requirement enabling on individual operands of an instruction of a computer
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6877161B1 (en) 1999-02-11 2005-04-05 Oracle International Corp. Address calculation of invariant references within a run-time environment
US6499095B1 (en) 1999-02-11 2002-12-24 Oracle Corp. Machine-independent memory management system within a run-time environment
US6457019B1 (en) * 1999-02-11 2002-09-24 Oracle Corp. Memory management within a run-time environment
US6434685B1 (en) 1999-02-11 2002-08-13 Oracle Corp. Paged memory management system within a run-time environment
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
AU2001271996A1 (en) * 2000-07-18 2002-01-30 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318235B2 (en) 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7415708B2 (en) 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8312509B2 (en) * 2006-09-21 2012-11-13 Intel Corporation High integrity firmware
US8364910B2 (en) * 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
CN102144019A (zh) * 2008-09-02 2011-08-03 通用电气公司 用于从原油中去除硫化氢的方法
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality
EP3584708B1 (de) * 2015-12-15 2022-05-11 LZLabs GmbH Schutzschlüsselverwaltung und -präfixierung in legacy-emulationssystem mit virtuellem adressraum

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2059652B (en) * 1979-09-29 1983-08-24 Plessey Co Ltd Memory protection system using capability registers
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4480306A (en) * 1981-05-22 1984-10-30 Data General Corporation Digital data processing system using unique ALU register files and micro-instruction stacks
US4498132A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system using object-based information and a protection scheme for determining access rights to such information and using multilevel microcode techniques
US4498131A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system

Also Published As

Publication number Publication date
DE4040963C2 (de) 1998-01-22
JPH03225455A (ja) 1991-10-04
GB2239335B (en) 1993-11-24
GB9019822D0 (en) 1990-10-24
GB2239335A (en) 1991-06-26
US5075842A (en) 1991-12-24

Similar Documents

Publication Publication Date Title
DE4040963C2 (de) Datenverarbeitungssystem
DE4040994A1 (de) Datenverarbeitungssystem und -verfahren
DE60103414T2 (de) Cpu, die auf ein erweitertes registerset in einem erweiterten registermodus zugreift und entsprechendes verfahren
DE3716229C2 (de) Mikroprozessorchip mit einem Stapelrahmen-Cache
DE60102017T2 (de) Räumungsfilter für adressenübersetzungspuffer
US5075848A (en) Object lifetime control in an object-oriented memory protection mechanism
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
US5023773A (en) Authorization for selective program access to data in multiple address spaces
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
Karger et al. An augmented capability architecture to support lattice security and traceability of access
DE69434669T2 (de) Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
DE112004002848B4 (de) Mikroprozessor und Verfahren zum Verifizieren einer Speicherdatei in einem derartigen Mikroprozessor
DE19735981B4 (de) Mehrprozessorbetrieb in einem Multimedia-Signalprozessor
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE60205363T2 (de) Mikroprozessor mit einem performance-drosselmechanismus für das energiemanagement
DE112005003098B4 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE2517276A1 (de) Datenverarbeitungssystem
DE112010005821T5 (de) Kontextwechsel
DE112010003942T5 (de) Einrichtung zum Setzen von Schlüsseln ohne Stilllegung
DE102018125665A1 (de) Vorrichtung und verfahren zum pausieren einer prozessortrace für eine effiziente analyse
DE102020132140A1 (de) Pipelines für sichere Multithread-Ausführung
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee