DE2458065A1 - Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff - Google Patents

Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff

Info

Publication number
DE2458065A1
DE2458065A1 DE19742458065 DE2458065A DE2458065A1 DE 2458065 A1 DE2458065 A1 DE 2458065A1 DE 19742458065 DE19742458065 DE 19742458065 DE 2458065 A DE2458065 A DE 2458065A DE 2458065 A1 DE2458065 A1 DE 2458065A1
Authority
DE
Germany
Prior art keywords
memory
ring
register
signal
segment
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
DE19742458065
Other languages
English (en)
Other versions
DE2458065C2 (de
Inventor
Benjamin S Franklin
Ming H Louie
Pravinsinh L Parmar
Jun Richard P Wilder
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 HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
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 Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2458065A1 publication Critical patent/DE2458065A1/de
Application granted granted Critical
Publication of DE2458065C2 publication Critical patent/DE2458065C2/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

51-01122 Ge 4. Dezember 1974
HONEYWELL INFORMATION SYSTEMS INC,
200 Smith Street
Waltham, Mass., USA
Datenverarbeitungsanlage mit Sicherung der Daten gegen unberechtigten Zugriff.
Die Erfindung befaßt sich mit der Sicherung der in einer Datenverarbeitungsanlage anfallenden und/ode3: gespeicherten Daten und
aegen
Informationeil unberechtigten Zugriff. DV-Anlagen haben sich von einfachen, im Stapelbetrieb arbeitenden System, wo der Inhalt eines Speichers mit wahlfreiem Zugriff einem einzigen Programm .zugeordnet ist, zu den heutigen System mit Mehrfachprogrammierung und Mehrfachverarbeitung entwickelt, wo Informationen einer Ge-. meinschaft von Benutzern zur Verfügung stehen. Hierbei ist ein Schutz der gemeinsam benutzten Informationen nicht nur deshalb erforderlich, um die Sicherheit und Vertraulichkeit des Benutzers aufrechtzuerhalten und den Zugriff zu Informationen auf diejenigen Benutzer zu beschränken, die hierzu berechtigt sind, sondern darüberhinaus auch für die erforderliche Unversehrtheit und Zuverlässigkeit des Systems, - indem die Ausbreitung von Fehlern durch absichhliche oder unabsichtliche Änderungen gemeinsam benutzter Informationen begrenzt bzw. verhindert wird. Somit hat sich das relativ einfache Problem eines Schutzes der überwachungseinrichtung gegen den Benutzer in einem System mit Stapelbetrieb mehrfach vergrößert, infolge der Anforderung an eine flexible gemeinsame Benutzung von Informationen, nicht nur zwischen dem System
ITO/ 509826/0884
HR/sr ■
und dem Benutzer, sondern auch zwischen verschiedenen Benutzern untereinander. Einige der bislang eingesetzten Methoden zum Schutz von Informationen sind in einem Aufsatz "Protection in an Information Processing Utility" von RJ. Graham, veröffentlicht in der Zeitschrift CACM, Mai 1968, beschrieben. Eine dieser Methoden beschränkt den Zugriff zu nicht aktiven Informationen in verschiedenen Speichermedien durch eine Betriebsartumschaltung für die Ausführung von Befehlen -in der einen oder einen zweiten Betriebsart, nämlich Hauptbetrieb oder Nebenbetrieb.Bei dieser Methode gibt es privilegierte und nicht privilegierte Befehle. Bei Hauptbetrieb können alle Befehle ausgeübt werden, während bei Nebenbetrieb nur die nicht privilegierten Befehle zur Durchführung gelangen. Zum Schutz aktiver Informationen im Arbeitsspeicher ist dieser ferner derart unterteilt, daß bei Hauptbetrieb der gesamte Speicherinhalt zugängig ist, während bei Nebenbetrieb nur ein Teil hiervon. Zur Festsetzung der Grenzen der Zugängigkeit dient ein Speichergrenzregister in Verbindung mit der Betriebsartumschaltung.Diese Art von Speicherschutz ist für heutige Systeme mit Mehrfachprogrammierung unpassend, weil keine Möglichkeit der Abstufung der Trivilegierung oder Zugängigkeit gegeben ist und sie ernsthaft die Steuerung des Zugangs zu den Informationen begrenzt. Es sollten vielmehr unterschiedliche Zugriffrechte zu den verschiedenen Informationstypen vorgesehen sein. Eine Teilantwort hierauf bringt ein Speicher mit einem Teil, genannt Segment, als Informationseinheit, zu welcher der Zugriff gesteuert wird. Ein unterschiedlicher Grad des Zugriffs zu jedem Segment ist dadurch möglich, daß jedem Segment verschiedene Typen von Vorrechten (Privilegien) zugeordnet werden, beispielsweise Haupt-/Nebenbetrieb, SchreibZ-Nichtschreibbetrieb und Ausführung/Nicht-Ausführung. Diese Methode des Schutzes der Vertraulichkeit und Unversehrtheit von Informationen berücksichtigt jedoch nicht den Benutzer der Information. Das Privileg ist nicht auf den Benutzer abgestimmt, sondern abhängig von der Art der Information. Wenn folglich"ein Benutzer überhaupt Zugriff zu einem Segment hat, so hat.er gleichzeitig Zugriff zu allen anderen Benutzern, welche diesem Segment Zugriff haben. In einem
509826/0884
Aufsatz "Address Mapping and the Control of Access in an Interactive" Computer" von David C. Evans und Jean Yeves LeClerc, veröffentlicht in SJCC 1967, wird dieses Problem behandelt und eine Lösung versucht. Auf Seite 23 dieses Aufsatzes wird"-gesagt, daß der Benutzung einer DV-Anlage willkürlich mit der Anlage, seinem eigenen Rechenprozeß und anderen Benutzern in kontrollierter Weise in Verbindung treten können sollte. Er sollte Zugriff zu einem großen Informationsspeicher und Rückgewinnungssystem, der sogenannten Datei haben, welche allen Benutzern den Zugriff zu den Informationen in solcher Weise ermöglichen sollte, daß selektiv eine Vertraulichkeit und Sicherheit von Informationen gewährleistet ist. Der Benutzer sollte seine Berechnung an halbunabhängigen Aufgaben teilhaben lassen können, die eine gesteuerte Bindung und Zusammenarbeit zwischen verschiedenen Aufgaben bewirken. Diese Möglichkeit verringert den Aufwand zur Herstellung, zum Testen und zum Modifizieren von Programmen und ermöglicht eine erhöhte Zuverlässigkeit der Programme. Das System sollte nicht willkürlich die Benutzung der Eingabe/Ausgabe-Einrichtungen oder die Eingabe/Ausgabeprogrammierung durch den Benutzer begrenzen. Die.. Verfasser schlagen die Einführung abhängiger Zugriff srechte in den ablaufenden Prozeß vor. Das Segment bildet
der weiterhin die Informationseinheit, zu der Zugriff gesteuert wxxd; jedoch werden einem Segment zugeordnete Steuermerkmale in einer den Benutzernamen und den Prozeß umfassenden Tabelle aufgezeichnet, deren Eingangsgrößen die Zugriff-Betriebsarten sind. Eine solche Lösung weist jedoch Nachteile auf. Zum einen stellt der Aufbau und das Fortschreiben der jedem Segment zugeordneten Tabelle der Zugriff-Steuermerkmale eine beträchtliche Arbeit dar. Zum anderen müssen zuviele Verwendungsarten für das Segment und mögliche Abläufe vorhergesehen werden. Zur Lösung dieses· Problems wurde eine Steuerung durch Prozedur-Gruppen vorgeschlagen-hierbei werden einander in Beziehung stehende Prozeduren in Prozedur-Gruppen zusammengefaßtj und das Zugriffsrecht zu den Segmenten beruht auf der· Identität der Prozedur-Gruppe, zu welcher der die betreffende Prozedur suchende Zugriff gehört. Diese Methode erleichtert zwar den Aufbau und das Fortschreiben der umfangreichen Tabellen mit den den Segmenten zugeordneten Zugriff-Steuermerk-
509826/0884
malen, erfordert jedoch die Bestimmung, zu welcher Gruppe eine gegebene Prozedur gehört, insbesondere wenn eine Prozedur mehreren Gruppen angehört oder angehören könnte. Diese Zweideutigkeit bei der Definition der Gruppen und die möglichen Übergänge zwischen den Gruppen läßt die Zugriffssteuerung anhand von Prozedurgruppen recht schwierig werden.
um diese Schwierigkeiten mit der-Gruppentechnik zu beseitigen, wurde ein Ringkonzept entwickelt. Dieses faßt die Prozedurgruppen .in Ringen zusammen, die unzweideutig gemäß einem zunehmenden Grad oder Rang des Privilegs geordnet werden können. Durch Zuordnung einer Anzahl von Gruppen zu einer Anzahl konzentrischer Ringe und durch Zuordnung von Ringnummern derart, daß der kleinste Ring die niedrigste Zahl und jeder nachfolgende größere Ring eine zunehmend größer werdende Zahl hat, können unterschiedliche Privileg-. stufen unzweideutig dem Benutzer eines' Segments zugeordnet werden. Bei dieser Methode hat der innerste Ring die niedrigste Nummer und das höchste Privileg. Man kann somit feststellen, daß Benutzer im Bereich der niedrigsten Ringzahl Zugriff zu Informationen in den Ringen höherer Nummer haben,aber in. einen Ring höherer Nummer eingestufte Benutzer Zugriff zu Informationen in Ringen niedrigerer Nummer entweder nicht oder nur auf besondere Weise haben. Diese Änderung des Ranges oder der Privilegstufe mit einer Änderung der Ringnummer beseitigt die den Prozedurgruppen anhaftenden Mangel.
Das vom Massachusetts Institute of Technology zusammen mit der Firma General Electric Co. und anderen entwickelte System MULTICS (Multiplexed Information and Computing Service) benutzte als erstes die Ringtheorie zum Informationsschutz in Form von Software auf einem modifizierten Honeywell-Rechner 635 und später .auf .einem Honeywell-Rechner 645. Das MULTICS-Verfahren benutzt 64 Schutzringe, welche mit 0-63 nummeriert sind und ist beschrieben in einem Aufsatz "Access Control to "the Multics Virtual Memory", veröffentlicht von Honeywell Information Systems Inc. in MULTICS TECHNICAL PAPERS, Order no. AG95, Rev.O., während sich eine etwas ausführlichere Beschreibung dieses Systemsin Kapitel 4 des Buches
509826/0884
"The Multics System; An Examination of its Structure" von Elliott I. Organick, veröffentlicht durch MIT Press, sowie in\ den MULTICS SYSTEM PROGRAMMERS MANUAL 1964 im MIT Project MAC -. findet. Das MULTICS-System benutzt, kurz gesagt, keine reine Ringschutzmethode, sondern eine sogenannte Ringklammer-Schutzmethode, wobei die Zugriffsberechtigungen eines Benutzers in Bezug auf ein gegebenes Segment in einem Zugriffsmodus und einer Dreiergruppe von Ringzahlen (r1, r2, r3)igenannt des betreffenden Benutzers Ringklammern für ein gegebenes Segment, codiert sind.
Auf den Seiten 137 bis 139 des obengenannten MULTICS Technical Paper von Honeywell Information Systems Inc. werden die Regeln und Bedingungen für die Benutzung und die Änderung von Ringen wie folgt beschrieben.
Regeln. Die Ringklammern (r1, r2, r3), welche den Beziehungen r1 6r2^r3 genügen müssen und wobei alle Ringintervalle inklusiv
sind, werden wie folgt erläutert: - ~
a. Enthät der Zugriff-Modus des Benutzers den Modus SCHREIBEN, so kann er in den Ringen(O, r1) in das Segment einspeichern.
b,. Weist der Zugriff-Modus des Benutzers den Modus LESEN auf, so kann er in den Ringen (O, r2) aus dem Segment Informationen entnehmen.
c. Enthält der Zugriff-Modus des Benutzers den Befehl AUSFÜHRUNG, so kann er ■
1. in den Ringen (r1,r2) das Segment aufrufen ohne die Ringe
zu ändern; - '
2. in den Ringen (0,r1-1) das Segment aufrufen und auf den Ring r1 umschalten;
3. in den Ringen (r2+1, r3) das Segment aufrufen und auf den Ring r2 umschalten. ·
Hierbei muß jeder Versuch der Umschaltung auf einen Ring niedrigerer Nummer zunächst einen Zulässigkeitstest in-der Zugriff-Steuereinrichtung und durch die eingeleitete Prozedur durchlaufen.
509826/0884
d. Alle Ringuraschaltungen müssen unter der überwachung der Zu-L.griffsteuereinrichtung erfolgen.
e. Das Prinzip des Rücklaufs, ausgehend von einem Anruf, muß ausgedehnt werden auf einen Rücklauf in den*Ring des Anrufers.
Unter diesen Regeln können einem Dienstprogramm die Ringklammern (0,63,63) gegeben werden, so daß es in allen Ringen abrufbar ist, jedoch in keinem Fall eine Änderung der Ringe beim Aufruf eintritt. Andererseits kann eine kritische Systemprozedur die Ringklammern (0,0,0) haben und somit nur im Ring 0 aufrufbar und ausführbar sein.
Einem Benutzer, der für ein Datensegment Lese- und Schreiberlaubnis hat, können die Ringklammern (a,b,b) mit a<b gegeben werden, so daß der Bereich in dem er Schreiberlaubnis hat, der Ring (0,a) eine relativ vorrangige Untergruppe des Bereiches darstellt, in dem er Leseerlaubnis hat, nämlich im Ring (0,b).
Aufruf zum Ringwechsel. Die Regeln sehen vor, daß zu jedem Prozedursegment, für welches 0 <r1 ist, Zugang über einen Auswärts-Aufruf (z.B. vom Ring 0) besteht und daß jene Prozedursegmente für die r2<r3 gilt,Torsegmente darstellen und man folglich in sie über einen Einwärts-Aufruf (beispielsweise vom Ring r3)gelangen kann.
Ein Einwärts-Aufruf folgt, wenn eine Prozedur in einem äußeren Ring vorübergehend den Berechtigungsgrad ihres Ablaufs erhöhen möchte, um einen Vorgang (job) durchzuführen, der eine solche erhöhte Berechtigung erfordert. Beispielsweise kann eine Benutzerprozedur eine Systemprozedur im Ring 0 aufrufen. Ein solcher Einwärts-Aufruf bedeutet, daß eine geringere Berechtigung den Benutzer mit äußerer Berechtigung kommandiert. Die einzigen Segmente, welche über Einwärts-Aufrufe erreicht werden können, sind deshalb die Torsegmente. Aufgabe eines Torsegments ist es, die Zulässigkeit eines Einwärts-Aufrufes zu überprüfen, um festzustellen, daß der Aufrufer nicht durch Zufall oder infolge der"Konstruktion ein Torsegment angerufen hat, welches unzuständig ist. Ob ein Segment ein
509826/0884
Torsegment für einen bestimmten Benutzer darstellt, hängt von den Ringklammern dieses Benutzers und dem Zugriffmodus für dieses Segment ab.
Ein Auswärts-Aufruf erfolgt, wenn eine in einem inneren Ring ab- · laufende Prozedur eine Aufgabe erledigen möchte, welche mit der vergleichsweise schwächeren Berechtigung eines weiter außenliegenden Ringes ausgeführt werden kann oder muß. Beim System MULTICS beispielsweise läuft ein Prozeß im Ring 0 an aber ruft einen Benutzerring auf, wenn er bereit ist, die Arbeit des Benutzers auszuführen. In diesem Fall muß der Prozeß auswärtsrufen, weil eine Grundbedingung des MULTIC-Systems die Ausführung von Benutzeraufträgen im Ring Ö verbietet. Bei einem anderen Beispiel kann ein" Programmierer mit einer Anzahl mehr oder weniger korrigierter Prozeduren mehrere Ringe benutzen und hält die mehr korrigierten Prozeduren und ihre Daten innerhalb der inneren Ringe, so daß Beeinträchtigungen aus den anderen Prozeduren in den äußeren Ringen isoliert bleiben. Wenn diese Prozeduren einander frei aufrufen, würden wahrscheinlich Auswärts-Aufrufe auftreten.
Die zuvor beschriebene Ringschutzmethode würde zuerst in Form von Software mit 64 getrennten Ringen eingeführt. Nachträglich wurde versucht, eine geeignete Hardware für diese Ringschutzmethode zu schaffen. Der Honeywell-Rechner 645 stellt einen ersten solchen Versuch dar. Er weicht insofern von den beschriebenen Methoden ab, als er eine 2-Ring-Maschine. ist statt einer 64-Ring-Maschine und anstelle eines Ringregisters einen Haupt- und einen Nebenmodus aufweist, wobei der Rechner im Hauptmodus eine größere Berechtigung hat als im Nebenmodus. Das ZugriffSteuerfeld des Segment-Descriptor-Wortes SDW des Rechners 6 45 enthält keine Informationen über Ringe; insbesondere enthält es keine Ringklammern. Es enthält jedoch entweder a. Eine Zugriff-Modusinformation, welche möglicherweise einen der beiden Descriptoren enthält
- erreichbar nur im Hauptmodes, ' '
- Hauptmodus Prozedur
509826/088A
b. Die Bestimmung eines von acht speziell gerichteten Fehlern (nicht programmierten Sprüngen), welcher auftritt, wenn das Segment-Descriptor-Wort SDW erreicht wird.
Der Ablauf befindet sich nur im Hauptmodus, wenn er eine Prozedur ausführt, deren Segment-Descriptor-Wort SDW eine Hauptmodus-Prozedur anzeigt. Die zentrale Recheneinheit kann während der Ausführung einer Nebenmodus-Prozedur in einen Hauptmodus eintreten, wenn
- wenn ein Fehler auftritt,
- eine Unterbrechung vorgenommen wird.
Während des Adressierzyklus interpretiert die Zugriff-Steuereinheit des Rechners 645 das Segment-Descriptor-Wort SDW und läßt in Abhängigkeit hiervon und vom gesuchten Zugriff die geeignete Funktion wie folgt ablaufen:
a. Enthält das Segment-Descriptor-Wort einen bestimmten gerichteten Fehler, dann erscheint ein Fehlersignal.
b. Gestattet andererseits das Segment-Descriptor-Wort den gewünschten Zugriff nicht, so entsteht die Fehlersignalzugriff-übertretung.
c. Läßt das Segment-Descriptor-Wort den gewünschten Zugriff zu, so wird dieser ausgeführt.·
Tritt ein Fehler auf, so geht der Rechner 645 in den Hauptmodus über und überträgt die Steuerung auf die zugeordnete Hauptmodus-Fehlerverarbeitungsprozedur (siehe ACCESS CONTROL TO THE MULTICS VIRTUAL MEMORY a.a.O, Seiten 157/158)
Eine andere Veröffentlichung "A Hardware Architecture for Implementing Protecting Rings" von Michael Dr. Schroeder und Jerome H. Salzer, veröffentlicht in COMMUNICATIONS OF THE ACM, März 1972, Band 15, Heft 3, behandelt die Grundlagen und die Theorie des Ringschutzes und beschreibt eine Hardware-Ausführung für den Ringschutz .
509826/0884
Da beim System MULTICS und beim .Honeywell-Rechner. 645 der Ringschutz im wesentlichen in Form von Software realisiert wurde, war ein erheblicher Überwachungsaufwand für das Betriebssystem erforderlich/ insbesondere wenn ein Aufruf nach höherer oder niedrigerer Berechtigung durch Überspringen auf eine Überwachungsproze- ; dur erfolgte. Erforderlich war eine Zugriffsteuerung, welche die funktioneile Fähigkeit zur Ausübung des Informationsschutzes hatte, die möglichst einfach in Betrieb und im Aufbau und der Wartung ist und die Programraiervielfalt nicht einschränkt. Das Honeywell-Rechnersystem 6C00 erfüllt diese Anforderungen durch Verwirklichung des Ringschutzes in Form von Hardware. Hierfür war eine mit der Segmentadressier-Hardware integrierte besondere Zugriffsprüflogik vorgesehen, welche jede virtuelle Speicherreferenz bestätigt, sowie einige Sonderbefehle für den Wechsel des Rings der Operationsausführung. Jedoch stellten bestimmte .Teile des Ringsystems, insbesondere auswärts gerichtete Aufrufe und Rückmeldungen oder Aufrufe nach niedrigerer Berechtigung und Rückrufe hieraus Probleme dar, welche es erforderlich machen, die Ringschutzfunktion durch Übergabe der Steuerung auf eine Überwachungseinrichtung auszuüben.
Aufgabe der Erfindung ist es folglich, die Ringschutzmethode weiter zu verbessern und insbesondere weitgehend in Form von Hardware zu realisieren, wobei die funktioneile Kapazität der DV-Anlage, ihre Wirtschaftlichkeit, ein möglichst einfacher Aufbau und die gewünschte Programmierungsvielfältigkeit erhalten bleiben.
Diese Aufgabe löst die im Anspruch 1 gekennzeichnete Erfindung.. Vorteilhafte Weiterbildungen ergeben sich aus den Unteransprüchen. Hierzu gehört ein Ringschutz, der einwärts gerichtete Aufrufen, also Aufrufe nach einer niedrigeren Ringnummer über ein Tor zuläßt aber auswärts gerichtete Aufrufe unterbindet. Ferner führt die Erfindung zu einem Ringschutz, wo eine Prozedur im Lese/Schreib-· modus in vorgegebenen Ringen ausgeführt werden kann, während eine Prozedur im Ausführungsmodus, also zur Ausführung von Operationen in vorgegebenen Ringklammern ausgeführt werden kann.
509826/08 8 A
Kurz gesagt besteht die später anhand der Zeichnungen erläuterte wesentliche Ausführungsform der' Erfindung darin, daß vier Ringklassen O bis 3 vorgesehen sind, wobei jeder Ring eine bestimmte Priyilegstufe darstellt. Dabei hat die Stufe O, d.h. der innerste Ring das höchste Privileg und die Stufe 3, d.h. der äußerste Ring das niedrigste Privileg. Rechnerdaten und Prozeduren werden dadurch geschützt, daß Prozesse sich nicht untereinander stören oder in unerlaubter Weise den zugeteilten Adressenraum gemeinsam benutzen können. Die Adressierbarkeit des Speichers ist entsprechend den einzelnen Privilegstufen eingeschränkt. Die Prozesse benutzen während der Ausführung in Segmente unterteilte Adressen, wobei vorgegebene Felder innerhalb der Segment- und/oder Prozedur-Descriptoren im Adressenraum der verschiedenen Prozesse im System entsprechend der Privilegstufe zuordnen. Eine Prüfeinrichtung überprüft, daß die von einem Prozeß benutzte Adresse Teil des diesem Prozeß zugeordneten Adressenraums ist, und daß wenn sie außerhalb der betreffenden Privilegstufe liegt, der Zugriff zur adressierten Information gesperrt bleibt.
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen anhand eines Ausführungsbeispiels beschrieben. Hierbei zeigt Figur 1 ein Blockdiagramm eines Rechnersystems bei Anwendung der Erfindung;
Figur 2 eine schematische Darstellung der verschiedenen Privilegstufen;
Figur 3 ein Flußdiagramm des bei der Erfindung benutzen segmentierten Adressenschemas;
die Figuren 4A bis 4J verschiedene Hardwarestrukturen; Figur 5 eine schematische Darstellung der Rechner-Hardware für den Ringschutz;
Figur 6 eine schematische Darstellung der Rechner-Hardware für die segmentierte Adressierung;
die Figuren 7a bis 7h sowie die Figuren 8a bis 8d logische Schaltkreise aus der Hardware'für den Ringschutz; und die Figuren 9a bis 9k die Erklärung für die in den Zeichnungen benutzten Symbole.
509826/0884
•"11""
Eine Anlage mit Mehrfachprogrammierung und 'Mehrfachverarbeitung hat in einer gegebenen Zeit viele Programme im Speicher. Durch das Betriebssystem und die Rechnereinrichtung erfolgt eine dynamische Zuordnung des Speicherprogramms. Da der Umfang der Programme unterschiedlich ist, ordnet das Betriebssystem ihm Segmente, unterschiedlicher Größe zu und hat die Möglichkeit, die Speicherplätze während eines Programmlaufs umzustrukturieren. Außerdem erzeugt und streicht er die Software-Prozesse innerhalb des Systems. Ein Prozeß ist hierbei eine gesteuerte Ausführung von Befehlen ohne Gleichzeitigkeit. Ein Prozeß mit einem neuen virtuellen Speicher entsteht für jeden Benutzer, wenn er sichtdem System anschließt, und der Prozeß wird dem Namen des Benutzers zugeordnet. Somit kann · der Prozeß als Vertreter des Benutzers gelten, durch den der Benutzer aurSystem gespeicherte Informationen Bezug nimmt und diese verarbeitet. Ein Prozeß kann sich zu einer gegebenen Zeit in einem von vier möglichen Zuständen befinden: Ablaufend, vorbereitet, wartend oder ausgesetzt. Die Hardware erkennt diese vier möglichen Prozeßzustände und führt verschiedene Firmware-Prozeduren durch, d.ie eine Zuteilung des Prozesses, eine Änderung des Zustande und die Aufrechterhaltung der auf dem Prozeßzustand basierenden Datenstrukturen bewirken.Ein Prozeß befindet sieh im ablaufenden Zustand, wenn er mit der Zentraleinheit CPU zusammenarbeitet. Dieser Zustand beinhaltet die Versorgung der Zentraleinheit CPU mit Adressraura (Segmenttabelle) und einem Startsignal. Die Zentraleinheit, führt dann die Befehle in den Prozedursegmenten des Prozesses aus. Der Prozeßname (logische Adresse) des Prozeßsteuerblocks verbleibt im Prozeßablaufwort in der Systembasis. Der vorbereitete Zustand eines Prozesses entspricht weitgehend dem ablaufenden Zustand mit Ausnahme, daß der Prozeß keinen Zugang zur Zentraleinheit hat. Der Prozeß im vorbereitet Zustand wartet,zusammen mit anderen vorbereiteten Prozessen und dem laufenden Prozeß, auf die Zentraleinheit. Ein Prozeß befindet sich im Wartezustand, wenn er ohne das Eintreten eines bestimmten Ereignisses, beispielsweise einer Nachricht für den wartenden Prozeß, nicht fortgeführt werden kann. Ein Prozeß im Wartezustand wartet nicht auf einen Zugriff zur Zentraleinheit, sondern gegebenenfalls zusammen mit anderen Prozessen im Wartezu-
509826/0884
~ 12 -
stand auf ein bestimmtes Ereignis. Ein ausgesetzter Prozeß schließlich ist ein vom Programm her für eine Zeit angehaltener Prozeß, der später wieder aufgenommen werden kann. Die Entscheidung, einen Prozeß anzuhalten und später wieder weiterlaufen' zu lassen, liegt außerhalb des Prozesses selbst. Somit ist ein ausgesetzter Prozeß nicht aktiv und kann weder irgendwelche eintretende Ereignisse mitgeteilt erhalten noch die Zentraleinheit benutzen. Prozesse können vom einen in einen anderen Zustand absichtlich durch einen Schritt während des laufenden Prozesses überführt werden oder unfreiwillig durch die Schritte anderer Prozesse, ,Sie benutzen· Prozeduren, die Software-Funktionen oder Algorithmen sind, und von einer Recheneinheit ohne Gleichzeitigkeit ausgeführt werden. Die gemeinsame Benutzung von Informationen zwischen den Prozeduren findet in zwei Ebenen statt. Die eine ist die Ebene von Informationen, die einem Sekundärspeicher liegenund durch eine Datei oder die Daten in, einer Datenbank gebildet ist. Es ist Aufgabe der Datenverwaltung, diese Form der gemeinsamen Informationsbenutzung unter Wahrung der Vertraulichkeit und Unversehrtheit der betreffenden Daten zu gewährleisten und gleichzeitig Systemstörungen, wie einen Systemzusammenbruch, den Verlust der Datenbank oder das Festfahren des Systems zu verhindern.
Die andere Ebene der gemeinsamen Datenbenutzung liegt in der Ausführung und tritt im virtuellen Speicher auf. In dieser Ebene liegt die gemeinsame Benutzung immer im Rang, eines Segments, entweder eines Datensegments oder eines Prozedursegments. Sie hat drei grundlegende Formen:
(1) Die unmittelbare gemeinsame Benutzung von Segmenten der Prozesse in einer Prozeßgruppe;
(2) die direkte gemeinsame Benutzung von Systemsegmenten aller oder einer Untergruppe der Prozesse in einer Maschine;
(3) die gemeinsame Segmentbenutzung auf indirektem Wege.
Die erste Form liegt im Ermessen und unter der Steuerwirkung einer Prozeßgruppe, obwohl es vorstellbar ist, daß Systemprozeduren oder Daten einer Prozeßgruppe in dieser Ebene zugängig gemacht werden und gemeinsam benutzt werden* Der Schutz der Informationen erfolgt
509 826/0884
hier durch die Ringschutzmethode, wobei im allgemeinen zwei Ringe als Benutzerringe und zwei Ringe als Systemringe zur Verfügung stehen,und der Lese-, der Schreib- und der Ausführungszugriff getrennt geschützt sind. Die gemeinsame Benutzung eines Segments besteht darin, daß es sich .im Adressenraum von zwei oder mehr Prozessen der Prozeßgruppe befinden kann. Es ist wichtig, daß ein in dieser Ebene gemeinsam benutztes Segment nicht für irgendeinen Prozeß (Benutzer oder System) außerhalb der Gruppe zugängig ist.
Die zweite Form der gemeinsamen Benutzung hängt mit dem Prinzip zusammen, daß die Software des Betriebssystems als Teil des Benutzer-
prOZGSSeS
/ablaufen soll, wenn· immer dies möglich ist, weil dies zu einer beträchtlichen Vergrößerung des Wirkungsgrades führt, da die Organisation des Prozeßaustausches selbst und des für die zentrale Ausführung von Systemprogrammen erforderlichen Haushalts vermieden wird. In dieser Form der gemeinsamen Benutzung werden alle Segmente systemweit bezeichnet und sind für den betreffenden und alle anderen Prozesse in der Maschine zugängig, d.h. sie befinden sich im Adressenraum jedes Prozesses. Die gemeinsame benutzte Einheit ist wiederum das Segment und der Schutz wird durch die Ringmethode erreicht. Diese Form der gemeinsamen Benutzung ist nicht selektiv, d.h. alle Systemsegmente sind von allen Prozessen her adressierbar. Die dri,tte Form der gemeinsamen Benutzung erlaubt eine selektive Benutzung. Dies ist besonders für solche Teile des Betriebsssytems, wie der Datenverwaltung, nützlich, wo beispielsweise ein Pufferspeicher normalerweise von mehreren Benutzern benutzt wird. Dies wird durch indirekte Segmentdescriptoren ermöglicht, bei denen ein Prozeß nicht direkt durch seinen Adressenraum auf das Segment Bezug nimmt, sondern indirekt durch den Segmentdescriptor in einem anderen Adressenraum. Diese Formen der gemeinsamen Benutzung werden zum Teil durch die Benutzung von Segmenttabellen ausgeübt. In einem typischen Fall sind für einen Prozeß 14 Tabellen zugängig, geteilt in drei Klassen. Es kann.auch jede andere beliebige Anzahl von Tabellen benutzt werden. Eine Gruppe .von Tabellennummern sind für Systemsegmente reserviert und ein Exemplar hiervon wird von allen Prozessen benutzt; diese werden die systemglobalen Segmenttabellen genannt. Eine andere Gruppe von Tabellennummern sind für jene
501828/0884 . '
Segmenttabellen reserviert, welche innerhalb einer Gruppe gemeinsam benutzt werden.und heißen die örtlichen Prozeßgruppen-Segmenttabellen. Es ist eine Gruppe pro Prozeßgruppe vorhanden, wenn sie vom Prozeß benötigt werden. Die übrigen Tabellen sind dem betreffenden Prozeß zugeordnet und werden örtliche Prozeßsegmenttabellen genannt. ■ Die oben erwähnte ers.te Form der gemeinsamen Benutzung wird durch Einfügen der gemeinsam zu benutzenden Segmente in die örtlichen Prozeßgruppen-Segmenttabellen bewerkstelligt; die zweite Form durch Eingabe der gemeinsam zu benutzenden Segmente in die systemglobalen Tabellen und die dritte Form durch die Benutzung des indirekten Segment-Descriptors.der Zugang zu jedem Segment bewirken kann. Mit Ausnahme dieser indirekten Form der gemeinsamen Benutzung ist das Segment in einer örtlichen Prozeßtabelle nur für den Prozeß zugängig, dem die Tabelle zugeordnet ist.
Die Segmenttabellen isolieren den Adressenraum der verschiedenen Prozesse im System. Die Prozesse benutzen während der Ausführung immer segmentierte Adressen. Eine solche besteht aus einer Segmentzahl und einer relativen Adresse innerhalb der Segmentzahl. Die Einrichtung prüft, ob die von einem Prozeß benutzte Adresse Teil des dem Prozeß zugeordneten Adressenraums ist. Liegt sie außerhalb des genannten Adressenraums, so erscheint ein Ausnahmesignal. Ein Prozeß kann nicht auf Daten im Adressenraum eines anderen Prozesses Bezug nehmen, weil die Einrichtung die Segmenttabellen des bezugnehmenden Prozesses benutzt. Es ist somit keine Möglichkeit für einen Prozeß oder eine Prozeßgruppe gegeben, eine Einheit zu verwerten,· die zu einer anderen Prozeßgruppe gehört. Generell ist eine Überlappung bezüglich des Adressenraums im System für jene Segmente gegeben, welche von allen Prozessen gemeinsam benutzt werden. Diese gemeinsamen Segmente werden von einem Systemprogramm erzeugt, welches eine Überprüfung durchführt, um Adressenkonflikte zu vermeiden. Die Segmentierung schützt die Benutzerprogramme gegeneinander und außerdem das Betriebssystem gegenüber Benutzerprogranvmen. Jedoch sind Segmente, die von mehreren Prozessen gemeinsam benutzt werden, gegen mißbräuchliche Benutzung in einem dieser Prozesse
509828/0884
nicht geschützt. Zur Lösung dieses "Problems wird die Ringschutzmethode in Hardware-Ausführung benutzt.
Wie oben bereits erwähnt, benötigte das MULTICS-Konzept 64 Ringe oder Privilegstufen, und eine spätere Anwendung arbeitete bei einem Honeywell-Rechner 645 mit zwei Ringen und bei einem Honeywellsystem der Serie 6000 mit acht Ringen. Gemäß der vorliegenden Erfindung werden die Prozedursegmente in eine Hierarchie von vier Ringen oder Gruppen eingeteilt (vgl. Figur 2). Diese, vier Ringe oder Privilegstufen sind mit den ganzen Zahlen O bis 3 gekennzeichnet, wobei jeder Ring eine Privilegstufe im System darstellt. Der Ring 0 hat das höchste Privileg und der Ring 3 das niedrigste.' Die Stufe 0 stellt den Inhalt des inneren Rings und die Stufe 3 den des äußersten Ringes dar. Die grundlegende Absicht ist, daß eine Prozedur, welche zu einem inneren Ring gehört, freien Zugang zu Daten in einem äußeren Ring hat. Umgekehrt soll eine Prozedur in einem äußeren Ring keinen Zugang zu Daten in einem inneren Ring haben, ohne eine Schutzübertretungsausnahme zu bewirken. Der Übergang der Steuerung zwischen den Prozeduren wird von einem Schutzsystem überwacht derart, daß die Ausführung einer Prozedur in einerru äußeren Ring nicht direkt in eine Prozedur in einem inneren Ring abzweigen kann. Diese Übertragung der Steuerung ist nur bei Ausführung eines besonderen Prozedur-Aufrufbefehls möglich. Er ist auf mehrfache Weise gegen Mißbrauch gesichert. Zuneinen ist durch eine Toreinrichtung sichergestellt, daß der Zugang zu Prozeduren beim Überschreiten von Ringen nur an bestimmten vorgegebenen Eingangspunkten, genannt Toren, erfolgen kann. Der Segment-Descriptor einer solchen Prozedur enthält ein Tor-Bit, welches anzeigt, daß die Prozedur in diesem Segment nur über Tore erreicht werden kann. Information bezüglich dieser Gatter oder Tore ist im Anfangsteil des Segments enthalten und wird von der Hardware dazu benutzt, den Zugang an einem zulässigen Eingangspunkt zu bewerkstelligen. Die Prozedur selbst muß dann feststellen, daß sie ordnungsgemäß aufgerufen worden ist. Ein weiterer Hardware-Schutz steht in dem Fall zur Verfügung, daß die Aufrufprozedur eine Adresse als Patameter zur Verfügung stellt. Es ist dann möglich, daß eine Prozedur
50 9 826/088 4
höheren Privilegs die Information in dieser Adresse schädlich verändert, was ein weniger privilegierter Anrufer nicht getan haben könnte, weil ihm die Ringschutzvorrichtung den Zugang verweigert hätte. Um diese Möglichkeit zu verhindern, ist ein Adressen-Gültigkeitsbefehl vorgesehen.
Eine wichtige Vereinbarung zum Schutz des Prozeduraufrufs ist hier erforderlich. Diese besagt, daß es im allgemeinen nicht zulässig ist, eine Prozedur in einem weniger privilegierten Ring aufzurufen und in den höher privilegierten Ring zurückzukehren. Diese Einschränkung ist notwendig, weil keine Sicherheit besteht, daß die Prozedur im höher privilegierten Ring tatsächlich zurückkehrt und nicht zufällig oder vorsätzlich Informationen zerstört, auf die sich die höher privilegierte Prozedur stützt. Es muß auch sichergestellt sein, daß sie nicht zufällig oder vorsätzlich die Sicherheit des Stapelspeichers verletzt. Jede dieser Handlungen könnte unvorhersehbare Ergebnisse haben und das System zerstören. -
Die Privilegstufen sind unabhängig von der Prozeßsteuerung(und einer Unterscheidung zwischen privilegierten und nicht privilegierten Prozessen wie beim IBM-System 360 ist nicht vorhanden. Stattdessen kann derselbe Prozeß Prozeduren auf unterschiedlichen Privilegstufen (Ringen) ausführen und zwar innerhalb der Grenzen, die durch die Ringschutzeinrichtung gesetzt sind. In diesem Sinn kann der Ringschutzmechanismus als eine Methode zur Unterteilung des einem Prozeß zugeordneten Adressenraums entsprechend der jeweiligen Privilegstufe angesehen werden. Der Ringmechanismus erlaubt, daß das gleiche Segment zur gleichen Zeit bis zu drei verschiedenen Ringen angehört, d.h. es sind drei Ringnummern in jedem Segment-Descriptor vorhanden, eine für jede Art des möglichen Zugriffs. Das gleiche Segment kann in Ring 1 bezüglich des Schreibzugriffs, in .Ring 2 bezüglich des Ausführungszugriffs und in Ring 3 bezüglich des Lesezugriffs sein. Eine Anwendung dieses Falles ergibt sich für ein Prozedursegment, welches nur im Ring O beispielsweise durch den Programmlader eingeschrieben aber im Ring 3 ausgeführt werden kann. Von den vier zur Verfügung stehenden Ringen sind zwei dem Betriebssystem und zwei dem Benutzer
509826/088 4
zugeordnet. Ring O,der Ring mit dem höchsten Privilegjist auf jene Betriebssystemsegmente beschränkt,welche für den Betrieb des gesamten Systems kritisch sindp Diese Segmente bilden den harten Kern der Anlage, dessen ordnungsgemäßer Betrieb zu allen Zeiten unerläßlich ist. .Hierzu gehören die Systeminformationenbank, jene Prozeduren, welche sich mit der Organisation des Speichers oder der Einleitung von Datenübertragungsoperationen befassen, und diejenigen Mechanismen, die das System funktionieren lassen, wie die Ausnahmeüberwachung der Scheduler und die Quellenverwaltung.
Ring 1 enthält eine wesentlich größere Menge von Betriebssystemsegmenten, deren Fehler nicht zu katastrophalen Folgen führen würde, sondern bereinigt werden könnte. Hierzu gehören die Sprachübersetzer, die Daten- und Nachrichtenverwaltung sowie die Job- und Prozeßverwaltung. Da dem Betriebssystem zwei Ringe zugängig sind, ist die Aufrechterhaltung der Unversehrtheit des Systems besser lenkbar, weil der kritische. Kern isoliert ist und mit größter Sorgfalt geschützt werden kann.
Die Ringe 3 und 4 stehen dem Benutzer für die Zuordnung entsprechend seinen Anforderungen zur Verfügung. Zwei wichtige Möglichkeiten sind die Programmkorrektur sowie vertrauliche Programmpakete. Korrigierte Programme können dem. Ring 4 zugeordnet werden, während durchgeprüfte Programme und Daten, mit denen sie zusammenarbeiten, im Ring 3 liegen. Auf diese Weise kann die Wirkung von Fehlern lokalisiert werden. Vertrauliche Programme können durch ihre Benutzer durch Eingabe in den Ring 3 geschützt werden, während die Benutzer Ring 4 besitzen. Auf diese und andere Weise sind beide Ringe in ihrer Anwendung flexibel.
Die allgemeinen Regeln des Ringssystems besagen
1.- Eine Prozedur in einem- inneren Ring, wie dem Ring 2 in Figur hat freien Zugang zu den Daten in einem äußeren Ring, beispielsweise im Ring 3, so daß sich ein zulässiger Zugriff gemäß Pfeil 201 ergibt. Umgekehrt hat eine Prozedur "in einem
509 8 2 6/0884
äußeren Ring, beispielsweise im Ring 3, keinen Zugriff zu Daten in einem inneren Ring, wie beispielsweise dem Ring 2 und ein Versuch hierzu ergibt einen unzulässigen Zugriff gemäß Pfeil 202.
2. Eine Prozedur in einem äußeren Ring, wie in Ring 3{ kann über ein Tor 204 in einen inneren Ring, wie in Ring 1, abzweigen, was zu einer zulässigen Abzweigung 203 führt. Umgekehrt kann eine Prozedur in einem inneren Ring, wie beispielsweise im Ring 2, nicht in einem äußeren Ring wie den R.ing 3, abzweigen.
3. Jedem Daten enthaltenden Segment sind zwei Ringnummern zugeordnet und zwar eine für das Lesen RB und das andere für das Schreiben WR. Diese Ringwerte bestimmen den maximalen Ringwert, injdem eine Prozedur ausgeführt werden kann, wenn si« Daten entweder im Lese- oder im Schreibmodus benötigt.
Bei jeder Ausführung eines Prozedurbefehls wird die Ringnummer dieser Prozedur, genannt der effektive Adressring EAR,geprüft, durch Vergleich mit den Ringnummern, welche den die erforderlichen Daten enthaltenden Segmenten zugeordnet sind. Der effektive Adressring EAR entspricht der maximalen Anzahl von Prozeßringnuminern im Processor-Befehlszähler und aller Ringnummern im Basisregister und der Daten-Descriptoren im Adressierweg. Zugang zu den Daten ist gewährt oder versagt mittels Vergleich der Ringnummern. Wenn beispielsweise eine Systemtabelle in einem Segment mit einem maximalen Lese-Ringwert 3 existiert und eine maximalen Schreib-Ringwert 1, kann eine im Ring 3 ablaufende Benutzerprozedur die 'Tabelle lesen, jedoch nicht durch Einschreiben neuer Wert fortschreiben.
Wesentlich für den Ringschutzmechanismus ist ferner der Prozedur-Aufruf und Stapelmechanismus. Prozedur-Aufrufe werden benutzt für den übergang von einer Prozedur zu einer anderen, um den Benutzer-Prozeduren den Dienst dos Betriebssystems zu ermöglichen und ;;ur
509826/0884
Erzielung einer Modularstruktur innerhalb des Betriebssystems. Ein Prozedur-Aufruf wird durch einen Befehl sowie durch eine .Stapel.genannte Größe eiusgelöst. Ein Stapel ist dabei ein Mechanismus, welcher Daten aufnimmt, speichert und ihre Wiedergewinnung ermöglicht nach dem Prinzip, daß die zuletzt einlaufenden Daten zuerst ausgegeben werden. Stapel bestehen aus Speziell Segmenten, genannt Stapelsegmente. Ein Stapelsegment ist aus einer Anzahl benachbarter Teile,.- genannt Stapelrahmen, zusammengesetzt, welche jeder Prozedur dynamisch zugeordnet werden. Der erste Stapelrahmen wird in das untere Ende des Segments eingegeben j und die nachfolgenden Rahmen werden nacheinander geladen. Der letzte geladene Rahmen bildet die Spitze des Stapels. Ein T-Register 114 (vgl. Figur 1) stellt die Spitze des Stapels fürjeden gerade aktiven Prozeß fest. Ein virtuelles T-Register existiert im Prozeßsteuerblock PCB aller anderen Prozesse des Systems. Ein Stapelrahmen setzt sich aus drei Bereichen zusammen: Einem Arbeitsbereich, in welchem die Variablen gespeichert werden, einem Vorratsbereich, welcher den Inhalt von Registern aufnimmt und einem Koinmunikationsbereich, in denen zwischen den Prozeduren Parameter eingegeben werden. Vor einem Prozedur-Aufruf muß der Benutzer jene Register angeben, welche er zu erhalten wünschtjUnd er muß in den Koinmunikationsbereich jene Parameter laden, welche der aufgerufenen Prozedur zugeführt werden sollen. Wenn dieser Aufruf erfolgt ,so !be wahrt die Hax-dware den Inhalt des Befehlszählers und spezieller Basisregister auf, um die Rückkehr aus der aufgerufenen .Prozedur zu erleichtern. Jeder Prozedur-Aufruf erzeugt einen Stapelrahmen innerhalb eines Stapelsegraents, und nachfolgende Methodenaufrufe erzeugen zusätzliche Rahmen. Jedes Ausgangssignal aus einer dieser aufgerufenen Prozeduren entfernt einen Stapelrahmen vom Stapel. Somit wird die Reihenfolge der Aufrufe registriert und damit ein ordnungsgemäßer Rücklauf erleichtert.
Zur Erzielung des Schutzes zwischen Prozeduren, welche in verschiedenen Ringen ausgeführt werden, dienen unterschiedliche Stapelsegmentc. Je ein Stapelsegment entspricht jedem Schutzring pro Prozeß. Ein Prozeßsteuerblock enthält drei Stapelbasiswörter SBW, Vielehe auf den Beginn des Stapelsegments'für die dom
Prozeß zugeordneten Ringe O, 1 und 2 gerichtet sind. Das Stapelsegment des Ringes 3 kann über einen Einwärtsanruf nicht erreicht werden,weshalb hierfür keine Stapelstartadresse im Prozeßsteuerblock erforderlich ist.
Der Prozedur-Aufruf wird von Benutzern verwendet, welche ihr Programm in einem Modularaufbau beschrieben haben, um von einem Programmodul auf ein anderes übergehen zu können. Der Benutzer verwendet es für den Betriebsystem-Service. Es wird vom Betriebssystem selbst zur Erzielung einer entsprechenden Modu™ larstruktur angewandt. Der Prozedur-Aufruf wird durch Hardware-Befehle und den Stapelmechanismus bewirkt. Die Hauptanforderungen an einen Prozedur-Aufruf sind
1. Überprüfung des Recht des Anrufes anzurufen;
2. Sicherstellen des Zustands des Anrufes,'das bedeutet Sicherstellen von Registern, Befehlszähler und andere Status-Bits;
3. Erlaubnis für die Weitergabe von Parametern,
4. Bestimmen des zulässigen Eingangspunktes für die aufgerufene Prozedur;
5. Vornahme der erforderlichen Änderungen und Anpassungen im Adressiermechanismus;
6. Eingabe der neuen Prozedur.
Wenn die aufgerufene Prozedur zu Ende ist, muß alles was während des Aufrufs getan wurde, zunächst wieder ungeschehen gemacht werden, so daß der Zustand der aufrufenden Prozedur vor dem Aufruf wieder hergestellt wird. Als Vorlauf für einen Prozedur-Aufruf wird der Befehl STAPEL VORBEREITEN ausgeführt. Dieser Befehl bewirkt, daß die vom Programmierer im Befehl angegebenen Register im Stapel sichergestellt werden. Es bewirkt die Sicherstellung des Statusregisters und versieht den Programmierer mit einer Hinweisadresse auf den Parameterraum, welchen er nunmehr mit der der aufgerufenen Prozedur zuzuleitenden Information laden kann.
Ein anderer Befehl PROZEDUR-EINGANG ermöglicht einen Prozedur-Aufruf entsprechend den obengenannten Anforderungen über die folgenden Schritte:
509826/0884
1. Ringüberprüfung, der Ring des Aufrufes wird überprüft, um sicherzustellen, daß er eine neue Prozedur aufrufen kann; der Aufruf muß an eine kleinere oder gleiche Ringnummer gerichtet sein; wenn keine Ringüberschreitung auftritt, muß die neue Prozedur durch ein Tor 204 gemäß Figur 2 geleitet werden. Die neue Ringnummer wird dann diejenige der aufgerufenen Prozedur.
2. Der " . Befehlszähler wird sichergestellt;
3. das Basisregister O (vgl. Figur T) wird auf die durchzulassenden Parameter eingestellt;
4. der Eingangspunkt der aufgerufenen Prozedur wird aus dem Prozedur-Descriptor entnommen, dessen Andresse in dem Befehl PROZEDUR-EINGANG enthalten ist;
5. eine Hinweisadresse zur Verbindungsinformation wird in das Basisregister 7 geladen;
6. die neue Prozedur wird begonnen durch Laden der neuen Ringnummer und der Adresse des Eingangspunktes in den Befehlszähler«
Der Rest des laufenden Stapelrahmens- ist für die aufgerufene Prozedur zum Speichern lokaler Veränderlicher zugängig. Wünscht die aufgerufene Prozedur zurückzukehren, so führt sie den Befehl PROZEDURiNDE aus. Die Register und die Befehlszähler werden dann aus den Sicherstellungsbereicheii des Stapels wieder aufgefüllt.
Figur 1 zeigt das Blockdiagramm einer Rechneranlage mit einem Hauptspeicher 101, der aus vier Bausteinen,aufgebaut aus Metalloxydhalbleiter -Speicherelementen MOS/besteht. Die vier Speicherbausteine 1 bis 4 stehen mit der Zentraleinheit 100 über den Hauptspeicher-Sortierer 102 (Sequencer) in Verbindung. Sie sind ferner über den Hauptspeicher-Sortierer 102 und die nicht dargestellte Eingangs/Ausgangssteuereinheit IOC an ebenfalls nicht· dargestellte periphere Untersysteme, wie. Magnetbandeinheiten und Plattenspeichereinheiten, angeschlossen. Der Hauptspeicher-Sortierer ermöglicht den Zugriff zu allen vier Speicherbausteinen
509826/0884
und deren Steuerung. Jeder Speiclierbaustein enthält im typischen Fall 8K bis 64K Speicherplätze mit 8 Bytes pro Speicherplatz. Die Bausteine sind in Schritten von 8K Bytes erweiterbar, so daß jeder Speicherbaustein zwischen 64 und 512 Kilobytes enthält und der Gesamtspeicher zwischen 256 Kilobytes bis 2 Megabytes umfaßt. Die Speicherzugriffzeit beträgt im typischen Fall 730 ns pro 8 Bytes, wobei die Zykluszeit für Lesen, Schreiben und Teilschreiben 800, 850 bzw. 9 45 ns beträgt. Da der Rauptspeichersortierer 102 Anforderungen von Speicherzyklen überlappend bedienen kann, können zur gegebener Zeit mehrere Speicherbausteine gleichzeitig arbeiten. -Die Zentraleinheit 100. unc1 der Pufferspeicher 104 sowie die nicht dargestellte Ein/Ausgabe-steueriang IOC können jeder jeweils ein Doppelwort (8 Bytes) abrufen. Bei einem Speicherzugriff aus der Zentraleinheit werden entweder die vier Bytes höherer Ordnung oder die vier Bytes niedrigerer Ordnung ausgewählt jund nur vier Informations-Bytes gelangen in die Zentraleinheit 100. Der Betrieb der Zentraleinheit wird von einem Festwertspeicher ROM gesteuert, welcher nachfolgend als Speichersteuerwerk 110 bezeichnet wird. Solche Steuerwerke sind beispielsweise in dem Buch '· "Microprogramming- Principles and Practices" von Samir S. Husson, veröffentlicht 1970 durch PRENTICE HALL INC. sowie, in der DS-PfI 3 634 883 beschrieben. Das Speichersteuerwerk 110 ist überlicher-weise ein mit 8000 Festkörper-Speicherplätzen ausgerüsteter Festwertspeicher mit einer Zykluszeit von 150 ns. Jeder Speicherplatz steuert einen Zyklus der Zentraleinheit. Beim Auslesen eines Speicherplatzes des Steuerspeichers wird sein Inhalt von einem Mikro-Op-Befehlsdecoder decodiert. Jede Mikro-Op-Decodierfunktion bewirkt eine spezielle Operation in der Zentraleinheit. Beispielsweise können die Steuerspeicher-Daten-Bits 1, 2,3 nach ihrer Decodierung in die Form 010 eine Mikro-Op-Decodierungsfunktion hervorrufen, welchen einen übertrag vom Α-Register in ein B-Register zur Folge hat. Da jeder Speicherplatz im Steuerspeicher üblicherweise 99 Bits enthält, können bei jedem Steuerspeicherzyklus viele Mikro-Op-Decodierfunktionen erzeugt werden. Durch gruppenweise Zusammenfassung von Speicherplätzen erhält
5 0 9.826 /088 h
man Steuers'peichersortierer, welche eine spezielle Operation oder einen Befehl der Zentraleinheit ausführen können. Jeder Befehl wird von der Zentraleinheit 100 ausgelöst, enthält innerhalb des Op-Codes bestimmte Bits, welche zur Bestimmung der Startfolge im Stetlerspeicher dienen. Durch Testen bestimmter. nicht dargestellter Flip-Flops, welche durch Befehlsdecodierfunktionen gesetzt oder rückgesetzt werden, ist es möglich, den Betrieb des Steuerspeichers als erforderlich auf eine speziellere Sequen^zumzusetzen. Der Steuerspeicher-Schnitts-tellenadapter 109 steht in Verbindung mit dem Speichersteuerwerk 110, der Datenverwaltungseinheit 106, dem Adressensteuerwerk 107 und dem Rechenwerk 112 . und bestimmt den Betrieb des Steuerspeichers. Der Steuerspeicher-Schnittstellenadapter 109 enthält eine Logikschaltung zum Steuern von Speicheradressenänderungen, zum Testen, zur Fehlerprüfung und zur Erzeugung von Hadware-Adressen. Die Hardware-Adressenerzeugung wird allgemein zur Entwicklung der Startadresse eines FehlerSortierers oder für die Startfolge benutzt. Der Pufferspeicher 104 speichert die am meisten benutzen oder kürzlich benutzten Informationen, die von der Zentraleinheit verarbeitet werden. Es handelt sich um einen relativ kleinen aber schnellen Speicher, welcher üblicherweise 128 Spalten und 2 Zeilen enthält, welche als die obere und die untere Zeile bezeichnet.werden. Er ist logisch unterteilt in vorgegebene Blocks, welche auf besondere Weise adressierbar sind. Diese Blocks werden Seiten genannt ,und jeder Speicherseite enthält 32 Informationsbytes. Eine bestimmte Seite kann mit Hilfe der höchstwertigen 16 Bits der Hauptspeicheradressiert werden, während die niedrigstwertigen 5 Bits zum Adressieren, einer bestimmten Byte-Information innerhalb der Seite dienen. Die Seiten müssen unter Beibehaltung der Spaltenzuordnung vom Hauptspeicher in den Pufferspeicher übertragen werden, d.h. eine Seite aus Spalte 1 des Hauptspeichers wird immer in eine Spalte 1 'des Pufferspeichers übertragen. Ob die Information in die obere oder die untere Zeile der Spalten eingegeben wird, hängt davon ab, welche Zeile zur Verfügung steht. Fo!glichbefinden sich im Pufferspeicher für jede Spalte einer Hauptspeicherseite (typischwerweise 64 bis 512 Seiten) zwei Seiten. Beispielsweise kann
509826/0884
die Spalte 37 im Hauptspeicher irgendwelche zwei Informations-Seiten aus Spalte 37 des Hauptspeichers enthalten. Die beiden Speicherseiten in der Pufferspeicherspalte hängen davon ab, welche Seiten zuletzt dem Zugriff der Zentraleinheit ausgesetzt waren, d.h. die zuletzt .aufgerufenen Seiten befinden sich typischerweise im Pufferspeicher 104.
Ob eine bestimmte Informationsseite sich im Pufferspeicher 104 befindet, kann nur durch Überprüfung der Pufferspeicher-Adressliste 105 festgestellt werden. Diese ist logisch in der gleichen Weise unterteilt, wie der Pufferspeicher, jedoch enthält jede Spalte anstelle von Informationsseiten die Hauptspeicherspaltenadresse der entsprechenden Information im Pufferspeicher 104. Befindet sich in Spalte 0 des Pufferspeichers 104 die Seite 200 in der unteren und die Seite 0 in der oberen Zeile, so zeigt die Pufferspeicheradressliste in ihrer unteren Zeile 00001 und in ihrer oberen Zeile 00000. Durch Zugriff zur Pufferspeicheradressliste 105rit der entsprechenden Spalten-nummer und Vergleichen der angeforderten Zeilennuramer mit der im betreffenden Speicherplatz der Puf ferspeicherl'iste enthaltenen Zeilennummer" kann die Zentraleinheit feststellen, ob eine gegebene Seite sich im Pufferspeicher befindet. Die Datenverwaltungseinheit 106 stellt die Schnittstelle dar zwischen der Zentraleinheit 100 und dem Hauptspeicher 101 und/oder dem Pufferspeicher 104. Während eines Lesevorgangs -kannlnformation aus dem Hauptspeicher oder dem Pufferspeicher entnommen werden. Die Datenverwaltungseinheit 106 weiß, welche Einheit die Information enthaltend verteilt die Information zur richtigen Zeit in die Register der Zentraleinheit. Sie besorgt auch das Maskieren während partieller Leseoperationen. Die Befehlsabrufeinheit 108, die mit der Datenverwaltungseinheit 106, dem Adressensteuerwerk 107, dem Rechenwerk 112 und dem SpeicherSteuerwerk 110 in Verbindung steht, sorgt dafür, daß die Befehle zur Zentraleinheit 100 gelangen. Die Abrufeinheit versucht den nächsten Befehl in ihren Registern bereitzuhalten, bevor der gegenwärtige Befehlsablauf beendet ist. Zu diesem Zweck enthält die Abruf-Einheit 108 ein in der Zeichnung nicht dargestelltes ^-Byte-Befehlsregister, welches normalerweise mehr als
-509826/0 6-8 A
einen Befehl aufnimmt. Zusätzlich fordert die Abrufeinheit 108 aus dem Haupispeicher 101 Informationen (Befehle) an, bevor der Befehl tatsächlich benutzt wird und schreibt auf diese Weise ihr 12-Byte-Befehlsregister ständig fort.· Die Befehle werden also mit Hilfe eines nicht benutzten Speicherzyklus vor-abgerufen. Die Abrufeinheit decodiert jeden- Befehl und teilt den anderen Einheiten die Länge und das Format des Befehls mit.
Das Adressensteuerwerk 107 steht über den Steuerspeicher-Schnittstellenadapter 109 in.Arbeitsverbindung mit der Befehlsaufrufeinheit 108, der Pufferspeicheradressliste 105, dem Hauptspeichersortierer 102, dem Rechenwerk 112, der Datenverwaltungseinheit und dem SpeicherSteuerwerk 110. Das Adressensteuerwerk 107 ist für die Entwicklung.aller Adressen in der Zentraleinheit zustand dig. Alle Operationen des Adressensteuerwerks einschließlich des Übertrags zu von und innerhalb des Steuerwerks worden durch MikroOperationen im Steuerspeicher und die Logik des Adressensteuerwerks erledigt. Der ^normale Ablauf des Adressensteuerwerks hängt von der Art der Adressen in den Befehlen und nicht von.der Art der Befehle ab. In Abhängigkeit vom Adresstyp kann das Adressensteuerwerk unterschiedliche Operationen für jede Adresse in einem Befehl ausführen. Das Adressensteuerwerk 107 enthält ferner einen Assoziativspeicher, der üblicherweise die Basisadresse der acht zuletzt benutzen Speichersegmente zusammen mit den · Segmentnummern speichert. Bei jedem Speicheraufruf wird die Segmentnummer gegenüber dem Inhalt des Assotiativspei-* ■ chers geprüft, um festzustellen, ob die Basisadresse des Segments nun entwickelt und gespeichert ist. Befindet sich die Basis-* adresse im Assoziativspeicher, so wird sie für die Entwicklung der absoluten Adresse benutzt, was zu einer beträchtlichen Zeitersparnis führt. Ist die Basisadresse hingegen nicht im Assotiativspeicher vorhanden, so wird sie durch Zugriff zu den Hauptspeichertabellen entwickelt. Nach der Entwicklung einer Basisadresse eines Segments wird sie im Assoziativspeicher zusammen mit der Segmentnummer für spätere Anwendung gespeichert.
509826/0884
In Zusammenarbeit mit dem Adressensteuerwerk 107, der Befehls-Abruf einheit 108 und dem Speichersteuerwerk 110 bildet das Rechenwerk den Hauptarbeitsbereich der Zentraleinheit 100. Seine Hauptaufgabe besteht in der Ausführung arithmetischer Operationen und in der von der Zentraleinheit geforderten Datenbearbeitung. Die Operationen des Rechenwerks hängen völlig von MikroOperationen im Speichersteuerwerk 110 ab. Dem Recherwerk und dem Speichersteuerwerk 110 ist der interne Speicher 111 zugeordnet, der im typischen Fall ein Festkörperspeicher mit 256 Speicherplätzen (32 Bit pro Speicherplatz) mit zugehöriger Auswahl- und. Lese/Schreiblogik für den Speicher ist. Der interne Speicher 111 wird zur Speicherung von Steuerinformationen für die Zentraleinheit und von Aufrechterhaltungsinformationen benutzt. Außerdem enthält der interne Speicher Arbeitsplätze, welche in erster Linie zur vorübergehenden Speicherung von Operanden und Teilergebnissen während der Datenverarbeitung dienen. Die Zentraleinheit 100 enthält in einem typischen Fall 8 Basis- oder Indexregister (BR) 116, welche bei der Adressenberechnung für die Bestimmung der Segmentnummer,. des Versatzes und einer Ringnummer benutzt werden. Der Versatz ist eine Hinweisadresse innerhalb des Segments, und die Ringnummer wird bei der Adressengültigkeitsberechnung benutzt für die Überprüfung der Zugriffsrechte einer Bezugnahme auf ein Segment.
Der Befehlszähler 118 steht mit dem internen Hauptspeicherregister (MLR) 103 und mit der Befehlsabrufeinheit 108 in Verbindung und ist ein 32-Bit-Register, welches die Adresse des nächsten Befehls sowie die laufende Ringnummer PRN des Prozesses enthält. Weiterhin befindet sich in der Zentraleinheil^-Register 114, welches auch mit der Befehlsabrufeinheit 108 in Verbindung steht und im typischen Fall ein 32-Bit-Register ist, das eine Segmentnummer und 16-Bit oder 22-Bit positives ganzzahliges Zeichen enthält, welches die relative Adresse der Spitze des Prozedurstapels festlegt. Das Zustandsregister 115 ist ein 8-Bit-Register in der Zentraleinheit, welches u.a. die letzte Ringnummer, d.h.. den vorangehenden Wert der Prozeßringnummer PR.N enthält.
509826/0884
. - 27 -
DEr Hauptspeicher 101 wird durch das Speicheradressregister (MAR) 119 adressiert und die betreffende Information wird abgerufen und vorübergehend gespeichert im internern Speicherregister (MLR) 103. '
Figur 3 zeigt das Flußdiagramm der allgemeinen Regeln für die Entwicklung segmentierter Adressen bis zu 16 indirekten Descriptor en .
Die Figuren 4A und 4B zeigen das Format des in Figur 1 dargestellten Befehlszählers 118. Dieser Befehlszähler (IC) besteht aus einem 22-Bit-Register, das die Adresse des nächsten Befehls .und die laufende Ringnummer des Prozesses (PRN) enthält. Der Bereich TAG ist ein 2-Bit-Feld, welches dem TAG-FeId des Datendescriptors entspricht. PRN ist ein 2-Bit-Feld, welches die gegenwärtige Prozeßringnummer PRN kennzeichnet und zur Bestimmung der Zugriffsbefugnis zum Hauptspeicher dient. SEG ist entweder ein 12-Bit oder ein 6-Bit-Feld, welches die Segmentnummer angibt, wo die Befehle ausgeführt werden. Der Bereich OFFSET stellt entweder ein 16-Bit oder ein 22-Bit-Feld dar, welches die Befehlsadresse innerhalb des Segments SEG "bestimmt. Die Figuren AC bis 4F zeigen das Format der Segment-Descriptoren, wobei die Figuren 4C und 4D das erste und das zweite Wort eines direkten Segment-Descriptors darstellen, während die Figuren 4E und 4F das erste und das zweite Wort eines indirekten Segment-Descriptors wiedergeben. Segment-Descriptoren sind zwei Worte lang, wobei jedes Wort 32 Bit enthält. In den Figuren 4C und 4D stellt P das Anwesenheits-Bit dar. Hat dieses den Wert "T"/ so ist das durch diesen Segment-Descriptor bezeichnete Segment im Hauptspeicher vorhanden. Hat P den Wert "0", so ist das betreffende Segment nicht vorhanden und eine Bezugnahme auf den Segment-Descriptor führt zu einem Ausnahmesignal, welche das fehlende Segment anzeigt. Alle übrigen Felder in einem Segment-Descriptor haben nur dann eine Bedeutung, wenn das Anwesenheits-Bit P den Wert "1" hat. A ist das Verfügbarkeits-Bit. Hat A den Wert "0", so ist das betreffende Segment nicht verfügbar oder gesperrt und
509826/088A
eine Bezugnahme auf dieses Segment führt zu einem entsprechenden Ausnahmesignal. ?Iat A den Wert "1", so ist das Segment verfügbar und kann erreicht werden. I zeigt an, ob der Segment-Descriptor direkt, I = "O" oder indirekt, I = "1" ist. Das Benutzungs-Bit U ist gleich "0", wenn kein Zugriff zu dem Segment stattgefunden hat und ist "1", wenn auf das Segment zurückgegriffen wurde, ü wird bei jedem Segmentzugriff auf "1" gesetzt. W stellt das Schreib-Bit dar und ist gleich 0, wenn kein Schreibvorgang im Segment stattgefunden hat bzw. ist gleich "1", falls ein Schreibvorgang durchgeführt wurde. Es wird durch jeden Schreibvorgang auf "1" gesetzt.Wenn der Prozedur--A\ifrufmechanismus erfordert, daß ein Segment ein Torsegment ist oder wenn der Prozeßverbindungsmechanismus erfodert, daß das Segment ein Descriptor-Segment (SD) ist, werden die Bits GS (gating semaphore) überprüft. Um ein gültiges Torsegment zu sein, müssen die GS-Bits den Wert 10 haben. Um ein gültiges Segment-Descriptorsegment zu sein, muß der Wert 01 betragen. Wird ein Segment-Descriptorsegment nicht benötigt, so werden diese Bits vernachlässig„ Die Basis ist ein 24 Bit-Feld, welches die absolute Adresse inVierfach--Worten des ersten Bytes im Segment definiert. Dieses Feld wird mit 16 multipliziert, um die Byte-Adresse der Segmentbasis zu berechnen. Für die Ermittlung des Segmentumfangs dient das Feld SIZE. Ist die Seginenttabellennummer STN größer oder gleich Null aber kleiner oder gleich Sechs, so ist das SIZE-FeId 18 Bits lang. Ist die Segmenttabellennummer STN größer oder gleich Acht aber kleiner oder gleich Fünfzehn, so ist das SIZE-FeId 12 Bits lang. Die Anzahl der Bytes in einem Segment beträgt das 16-fache (SIZE = 1) .
Ist SIZE gleich Null, so beträgt der Umfang des Segments 16 Bytes. Das Lesezugriffeld RD ist ein 2-Bit-Feld, das die maximale effektive Adressringnummer EAR angibt, für welche eine Leseoperation im Segment gestattet ist. Eine Prozedur kann immer im eigenen Segment lesen, wenn die effektive Adressringnummer EAR gleich der Prozeßringnummer PRN ist. Auch das Schreibzugriffeld WR ist ein 2-Bit-Feld, das in diesem Fall die maximale effektive Adressringnummer EAR festlegt, bei der eine Schreiboperation
509826/0884
im Segment zugelassen ist, sowie .die minimale Prozeßringnunimer PRN, bei welcher die Operation im Segment durchgeführt werden kann. MAXR ist die maximale Ringnummer in Form eines 2-Bit-Feldes, welches die maximale Prozeßringnummer darstellt, bei der das Segment verarbeitet werden kann. Ein Zulässigkeits-Bit WP zeigt an, ob eine Schreiboperation im Segment durchgeführt werden kann. Ist WP gleich "0", darf keine.Schreiboperation ausgeführt werden, ist WP "V, so kann eine Schreiboperation erfolgen, sofern die effektive Adressringnummer EAR' größer oder kleiner als Null aber kleiner oder gleich WR ist. Das Ablauferlaubnis-Bit EP bestimmt, ob ein Segment verarbeitet werden kann. Ist es "0", so ist dies nicht gestattet. Ist EP gleich "1", so kann das Segment bei jeder beliebigen Prozeßringnummer verarbeitet werden, die größer oder gleich WR aber kleiner oder gleich MAXR ist. Das Feld MBz (must be zero) muß von der Software bei der Erzeugung des Feldes auf Null gesetzt werden, bevor das Feld von der Hardware benutzt wird.
Bei den Figuren 4E bis 4F sind die Definitionen der verschiedenen Felder ähnlich wie oben, jedoch enthält das Wort 0 ein Stellenfeld und das Wort 1 enthält ein RSU-FeId, d.h. ein spezielles Feld, welches für Software-Gebrauch reserviert ist. Das Stellen-
dle
feld ist ein 28-Bit-Feld, das absolute Adresse eines direkten Segment-Descriptors bestimmt. Der Wert im Stellenfeld muß ein Vielfaches von 8 sein. Die Figuren 4G und 4H zeigen das Format der Basisregister BR (Indexregister), welche bei der Adressenberechnung zur Bestimmung der Segmenttabellennummer, einer Segmenttabelleneingangsnummer^ des OFFSET und einer Ringnummer die-. nen. Es sind üblicherweise 8 Basisregister vorhanden, wie in Figur 1 durch das Bezugszeichen 116 angegeben. Die Basisregister heißen Basisregister 0 bis Basisregister 7. Ihr Umfang beträgt 32 Bit. Das Basisregisterformätgemäß Figur 4E ist für kleine Segmente gedacht, wo STN größer oder gleich 8 aber kleiner oder gleich 15 ist. Demgegenüber wird das Basisregisterformat gemäß 4H für große Segmente benutzt, wo STN größer oder gleich O aber kleiner oder gleich 6 ist. TAG ist wiederum ein 2-Bit-Feld, welches demjenigen beim zuvor beschriebenen Daten-Descriptor ent-
509826/0884
spricht. RING ist ebenfalls ein 2-Bit-Feld, welches die der segmentierten Adresse zugeordnete dem Informationsschutz dienende Ringnummer enthält. SEG bestimmt das Segment in' einer Segmenttabelle und STN ist die Segmenttabellennuminer, während STE die Segmenttabelleneingangsnummer darstellt. OFFSET ist je nach Segmenttabellennummer ein 16-Bit oder ein 22-Bit-Feld und definiert eine positive ganze Zahl. Es wird bei der Adressenentwicklung als Hinweisadresse in einem Segment benutzt.
Die Figuren 41 und 4J zeigen das Format des T-Registers. Es ist ein 22-Bit-Register und enthält eine Segmentnummer sowie eine 16-Bit oder 22-Bit lange positive Zahl, welche die relative Adresse der obersten Information des Prozedurstapels kennzeichnet. Es ist in Figur 1 mit dem-Bezugszeichen 114 dargestellt. Die einzelnen Felder des T-Registers haben den oben beschriebenen Inhalt.
Im folgenden wird unter Bezugnahme auf die Figuren 3 und 4A bis 4J die Berechnung der absoluten Adresse und die Zugriffüberprüfung im einzelnen beschrieben. Die Berechnung einer·absoluten Adresse besteht aus dem Abruf eines Segment-Descriptors, gegeben durch STN und STE und die vierfache Auswertung dieses Segment-Descriptors: Zugriffüberprüfung, Berechnung der absoluten Adresse, Grenzenprüfung und Fortschreibung (U und W Anzeiger). Die absolute Adresse kann direkt oder indirekt sein und wird dadurch entwickelt, daß zunächst eine effektive Adresse aus STN, STE und der relativen Segmentadresse SRA abgeleitet wird. STN wird aus 4 bis 8 Bits des Basisregisters BR entnommen, entsprechend der Adressilbe eines Befehls. Hat STN den Wert 7, so wird ein Ausnahmesignal erzeugt, welches anzeigt, daß STN außerhalb der Segmenttabellen-Wortanordnung liegt. STE wird ebenfalls aus einem in der Adressensilbe angegebenen Basisregister entnommen. Ist STN 4:4, d.h. es beginnt mit Bit 4 enthält die nächsten . 4 Bits, größer oder gleich Null oder kleiner oder gleich Sechs, so befindet sich STE in einem BasisregisterrBit 8 und 9. Ist STN'4:4 größer oder gleich Acht aber kleiner oder gleich Fünfzehn,
503826/0884
so befindet sich STE in den Basisregister-Bits Acht bis Fünfzehn. Die relative Segmentadresse SRA. für die indirekte Adressierung wird durch Addieren der Verschiebung in der Adressilbe, dem OFFSET des Basisregisters BR und dem 32-Bit-Inhalt eines Indexregisters berechnet, falls dieser in der Adressensilbe angegeben ist. Die Summe dieser drei Größen stellt eine nicht gekennzeichnete ganzzahlige Binärzahl von 32 Bit dar, welche kleiner sein muß als die Größe des Segments entsprechend dem Segment STN, STE.
Die indirekte Adressierung erfolgt durch Abruf eines Daten-Descriptors und Entwicklung einer Adresse aus diesem Descriptor. Die effektive Adresse des Daten-Descriptors wird wie im Falle des ■ direkten Adressierens berechnet mit Ausnahme, daß kein Indexregisterinhalt benutzt wird. Bei der Entwicklung der Adresse aus dem Daten-Descriptor kann die effektive Adresse durch eine indirekte Bezugnahme auf den ITS-Descriptor und einen Basis.ITBB-Descriptor berechnet werden. Bei Verwendung des ITS-Descriptors werden STN und STE aus dem Descriptor in der gleichen Weise entnommen wie aus einem Basisregister. Die relative Segmentadresse SRA wird durch Addieren der Verschiebung im Descriptor und des Inhalts eines in der Silbe angegebenen Indexregisters berechnet. Handelt es sich um einen ITBB-Descriptor, so werden STN und STE aus dem im BBR-FeId des Descriptors genannten Basisregister entnommen, wie bei direkter Adressierung. Die relative Segmentadresse wird durch Addieren der Verschiebung im Descriptor, dem OFFSET des Basisregistors und dem Inhalt eines in der Adressilbe angegebenen Indexregisters berechnet. Wie Figur 3 zeigt, kann sich der Prozeß über bis zu 16 Ebenen erstrecken.
Jede effektive Adresse enthält Schutzinformation., welche bei der Adressenentwicklung berechnet wird und durch die Ringschutzvorrichtung der Einrichtung zur Berechnung der absoluten Adresse die Zugriffsberechtigung prüft. Die effektive Adresse enthält die Schutzinformation in Form einer effektiven Adressringnummer EAR, welche aus der Basisregister-Ringnummer BRN und aus der Prozeßringnnummer PRN durch Auswahl der höchsten Ringnummer berechnet
509826/0884
wird. Für die Entwicklung der effektiven Adressringnummern bei indirekter Adressierung wird ähnlich vorgegangen. Beim indirekten Adressieren ist die EAR für die Entnahme des ersten Descriptors EAR1 wiederum die höchste Ringnummer, wie sie vom Basisregister in der Adressensilbe und als Prozeßringnummer PRN im Befehlszähler 118, gespeichert im UO-Register 512 gemäß Figur 5 vorhanden ist. Die effektive Adressringnummer EAR für den zweiten Descriptor EAR2 ist bei indirekter Ermittlung in mehreren Ebenen der Höchstwert von
a. der effektiven Adressnummer EAR 1 des ersten Descriptors;
b. der Ringnummer im ersten Descriptor, falls die indirekte.Auswahl zu einem Segment führt;
c. die Ringnummer aus einem Basisregister 116, welches als Datenbasisregister BBR verwendet wird, wenn der erste Descriptor ein indirekter Hinweis auf den Segment-Descriptor ITBB ist.
Die effektive Adressringnummer für indirekte Adressierung in mehreren Ebenen ist der Höchstwert von
a. EAR2; '
b. der Ringnummer im zweiten Descriptor, wenn dies ein Segment-Descriptor ITS für indirekte Adressierung ist;
c. die Ringnummer in einem der Basisregister, welches als Datenbasisregister BBR benutzt wird, sofern der zweite Descriptor eine indirekte Adresse für einen Basis-Descriptor ITBB ist.
Unter Bezugnahme auf die Figuren 5 und 6 wird nachfolgend die Übertragung1verarbeitung der verschiedenen Ringnummern beschrieben. Hierbei wird ein Assoziativspeicher 600 verwendet, bestehend im wesentlichen aus einem UAS Assoziator 609, der assoziative Speicherzellen, Bit-empfindliche Verstärker und Treiberschaltungen sowie wortempfindliche Verstärker und Treiberschaltungen enthält. Ein im UAS Assoziator 609 enthaltenes Wort oder ein Teil hiervon kann gelesen, mit einem anderen Wort zwecks Feststellung einer Übereinstimmung verglichen oder als ganzes oder als ausgewählter Teil eingeschrieben werden. Beispielsweise kann das US■« Register 607 eine Segmentnummer enthalten, welche auch im Assoziativ-
509826/0884
speicher 600 vorhanden ist. Durch Vergleich im UAS Assoziator 609 entsteht bei Übereinstimmung ein Übereinstimmungssignal, welches zum Codierer 610 gelangt. Dieser wandelt das Übereinstimmungssignal auf einer der Leitungen in eine 4-Bit-Adresse um und liefert diese an den UAB Assoziatorpuffer 611, so daß die in einer bestimmten Stelle dieses Pufferspeichers enthaltene Information ausgewählt wird. Sie gelangt dann zur vorübergehenden Speicherung oder zur übertragung an eine QA oder QB-Sammelschiene 614 bzw. 615 in ein UY-Register 613. Hierdurch wird die Feststellung einer vorher gespeicherten Segmentnummer im Assoziativspeicher, ; welche zuvor nach Erzeugung einer absoluten Adresse dorthin eingespeichert worden sein kann, bei der Regeneration derselben . Adresse nicht nötig. In Figur 6 speichert der UAB Assoziator-Pufferspeicher 611 ein erstes und ein zweites Wort eines Segment-Descriptors . Darüberhinaus können auch andere Informationen darin gespeichert werden.
Jedes der acht Basisregistor 602 wird über die UG- und.UH-Register 603 und 604 adressiert, welche Basisregisteradressen aus einer Befehlsadressilbe enthalten oder bei dem das Basisregister durch das Befehlsformat gegeben ist. Die Basisregister 602 ent-' halten Informationen wie TAG, die Basisregister-Ringnummer BRN, die Segmenttabellennummer STN, den Segmenttabelleneingang STE und den OFFSET, wie dies in den Basisregistern 1 und 2 der Basisregistergruppe 602 dargestellt ist. Das Einspeichern in die Basisregister erfolgt unter der Steuerung eines Mikro-Operationsbefehls von der UWB-Logik 601 her. Beispielsweise wird Information aus dem ÜM~Register 502 in Figur 5 in die Bit-Positionen 2/3 eines ausgewählten Basisregisters eingespeichert. Ferner kann Information von der QA-Sammelschiene in die Basisregister eingegeben werdenjund darüberhinaus ist dafür gesorgt, daß ein ausgewähltes Basisregistor gelöscht, d.h.. auf Null gestellt wird. Das Ausspeichern aus einem der Basisregistor erfolgt über die UBR-Logik 605. Diese ermöglicht das Aussenden der Informationen zur Sammelschiene QA oder QB oder in das UN-Register 608. Letzteres enthält die Bit 8 bis 31 des Basisregistors, d.h. den OFFSET-
509826/0884
Teil der segmentierten Adresse. Wird die UBR-Logik 605 durch eine im nicht dargestelten Befehlspufferspeicher IB enthaltene Adresse adressiert, so gibt sie die Segmentnununer SEG, bestehend aus STN und STE über die ÜBS-Übertragungslogik 606 in das US-Register 607 ein. Sodann kann der Vergleich der Segmentnummer SEG im US-Register 607 mit dem Inhalt des Assoziativspeichers 600 erfolgen. Die Bits 4 bis 15 der QA-Sammelschiene 614 können ebenfalls in das US-Register 607 eingespeichert und aus diesem ausgelesen v/erden. Gleiches gilt für die Bits 8 bis 31 von der Sammelschiene 614 in Bezug auf das UN-Register 608. Auch die Bits 9 bis 11 des US-Registers 607 können auf die QA-Sammelschiene gegeben werden. Die entsprechende Pfeile in Figur 6 geben die Quelle der Daten und die Bit-Nummern dieser Daten an.
Das 2-Bit-UP-Register 501 speichert die laufende Prozeßringnummer PRN. Sie wird aus den Bits 2 und 3 des Befehlszählers über die Bits IC (2-3) der QA-Sammelschiene 614 in Figur 6 erhalten. Die genannten Bits IC (2-3) werden unter Steuerung einer Mikro-Operation UV9QA0 in das 2-Bit UV-Register 503 übertragen. Diese Mikco-Operationen werden durch Mikrobefehle im Speichersteuerwerk 110 hervorgerufen. In Figur 5 bedeutet ein von einem Kreis umgebener Punkt eine Mikco-Operation und die ersten beiden Buchstaben des Namens der Mikro-Operation bezeichnen die Bestimmung der zu übertragenden Daten, der vierte und fünfte Buchstabe bezeichnen die Quelle der Daten, der dritte Buchstabe zeigt an, ob eine Teil- oder eine Vollübertragung erfolgt, wobei F für eine Vollübertrag steht, während das sechste Zeichen anzeigt, ob das die Übertragung bewirkende Signal hoch oder niedrig ist, wobei gerade Nummern ein niedriges und ungerade Nummern ein hohes Signal darstellen. Als Beispiel für die Anwendung dieses Schemas stellen die Bits 2 und 3 an die QA-Sammelschiene, welche das Ende des Pfeils QA (2,3), zeigen, dar, daß die Prozeß-Ringnummern mit der Mikro-Operation UV9QA0 übertragen wird. Dies bedeutet, daß die übertragung zum Register UV als Teilübertragung von der Sammelschiene QA als Quelle der Daten erfolgt, wobei das Zeichen 0 an sechster Stelle anzeigt, daß die übertragung bedingungslos erfolgt. Dieses Zeichen 0 wird das entsprechende siebente Zeichen
509826/0884
im logischen Namen des Unterbefehls UV9QA10 sein. Sobald die Prozeßringnummer PRN von der QA-Sammelschiene 614 in das UV-Register 503 übertragen worden ist, erfolgt eine weitere Übertragung vom UC-Register 503 in das UM-Register -502 unter Steuerung der Mikro-Operatiön UM9UVO. Schließlich führt die MikroOperation UP9UMO zu einer übertragung vom UM-Register 502 in das UP-Register 501.
Das 2-Bit-Register UM 502 dient zur Erzeugung der effektiven Adressringnummer EAR während der ITS und ITBB Adressenbildung für das Adressensilbe 1- und Adressensilbe 2-Befehlsformat. Die ITS und ITBB Adressenbildung bedeutet die indirekte Adressierung eines Segments und der Basis. /EAR = MAX (BRN, PRN, DRN,/ BBR (BRN) etc./. Die Bildung der effektiven Adressrxngnummer EAR erfolgt, wie zuvor beschrieben, mit einem oder mehreren Prüfvor-, gangen im Block 510, wobei die maximale Ringnummer erzeugt und im UM-Register 502 gespeichert wird, welches die effektive Adressrxngnummer EAR aufnimmt. Das UO-Register dient zur Sicherstellung der effektiven Adressrxngnummer für die Adressensilbe 1, für den Fall, daß die Adressensilbe 2 für die Erzeugung von EÄR2 dient.
Das 2-Bit UV-Register 503 und das 2-Bit UW-Register 504 werden hauptsächlich als Speicher für verschiedene Ringnummern benutzt, welche aus Bereichen außerhalb der Ringüberprüfungseinrichtung gemäß Figur 5 kommen und zu anderen Teilen übertragen werden. Beispielsweise wird die Basisregister-Ringnummer BRN von den Bit-Positionen 2 und 3 der UBS-Übertragunslogik 606 durch die MikroOperation UVFBSO zum UV-Register·503 übertragen. Die maximale Ringnummer MAXR des Wortes 2 des Segment-Desci-iptors wird vom UAB Pufferspeicher 611 unter der Steuerung der Mikro-Operation UVFAB1 in das UV-Register 503 übertragen. Die genannte Information ist in den Bits 36 und 37 des UAB Assoziator-Pufferspeicher 611 gespeichert. Bits 34 und. 35' des UAB Pufferspeichers 611, welche die Schreibringnummer WR darstellen, werden mit der Mikro-Operation UVFABO in das UV-Register 503 gebracht. Das UW-Register 504 erhält ähnliche Übertragungen anderer Ringnummern
509826/0884
von verschiedenen Teilen des Systems. Beispielsweise werden die Bits 34 und 35, welche die Schreibringnumrner WR des UAB Bufferspeichers 611 darstellen, mit der Mikro-Operation UWFAB1 zum UW-Register 504 gebracht. Die Bits 32 und 33,,d.h. die Leseringnummer RD des UAB Pufferspeichers 611,können mit der Mikro™ Operation UWPABO in das UW-Register 504 übertragen werden. Ferner können die Bits O und 1 der QA-Sammelschiene 614, gesteuert durch einen Mikrobefehl UWFABO in das UW-Register 504 übertragen werden. Mit der Mikro-Operation UV9UW0 sind mehrere Übertragungswege vom UW-Register 504 zum UV-Register 503 gegebeni Der Übertragungsweg vom UV-Register 503 mit der Mikro-Operation UM9UV0 zum UM-Register 502, der übertragungsweg vom UM-Register 502 mit der Mikro-Operation UP9UM0 zum UP-Register 501, der Übertragungsweg mit der Mikro-Operation UM9UP0 vom UP-Register 501 in das UM-Register 502, der übertragungsweg vom UM-Register 502 mit der Mirko-Operation U09UM0 in das UO-Register 512 und schließlich der Übertragungsweg vom UO-Register 512 über die Mikro-Operation UM9UQ0 in das UM-Register 502.
Das UP-Register 501 b'ewahrt die laufende Prozeßringnummer PRN. auf. Das UM-Register 502 und das UO-Register 512 werden für die Übertragungs-Operationen sowie zum Erzeugen der effektiven Adressringnummer EAR benützt. Das UV-Register 503 kann für verschiedene Zwecke und zu verschiedenen Zeiten die laufende Prozeßringnummer PRN, die Basisregister-Ringnummer BRN, die maximale Ringnummer MAXR , die Schreibringnummer WR oder die Leseringnummer RD speichern. Das UW-Register 504 kann zu verschiedenen Zeiten die Leseringnummer RD, die Schreibringnummer WR und die Bits 0 und 1 der Sammelschiene QA speichern. UMR 505. ist eine Logikschaltung, deren Einzelheiten in Figur 8d wiedergegeben sind. Sie vergleicht den Inhalt der Register UM und UV, ermittelt denjenigen Wert in den beiden Registern der größer ist und speichert diesen mit der Micro.7Operat.ion UMFMRO im UM-Register 502. Dies stellt die eine Möglichkeit zur Bildung der effektiven Adressringnummer EAR dar. Die UMR-Logik 505 kann ferner den größeren Wert der Inhalte des Registers UP einerseits und der Bits 2 und 3 der UBS-Logikschaltung 606 andererseits bilden. Dies stellt eine andere Methode und/oder einen zusätzlichen Schritt.
509826/0884
zur Ableitung der effektiven Adressringnummer EAR dcir. Die.UMR-Logikschaltung 505 wird auch zur Bestimmung eingesetzt, ob bei der Übertragung der Schreibringnummer WR in das UV-Register 503 eine Schreibübertretung eingetreten ist, und vergleicht dann die Inhalte des UM-Registers 502 und des UV-Register 503 daraufhin, welcher den größeren Wert hat. Das UM-Register 502 hält die effektive A'dressringnummer EAR. Da das UM-Register 502 die effektive Adressringnummer EAR speichert, zeigt ein Vergleich der Inhalte des UM-Registers und des UV-Registers an, ob EAR größer als WR ist oder umgekehrt.Wenn das Schreibzulässigkeits-Bit WP im Segment-Descriptor gleich ^ünd EAR im Bereich 0£EAR^WR liegt, kann in das betreffende Segment eingespeichert werden.Die UMR-Logik 505 kann Eingangssignale direkt oder indirekt von allen Registern 501 bis 504, von anderen Logikschaltungen 506, 507 und auch von der ÜBS-Logik 606 erhalten.
Die UW-Logik 506 entspricht im einzelnen der Schaltungsanordnung gemäß Figur 8a. Sie ist mit Eingängen · mittelbar oder unmittelbar an die Register 501 bis 504 und die Logikschaltungen 505, angeschlossen und erzeugt ein Ausübungs-übertretungssignal, wenn ein Vergleich der Register 504, 502 und 503 anzeigt, daß die Bedingung, wonach die maximale Ringnummer MAXR größer oder gleich der effektiven Adressringnummer EAR und diese größer oder gleich der Schreibringnummer WR sein soll, nicht erfüllt ist. Damit eine Prozedur in einem gegebenen Segment durch die effektive Adresse ausgeübt werden kann, muß die Bedingung erfüllt sein, daß die maximale Ringnummer MAXR größer oder gleich der effektiven Adressringnummer und diese· gleich oder größer der Schreibringnummer WR ist.Die UWV-Logik 506 führt auch die Überprüfungen gemäß Block 510 durch. Der Inhalt des UW-Registers ist kleiner oder gleich dem Inhalt des UV-Registers. Der Inhalt des UM-Registers ist größer oder gleich dem Inhalt des UV-Registers. Der Inhalt des UV-Registers ist gleich dem Inhalt des UM-Registers. Der Inhalt des UV-Registers ist größer oder gleich dem-Inhalt des UM-Registers , und der Inhalt des UM-Registers ist größer als der Inhalt des UW-Registers. Bei Durchführung dieser Überprüfungen können sich unterschiedliche Ringnummern in den Registern ein-
stellGn· SO 9 8 2 6 /0 88 4
Die UEP--Logik 507 entspricht der'Schaltungsanordnung gemäß Figur 8b. Sie erzeugt zusammen mit der UWV--Logik 506 das Lese-Übertretungs-Ausnahmesignal, welches jedoch übersteuert werden kann, falls die effektive Adressringnummer EAR gleich der laufenden Prozeßringnummer ist und die Segmentnummer des Prozedur™ segment-Descriptors und die Segmentnummer der zur Erzeugung der effektiven Adresse benutzten Adressensilbe gleich sind. Eine Prozedur ist immer imstande, ihr eigenes Segment zu lesen. Zur Ver-anschaulichung der Übersteuerung des Leseübertretungssignals sei angenommen, daß die effektive Adressringnummer größer als die
ring
Lesofiummer RD ist, wodurch eine Leseübertretungssignal hohen Pegels entsteht, das als ein Eingangssignal dem UND-Gatter 522 zugeführt wird. Trotzdem kann das Leseübertretungs-Ausnahmesignal trotz Vorhandensein eines Leseübertretungssignals nicht erzeugt werden, wenn die beiden folgenden Bedingungen gegeben sind?
1. Die effektive Adressringnummer EAR ist gleich der Prozeßringnummer PRN,d.h. der Inhalt des Registers.UM ist gleich dem Inhalt des Registers UP, und
2. die Segmentnummer in der Adressilbe des Segments, in welchem eine Prozedur ausspeichern möchte, ist gleich der Segmentnummer des Prozedursegment-Descriptors der laufenden Prozedur, was durch Versetzen eines Bits P angezeigt wird und sich als dreizehntes Bit im UE-Register 650 darstellt. Dieses Register ist ein Speicher für den Inhalt des UAS-Assoziators 609, wenn bei einem Vergleich der Inhalt des US-Registers eine Übereinstimmung festgestellt wurde.
Da dieses Beispiel annimmt, daß EAR gleich PRN ist, wird die UEP-Logik 507 ein Signal hohen Pegels an das UND-Gatter 520 als Eingangssignal liefern, und da:ferner angenommen ist, daß die Segmentnummer SEG der Adressilbe des adressierten Segments gleich der Segmentnummer SEG des Prozedursegment-Descriptors der gerade ablaufenden Prozedur ist, wird das P-Bit des Prozedursegment-Descriptors gesetzt und folglich auch dem anderen Eingang des UND-Gatters 520 ein Signal hohen Pegels zugeführt und das UND-Gatter 520 durchgeschaltet. Damit gelangt ein Signal "1
509826/088 4
zürn Inverter 521, der an seinem Ausgang ein Signal "O" abgibt, welches zu einem anderen Singeing des UND-Gatters 522 gelangt. Da ein Signal "O" am UND-Gatter 522 steht, kann kein Leseübertretungsausnahmesignal vom Verstärker 523 erzeugt werden, obwohl das dritte Eingangssignal des UND-Gatters 522 den Wert "1" hat. Um darzustellen, wie das Leseübertretungssignal erzeugt und nicht übersteuert wird, sei angenommen, daß das Ausgangssignal der UEP-Logik 507 eine Ungleichheit der Inhalte des UM-Registers und des UP~Registers anzeigt. Damit hat dieser Eingang des UND-Gatters
520 das Signal "0" {und dieses Gatter kann nicht aktiviert werden. Sein Ausgangssignal "0" gelangt zum Eingang des Inverters 521, welcher ein Ausgangssignal "1" an einen Eingang des UND-Gatters 522 abgibt. Wenn auch die effektive Adressringnummer EAR größer als die ' Leseringnurnmer RD ist, d.h. der Inhalt des UM-Registers ist größer als der des UW-Registers, wäre auch dieses Signal "1" und würde ebenfalls ..einem anderen Eingang des UND-Gatters 522 zugeführt. Dieses hat noch einen dritten Eingang, welcher ebenfalls "1"'erhalten muß., wenn das Gatter durchgeschaltet werden soll. Dieser dritte Eingang erhält das Signal "1", wenn das UND-Gatter 526 aktiviert'ist. Dieses erhält am einen Eingang das Signal "1", wenn die Klemme 00 .des URV1F-Flip-Flops
521 auf "0" liegt, das UND-Gatter 526 durch Zusendung der MikroOperation Leseübertretungs-Abfragesignal AJERVA an die eine Eingangsklemme des UND-Gatters 526 durchgeschaltet wird, während die 00-Klemme des URVIF-Flip-Flops 524 auf "0" liegt. Damit sind alle Eingänge des UND-Gatters 522 auf "1" und es entsht das Leseübertretungs-Ausnahmesignal.
Das Ausübungs-Übertretungs-Ausnahmesignal wird auf zwei Wegen erzeugt. Ein Ausführungs-Übertretungssignal ergibt sich, wenn die UWV~Log.ik 506 anzeigt, daß die Bedingung, wonach WR kleiner oder gleich EAR und dieses kleiner oder gleich MAXR ist, nicht zutrifft. Dieses Ausfuhrungsübertretungssignal vom Pegel "1" wird dem UND-Gatter 550, welches nur einen Eingang hat, zugeführt, das ausgangsseitig über einen Verstärker 552 an den einen Eingang eines weiteren UND-Gatters 553 angeschlossen ist. Wird dem anderen Ej ngang des letztgenannten UND-Gatters 553 ein
"509826/088A
Mikro-Operationssignal AJEEVA, welches die Abfrage einer Ausübungsübertretung darstellt, zugeführt, so schaltet dieses Gatter durch und erzeugt über den Verstärker 554 ein Ausübungs-Übertretungs-Ausnahmesignal. Die andere Methode zur Erzeugung eines solchen Signals mit Hilfe der Ausübungs-übertretungs-Hardware 511 ergibt sich, wenn das Ausübungs-Erlaubnis-Bit EP nicht gesetzt wird. In diesem Zustand ist das siebente Bit im UY-Register 313 gleich "1". Es gelangt zum Eingang des UND-Gatters 551, welches nur einen Eingang hat und wird als Signal-"1" über den Verstärker 552 der einen Eingangsklemme des UND-Gatters 553 zugeleitet. Sobald das Signal AJEEVA den Wert "1" annimmt, schaltet das Gatter 553 durch und erzeugt am Ausgang des Verstärkers 554 das Ausübungs-Ubertretungs-Ausnahmesignal.
Das Schrelb-Übertretungs-Ausnahmesignal wird ebenfalls auf zweierlei Weise gebildet. Es wurde schon gezeigt, wie die UMR--Logik 505 ein Schreib-Übertretungssignal entstehen läßt, wenn EAR größer ist als WR. Dieses Signal wird dem einen Eingang des UND-Gatters 545 zugeleitet, welches durchschaltet, sobald das Signal am zweiten Eingang den Wert "1" annimmt. Es erzeugt dann mit Hilfe des Verstärkers 547 das Schreib-übertretungs-Ausnahmesignal. Der zeite Eingang des UND-Gatters 545 nimmt beim Durchschalten des UND-Gatters 542 den Wert "1" an. Das letztgenannte Gatter wird aktiviert, wenn seine beiden Eingangssignale den Wert "1" haben. Das eine Eingangssignal hat diesen Wert, wenn der UWV1F Flip-Flop 541 das Ausgangssignal "0" liefert und somit der Inverter 543 dem einen Eingang des UND-Gatters 542 ein Signal "1" zuführt. Das andere Eingangssignal hat den Wert "1", wenn das Mikro-Operationssignal für eine Schreib-Übertretungsabfrage AJEW VA11I" ,ist. Dies geschieht, wenn eine Prozedur bezüglich eines Schreibübertretungs-Ausnahmesignals abgefragt werden soll.Die Flip-Flops URVIF, URN1F und UWV1F werden bei irgendwelchen Unterbrechungen oder durch die Software auf "0" gesetzt.. Die Flip-Flops UWV2F, URV2F und URN2F dienen der Speicherung der Unterstützungs-Prüfinformation für die Ringprüfung. Die andere Methode zur Erzeugung eines Schreib-Ubertretungs-Ausnahmesignals
509826/0884
ergibt sich, wenn das Schreibzulässigkcits-Bit WP nicht gesetzt ist. Dieser Zustand wird durch den Wert "1" des sechsten Bits im UY-Register 613 angezeigt. Wird dieses Signal dem einen Eingang des UND-Gatters 542 zugeleitet und ist das Abfragesignal AJEWVA ebenfalls "1" und steht am anderen Eingang des UND-Gatters 546/ so schaltet dieses UND-Gatter durch und ein Schreib-Übertretungs-Ausnahmesignal erscheint am Ausgang des Verstärkers 547.
Gesteuert durch einen Befehl aus der Abrufeinheit IFU ermöglicht die Logikschaltung 591, bestehend aus den Flip-Flops 532 und in Verbindung mit dem Verstärker 530, dem UND-Gatter 531 und dem Inverter 53OA die Bildung des Maximalwerts der Ringnummer EAR im Register UM 502. Ist der URN1F Flip-Flop 532 auf "0" und der URN2F Flip-Flop 532 auf "1" gesetzt, so wird während der Durchführung des Splatter-Unterbefehls aus der Befehlsabrufeinheit IFU die Eingangsklemme 531a des UND-Gatters 531 den Wert "1" annehmen. · Hatte der Flip-Flop 532 des Ausgangssignal "0", so wird dieses Signal im Inverter 53OA umgekehrt und das UND-Gatter aktiviert. Somit wird der Maximalwert des Inhalts des UP-Registers 501 oder die Bits 2 und 3 des logischen Vektors UBS 606 in das UM-Register 502 gebracht. Hat andererseits der Flip-Flop 532 das Ausgangssignal "1", so wird der Inhalt des UM-Register s 502 nicht über die obengenannten Quellen geändert und die effektive Adressringnuminer EAR wird im UM-Register 502 durch indirekte Adressierung ermittelt. Der Flip-Flop 533 dient'als Unterstützungsspeicher für die effektive Adressringnummer EAR der Adressilbe 2.
Die folgenden Teilfiguren der Figuren 7 und 8 entsprechen den nachfolgend genannten Schaltungen in Figur 5: Figur 7a dem UW-Register 504; Figur 7b dem UV-Register 503; Figur 7c dem Block 590; Figur 7d dem Block 591; Figur 7e dem Block 592; Figur 7f dem UP-Register 501; Figur 7g dem UO-Register 512; Figur 7h.dem UM-Register 502; Figur 8a.der UWV-Logik 506; Figur 8b der UEP-Logik 507 und Figur 8d der UMR-Logik 505.
509826/0884
ά 9 —
Wie Figur 7a zeigt, besteht das ÜW-Rcgister 504 aus zwei Flip-Flops 715ajund 72Oa, von denen jeder ein Informations-Bit des UW-Registers ciufnimmt. Mit dem Flip-Flop 715 a sind vier UND-Gatter 711a bis 714 a gekoppelt .und über ein ODER-Gatter zusammongeschaltet. Dabei hat jedes Gatter mit Ausnahme des Gcitters 713a zwei Eingänge, denen jeweils wenigstens ein Signal zugeführt wird. Das UND-Gatter 714a ist mit einem Eingang an den Setzeingang UViOOOlO des Flip-Flops 715a angeschlossen. Er steht ferner mit der Klemme H27 in Verbindung, an welcher ein Taktsignal PDA ankommt. Der Flip-Flop 72Oa ist mit den UND-Gattern 716a bis 719a in Form einer ODER-Schaltung zusammengeschaltet. Die eine Eingangsklemme des UND-Gatters -716a steht mit einem Eingang des UND-Gatters 711a in Verbindung; ein Eingang des UND-Gatters 717a ist mit einem Eingang des UND-Gatters 712a verbunden f und ein Eingang des UND-Gatters 719a ist an einen Eingang des UND-Gatters-714a angeschlossen, während der andere Eingang des UND-Gatters 719a mit dem Setzeingang UW00110 des Flip-Flops 720 in Verbindung steht. Dieser Flip-Flop ist ferner an die Klemme H27 angeschlossen und erhält von dort das Taktsignal PDA. Die UND-Gatter 701a bis 704a sind nach Art einer ODER-Schaltung zasammengeschaltet und mit ihren Ausgangsklemmen an die Eingänge des Inverters- 705a geführt. Das UND-Gatter 7O6a it5t an den Verstärker 708a angeschlossen, während das UMD-Gatter 707a mit dem Verstärker 709a in Verbindung -st<ht. Eine Eingangnklemme des UND-Gatters 706a ist mit einem Eingaiv-j des UND-Gatters 7O7'a verbunden. Die Ausgangsklemme des Inver '<,ers 705a liegt an einem Eingang der UND-Gatter 714a und 719a. Der Ausgang des Verstärkers 708a steht mit einem Eingang des UiJD-GcttL^rs· 713a in Verbindung, während der Ausgang des Verstärkers 709a mit dem Eingang des UND-Gatters 718a gekoppelt ist.
Die den Eingängen der UND-Gatter zugeführten und von den Ausgängen der Verstärker, Inverter oder Flip-Flops entnommenen Signale werden durch Buchstaben gekennzeichnet, welche einen speziellen Code bilden. Da sowohl die Datensignale als auch die Steuersignale entweder zugeführt werden oder abgeleitet sind, existieren zwei Codes und zwar einer für die Steuersignale und einer für
509826/0884
COPY/ __
"'-' BAD ORIGINAL
die Datensigncile. Der Steuersignalcode wurde bereits beschrieben. Dabei bezeichnen die ersten beiden Zeichen die Bestimmung der zu übertragenden Daten; das dritte Zeichen gibt an, ob eine volle oder teilweise Übertragung durchgeführt werden soll, wobei der Buchstabe F eine Vollübertragung anzeigt? das vierte und fünfte Zeichen bezeichnen die Quelle der Daten und wenn die Quelle mit mehr als zwei Buchstaben gekennzeichnet ist, werden nur die beiden letzten Buchstaben benutzt; das sechste und siebente Zeichen sind üblicherweise Zahlen und zeigen an, ob das Signal "1" oder "O" ist, d.h. eine ungerade Zahl in der sechsten Stellen bedeutet eine Bestätigung und eine ungerade Zahl in der sechsten Stelle eine Negation; die siebente Stelle gibt an, ob dies die erste, zweite, · dritte usw. Ebene des Auftretens des Signals ist. Die Daten andererseits werden unterschiedlich angezeigt. Die ersten drei Zeichen bezeichnen die Quelle der-Daten* das vierte und fünfte Zei-· chen können Zahlen sein und geben die Bit-Stelle an, wo die Daten in der Quelle untergebracht sind? -und das sechste und siebente Zeichen sind ähnlich wie bei Steuersignalen dazu bestimmt anzuzeigen, ob das Signal "1" oder "0" ist und die Ebene des Auftretens des Signals. .Im allgemeinen gibt das Format selbst an, ob das Signal ein Steuersignal oder ein Datensignal ist. Unter Bezugnahme auf die Figuren 5 und 6 können die Quelle und die Bestimmung der Signale festgestellt werden. Es gibt einige Ausnahmen zu dieser allgemeinen Regel, welche in der Beschreibung und der Anlage erläutert sind. ·
Als Beispiel dieser Übereinkunft ergibt sich aus Figur 7a, daß die Signale UWFAB11, UWFAB10 und UW9QA10 Steuersignale sind. Demgegenüber sind die Signale UAB341O, UAB321O, UAB351O, UAB331O, QAOO11O und QAOOO1O Datensignale. Ausnahmesignale sind das Taktsignal PDARG1O und das Haltesignal UWH0L10, welches die Information in den Flip-Flops 715a und 7 2Oa hält. Die Signale UWOBKTO und UWBK10 sind Unterstützungssignale, deren Hauptzweck es ist, die Eingangskapazität der Flip-Flops 715a und 72Oa zu .erweitern, indem das UW-Register, bestehend aus den beiden Flip-Flops an das Bit 0 und das Bit 1 angeschlossen wird. Schließlich ist noch das Löschsignal USCLRIO vorhanden, welches die Flip-Flops auf 0 setzt.
509 826/0.8 84
GORY .
Das dem UND-Gatter 702a zugeführte Signal UVTFAB 11 ist ein Steuersignal, welches Daten-Bits, nämlich die Bits 34 und 35 im UAB-Assoziator-Pufferspeicher 611 (da die Bezeichnung des Speichers drei Buchstaben hat, wurde der drittletzte·, nämlich U weggelassen) in das UW-Register 504 überträgt und eine volle übertragung in das UW-Register 1 darstellt. Die ungerade Zahl zeigt an, daß das Signal eine Bestätigung ist. Das Signal UWFAB10 am Eingang des UND-Gatters 703a ist ein Steuersignal mit derselben Quelle und Bestimmung, wie das Signal, welches dem UND-Gatter 702a zugeführt wird mit Ausnahme, daß die Bits 32 und 33 des UAB-Assoziator-Pufferspeichers 711 in das UW-Register übertragen werden. Auch das Signal UW9QA10 am Eingang des Gatters 704a ist ein Steuersignal, womit Daten von der QÄ-Sammelschiene 614 in das UW-Register übertragen werden, wobei dies eine Teilübertragung darstellen kann. Das Signal QA0010 am Eingang des UND-Gatters 706a ist ein Datensignal und kennzeichnet das Bit 00 in der Sammelschiene 614. Die dritte Stelle wird dabei nicht benutzt, weil die ersten beiden Stellen hinreichend angeben, wo sich die Daten befinden. Das Signal QA00110 ist ähnlich, mit der Ausnahme, daß die durch dieses Signal bezeichneten Daten diejenigen in der Stelle 01 der QA-Sammelschiene 614 sind. Die geschilderte Übereinkunft in Verbindung mit den Figuren 5 bis 8 beschreibt die zur Verwirklichung des angestrebten Ringschutzes dienende Hardware .
Figur 7b zeigt das Blockschaltbild des UV-Registers 503. Das Haltesignal UVH0L10 fürdieses Register wird über den Inverter 73Ob erzeugt, wenn keinemder UND-Gatter 701b bis 708b ein Eingangssignal "1" zugeführt wird. Das genannte Haltesignal UVH0L10 wird dem UND-Gatter 723 zugeleitet und bewirkt, daß die im UV-Register 503 enthaltene Information festgehalten wird. Das dem Eingang des UND-Gatters 704b und den Ausgängen der UND-Gatter 705b bis 708b zugeleitete Signal UVH0L1E erweitert die Anzahl der Steuersignale, welche das Haltesignal UVHOL10 erzeugen können. Auch das den Ausgängen der UND-Gatter 710b bis 713b sowie dem Eingang des UND-Gatters 722b zugeführte Signal UV0BK10 dient der Erweiterung
509826/Q884
der Eimjangssignale, welche dem Flip-Flop 724b augeführt werden können. Schließlich erweitert das Signal UV1BK1O an den Ausgängen der UND-Gatter 716b bis 718b und am Eingang des UND-Gatters 727b in ähnlicher Weise die Anzahl der Eingangssignale, die zum Flip-Flop 729b gelangen können.
Figur 7g zeigt das Blockschaltbild des UO-Registers 512. Die UND-Gatter 701g bis 704g sind in Form einer ODER-Schaltung.zusammengeführt t und ihr Ausgang liegt am Eingang des Inverters 705g. In ähnlicher Weise sind die UND-Gatter 706 bis 709g zusammengeschältet und mit ihrem Ausgang an den Flip-Flop 710g angeschlossen. Ein Eingang des UND-Gatters 709g ist mit der Klemme U0000010 des Flip-Flops 710g verbunden. Die UND-Gatter 711b bis 714g sind wiederum nach Art einer ODER-Schaltung zusammengeführt und mit dem Flip-Flop 715g in Verbindung gebracht. Ein Eingang des UND-Gatters 706g liegt am Eingang des UND-Gatters 711, ein Eingang des UND-Gatters 707g an einem Eingang des UND-Gatters 712g und ein Eingang des UND-Gatters 709g an einem Eingang des UND-Gatters 714g. Das vom Inverter 705 erzeugte Signal U0H0L10 wird ferner einem Eingang der UND-Gatter 709 und 714g zugeleitet und dient zum Festhalten der Information im UO-Register 512. Die Klemme XOO stellt die Masseklemme dar, während ..XNU ein nicht benutzer Eingang ist.
Figur 7f zeigt das Blockschaltbild des UP-Registers 501. Es ist der oben beschriebenen Schaltung von Figur 7g ähnlich mit Ausnahme, daß unterschiedliche Signale aus verschiedenen Quellen und für unterschiedliche Bestimmungsstellen zugeführt werden.
In Figur 7h ist das Blockschaltbild des UM-Registers 502 wiedergegeben. Die UND-Gatter 701h bis 7O4h sind nach Art einer ODER-Schaltung zusammengeführt und erzeugen über den Inverter 7O5h das Haltesignal UMH0L10. In ähnlicher Weise sind .die UND-Gatter 706h bis 709h zusammengeschaltet und an den Eingang des UND-Gatters 704h angeschlossen, um den Bereich der Eingangssignale zu erweitern, welche das genannte Haltesignal erzeugen können.
509826/0384
Auch die UND-Gatter 711 h bis 714h sind in dieser Weise zusamraengeschaltct und mit dem Eingang des UND-Gatters 723h verbunden. Sie erweitern den Bereich der dem Flip-Flop 73Oh zuführbaren Signale. Schließlich sind in der gleichen Weise die UND-Gatter 716h bis 719h zusamrnongeschaltet und an den Eingang des UND-Gatters 727h angeschlossen, um den Bereich der dem Flip-Flop 731h zugeführten Signale zu erweitern. Eine der Zufuhr des Taktsignals PDA an die Flip-Flops 73Oh und 731h dienende Leitung 74Oh ist mit den Punkten 734h und 735h verbunden. Der Eingang des UND-Gatters 703h ist erweitert durch Anschluß des Verstärkers 73 3h
um
zum Eingang des UND-Gatters 703h, zwei weitere Eingänge URN1F00 und IEiTUMIO zu schaffen.
In den Figuren 7c bis 7e sind die Blockschaltbilder der Schreibausnahme-Steuerlogik, 590, der IFU-Unterbefehl-Steuerlogik 591 und der Leseübertretungsausnahme-Steuerlogik 59 2 wiedergegeben. Figur 7c zeigt die Flip-Flops 705c und 710, welche dem Flip-Flop 541 540 entsprechen. Im Zuge einer Mikro-Operation URW1F10 wird die Information im Flip-Flop 71Oc in den Flip-Flop 705c übertragen. Das Haltesignal UWV1H10 dient zum Festhalten der inden Flip-Flop 710c übertragenen Information, während mit dem Signal UWV2H10 die in den Flip-Flop 705c übertragene Information fest-, gehalten wird. In ähnlicher Weise wird in Figur 7d mit einem Mikro-Operationssignal URNSW10 Information vom Flip-Flop 710d in den Flip-Flop 7O5d übertragen und in Figur 7e mit einem Mikro-Operationssignal URW2F10 die Information des Flip-Flops 71Oe in den Flip-Flop 7O9e.
Figur 8a zeigt das Blockschaltbild der UWV-Logik 506/ Figur 8b das Blockschaltbild der UWEP-Logik 507 und Figur 8d das Blockschaltbild der UMR-Logik 505. In Figur 8a ist eine Logikschaitung zur Erzeugung eines Signals "1" dargestellt, wenn eine der Testbedingungen 510 erfüllt ist und außerdem zur Erzeugung eines Ausführungsübertretungssignals, wenn die Bedingung, daß der Inhalt des .UW-Registers kleiner oder gleich dem Inhalt des UM-Registers und dieser kleiner oder gleich dem Inhalt des UV-Registers sein soll, nicht erfüllt ist. Die Erzeugung des
509826/0884
Signals UWLEV1O zeigt an, daß der Inhalt des UW-Registers 504 kleiner oder gleich dem Inhalt des UV-Registers 503 ist. Die Logikschaltung zur Erzeugung dieses Signals leitet sich aus der folgenden Bool'sehen Gleichung ab:
X1 = (BCD) + (ABD) + (AC)
Hierin bedeutet X1 das Ausgangssignal des Verstärkers 805a, während die verschiedenen Buchstaben die verschiedenen Eingänge der UND-Gatter 801a bis 804a kennzeichnen.
Ein Anzeichen dafür, daß der Inhalt des UV-Registers 503 größer oder gleich des Inhalts des UM-Registers 502 ist, ergibt sich, wenn das Signal UVGEM10 erzeugt wird. Dieses geschieht über den Inverter 82Oa in Abhängigkeit verschiedener Eingangssignale an den UND-Gattern 816a bis 819a, welche nach Art einer ODER-Schaltung zusammengefügt und an den Eingang des Inverters 82Oa angeschlossen sind. Die Logik für die Erzeugung des Signals UVGEM1O ergibt sich aus der folgenden Gleichung:
X2 = (BCD) +(ABD) +(AC) ' ' (II)
Das Signal UMGEV10 wird aufgrund der Eingangssignale der Gatter 806a bis 809a mit Hilfe des Inverters 810a erzeugt, sofern der Inhalt des UM-Registers 502 größer oder gleich dem Inhalt des UV-Registers 503 ist. Die Logik hierfür ergibt sich aus:
X3 = (BCD)+ (ABD) + (AC) (III)
Hierin bedeutet X3 das erzeugte Ausgangssignal. In ähnlicher Weise t wird das Signal UVEQMtO aufgrund der folgenden Gleichung gewonnen:
X4 = (AC) + (AC) + (BD) +(BD) (IV)
und zeigt an, daß der Inhalt des UV-REgisters 503 gleich dem Inhalt des UM-Registers 502 ist.
50982 6/0884
Ist der Inhalt des UM-Registers 502 größer oder gleich dem Inhalt des UW-Registers 504, so entsteht das Signal UMGEW10 aufgrund der folgenden Beziehung:
X5 = (BCD) + (ABD) ·+ (AC) (V)
Ein Signal UMGTW1O entsteht,"wenn der Inhalt des UM-Registers 502 größer ist als der Inhalt des UW-Registers 504. Hierzu dient die Beziehung:
X6 = (ABD) + G (BD + A) (VI)
Ein Signal UWGMVOO wird erzeugt, wenn die Bedingung, daß der Inhalt des UW-Registers kleiner oder gleich dem Inhalt des UM-Registers und dieser wiederum kleiner oder gleich dem Inhalt des UV-Registers sein soll, nicht zutrifft. Es entsteht, wenn das Signal UVGEM10 anzeigt, daß der Inhalt des UV-Registers größer oder gleich dem Inhalt des UM-Registers ist und gleichzeitg das SIg-. nal UMGEW10 zu erkennen gibt, daß der Inhalt des UM-REgisters größer oder gleich dem Inhalt des UW-Registers ist und beide genannten Signale den Wert "1" haben.
Gemäß Figur 8b wird ein Signal UMEUQP10 aufgrund der folgenden Bool1sehen Beziehung erzeugt:
7 = (AC) + (AC) + (BD) + (BD) .( VII)
Hat dieses Signal den Wert "1", so bedeutet dies, daß der Inhalt des UM-Registers 502 größer ist als derjenige des UP-Registers 501.
Figur 8d zeigt das Blockschaltbild für die Ausführung der Operationen der UMR-Logik 505 gemäß Figur 5. Eine dieser Operationen besteht in der Bestimmung des Maximalwerts des Inhalts des UP-Registers 501 und der Bits 1 und 2 der UBS Logik 606. Hierzu muß ein Signal angeben, ob der Inhalt des UP-Registers kleiner als der Inhalt der UBS Logik ist oder umgekehrt. Die Erzeugung des
509826/0884
Signals UPLEB10 zeigt, daß der Inhalt des UP-Registers 501-kleiner oder gleich den Bits 2 und 3 UBS-Logik 606 ist. Deragegenüberjläßt das Signal UPGTB1Ö erkennen, daß der Inhalt des UP-Registers 501 größer als die Bits 2 und'3 der UBS-Logik 606 ist. Diese Signale entstehen aufgrund der folgenden Beziehung:
= (BCD) + (ABD) + (AC) ' (VIII)
Hierin bedeutet Xft das Ausgangssignal des Inverters eoodjund die Buchstaben kennzeichnen die verschiedenen Eingänge der UND-Gatter 80id bis 8O3d.
Zur Erläuterung der Bestimmung des Maximalwerts im Inhalt des UP-Registers und der UBS-Logik mit Hilfe der Ausgangssignale UMPB101 und UMPB110 der Verstärker 814d und 817d sei zunächst angenommen, daß der Inhalt des UP-Registers kleiner oder gleich den Bits 2 und 3 der UBS-Logik ist, weil das Bit 2 den Wert "1" und das Bit 3 den Wert "1" hat, während der Inhalt des UB-Registers 01 ist. Dies wird durch den Wert "1" des Signals UPLEB10 und den Wert "0" des Signals UPGTB10 angezeigt, welcher das invertierte Signal zum Signal UPLEB10 darstellt. Das letztgenannte Signal wird dem einen Eingang des UND-Gatters 813d und einem Eingang des UND-Gatters 806 zugeleitet. Hat das Bit 2 der UBS-Logik den-Wert "1", wie dies, durch das Signal UBS0210 angegeben, so wird das UND-Gatter 813d durchgeschaltet und das Signal UMPP010 nimmt den Wert. "1" an und zeigt damit an, daß das Bit 2 in der UBS-Logik den Wert "1" hat. Zeigt das Bit 3 der UBS-Logik den Wert "1", was durch ein Eingangssignal UBS0310 am anderen Eingang des UND-Gatters 816d dargestellt wird, so wird das UND-Gatter 816d aktiviert und das Signal UMPB110 nimmt den Wert "1" an. Unter den angenommenen Bedingungen, bei denen die Bits (2,3) der UBS-Logik größer oder gleich dem Inhalt des UP-Registers sind, befindet sich der Höchstwert der beiden Größen in der UBS-Logik und seine Zahl ist eine binäre -11... oder einedezimale 4^ Es erfolgt also ein Vergleich um zunächst festzustellen, welche Einrichtung den Höchstwert enthält, und dann wird der Betrag dieses Höchstwertes festgestellt. Durch ähnliche Analyse
SO9826/0 884
— 5O
läßt sich der Wert im UP-Register durch die Signale UMPB und UMPBi10 ermitteln, wenn der Inhalt des UP-Registers größer als das zweite und dritte Bit in der UBS-Logik ist. Gleichermaßen kann der Maximalwert im UM~Register 502 oder UV-Register 503 durch die Signale UVGEM 10und UMGTV10 bestimmt werden, wenn das UV-Register 503 einen höheren oder gleichen Wert beinhaltet wie das UM-Register 502 beziehungsweise umgekehrt.
Die Figuren 9a bis 9f beschreiben die in den Figuren 7 und 8 verwendeten Zeichnungssymbole. Während die meisten aus sich heraus verständlich sind, sei bezüglich Figur 9g angemerkt, daß dort drei UND-Gatter 901g bis 903g nach Art einer ODER-Schaltung zusammengeschaltet sind und am Ausgang 904g ein Signal "1" entsteht, wenn eines der UND-Gatter den Wert "1" annimmt. ,Figur 9h zeigt einen Flip-Flop mit einem Rückstelleingang 00 und einem Setzeingang 10. über die Leitung PDA wird die Taktimpulsfolge zugeleitet, welche in Abhängigkeit von den am Flip-Flop stehenden Signalen dessen Umschaltung bewirkt.
509826/0884
Begriffs-Liste
Job-Schritt
Haupt-Arbeitseinheit für Stapelverarbeitung, Mittel zur Beschreibung, Planung und Berechnung der Arbeit, welche der Benutzer durchführen läßt.
eine kleinere Arbeitseinheit bei Stapelverarbeitung, ein Schritt bei der Ausführung eines Jobs der aus der Durchführung logisch zusammenhängender Operationen besteht.
die kleinste vom Benutzer her definierte Arbeitseinheit innerhalb der keine für den Benutzer sichtbare, gleichzeitige Operation zulässig ist.
eine Gruppe logischer Adressen, die die Zentraleinheit während eines bestimmten Prozesses in absolute Adressen umwandeln darf. Obwohl der Processor technisch alle Zellen eines Speichers anwählen kann, ist es erwünscht, den Zugriff auf jene Zellen zu beschränken, welche während des ablaufs des dem Processor zugeordneten Processes benutzt werden.
Logische Adresse-ein Element des Process-Adressraums, beispielsweise die Segmentnununer SEG und die Verschiebung D.
Adressenraum
(Segmentation)
Basis-Adressenentwicklung
Process-Steuerblock
eine Hardware-Prozedur, welche aus einer Anzahl von Adressenelementen eine absolute Adresse berechnet, die auf. eine Byte-Stelle im Kernspeicher Bezug nimmt. · ·
er ist jedem Process zugeordnet und hält die erforderliche Information über den Process, u.a, die absolute Adresse der dem Process zugängigen Scgmenttabellen.-
50 9 826/088 4
J. P. Tabellen - eine Sammlung logischer Adressen für die Ermittlung des dem Process zugeordneten Process-Steuerblocks.
509826/0884
2458055
SjL gn.alrisB.ie
(1) WSCLR
(2) PDARG
(3) PDÜRG1T
(4) UWOBK (5). UWHOL
(6) . UW1BK
(7) UWOOOOO (8> UWOOO10
UWOO100 UW00110
(10) UVSPS
(11) UVSPD
(12) UVOBK
(13) UVOOOOO UVOOO10 UVOO100 UV00110
(14) UWV1S
(15) UWV1D
(16) UWV2F
(17) UWV2S
Typ
Steuerung
Steuerung Verbindung
Verbindung
Steuerung
Steuerung
Steuerung
Daten
Expander
Steuerung Daten Flip-Flop Steuerung Funktion
Löscht die angeschlossenen Register.
Taktsignal PDA.
Anschluß der einerseits an das Taktsignal und andererseits an ein Register angeschlossen ist.
Erweitert die Eingänge zum UW-Register
Hält die Information im angeschlossenen Register
Hält die Information im angeschlossenen Register, ist aber an einen, anderen Eingang des UW-Registers angeschlossen.
Rückstelleingang eines Flip-Flops im UW-Register.
Setzeingang eines Flip-Flops im UW-Register.
Das gleiche wie (7) und (8) aber unterschiedliche Flip-Flops.
Reserve-Steuereingang . Reserve-Dateneingang .
Das gleiche wie (4) und (6), verbindet aber verschiedene Register und Gatter.
Die gleiche wie bei (7) bis (9), ab'er gehört zum UV-Flip-Flop.
Steuereingang für UWViF ^ Dateneingang für UWV1F . Schreib-Steuer Flip Flop Steuereingang für (16)
509826/0884
Signalname
(18) UWV2D
(19) UWV1H
(20) UWV1C
(21) UWV 2 C
(22) URNIS
ÜRN2S
(23) URN1D
(24) URNSW
(25) URN2F
(26) URN1H
(27) URN2C
(28) URW1S
URW2S
(29) URW1D
(30) URV2F
(31) XNU
(32) XOO
Funktion
Daten
Steuerung
Steuerung Steuerung Steuerung
Daten
Steuerung
Flip-Flop
Steuerung Steuerung Steuerung
Daten
Flip-Flop Dateneingang Car (16).
Halteschaltung für Flip-Flop UWV1F.
Löschen des Flip-Flops UWVlF. Löschen des Flip-Flops (16).
Steuereingänge für Flip-Flops URN1F und URN2F.
Dateneingang für Flip-Flop URN1F.
Übertrag von URN1F nach URN2F und von URN2F.nach URN1F.
Ladesteuerung max (UP, UBS2,3, nach UM).
Halten des Flip-Flops URN1F. Löschen des Flip-Flops URN2F.
Steuereingänge für URV1F und URV2F.
Dateneingang für URVIF. Lesesteuerungs Flip Flop. Nicht benutzter Anschluß. Geerdeter Anschluß
509826/0884
BAD ORIQfNAL

Claims (23)

  1. ■ Patentansprüche
    Datenverarbeitungsanlage mit einem Speicher, der mehrere Arten , von Informationsgruppen enthält, dadurch gekennzeichnet, daß die Informationsgruppen jeweils einem durch ein Segment mit einstellbaren Grenzen abgeteilten .Adressenraum zugeordnet sind, daß eine für einen gegebenen Adressenraum eine effektive Adressringnummer EAR entwickelnde Einrichtung vorhanden ist, wobei die effektive Adressringnummer dem Höchstwert des dem betreffenden Adressenraum zukommenden. Zugriffsprivilegs entspricht, und daß durch Vergleich der effektiven Adressringnummer mit einer dem ablaufenden Datenverarbeitungsprozeß zugeordneten Prozeßringnummer PRN ein die Zulässigkeit des Zugriffs zu einem gegebenen Adressenraum kennzeichnendes Signal erzeugt wird. .
  2. 2. DV-Anlage", nach Anspruch !,dadurch gekennzeichnet, daß die Einrichtung zur Entwicklung der effektiven Adressringnummer EAR einen ersten Speicher für eine einem vorgegebenen Privileggrad des zugeordneten Adressenraums entsprechende Basisregister-Ringnummer BRN sowie einen zweiten Speicher für eine dem^Privileggrad des Adressenraums des gerade ablaufenden Prozesses entsprechende Prozeßringnummer PRN aufweist, daß an die beiden Speicher ein erster Vergleicher anschaltbar ist, welcher die Inhalte der beiden Speicher vergleicht, und daß ein an den Vergloichor angeschlossener dritter Speicher den Inhalt des Speichors mit dem höheren Wert aufnimmt, der die effektive Adressringnummer E/vR für den ausgewählten Adrossenr a
  3. 3. DV-Änlage nach Anspruch 2, dadurch gekennzeichnet, daß ein vierter Speicher eine den für das Einspeichern (Schreiben) in den betreffenden Ädressenraum erforderlichen Miridestprivilegrang darstellende Schreibringnummer WR speichert.
  4. 4. DV-Anlage nach Anspruch 3, dadurch gekennzeichnet, daß an den dritten und den vierten Speicher ein zweiter Vergleicher anschließbar ist, welcher feststellt, welcher dieser beiden Speicher den höheren Wert enthält.
  5. 5. DV-Anlage nach Anspruch 4,dadurch gekennzeichnet, daß an den zweiten Vergleicher eine erste Steuerschaltung angeschlossen ist, welche in dem ausgewählten Adressenraum eine Schreiboperation zuläßt, sofern der Inhalt des vierten Speichers höher ist als der des dritten Speichers, d.h. WR ist größer als EAR.
  6. 6. DV-Anlage nach Anspruch 4,dadurch gekennzeichnet, daß an den zweiten Vergleicher ein erster Signalgenerator angeschlossen ist, welcher ein Schreibübertretungs-Ausnahmesignal erzeugt, falls der Inhalt des vierten Speichers niedriger ist als der des dritten Speichers, d.h. WR ist kleiner als EAR.
  7. 7. DV--Anlage nach Anspruch 6, dadurch gekennzeichnet, daß ein an den zweiten Vergleicher angeschlossener fünfter Speicher ein logisches Schreiberlaubnissignal WP speichert, welches, wenn es den Wert "1" hat, eine Schreiboperation im ausgewählten Adressenraum zuläßt.
  8. 8. DV-Anlage nach Anspruch 7,dadurch gekennzeichnet, daß an den fünften Speicher eine zweite Steuerschaltung angeschlossen ist. welche in dem ausgewählten Adressenraum eine Schreiboperation zulaßt, wenn das iiri fünften Speicher enthaltene Signal den Wert "1" hat.
    50982 6/0884
  9. 9. DV-Anlage nach Anspruch 8, dadurch gekennzeichnet, daß an die zweite Steuerschaltung ein zweiter Signalgenerator angeschlossen ist, welcher ein Schreibübertretungs-Ausnahmesignal erzeugt, falls das im fünften Speicher enthaltene Signal den Wert "O" hat.
  10. 10. DV-Anlage nach Anspruch 2 und 3 oder einem der folgenden Ansprüche, dadurch gekennzeichnet, daß ein sechster Speicher für eine dem für die Ausführung einer Operation im ausgewählten Adressenraum erforderlichen Mindestprivileggrad entsprechende Maximalringnummer MAXR vorgesehen und an diesen,sechsten Speicher sowie den dritten und vierten Speicher ein dritter Vergleicher angeschlossen ist, welcher feststellt* ob die Maximalringnummer MAXR größer oder gleich der effektiven Adressringnummer EAR und diese größer oder gleich der Schreibringnummer WR ist, d.h. WR^ EAR a MAXR.
  11. 11. DV-Anlage nach Anspruch 10, dadurch gekennzeichnet, daß an den dritten Vergleicher eine dritte Steuerschaltung angeschlossen ist, welche zuläßt, daß der ausgewählte-Prozeß im· ausgewählten Adressenraum eine Operation ausführt, sofern WR^ EAR^MAXR.
  12. 12. DV-Anlage nach Anspruch 11,dadu.rchgekennzeichnet, daß an den dritten, den vierten und den sechsten Speicher ein vierter Vergleicher angeschlossen ist, welcher feststellt, ob die Bedingung WR ^ EAR ^ MAXR nicht erfüllt ist, d.h. WR £■ EAR^ MAXR.
  13. 13. DV-Anlage nach Anspruch 12, dadurch gekennzeichnet, daß ein dritter Signalgenerator an den vierten Vergleicher angeschlossen ist und ein Ausführungsaus-· nahmesignal erzeugt, falls WR^ EAR ^.MAXR.
  14. 14. DV-Änlage nach Anspruch 13, d a:d u r c h gekennzeichnet, daß an den dritten Vergleicher eine vierte Steuerschaltung angeschlossen ist, welche die Durchführung einer Operation Im ausgewählten Adressenraum verhindert·, falls
    5 0 9 8 2 S / 0 8 8 4 :.
    WRi-EARi*. MAXr.
  15. 15. DV-Anlage nach Anspruch H, dadurch gekennz ei ch η e t., daß ein siebenter Speicher für eine Ausführungserlaubnissignal EP vorgesehen ist, welches, wenn es den Wert "1" hat, die Ausführung einer Operation im ausgewählten Adressenraum zuläßt.
  16. 16. DV-Anlage nach Anspruch 15-, d a d u r c h g e k e η η zeichnet, daß an den siebenten Speicher eine fünfte Steuerschaltung angeschlossen ist, welche zuläßt, daß der ausgewählte Prozeß im ausgewählten Adressenraum eine Operation ausführt.
  17. 17. DV-Anlage nach Anspruch 15 und 16/ dadurch g e k e η nzeichnet, daß an den siebenten Speicher eine erste Sperrschaltung angeschlossen ist, welche die Ausführung einer Operation im ausgewählten Adressenraum verhindert, wenn das Ausführungserlaubnissignal EP den Wert "O" hat.
  18. 18. DV-Anlage nach Anspruch 17, dadurch gekennzeichnet, -daß ein vierter Signalgenerator an die Sperrschciltung angeschlossen ist und ein Ausübungsausnahmesignal erzeugt, falls das Signal EP den Wert "0" hat.
  19. 19. DV-Anlage nach Anspruch 2 oder einem folgenden, dadurch gekennzeichnet, daß ein achter Speicher für eine den für das Ausspeichern (Lesen) aus dem ausgewählten Adressenraum erforderlichen Minimalprivilegrang darstellende Leseringnummer RD vorgesehen ist und daß an diesen und den dritten Speicher ein fünfter Vergleicher angeschlossen ist, welcher feststellt, der Inhalt welches der beiden genannten Speicher den höheren Wert hat.
  20. 20. DV-Anlage nach Anspruch 19,dadurch gekennze lehnet, daß an den fünften Vergleicher eine sechste; Steuerschaltung angeschlossen ist, welche ein Lesen im
    BO9826/0884
    BAD ORIGINAL
    ausgewählten Adressenrauin zuläßt, sofern der Inhalt des achten "Speichers größer ist als der des dritten Speichers, d.h. RD dot größer als EAP.
  21. 21. DV-Anlage nach Anspruch 20, d a d u r c h g e k e η η ~ zeichne t, daß an den fünften Vergleiche!: ein fünfte]." Signalgenerator angeschlossen ist, v/elcher eine Leseübextretungs-Ausnahmesignal erzeugt, falls der Inhalt des achten Speichers kleiner ist als der des dritten Speichers, d.>h. IUD ist kleiner als EAR4
  22. 22. DV-Anlage nach Anspruch 21 , d a d u r c h gekennzeichnet, daß ein sechster Vergleicher an den .zweiten und den dritten Speicher angeschlossen ist und feststellt, ob der Inhalt des dritten Speichers gleich dem des zweiten Speichers ist.
  23. 23. DV-Anlage nach Anspruch 22, dadurch ge.kennzeich net, daß an den sechsten Vergleicher eine siebente Steuerschaltung angeschlossen ist, welche das Leseübertretungs-Ausnahmesignal übersteuert, falls RD gleich PRN ist.
    24- DV-Anlage nach einem der Ansprüche 1 bis 23, d a d u r c h gekennzeichnet, daß der Adressenraura in vier Ringzonen unterteilt ist.
    509826/0884 bad ORIGINAL
    Leerserte
DE2458065A 1973-12-12 1974-12-07 Datenverarbeitungsanlage Expired DE2458065C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US424239A US3916385A (en) 1973-12-12 1973-12-12 Ring checking hardware

Publications (2)

Publication Number Publication Date
DE2458065A1 true DE2458065A1 (de) 1975-06-26
DE2458065C2 DE2458065C2 (de) 1985-03-14

Family

ID=23681963

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2458065A Expired DE2458065C2 (de) 1973-12-12 1974-12-07 Datenverarbeitungsanlage

Country Status (7)

Country Link
US (1) US3916385A (de)
JP (1) JPS5092646A (de)
CA (1) CA1023870A (de)
DE (1) DE2458065C2 (de)
FR (1) FR2254826B1 (de)
GB (1) GB1495717A (de)
IT (1) IT1024384B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2810421A1 (de) * 1977-03-24 1978-10-05 Ibm Speicherschutzeinrichtung
DE2923738A1 (de) * 1979-06-12 1980-12-18 Joepgen Hans Georg Vorkehrungen gegen die unbefugte entfernung urheberrechtlicher vermerke aus programmen in hoeheren programmiersprachen wie basic und focal

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2258112A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US4300192A (en) * 1974-04-18 1981-11-10 Honeywell Information Systems Inc. Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4024508A (en) * 1975-06-19 1977-05-17 Honeywell Information Systems, Inc. Database instruction find serial
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4042912A (en) * 1975-06-19 1977-08-16 Honeywell Information Systems Inc. Database set condition test instruction
US4025901A (en) * 1975-06-19 1977-05-24 Honeywell Information Systems, Inc. Database instruction find owner
FR2323190A1 (fr) * 1975-09-05 1977-04-01 Honeywell Bull Soc Ind Dispositif pour proteger l'information contenue en memoire dans un calculateur numerique
US4099231A (en) * 1975-10-01 1978-07-04 Digital Equipment Corporation Memory control system for transferring selected words in a multiple memory word exchange during one memory cycle
US4035779A (en) * 1976-04-30 1977-07-12 International Business Machines Corporation Supervisor address key control system
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
US4079453A (en) * 1976-08-20 1978-03-14 Honeywell Information Systems Inc. Method and apparatus to test address formulation in an advanced computer system
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4103326A (en) * 1977-02-28 1978-07-25 Xerox Corporation Time-slicing method and apparatus for disk drive
US4249241A (en) * 1978-10-23 1981-02-03 International Business Machines Corporation Object access serialization apparatus for a data processing system
JPS5847799B2 (ja) * 1978-10-27 1983-10-25 工業技術院長 メモリ保護装置
US4328542A (en) * 1979-11-07 1982-05-04 The Boeing Company Secure implementation of transition machine computer
US4358829A (en) * 1980-04-14 1982-11-09 Sperry Corporation Dynamic rank ordered scheduling mechanism
US4360869A (en) * 1980-04-15 1982-11-23 Honeywell Information Systems Inc. Control store organization for a data processing system
EP0150522B1 (de) * 1980-04-25 1989-08-30 Data General Corporation Datenverarbeitungssystem mit hierarchischem Speicherschutz
US4355306A (en) * 1981-01-30 1982-10-19 International Business Machines Corporation Dynamic stack data compression and decompression system
US4519032A (en) * 1982-06-09 1985-05-21 At&T Bell Laboratories Memory management arrangement for microprocessor systems
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
IN165278B (de) * 1984-09-21 1989-09-09 Digital Equipment Corp
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
JPS625441A (ja) * 1985-02-18 1987-01-12 Nec Corp 情報処理装置
US4678996A (en) * 1985-05-07 1987-07-07 Picker International, Inc. Magnetic resonance imaging method
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4703417A (en) * 1985-06-27 1987-10-27 Honeywell Information Systems Inc. Call instruction for ring crossing architecture
US4866599A (en) * 1985-06-27 1989-09-12 Bull Hn Information Systems Inc. Call instruction, return instruction and trap procedure for ring crossing architecture
US5053951A (en) * 1986-12-23 1991-10-01 Bull Hn Information Systems Inc. Segment descriptor unit for performing static and dynamic address translation operations
US4975878A (en) * 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
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
CA2018319C (en) * 1989-06-30 1997-01-07 Larry Alan Wehr Method of providing mandatory secrecy and integrity file security in a computer system
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US5784615A (en) * 1994-12-13 1998-07-21 Microsoft Corporation Computer system messaging architecture
EP0752664A3 (de) * 1995-07-07 2006-04-05 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Meldung der Datenübertragung zwischen Hardware und Software
US6105132A (en) * 1997-02-20 2000-08-15 Novell, Inc. Computer network graded authentication system and method
US7216345B1 (en) * 2000-04-07 2007-05-08 Hall Aluminum Llc Method and apparatus for protectively operating a data/information processing device
WO2006026484A2 (en) * 2004-08-31 2006-03-09 Ivivity, Inc Independent hardware based code locator
US9390031B2 (en) * 2005-12-30 2016-07-12 Intel Corporation Page coloring to associate memory pages with programs
US20070234330A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation Prevention of executable code modification
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US9530000B2 (en) * 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security

Family Cites Families (3)

* 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
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICHTS-ERMITTELT *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2810421A1 (de) * 1977-03-24 1978-10-05 Ibm Speicherschutzeinrichtung
DE2923738A1 (de) * 1979-06-12 1980-12-18 Joepgen Hans Georg Vorkehrungen gegen die unbefugte entfernung urheberrechtlicher vermerke aus programmen in hoeheren programmiersprachen wie basic und focal

Also Published As

Publication number Publication date
JPS5092646A (de) 1975-07-24
DE2458065C2 (de) 1985-03-14
AU7628874A (en) 1976-06-17
US3916385A (en) 1975-10-28
GB1495717A (en) 1977-12-21
IT1024384B (it) 1978-06-20
CA1023870A (en) 1978-01-03
FR2254826B1 (de) 1978-06-23
FR2254826A1 (de) 1975-07-11

Similar Documents

Publication Publication Date Title
DE2458065A1 (de) Datenverarbeitungsanlage mit sicherung der daten gegen unberechtigten zugriff
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE2716051C2 (de) Datenverarbeitungsanlage mit einem oder mehreren Prozessoren mit mindestem einem Ein-/Ausgabekanal mit mehreren Unterkanälen und mit einer Speicheranordnung, bei der zum Speicherzugriff Schlüssel verwendet werden
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
AT389772B (de) Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3048365C2 (de)
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE2414311A1 (de) Speicherschutzeinrichtung
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
CH619309A5 (de)
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE112013004065B4 (de) Integrierte Schaltung
DE10297494T5 (de) System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit
DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
EP1639475A2 (de) Prozessorarchitektur für exakte zeigeridentifizierung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

8339 Ceased/non-payment of the annual fee