DE2456602A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE2456602A1 DE2456602A1 DE19742456602 DE2456602A DE2456602A1 DE 2456602 A1 DE2456602 A1 DE 2456602A1 DE 19742456602 DE19742456602 DE 19742456602 DE 2456602 A DE2456602 A DE 2456602A DE 2456602 A1 DE2456602 A1 DE 2456602A1
- Authority
- DE
- Germany
- Prior art keywords
- segment
- devices
- ring number
- ring
- address
- 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/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
Description
'COMPAGNIE HONEWELL BULL 94, Avenue Gambetta
Paris (20) Frankreich
Datenverarbeitungssystem
Diese Erfindung bezieht sich allgemein auf ein Datenverarbeitungssystem
und insbesondere auf eine Hardware und ein Verfahren des Informationsschutzes.
In der Vergangenheit sind mehrere Methoden verwendet worden
um Informationen zu schützen. Einige sind von Robert M.
Grahem in einem Dokument mit dem Titel "Schutz in einer
Informations-Verarb.eitungs-Routine" erläutert worden,
das in CACM veröffentlicht wurde (Mai I968).
509 82 5/09 28
"· 9 —
Dieser Typ des Speicherschutzes ist für die heutigen Mehrprogramm-Systeme nicht
geeignet, da keine Privilegabstufungen oder Zugänglichkeite-Abstufungen vorhanden sind, was die Kontrolle
über den Informationszugriff ernsthaft einschränkt. Für die verschiedenen Zugangsrechte zu den verschiedenen
Informationstypen sollten Vorkehrungen getroffen sein. Eine TeULösung dieses Problems ergibt sich aus dem Konzept
eines"Speichers, der als Informationseinheit ein Segment besitzt, bei dem der Zugriff kontrolliert ist.
Verschiedene Zugriffsgrade zu jedem Segment v/erden möglich, wenn verschiedene Privilegtypen vorgesehen
werden, die mit jedem Segment verbunden sind, z.B. Master/ Slave, Schreiben/Nicht-Schreiben und Ausführen /Nicht-Ausfuhren.
Dieses Schutzverfahren für die Anonymität und Unversehrtheit der Informationen berücksichtigt jedoch
nicht den Benutzer der Informationen. Bei dieser Art des Schutzes erhält nicht der Benutzer .einPrivileg,
sondern die zu schützenden Informationen.In diesem Fall hat ein Benutzer, wenn er überhaupt ein Zugriffsrecht
zu einem Segment besitzt, in gleicher Weise Zugang zu allen anderen Benutzern, die Zugang zu diesem Segment
besitzen. David C.Evans und Jean Yves LeClerc haben in einem Dokument mit dem Titel "Adreßplanung und Zugriff
skontrolle in einem Dialog-Computer"(SJCC 1967) das Problem erkannt und versucht, eine Lösung zu finden·.,
Evans und LeClerc sagten in diesem Artikel auf Seite "Der Benutzer eines Computer-Systems sollte in der Lage
sein, in beliebiger Weise kontrolliert mit dem System, mit seinen eigenen Berechnungs-Prozessen und mit anderen
Benutzern in einem Dialog zu stehen. Ihm sollte ein großes Informations-Speicher- und Informations-Rückruf-System
zugänglich sein, das als Datei-System bezeichnet wird. Das Datei-System sollte allen Benutzern den
509825/0928
Zugriff auf Informationen auf eine Art und V/eise ermöglichen, die eine selektiv kontrollierte Anonymität
und Sicherheit der Informationen gestattet. Ein Benutzer sollte die Möglichkeit haben, seinen Berechnungsvorgang
in halb-unabhängige Aufgaben mit einem kontrollierten Austausch'und einer kontro liierten Wechselwirkung zu
unterteilen. Diese Fähigkeit müßte die menschlichen Anstrengungen herabsetzen, die zur Entwicklung, Entstörung
und Änderung von Programmen erforderlich sind, und sie
sollte eine gesteigerte Zuverlässigkeit der Programme ermöglichen. Das System sollte nicht willkürlich die
Benutzung der Eingabe/Ausgabe-Einrichtungen einschränken oder die Eingabe/Ausgabe-Programmierung des Benutzers
beeinträchtigen. Evans und LeClerc schlugen bedingte
Zugriffsrechte bei der Prozedurausführung vor. Gemäß ihrem Vorschlag ist das Segment immer noch die Informationseinheit,
zu der der Zugriff kontrolliert wird; die Zugriffskontrollattribute eines Segments sind jedoch
im wesentlichen in einer Tabelle aufgezeichnet, in der
der Benutzer-Name und die Prozeduren"enthalten sind,
deren Eintragungen die·Zugriffsarten sind. Eine derartige
Lösung hat jedoch schwerwiegende Nachteile..
. Erstens stellt das Erstellen und Aktualisieren
der Tabelle mit den Zugriffs-Kontrollattributen jedes Segments
eine umfangreiche Arbeit dar* Zweitens müssen eine zu häufige Benutzung des Segments sowie das Auftreten
von Geschehnissen berücksichtigt werden. Zur Überwindung dieses Problems wurde eine Zugriffskontrolle mit Hilfe
einer Prozedurgruppe vorgeschlagen. Gemäß diesem Vorschlag
werden zusammengehörige Prozeduren in "Prozedurgruppen" zusammengefaßt, und die Zugriffsrechte zu den
Segmenten ergeben sich aus der Identität derGruppe, zu der die um Zugriff ersuchende Prozedur gehört.
509825/0928
Dieses Verfahren erleichterte das Problem der Entwicklung und Aktualisierung der umfangreichen Segment-Zugriffskontrollattribut-Tabellen
aller Segmente, warf jedoch das Problem auf festzustellen, zu welcher Gruppe eine
bestimmte Prozedur gehörte, insbesondere, wenn eine Prozedur aus einer Anzahl vieler Gruppen bestand oder
bestehen konnte. Diese Zweideutigkeit bei der Definition der Gruppen und die möglichen Übergänge zwischen den
Gruppen machen die Durchführung einer Zugriffskontrolle auf der Basis von Prozedurgruppeη extrem schwierig.
Um die bei der "Gruppen-Technik"aufgetretenen Schwierigkeiten
zu überwinden, wurde ein Ringkonzept entwickelt. Das Ringkonzept faßt die Prozedurgruppen in Ringen
zusammen, die unzweideutig durch steigende Privilegstufen geordnet werden können. Durch Zuweisung einer Reihe
von Gruppen zu einer Reihe konzentrischer Ringe und durch Zuweisen von Nummern zu jedem-Ring, wobei der
kleinste Ring die niedrigste Nummer besitzt und jeder folgende Ring stufenweise eine höhere Nummer erhält,
können verschiedene Privilegstufen unzweideutig dem Benutzer eines Segments zugewiesen werden.Bei diesem Konzept
besitzt der innerste Ring mit der niedrigsten Nummer die höchste Privilegstufe. Es kann also festgelegt
werden, daß Benutzern in der niedrigsten Ringnummer Informationen zugänglich sind, die höhere Ringnummern
'besitzen, während Benutzern in einer höheren Ringnummer Informationen mit niedrigeren Ringnummern nicht
oder nur auf eine bestimmte Weise zugänglich sind.Diese offensichtliche Änderung der Privilegstufe mit einer
Änderung in Ringen ist ein Konzept, das die Einwände hinsichtlich einer Änderung von Prozedurgruppen ausräumt.
509825/0^28
MULTICS (Multiplexed Information and Computing Service)
ist ein Betriebssystem, das ursprünglich vom Massachusetts-Institute of Technology in Zusammenarbeit mit General
Electric Co. und anderen entwickelt wurde.MULTICS wendete
als erstes die Ringtheorie "des Software-Schutzes auf einem umgebauten Honeywell-635-Computer und später auf
einem Honeywell-645-Computer an. Bei der MULTICS-Philosophie
kommen 64 Schutzringe, die von 0 bis 63 durchnumeriert
sind,zur Anwendung. Die Theorie wird allgemein in einer Broschüre mit dem Titel "Zugriffskontrolle
zum virtuellen MULTICS-Speicher" beschrieben, die von
Honeywell Information Systems Inc. in den "MULTICS Technical Papers", Nr. AG95, Rev.O beschrieben wurde.
Eine detailliertere Beschreibung des HULTICS-Ringschutzes
befindet sich in Kapitel 4 eines Buches mit dem Titel "Das MULTICS-System, eine Überprüfung seiner
Struktur", von Elliot I.Organick, das von der MIT Press veröffentlicht wurde, und ebenfalls im MULTICS-Svstem- . '
Programmier-Handbuch 1969,MIT-Projekt MAC.Kurz im MULTICS-Syster
kommt keine "reine Ringschutz-f.trategie" zur Anwendung;
es wird vielmehr die "Ring-Klammer-SchutKstrategie",
in der die Zugriffsrechte eines Benutzers hinsichtlich eines bestimmten Segments in einem Zugriffs-Modus
und einer dreifachenRingnummer (r1, r2, r3 )codiert sind, die für ein bestimmtes Segment als "Ring-Klammern"
des Benutzers bezeichnet werden. Ein Zitat aus den Seiten 137 bis 139 der "MULTICS Technical Papers"
mit dem Titel ·"Zugriffs-Kontrolle zum virtuellen MULTICS-Speicher" gibt die Regeln und Bedingungen zur
Benutzung und zur Änderung von Ringen an.
509825/0928
■■ ■- 6 -
Dieses Ringschutz-Konzept wurde zuerst in Verbindung mit Software-Techniken verwendet, die 64 getrennte Ringe
benutzten. Anschließend wurde ein Versuch zur Bildung einer brauchbaren Hardware-Basis für den Ringschutz unternommen.
Der Honeywell-645-Computer stellt einen ersten solchen Versuch dar. Das Honeywell-System 645 unterscheidet
sich von dem bereits beschriebenen Ring-Hardware-Konzept in mehreren Punkten, die, zusammengenommen, auf
die Tatsache hinauslaufen, daß der Honeywell .-645-Computer eine Zwei-Ring- und nicht 64-Ring-Maechine ist und
anstelle eines Ring-Registers mit einem Master-und einem Slave-Modus arbeitet, der dem Prozessor im
Master-Modus eine höhere Potenz als im Slave-Modus verleiht. Das Zugriffs-Kontrollfeld des SDW Segment-Descriptor-Worts
des 645-Computers enthält keine Informationen bezüglich der Ringe;.insbesondere enthält
es keine Ringklammern. Es beinhaltet jedoch entweder:
a) eine Zugriffsmodus-Information, die möglicherweise beide Descriptors enthält,
- nur im Master-Modus zugänglich,
- Master-Modus-Prozedur; oder
b) die Spezifizierung eines der acht speziell "gelenkter Fehler" (Fallen), die immer dann auftreten, wenn ein
Zugriff zu den Segment-Descriptor-Worten (SDW) durchgeführt wird.
Die Prozedur befindet sich nur im "Master-Modus", wenn eine Prozedur durchgeführt wird, deren SDW eine "Master-Modus-Prozedur"
kennzeichnet. Der Prozessor kann in den folgenden Fällen während der Ausführung einer Slave-Modus-Prozedur
in den Master-Modus übergehen:
- Fehler,
- Ausführung einer Unterbrechung.
509825/0928
Der Zugriffs-Kontrollmechanismus des Prozessors 645 interpretiert
das SDW während des Adressier-Zyklus und löst
je nach SDW und (für gewöhnlich) dem versuchten Zugriff,
wie folgt, die geeignete Aktion aus:
a) Wenn das SDW einen bestimmten "gelenkten Fehler" aus-.löst,
tritt dieser Fehler auf;
b) wenn das SDW andererseits nicht den versuchten Zugriff
gestattet, tritt der entsprechende Zugriffs-Übertretungsfehler auf; ·
der Zugriff wird dann ausgeführt.
Wenn ein Fehler auftritt, geht der 645-Computer in den
Master-Modus über und überträgt die Steuerung an die entsprechende Master-Modus-Fehlerverärbeitungsprozedur
(Zugriffssteuerung zum virtuellen MULTICS-Speicher, siehe
bereits erwähntes Dokument, Seiten 157 bis 158 ).
In einem weiteren Dokument, das von Michael D.Schroeder
und Jerome H. Saltzer in "Communications of the ACM", März 1972, Band 15, Nr.3 , veröffentlicht wurde, werden
in dem Aufsatz mit dem Titel " A Hardware Architecture
for Implementing Protection Rings" der Hintergrund und die Theorie des Ringschutzes sowie die Hardware-
Durchführung des Ringschutzes beschrieben.
Da MUIiTICS und die Honeywell-645-Version des Ringschutzes
hauptsächlich softwareseitig gelöst wurden, ergeben sich daraus eine beträchtliche Überlastung des Betriebssystem-Supvervisors,
insbesondere,wenn Aufrufe nach höheren oder niedrigerenBadeutungsstufen durchspringen,
zu einer Supervisor-Prozedur durchgeführt wurden. Dies machte einen Zugriff-Kontrollmechanismus erforderlich,
509825/0928
der funktionell in der Lage war, wirksam seine Informations-Schutzfunktion
durchzuführen, der relativ einfach arbeitete, wirtschaftlich herzustellen, zu bedienen und zu
warten war und die allgemeineProgrammierung nicht beeinträchtigte.
Das Honeywell-Computer-System 6000 entspricht diesen Anforderungen durch die hardwareseitige Realisierung
des größten Teils des Ringschutz-Mechanismus.Nun stand eine spezielle Zugriffs-Prüflogik, die mit der
segmentierten Adressierungs-Hardware integriert war, zur Verfügung, um alle virtuellen Speicherreferenzen
freizugeben und außerdem einige Sonderbefehle zum V/echsel des Durchführungsringes ermöglichte. Bestimmte
Teile des Ringsystems, inbesondere nach außen gerichtete Abrufe und die Rückkehr oder die Aufrufe nach einer
geringeren Bedeutungsstufe und die Rückkehr davon, warfen Probleme auf, die die Durchführung der Ringschutz-Funktion
durch Übertragung der Steuerung auf einen Supervisor erforderten. Nun waren weitere Hardware-und
Technik-Verbesserungen erforderlich, die die vollständige Realisierung des Ringschutzes auf der Hardware-Firmware-Seite
ermöglichten und den Kriterien Funktionsfähigkeit, Wirtschaftlichkeit, Einfachheit und allgemeine
Programmierung entsprachen.
Daher besteht eines der Ziele der hier vorliegenden Erfindung darin, einen verbesserten Computer-Ringschutz-Mechanismus
zu schaffen. Ein weiteres Ziel dieser Erfindung sind Verbesserungen von Computer-Ringschutz-Techniken
und Hardware.
Ebenfalls ein weiteres Ziel der Erfindung ist ein verbesserter Computer-Ringschutz-Mechanismus, der hardware/
firmwareseitig realisiert wird.
5098 2 5/0928
Ein weiterer Zweck der Erfindung besteht in der Entwicklung eines Computer-Ringschutz-Mechanismus, der nach innen
gerichtete Aufrufe (Aufrufe zu einer niedrigeren Ringnummer) über ein "Tor" ermöglicht, jedoch keine nach
außen gerichteten Aufrufe gestattet.
Wieder ein weiteres Ziel der Erfindung besteht in der
Schaffung eines verbesserten Ringschutzmechanismus, bei dem eins Prozedur im Lese/Schreib-Modus in festgelegten
Ringen ablaufen kann, wogegen eine Prozedur im Durchführungs-Modus
in festgelegten Ringklammern ablaufenkann.
Ein weiteres Ziel der Erfindung besteht in der Entwicklung
eines Ring-Kreuzungsmechanismus, der hardwareidentifizierbare Rückstell-Stacks und einmProzedur-Auf
ruf me chani smus verwendet.
Diese und andere Ziele der Erfindung ergeben sich klarer
aus der Beschreibung der bevorzugten Ausführungsform der Erfindung in Verbindung mit den Zeichnungen.
Die vorstehenden Ziele der Erfindung werden mit Hilfe
von Computer-Ringschutzverfahren und einer Hardware realisiert, die über vier Ringklassen, die von 0 bis 3 durchnumeriert
sind, verfügen. Jeder Ring stellt eine System-Privilegstufe
dar, wobei die Stufe 0 (der innerste Ring) das höchste Privileg und die Stufe 3 (der äußerste Ring)
das tniedrigste Privileg besitzt.
Computer-Daten und -Prozeduren werden geschützt, indem Prozesse daran gehindert werden, ineinander überzugreifen
oder den Adreßraum des jeweils anderen Prozesses in illegaler Weise gemeinsam zu benutzen.Dies wird mit
509825/0928
einer Ringschutzstruktur durchgeführt, die hardwarefirmwareseitig
realisiert wird und die Adressierbar-.keit des Speichers entsprechend den Privilegstufen begrenzt.
Prozesse benutzen eine segraentierte Adresse während
ihres Ablaufs, wobei festgelegte Felder in den Segmentuhd/oder Prozedur-Descriptors den Adreßraum der
verschiedenen Prozesse des Systems je nach Privilegstufen zuweisen. Hardware-Überprüfungen stellen fest, ob
die von einem Prozeß benutzte Adresse zu dem diesem Prozeß zugewiesenen Adreßraum gehört, und wenn sich die
Adresse außerhalb der zugewiesenen Privilegstufe befindet, wird der Zugang zu der adressierten· Information
abgelehnt.
Die Erfindung wird nun anhand der Zeichnung beispielshalber erläutert. Es zeigen:
Fig.1 das B]_ockdiagramm eines Computer-Systems, in dem
die Erfindung zur Anwendung kommt,
Fig.2 ein schematisches Diagramm, das die Privilegstufen
der Erfindung darstellt,
Fig.3 ein Flußdiagramm der in der Erfindung angewendeten
segmentierten Adreßstruktur,
Fig.4A bis J. schematische Diagramme der verschiedenen neuartigenHardwarestrukturen, die in der Erfindung
zur Anwendung kommen,
Fig.5 ein schematisches Diagramm der Computer-Ringschutz-Hardware
,
509825/0928
Fig.6 ein schematisches Diagramm der segmentierten Adressierungs-Hardware
des Computers,
Fig.7a-7b und 8a-c genaue Logik-Blockschaltbilder der Ringschutz-Hardware;
Fig.9a bis 9h die Erklärung der in den Diagrammen verwendeten
Symbole,
Fig.10 ein schematisches Diagramm der drei Stack-Segmente,
jeweils eins für Ring 0, 1 und 3,
Fig.11A das Format des Eingabe-Prozedur-Befehls, Fig.HB das Format eines Prozedur-Descriptors,
Fig.11C das Format eines Durchschalt-Prozedur-Descriptors
GPD, der das erste ¥ort des Segments das die Prozedur-Descriptors bildet,
Fig.11D das Format des Ausgabe-Prozedurbefehls,
Fig.12 ein Flußdiagramm eines Teils des Eingabebefehls,
das zur Ringkreuzung und Ring-Überprüfung gehört,
Fig.13 einen Segment-Descriptor und das Segment, das
die Prozedur-Descriptors enthält,
Fig.14 "bis" 16 Flußdiagramme, die die verschiedenen Operationen
darstellen, die bei der. Ausführung des Eingabe-Prozedur-Befehls durchgeführt werden, und
Fig.17 ein Flußdiagramm des Ausgabebefehls.
5 0 9 82 5/0928
Wie bereits erläutert, hat das Ring-Konzept des Informationsschutzes seinen Ursprung in MULTICS und wurde auf verschiedenen
Honeywell-Computer-Systemen angewendet. Das ursprüngliche MULTICS-Konzept erforderte 64 Ringe oder
Privilegstufen, und die spätere Anwendung besaß das Äquivalent von 2 Ringen auf dem Honeywell 645 und 8
Ringe auf dem Honeywell 6000. Die vorliegende Erfindung faßt Daten- und Prozedursegmente im System in einer
Hierarchie von 4 Ringen oder Klassen zusammen (Siehe Fig.2). Die vier Ringe oder Privilegstufen werden
durch die Ganzzahlen 0 bis 3 identifiziert; jeder Ring stellt eine Privilegstufe im System dar, wobei die
Stufe 0 das höchste und die Stufe 3 das niedrigste Privileg besitzt. Die Stufe 0 ist als der innerste Ring und
Stufe 3 als der äußerste Ring bekannt. Der grundlegende Begriff, der bereits erläutert wurde, ist der,
daß eine Prozedur, die zu einem inneren Ring gehört, freien Zugriff auf Daten eines äußeren Ringes hat. Umgekehrt
kann eine in einem äußeren Ring befindliche Prozedur nicht auf Daten eines inneren Ringes zugreifen, ohne eine
Schutz-Überschreitungsausnahme hervorzurufen. Die Übertragung der Kontrolle zwischen Prozeduren wird mit
einem Schutzmechanismus überwacht, so daß eine Prozedur-Ausführung in einem äußeren Ring keine direkte Verzweigung
zu einer in einem inneren Ring befindlichen 'Prozedur durchführen kann. Dieser Typ der Übertragungs-Kontrolle
wird nur durch die Durchführung eines besonderen Prozedur-Aufruf-Befehls möglich. Dieser
Befehl ist auf mehrere Arten vor Mißbrauch geschützt. Es ist ein Durchschalt-Mechanismus vorhanden, um zu
gewährleisten, daß ein Eintritt in Prozeduren nur über vorgesehene Eintritts-Punkte möglich ist, die beim
509825/0928
Überkreuzen von Ringen als Tore bezeichnet werden. Der
Segment-Descriptor einer solchen Prozedur enthält ein Tor-Bit, welches angibt, daß ein Eintritt in die in diesem
Segment befindliche Prozedur nur über Tore möglich ist. Die diese.Tore betreffenden Informationen sind am Anfang
der Segmente enthalten und werden von der Hardware zum Eintritt an einem legalen Eintritts-Punkt verwendet,.
Die Prozedur selbst muß nun überprüfen (auf eine Art, die notwendigerweise von der Funktion der Prozedur abhängt),
ob sie legal aufgerufen wird. Ein weiterer Hardware-Schutzmechänismus
steht für den Fall zur Verfügung, daß die aufrufende Prozedur eine Adresse als Parameter
angibt; es ist dann möglich, daß die privilegiertere Prozedur fälschlicherweise Informationen ändert, die sich
in dieser Adresse befinden, was der weniger privilegierte Aufrufer nicht hatte tun können, da ihm der Ringmechanis*·
mus den Zugang verwehrt hätte. Zur Vermeidung dieser Möglichkeit steht ein Adreß-Freigabebefehl zur Verfügung.
Eine wichtige Vereinbarung ist hier erforderlich, um den
Prozedur-Aufrufmechanismus zu schützen. Diese Vereinbarung legt fest, daß es nicht allgemein zulässig ist,
dieeen Mechanismus zum Aufrufen einer Prozedur in·einem
weniger privilegierteren Ring zu benutzen und in einen .höher privilegjß rten Ring zurückzukehren. Diese Einschränkung
ist notwendig, da nicht gewährleistet ist, daß die im höheren Ring befindliche Prozedur tatsächlich
zurückkehrt, daß sie nicht, freiwillig oder absichtlich, Informationen zerstört, auf die die privilegiertere
Prozedur baut, oder daß sie nicht zufällig oder absichtlich die Sicherheit des Stack (Definition siehe "Erläuterung
509825/0928
der verwendeten Ausdrücke") verletzt. Jeder dieser Vorgänge könnte zu unvorhersehbaren Resultaten und zum-Zusammenbruch
des Systems führen.
Die Privilegstufen sind relativ unabhängig vom
ρ
rozeß-Steuermechanismus, und es sind hier nicht wie
rozeß-Steuermechanismus, und es sind hier nicht wie
im IBM-System 360 privilegierte und nicht-privilegierte Prozesse beabsichtigt. Vielmehr kann der gleiche Prozeß
Prozeduren auf verschiedenen Privileg-Stufen (Ringen) durchführen, abgesehen von durch den Ringmechanismus
auferlegten Einschränkungen.In diesem Sinne kann der Ringmechanismus
als Möglichkeit zur Unterteilung des gesamten Adreßraums betrachtet werden, der einem Prozeß gemäß der
Privilegstufe zugewiesen ist.
Der hier definierte Ringmechanismus ermöglicht es ein und demselben Segment, gleichzeitig bis zu drei verschiedenen
Ringen anzugehören, d.h. jeder Segment-Descriptor enthält drei Ringnummern, eine für jeden der möglichen
Zugriffstypen.
Daher kann sich ein und dasselbe Segment in Ring 1 für den Schreib-Zugriff, im Ring 2 für den Ausführungs-Zugriff und
in Ring 3 für den Lese-Zugriff befinden. Ein offensichtlicher Anwendungsfall hierfür ist der Fall eines Prozedur-Segments,
das nur von Ring 0 (möglicherweise dem Lader) geschrieben werden, jedoch in Ring 3 ausgeführt werden
kann.
Von den vier verfügbaren Ringen sind zwei dem Betriebssystem und zwei den Benutzern zugewiesen. Ring 0, der Ring
mit dem höchsten Privileg, ist für diejenigen Betriebssystem-Segmente reserviert, die für die Funktion des
gesamten Systems unerläßlich sind. Diese Segmente bilden den harten Kern, dessen einwandfreies Funktionieren-zu
509825/0928
allen Zeitpunkten lebenswichtig ist, um eine Katastrophe zu verhindern. Einbezogen wären hierbei die System-Informationsbasis,
diejenigen Prozeduren, die sich auf die Organisation des räumlichen Speichers oder den Start
von räumlichen Datenübertragungs-Operationen beziehen, und die Mechanismen, die die' System-Funktionen, wie
den Ausnahme-Supervisor, den Planer und die Hilfsquellen Verwaltung
durchführen.
Ring 1 enthält wesentlich mehr Betriebssystem-Segmente,
deren Ausfall nicht zu einer Katastrophe führen, sondern einen Wiederstart ermöglichen würden/Hierzu gehören die
Sprachübersetzer, die Daten- und Meldungs-Verwaltung, und die Job- und Prozeß-Ver.waltung.Aufgrund der zwei für
das Betriebssystem verfügbaren Ringe ist das Problem der Aufrechterhaltung der System-Integrität besser beherrschbar
geworden, da der kleinere harte Kern, der kritisch ist,isoliert iSt und sorgfältig geschützt werden kann.
Die Ringe 3 und 4 stehen für den Benutzer zur Durchführung vonZuordnungen entsprechend seinem Bedarf zur Verfügung.
Zwei wichtige Möglichkeiten sind die Entstörungsund Eigentumsprogramme. Die entstörten Programme können
dem Ring 4 zugeordnet werden,wogegen die überprüften
Programme und die Daten, mit denen sie arbeiten, sich in Ring 3 befinden können; auf diese Weise können die Auswirkungen von Fehlern lokalisiert werden. Eigentums-Programme
können durch Unterbringung in Ring 3 vor ihren Benutzern geschützt werden, wogegen die letzteren den
Ring 4 zugewiesen bekommen. Auf diese und andere Arten können die beiden Ringe flexibel in Anwendungen benutzt
werden.
509825/0928
1. Eine Prozedur in einem innerenRing, wie Ring 2, Fig.2,
hat freien Zugriff zu Daten in einem äußeren Ring, wie Ring 3, und es ergibt sich ein legaler Zugriff (Pfeil 201).
Andererseits hat eine Prozedur in einem äußeren Ring, wie Ring 3, keinen Zugriff zu Daten, die sich in einem inneren
Ring, wie Ring 2, befinden und ein Versuch eines Zugriffs löst einen illegalen Zugriff.(Pfeil 202) aus.
2. Eine in einem äußeren Ring, wie Ring 3, befindliche Prozedur
kann über das Tor 204 zu einem inneren Ring wie Ring springen, was zu einer legalen Verzweigung 203 führt? eine
Prozedur, die in einem inneren Ring, wie Ring 2, abläuft, kann jedoch nicht auf einen äußeren Ring, wie Ring 3,
springen.
3. Jedem Segment, das Daten enthält, sind zwei Ringwerte zugeordnet, einer für Lesen (RD) und einer für Schreiben
(WR). Diese Ringwerte geben den maximalen Ringwert an, bei dem eine Prozedur beim Zugriff zu Daten entweder im
Lese- oder im Schreib-Modus ablaufen kann.
Jedesmal, wenn ein Prozedurbefehl ausgeführt wird, erfolgt eine Überprüfung der Prozedur-Ringnummer (tatsächliche
Adreßringnummer EAR) gegenüber den Ringnummern, die dem die Adressierten Daten enthaltenden Segment zugeordnet sind.
EAR ist die höchste Nummer der Prozeßringnummern im Prozessor-Befehlszähler (siehe spätere Beschreibung) und
aller Ringnummern der Basis-Register und Daten-Descriptor-s,
die sich im Adressierungs-Pfad befinden. Auf der.Basis eines
Vergleichs der Ringnummern wird der Zugang zu den Daten freigegeben oder gesperrt. Wenn zum Beispiel in einem
Segment mit einem maximalen Lese-Ringwert von 3 und einem
maximalenSchreib-Ringwert von 1 eine Systemtabelle vorhanden
509825/0928
ist, kann die in Ring 3 ablaufende Benutzerprozedur die
Tabelle lesen, diese jedoch nicht durch Schreiben aktualisieren.
Der Prozedur-Aufruf-und Stack-Mechanismus ist ein wichtiger
Mechanismus, der vom-Ringschutz-Mechanismus der vorliegenden Erfindung benutzt wird.
Prozedur-Aufrufe werden benutzt, um von einer Prozedur auf eine andere überzugehen, den Benutzer-Prozeduren den Gebrauch
der Dienste des Betriebssystems· zu ermöglichen und innerhalb des Betriebssystems eine modulare Struktur zu erzielen.
Ein Prozedur-Aufruf wird mit Hilfe von Befehlen und einer
von der Hardware erkannten Größe, die als Stack bezeichnet wird, durchgeführt. ·
Ein Stack ist ein Mechanismus, der auf der Basis "zuletzt
hinein- zuerst heraus" die Aufnähme,Speieherung und das
Wiederauffinden von Daten ermöglicht. Stacks befinden sich in speziellen Segmenten, die als Stack-Segmente bezeichnet
werden. Ein Stack-Segment besteht aus einer Anzahl von aneinander angrenzenden Teilen, die als Stack-Rahmen
bezeichnet werden und jeder Prozedur dynamisch zugewiesen
werden. Der erste Stack-Rahmen wird in das untere Ende
des Segments geladen und die darauffolgenden Rahmen danach.
Der letzte geladene Rahmen wird als Spitze des Stacks betrachtet. Ein T-Register 114 (Fig.1) lokalisiert die
Spitze des Stacks für den gerade aktiven Prozeß. Ein virtuelles T-Register ist im Prozeß-Steuerblock (PCB)
aller anderen Prozesse innerhalb des Systems vorhanden.
5 0 9 8 2 5/0928
Ein Stack-Rahmen besteht aus drei Zonen: einer Arbeitszone, in der Variable gespeichert werden, einer Sicherstellungs-Zone,
in der der Inhalt von Rgistern sichergestellt wird und einer Kommunikations-Zone, in die Parameter zwischen
Prozeduren eingegeben werden. Vor einem Prozeduraufruf muß der Benutzer diejenigen Register angeben, deren Inhalt er
sicherstellen möchte, und er muß die zur aufgerufenen Prozedur durchzugebenden Parameter in die Kommunikations-Zone
eingeben. Wenn der Aufruf erfolgt ist, stellt die Hardware den Inhalt des Befehlszählers und der angegebenen
BasLs-Register sicher, um die Rückkehr von der aufgerufenen Prozedur zu erleichtern.
Jeder Prozeduraufruf erzeugt einen Stack-Rahmen.innerhalb
eines Stack-Segments,und anschliessende Verfahrensaufrufe
erzeugen zusätzliche Rahmen. Jeder Austritt aus einer dieser aufgerufenen Prozeduren bewirkt die Löschung eines Stack-Rahmens
innerhalb des Stacks. Daher wird eine Geschichte der Aufrufe festgehalten, um eine geordnete Rückkehr
zu erleichtern.
Um den Schutz zwischen Prozeduren, die in verschiedenen Ringen ablaufen zu gewährleisten, werden verschiedene
Stack-Segmente benutzt. Ein Stack-Segment entspricht jedem Schutzring pro Prozedur. Ein Prozeß-Steuerblock
(P.CB) enthält drei Stack-Basis-¥orte (SBW), die auf
den Start des Stack-Segments für die mit dem Verfahren verbundenen Ringe 0, 1 und 2 hinweisen. Das Stack-Segment
von Ring 3 kann niemals über einen nach innen gerichteten Aufruf eingegeben werden; daher ist seine Stack-Startadresse
nicht im PCB erforderlich.
Der Prozedur-Aufruf wird von Benutzern verwendet, die ihre
Programme modular geschrieben haben,um von einem Programm-
509825/0928
Modul zu einem anderen überzugehen. Der Aufruf wird von Benutzer-Programmen verwendet, die die Dienste des Betriebssystems
benutzen wollen. Der Aufruf wird vom Betriebssystem selbst benutzt, um eine entsprechende Modularstruktur zu
erreichen.·
Die Hauptanforderungen an einen Prozedur-Aufrufmechanismus sind: -■-".·
1. Überprüfung des Rechtes des Aufrufers, mit dem Aufrufer
in Verbindung zu treten.
2. Sicherstellung des Aufrufer-Status, was Sicherstellungsregister,
Befehlszähler (für die Rückkehr) und andere Status-Bits beinhaltet;
3. Ermöglichen der Eingabe von Parametern;
4. Feststellen des gültigen Eintritts-Punktes für die aufgerufene Prozedur;
5. Durchführung aller erforderlichen Einstellungen im Adressierungamechanismus;
6. Eintritt in.die neue Prozedur.
Wenn die aufgerufene Prozedur zu Ende ist oder austritt,
muß alles, was auch beim Aufruf geschehen ist, rückgängig werden, so daß der Status der aufrufenden Prozedur wieder
zu dem wird, was er vor dem Aufruf war.
Vor der Durchführung eines Prozedur-Aufrufs wird der Befehl "REPARE STACK"(Stack vorbereiten) durchgeführt.
Dieser Befehl bewirkt eine Speicherung der vomProgrammierer
509825/092 8
• im Befehl spezifizierten Register im Stack.Er bewirkt
eine Sicherstellung des Status-Registers'(Fig.1);
er stellt dem Programmierer einen Hinweis für den Parameter-Raum zur Verfugung, in dem er nun die an die aufgerufene
Prozedur durchzugebenden Informationen laden kann.
Ein weiterer Befehl "ENTER PROCEDURE"(Prozedur eingeben) ermöglicht den Prozeduraufruf mit Hilfe der folgenden
Schritte,die den oben aufgeführten Anforderungen entsprechen :
1. Ring-Überprüfung - der Ring des Aufrufers wird überprüft,
um zu gewährleisten, daß dieser Ring die neue Prozedur aufrufen kann; der Aufruf muß zu einer
kleineren oder gleichen Ringnummer durchgeführt werden; und wenn eine Ringkreuzung auftritt, muß die neue Prozedur
über ein T>r 204 von Fig.2 geleitet werden. Die neue Ringnummer entspricht dann der der aufgerufenen
Prozedur;
2. Der Inhalt des Befehlszählers wird sichergestellt;
3. Das Basis-Register (siehe Fig.1) wird auf 0 positioniert,
um tatsächlich auf die durchgegebenen Parameter hinzuweisen;
4. Der Eintrittspunkt der aufgerufenen Prozedur ergibt sich aus einem Prozedur-Descriptor, dessen Adresse
im Befehl "ENTER PROCEDURE» enthalten ist;
5. Ein Hinweis zur Verkettungs-Information wird im Basis-Register Nr.7 geladen;
6. Die neue Prozedur wird durch Laden der neuen Ringnummer
und der Adresse des Eintrittspunktes in den Befehlszähler eingegeben.
509825/0928
Der Rest des gegenwärtig benutzten Stack-Rahmens steht
ebenfalls der aufzurufenden Prozedur zur .Speicherung von
örtlichen Variablen zur Verfügung.
Wenn die aufgerufene Prozedur eine Rückkehr erfordert,
führt sie den Befehl"EXIT PROCEDURE"(Prozeß-Ausgabe .)
durch. Der Inhalt der Register und des Befehlszählers wird nun aus den im Stack befindlichen Sicherstellungszonen
zurückübertragen.
Beschreibung des bevorzugten Ausführungsbeispiels ■
In Fig.1 sind ein Blockdiagramm und ein Computer-Hardware-System
dargestellt, das die Erfindung anwendet. Ein Hauptspeicher 101 besteht aus vier Metalloxyd-Hälbleiter-Speichermodulen
(MOS -Speichermodulen) Die vier Speichermodule 1 bis 4 sind über den Hauptspeicher-Sequenzer 102 mit der
zentralen Verarbeitungseinheit 100 verbunden. Die vier Speichermodule 1. bis 4 sind ebenfalls über den Hauptspeicher-Sequenzer
102 und den IOC (nicht abgebildet) mit dem Peripherie-Untersystem, z. B-. den hagnetbande inhe iten und Platteneinheiten
(nicht abgebildet), verbunden. Der Hauptspeicher-Sequenzer ermöglicht den Zugriff auf allen vier Speichermodulen
sowie deren Steuerung.
Die Funktionen der CPU werden von einem Festspeicher (ROM), der hier als Steuerspeichereinheit 110 bezeichnet wird,
gesteuert.
Der Steuerspeicher-Interface-Adapter 109 ist in Verbindung
mit der Steuerspeichereinheit 110, derDatenfluß-Steuereinheit 106, der Ädreß-Steuereinheit 107 und der arithmetischen Logikeinheit 112, um den Betrieb des Steuerspeichers
zu steuern. Der Pteuerspeicher-Interface-Adapter 109
5 0 9 8 2 5/0928
beinhaltet eine Logik zur Adreßänderung des Steuerspeichers, zum Testen, zur Fehlerüberprüfung, und zur
Hardware-Adreßerzeugung.Die Hardware-Adreßerzeugung wird im allgemeinen zur Entwicklung der Startadresse
von Fehlersequenzern oder für dielnitialisierungs-Sequenz verwendet.
Der Pufferspeicher 104 wird zur Speicherung der am meisten oder der auletzt gerade benutzten Informationen verwendet,
die von der CPU verarbeitet werden.
Die Datenfluß-Steuereinheit 106 führt die Interface-Funktion zwischen der CPU 100 und dem Hauptspeicher 101 und/oder
dem Puffer-Speicher 104 durch. Während einer Speicher-Leseoperation
können Informationen im Hauptspeicher oder im Pufferspeicher lokalisiert werden.Die Datenfluß-Steuereinheit
hat die Aufgabe, festzustellen, welche Einheit die Informationen enthält und diese Informationen zum
richtigen Zeitpunkt den CPU-Registern zuzuleiten.Die Datenfluß-Steuereinheit führt ebenfalls die Maskierung
während partieller Schreiboperationen durch.
Die Befehlserfassungseinheit 108, diemit der Datenfluß-Steuereinheit
eines Stacks der Adreß-Steuereinheit 107, der arithmetischen Logik-Einheit 112 und der Steuerspeicher-Einheit
110 über Interface-Funktionen verbunden ilst, hat die Aufgabe, der CPU 100 ständig Befehle zuzuführen.
Die Adreß-Steuereinheit 107 ist mit der Befehls-Erfassüngs-Einheit
108", dem Pufferspeicherverzeichnis 105, dem Hauptspeicher-Sequenzer
102, der arithmetischen Logik-Einheit 112, der Datenfluß-Steuereinheit 106 und der Steuerspeicher-Einheit
110 über den Steuerspeicher-Interface-Adapter 109 verbunden.Die Adreß-Steuereinheit 107 ist für die gesamte
509825/0928
Adreß-Entwicklung in der CPU verantwortlich. ·
Die arithmetische Logikeinheit 112, die über Interface-Funktionen
mit der Adreß-Steuereinheit 107» der Befehls-Erfassungseinheit
108 und dem Steuerspeicher.110 verbunden ist, ist die Hauptarbeitszone der CPU 100. Ihre Hauptfunktion
besteht darin, die von der CPU angeforderten arithmetischen Operationen und Datenmanipulationen durchzuführen.
Mit der arithmetischen Logikeinheit 112 und der Steuerspeicher-Einheit
110 ist die lokale Speiehereinheit 111
verbunden, die typischerweise aus einem 256-Positions-Festkörperspeicher
(32"*Bits pro Position) und der Auswahl-
und Lese/Schreib-Logik für den Speicher besteht.
Die lokale Speichereinheit 111 wird zur Speicherung von CPU-Steuerinformationen .und iJartungsinformationen benutzt.
Zusätzlich enthält die lokale Speichereinheit 111
Speicherpositianen, die hauptsächlich' zur zeitweiligen
Speicherung von Operanden und Teilresultaten während Datenmainpulationen verwendet werden.
Die zentrale Verarbeitungseinheit 100 enthält typischerweise 8 Basis-Register (BR) 116, die bei der Adreß-Entwicklung
zur Definierung einerSegment-Nummer, eines
Offset und einer Ringnummer verwendet werden. Der Offset ist ein Hinweis innerhalb des Segments,und die
Ringnummer wird in der Adreß-Legalitätsrechnung verwendet,
um die Zugriffsrechte für eine bestimmte Zugriffsoperation zu einem Segment zu überprüfen.
Der Befehlszähler 118 ist mit dem lokalen Register des Hauptspeichers
(MLR) 103 und der Befehlserfassungs-Einheit verbunden; er ist ein 32-Bit-Register, das die Adresse
509825/0928
des nächsten Befehls und die gegenwärtige Ringnummer des Prozesses (PRN) enthält. Die zentrale Verarbeitungs-Einheit
beinhaltet weiterhin ein T-Register 114, das über Interface-Funktionen mit der Befehls-Erfassungseinheit
108 verbunden ist und typischerweise ein 32-Bit-Register ist, das eine Segmentnummer und eine positive
16-Bit- oder 22-Bit-Ganzzahl enthält , mit dem die
relative Adresse der Spitze der Prozedur-Stacks festgelegt wird. Das Status-Register 115 ist ein 8-Bit-Register
in der CPU, das unter anderem die letzte Ringnummer enthält, d.h. den vorherigen Wert der Prozedur-Ringnummer
(PRN),
Der Hauptspeicher 101 wird durch das Speicher-Adreßregister (MAR) 119 adressiert,und die von (MR) 119 adressierte
Information wird abgegriffen und zwischenzeitlich im Speicher-Lokal-Register (MLR) 103 gespeichert.
In Fig.3 ist ein Flußdiagramm der allgemeinen Regeln
für die sggmentierte Adreßentwicklung dargestellt.
Bei der in Fig.3 dargestellten Adreßentwicklung können
16 indirekte Adressierungspegel in der Adreßentwicklung benutzt werden. Dies ist natürlich für den Konstrukteur
lediglich eine Frage der Auswahl.
In den Fig.4A bis 4j stellen die Fig.4A und 4B das Format des durch das Bezugszeichen 118 smn Fig.1 gekennzeichneten
Befehlszählers dar. Der Befehlszähler (IC) ist ein 32-Bit-Register, das die Adresse des nächsten
Befehls, und die gegenwärtige Ringnummer des Prozesses (PRN) enthält. Gemäß den Fig. 4A und'4B ist das TAG ein
2-Bit-Feld. PRN ist ein 2-Bit-Feld, das die gegenwärtige
Ringnummer des zur Festlegung der Zugriffsrechte zum Haupt-
509825/0928
Speicher zu benutzende Prozesses angibt. SEG ist typischerweise
entweder ein 12-Bit- oder ein" 6-Bit-Feld, das die
Nummer des Segments angibt, in dem die Befehle durchgeführt werden sollen. Das OFFSET ist typischerweise entweder
ein 16-Bit-oder'ein 22-Bit-Feld, das die Adresse des
Befehls innerhalb des SEG-Segments definiert.
Die Fig.4C bis 4F stellen das Format von Segment-Descriptors dar, wobei die Fig.4c und 4D das erste und
zweite Wort eines direkten Segment-Descriptors darstellen, wogegen in den Fig. 4E und 4F das erste und das zweite
Wort eines indirekten Segment-Deöcriptors gezeigt ist.
Die Länge der Segment-Descriptors beträgt 2 Worte, jedes
Wort besteht aus 32 Bits. In den Fig.4c bis 4D ist jeweils
das erste und das zweite Wort eines direkten Segment-Descriptors dargestellt. P ist ein Anwesenheits-Bit.
Wenn P gleich 1 ist, befindet sich das vom Segment-Descriptor definierte Segment im Hauptspeicher,
wenn P gleich Null ist, ist das Segment nicht vorhanden, und ein Zugriff zum Segment-Descriptor löst eine Ausnahme
"fehlendes Segment" aus. Alle anderen Felder innerhalb eines Segment-Descriptors haben nur dann eine
Bedeutung, wenn P den Wert 1 hat. A ist das Verfügbarkeits-Bit. Wenn A gleich Null ist, ist das Segment nicht verfügbar
(oder gesperrt), und ein Zugriff zum Segment löst eine Ausnahme "Segment nicht verfügbar" aus. Wenn A
gleich Eins ist, ist das Segment verfügbar (oder freigegeben), und es kann erfaßt werden. I ist das Umleitungs-Bit.
Wenn I gleich Null ist, ist der Segment-Descriptor direkt. Wenn I gleich Eins ist, ist der Segment-Descriptor indirekt.
U ist das Benutzt-Bit. Wenn U gleich Null ist, ist kein Zugriff auf das Segment erfolgt. Wenn U gleich Eins ist,
ist ein Zugriff auf das Segment erfolgt. U wird durch
50982B/0928
— 2ο —
jeden Segment-Zugriff auf Eins gesetzt. ¥ ist das Geschrieben-Bit.
Wenn W gleich Null ist, ist im Segment keine Schreiboperation durchgeführt worden. Wenn W gleich 1 ist,
ist im Segment e.ine Schreiboperation durchgeführt worden. W wird durch alle Schreiboperationen gesetzt.GS ist das
Durchschalt-Semaphor-Bit. Wenn der bereits erwähnte Verfahrensaufruf-Mechanismus
erfordert, daß das Segment ein Durchschal t-Segment ist.oder wenn der Prozedur-Kommunikations-Mechanismus
(nicht dargestellt) erfordert, daß das Segment ein Segment-Descriptor-Segment (SD) ist, werden die
GS-Bits überprüft. Um ein gültiges· Durchschaltsegment zu sein, müssen die GS-Bits den Wert 10 haben. Um ein gültiges
SD-Segment zu sein, müssen die GS-Bits den Wert 01 haben. Wenn ein Durchschalt- oder ein SD-Segment nicht
erforderlich ist, werden diese Bj_ts ignoriert. Das BASE
ist ein 24-Bit-Peld, das die absolute Adresse in Vierfachworten des ersten Bytes des Segments definiert. Dieses
Feld wird mit 16 multipliziert, um die Byte-Adresse der Segment-Basis zu errechnen. Das SIZE-FeId wird zum
Errechnen der Segment-Größe verwendet. Wenn STN größer oder gleich Null jedoch kleiner oder gleich 6 ist,
beträgt die Länge des SIZE-Feldes 18 Bits. Wenn STN
größer oder gleich 8, jedoch kleiner oder gleich 15 ist, beträgt die Größe des SIZE-Feldes 12 Bits. Die Anzahl der
Bytes im Segment beträgt I6x (SIZE +1). Wenn SIZE Null ist, beträgt die Segment-Größe 16 Bytes. RD ist das Lese-Zügriff
sfeld. Dieses 2-Bit-Feld gibt die maximale EAR an (tatsächliche Adreß-Ringnummer) bei der eine Leseoperation
im Segment zulässig ist. (Eine Prozedur kann immer ihr eigenes Segment lesen, wenn EAR gleich PRN
ist). WR ist das Schreib-Zugriffsfeld. Dieses 2-Bit-Feld
gibt die maximaleEAR an? bei der eine Schreiboperation im Segment zulässig ist und die minimale PRN bei der
509825/0928
das Segment durchgeführt werden kann. MAXR ist die maximale Ringnummer. Dieses 2-Bit-Feld gibt die maximale PRN an,
bei der das Segment benutzt werden kann.WP ist das Schreiberlaubnis-Bit.
Dieses Bit gibt an, ob eine Schreib-Operation am Segment durchgeführt werden kann. Wenn WP
gleich Null ist, kann keine Schreiboperation durchgeführt werden. Wenn WP gleich Eins ist, kann eine Schreiboperation
durchgeführt werden, v/enn EAR gleich oder größer als Null, jedoch gleich oder kleiner als WR ist. EP ist
ein Ausführungserlaubnis-Bit. Dieses Bit gibt an, ob das Segment benutzt werden kann. Wenn EP gleich Null ist,
darf, das Segment nicht benutzt werden. Wenn EP gleich Eins ist, kann das Segment bei jeder PRN benutzt werden,
bei der PRN gleich oder größer als WR, jedoch gleich oder kleiner als MAXR ist. MBZ ist ein Sonderfeld, das, wenn/i
erzeugt wird, vor seinem Gebrauch durch die Hardware von der Software auf Null gelöscht werden muß.
In den Fig. 4E-bis 4F sind die dargestellten Definitionen
der verschiedenen Felder ähnlich den bereits aufgeführten; das Wort 0 beinhaltet jedoch ein "Speicherplatz-Feld und
Wort 1 ein RSU-FeId. Das Speicherplatz-Feld ist ein 28-Bit-Feld,
das die absolute Adresse eines direkten Segment-Descriptors
angibt. Der Wert im Speicherplatz-Feld muß ein Vielfaches von 8 betragen. Das RSU-FeId ist ein für
Spftware-Zwecke reserviertes Sonderfeld. Die Fig.4G bis 4h stellen das Format der Basis-Register dar (BR),
die im Adreß-Errechnungs-Prozeß zur definition einer Segmenttabellen-Nummer, einer Segmenttabellen-Eingabe-Nummer,
eines OFFSET und einer Ringnumer verwendet werden.
509825/0928
Gemäß Fig.1 und Markierung 116 sind typischerweise 8 Basis-Register
vorhanden. Ein Basis-Register wird als Basisregister O bis 7 spezifiziert oder identifiziert. Die Größe
eines Basis-Registers beträgt 32 Bits. Das Basis-Register-Format von Fig.4G wird für kleine Segmente benutzt, d.h.
Segmente, bei denen STN gleich oder größer als 8, jedoch kleiner oder gleich 15 ist, wogegen das Format des
Basis-Registers von Fig.4H für große Segmente verwendet wird, d.h. Segmente, bei denen STN größer oder gleich
Null,jedoch kleiner oder gleich 6 ist. In den Fig.4G bis 4h ist TAG ein 2-Bit-Feld,das dem TAG des bereits erwähnten
Daten-Descriptors entspricht.RING ist ein 2-Bit-Feld,
das für Schutzzwecke die mit der segmentierten Adresse verbundene Ringnummer enthält.Das bereits erwähnte SEG-FeId
identifiziert ein in einer Segmenttabelle beschriebenes Segment. STN ist die Segment-Tabellennummer und
STE ist die Segmenttabellen-Sintragsnummer. OFFSET ist je
nach Segmenttabellen-Nummer ein 16-Bit oder ein 22-Bit-FeId, das eine positive ganze Zahl definiert. OFFSET
wird bei der AdreßentwickLung als Hinweis innerhalb eines Segments benutzt.
In den Fig.4l bis 4j ist das Format des T-Registers
dargestellt.Das T-Register ist ein 32-Bit Register, das eine Segmentnummer und eine positive 16-Bit-oder 22-Bit-Ganzzahl
enthält, mit dem die relative Adresse der Spitze •des bereits erwähnten Prozedur-Stacks definiert wird.
Das T-Register ist in Fig.1 durch die Markierung 114 gekennzeichnet.
Die verschiedenen Felder des T-Registers entsprechen der oben aufgeführten Definition.
Die Fig. 3 und 4A bis 4j enthalten eine detailliertere Beschreibung
der Berechnung der bbsoluten Adresse sowie der Zugriffs-Überprüfung. Im allgemeinen besteht die Berechnung
der absoluten Adresse aus dem Aufrufen eines durch STN
509825/0928
und STE angegebenen Segment-Descriptors und der Benutzung
des Segment-Descriptors auf vier Arten:
Zugriffsüberprüfung, Berechnen der absoluten Adresse, Begrenzungs-Überprüfung und Aktualisierung (U und W-Kennmarken).
Die absolute Adresse kann direkt oder indirekt sein, und sie wird durch eine erste Ableitung einer tatsächlichen
Adresse aus STN, STE und SRA (relative Segmentadresse) erzeugt. STN wird aus den Bits 4 bis 8 des in der Befehlssilbe eines Befehls spezifizierten Basis-RegistersBR erzeugt.
'Wenn STN gleich 7 ist, wird eine Ausnahme "Überschreitung der Segmenttabellen-Wortmatrix " erzeugt. STE
wird aus dem in der Adreßsilbe spezifizierten Basis-Register erzeugt. Wenn STN 4:4 ist (d.h. bei Bit 4 beginnt
und die nächsten 4 Bits mit einschließt), und größer oder gleich Null oder kleiner oder gleich 6 ist, befindet sich
STE in den Bits 8 und 9 eines Basis-Registers.Wenn STN
4:4 ist (d.h. 4 Bits beginnend mit Bit 4) und größer oder
gleich 8, jedoch kleiner oder gleich 15 ist, befindet sich STE in den Bits 8 bis 15 eines Basis-Registers BR.
Die relative Segment-Adresse SRA für die direkte Adressierung wird durch Addition der Verschiebung in der Adreßsilbe,
des OFFSET desBasis-Registers BR und des 32-Bit-Inhalts
eines Index-Registers, wenn in der Adreßsilbe spezifiziert, errechnet. Die Summe dieser drei Größen-ist eine vorzeichehlos*e
binäre 32-Bit-Ganzzahl, die kleiner als die den Segmenten STNjSTE entsprechende Pegmentgröße sein muß.
Die indirekte Adressierung erfolgt durch Aufrufen eines Daten-Descriptors und Berechnen einer Adresse aus diesem
Descriptor.Die tatsächliche Adresse des Dat-en-Descriptors
wird wie bei der direkten Adressierung errechnet, mit dem Unterschied, daß der Inhalt des Hinweisregisters nicht benutzt
509825/0928
2456802
wird.Bei der Entwicklung der Adresse aus dem Daten-Descriptor
kann die tatsächliche Adresse durch eine indirekte Adressierung zu einem ITS-Segment-Descriptor und eine
indirekte Adressierung zum ITBB-Basis-Descriptor errech- ■
net werden. Wenn es sich um den ITS-Descriptor handelt, - werden STN und S-TE in der gleichen Weise wie bei einem
Basis-Register aus dem Descriptor abgegriffen. SRA wird durch Addition der Verschiebung innerhalb des Descriptors
mit dem Inhalt eines in der Adreßsilbe spezifizierten Hinweis-Registers errechnet. Wenn der Descriptor ein ITBB-Descriptor
ist, werden STN undSTE aus dem im BBR-FeId
des Descriptors in gleicher Weise wie bei der direkten Adressierung abgegriffen (d.h. das vomITBB-Descriptor
benutzte Basis-Register). SRA wird durch Addition der Verschiebung innerhalb des Descriptors mit dem OFFSET
des Basis-Registers und dem Inhalt eines in der Adreßsilbe spezifizierten Hinweis-Registers errechnet.
Wie in Fig.3 dargestellt, kann der indirekte Adressierungsprozeß bis auf i6Pegel erweitert werden.
Jede tatsächliche Adresse enthält Schutzinformationen, die bei der Adreßentwicklung errechnet werden und die Zugriffsrechte der Ringschutz-Hardware des absoluten Adreß-Berechnungsmechanismus
überprüfen. Die tatsächliche Adresse enthält Schutzinformationen in Form einer tatsächlichen Adreß-Ringnummer
EAR. Die EAR wird aus der Basis-Register-Ringnummer BRN und der Ringnumner des laufenden Prozesses PRN
durch Abgreifen der maximalen Ringnummer errechnet. Bei der
Entwicklung der EAR für die indirekte Adressierung kommt eine etwas umständlichere, jedoch im wesentlichen mit der indirekten
Adressierung identische Prozedur zur Anwendung. Bei der indirekten Adressierung ist die EAR für das Erfassen des
ersten Descriptors (EAR i) nochmals die maximale Ringnummer des in der Adreßsilbe spezifizierten Basis-Registers
und die Ringnummer des laufenden Prozesses (PRN), der · sich im Befehlszähler 11.8 von Fig.1 befindet und im 00-Register
512 von Fig.5 gespeichert wird. Die EAR für
50 9-8 25/0928
das Erfassen des zweiten Descriptors (EAR 2) der indirekten Vielfachpegel-Adressierung ist das Maximum der folgenden
Werte:
a. EAR I;
b. die Ringnummer im"" ersten Descriptor, wenn die indirekte Adressierung eine indirekte Angabe eines Segments ist;.
c. die Ringnummer aus einem Basis-Register 116, das als
Datenbasis-Register BBR verwendet wird, wenn der erste Descriptor eine indirekte Adresse zum Segment-Descriptor
ITBB darstellt.
Die EAR für das Erfassen der Daten der indirekten Vielfach-Pegel-Adressierung
ist das Maximum der folgenden Werte: ·
a. EAR 2;
b. die R.ingnummer im zweiten Descriptor, wenn dieser ein
• Indirektadressen-Segment-Descriptor ITS'ist;
c. die Ringnummer in einem der als Daten-Basis-Register BBR
benutzten Basis-Register, wenn der zweite Descriptor eine indirekte .Adresse zum Basis-Descriptor ITBB ist.
Irr den Fig. 5 und 6 wird die Übertragung und Handhabung
der verschiedenen Ringnummer-Typen auf Systemebene beschrieben.Die
detaillierten logischen Blockdiagramme für die Durchführung der Übertragungen und: Operationen von Fig.5 werden
später beechr:i£ben. Gemäß Fig.6 wird in der segmentierten
Adreßentv/icklung ein Assoziativ-Speicher 600 verwendet, der in der US-Patentanmeldung 283 617 vom 24.8.1972
beschrieben ist. Der Assoziativ-Speicher 600.beinhaltet
509825/0928
hauptsächlich einen UAS-Assoziator 60 9, dessen Schaltungen Assoziativ-Speicherzellen, Bit-Abtast-Verstärker und -Treiber
sowie Wort-Abtast-Verstärker und -Treiber (nicht abgebildet) beinhalten. Ein Wort oder ein beliebiger Teil
eines im UAS-Assoziator 609 befindlichen Wortes, kann gelesen und mit einem anderen Wort verglichen werden,
wodurch ein Übereinstimmungs- oder Nicht-Übereinstimmungs-Signal erzeugt wird, oder entweder in einem ganzen oder
in einem ausgewählten Teil des Assoziators 609 geschrieben werden. Zum Beispiel kann das US-Register 607 eine Segment-Nummer
enthalten, die sich ebenfalls im Assoziativspeicher 600 befinden kann. Mit dem UAS-Assoziator 609 wird ein
Vergleich durchgeführt, und wenn Gleichheit festgestellt wird, tritt eine Übereinstimmung auf.Das Gleichheits- oder
Übereinstimmungs-Signal wird der Codiereinheit 610 zugeführt. Die Codiereinheit 610 hat die Aufgabe, das Übereinstimmungs-Signal
auf einer der Gleichheitsleitungen in eine 4-Bit-Adresse umzuwandeln. Die Codiereinheit 610 führt diese 4-Bit-Adresse
dem UAB-Assoziator-Pufferspeicher 611 zu, so daß die in dieser speziellen Position des UAB-Asoziator-Pufferspeichers
611 befindlichen Informationen ausgewählt werden. Die im UAB-Assoziator-Pufferspeicher 611 befindlichen Informationen
können zur zeitweiligen Speicherung in das UV-Register 613 übertragen werden oder zur Übertragung jeweils
dem QA- oder QB-Bus 614 bzw. 615 zugeführt werden. Durch
diese Plazierung einer vorgespeicherten Segmentnummer im'Assoziativspeicher 600 (die dort nach einer Entwicklung
einer absoluten Adresse plaziert worden sein kann) ist eine Ro^nerierung der gleichen Adresse nicht erforderlich.
In Fig.6 ist der UAB-Assoziator-Pufferspeicher 611 beim Speichern eines ersten und zweiten Wortes eines Segment-Descriptors
dargestellt; andere Informationstypen können jedoch auch hier gespeichert werden.
509825/0928
Gemäß Fig.6 wird jedes der 8 Basis-Register 602 jeweils
über die UG-und UH-Register 603 bzw. 6o4 adressiert, die
die Basis-Register-Adressen aus einer Befehls-Adreßsilbe
oder einem durch die Befehlsformate spezifizierten Basis-Register enthalten. Die Basis-Register 602 enthalten
Informationen wie z.B. TAG, die Basis-Register-Ringnummer BRN, die Segment-Tabellennummer STN, der Segment-Tabelleneintrag
STE und "OFFSET", die in den Basis-Registern 1 und 2 der Basis-Registergruppe 602 enthalten
(oder abgebildet) sind. Das Schreiben in den Basis-Registern wird von der UWB-Logik 601 unter der Steuerung durch Mikrooperationen
durchgeführt. Als Beispiel ist dargestellt, daß die Informationen aus dem UM-Register 502 von
Fig«5 in die Bit-Positionen (2, 3) eines ausgewählten . Basis-Registers geschrieben werden können;, die Informationen
vom QÄ-Bus können ebenfalls in^die Basis-Register übertragen
werden, und als Vorbereitung wird ein ausgewähltes Basis-Register gelöscht, d.h. mit Nullen aufgefüllt. Das Lesen aus
einem beliebigen dieser Basis-Register wird von der UBR-Logik 605 durchgeführt. Im allgemeinen ermöglicht die UBR-Logik
605 die Übertragung des Inhalts des entsprechenden Basis-Registers auf den QA - oderQB-Bus oder zum UN-Register 608.
Es ist zu bemerken, daß das UN-Register 608 die Bits 8 bis der Basis-Register beinhaltet, die den OFFSET-Teil der segmentierten
Adresse darstellen. Weiterhin liest die UBR-Logik 605 bei Adressierung durch eine imBsfehls-Pufferspeicher
IB enthaltene Adresse (nicht dargestellt)die SEG-Segmentnummer (die aus STN und STE entwickelt wird)
über die UBS-Übertragungslogik 606 in das US-Register
607. Der Vergleich der Segmentnummer SEG im US-Register 607 mit dem Assoziativ-Speicher 600 kann nun, wie bereits
beschrieben, durchgeführt werden. Es ist zu bemerken, daß die Bits (4 bis 15) des QA-Bus ebenfalls in das
509825/0928
US-Register 607 eingelesen oder aus diesem ausgelesen werden können. In gleicher Weise können die Bits 8 ·
bis 31 vom QA-Bus 614 in das UN-Register 608 übertragen werden. Weiterhin können die Bits (9 bis 11) des US*-·
Registers 607, wie vom Pfeil US (9 bis 11) ■gekennzeichnet, in den QA-Bus 614 eingelesen werden
(die Pfeile zu den verschiedenen Registern und/oder Logikschaltungen kennzeichnen die Datenquelle und die
mit einer Nummer versehenen Pfeile kennzeichnen die Bit-Nummern dieser Daten).
Wie in den Fig. 5 und 6 dargestellt, speichert ein 2-Bit-UP-Register 501 die Ringnummer des laufenden Prozesses
PRN. Die Ringnummer des laufenden Prozesses PRN ergibt sich über die Bits IC (2- 3) des QA-Bus 614 von Fig.6 aus den
Bits 2 und 3 des Befehlszählers (118 von Fig.1). Die Bits IC (2-3) des QA-Bus 614 werden unte 'der Steuerung durch eine
Mikrooperation UV9QA0 in das 2-Bit-UV-Register 503 übertragen.Die
Mikrooperationen ergeben sich aus Mikrobefehlen in der Steuerspeicher-Einheit 110. In Fig.5 kennzeichnet
der mit einem Kreis versehene Punkt eine Mikrooperation, und die ersten beiden Buchstaben der Bezeichnung der Mikrooperation
kennzeichnen die Bestimmung der zu übertragenden Daten; der vierte und der fünfte Buchstabe kennzeichnen
die Quelle der übertragenen Daten; das dritte Zeichen kennzeichnet, ob eine vollständige oder eine Teil-Übertragung
durchgeführt wird, wobei F eine vollständige Übertragung kennzeichnet, wogegen das sechste Zeichen angibt,
ob das Signal, das die Übertragung auslöst, einen hohen oder einen niedrigen Wert hat; die geraden Ziffern kennzeichnen
einen niedrigen Signalwert, und die ungeraden Ziffern kennzeichnen einen hohen Signalwert. Als Anwendungsbeispiel
509825/0928
245680?
- 35 -
dieser Regel kennzeichnen die Bits 2 und 3 auf dem QA-Bus den Strich des QA-Pfeils (2, 3); hierdurch wird gekennzeichnet, daß PRN die ORN-Verfahrens-Ringnummer ist,
die unter der Steuerung durch die Mikrooperation UV9QA0 zu übertragen ist und angibt, daß die Übertragung zum
UV-Register durchgeführt werden soll und eine Teil-Übertragung des QA-Bus ist, und daß die Datenquelle der
QA-Bus ist und eine unbedingte Übertragung durchgeführt wird, da das sechste Zeichen gleich Null ist. Die Übertragung
von der QA-Bus-Quelle zum UV-Register ist unbedingt.
Diese 11O" ist das entsprechende siebte Zeichen in der
logischenDatei-Bezeichnung des Unterbefehls UV9QA10. "Wenn die Prozeß-Ringnummer PRN einmal vom QA-Bus 614 zum UV-Register
503 übertragen ist, findet unter der Steuerung durch die Mikrooperation UM9UVO eine weitere Übertragung
vom UV-Register 503 zum UN-Register 5Θ2 statt.Schließlich .
erfolgt eine weitere Übertragung vom UM-Register 502 unter der
Steuerung durch eine UP9UM0-Mikrooperation zum UP-Register
501.
Das 2-Bit-Register UM 502 wird zur Erzeugung der tatsächlichen
Adress-Ringnummer EAR während derlTS- und ITBB- (d.h. Umleitung
zum Segment und Umleitung zur Basis, EAR = MAX (BRN, PRN, DRN/BBR(BRN) usw.) Adreßerzeugung für die Befehlsformat-Typen
von Adreßsilbe 1 und Adreßsilbe 2 benützt.
Die EAR wird gemäß den bereits erwähnten Regeln unter Benutzung
6ines oder mehrerer im Block 510 dargestellten Tests erzeugt,und
die maximale Ringnummer wird entwickelt und im UM-Register 502 untergebracht, das die tatsächliche
Adreß-Ringnummer EAR speichert (Einzelheiten der Logik oder die Durchführung der Vergleiche von Block 510 werden
später genauer beschrieben). Das UO-Register wird benutzt,
5098 25/0928
um die Adreßsilbe 1 dbr tatsächlichen Adreß-Ringnummer
EAR sicherzustellen, wenn die Adreßsilbe 2 zum Erfassen von EAR 2 benutzt wird.
Die 2-Bit-Register UV 503 und Uli 504 werden hauptsächlich
zur Speicherung verschiedener Ringnummern benutzt, die sich
.an der Außenseite der Ringüberprüfungs-Hardware von Fig.5
ergeben und die zu anderen Teilen der Ring-Uberprüfungs-Hardware übertragen oder dort verarbeitet werden. Zum
Beispiel wird die Ringnummer BRN des Basis-Registers von den Bit-Positionen 2 und 3 der UBS-Übertragungslogik 6o6
unter der Steuerung durch die MikroOperation UVFBSO zum UV-Register 503 übertragen; die maximale Ringnummer I4AXR von
Wort 2 des Segment-Descriptors (ebenfalls in den Bits 36
und 37 des UAB-Assoziator-Puffer*-Speichers 611 dargestellt)
wird vom UAB-Pufferspeieher 611 unter der Steuerung durch
die Mikrooperation UVFAB1 zum UV-Register 503 übertragen.
Weiterhin werden die Bits 34 und 35 des UAB-Pufferspeichers 611, die die Schreib-Ringnummer WR darstellen, unter der
Steuerung durch die Mikrooperation UVFABO zum UV-Register 503 übertragen.
Das UW-Register 504 nimmt ähnliche Übertragungen von anderen
Ringnummern aus verschiedenen Teilen des Systems auf. Zum Beispiel können die Bits 34 und 35, die die Schreib-Ringnummer
WR des UAB-Pufferspeichers 611 darstellen, ebenfalls unter der Steuerung durch die Mikrooperation UWFAB1 zum
UW-Register 504 übertragen werden; die Bits 32 und 33, die Lese-Ringnummer RD des UAB-Pufferspeichers 611 können
ebenfalls unter der Steuerung durch die Mikrooperation UWFABO zum UW-Register 504 übertragen werden; weiterhin können die
Bits 0 und 1 des QA-Bus 614 unter der Steuerung durch die Mikrooperation UW9QA0 zum Uli-Register 504 übertragen .werden.
Es ist weiterhin zu bemerken, daß mehrere Übertragungspfade vom UW-Register 504 unter der Steuerung durch die Mikrooperation
UV9UW0 zum UV-^egister 503 benutzt werden; der Übertragungspfad vom UV-Register 503 zum UM-Register
502 unter der steuerung durch die Mikrooperation UM9UV0;
509825/0928
24566
der Übertragungspfad vom UM-Register 502 zum UP-Register
unter der Steuerung durch die Mikrooperation UP9UM0; der Übertragungspfad vom UP-^egister 501 zum UM-Register 502
unter der Steuerung durch die Mikrooperation UM9UP0; der Übertragungspfad vom UM-Register 502 zum UO-Register 512
- unter der Steuerung durch die Mikrooperation U09UM0; und schließlich der Übertragungspfad vom UO-Register 512. zum
UM-Register 502 unter der Steuerung durch die Mikrooperation UM9U00.
Daher beinhaltet das UP-Register 501 die Ringnummer des laufenden Prozesses PRN; die Register UM 502 und UO
512 werden zur Übertragung von Operationen und weiterhin zur Erzeugung der EAR benutzt; das,UV-Register 503 kann zu
verschiedenen Zwecken und zu verschiedenen Zeitpunkten die Ringnummer PRN des laufenden Prozesses, die Basis-Register-Ringnummer
BRN, die maximale Ringnummer MAXR, die Schreib-Ringnummer WR oder die Lese-Ringnummer RD speichern. Das
Uli-Register 504 kann zu verschiedenen Zeitpunkten die Lese-Ringnummer RD, die Schreib-Ringnummer WR und die Bits 0 und
des QA-Bus aufnehmen. UMR 505 ist eine Logikschaltung, deren Einzelheiten in Fig.8d dargestellt sind und die den Inhalt
der Register UMund UV vergleicht. UMR 505 überträgt den größeren der freien Werte in die Register und speichert
diesen Wert im UM-Register 502 unter der Steuerung durch
die Mikrooperation UMFRMO. Dies ist eine Möglichkeit zur
Erzeugung der tatsächlichen Adreß-Ringnummer EAR. Die UMR-Logik
505 kann ebenfalls den größeren Wert des Inhalts von Registern UP oder der Bits 2 und 3 der UBS-Logik 6θβ erzeugen.
Dies ist eine weitere Methode und/oder ein zusätzlicher Schritt zur Erzeugung der tatsächlichen Adreß-Ringnummer EAR.
Die UMR-Logik 505 wird ebenfalls benutzt, um festzustellen,
50982 5/0928
ob während der Übertragung einer Schreib-Ringnummer WR zum UV-Register 503 eine Schreib-Uberschreitung aufgetreten ist
oder nicht, und sie vergleicht danach den Inhalt vom UM-Register 502, (das EAR enthält) mit dem Inhalt des UV-Registers
503*- um festzustellen, welcher Inhalt größer ist.
Da das UM-Register 5Ό2 die tatsächliche Adreß-Ringnummer EAR
speichert, zeigt ein Vergleich des UM-Registers mit dem UV-Register an, ob EAR größer als WR oder umgekehrt ist. Wenn
WP (d.h. das Schreiberlaubnis-Bit im Segment-Descriptor) gleich Eins ist und sich EAR im Bereich 0 EAR WR befindet,
kann eine Schreiboperation zum Segment durchgeführt werden. Es ist zu bemerken,. daß die Eingaben zur UMR-Logik 505
direkt oder indirekt von allen Registern 501 bis. 504 aus, von anderen Logikschaltungen 506 , 507 und auch von der UBS-Logik
6o6 aus durchgeführt werden können.
Die UWV-Logik 506 entspricht der detailliert inBig.8a dargestellten
Logik. Die UWV-Logik 506 erhält direkte oder indirekte Eingaben von den Registern 501 bis 504 und jeweils
von den Logikschaltungen 505 und 507; sie erzeugt einAusführungs-Uberschreitungssignal,
wenn ein Vergleich der Register UW 504, UM 502 und UV 503 anzeigt, daß die maximale Ringnummer MAXR gleich oder größer als die tatsächliche
Adreß-Ringnummer EAR ist, gleich oder größer als die Schreib-Ringnummer WR ist oder logisch Null ist, d.h.,
damit eine Prozedur in der Lage ist, in einem bestimmten Segment das durch die tatsächliche Adresse gekennzeichnet
ist, zu arbeiten, muß die maximale Ringnummer MAXR größer oder gleich der· tatsächlichen Adreß-Ringnummer sein, und
die tatsächliche Adreß-Ringnummer EAR muß größer oder gleich der Schreib-Ringnummer V/R sein. Die UWV-Logik 506 führt auch
509 8 2 5/0928
die in Block 510 dargestellten Tests durch. Es kann angezeigt werden, daß der Inhalt des UW-Registers gleich oder kleiner
als der Inhalt des UV-Registers ist; daß der Inhalt des UM-Registers gleich oder größer als der Inhalt des UV-Registers
ist; daß der Inhalt des UV-Registers gleich dem Inhalt des UM-Registers
ist; daß der Inhalt des UV-Registers gleich oder größer als der Inhalt des UMr-Registers ist; und daß der
'Inhalt des UM-Registers größer als der Inhalt des UW-Registers ist. ¥enn diese Tests durchgeführt werden, lönnen
natürlich verschiedene Ringnummer-Werte die Register belegen.
Die UEP-Logik 507 entspricht der detailliert in Fig.8b dargestellten
Logik. Die UEP-Logik 507 erzeugt in Verbindung mit der UWV-Logik 506 die Lese-Überschreitungsausnahme. Die Lese--Übersehreitungsausnahme
kann jedoch übersprungen werden, wenn die tatsächliche Adreß-Ringnummer EAR gleich der Ringnummer
des laufenden Prozesses PRN ist, da eine Prozedur immer die Erlaubnis zum Lesen ihres eigenen Segments besetzt
und wenn die Segment-Nummer des Puozedur-Segment-Descriptors (nicht dargestellt) und die Segment-Nummer der bei der
Erzeugung der tatsächlichen Adresse benutzten Adreßsilbe identisch sind. '
Zur Darstellung des Überspringens des Lese-Überschreitungssignals wird angenommen, daß die tatsächliche Adreß-Ringnummer
EAR größer als die Lese-Nummer RD ist,'die ein Lese-Über-
- schreitungs-Signal mit logisch Eins erzeugen würde, das als ein Eingang dem UND-Gatter 522 zugeführt würde. Das Lese-Überschreitungs-Aufnahmesignal
kann unter den folgenden beiden Bedingungen nicht erzeugt werden, selbst wenn ein
Lese-Überschreitungs-Signal vorhanden ist:
1. Die tatsächliche Adreß-Ringnummer EAR ist gleich der Prozeß^Ringnummer
PRN; d.h. der Inhalt des UN-Registers ist gleich dem Inhalt des UP-Registers; und
509825/0928
2. Die Segment-Nummer, die in der Adreßailbe des Segments
enthalten ist, in dem eine Prozedur eine-Leseoperation durchführen
will, ist gleich derSegment-Nummer des (nicht abgebildeten)
Prozedur-Segment-Descriptors, der gegenwärtig ablaufenden Prozedur, und dies wird durch Setzen eines
Bits gekennzeichnet, das als P-Bit bezeichnet wird und das 13.Bit des UE-Registers 650 ist. (Das UE-Register 650
ist ein Speicher des Inhalts des UAS-Assoziators 609, wenn sich aus einem Vergleich des Inhalts des US-Registers
607 ein "Hit" ergeben hat). Da in diesem Beispiel angenommen wird, daß EAR.gleich PRN ist, wird die UEP-Logik 507
dem UND-Gatter 520 ein "1"-Signal als ein Eingang zuführen und da weiterhin angenommen wurde, daß die Segment-Nummer
SEG der Adreß-Silbe des adressierten Segments gleich der Segment-Nummer SEG des Prozedur-Segment-Descriptors
(nicht dargestellt) der gerade ablaufenden Prozedur ist, wird das P-Bit des Prozedur-Segment-Descriptors gesetzt und nun wird
der andere, dem UND-Gatter 520 zugeführte Eingang, auf logisch 1 sein, und daher das UND-Gatter 520 freigeben; daher wird
ein logisches "1 "-Signal dem Eingang des Inverters 5,21 zugeführt, das als logisches "O"-Signal am Ausgang des Inverters
■ 521 auftritt und nun als ein weiterer Eingang dem. UND-Gatter
522 zugeführt wird. Da dem UND-Gatter 522 ein logisches Null-Signal zugeführt wird, kann über den Amplifier
kein Lese-Uberschreitungs-Ausnahmesignal erzeugt werden,
selbst wenn das dritte dem UND-Gatter 522 zugeführte Signal auf logisch Eins ist.
Um nun zu erläutern, wie ein Lese-Uberschreitungssignal erzeugt
und nicht übersprungen wird, wird angenommen, daß der Ausgang der UEP-Logik 507 anzeigt, daß der Inhalt des UM-Registers
nichj gleich dem Inhalt des UP-Registers ist. Daraufhin würde dieser Eingang des UND-Gatters 520 logisch "0" und daher
würde das UND-Gatter 520 nun nicht freigegeben,und sein Ausgang wäre logisch'O" und würde dem Eingang des Inverters
zugeführt. Da der Eingang des Inverters 521 logisch "0" ist,
50 9 8 25/0928
wäre sein Ausgang logisch "1" und würde als ein Eingang dem
UND-Gatter 522 zugeführt. "Wenn weiterhin die tatsächliche Adreß-Ringnummer EAR größer als die LesexRingnummer RD ist
(d.h. der Inhalt des UM-Registers ist größer als der des UW-Registers),
wäre dieses Signal auf logisch "1" und würde als ein weiterer Eingang dem UND-Gatter 522 zugeführt. Das UND-Gatter
besitzt noch einen dritten Eingang, der ebenfalls logisch "1" sein muß, um das UND-Gatter 522 freizugeben.
Dieser dritte Eingang ist logisch "1", wenn das UND-Gatter 526 freigegeben ist. Da das UND-Gatter 526 eine Eingangs-Klemme
besitzt, die logisch "1" ist,wenn die OO-Klemme des URV1F-Flops 524 logisch "O" ist, wird das UND-Gatter 526 durch
Anlegen des Mikrooperations-Lese-Überschreitungs-Abfragesignal AJERVA an eine Eingangsklemme des UND-Gatters 526
freigegeben, während die· OO-Klemme des URV1F-Flops 524 logisch "0" ist. Daher sind alle Eingangsklemmen des UND-Gatters
5.22 auf logisch 1 und erzeugen das Lese-Überschreitungs-Ausnahme signal. .
Die Ausführungs-Überschreitungsausnahme wird auf zv/ei Arten erzeugt. Es ist bereits erläutert worden, daß ein Ausführungs-Überschreitungssignal.
erzeugt wird, wenn die UBV-Logik anzeigt, daß ViR gleich oder größer als ER ist, kleiner
oder gleich MAXR ist, oder logisch Null ist. Dieser hohe Wert Ausführungs-Überschreitungssignal wird einem "einbeinigen"
UND-Gatter 550 zugeführt, das wiederum über den Amplifier 552 mit der Eingangsklemme des "zweibeinigen" UND- '.
Gatters 553 verbunden ist. Wenn einAusführungs-überschreitungs-Abfrage-Mikrooperationssignal
AJBEVA als weiterer Eingang dem "zweibeinigen" UND-Gatter 553 zugeführt wird, wird dieses
Gatter freigegeben und erzeugt seinerseits das Ausführungs-Überschreitungssignal
über den Amplifier (Verstärker)554 . Die andere Methode, mit der eine Ausführungs-Uberschreitungs-
509825/0928
Ausnahme mit Hilfe der Ausführungs-Überschreitungs-Hardware
511 erzeugt wird, kommt.zur Anwendung, wenn das Ausführungs-Erlaubnis-Bit
EP nicht gesetzt ist. Wenn diese Bedingung logisch 1 ist, wird sie dadurch angezeigt, daß das siebte
Bit des UY-Registers 613 auf logisch 1 ist ; dieses Bit wird nun der Eingangsklemme eines "einbeinigen" UND-Gatters
551 zugeführt, dessen Ausgang als logisches "1"-Signal über den Verstärker- 552 einer Eingangsklemme des UND-Gatters
553 zugeführt wird. Wenn das Ausführungs-Überschreitungs-Abfrage-Mikrooperationssignal
AJEEVA logisch wird, erfolgt die Freigabe des UND-Gatters 553, und die Ausführungs-Überschreitungs-Ausnahme
wird über dem Amplifier 554 erzeugt.
Die Schreib-Uberschreitungs-Ausnahme wird ebenfalls auf zwei Arten erzeugt. Es ist bereits erläutert worden, wie die UMR-Logik
505 ein Schreib-Überschreitungssignal erzeugt, wenn EAR größer als WR ist. Dieses Schreib-Uberschreitungssignal
wird einerEingangsklemme des UND-Gatters 545 zugeführt. Das UND-Gatter 545 wird freigegeben,wenn seine zweite Eingangsklemme logisch 1 wird und auf diese V/eise über den Verstärker
547 eine Schreib-Überschreitungsausnahme erzeugt. Die
zweite Eingangsklemme des UND-Gatters 545 wird logisch 1, wenn das UND-Gatter 542 freigegeben wird.Das UND-Gatter
wird freigegeben, wenn die seinen Eingangsklemmen zugeführten Eingangssignale logisch 1 sind. Sin Eingangssignal ist
logisch 1,wenn das UWV1F-Flop 541 logisch 0 ist und seiner
seits ein logisches O-Signal der Eing'angsklemme des Inverters
543 zuführt, der wiederum ein logisches "1"-Signal einer Eingangsklemme des UND*Gatters 542 zuführt;
das andere Eingangssignal ist logisch 1, wenn das Schreib-Uberschreitungs-Abfrage-Mikrooperationssignal
AJEWA logisch ist und dies tritt auf, wenn es erforderlich ist, eine ,
5 0 9 8 2 5/0928
Prozedur für die Schreib-Überschreitungsausnahme abzufragen. (Die Flip-Flops URV1F, URM1F und UWV1F werden auf logisch O
gesetzt, wenn Unterbrechungen odo?Software auftritt.) (Die
Flip-Flops UWV2F, URV2F und URN2F werden zur Reserve ~' peicherung
übermässiger Prüfinformationen der Ring-Überprüfung verwendet).
Die andere Methode zur Erzeugung einer Schreib-Überschreitungsausnähme
wird angewendet, wenn das. Schreib-Erlaubnisbit WP
nicht gesetzt ist. Diese Bedingung wird dadurch gekennzeichnet, daß das Bit 6 des UV-Registers 613 logisch 1 ist. Wenn diese .
Bedingung gegeben ist und das logische 1-Signal (d.h. das sechste Bit des UV-Registers) als ein Eingang dem UND-Gatter
546 zugeführt wird und das Abfrage signal AJEWA logisch 1 ist und als ein weiterer Eingang dem UND-Gatter 546 zugeführt ist, Wir(}
das UND-Gatter 546 freigegeben und über den Verstärker 547 tritt eine Schreib-Überschreitungsausnahme auf.
Die aus den Flip-Flops 532' und 533 bestehende Logikschaltung 591
ermöglicht in Verbindung mit dem Verstärker 530, dem UND-Gatter 531 und dem Inverter 530a die Erzeugung des maximalen Ringnummern-Wertes im Register UM 502 (EAR) unter der Steuerung
durch einen"Splatter"-Befehl-Unterbefehl (nicht erläutert)
aus der Befehlserfassungseinheit IFU. Wenn angenommen wird,
daß ,das URN1F-Flip-Flop 532 auf logisch 0 gesetzt ist, wogegen
das URN2F-Flip-Flop 533 auf logisch 1 gesetzt ist, wird während
der Ausführung des "Splatter"-Unterbefehls die Eingangsklemme 531a des UNDJ-Gatters 531 auf logisch 1 seinjdaher wird,wenn das
Flip-Flop 532 logisch 0 ist, das Signal über den Inverter 530a invertiert, und das UND-Gatter 531 wird freigegeben. Daher
wird nun dar Maximalwert des Inhalts des UP-Registers 501 oder die
Bits 2 und 3 des Logik-Sektors UBS 606 in das UM-Register 502 übertragen. Wenn umgekehrt das Flip-Flop 532 auf logisch 1 ist,
5098 25/0928
wird der Inhalt des UM-Registers nicht über die bereits erwähnten
Quellen geändert und diejenige EAR, die im UM-Register 502 aus der
indirekten Umleitungs-Adressierprozedur entwickelt wurde, wird
benutzt. Das Flip-Flop 533 ist ein Reservespeicher für die EAR von Adreßsilbe 2, wenn diese benutzt wird.
In den Fig.7, 8 und 5 besteht insofern eineübereinstimmung,
als daß die detaillierte Logik für die Hardware von Fig.5 in den Fig.7 und 8 wie folgt dargestellt ist: Fig.7a und UW-Register
504, Fig.7b und UV-Register 503, Fig.7c und Block 590,
Fig.7d und Block 591, Fig.7e und Block 592, Fig.7f und UP-Register
501, Fig.7g und UO-Register 512, Fig.7h und UM-;Register
502, Fig.8a und UW-Logik 506, Fig.8b und UEP-Logik 507, und
Fig.8g und UMR-Logik 505.
Gemäß Fig.7a besteht das UW-Register jeweils aus zwei Flip-Flops,
715a und 720a; jedes Flip-Flop kann ein Informations-Bit des UW-Registers aufnehmen. Mit dem Flip-Flop 715a sind
vier UND-Gatter 711a bis 714a gekoppelt, die über eine ODER-Funktion
miteinander verbunden sind, jedes Gatter (ausgenommen Gatter 713a) besitzt zwei Eingangsklemmen und mindestens ein
Signal, das jeder Eingangsklemme zugeführt wird. Eine Eingangsklemme des UND-Gatters 71.4a ist mit der Setz-Klemme UW00010
des Flip-Flops 715a verbunden. Das Flip-Flop 715a ist ebenfalls mit der Klemme H27 verbunden, um von einem Taktgeber ein Timing-Signal
aufzunehmen, das als PDA-Signal bezeichnet wird. Das ■ Flip-Flop 720a ist mit den UND-Gattern 716a bis 719a gekoppelt,
die über eine ODER-Funktion miteinander verbunden sind. Eine Eingangs-Klemme des UND-Gatters 716a ist mit einer Eingangs-Klemme
des UND-Gatters 711a verbunden; eine Eingangsklemme des UND-Gatters 717a ist mit einer Eingangsklemme des UND-Gatters
712a verbunden, und eine'Eingangsklemme des UND-Gatters
719a ist mit einer Eingangsklemme des UND-Gatters 714a gekoppelt, wogegen die andere Eingangsklemme des UND-Gatters
719a mit der Setzklemme UW00110 des Flip-Flops 720a
gekoppelt ist. Das Flip-Flop 720a ist ebenfalls mit der
509825/0928
H 27-Klemme verbunden, um die PDA-Impulse aufzunehmen. Die
UND-Gatter 701a bis 704a sind über ODER-Funktionen miteinander
verbunden, und alle ihre Ausgangsklemmen sind mit der Eingangs-Klemme
des Inverters 705a verbunden. Das UND-Gatter 706a ist
mit dem Verstärker 708a gekoppelt; dagegen ist das UND-Gatter 707a mit dem Verstärker 709a gekoppelt; eine Eingangsklemme
des UND-Gatters706a ist mit einer Eingangsklemme des UND-Gatters 707a verbunden. Die Ausgangsklemme des Inverters 705a
ist mit einer Eingangsklemme der UND-Gatter 714a und 719a
verbunden; die Ausgangsklemme des Verstärkers 708a ist mit
der Eingangsklamme des UND-Gatters 713a verbunden und die
Ausgangsklemme des Verstärkers 709a ist mit der Eingangsklemme des UND-Gatters 718a verbunden.
Die Signale, die den Eingängen der UND-Gatter zugeführt werden, und die als Ausgangssignale an den Verstärkern, Invertern oder
Flip-Flop abgegriffenen Signale werden mit Buchstaben bezeichnet, die einen speziellen Code bilden. Da sowohl Daten- wie
auch Steuersignale entweder zugeführt oder abgenommen werden,sind zwei Codes vorhanden, ein Code für Steuersignale und ein
anderer für die Datensignale. Der Code für die Steuersignale ist bereits detailliert beschrieben worden und wird hier
zusammengefaßt. Kurz, die ersten beiden Zeichen eines Steuersignals kennzeichnen die Bestimmung der zu übertragenden Daten; das dritte
Zeichen gibt an, ob eine vollständige oder eine Teilübertragung durchgeführt werden muß, wobei der Buchstabe F eine vollständige
• -
Übertragung kennzeichnet; alle übrigen Zeichen kennzeichnen
eine Teilübertragung; das vierte unf fünfte Zeichen kennzeichnen die Datenquelle,und wenn die Quelle durch mehr als zwei Buchstaben
identifiziert wird, brauchen nur die letzten zwei Buchstaben benutzt zu werden, das sechste und das siebte Zeichen
sind im allgemeinen Nummern und kennzeichnen, ob das Signal
50 9 8 25/0928
logisch "1" oder "O" ist, d.h. eine ungerade Ziffer in der
sechsten Position kennzeichnet logisch "1" und eine gerade Ziffer in der sechsten Position kennzeichnet logisch "0"; die
siebte Positionkennzeichnet,ob es sich um die erste, zweite, dritte usw....Auftrittsstufe des Signals handelt. Daten werden
jedoch anders gekennzeichnet. Die ersten drei Daten-Zeichen kennzeichnen die Datenquelle,das vierte und das fünfte Zeichen,
die Ziffern sein können, kennzeichnen die Bit-Positionen, in denen sich die Daten innerhalb derQuelle befinden f ι und
die sechste und siebte Position sind dem Code der Steuersignale insofern ähnlich, als sie anzeigen, ob das Signal logisch'M"
oder logisch "0" ist,und die Auftrittstufe des Signals angeben.
Im allgemeinen zeigt das Format selbst an, ob das Signal ein Steuer- oder Datensignal ist und anhand der Fig.5' und 6 können
die Quelle und die Bestimmung festgestellt werden. Für diese allgemeine Regel gibt es Ausnahmen, die in der Beschreibung
und. im Anhang erläutert werden.
Als Anwendungsbeispiel dieser Vereinbarung sind in der Fig.7a
die folgenden Signale Steuersignale WiFABH, AWFAB10, UW9QA10.
Die folgenden Signale sind Datensignale : UAB3410, AUB3210,
UAB351O, UAB3310, QA00110 und QA00010. Die folgenden Signale
sind Ausnahmen: PDARG10 ist ein Timing-Signal, dessen Quelle der PDA-Taktgeber ist; UWH0L10 ist ein Haltesignal für das
Halten der Informationen in den Flip-Flops 715a und 720a; UW0BK10 und UW1BK10 sind logische Reservefunktionen, deren
Hauptaufgabe in der Erweiterung der Eingabefähigkeit der Flip-Flops 715a und 720a besteht. Dies erfolgt durch Verbinden
des UW-Registers, das aus den Flip-Flops 715a und 720a *
besteht, mit den Bits 0 und 1, die jeweils durch die Flip-Flops 715a und 720a dargestellt werden; zuletzt ist USCLR10 das
Initialisierungs-Signal zum Initialisieren und Löschen der
Flip-Flops auf Null.
509825/092 8
Als Beispiel der oben aufgeführten Vereinbarungen ist hier das
dem Eingang des "einbeinigen" UND-Gatters 7O2a zugeführte Signal UWFAB11 ein Steuersignal, das Daten (die Bits 34 und 35)
aus dem UAB-Assoziator-Pufferspeicher 6-11 (das "U" im Signal
wurde ausgelassen) zum UW-Register 504 überträgt; diese Übertragung
ist eine vollständige Übertragung zum UW-Register 1;
die ungerade Ziffer kennzeichnet, daß das Signal logisch 1 ist. Das.dem Eingang des "einbeinigen" UND-Gatters 7o3
zugeführte Signal·" UWFAB10-ist ein Steuersignal mit der
gleichen Quelle und Bestimmung, wie das dem UND-Gatter 702 a
zugeführte Signal, mit der Ausnahme,daß die Bits 32 und 33
von UAB zum UW-Register übertragen werden. Das dem "einbeinigen" UND- Gatter 704a zugeführte Signal UW9QA10 ist ebenfalls
ein Steuersignal, bei dem Daten vom QA-Bus 614 zum UW-Register übertragen werden; die Übertragung kann eine Teilübertragung
sein. Das dem UND-Gatter 706a zugeführte Signal UA0Q010
ist ein Datensignal, bei dem sich die Daten auf dem QA-Bus 614 befinden (die dritte Position wird hier nicht benutzt,
da die ersten beiden Positionen in ausreichender Weise die Position der Daten beschreiben, und dieses Datensignal stellt
das als 00 auf dem QA-Bus 614 identifizierte Bit dar·
Das Signal QAG0110 ist ähnlich dem vorstehend beschriebenen
Signal, mit der Ausnahme, daß die durch dieses Signal identifizierten Daten die Daten von Position 01 des QA-Bus 614 sind. Daher
wird durch Anwendung dieser Regel .und die Fig.5 bis'9, die Ringschutz-Hardware
vollständig definiert und kann ohne Schwierigkeiten von einer Person aufgebaut werden, die ordnungsgemäß
in der Computer-Technik geschult ist.
In Fig.7b ist das detaillierte logische Blockdiagramm für das
UV-Register 503 dargestellt. Das Signal UVH0L10 ist ein Haltesignal
für das UV-Register 503 und wird über den Inverter 730b erzeugt, wenn keinem der "einbeinigen" UND-Gatter 701b bis
708b ein logisches "1"-Signal zugeführt wird. Das UVH0L1O-Signal
wird dem UND-Gatter 723b zugeführt und verursacht die Aufrecht-
50 98 25/0928
erhaltung der im UV-Register 503 enthaltenen Informationen.
Das mit dem Eingang des UND-Gatters 704b und den Ausgängen der UND-Gatter 705b bis 708b gekoppelte Signal UVH0L1E erweitert
die Anzahl der Steuersignale, die das Haltesignal UVH0L10 erzeugen können. Das mit den Ausgängen der UND-Gatter 710b bis 713b und dem
Eingang des UND-Gatters 722b gekoppelte Signal UV0BK10 wird ebenfalls zur Erweiterung der Anzahl der Eingangssignale benutzt,
die dem Flip-Flop 724b zugeführt werden können. Das mit den Eingängen der UND-Gatter 716b bis 718b und dem Eingang
des UND-Gatters 727b gekoppelte Signal UV1BK10 erweitert
in gleicher Weise die Anzahl der Eingangssignale, die dem Flip-Flop
729b zugeführt werden können.
In Fig.7g ist das detaillierte logische Blockdiagramm des UO-Registers
512 dargestellt. Die UND-Gatter 701g bis 704g sind über ODER-Funktionen miteinander verbunden,und ihr Ausgang
wird als Eingang dem Inverter 705g zugeführt. Die UND-Gatter 706g bis 709g sind ebenfalls über ODER-Funktionen
miteinander verbunden und ihre Ausgänge sind mit dem Flip-Flop 710g gekoppelt. Weiterhin ist ein Eingang des UND-Gatters
709g mit der U000010-Klemme des Flip-Flops 710g gekoppelt. Die UND-Gatter 711g bis 714g sind ebenfalls
über eine ODER-Funktion miteinander verbunden und in gleicher Weise mit dem Flip-Flop 715g gekoppelt.Es ist zu bemerken, daß
ebenfalls ein Eingargdes UND-Gatters 706g mit einem Eingang
eines UND-Gatters 711g gekoppelt ist} ein Eingang des UND-Gatters 707g ist mit einem Eingang des UND-Gatters 712g
gekoppelt,und ein Eingang des UND-Gatters 709g ist mit einem Eingang des UND-Gatters 714g gekoppelt.Das vom Inverter 705g
erzeugte U0H0L10-Signal ist ebenfalls mit einem Eingang der
UND-Gatter 709g und 714g gekoppelt und wird zur Aufrechterhaltung
der Informationen im UO-Regiser 512 benutzt. XOO stellt eine Masseverbindung darfund XNU kennzeichnet einen
nicht benutzten Eingang.
509825/0928
Fig.TC ist ein detailliertes logisches Blockdiagramm des UP-Registers
501. Diese Figur ■ entspricht der bereits erwähnten
Fig.7g mit der Ausnahme/ daß andere Signale mit anderen Bestimmungen
und anderen Quellen verwendet werden.
In Fig.7h ist das detaillierte logische Blockdiagramm des
UM-Registers 502 dargestellt. Die UND-Gatter 701h bis 704h sinimiteinander über eine ODER-Funktion verbunden, um über
den Inverter 705h das UMHOLIO-Haltesignal zu erzeugen. .. Die UND-Gatter 706'h bis 709h sind zu einer ODER-Funktion
miteinander verbunden und mit dem Eingang des UND-Gatters 704h gekoppelt, um die Anzahl der Signale zu vergrößern, die
zur Erzeugung des UMHOLIO-rSignals verwendet werden können. In
gleicher Weise sind die UND-Gatter 711h bis 714h über eine
ODER-Funktion miteinander verbunden und werden dem Eingang des UND-Gatters 723h zugeführt, um die Anzahl der Signale
zu vergrößern, die dem Flip-Flop 730h zugeführt werden können; in gleicherweise sind ebenfalls die UND-Gatter 715h bis 719h
über eine ODER-Funktion miteinander verbunden und mit dem Eingang des UND-Gatters 727h verbunden, um die Anzahl,der Signale
zu vergrößern, die dem Flip-rFlop 731h zugeführt'werden können.
Eine Leitung 740h für die Zuführung der PDA-Signale zu den Flip-Flops 73Oh und 731h ist jeweils an den Punkten 734h und
735h angekoppelt. Dar Eingang des UND-Gatters 703h wird ebenfalls durch Kopplung des Ausgangs des Verstärkers 733h mit dem
Eingang des UND-Gatters 703h, um zwei weitere Eingänge URN1F00 und IRNUM10 erweitert, '
In den Fig.7c bis 7e sind detaillierte logische Blockdiagramme
der Schreibausnahme-Steuerlogik 590, der IFU-Unterbefehls-'
Steuerlogik 591 und der Lese-Überschreitungs-Ausnahme-Steuerlogik
592 dargestellt. In Fig.7c sind die Flip-Flops 705c und 710c
509825/0928
dargestellt, die jeweils den Flip-Flops 541 und 540 entsprechen. Durch eine MikroOperation URW2F10 werden die
Informationen des Flip-Flops 710c zum Flip-Flop 705c übertragen. Das HaltesignalUWV1H10 wird zur Aufrechterhaltung der
zum Flip-Flip 710c übertragenen Informationen verwendet, wogegen
das UWV2H1O-Signal zur Aufrechterhaltung der zum Flip-Flop 705c
übertragenen Informationen verwendet wird. In gleicherweise werden in Fig.7d die Informationen vom Flip-Flop 71Od zum
Flip-Flop 705d durch das Mikrooperations-Signal URNSW10 übertragen, und in Fig.7e werden die Informationen des Flip-Flops
71Oe unter der Steuerung durch das Mikrooperations-Signal URW2F10 zum Flip-Flop 709e übertragen.
In den Fig.8a, 8b und 8d sind detaillierte logische Blockdiagramme
der UWV-Logik 506, der UWEP-Logik 507 und der UMR-Logik 505 dargestellt. In Fig.8a ist die Logik dargestellt,
mit der ein logisches "1"-Signal erzeugt wird, wenn eine der Test-Bedingungen 510 vorhanden ist und außerdem
das Ausführungs-Überschreitungs-Signal erzeugt wird, wenn
der Inhalt des UW-Registers kleiner oder gleich dem Inhalt des UM-Registers ist, kleiner oder gleich dem Inhalt des UV-Registers
ist oder logisch'O" ist. Das Signal WLEVIO zeigt,
wenn es erzeugt wird, an, daß der Inhalt des UW-Registers gleich oder kleiner als der Inhalt des UV-Registers 503 ist. Die
Logik zur Erzeugung dieses Signals wurde aus dem folgenden boolschen Ausdruck abgeleitet:
X1 = (BCD') + (ABU) '+ (AÜ)
Hierbei stellt X^ das Ausgangssignal des Verstärkers 805a dar,
und die verschiedenen Buchstaben des Ausdrucks entsprechen den verschiedenen Eingangsklemmen der UND-Gatter 801a bis 804a.
Eine Anzeige, daß der Inhalt des UV-Registers 503 größer oder gleich dem Inhalt des UM-Registers 502 ist, tritt bei der
509825/0928
Erzeugung des .UVGEM1O-Signals auf.Dieses Signal wird als Antwort
auf verschiedene Eingaben an den über ODER-Funktionen miteinander
verbundenen UND-Gatter 816a bis 819a, die mit dem Eingang des Inverters 820a gekoppelt sind, erzeugt. Die Logik für
die Erzeugung des Signals UVGEM10 ist gemäß des folgenden
boolschen Ausdrucks entwickelt worden: ·
X2 = (BCD) + (ABD) "+ (AC)
Ej ne Anzeige, daß der Inhalt des UM-Registers 502 größer oder
gleich dem Inhalt des UV-Registers 503 ist, erfolgt durch Erzeugung des Signals UMGEV10 über den Inverter 810a als Antwort
auf die verschiedenen Eingaben an den UND-Gattern 806a bis 809a , die über eine ODER-Funktion.miteinander verbunden
sind. Die Logik für die Erzeugung dieses Signals wurde anhand
des folgenden boaischen Ausdrucks entwickelt:
X3 = (BCD) + (ABD) + (AC) (Hierbei ist X-, das erzeugte Ausgangs signal).
In gleicherweise wird das UVEQM1O-Signal'anhand des folgenden
boolschen Ausdrucks entwickelt:
X4 = (AC) + (AC) + (B1D) + (BD)
Die Erzeugung des UVEQM10-Signals zeigt an, daß derlnhalt
des UV-Registers 503 gleich dem Inhalt des UMWIe gisteis 502
ist. ■ -'"-■■"
Die Erzeugung des UMGEW 10-Signals zeigt an , daß der· Inhalt
des UM*Registers 502 gleich oder größer als der Inhalt des UW-Registers 504 ist und von einer Logik erzeugt wird, die
aus dem folgenden boolschen Ausdruck entwickelt wurde:
XR = (BCD) +(ABD) + (AC)
5 09 825/0928
Die Erzeugung des UMGTWIO-Signals zeigt an, daß der Inhalt des
UM-Registers 502 größer als der Inhalt des UW-Registers 504 ist und daß dieses Signal von einer Logik erzeugt wird, die anhand
des folgenden boolschen Ausdrucks entwickelt wurde:
X6 = (ABD) + Ü (BD + A)
Die Erzeugung des Signals WGMVOO zeigt an, daß der Inhalt des UW-Registers kleiner oder gleich dem Inhalt des UM-Registers
ist, kleiner oder gleich dem Inhalt des UV-Registers ist oder logisch "0" ist. Es wird erzeugt,wenn sowohl das
UVGEMIO-Signal, das anzeigt, daß der Inhalt des UV-Registers
größer oder gleich dem Inhalt des UM-Registers ist, wie auch das UMGEWIO-Signal, das anzeigt, daß der Inhalt des UM-Registers
größer oder gleich dem Inhalt des UW-Registers ist, auf logisch "1" sind.
Gemäß Fig.8b wird ein UIiEQPIO-Signal von einer Logik erzeugt,
die anhand des folgenden boolschen Aisdrucks entwickelt wurde:
X7 * (AC) + (IC) + (BD") + (SD)
Wenn dieses Signal auf logisch 1 ist, zeigt es an, daß der Inhalt des UM-Registers 502 größer als der Inhalt des UP-Registers
501 ist.
In Fig.8b ist das detaillierte logische Blockdiagramm für
die Durchführung der Operationen der in Fig.5 dargestellten UMR-Logik 505 dargestellt. Eine der Operationen dieser Logik
besteht darin, den Maximalwert des Inhalts des UP-Registers und der Bits 2 und 3 der UBS-Logik 6θβ festzustellen. Zu
diesem Zweck muß eine Angabe vorhanden sein, ob der Inhalt von UP kleiner als der Inhalt von UBS ist, oder ob der
Inhalt vonUP größer als der Inhalt von UBS ist. ...
509825/0928
Das Erzeugen des Signals UPLEBiO zeigt an, daß der Inhalt des
UP-Registers 501 gleich oder kleiner als die Bits 2 und 3
der UBS-Logik 606 ist; die Erzeugung des Signals UPGTB10
zeigt dagegen an, daß der Inhalt des UP-Registers 501 größer als die Bits 2 und 3 der UBS-Logik 606 ist. Diese Signale
werden von einer Logik erzeugt, die anhand des folgenden boolschen Ausdrucks entwickelt wurde:
X8 = ,(BSE) + (ABS) +
Hierbei ist Xg der Ausgang .des Inverters 805d und die Buch-'
stäben des Ausdrucks entsprechen den verschiedenen Eingängen der UND-Gatter 801d bis 803d.
Um zu erläutern, wie der Maximalwert des Inhalts des UP-Registers
und der UBS-Logik durch die Ausgangs-Signale UMPB010 und UMPB110
der Verstärker 814d und 817d bestimmt wird, muß zuerst
angenommen werden, daß der Inhalt des UP-Registers gleich
oder kleiner als die Bits 2 und 3 der UBS-Logik fet, da Bit 2 "1"
ist und Bit 3 "1" ist, wogegen das UB-Register 01 enthält. Diese Tatsache wird dadurch gekennzeichnet, daß das UPLEB10-Signal
logisch 1 ist und das UPGTBIO-Signal logisch 0 ist, da es der invertierte Wert des Signals UPLEB10 ist. Dieses
UPLEB1O-Signäl mit dem Logikpegel T wird einem Eingang des
UND-Gatters 813d und ebenfalls einem Eingang des UND-Gatters
806d zugeführt.
Wenn das Bit 2 der UBS-Logik, wie durch das Signal UBS0210
gekennzeichnet, auf "i" ist, wird das UND-Gatter 813d freigegeben
und das Signal UMPB010 wird logisch "1" und kennzeichnet, daß Bit 2 der UBS-Logik auf "1" ist. Wenn weiterhin
das Bit 3 der UBS-Logik, gemäß der Anzeige durch das Eingangs-Signal
UBS03.10, das als weiterer Eingang dem UND-Gatter 816d zugeführt wird, auf "i" ist, wird das UND-Gatter 8i6d freigegeben
und das Signal UMPB110 ist logisch 1. Daher befindet
50982 5/0928
sich, unter den angenommenen Bedingungen bei denen die Bits (2, 3) der UBS-Logik gleich oder größer als der Inhalt
des UP-Registers sind, der Maximalwert der beiden Quantitäten in UBS und seine Zahl beträgt binär 11 oder dezimal 4.
Daran kann erkannt werden, wie zuerst ein Vergleich durchgeführt wird um festzustellen, welche Hardware das Maximum
enthält und wie danach eine Überprüfung durchgeführt wird, um den Wert dieses Maximums festzustellen. Durch eine
ähnliche Analyse kann festgestellt v/erden, wie der Wert des UP-Registers mit Hilfe derSignale UMPBO1O und UMPB11O
festgestellt werden kann, wenn der Inhalt des UP-Registers größer als das zweite und dritte Bit der UBS-Logik ist.
In gleicher Weise kann der Maximalwert des UM-Registers 502 oder des UV-Registers 503 jeweils durch die Signale UVGEM10
und UMGTV1O ermittelt werden, wenn das UV-Register 503 gleich
oder größer als das UMRegister 502 ist, und umgekehrt, wenn das UM-Register 502 größer als das UV-Register 503 ist.
In den Fig. 9a bis 9i befindet sich eine Erklärung der in den
Fig.7 und 8 verwendeten Symbole. Fig.9a stellt das Symbol dar,
das bei einer internen Verbindung innerhalb einer Logikplatte verwendet wird. Fig.9b stellt eine Ausgangsklemmen-Verbindung
dar. Fig.9c entspricht einer Eingangsklemmen-Verbindung und ist im allgemeinen eine Quelle außerhalb der dargestellten
Logikplatte. Fig.9d enthält das für ein UND-Gatter benutzte Symbol. Fig.9e ist das für einen Verstärker benutzte Symbol;
Fig.9f ist dagegen das für einen Inverter benutzte Symbol. Fig.9g stellt die drei UND-Gatter 901g bis 903g dar, die über
eine ODER-Funktion miteinander verbunden sind und daher den Ausgang 904g auf logisch "1" setzen, wenn eines der UND-Gatter
901g bis 903g auf logisch "1" ist. Fig.9h enthält das Symbol eines Flip-Flops, das eine 00-Rücksetzklemme und
eine 10-Setzklemme besitzt. Eine PDA-Leitung führt die
Takt-Impulse heran, die benutzt werden, um das Flip-Flop
509825/0928
- 53 - .
zur Zustands-Umschaltung zu veranlassen, wenn am Flip-Flop andere Bedingungen vorhanden sind. Fig.9i stellt einMikrooperations-Steuersignal
dar.
Ringüberprüfung und Ringkreuzung . ·
Um die Ringschutz-Struktur zwischen den Prozeduren durchzuführen, die in den verschiedenen Ringen arbeiten, werden
in der Erfindung Rückstell-Stacks für den Prozedurverkettungs-Mechanismus verwendet, bei dem ein Teil eines -jeden
Stacks, der als Stack-Rahmen bezeichnet wird, dynamisch jeder Prozedur zugewiesen wird. Verschiedene Stack-Segmente
werden für jeden Ring benutzt, und jedes Stack-Segment entspricht
einem Ring. Wenn daher eine Prozedur im RN-Ring abläuft, befindet sich ihr · Stack-Rahmen im RN-Stack-Segmenti
In Fig.10 sind drei Stack-Segmente 1001 bis 1003 dargestellt,
die entsprechend die Stack-Rahmen St bis S3 enthalten.Ring ist dem Stack-Segment 1001 zugewiesen, Ring 1 dem Stack-Segment
1002 und Ring 0 dem Stack-Segment 1003. Innerhalb eines jeden Stack-Segments sind eine Prozedur P1 mit dem Stack-Rahmen
S1 des Segments 1001, eine Prozedur P2 mit dem Stack-Rahmen
S2 des Stack-Segments 1002 und eine P3-Prozedur mit dem Stack-Rahmen S3 des Stack-Segments 1003 verbunden. Die
segmentierten Adressen (d.h. Segmentnummer und relative Segmentadresse SEG, SRA) des erstenBytes des Stack-Segments
für die Ringe 0, 1 und 2 befinden sich jeweils in den Stack-Basisworten SBWO bis SBW2, die sich wiederum
im Prozeß-Steuerblock 104 befinden. Da das Stack-Segment von Ring 3 niemals über einen nach innen gerichteten Aufruf eingegeben
werden kann (d.h. von einem höheren Ring als Ring 3), ist seine Stack-Startadresse nicht erforderlich.
Jeder Stack-Rahmen S1, S2 und S3 ist jeweils in eine Arbeitszone 1005, 10Ö6 und 1007, in einen unbenutzten Teil 1008,
1009 und 1010, der für Ausrichtungszwecke benutzt wird, in eine
50982 5/0928
Sicherstellungszone 1011, 1012 und 1013 und in eine
Kommunikations-Zone 1014, 1015 und 1016 unterteilt. Die
Arbeitszone wird, wenn erforderlich, von ihrer Prozedur benutzt und kann Informationen enthalten, die vom Prozeß
benötigt werden, wie z.B. örtliche Variablen usw....Die Sicherstellungszone des Stack-Rahmens wird zur Speicherung
des Inhalts verschiedener Register, wie z.B. des Status-Registers, des T-Registers und des Inhalts des Befehlszählers
verwendet. Die KommunikationsrZone .speichert Informationen,
die zur Durchgabe von Parametern zwischen den Prozeduren erforderlich sind. Vor dem Aufruf einer gegebenen
Prozedur speichert der Benutzer die Register, deren Inhalt er erhalten möchte in der Sicherstellungs Zone, und er
lädt weiterhin die an die aufgerufene Prozedur weiterzuleitenden Parameter in die Kommunikalions ζ one. Wenn der Aufruf
durchgeführt ist, führt die Hardware die Sicherstellung des Inhalts des Befehls-Zählers und anderer angegebener Register
durch, um eine Rückkehr von der aufgerufenen Prozedur zu erleichtern. Jeder Prozedur-Aufruf erzeugt einen Stack-Rahmen
innerhalb des Stack-Segments, und anschliessende Prozedur-Aufrufe
erzeugen zusätzliche Rahmen. Nun ist ein Stack entwickelt und besteht aus einer Anzahl aneinander angrenzender
Teile, die als Stack-Rahmen bezeichnet werden, die dynamisch jeder Prozedur zugewiesen werden.Diese Stacks befinden sich
in Stack-Segmenten. Allgemein wird der euste Stack-Rahmen in den Anfangsbereich des Segments geladen und die nachfolgenden
Rahmen danach. Der letzte geladene Rahmen wird als Spitze des Stacks bezeichnet. Ein T-Register 114 von Fig.1
lokalisiert die Spitze des Stacks für den gerade aktiven Prozeß. Eine Prozedur, wie zum Beispiel P1, die in Ring 3
abläuft, kann eine in Ring 1 ablaufende Prozedur P2 ' aufrufen, die wiederum eine in Ring 0 ablaufende Prozedur
aufruft. Jedesmal, wenn eine Prozedur aufgerufen wird, erzeugt
509825/0928
sie innerhalb ihres Ring-Stack-Segments einen Stack-Rahmen
(d.h. es definiert die-Struktur für die Durchführung der Prozedur) und das T-Register 114, das die Adresse der Spitze
des Stacks für den gerade aktiven Prozeß angibt, wird geladen. Die Prozedur P1 (wie bereits vorausgesetzt) kann die Prozedur
P2 aufrufen, die ihrerseits wieder die Prozedur P3 aufrufen
kann, und da diese Aufrufe von einer höheren zu einer niedrigeren Ringnummererfolgen, wird eine Ringkreuzung erforderlich,
die einen nach innen gerichteten Aufruf nach sich zieht und gemäß einer oben beschriebenen Methode entwickelt wird. Bei
jedem Prozedurwechsel wird der Inhalt der erforderlichen Register und Parameter sichergestellt, um eine Rückkehr von der
angerufenen Prozedur zu erleichtern.
Der Zugriff auf eine Prozedur erfolgt immer mit Hilfe von "ENTER PROCEDURE"-Befehlen über einen Prozedur-Descriptor 1110.
Das Format des Befehls "ENTER PROCEDURE" 1100 ist in Fig.11a
dargestellt. Der Operations-Code (OP) 1101 belegt die Bit-Positionen
0 bis 7. Der Komplementär-Code 1102 ist ein Ein-Bit-Code und belegt die Bit-Positionen 8 bis 9; wenn der
Komplementär-Code auf logisch 1 ist, lautet der befehl ENT,
wenn der Komplementär-Code dagegen logisch 0 ist, lautet der Befehl ENTSR und das Basis-Registermuß das Basis-Register
0 (BRO) sein. Die Adreßsilbe AS 11C4 belegt die Bit-Fosition 12 bis 31 und erzeugt die AS-Adreßsilbe
des Prozedur-Descriptors 1110. Wenn ein "ENTER PROCEDURE"-Befehl eine Ringkreuzung benötigt, erfolgt
zwangsweise ein Zugriff zum Durchschalt-Prozedur-Descriptor 1120. Dies wird durch die Positionierung des
GS-Feldes 1302 des Segment-Descriptors 1301 auf logisch 10 gekennzeichnet. Im allgemeinen befindet sich das GS-FeId
dann auf 10, wenn einer der"ENTER PROCEDURE"-Befehle benutzt
wird.
809*25/0928
Der Segment-Descriptor wird benutzt, um auf die Basis des gewünschten Segments hinzuweisen, in diesem Fall enthält
das Segment 1300 des Durchschaltprozedur-DescriptorsGPD 1120. Das erste Wort des Segments 1300, das d Durchschaltprozedur-Descriptor
(GPD's) enthält, wird so wie in Fig.11c dargestellt ist, formatiert. Das TAG 1121 belegt die Bit-Positionen
0 und 1 und muß einen Fehler-Descriptor anzeigen,
d.h. das TAG-FeId muß auf logisch 11 sein. Die maximale Ringnummer CMRN 1122 des Aufrufers belegt die Bit-Positionen
2 und 3 und kennzeichnet den höchsten Ring, bei dem legal eine Aufruf-Prozedur über den Durchschalt-Prozedur-Descriptor
GPD durchgeführt werden kann. Eine Aufruf-Überschreitungsausnahme wird erzeugt, wenn die Rtngnummer des Aufrufers
größer als CMRN 1122 ist. Die Adreßbegrenzung des Durchschal t-Prozedur-Descriptors GPDAB 1124 belegt die Bit-Positionen
10 bis 31 und muß größer als die relative Segment-Adresse SRA sein (d.h. die Verschiebung des GPD-innerhalb
des Segments des Prozedur-Descriptors 1300), da andererseits eine illegale GPD-Zugriffs-Ausnahme auftritt. Daher wird
ein Durchschalt-Prozedur-Descriptor GPD als erstes Wort des Segments verwendet, das Prozedur-Descriptore enthält.
Ein GPD wird weiterhin benutzt, um festzulegen, ob der Aufrufer das Recht hat, eine ZugrifOperation zum Segment
über die maximale Aufrufer-Ringnummer CMRN durchzuführen und ob sich der aufgerufene Prozedur-Descriptor
innerhalb der Adreßbegrenzung des Durchschalt-Prozedur-Descriptors befindet. Wenn einmal feststeht, daß der Aufruf
zu einem Segment legal ist, und der Aufrufer das Recht besitzt, das Segment zu benutzen, wird die Adresse
aus der Adreßsilbe AS 1104 des Eingabe-B»fehla 1100 erzeugt,
und der erforderliche Prozedur-Descriptor 1100 (siehe auch Fig.13)
wird aufgerufen.Das Format des Prozedur-Descriptors 1110 ist in Fig.11b dargestellt und besteht aus zwei 32-Bit-Worten jeweils
Wort 0 und Wort 1. Wort 0 enthält die segmentierte
509825/0928
Adresse 1113 des Eintrittspunktes EP der gewünschten Prozedur. Die segmentierte Adresse besteht, wie dies bei der segmentierten
Adresse jedes Operanden der Fall ist, aus der Segment-Nummer SEG und der relativen Segment-Adresse SRA. Das Wort
des Prozedur-Descriptors enthält eine Eintrittspunkt-Ringnummer EPRN 1112 und ein TAG-FeId 1111.. Der Wert des TAG-Feldes
wird wie folgt interpretiert.
a. Wenn TAG logisch 00 enthält, ist der Prozedur-Descriptor
direkt. .
b. Wenn TAG logisch 01 ist , ist der Prozedur-Descriptor
ein erweiterter Descriptor und enthält Wort 1, also insgesamt
2 Worte.
c. Wenn TAG logisch 10 ist, ist der Prozedur-Descriptor
indirekt und eine Ausnahme "illegaler Prozedur-Descriptor" tritt auf, und
d. Wenn TAG logisch 11 ist, handelt es sich um einen Fehler-'
Prozedur-Descriptor, und eine Ausnahme tritt auf.
Die Länge von Wort 1 des Prozedur-Descriptors beträgt 32
Bits und wird verwendet, wenn TAG einen erweiterten Descriptor anzeigt und die segmentierte Adresse eines Verkettungsabschnitts enthält, dessen Inhalt zum Prozedur-Eintrittszeitpunkt
in das Basis-Register BR? geladen wird.
In Fig.12 ist ein Teil des EBT-Befehls und insbesondere
der Teil dargestellt, der sich auf die Ringkreuzung und Ring-Überprüfungs-Erfordernisse bezieht. Der ENT-Befehl wird
aufgerufen (1201) und ein Vergleich (1202) wird durchgeführt, bei dem der segmentierte Teil des Basis-Registers BRn mit dem
segmentierten Teil der Adresse des T-Registers verglichen wird; wenn der Vergleich keine Gleichheit erbringt, wird
ein illegales Stack-Basis-Register 1208 angezeigt.
509825/0928
Wenn andererseits eine Gleichheit auftritt, wird ein weiterer Vergleich 1203 durchgeführt, bei dem dös 30.
Bit einschließlich der nächsten beiden Bits (d.h. Bits 30 und 31) des Basis-Registers η (BRn) auf 0 verglichen wird; wenn das
Ergebnis nicht gleich 0 ist, wird nochmals ein illegales Stack-Basis-Register 1208 angezeigt. Wenn das Resultat gleich
ist, kennzeichnet dies, daß der Inhalt von BRn hinsieht der Wortbegrenzung ausgerichtet ist, und ein weiterer Vergleich
1204 wird durchgeführt, um festzustellen,.ob das TAG-FeId
von BRn (d.h. die. beiden Bits von Bit 0 aus) gleich 0 ist. Ein TAG mit logisch 0 gibt an, daß der Zugriff zu den
Informationen über einen direkten Descriptor erfolgt; dies ist eine der Bedingungen des ENT-Befehls. Wenn das TAG-FeId,
(d.h. die Bits 0 und 1 von BRn) gleich 0 ist, werden die in den Flußdiagrammen der Fig.i4 bis 16 dargestellten Funktionen
durchgeführt(siehe Flußdiagramm 12, Block 1205) . Wenn dabei die entsprechenden Bedingungen erfüllt werden, erfolgt
eine weitere Überprüfung 1206, um festzustellen, ob die angegebene relative Segment-Adresse des Eintrittspunkts (SRAgp)
gerade ist, da Befehle vonHalbwort-Begrenaungen aus starten. Wenn diese Adresse ungerade ist, wird eine Ausnahme "illegale
Verzweigungsadresse" 1209 erzeugt, wenn die Ausnahme legal ist ,wird der ENT-Befehl 1207 über weitere, nicht dargestellte
Schritte, abgewickelt.
Gemäß den Flußdiagrammen des Zugriffs-Überprufungsmechanismus
der Fig.i4 bis 16 werden im allgemeinen die folgenden Operationen
jedesmal dann durchgeführt, wenn der Befehl "ENTER PROCEDURE" eingeleitet wird.
a. Das Recht des Aufrufers mit seinem Teilnehmer in Verbindung
zu treten,wird überprüft, indem zuerst im .zweiten Wort
des Segment-Descriptors die Aufruf-Klammer festgelegt
wird, die der Aufrufer benutzt. (Die Aufruf-Klammer ergibt
sich durch die Erfassung der KLeinsten Ringnummer aus dem
Schreib-Ringnummer-Feld WR und der maximalen Ringnummer aus
dem Feld der maximalen Ringnummer MAXR.)
509825/0928
b. Eine Entscheidung hinsichtlich der nächstenProzeß-Ringnummer
wird getroffen, indem festgestellt wird, ob sich der Aufrufer
in der gleichen Aufruf-Klammer befindet, wie der aufgerufene
Teilnehmer; dies führt zu einem "Nichtiun"; es wird fest-,
gestellt, ob sich der Aufrufer in einer Aufruf klammer befindet,
die die Durchführung eines nach außen gerichteten Aufrufes erfordert, durch den eine Ausnahme-Bedingung erzeugt wird,
die von einem hier nicht beschriebenen Mechanismus verarbeitet
wird; oder es wird festgestellt, ob sich der Aufrufer in einer Aufrufklammer befindet, die einen nach innen gerichteten
Aufruf erfordert(d.h. einen Aufruf zu einer Aufrufklammer,
die eine Ringkreuzung von einer größeren zu einer kleineren . Ringnummer erfordert in diesem Fall muß sich die Ringkreuzung
an einem gültigen Eingabepunkt EP befinden und der Eingabe- ■ punkt muß freigegeben sein). ·
c. Für den aufgerufenen Teilnehmer wird ein Stack-Rahmen
erzeugt(d.h.. ein Raum im bereits erwähnten Format des entsprechenden Segments wird zugewiesen), und der Stack-Rahmen
und die Stack-Rahmen-Register werden aktualisiert.
d.. Eine Verzweigung zum Eintritfcspunkt der Prozedur wird durchgeführt
, auf die der Prozedur-Descriptor'hinweist.
Gemäß Fig.14 wird die Zugriffs-Uberprüfung (14O1) gestartet,
indem die Adreßsilbe AS'entwickelt wird, die die tatsächliche
Adreß-Ringnummer EAR, die Segmentnummer des Prozedur-Descriptors
SEGp0 und die relative Segment-Adresse des Prozedur-Descriptors
SRApD enthält.Nach Entwicklung dieser Informationen
wird der Prozedur -.-Descriptor 1110 aus SEGp^,
SRAp0 (1403)abgegriffen, wobei Zugriffsrechte zum Scratch-Pad-Speicher
ignoriert werden. Der Prozedur-Descriptor 1110 erzeugt das TAG-FeId, das feststellt, ob der Descriptor
ein direkter, erweiterter, indirekter oder ein Fehler-Descriptor
ist·; TAG stellt die Eintrittspunkt-Ringnummer EPRN
509825/0928
und das Segment (SRAEP) fest, das den Eintrittspunkt der
relativen Segmentsadresse (SRAEp) des Eintrittspunktes
enthält. Das TAG-FeId wird überprüft (14O4), um festzustellen,
ob der Descriptor 1110 ein. direkter, erweiterter, indirekter, oder ein FehlerlrDescriptor ist, indem sein Feld gemäß
dem bereits beschriebenen Code überprüft wird. Nur ein direkter oder erweiterter Prozedur-Descriptor ist zulässig.
Ein indirekter oder Fehler-Descriptor ist nicht zulässig und löst beimZugriff einen hier nicht beschriebenen Ausnahme-Mechanismus
aus. Wenn einmal festgestellt wurde, daß ein Zugriff zu einem legalen Prozedur-Descriptor erfolgt ist,
beginnt bei Punkt A 1405 die Überprüfung des tatsächlichen
Aufruf-Rechts.
Gemäß Fig.15 und von Punkt A 1405 aus, werden die maximale -Ringnummer NAXR, die Schreib-Ringnummer WR
und das Ausführungserlaubnis-Bit EP des Segments abgegriffen, das die SEGgp-Eintrittspunkte enthält; diese Informationen
befinden sich im Segment-Descriptor für das Segment, das die Eintrittspunkte (SEGEp) enthält. Die Schreib-Ringnummer WR
wird mit der maximalen Ringnummer MAXR 1503 verglichen; wenn die Schreib-Ringnummer WR größer als die maximale
Ringnummer MAXR ist, kann das Segment nicht benutzt werden und eine Ausführungsüberschreitungsausnahme 1513 tritt
auf. Wenn die Schreib-Ringnummer WR gleich oder kleiner als die maximaleiiRingnummer MAXR ist, wird das Ausführungserlaubnis-Bit
EP mit logisch 1 verglichen; wenn das EP-Bit nicht logisch 1 ist, tritt nochmals eine Ausführungsüberschreitungsausnahme
1513 auf; wenn das EP-Bit jedoch gleich 1 ist, wird die tatsächliche Adreß-Ringnummer EAR der aufrufenden
Prozedur mit EPRN auf ein Maximum erhöht,um eine neue
zu entwickeln, - (MAX, (EAR1 EPRN)), wobei EAR das im
Befehlszähler IC enthaltene Maximum von PRN und von allen RLngnummern in den Basis-Registern und Daten-
50982 5/0928
·■' 24 566
Descriptors, wenn vorhanden, ist, die sich innerhalb des
Pfades befinden, der zum Prozedur-Descriptor führt. Die tatsächliche Adreßringnummer EAR2 wird nun, 1506, mit der
maximalen Ringnummer MAXR des MAXR-Segment-Descriptors von
SEGgp verglichen,der die maximale Ringnummer darstellt, bei
der eine Prozedur durchgeführt werden kann. Wenn EAR2
größer als MAXR ist, ist der Prozeduraufruf ein nach innen
gerichteter Aufruf, der eine Verzweigung der über den
gültigen Eintrittspunkt einzugebenden Prozedur und der Zugriffs-Überprüfungsoperation zu Punkt B 1507 erfordert.
Die folgenden Überprüfungs-Operationen werden nun durchgeführt:
a. SEGgp wird überprüft,um festzustellen, ob es sich um ein zulässiges
Durchschalt-Segment handelt.
b. Die maximale Ringnummer CMRN des Abrufers wird überprüft,
um festzustellen, ob diese gleich oder größer als die tatsächliche Adreßringnummer EAR des Abrufers ist.
Wenn.diese Bedingungen nicht vorhanden sind, tritt eine
illegale Durchschalt-Segment-Ausnahme 16O3 oder eine Abruf-Überschreitungs-Ausnahme
1615 auf.
Gemäß dem Verzweigungspunkt B 1507 von Fig.i6 wird
mit der erstai.durchgeführten Überprüfung 1602 festgestellt,
ob das Segment, das die Prozedur-Descriptors enthält, ein Gatter-Segment ist oder nicht. Dies geschieht durch
die Überprüfung des Durchschalt/gemaphca>Feldes GS, des
Segment-Descriptors, welcher auf das Segment des Prozedur-Descriptors hinweist, um festzustellen, ob das Feld auf
logisch 10 ist. Wenn das GS-FeId des Segment-Descriptors
des Segments, "den Prozedur-Descriptor enthält, auf logisch
10 ist, handelt es sich um ein Durchschalt-Segment, und
das erste Wort des Segments, das denProzedur-Descriptor
enthält, ist ein Durchschalt-Prozedur-Descriptor GPD.1120 von
Fig.11c und Fig.iJ. Das erste Wort 1120 des Segments, das die
50982 5/092 8
24566
Prozedur-Descriptors enthält,wird nun aus der Adresse
SEGp0, 0 unter Ignorieren der Zugriffsrechte zum
Scratch-Pad-Speicher abgegriffen. Es ist zu bemerken, daß das TAG-FeId des ersten Worts 1120 des Segments,
das denProzedur-Descriptor SEGp0 1300 enthält, logisch
sein muß(Fig.i3)> dies kennzeichnet einen Fehler-Descriptor.
Weiterhin muß das MBZ-FeId auf 0 positioniert sein.
Diese Bedingungen werden vom Hardware/Firmware-Schritt
1605 (arithmetische Logikeinheit) uba^prüft, und wenn diese
Bedingungennicht gegeben sind, tritt eine illegale Durchschaltsegment
-Ausnahme 16O3 auf. Wenn diese Bedingungen jedoch
nicht gegeben sind, wird weiterhin eineüberprüfung I6O6
durchgeführt, um festzustellen, ob die relative Segmentadresse des Prozedur-Descriptors SRAPD 1110 ein Vielfaches
von 8 ist. Wenn die Bedingung von I606 nicht gegeben ist,
tritt eine illegale System-Objekt-Adreßausnahme I613 auf,
andernfalls wird der nächste Schritt 1607 durchgeführt.
Schritt 1607 überprüft, ob die relative Segmentadresse des Prozedur-Descriptors SRAPD sich innerhalb der Adreßbegrenzung
GPDAB 1124 des Gatter-.Prozedur -Descriptors 1120 befindet oder nicht; wenn sich die Adresse nicht
innerhalb der Adreßbegrenzung befindet,handelt es sich um
einen illegalen Prozedur-Descriptor und eine illegale Zugriffs-Ausnahme 1614 des Durchschalt-Prozedur-Descriptors
GPD tritt auf. Wenn sich die Adresse jedoch innerhalb der Adreßbegrenzung des Durchschalt-Prozedur-Descriptors
(d.h. SRAPD ist kleiner als GODAB) befindet, wird in I6O8 das Recht des Aufrufers überprüft,mit dem Aufgerufenen
in Verbindung zu treten. Dies erfolgt durch Vergleich der tatsächlichen Adreß-Ringnummer EAR2 mit der im ersten Wort
1120 des Prozedur-Descriptor-Segments 1300 befindlichen
maximalen Ringnummer CMRN 1122 des Aufrufers. Wenn EAR2
größer als die CMRN des Aufrufers ist, tritt eine Aufruf-Überschreitungsausnahme
1615 auf, die anzeigt, daß der
509825/0928
Aufrufer unter diesen Umständen nicht das Recht besitzt,
einen legalen, nach innen gerichteten Aufruf durchzuführen,
d.h. von einer höheren Ringnummer zu einer niedrigeren Ringnummer. ¥enn EAR2 andererseits niedriger oder gleich
CMRN ist, ist der nach innen gerichteteAufruf legal und
in 1609 wird eine Überprüfung durchgeführt, um festzustellen,
daß die Prozeß-Ringnummer PRN, die mit der im Befehlszähler ICkurz vor der Durchführung des Aufrufs befindlichen Ringnummer
der laufenden Prozedur identisch ist, nMriger als die maximale Ringnummer MaXR vonSEGEP ist; wenn dies
der Fall ist, führt der Zugriffsmechanismus eine Verzweigung
zu Punkt CI5O8 durch, andernfalls wird eine neue Prozedur-Ringnummer
NPRN errechnet und einer maximalen Ringnummer MAXR lon beigefügt. . ■
Im allgemeinen ist die tatsächliche Adreß-Ringnummer EAR2
mit der Prozedur-Ringnummer PRN des Aufrufers identisch.
In manchen Fällen ist der EAR2 jedoch größer als die PRN, wenn es erforderlich ist, eine maximale Sicherheit zu
gewährleisten, daß dem Aufrufer nicht der Zügriff zu einem
bestimmten Segment verweigert wird. In solchen Fällen wird PRN zur Übernahme des Wertes von EAR2 gezwungen, um zu
gewährleisten, daß der Aufruf nach einem Austritt zur maximalen Ringnummer zurückgeleitet wird. Zu diesem Punkt
ist zu bemerken, daß dieser Prüfmechanismus benutzt wurde,
da die EAR2 größer als die MAXR und daher größer als die Spitze der Abrufklammer des Verfahrens war und aus diesem
Grunde ein nach innen gerichteter Abruf erforderlich war, der notwendigerweise die Benutzung eines gültigen Gatters
erforderte, und der Mechanismus beinhaltete diese Gatter-Überprüfungen. Durch eine Rückverzweigung
zu C 1508 (Fig.15) wird eine weitere Überprüfung 1509
durchgeführt,um nun festzustellen, daß die Prozeß-Ringnummer
PRN größer als die Schreib-Ringnummer WR von SEGEP ist, die in diesem Zusammenhang die kleinste
Ringnummer darstellt, bei der eine Prozedur ablaufen kann.
50 9 82 5/0928
Wenn die Schreib-Ringnummer WR größer als die Prozeß-Ringnummer
PRN ist, tritt eine Ausnahme "nach außen gerichteter Aufruf" 1514 auf. Wenn WR jedoch gleich oder niedriger als
PRN ist, handelt es sich um einen legalen Aufruf und NPRN wird auf PRN 1510 gesetzt.
Nach Durchführung der vorstehend t>esehriebenenüberprufungen
wird ein nach innen gerichteter Aufruf durchgeführt; nach dem Ablauf der gewünschten Operation erfolgt eine Rückverzweigung
zum Ausgangspunkt des ablaufenden Programms mit Hilfe des "Exit"·
Befehls.Während der "ENTER INSTRUCTION» wurde der Inhalt
des Befehlszählers IC vor der Durchführung des Aufrufs in der Sicherstellungs-Zone des Stack -Rahmens des Aufrufers
gespeichert. Weiterhin wurde auch die Ringnummer des Aufrufers während des "ENTER^Befehls im Basis-Register 0 BRO sichergestellt.
Das Format des "Exit"-Befehls 1130 ist in Fig.11B dargestellt.
Der Operations-Code OP 1131 befindet sich in den Bit-Positionen 0 bis 7, und der Komplementär-Code C 1133 in den Bit-Positionen
12 bis 15. Der Komplementär-Code ermöglicht anderen Befehlen die Benutzung des gleichen 8-Bit-Operations-Code.
Das MBZ-FeId 1132 in den Bit-Positionen 8 bis 11 muß 0 sein,
da andernfalls eine Ausnahme "illegales Format-Feld" auftritt. (BRO ist im allgemeinen ein Hinweis für die Kommunikations-Zone
des Stack-Rahmens des Aufrufers)
Beim Ablauf des EXIT-Befehls müssen vorbestimmte Überprüfungen
durchgeführt werden,- um zu gewährleisten, daß der Aufrufer nicht seine Identiät geändert hat, um so eine andere,
nicht vorgesehene Privilegstufe zu benutzen. Gemäß Fig.17 wird eine erste Überprüfung (1701) durchgeführt, um festzu-
509825/0928
stellen, ob das TAG-FeId des Befehlszähler-Inhalts ICC einen
direkten Descriptor anzeigt. Der Inhalt logisch OO im TAG-FeId
kennzeichnet einen direkten Descriptor; andernfalls tritt eine Ausnahme 1702 "illegale Stack_Daten" auf? wenn der Wert
jedoch 0 ist, wird das Ringfeld im Befehlszähler-Inhalt ICC
auf die neue Prozeß-Ringnummer NPR 1703 positioniert. Hierdurch wird die neue Prozeß-Ringnummer NPR auf den Wert
gebracht, den sie vor der ersten Durchführung des Aufrufs
besaß· . Weitere Überprüfungen werden jedoch durchgeführt, um zu gewährleisten, daß kein weiterer "Betrug" vorliegt.
Nun muß die Ringnummer "von Basis-Register 0, die sich in der Bit-Position 2 befindet und auf 2 Bit-Positionen
einenhließlich - der Bit-Position 2 erweitert ist, gleich der neuen Prozeß-Ringnummer NPR 17.04 sein. (Es wird nochmals
daran erinnert, daß beim Aufruf des ENTER-Befehls die Ringnummer,
die der Aufrufer vor dem Aufruf besaß, in den Bits2 und
3 des Basis-Registers 0 (BRO), gespeichert wurde.)
Wenn sich aus der Prüfung 1704 ergibt, daß die neue Prozeß-Ringnummer
NPRN nicht gleich der Ringnummer in den Bit-Positionen
2 und 3 des Basis-Registers 0 (BRO) ist, tritt eine Ausnahme 1702 "illegale Stack-Daten" auf. Die nächste
Überprüfung 1705 stellt fest, ob ein nach innen oder ein nach außen gerichteter Aufruf durchgeführt werden muß.
Da vorher bereits ein nach innen gerichteter Aufruf durchgeführt wurde, ist nun ein nach außen gerichteter Aufruf
erforderlich, um den Ausgangspunkt zu erreichen, von dem
die Prozedur aufgerufen wurde. Da die Erfindung weiterhin keinen nach außen gerichteten Aufruf gestattet, besteht nie
die Notwendigkeit eines nach innen gerichteten Rücksprungs. Nun wird die neue Prozeß-Ringnummer NPRN mit der Prozeß-Ringnummer
PRN 1705 verglichen,und wenn NPRN kleiner als PRN ist,
509825/0928
wird ein nach innen gerichteter Rücksprung erforderlich und eine Ausnahme 1706 "nach innen gerichteter Rücksprung" wird
erzeugt. Wenn die Überprüfung 1705 jedoch erfolgreich durchgeführt wurde (d.h. NPRN ist gleich oder größer als PRN), wird
eine Überprüfung durchgeführt, um festzustellen, ob eine Rückkehr zu der segmentierten Adresse SEGr, die die Prozedur
aufrief, durchgeführt wurde und eine Rückkehr zur Abrufklammer
der aufrufenden Prozedur wird durchgeführt, und das Ausführungs-Bit EP wird gesetzt. Dies erfolgt durch Erfassen des Segment-Descriptors
SEGr der aufrufenden Proze'dur 1707 und mit Hilfe der Überprüfungen 1709, 1711 und 1712. Bei der Durchführung
der Überprüfungen 1709, 1711 und 1712, stellen die Überprüfungen 1709 und 1711 fest, ob die neue Prozeß-Ringnummer NPRN größer
als die kleinste Ringnummer WR, jedoch kleiner als die maximale Ringnummr MAXR ist (d.h. daß sich die Ringnummer in der
Aufrufklammer der aufrufenden Prozedur, also in ihrer vorgeschriebenen
Position befindet). Abschließend wird mit Überprüfung 1712 gewährleistet, daß das Ausführungs-Erlaubnisbit
EP auf 1 gesetzt ist. Nun ist ein voller Zyklus abgeschlossen, ein Aufruf wurde über einen ENTER-Befehl durchgeführt; die erforderliche
Operation oder Verarbeitung wurde mit Hilfe der aufgerufenen Prozedur durchgeführt; und danach erfolgte eine
Rückkehr mit Hilfe des EXIT-Befehls zur aufrufenden Prozedur.
Nach der hier erfolgten Darstellung und Beschreibung des bevorzugten Aufbaus der Erfindung kann der Fachmann erkennen,
daß im Rahmen der Erfindung vielfältige Änderungen durchgeführt werden können.
509825/0928
2456B02
Der Job ist die Hauptarbeitseinheit für den Stapel-Benutzer. Er ist die "Größe" für die
Beschreibung, Planung und Realisierung der Arbeit, die der Benutzer durchführen möchte.
JOB-STEP
(JOB-SCHRITT)
(JOB-SCHRITT)
Eine kleinere Einheit der Stapelarbeit. Der Job-Schritt ist im allgemeinen ein Schritt
bei der Ausführung eines Jobs, der aus einer, logisch zusammengehörenden Verarbeitung besteht.
TASK
(AUFGABE)
(AUFGABE)
Die kleinste Einheit der benutzerdefinierten Arbeit. Innerhalb einer Task ist keine für den
Benutzer erkennbare Parallelarbeit zulässige
PROGRAM
(PROGRAMM)
(PROGRAMM)
Ein Satz von Algorithmen, der vom Programmierer geschrieben wurde und die zur Durchführung eines
Jobs oder eines Teils eines Jobs erforderlichen Informationen liefert. '
PROCESS GROUP
PLEX
PLEX
Die systeminterne Darstellung einer spezifischen Job-Durchführung.
PROCESS GROUP
(PROZESSGRUPPE)
(PROZESSGRUPPE)
Eine zusammengehörige Gruppe von Prozessen; im allgemeinen die für die Durchführung eines
einzelnen Job-Schrittes erforderlichen Prozesse.
PROCESS
(PROZESS)
(PROZESS)
Die kontrollierte Durchführung von Befehlen ohne Parallelarbeit. Seine tatsächliche Darstellung
und seine Steuerung werden von der internen System-Konzeption oder von Vereinbarungen
bestimmt.
509825/0928
2456802
PROCEDURE
(PROZEDUR)
(PROZEDUR)
Eine bezeichnete Software-Funktion oder ein Algorithmus, die ohne Parallelarbeit von einer
Verarbeitungseinheit ausgeführt werden können. Ihr tatsächlicher Aufbau (der Code mit den dazugehörigen
Informationen, Aufruf und Benutzung) werden von der internen Systemkonzeption oder von Vereinbarungen bestimmt.
LOGICAL PROCESS
(LOGISCHER
PROZESS)
(LOGISCHER
PROZESS)
Die zur Ausführung eines Prozesses erforderliche Gruppierung von Hardware-Einrichtungen und
Steuerinformationen.
ADDRESS SPACE
SEGMENTATION
(ADRESSRAUMSEGMENTIERUNG)
(ADRESSRAUMSEGMENTIERUNG)
Die Gruppierung der logischen Adressen,zu deren
Umwandlung in absolute Adressen während eines bestimmten Prozesses die CPU berechtigt ist.
Obwohl ein Prozessor technisch in der Lage ist, jede einzelne Zelle des Timing-Speichers
zu adressieren, ist es wünschenswert, den Zugriff auf nur diejenigen Zellen zu beschränken,
die während des dem Prozessor zugeordneten Prozesses benutzt werden.
LOGICAL ADDRESS Ein Element des Prozeß-Adreßraums, wie z.B.
(LOGISCHE ADRESSE)die Segmentnummer SEG und die D-Verschiebung.
BASIC ADDRESS
DEVELOPMENT
(BASIS-ADRESSENTWICKLUNG )
DEVELOPMENT
(BASIS-ADRESSENTWICKLUNG )
Eine Hardware-Prozedur, die eine Anzahl von Adreß-Elementen bearbeitet, um eine absolute
Adresse zu berechnen,· die für den Zugriff zu einer Byte-Position im Kern verwendet wird.
PROCESS CONTROL
BLOCK
BLOCK
(PROZESS-STEUERBLOCK)
Ein Prozeß-Steuerblock PCB ist jedem Prozeß zugeordnet, und er enthält Informationen
hinsichtlich des mit ihm zugeordneten Prozesses einschließlich der absoluten Adresse von
Tabellen zur Definition der Segmenttabellen, auf die der Prozeß Zugriff hat.
50 9 825/09 28
t // F" Ρ1· Γ* f*l ■
4* Ήτ v^· 1Of- *w*- W- -
J.P.TABLES Eine Sammlung logischer Adressen zur Lo-(J.P.-TABELLEN)
kalisierung eines einem Prozeß zugeordneten
Prozeß-Steuerblocks
509825/0928
SEG Das Segment, das den Prozedur-Descriptor enthält.
PD
SEGjjp Das Segment, das den im Prozedur-Descriptor enthaltenen
Eintrittspunkt enthält.
PRN Die Prozeß-Ringnummer, die sich kurz vor dem Aufruf im IC-Befehlszähler befindet oder mit
Hilfe des ENTER-Befehls errechnet wird.
EAR Die tatsächliche Ääreß-Ringnummer; diese ist das
Maximum der folgenden Nummern:
(a) Der im IC befindlichen Prozeß-Ringnumraer PRN; oder
(b) aller Ringnummern des Basis-Registers und der Daten-Descriptors (wenn vorhanden), die sich
in dem Pfad befinden, der vom Aufruf-Befehl
zum Prozedur-Descriptor führt und die im Prozedur-Descriptor selbst befindliche
Eintrittspunkt-Ringnummer EPRN mit einschließt.
MAXR Die höchste Ringnummer bei der eine Prozedur ablaufen kann; MAXR befindet sich im Segment-Descriptor
von SEGEp.
WR Die kleinste Ringnummer, bei der eine Prozedur
ablaufen kann; WR befindet sich im Segment-Descriptor von
EP Das im Segment-Descriptor von SEGEp befindliche
Ausführungs-Erlaubnisbit.
50 98 257 0928
CMRN Die maximale Ringnummer des Aufrufers, die sich im
ersten Wort des SEGpD-Segmentsbefindet, wenn dieses
Segment als Tor-Segment identifiziert, ist (d.h. mit gesetztem Tor-Code).
NPRN Neue Prozeß-Ringnummer.
EPRN Ringnummer des Eintrittspunktes (Prozeß-Prozedur-Descriptor).
50 9825/0928
S i gnalb e ζ e i c hnung
ANHANG
Typ Funktion
(D | WSCLR | Steuersignal |
(2) | PDARG | Steuersignal |
(3) | PDURG1T | Verbindungssig nal |
(4) | UWOBK | Verbindungssig nal |
(5) | UWHOL | Steuersignal |
(6) UW1BK
(7) UWOOOOO
(8) UW00010
(9) UW00100 UW00110
(1O)UVSPS
Steuersignal
Steuersignal Löscht das Register, an das es angelegt wird;
PDA-Takt-Signal;
Anschlußstift, an einem Ende mit PDA und am anderen Ende mit dem Register' verbunden;
erweitert die Eingänge des UW-Registers;
hält Informationen in dem Register, an das es angelegt
wird;
wie UWOBK, jedoch an eine andere Eingangsklemme t des
UW-Registers angeschlossen;
Lösch-Klemme eines Flip-Flops des UW-Registers;
Flip-Fiop-Setz-Klemme des
■UW-Registers;
Identisch, mit 7+8, jedoch anderes Flip-Flop;
Ersatz-Steuereingang;
50 9 8 25/09
(11) UVSPD
(12) UVOBK
(13) | UVOOOOO UV00010 UV00100 UV00110 |
(14) | UWVBS |
(15) | UWVlD |
(16) | UWV2F |
(17) | ÜWV1S UWV2S |
(18) | -UWV1D |
(19) | UWV1H |
(20) | UWV1C |
(21) | UWV2C |
(22) | ÜRN1S URN2S |
(23) | URN1D |
(24) | URNSW |
Typ ·
Datensignal
Datensignal
Erweiterungssignal
Funktion
Steuersignal
Datensignal
Flip/Flop
Steuersignal
Datensignal
Flip/Flop
Steuersignal
Datensignal
Datensignal
Ersatz-Dateneingang; .
wie UWOBK und UVHBK, ist
jedoch an verschiedene Register und Gatter angeschlossen;
wie OTOOOOO, UW00010, WiOOIOO
und UW0011O, jedoch an das
UV-Flip-Flop angeschlossen
Steuereingang für UWV1F " Dateneingang für UWV1F
Schreib-Steuer-Flip-Flop
Steuereingang für UWV1F und
UWV2F.
Dateneingang für UWV1F;
Steuersignal Halten des UWVIF-Flip-Flops;
■Steuersignal Löschen"von UWV1F;
Steuersignal Löschen von UWV2F; Steuersignal Steuereingänge für URN1F und
URN2F;
Dateneingang für URN1F;
Steuersignal Übertragung von URN1F zu
URN2F und URN2F zu URN1F;
509825/0928
* - 76 -
(25) URN2F
(26) URN1H
(27) URN2C
(28) URW1S URW2S
(29) URW1D
(30) URV2F
(31) XNU
(32) XOO
Flip-Flop
Steuersignal
Steuersignal Steuersignal
Datensignal Flip-Flop Funktion
Steuerung des Lademaximums (UP, UBS nach. UM);
Halten des URN1F-Flip-Flops;
Löschen von URN2F;
Steuereingänge für URV1F und URV2F; Dateneingang für URV1F;
Lese-Steuer-Flip-Flop;
kennzeichnet eine hier nicht benutzte Klemme;
mit Masse verbundener Eingang.
509825/0928
Claims (1)
- - 77 Patentansprüche(Iy Datenverarbeitungsanordnung mit interner Programmierung, mit einem virtuellen Speicher, wobei das System abhängig von intern gespeicherten Befehlswörtern Informationen verarbeitet und wobei in dem virtuellen Speicher mehrere unterschiedliche Typen von Informationsgruppen gespeichert sind, von denen jeder Typ einem Adreßraum zugeordnet ist, der von einem Segment mit einstellbaren Grenzen begrenzt ist, und mit einer Einrichtung zum Schutz der Information in dem virtuellen Speicher gegen unzulässige Benutzer durch Beschränken des Zugangs zu der Information entsprechend Privilegstufen, dadurch gekennzeichnet, daß zusammen mit einer Zugriffsprüfeinrichtung folgende Einrichtungen vorgesehen sind:(a) erste Einrichtungen zum Speichern wenigstens einer Segraenttabelle in den virtuellen Speicher, die mehrere Segments-Descriptors enthält, von denen jeder einem vorbestimmten Segment zugeordnet ist und ein vorbestimmtes Format aufweist, das ein Zugriffsinfofmationselement und ein Basisadressenelement in vorbestimmten Positionen des Formats enthält, wobei das Basis-Adressenelement der Adressierung des Start-Speicherplatzes eines ausgewählten Segments in dem virtuellen Speicher dient, während das Zugriffsinformationselement die niedrigste Privilegstufe angibt, die für eine vorbestimmte Zugriffsart erforderlich ist, die in einem ausgewählten Segment erlaubt ist, .(b.) mehrere zweite Einrichtungen mit einem vorbestimmten Format, die mit den ersten Einrichtungen in Verbindung stehen und in einem vorbestimmten Abschnitt eine Segmentnummer SEG zur Identifizierung einer Segmenttabelle und des Orts eines Segment-Descriptors innerhalb der Segmenttabelle speichern, und die auch in einem vorbestimmten weiteren Abschnitt innerhalb8098 25/0928~ 78 -des von dem Segment-Descriptor angegebenen Segments eine Offset-Adresse speichern, die aus der Segmentbasis das erste Byte eines Worts innerhalb des Segments adressieren,(c) dritte Einrichtungen,die abhängig von einem Adressensilbenelement eines ausgeführten Befehls eine der mehreren zweiten Einrichtungen adressieren,(d) vierte Einrichtungen zum Speichern einer Verschiebung D von der Adressensilbe, wobei diese Verschiebung D aus dem ersten Byte des Worts innerhalb des Segments ein anderes Byte des Worts adressiert,(e) fünfte Einrichtungen, die mit den ersten, zweiten, dritten und vierten Einrichtungen in Verbindung stehen und die Verschiebung D und die Basis-Adresse zu der Offset-Adresse addieren , und(f) sechste Einrichtungen, die abhängig von dem Zugriffsinformationselement in einem ausgewählten Segment-Descriptor den Zugang zu dem dem ausgewählten Segment-Descriptor zugeordneten Segment gemäß der Privilegstufe und gemäß dem von dem Zugriffsinformationselement angegebenen Zugriffstyp begrenzen.2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Information gegen eine unberechtigte Benutzung mittels einer Hierarchie aufeinanderfolgender Ringstufen (Privilegstufen) geschützt ist, wobei jedem Typ der Informationsgruppen eine vorbestimmte Ringnummer zugeordnet ist, die eine Privilegstufe angibt, die abnimmt, wenn die zugehörige,Ringnummer zunimmt, daß Einrichtungen zur Bestimmung der maximalen tatsächlichen Adressringnuramer EAR (der minimalen Privilegstufe) eines ausgewählten Prozesses zum Zugang auf eine ausgewählte Informationsgruppe vorgesehen ist, und daß diese Einrichtungen zum Bestimmen der maximalen effektiven Adreß-60 98 26/0928ringnummer folgende Einrichtungen enthalten: .(a) erste Einrichtungen zum Speichern einer ersten Information, die die maximale Ringnummer FlD (die minimale Privilegstufe) angibt, die zum Lesen von Informationen aus der ausgewählten Gruppe erforderlich ist,(b) zweite Einrichtungen zum Speichern einer zweiten Information, die die maximale Ringnummer WR (die minimale Privilegstufe) angibt, die zum-Schreiben von Informationen in die ausgewählte Gruppe erförderlich ist, ■(d) dritte Einrichtungen zum Speichern einer dritten Information, die die maximale Ringnummer MAXR (die minimale Privilegstufe) angibt,die zum Verarbeiten von Informationen aus der ausgewählten Gruppe erforderlich ist, und(d) vierte Einrichtungen, die mit den ersten, zweiten, und dritten Einrichtungen in Verbindung stehen und das Maximum der Inhalte der ersten, zweiten und dritten Einrichtungen feststellen, so daß die effektive Adreßringnummer EAR erzeugt wird.3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die zweiten Einrichtungen zusätzlich die minimale Ringnummer WR (die maximale Privilegstufe) angeben, die zur Verarbeitung von Informationen aus der ausgewählten Gruppe erforderlich ist.4. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die vierten Einrichtungen eine Vergleichsschaltung zum Vergleichen von Binärzahlen enthalten.5. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß mit den zweiten Einrichtungen in Verbindung stehende fünfte Einrichtungen50982570928vorgesehen sind, die die tatsächliche Adreßringnummer EAR mit der Schreibringnummer WR vergleichen, und daß sechste Einrichtungen vorgesehen sind, die mit den fünften Einrichtungen in Verbindung stehen und ein Schreibüberschreitungsausnahmesignal erzeugen, wenn EAR größer als WR ist.6. Anordnung nach Anspruch5, gekennzeichnet durch siebte Einrichtungen, die mit den zweiten und dritten Einrichtungen in Verbindung stehen und die maximale Ringnummer MAXR und die Schreibringnummer WR mit der effektiven Adreßringnummer EAR vergleichen, und achte Einrichtungen, die mit den siebten Einrichtungen in Verbindung stehen und ein Ausführungsüberschreitungsausnahmesignal erzeugen, wenn die maximale Ringnummer MAXR nicht gleich oder größer als die effektive Adreßringnummer EAR ist, die ihrerseits nicht gleich oder größer als V/R ist.7. Anordnung nach Anspruch 6, gekennzeichnet durch neunte Einrichtungen, die mit den ersten Einrichtungen in Verbindung stehen und die effektive Adreßringnummer EAR mit der Leseringnummer RD vergleichen, und zehnte Einrichtungen, die mit den neunten Einrichtungen in Verbindung stehen und ein Leseüberschreitungsausnahme signal erzeugen,wenn die effektive Adreßringnummer EAR größer als die Leseringnummer RD ist.8. Anordnung nach Anspruch 7, gekennzeichnet durch elfte Einrichtungen zum Speichern einer Prozeßringnummer RPN eines derzeit ausgeführtenProzesses, zwölfte Einrichtungen, die mit den elften Einrichtungen in Verbindung gtehen und dreizehnte Einrichtungen, die mit den zwölften Einrichtungen in Verbindung stehen und das Leseüberschreitungsausnahmesignal umgehen, wenn die effektive Adreßringnummer EAR gleich der Prozeßringnummer PRN des derzeit ausgeführten Prozesses ist.509825/09289. Anordnung nach Anspruch 1 und 2, dadurch gekennzeichnet, daß die Zugriffsprüfeinrichtung die Übertragung der Datenverarbeitungseinheit CPU von einer ersten ausgewählten Prozedur (d.h. einem Aufrufer) mit einer ersten Ringnummer, die eine dem Aufrufer zugeordnete minimale Privilegstufe anzeigt,zu einer zweiten ausgewählten Prozedur (d.h. einem aufgerufenen) mit einer zweiten Ringnummer , die eine dem aufgerufenen zugeordnete minimale Privilegstufe anzeigt, und daß die Zugriffsprüfeinrichtungen folgende Einrichtungen enthalten:(a) erste Einrichtungen zum Prüfen des Rechts des Aufrufers zum Aufrufen des Aufgerufenen,(b) zweite Einrichtungen, die mit den ersten Einrichtungen in Verbindung stehen und die Ringnummer des Aufrufenden mit der Ringnummer des Aufgerufenen vergleichen,(c) dritte Einrichtungen, die abhängig von den zweiten Einrichtungen die Übertragung der Kontrolle über die Datenverarbeitungsanordnung vom Aufrufer zum Aufgerufenen erlauben, wenn die Ringnummer des Aufrufers größer als die Ringnummer des Aufgerufenen ist (d.h. nach innen gerichteter Aufruf), und(d) vierte Einrichtungen,die abhängig von den zweiten Einrichtungen die Übertragung der Kontrolle über dieDatenverarbeitungsanordnung CPU vom Aufrufer auf den Aufgerufenen ablehnen, wenn die Ringnummer des Aufrufers kleiner als die Ringnummer des Aufgerufenen ist (nach außen gerichteter Aufruf).10. Anordnung nach Anspruch 9, dadurch gekennzeichnet, daß die Zugriffsprüfeinrichtungen mehrere Ring-Stack-Segmentein-50 9 8 25/0928richtungen enthalten, die jeweils einer Ring-Stack-Segmentnummer zugeordnet sind, die die minimale frivilegstufe angibt, die für eine der Prozeduren erforderlich ist, damit sie zu einem ausgewählten Ring-Stack-Segment Zugang hat..11. Anordnung nach Anspruch 10, dadurch gekennzeichnet,daß vier Ring-Stack-Segmenteinrichtungen vorgesehen sind, die die Ringnummern 0 bis 3 haben.12. Anordnung nach Anspruch 10, dadurch gekennzeichnet, daß die Zugriffsprüfeinrichtungen Stack-Rahmeneinrichtungen enthalten, die ausgewählten Prozeduren zugeordnet sind, daß die Stack-Rahmen-Einrichtungen entsprechend der Ringnummer der zugeordneten Prozedur der Stack-Rahmen-Einrichtung innerhalb der Ring-Stack-Segmenteinrichtungen zu Gruppen geordnet sind, und daß die Stack-Rahmen-Einrichtung der Sicherstellung der Register des Aufrufers vor der Übergabe der Kontrolle an den Aufrufenden dienen.13· Anordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Zugriffsprüfeinrichtungen erste Teilelement-Einrichtungen aufweisen, die abhängig von den ersten, zweiten , dritten und vierten Einrichtungen Übertragungsverbindungen zwischen einer ausgewählten Stack-Rahmen-Einrichtung in einem ersten Ring-Stack-Segment, dem eine Ringnummer zugeordnet ist, und einer ausgewählten weiteren Stack.Rahmen-Einrichtung in einem zweiten Ring-Stack-Segment, dem eine weitere Ringnummer zugeordnet ist, herstellen.14. Datenverarbeitungsanordnung mit einer zentralen Verarbeitungseinheit CPU zur Verarbeitung von Informationen unter der Steuerung durch eine aus mehreren Prozeduren ausgewählte Prozedur, wobei den Prozeduren jeweils eine maximale Ringnummer (d.h. eine minimale Privilegstufe) zugeordnet ist, einer Durchschaltvorrichtung zur Überwachung der Übertragung der Kontrolle über die zentrale Verarbeitungseinheit CPU von509825/092 8einer ersten ausgewählten Prozedur mit einer ersten Ringnummer (d.h. vom Aufrufer) zu einer zweiten ausgewählten Prozedur mit einer zweiten Ringnummer (d.h. zum Aufgerufenen) dadurch gekennzeichnet, daß die Durchschaltvorrichtung erste Einrichtungen zur Bestimmung des Rechts des Aufrufers zum Rufen des Aufgerufenen und mehrere zweite Einrichtungen enthält, von denen jede einer vorbestimmten Prozedur zugeordnet ist, wobei .die zweiten Einrichtungen einen Eintrittspunkt EP ausgewählter Prozeduren zur Verfügung stellen.15« Anordnung nach Anspruch 14, dadurch gekennzeichnet, daß die ersten Einrichtungen in einem ersten vorbestimmten Abschnitt ein erstes Element enthalten, das die maximale Ringnummer angibt, die für den Aufrufer für einen Zugriff auf die Informationen in der Durchschaltvorrichtung erforderlich ist.16. Anordnung nach Anspruch 15, dadurch gekennzeichnet, daß die ersten Einrichtungen in einem zweiten vorbestimmten Abschnitt ein zweites Element enthalten, das den Typ der Information identifiziert, der aus den ersten Einrichtungen verfügbar ist.17. Anordnung nach Anspruch 16, dadurch gekennzeichnet, daß die ersten Einrichtungen in einem dritten vorbestimmten Abschnitt ein drittes Element·enthalten, das anzeigt, ob die mehreren zweiten Einrichtungen innerhalb der Grenzen der Durchschaltvorrichtung liegen oder nicht.18. Anordnung nach Anspruch 17, dadurch gekennzeichnet, daß die zweiten Einrichtungen in einem ersten vorbestimmten Abschnitt ein erstes Teilelement enthalten, das die maximale Ringnummer angibt, die für den Aufrufer zur Übertragung der Kontrolle über die zentrale Verarbeitungseinheit CPU an den Aufgerufenen erforderlich ist.509 825/092819. Anordnung nach Anspruch 18, dadurch gekennzeichnet, daß die zweiten Einrichtungen in einem zweiten vorbestimmten Abschnitt ein zweites Teilelement enthalten, das den Typ der aus den zweiten Einrichtungen verfügbaren Informationen identifiziert.20. Anordnung nach Anspruch 18, gekennzeichnet durch mit dem Aufrufer, dem Aufgerufenen und den' zweiten Einrichtungen in Verbindung stehende dritte Einrichtungen zum Vergleichen der Ringnummer des Aufrnfers mit der maximalen Ringnummer in dem ersten Teilelement der zweiten Einrichtungen und vierte Einrichtungen, die mit den dritten Einrichtungen in Verbindung stehen und die Übertragung der Kontrolle über die zentrale Verarbeitungseinheit CPU vom Aufrufer auf den Aufgerufenen zulassen, wenn die Ringnummer des Aufrufers größer als die maximale Ringnummer in dem ersten Teilelement der zweiten Einrichtungen ist,21. Anordnung nach Anspruch 20, gekennzeichnet durch mit den vierten Einrichtungen in Verbindung stehende fünfte Einrichtungen zum Verhindern der Übertragung der Kontrolle über die zentrale Verarbeitungseinheit vom Aufrufer auf den Aufgerufenen, wenn die Ringnummer des Aufrufers kleiner als die maximale Ringnummer in dem ersten Teilelement der zweiten Einrichtungen ist22. Datenverarbeitungsanordnung mit einer zentralen Verarbeitungseinheit CPU zum Verarbeiten von Informationen, einem virtuellen Speicher, in dem mehrere verschiedene Typen von Informationsgruppen gespeichert sind, wobei jedem Typ der Informations-. gruppen in dem virtuellen Speicher ein Adreßraum zugeordnet ist, der von einem Segment mit einstellbaren Granzen begrenzt ist, während den Informationsgruppen eine Hierarchie von Ringstufen (Privilegstufen) zugeordnet ist und jedem Typ von Informationsgruppen eine vorbestimmte Ringnummer für eine bestimmte Anwendung der Ringnummer zugeordnet ist, die eine509825/092 8-85 -minimale Privilegstufe anzeigt, die eine ausgewählte Prozedur bei ihrer Kontrolle über die zentrale Verarbeitungseinheit CPU haben muß, damit sie einen Zugriff auf einen ausgewählten Typ der Informationsgruppen für einen bestimmten Zweck erhält, und mit einer Vorrichtung Eum Überwachen eines Aufrufs zur Übertragung der Kontrolle über die zentrale Verarbeitungseinheit CPU von einer ersten ausgewählten Prozedur mit einer ersten Ringnummer (d.h. einer ersten Privilegstufe) auf eine zweite ausgewählte Prozedur mit einer zweiten Ringnummer (d.h. einer zweitenPrivilegstufe), dadurch gekennzeichnet, daß die Vorrichtung zum Überwachen eines Aufrufs folgende Einrichtungen enthält:(a) erste, in dem virtuellen Speicher gespeicherte erste Einrichtungen mit mehreren Segment-Descriptors, die jeweils ein bestimmtes Format aufweisen und jeweils einem vorbestimmten Segment zugeordnet sind, wobei jeder Segmentdescriptor in vorbestimmten Positionen des Formats ein Zugriffsinformationselement ,ein Tor-Anzeigelement und ein Basis-Adressenelement aufweist, von denen das' Zugriffsinformatiönselement die minimale Privilegstufe anzeigt, die für eine vorbestimmte Zugriffsart erforderlich ist, die in einem ausgewählten Segment zulässig ist, während das Tor-Anzeigeelement selektiv anzeigt, daß der Eintrittspunkt zu einem vorbestimmten Segment durch eine Prozedur überwacht werden muß, und das Basisadressenelement den Start-Speicherplatz eines ausgewählten Segments in dem virtuellen Speicher adressiert,■(b) mehrere zweite Einrichtungen mit einem vorbestimmten Format, die mit den ersten Einrichtungen in Verbindung stehen und in einem vorbestimmten Abschnitt eine Segmentnummer SEG zur Identifizierung einer ausgewählten Segmenttabelle und des Orts eines Segmentdescriptors innerhalb der509825/0928ausgewählten Segmenttabelle speichern und ferner in einem vorbestimmten weiteren Abschnitt eine Offset-Adresse innerhalb des Segments durch den Segmentdescriptor speichern, die aus der Segmentbasis das erste Byte eines Worts innerhalb des Segments adressiert,(c) dritte Einrichtungen, die abhängig von einem Adreß- . Silbenelement eines ausgeführten Befells eine der zweiten Einrichtungen adressieren,'(d) vierte Einrichtungen, die aus der Adreß-Silbe eine Verschiebung D speichern, die dazu dient, aus dem ersten Byte des Worts innerhalb des Segments jedes andere Byte des Worts zu adressieren,(e) fünfte Einrichtungen, die mit den ersten, zweiten, dritten und vierten Einrichtungen in Verbindung stehen und die Verschiebung D und die Basisadresse zu der Offset-Adresse addieren, und(f) sechste Einrichtungen in dem virtuellen Speicher, die abhängig von dem Tor-Anzeigeelement in einem ausgewählten Segment-Descriptor eine Änderung derPrivilegstufe der ausgewählten Prozedur überwachen.23. Anordnung nach Anspruch 22, gekennzeichnet durch mehrere siebte Einrichtungen, die jeweils eine vorbestimmte erste Struktur zur Adressierung einer ausgewählten Prozedur der zweiten Prozeduren adressieren und von einem ersten Segment der Segmente begrenzt sind.24. Anordnung nach Anspruch 23, dadurch gekennzeichnet, daß die sechsten Einrichtungen eine Datenstruktur bilden, die ein509825/0928vorbestimmtes Format aufweist und in einem vorbestimmten ersten Abschnitt des Segments ein die maximale Ringnummer(d.h. die minimale Privileg-Stufe ) eines Aufrufers anzeigenden CMRN-Element enthält, das für die erste ausgewählte Prozedur zum Zugriff auf das erste der Segmente benötigt wird.25. Anordnung nach Anspruch 24, dadurch gekennzeichnet, daß sich die sechsten Einrichtungen am Anfang des ersten der Segmente befinden.26. Anordnung nach Anspruch 23, dadurch gekennzeichnet, daß die ausgewählten Prozeduren von vorbestimmten der Segmente begrenzt sind.27. Anordnung nach Anspruch 26,- dadurch gekennzeichnet, daß Jede der siebten Einrichtungen mit einem vorbestimmten Segment verbunden ist und daß die siebten Einrichtungen in vorbestimmten Abschnitten der ersten Struktur ein Eintrittspunkt-Ringnummer-Element EPRN zur Anzeige der maximalen Ringnummer (d.h. der minimalen Privilegstufe) enthält, die für die erste ausgewählte Prozedur zur Übertragung der Kontrolle über die zentrale Verarbeitungseinheit CPU auf die zweite ausgewählte Prozedur erforderlich ist.28.Anordnung nach Anspruch 27* dadurch gekennzeichnet, daß die siebten Einrichtungen außerdem ein Eintrittspunkt-Adressenelement EP zur Anzeige der effektiven Adresse in einem ausgewählten der vorbestimmten Segmente enthalten.50 982 5/0928Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR7342706A FR2258112A5 (de) | 1973-11-30 | 1973-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2456602A1 true DE2456602A1 (de) | 1975-06-19 |
DE2456602C2 DE2456602C2 (de) | 1985-11-14 |
Family
ID=9128514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2456602A Expired DE2456602C2 (de) | 1973-11-30 | 1974-11-29 | Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher |
Country Status (9)
Country | Link |
---|---|
US (1) | US4177510A (de) |
JP (1) | JPS618459B2 (de) |
BR (1) | BR7410047A (de) |
CA (1) | CA1055615A (de) |
DE (1) | DE2456602C2 (de) |
FR (1) | FR2258112A5 (de) |
GB (1) | GB1483282A (de) |
IT (1) | IT1026694B (de) |
NL (1) | NL7415569A (de) |
Families Citing this family (147)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4471429A (en) * | 1979-12-14 | 1984-09-11 | Honeywell Information Systems, Inc. | Apparatus for cache clearing |
US4319323A (en) * | 1980-04-04 | 1982-03-09 | Digital Equipment Corporation | Communications device for data processing system |
US4386399A (en) * | 1980-04-25 | 1983-05-31 | Data General Corporation | Data processing system |
US4409655A (en) * | 1980-04-25 | 1983-10-11 | Data General Corporation | Hierarchial memory ring protection system using comparisons of requested and previously accessed addresses |
EP0150522B1 (de) * | 1980-04-25 | 1989-08-30 | Data General Corporation | Datenverarbeitungssystem mit hierarchischem Speicherschutz |
US4500952A (en) * | 1980-05-23 | 1985-02-19 | International Business Machines Corporation | Mechanism for control of address translation by a program using a plurality of translation tables |
US4366537A (en) * | 1980-05-23 | 1982-12-28 | International Business Machines Corp. | Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys |
US4445170A (en) * | 1981-03-19 | 1984-04-24 | Zilog, Inc. | Computer segmented memory management technique wherein two expandable memory portions are contained within a single segment |
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 |
US4514800A (en) * | 1981-05-22 | 1985-04-30 | Data General Corporation | Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets |
US4481570A (en) * | 1981-08-07 | 1984-11-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic multi-banking of memory for microprocessors |
US4450522A (en) * | 1981-09-11 | 1984-05-22 | Data General Corporation | Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return |
US4503492A (en) * | 1981-09-11 | 1985-03-05 | Data General Corp. | Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure |
US4597084A (en) * | 1981-10-01 | 1986-06-24 | Stratus Computer, Inc. | Computer memory apparatus |
DE3275595D1 (en) * | 1981-10-01 | 1987-04-09 | Stratus Computer Inc | Digital data processor with fault-tolerant bus protocol |
US4866604A (en) * | 1981-10-01 | 1989-09-12 | Stratus Computer, Inc. | Digital data processing apparatus with pipelined memory cycles |
US4453215A (en) * | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
JPS6145272B2 (de) * | 1981-12-04 | 1986-10-07 | Burroughs Corp | |
US4803655A (en) * | 1981-12-04 | 1989-02-07 | Unisys Corp. | Data processing system employing a plurality of rapidly switchable pages for providing data transfer between modules |
US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
JPS58225432A (ja) * | 1982-06-24 | 1983-12-27 | Toshiba Corp | 要求バツフア装置 |
US4590552A (en) * | 1982-06-30 | 1986-05-20 | Texas Instruments Incorporated | Security bit for designating the security status of information stored in a nonvolatile memory |
JPS5960652A (ja) * | 1982-09-30 | 1984-04-06 | Fujitsu Ltd | デ−タ処理装置 |
US4581702A (en) * | 1983-01-10 | 1986-04-08 | International Business Machines Corporation | Critical system protection |
US4573119A (en) * | 1983-07-11 | 1986-02-25 | Westheimer Thomas O | Computer software protection system |
US4587610A (en) * | 1984-02-10 | 1986-05-06 | Prime Computer, Inc. | Address translation systems for high speed computer memories |
US4621321A (en) * | 1984-02-16 | 1986-11-04 | Honeywell Inc. | Secure data processing system architecture |
CA1235821A (en) * | 1984-06-28 | 1988-04-26 | John Zolnowsky | Data processor having module access control |
DE3440796C2 (de) * | 1984-11-08 | 1986-10-16 | Schröter, Klaus, 1000 Berlin | Kommunikationssystem |
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
US4972338A (en) * | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
CA1244555A (en) * | 1985-06-17 | 1988-11-08 | Walter H. Schwane | Process transparent multi storage mode data transfer and buffer control |
US4866599A (en) * | 1985-06-27 | 1989-09-12 | Bull Hn Information Systems Inc. | Call instruction, return instruction and trap procedure for ring crossing architecture |
US4703417A (en) * | 1985-06-27 | 1987-10-27 | Honeywell Information Systems Inc. | Call instruction for ring crossing architecture |
JPH0782458B2 (ja) * | 1985-09-06 | 1995-09-06 | 株式会社日立製作所 | データ処理装置 |
US4757533A (en) * | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US4809160A (en) | 1985-10-28 | 1989-02-28 | Hewlett-Packard Company | Privilege level checking instruction for implementing a secure hierarchical computer system |
US4797853A (en) * | 1985-11-15 | 1989-01-10 | Unisys Corporation | Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing |
US4794515A (en) * | 1986-01-17 | 1988-12-27 | International Business Machines Corporation | Protection of data in a multiprogramming data processing system |
US5233700A (en) * | 1987-03-03 | 1993-08-03 | Nec Corporation | Address translation device with an address translation buffer loaded with presence bits |
US4961137A (en) * | 1987-04-17 | 1990-10-02 | U.S. Philips Corporation | Method for operating a multiprocessor system for therein establishing a global binary assertion and a multiprocessor apparatus comprising synchronization means for such establishing, in particular for effecting a garbage collection operation |
US5140684A (en) * | 1987-09-30 | 1992-08-18 | Mitsubishi Denki Kabushiki Kaisha | Access privilege-checking apparatus and method |
US4937736A (en) * | 1987-11-30 | 1990-06-26 | International Business Machines Corporation | Memory controller for protected memory with automatic access granting capability |
US4975878A (en) * | 1988-01-28 | 1990-12-04 | National Semiconductor | Programmable memory data protection scheme |
US5197141A (en) * | 1988-01-30 | 1993-03-23 | Nec Corporation | Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions |
US5129087A (en) * | 1988-02-03 | 1992-07-07 | International Business Machines, Corp. | Computer system and a method of monitoring transient data structures in a computer system |
US4943913A (en) * | 1988-02-10 | 1990-07-24 | International Business Machines Corporation | Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations |
US5434999A (en) * | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
US5051894A (en) * | 1989-01-05 | 1991-09-24 | Bull Hn Information Systems Inc. | Apparatus and method for address translation of non-aligned double word virtual addresses |
US5117491A (en) * | 1989-03-31 | 1992-05-26 | Bull Hn Information Systems Inc. | Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding |
FR2652926B1 (fr) * | 1989-10-06 | 1994-07-08 | Bull Sa | Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede. |
US5469556A (en) * | 1989-12-12 | 1995-11-21 | Harris Corporation | Resource access security system for controlling access to resources of a data processing system |
JP2536651B2 (ja) * | 1990-02-21 | 1996-09-18 | 日本電気株式会社 | 例外アドレスバッファ管理方式 |
US5574912A (en) * | 1990-05-04 | 1996-11-12 | Digital Equipment Corporation | Lattice scheduler method for reducing the impact of covert-channel countermeasures |
GB9010603D0 (en) * | 1990-05-11 | 1990-07-04 | Int Computers Ltd | Access control in a distributed computer system |
DE4018012A1 (de) * | 1990-06-05 | 1991-12-12 | Siemens Ag | Verfahren zur bearbeitung eines benutzerprogramms auf einem parallelrechnersystem |
US5596751A (en) * | 1990-06-05 | 1997-01-21 | Siemens Aktiengesellschaft | Method for processing a user program on a parallel computer system |
US5596718A (en) * | 1992-07-10 | 1997-01-21 | Secure Computing Corporation | Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor |
US5596739A (en) * | 1994-02-08 | 1997-01-21 | Meridian Semiconductor, Inc. | Method and apparatus for detecting memory segment violations in a microprocessor-based system |
US5864683A (en) * | 1994-10-12 | 1999-01-26 | Secure Computing Corporartion | System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights |
US6963859B2 (en) | 1994-11-23 | 2005-11-08 | Contentguard Holdings, Inc. | Content rendering repository |
JPH08263438A (ja) | 1994-11-23 | 1996-10-11 | Xerox Corp | ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法 |
US7613659B1 (en) * | 1994-11-28 | 2009-11-03 | Yt Acquisition Corporation | System and method for processing tokenless biometric electronic transmissions using an electronic rule module clearinghouse |
US7882032B1 (en) | 1994-11-28 | 2011-02-01 | Open Invention Network, Llc | System and method for tokenless biometric authorization of electronic communications |
US5784615A (en) * | 1994-12-13 | 1998-07-21 | Microsoft Corporation | Computer system messaging architecture |
US5933632A (en) * | 1995-12-21 | 1999-08-03 | Intel Corporation | Ring transitions for data chunks |
US5918018A (en) | 1996-02-09 | 1999-06-29 | Secure Computing Corporation | System and method for achieving network separation |
US5867647A (en) * | 1996-02-09 | 1999-02-02 | Secure Computing Corporation | System and method for securing compiled program code |
US5913024A (en) | 1996-02-09 | 1999-06-15 | Secure Computing Corporation | Secure server utilizing separate protocol stacks |
US6003084A (en) * | 1996-09-13 | 1999-12-14 | Secure Computing Corporation | Secure network proxy for connecting entities |
US6072942A (en) * | 1996-09-18 | 2000-06-06 | Secure Computing Corporation | System and method of electronic mail filtering using interconnected nodes |
US6144934A (en) * | 1996-09-18 | 2000-11-07 | Secure Computing Corporation | Binary filter using pattern recognition |
US5950195A (en) * | 1996-09-18 | 1999-09-07 | Secure Computing Corporation | Generalized security policy management system and method |
US5983350A (en) * | 1996-09-18 | 1999-11-09 | Secure Computing Corporation | Secure firewall supporting different levels of authentication based on address or encryption status |
US5797016A (en) * | 1996-10-29 | 1998-08-18 | Cheyenne Software Inc. | Regeneration agent for back-up software |
US5915087A (en) * | 1996-12-12 | 1999-06-22 | Secure Computing Corporation | Transparent security proxy for unreliable message exchange protocols |
US5968133A (en) * | 1997-01-10 | 1999-10-19 | Secure Computing Corporation | Enhanced security network time synchronization device and method |
US6105132A (en) * | 1997-02-20 | 2000-08-15 | Novell, Inc. | Computer network graded authentication system and method |
US6233684B1 (en) | 1997-02-28 | 2001-05-15 | Contenaguard Holdings, Inc. | System for controlling the distribution and use of rendered digital works through watermaking |
US6357010B1 (en) * | 1998-02-17 | 2002-03-12 | Secure Computing Corporation | System and method for controlling access to documents stored on an internal network |
US6321336B1 (en) | 1998-03-13 | 2001-11-20 | Secure Computing Corporation | System and method for redirecting network traffic to provide secure communication |
US6453419B1 (en) | 1998-03-18 | 2002-09-17 | Secure Computing Corporation | System and method for implementing a security policy |
US6182226B1 (en) | 1998-03-18 | 2001-01-30 | Secure Computing Corporation | System and method for controlling interactions between networks |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
US6591361B1 (en) | 1999-12-28 | 2003-07-08 | International Business Machines Corporation | Method and apparatus for converting data into different ordinal types |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6529985B1 (en) | 2000-02-04 | 2003-03-04 | Ensim Corporation | Selective interception of system calls |
US6560613B1 (en) | 2000-02-08 | 2003-05-06 | Ensim Corporation | Disambiguating file descriptors |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US6748592B1 (en) | 2000-02-14 | 2004-06-08 | Xoucin, Inc. | Method and apparatus for protectively operating a data/information processing device |
US7343421B1 (en) | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US6859862B1 (en) | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US7216345B1 (en) * | 2000-04-07 | 2007-05-08 | Hall Aluminum Llc | Method and apparatus for protectively operating a data/information processing device |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US20030159070A1 (en) * | 2001-05-28 | 2003-08-21 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US9213836B2 (en) | 2000-05-28 | 2015-12-15 | Barhon Mayer, Batya | System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages |
US20040073617A1 (en) | 2000-06-19 | 2004-04-15 | Milliken Walter Clark | Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail |
US6986052B1 (en) | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
US6909691B1 (en) | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
US7237125B2 (en) | 2000-08-28 | 2007-06-26 | Contentguard Holdings, Inc. | Method and apparatus for automatically deploying security components in a content distribution system |
US7743259B2 (en) | 2000-08-28 | 2010-06-22 | Contentguard Holdings, Inc. | System and method for digital rights management using a standard rendering engine |
US6732211B1 (en) | 2000-09-18 | 2004-05-04 | Ensim Corporation | Intercepting I/O multiplexing operations involving cross-domain file descriptor sets |
US7343324B2 (en) | 2000-11-03 | 2008-03-11 | Contentguard Holdings Inc. | Method, system, and computer readable medium for automatically publishing content |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
US6912294B2 (en) | 2000-12-29 | 2005-06-28 | Contentguard Holdings, Inc. | Multi-stage watermarking process and system |
US7774279B2 (en) | 2001-05-31 | 2010-08-10 | Contentguard Holdings, Inc. | Rights offering and granting |
US8069116B2 (en) | 2001-01-17 | 2011-11-29 | Contentguard Holdings, Inc. | System and method for supplying and managing usage rights associated with an item repository |
US7028009B2 (en) | 2001-01-17 | 2006-04-11 | Contentguardiholdings, Inc. | Method and apparatus for distributing enforceable property rights |
US6618736B1 (en) | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
US8099364B2 (en) | 2001-05-31 | 2012-01-17 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US6876984B2 (en) | 2001-05-31 | 2005-04-05 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
US6895503B2 (en) | 2001-05-31 | 2005-05-17 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
US8001053B2 (en) | 2001-05-31 | 2011-08-16 | Contentguard Holdings, Inc. | System and method for rights offering and granting using shared state variables |
US7725401B2 (en) | 2001-05-31 | 2010-05-25 | Contentguard Holdings, Inc. | Method and apparatus for establishing usage rights for digital content to be created in the future |
US8275709B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US8275716B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
US7774280B2 (en) | 2001-06-07 | 2010-08-10 | Contentguard Holdings, Inc. | System and method for managing transfer of rights using shared state variables |
WO2002101490A2 (en) | 2001-06-07 | 2002-12-19 | Contentguard Holdings, Inc. | Cryptographic trust zones in digital rights management |
US6718421B1 (en) * | 2001-06-19 | 2004-04-06 | Webtv Networks, Inc. | Interconnect bus |
US8261095B1 (en) | 2001-11-01 | 2012-09-04 | Google Inc. | Methods and systems for using derived user accounts |
EP1456763A4 (de) | 2001-11-20 | 2005-10-12 | Contentguard Holdings Inc | Systeme und verfahren zum erzeugen, manipulieren und verarbeiten von rechten und vertragsausdrücken unter verwendung von vorlagen mit token |
US7840488B2 (en) | 2001-11-20 | 2010-11-23 | Contentguard Holdings, Inc. | System and method for granting access to an item or permission to use an item based on configurable conditions |
US7974923B2 (en) | 2001-11-20 | 2011-07-05 | Contentguard Holdings, Inc. | Extensible rights expression processing system |
JP4740543B2 (ja) | 2002-03-14 | 2011-08-03 | コンテントガード ホールディングズ インコーポレイテッド | 使用権表現を処理する方法および装置 |
US7805371B2 (en) | 2002-03-14 | 2010-09-28 | Contentguard Holdings, Inc. | Rights expression profile system and method |
WO2003094076A1 (en) | 2002-04-29 | 2003-11-13 | Contentguard Holdings, Inc. | Rights management system using legality expression language |
US7685642B2 (en) | 2003-06-26 | 2010-03-23 | Contentguard Holdings, Inc. | System and method for controlling rights expressions by stakeholders of an item |
US7398390B2 (en) * | 2003-08-08 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Method and system for securing a computer system |
EP1538507A1 (de) * | 2003-12-02 | 2005-06-08 | Axalto S.A. | Flash-Speicher Zugriffsverfahren und -system |
US20050278790A1 (en) * | 2004-06-10 | 2005-12-15 | International Business Machines Corporation | System and method for using security levels to simplify security policy management |
US7475431B2 (en) * | 2004-06-10 | 2009-01-06 | International Business Machines Corporation | Using security levels to improve permission checking performance and manageability |
WO2006042155A2 (en) * | 2004-10-08 | 2006-04-20 | E-Klone, Inc. | Floating vector scrambling methods and apparatus |
US8660961B2 (en) | 2004-11-18 | 2014-02-25 | Contentguard Holdings, Inc. | Method, system, and device for license-centric content consumption |
US7720767B2 (en) | 2005-10-24 | 2010-05-18 | Contentguard Holdings, Inc. | Method and system to support dynamic rights and resources sharing |
US7949841B2 (en) * | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
US8112597B2 (en) * | 2006-12-08 | 2012-02-07 | Microsoft Corporation | Critical memory |
US9596250B2 (en) | 2009-04-22 | 2017-03-14 | Trusted Knight Corporation | System and method for protecting against point of sale malware using memory scraping |
JP5637145B2 (ja) * | 2009-11-26 | 2014-12-10 | 日本電気株式会社 | バスモニタ回路及びバスモニタ方法 |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US10324796B2 (en) * | 2016-08-11 | 2019-06-18 | International Business Machines Corporation | Stack detail recovery |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
US11507554B2 (en) | 2019-12-26 | 2022-11-22 | Yahoo Assets Llc | Tree-like metadata structure for composite datasets |
CN113891072B (zh) * | 2021-12-08 | 2022-02-11 | 北京拙河科技有限公司 | 基于亿级像素数据的视频监测与异常分析系统与方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3264615A (en) * | 1962-12-11 | 1966-08-02 | Ibm | Memory protection system |
US3340539A (en) * | 1964-10-27 | 1967-09-05 | Anelex Corp | Stored data protection system |
US3377624A (en) * | 1966-01-07 | 1968-04-09 | Ibm | Memory protection system |
US3504349A (en) * | 1967-09-27 | 1970-03-31 | Ibm | Address examination mechanism for use in a system operating with dynamic storage relocation |
US3593300A (en) * | 1967-11-13 | 1971-07-13 | Ibm | Arrangement for automatically selecting units for task executions in data processing systems |
US3562717A (en) * | 1968-02-23 | 1971-02-09 | Gen Electric | System protection apparatus |
NL6806735A (de) * | 1968-05-11 | 1969-11-13 | ||
US3528062A (en) * | 1968-07-05 | 1970-09-08 | Ibm | Program interlock arrangement,including task suspension and new task assignment |
US3573855A (en) * | 1968-12-31 | 1971-04-06 | Texas Instruments Inc | Computer memory protection |
US3675209A (en) * | 1970-02-06 | 1972-07-04 | Burroughs Corp | Autonomous multiple-path input/output control system |
US3614740A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
GB1329721A (en) * | 1970-05-26 | 1973-09-12 | Plessey Co Ltd | Data processing devices |
JPS4930578B1 (de) * | 1970-09-30 | 1974-08-14 | ||
US3727192A (en) * | 1971-04-30 | 1973-04-10 | North Electric Co | A central processing system having preloader and data handling units external to the processor control unit |
US3693165A (en) * | 1971-06-29 | 1972-09-19 | Ibm | Parallel addressing of a storage hierarchy in a data processing system using virtual addressing |
JPS5140772B2 (de) * | 1971-07-26 | 1976-11-05 | ||
GB1410631A (en) * | 1972-01-26 | 1975-10-22 | Plessey Co Ltd | Data processing system interrupt arrangements |
US3858182A (en) * | 1972-10-10 | 1974-12-31 | Digital Equipment Corp | Computer program protection means |
US3893084A (en) * | 1973-05-01 | 1975-07-01 | Digital Equipment Corp | Memory access control system |
IT986411B (it) * | 1973-06-05 | 1975-01-30 | Olivetti E C Spa | Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario |
US4017840A (en) * | 1973-06-15 | 1977-04-12 | Gte Automatic Electric Laboratories Incorporated | Method and apparatus for protecting memory storage location accesses |
FR2253430A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US3916385A (en) * | 1973-12-12 | 1975-10-28 | Honeywell Inf Systems | Ring checking hardware |
-
1973
- 1973-11-30 FR FR7342706A patent/FR2258112A5/fr not_active Expired
-
1974
- 1974-11-29 DE DE2456602A patent/DE2456602C2/de not_active Expired
- 1974-11-29 JP JP49136386A patent/JPS618459B2/ja not_active Expired
- 1974-11-29 NL NL7415569A patent/NL7415569A/xx not_active Application Discontinuation
- 1974-11-29 BR BR10047/74A patent/BR7410047A/pt unknown
- 1974-11-29 CA CA214,997A patent/CA1055615A/en not_active Expired
- 1974-12-02 GB GB52131/74A patent/GB1483282A/en not_active Expired
- 1974-12-02 US US05/528,953 patent/US4177510A/en not_active Expired - Lifetime
- 1974-12-02 IT IT30057/74A patent/IT1026694B/it active
Non-Patent Citations (2)
Title |
---|
Communications of the ACM, März 1972, Band 15, Nr.3, S. 157-170 * |
Teilnehmer-Rechensysteme, Vorträge der Fachtagung der Nachrichtentechnischen Gesellschaft im VDE (NTG) in Erlangen vom 20. bis 22. September 1967, R. Oldenburg Verlag München und Wien 1968, S.47- 59 und 323-334 * |
Also Published As
Publication number | Publication date |
---|---|
BR7410047A (pt) | 1976-05-25 |
FR2258112A5 (de) | 1975-08-08 |
GB1483282A (en) | 1977-08-17 |
JPS50114934A (de) | 1975-09-09 |
US4177510A (en) | 1979-12-04 |
JPS618459B2 (de) | 1986-03-14 |
AU7584074A (en) | 1976-06-03 |
IT1026694B (it) | 1978-10-20 |
DE2456602C2 (de) | 1985-11-14 |
NL7415569A (nl) | 1975-06-03 |
CA1055615A (en) | 1979-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2456602A1 (de) | Datenverarbeitungssystem | |
DE2458065C2 (de) | Datenverarbeitungsanlage | |
EP0764899B1 (de) | Verfahren zum Konvertieren sich unterscheidender Datenformate | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE69630126T2 (de) | Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet | |
DE2500006A1 (de) | Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen | |
DE2755897C2 (de) | ||
DE69731998T2 (de) | Informationsverarbeitungsvorrichtung und Verfahren | |
DE3048365C2 (de) | ||
DE2847216C2 (de) | Datenverarbeitungsanlage mit Mehrprogrammbetrieb | |
AT389772B (de) | Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit | |
DE3131204A1 (de) | Adressumrechnungs- und generatoranordnung | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE2712575C2 (de) | Assoziatives Speichersystem in hochintegrierter Halbleitertechnik | |
DE2837872A1 (de) | Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2755371A1 (de) | Ein/ausgabe-verarbeitungssystem | |
DE2459006A1 (de) | Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung | |
DE2719295A1 (de) | Programmsteuerung | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE2458300A1 (de) | Datenverarbeitungssystem zur verarbeitung verschiedener datenformate | |
DE10297433T5 (de) | Speicherverwaltungssystem und Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse | |
DE112009000344T5 (de) | Zugriffsrechte auf eine Speicher-Map | |
DE2806024A1 (de) | Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit | |
DE2629266A1 (de) | Ein/ausgabe-system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OGA | New person/name/address of the applicant | ||
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |