DE2456602A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

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
Application number
DE19742456602
Other languages
English (en)
Other versions
DE2456602C2 (de
Inventor
Marc Appell
John Bradley
Rivet Philippe Hubert De
Benjamin S Frankling
Georges Lepicard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Publication of DE2456602A1 publication Critical patent/DE2456602A1/de
Application granted granted Critical
Publication of DE2456602C2 publication Critical patent/DE2456602C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection 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

Unser Zeichen; H 1027
'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
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
Allgemeine Regeln des Ringsystems
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.
Prozedur-Aufruf-und Stack-Mechanlsmus
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
Erläuterung der verwendeten Ausdrücke
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)
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)
Die kleinste Einheit der benutzerdefinierten Arbeit. Innerhalb einer Task ist keine für den Benutzer erkennbare Parallelarbeit zulässige
PROGRAM
(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
Die systeminterne Darstellung einer spezifischen Job-Durchführung.
PROCESS GROUP
(PROZESSGRUPPE)
Eine zusammengehörige Gruppe von Prozessen; im allgemeinen die für die Durchführung eines einzelnen Job-Schrittes erforderlichen Prozesse.
PROCESS
(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)
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)
Die zur Ausführung eines Prozesses erforderliche Gruppierung von Hardware-Einrichtungen und Steuerinformationen.
ADDRESS SPACE
SEGMENTATION
(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 )
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
(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
Signalbezeichnung
(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
Erweiterungssignal
Funktion
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 -
Signalbezeichnung ' Typ
(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)

  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 innerhalb
    8098 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/0928
    ringnummer 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 Einrichtungen
    50982570928
    vorgesehen 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/0928
    9. 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/0928
    richtungen 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 von
    509825/092 8
    einer 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/0928
    19. 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 ist
    22. 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 eine
    509825/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 der
    509825/0928
    ausgewä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 ein
    509825/0928
    vorbestimmtes 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/0928
    Leerseite
DE2456602A 1973-11-30 1974-11-29 Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher Expired DE2456602C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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