DE4040963A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- 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
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
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
Daten (Bits 0-31): Dieses Feld beinhaltet sämtliche Daten werte.
Kennung (Kennungsbit): Dieses Bit ist für Datenwerte Null.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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)
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)
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)
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 |
-
1989
- 1989-12-22 US US07/455,625 patent/US5075842A/en not_active Expired - Lifetime
-
1990
- 1990-09-11 GB GB9019822A patent/GB2239335B/en not_active Expired - Lifetime
- 1990-11-30 JP JP2337003A patent/JPH03225455A/ja active Pending
- 1990-12-20 DE DE4040963A patent/DE4040963C2/de not_active Expired - Fee Related
Patent Citations (1)
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 |