DE2458065C2 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE2458065C2
DE2458065C2 DE2458065A DE2458065A DE2458065C2 DE 2458065 C2 DE2458065 C2 DE 2458065C2 DE 2458065 A DE2458065 A DE 2458065A DE 2458065 A DE2458065 A DE 2458065A DE 2458065 C2 DE2458065 C2 DE 2458065C2
Authority
DE
Germany
Prior art keywords
memory
register
ring
segment
signal
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.)
Expired
Application number
DE2458065A
Other languages
English (en)
Other versions
DE2458065A1 (de
Inventor
Benjamin S. Boston Mass. Franklin
Ming H. Norristown Pa. Louie
Pravinsinh L. Blue Bell Pa. Parmar
Richard P. N. Billerica Mass. Wilder jun.
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 Inc
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 Inc filed Critical Honeywell Information Systems Inc
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

19. DV-Anlage nach Anspruch 18, dadurch gekennzeichnet, daß ein sechster Vergleicher (507) an den zweiten (501) und den dritten (502) Speicher angeschlossen ist und feststellt, ob der Inhalt des dritten Speichers gleich den des zweiten Speichers ist.
20. DV-Anlage nach Anspruch 19, dadurch gekennzeichnet, daß an den sechsten Vergleicher (507) eine siebente Steuerschaltung (508) angeschlossen ist, welche das Leseübertretungs-Ausnahmesignal erzeugt, falls RD gleich PRN ist.
21. DV-Anlage nach einem der Ansprüche 1 bis 20, dadurch gekennzeichnet, daß der Adressenraum in vier Ringzonen unterteilt ist.
Die Erfindung befaßt sich mit der Sicherung der in einer Datenverarbeitungsanlage anfallenden und/cder gespeicherten Daten und Informationen gegen unberechtigten Zugriff. DV-Anlagen haben sich von einfachen, im Stapelbetrieb arbeitenden Systemen, 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 Gemeinschaft 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über hinaus auch für die erforderliche Unversehrtheit und Zuverlässigkeit des Systems, indem die Ausbreitung von Fehlern durch absichtliche 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 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 R. M. Graham, veröffentlicht in der Zeitschrift CACM, Mai 1968. beschrieben. Eine dieser Methoden beschränkt den Zugriff zu nicht aktiven Informationen in verschiedenen Speichern.edien durch eine Betriebsartumschaltung für die Ausführung von Befehlen in der einen oder einen zweiten Betriebsart, nämlich Hauptbetrieb oder Nebenbetr:":b. 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 privilegierter! Befehle zur Durchführung gelangen. Zum Schutz aktiver Informationen im Arbeitsspeicher ist dieser ferner derart unterteilt, daß bei Hauptbetrieb der gesamte Speicherinhalt zugär.gig ist, während bei !Nc-benbeirieb nur ein Tei! hiervon. Zur Festsetzung der Grenzen der Zugängigkiit dien?, ein Speiche! grenzregister in Verbindung mit der Betriebsartumschaltung. Diese Art von Speicherschutz ist für heu'.igc Systeme mit Mehrfachprogrammierung unpassend, weil keine Möglichkeit der Abstufung der Privilegierung 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. 5c 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, SchreibANichtschreibbetrieb und Ausführung/Nicht-Ausführung. Diese Methode des Schutzes der Vertraulichkeit und Unversehrtheit von Informationen berücksichtigt jedcch nicht den Benutzer der Information. Das Privileg ist nicht auf den Benutzer abgestimmt, sondern abhängig von drr Art dc:r Information. Wenn folglich ein Benutzer überhaupt Zugriff zu einem Segment hat, so hat er gleichzeitig Zugriff zu allen anderen Benutzern, welche zu diesem Segment Zugriff haben. In einem Aufsalz »Address Mapping and the Control of Access in an Interactive Computer« von David C. Evans und lean Yeves LeClerc, veröffentlicht in S|CC 1967, wird dieses Problem behandelt und eine Lösung versucht. Auf Se'.ie 23 dieses Aufsatzes wird gesagt, t>o d.iU der Benutzer einer DV-Anlage willkürlich mit der Ankige, seirem eigenen Rechenprozeß und .""nderen Benutzern in kontrollierter Weise in Verbindung treten können sollte. Er sollte Zugriff zu einem großen Informationsspeicher und Riickgewinnungssystem, 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 es teilhaben lassei können, die eine gesteuerte Hindung und Zusammenarbeit zwischen verschiedenen Aufgaben bewirken. Diese Möglichkeit verringert den Aufwand zur Herstellung, zum Testen und zum Modifizieren von Programmen und err.iiglicht 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 Zugriffsrechte in den ablaufenden Prozeß vor. Das Segment bildet weiterhin die Informationseinheit, zu der der Zugriff gesteuert wird; 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 Aufbiiu und das Fortschreiten der jedem Segment zugeordneten Tabelle der Zugriff-Steuermcrkmalc eine beträchtliche Arbfit 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 miteinander in Beziehung stehende Prozeduren in Prozedur-Gruppen zusammengefaßt, 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 Ziigriff-Steuermerkmalcn, 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 Zugrifissteuerung anhand von Prozedurgruppen recht schwierig werden.
Um diese Schwierigkeiten mit der Gruppentechnik zu beseitigen, wurde ein Ringkon/ept entwickelt. Dieses faßt die Prozedurgruppen in Ringen zusammen, die unzweideutig gemäß einem zunehmenden Grad oder R.ing 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 King die niedrigste /.ahi und jeder nachfolgende größere Ring eine zunehmend größer werdende Zahl hat, können unterschiedliche Privilcgstufen 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 V/eise haben.
Diese Änderung des Ranges oder der Privilegstufe mit einer Änderung der Ringnummer beseitigt die den Prozedurgruppen anhaftenden Mängel.
Das vom Massachusetts Institute of Technology zusammen mit eier Firma General Electric Co. und anderen entwickelte System MULTICS (Multiplexed Information and Computing Service) benutzte als erstes die Ringtheorie zum Ιηίυ, nationsschutz in Form von Software auf einem modifizierten Honeywell-Rechner 635 und später auf einem Honeywell-Rechner 645. Das MULTICS-Verfahren benutzt 54 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 Systems in Kapitel 4 des Buches »The Multics System; An Examinations 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 Ringschiit/methodc, sondern eine sogenannte Ringkiaffirner-Scirützrncthode, wobei die Zugriffsberechtigungen eines Benutzers in bezug auf ein gegebenes Segment in einem Zugriffs-
modus und einer Dreiergruppe von Ringzahlcn (r 1. r 2, r3), genannt 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 System Inc. werden die Regeln und Bedingungen für die Benutzung und die Änderung von Ringen wie folgt beschrieben.
Regeln. Die Ringklammern (r\, r2, r3). welche den Beziehungen r 1 <r2 <r3 genügen müssen und wobei alle Ringintervalle inklusiv sind, werden wie folgt erläutert:
a. Enthält der Zugriff-Modus des Benutzers den Modus SCHREIBEN, so kann er in den Ringen (0, r 1) in das Segment einspeichern.
b. Weist der Zugriff-Modus des Benutzers den Modus LESEN auf, so kann er in den Ringen (0, rl) aus dem Segment Informationen entnehmen.
c. Enthält der Zugriff-Modus des Benutzers den Befehl AUSFÜHRUNG, so kann er
1. in den Ringen r 1. r 2) das Segment aufrufen ohne die Ringe zu ändern:
2. in den Ringen {0, rl — 1) das Segment aufrufen und auf den Ring r 1 umschalten;
3. in den Ringen fr 2+ l.r3) das Segment aufrufen und auf den Ring r 2 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.
d. Alle Ringumschaltungen müssen unter der Überwachung der Zugriffsteuereinrichtung 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 Systciupro/.ediir die Hingklnmmcrn (0, 0. 0) haben und somit nur im Ring 0 aufrufbar und ι.. .iiisfiihrbiir scm.
Linem Benutzer, der fur ein Datensegmeiu Lese- und Schreiberiaubnis hat. können die Ringkiarnmern (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, indem er Leseerlaubnis hat, nämlich im Ring(0, b).
Aufruf zum Ringwechsel. Die Regeln sehen vor, daß zu jedem Prozedursegment, für welches 0 </· 1 ist.
Zugang über einen Auswärts-Aufruf (z. B. vom Ring 0) besteht und daß jene Prozedursegmentc für die r 2 < r 3
gilt. Torsegmente darstellen und man folglich in sie über einen F.inwärts-Aufruf (beispielsweise vom Ring r3)
gelangen kann.
l-jn [-"inwärts- Aufruf folgt, wenn eine Prozedur in einem iiul.leren Ring vorübergehend den Ik'rcchtigimgsgrnd -. '
ihres Ablaufs erhöhen möchte, um einen Vorgang (job) duivh/ufOhiTii. der eine solche erhöhte Berechtigung
erfordert. Beispielsweise kann eine Benutzerprozedur eine Systcmprozedur im Ring 0 aufrufen. Ein solcher
Einwiirts-Aufruf bedeutet, daü eine geringere Berechtigung den Benutzer mit äußerer Berechtigung kommandier Die einzigen Segmente, welche über Einwärts-Aufrufe erreicht werden können, sind deshalb die Torseg- : incnic. Aufgabe eines Torsegments ist es, die Zulässigkeit eines Einwärts-Aufrufes zu überprüfen, um festzustel- io i len. daß der Aufrufer nicht durch Zufall oder infolge der Konstruktion ein Torsegment angerufen hat, welches ; unzuständig ist. Ob ein Segment ein 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 ablaufende Prozedur eine Aufgabe erledigen fej
möchte, welche mit der vergleichsweise schwächeren Berechtigung eines weiter außenliegenden Ringes ausge- 15
führt werden kann oder muß. Beim System MULTICS beispielsweise läuft ein Prozeß im Ring 0 an aber ruft
einen Benuizerring auf, wenn er bereit ist. die Arbeit des Benutzers auszuführen. In diesem Fall muß der Prozeß i
auswärtsrufen, weil eine Grundbedingung des MULTIC-Svslems die Ausführung von Benutzeraufträgen im '
Ring 0 verbietet. Bei einem anderen Beispiel kann ein Programmierer mit einer Anzahl mehr oder weniger
jiorrigiiTipr Prozeduren mehrere Ringe benutzen und hall die mehr korrigierten Prozeduren und ihre Daten ?n
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 wurde zuerst in Form von Software mit 64 getrennten Ringen
eingeführt. Nachträglich wurde versucht, eine geeignete Hardware für diese Ringschutzmethode zu schaffen. 25
Der Honcywell-Rcchnc-645 stellt einen ersten solchen Versuch dar. Er weicht insofern von den beschriebenen
Methoden ab. als er eine 2-Ring-Maschine ist statt einer b4-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 645 enthält i
keine Informationen über Ringe; insbesondere enthält es keine Ringklammern. Es enthält jedoch entweder jo i
a. Eine Zugriff-Modusinformation, welche möglicherweis·: einen der beiden Descriptoren enthält
— erreichbar nur im Hauptmodus, .;
— Hauptmodus Prozedur
b. Die Bestimmung eines von acht speziell gerichteten Fehlern (nicht programmierten Sprüngen), welcher 35
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- j
Wort SDW eine Hauptmodus-Prozedur anzeigt. Die zentrale Recheneinheit kann während der Ausführung
einer Nebenmodus-Prozedur in einen Haupimodus eintreten, wenn 40 .,
— wenn ein Fehler auftritt, '■]
— eine Unterbrechung vorgenommen wird. ;
Während des Adressierzyklus interpretiert die Zugriff-Steuereinheit des Rechners 645 das Segment-Descrip- 45 ;i tor-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 Fehlersi- ί-j gnal. 50 :!
b. Gestattet andererseits das Segment-Descriptor-Wort den gewünschten Zugriff nicht, so entsteht die Feh- ■ lersignalzugriff-Übertretung. \i
c. Läßt das Segment-Descriptor-Wort den gewünschten Zugriff zu. so wird dieser ausgeführt. jjj
Tritt ein Fehler auf, so geht der Rechner 645 in den Hauptmodus über und überträgt die Steuerung auf die 55 f!
zugeordnete Haiuptmodus-Fehlerverarbcitungsprozedur (siehe ACCESS CONTROLTOTHE MULTICS VlR- ί
TUAL MEMOFiY a.a.O. Seiten 157/158). i
Eine andere Veröffentlichung »A Hardware Architecture for Implementing Protecting Rings« von Michael
Dr. Schroeder und Jerome H. Salzer, veröffentlicht in COMMUNICATIONS OFTHE ACM. März 1972. Band I
15, Heft 3, S. 157—170 behandelt die Grundlagen und die Theorie des Ringschutzes und beschreibt eine 60 ü
Hardware-Ausführung für den Ringschutz. -j
Da beim System MULTICS und beim Honeywcll-Rechner 645 der Ringschutz im wesentlichen in Form von i
Software realisiert wurde, war ein erheblicher Überwachungsaufwand für das Betriebssystem erforderlich, 1
insbesondere wenn ein Aufruf nach höherer oder niedrigerer Berechtigung durch Überspringen auf eine |
Überwachungsprozedur erfoigte. Erforderlich war eine Zugriffsteuerung, weiche die funktionell Fähigkeit zur 65 |
Ausübung des Informationsschutzes hatte, die möglichst einfach in Betrieb und im Aufbau und der Wartung ist S
und die Programmiervielfalt nicht einschränkt. Das Honeywell-Rechnersystem 6000 erfüllt diese Anforderungen 1
durch Verwirklichung des Ringschutzes in Form von Hardware. Hierfür war eine mit der Segmentadressier- 1
JO
Hardware integrierte besondere Zugriffsprüflogik vorgesehen, welche jede virtuelle .Spcichcrrefcrenz bestätigt, sowie einige Sonderbcfchlc für den Wechsel des Rings der Openitionsausführung. |edoch 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 Ringschu'.z-5 funktion durch Übergabe der Steuerung auf eine Überwachungseinrichtung auszuüben.
Aufgabe der Erfindung ist es folglich, eine Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruchs I anzugeben, welche den Ringschutz weiter verbessert und weitgehend in Form von Hardware realisiert, wobei die funktioneile Fähigkeit der DV-Aniage, ihre Wirtschaftlichkeit, ein möglichst einfacher Aufbau und die gewür ,chte Programmierungsvielfältigkeit erhalten bleiben.
IO 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 Lcse/Schreibmodus in vorgegebenen Ringen ausgeführt werden kann, während eine Prozedur im Ausführungsmodus, also zur Ausführung von Operationen in 15 vorgegebenen Ringklammern ausgeführt werden kann.
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 Privilegstufe 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 unterein- 20 nndpr «tnrpn ader in nnprlniihtnr Wpisp rlpn /iiyctcütcn Adrcsscnrnimi gemeinsam benutzen können. Die Adressierbarkeit des Speichers ist entsprechend den einzelnen Privilcgstufcn 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 Adresscnrauni der verschiedenen Prozesse im System entsprechend der Privilegstufe zuordnen. Eine Prüfeinrichtung überprüft, daß die von einem Prozeß benutzte Adresse 25 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
F i g. I ein Blockdiagramm einer Datenverarbeitungsanlage bei Anwendung der Erfindung,
30 F i g. 2 eine schematische Darstellung der verschiedenen Privilegstufen,
F i g. 3 ein Flußdiagramm des bei der Erfindung benutzten segmentierten Adressenschemas,
die F i g. 4A bis 4J verschiedene Hardwarestrukturen,
F i g. 5 eine schematische Darstellung der Rechner-Hardware für den Ringschutz.
F i g. 6 eine schematische Darstellung der Rechner-Hardware für die segmentierte Adressierung,
35 die F i g. 7a bis 7h sowie die F i g. 8a bis 8d logische Schaltkreise aus der Hardware für den Ringschutz; und
die F i g. 9a bis 9k die Erklärung für die in den Zeichnungen benutzten Symbole.
Eine Anlage mit Mehrfachprogrammierung und Mehrfachvcrarbeitung hat in einer gegebenen Zeit viele ü Programme im Speicher. Durch das Betriebssystem und die Rechnereinrichtung erfolgt eine dynamische Zuord-
Jf nung des Speicherprogramms. Da der Umfang der Programme unterschiedlich ist. ordnet das Betriebssystem
'g 40 ihm Segmente unterschiedlicher Größe zu und hat die Möglichkeit, die Speicherplätze während eines Profi grammlaufs umzustrukturieren. Außerdem erzeugt und streicht er die Software-Prozesse innerhalb des Systems. M Ein Prozeß ist hierbei eine gesteuerte Ausführung von Befehlen ohne Gleichzeitigkeit. Ein Prozeß ην' einem 1 neuen virtuellen Speichrr entsteht für jeden Benutzer, wenn er sich dem System anschließt, und der Prozeß wird H dem Namen des Benutzers zugeordnet. Somit kann der Prozeß als Vertreter des Benutzers gelten, durch den der |j 45 Benutzer auf im System gespeicherte Informationen Bezug nimmt und diese verarbeitet. Ein Prozeß kann sich zu M einer gegebenen Zeit in einem von vier möglichen Zuständen befinden: Ablaufend, vorbereitet, wartend oder \:3 ausgesetzt. Die Hardware erkennt diese vier möglichen Prozeßzuständc und führt verschiedene Firmware-Pror| zeduren durch, die eine Zuteilung des Prozesses, eine Änderung des Zustands und die Aufrechterhaltung der auf te dem Prozeßzustand basierenden Datenstrukturen bewirken. Ein Prozeß befindet sich im ablaufenden Zustand, |i 50 wenn er mit der Zentraleinheit CPU zusammenarbeitet. Dieser Zustand beinhaltet die Versorgung der Zentralgj einheit CPU mit Adreßraum (Segmenttabelle) und einem Startsignal. Die Zentraleinheit führt dann die Befehle I in den Prozedursegmenten des Prozesses aus. Der Prozeßname (logische Adresse) des Prozeßsteuerblocks I verbleibt im Prozeßablaufwort in der Systembasis. Der vorbereitete Zustand eines Prozesses entspricht weitgeti hend dem ablaufenden Zustand mit Ausnahme, daß der Prozeß keinen Zugang zur Zentraleinheit hat. Der fk 55 Prozeß im vorbereiteten Zustand wartet, zusammen mit anderen vorbereiteten Prozessen und dem laufenden Yi Prozeß, auf die Zentraleinheit. Ein Prozeß befindet sich im Wartezustand, wenn er ohne das Eintreten eines ;a 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 j| zusammen mit anderenProzessen im Wartezustand auf ein bestimmtes Ereignis. Ein ausgesetzter Prozeß ;g 60 schließlich ist ein vom Programm her für eine Zeit angehaltener Prozeß, der später wieder aufgenommen fei werden kann. Die Entscheidung, einen Prozeß anzuhalten und später wieder weiterlaufen zu lassen, liegt [i außerhalb des Prozesses selbst. Somit ist ein ausgesetzter Prozeß nicht aktiv und kann weder irgendwelche P-- eintretende Ereignisse mitgeteilt erhalten noch die Zentraleinheit benutzen. Prozesse können vom einen in einen jy anderen Zustand absichtlich durch einen Schritt während des laufenden Prozesses überführt werden oder ψ b5 unfreiwillig durch die Schritte anderer Prozesse. Sie benutzen Prozeduren, die Software-Funktionen oder g Algorithmen sind, und von einer Recheneinheit ohne <~v,eichzeitigkeit ausgeführt werden. Die gemeinsame Benutzung von Informationen zwischen den Prozeduren findet in zwei Ebenen statt. Die eine ist die Ebene von Informationen, die in einem Sekundärspeicher liegen und durch eine Datei oder die Daten in einer Datenbank
^':b='det ist. Ts ist Aufgabe der DatenvcrwalHing. diese Form der gemeinsamen Informationsbenutzung unter Wahrung der Vertraulichkeit und Unversehrtheit der betreffenden Daten zu gewährleisten und gleichzeitig Systemstörungen, wie einen Sysiemzusammcnbruch, den Verlust der Datenbank oder das Festfahren des Systems zu verhindern.
Die andere Ebene der gemeinsamen Datcnbcniit/iing liegt in der Ausführung und tritt im virtuellen Speicher auf. In dieser Ebene liegt die gemeinsame Bcnut/iing immer im Rang eines Segments, entweder eines Datensegments oder eines Prozcdiirsegments. Sie hat drei grundlegende Formen:
(1) Die unmittelbare gemeinsame Benutzung von Segmenten der Prozesse in einer Prozeßgruppe;
(2) die direkte gemeinsame Benutzung von Systcmsegmenicn aller oder einer Untergruppe der Prozezesse in in einer Maschine;
(J) 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 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 Cruppe zugängig ist.
Die zweite Form der gemeinsamen Benutzung hangt mit dem Prinzip zusammen, daß die Software des Betriebssystems als Teil des Bcnutzerpro/csses ablaufen soll, wenn immer dies möglich ist, weil dies zu einer beträchtlichen Verzögerung 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 /ugängig, d. h. sie befinden sich im Adressenraum jedes Prozesses. Die gemeinsame benutzte Einheit ist wiederum das Segment und der Schutz wird durch die Ringmeihode erreicht. Diese Form der gemeinsamen Benutzung ist nicht selektiv, d.h. alle Systemsegmente sind von allen Prozessen her adressierbar. Die dritte Form der gemeinsamen Benutzung erlaubt eine selektive Benutzung. Dies ist besonders für solche Teile des Betriebssystems, 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 d?.s 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 Pro/essen benutzt; diese werden die systemglobalen Segmenitabeiien genannt. Eine andere Gruppe von Tabeiiennummern sind für jene Segmennabeiien reserviert, welche innerhalb einer Gruppe gemeinsam benutzt werden, und heißen die örtlichen Prozeßgruppen-Segmenttabcllen. 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 erste Form der gemeinsamen Benutzung wird durch Einfügen der gemeinsam zu benutzenden Segmente in die örtliche Prozeßgruppcn-Segmcnttabellen bewerkstelligt; die zweite Form durch Eingabe der gemeinsam zu benutzenden Segmente in die systemglobalen Tabellen und die dritte Form durch die Ben».'· T.ung 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 F.inrichtung 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, weiches eine Überprüfung durchführt, um Adressenkonflikte zu vermeiden. Die Segmentierung schützt die Benutzerprogramme gegeneinander und außerdem das Betriebssystem gegenüber Benutzerprogrammen. Jedoch sind Segmente, die von mehreren Prozessen gemeinsam benutzt werden, gegen mißbräuchliche Benutzung in einem dieser Prozesse 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. F i g. 2). Diese vier Ringe oder Privilegstufen sind mit den ganzen Zahlen 0 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 innere.ι 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 einem ä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. Zum einen 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 Prorzdur 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 Parameter zur Verfügung stellt. Es ist dann möglich, daß eine Prozedur 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 verweiger' 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. Statt dessen 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 dc-s Lesezugriffs sein. Eine Anwendung dieses Falles ergibt sich für ein Prozedursegment, welches nur im Ring 0, 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 zugeordnet. Ring 0, der Ring mit dem höchsten Privileg, ist auf jene Betriebssystemsegmente beschränkt, welche für den Betrieb des gesamten Systems kritisch sind. 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
•to 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 Programms 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, u. ährend die Benutzer Ring 4 besitzen. Auf diese und andere Weise sind beide Ringe in ihrer Anwendung flexibel. Die allgemeinen Regeln des Ringsystems besagen
1. Eine Prozedur in einem inneren Ring, wie dem Ring 2 in Fig. 2 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 ä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 Zugrifl 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
I. 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 Ring 3, abzweigen.
3. ledern Daicn 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, in dem eine
f> Prozedur ausgeführt werden kann, wenn sie Daten entweder im Lese- oder im Schreibmodus benötigt.
Bei jeder Ausführung eines Prozedurbcfehls wird die Ringnummer dieser Prozedur, genannt der effektive Adreßring EAR. geprüft, durch Vergleich mit den Ringnummern, welche den die erforderlichen Daten enthalten-
den Segmenten zugeordnet sind. Der effektive Adreßring EAR entspricht der maximalen Anzahl von Prozeßringnummern 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 einen maximalen Schreib-Ringwert 1. kann eine im Ring 3 ablaufende Benutzerprozedur die Tabelle lesen, jedoch nicht durch Einschreiben neuer Werte 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 Benutzerprozeduren den Dienst des Betriebssystems zu ermöglichen und zur Erzielung einer Modularstruktur innerhalb des Betriebssystems. Ein Prozedur-Aufruf wird durch einen Befehl sowie durch eine Stapel genannte Größe ausgelöst. Ein Stapel ist dabei ein Mechanismus, welcher Daten aufnimmt, speiche« und ihre Wiedergewinnung ermöglicht nach dem Prinzip, daß die zuletzt einlaufenden Daten zuerst ausgegeben werden. Stapel bestehen aus Spezialsegrr.enten, 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, und die nachfolgenden Rahmen werden nacheinander :s geladen. Der letzte geladene Rahmen bildet die Spitze des Stapels. Ein T-Register 114 (vgl. Fig. i) steilt die Spitze des Stapels für jeden geraden 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 Kommunikationsbereich, in denen zwischen den Prozeduren Parameter eingegeben werden. Vor einem Prozedur-Aufruf muß der Benutzer jene Register angeben, weiche er zu erhalten wünscht, und er muß in den Kommunikationsbereich jene Parameter laden, welche der aufgerufenen Prozedur zugeführt werden sollen. Wenn dieser Aufruf erfolgt, so bewahrt die Hardware 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 Stapelsegments, 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 Stapelsegmente. Je ein Stapelsegment entspricht jedem Schutzring pro Prozeß. Ein Prozeßsteuerblock enthält drei Stapelbasiswörler SBW, welche auf den Beginn des Stapelsegments für die dem Prozeß zugeordneten Ringe 0. 1 und 2 gerichtet sind. Das Stapclseginent des Ringes 3 kann über einen Einwärtsanruf nicht erreicht werden, weshalb hierfür keine Stapelstartadres.se im Prozeßsteuerblock erforderlich ist.
Ocr 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 Betriebssystem-Service. Hs wird vom Betriebssystem selbst zur Erzielung einer entsprechenden Modularstruktur angewandt. Der Prozedur-Aufruf wird durch Hardware-Befehle und den Stapelmechanismus bewirkt. Die Hauptanfordcrungen an einen Prozedur-Aufruf sind
1. Oberprü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 Adressiermechanismtis;
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 STAPKL. VORBEREITEN ausgelührt. Dieser Befehl bewirkt, daß die vom Programmierer im Befehl angegebenen Register im Stapel sichergestellt werden. Es bewirkt die Sicherstcllung 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-HINGANG ermöglicht einen Prozedur-Aufruf entsprechend den obengenannten Anforderungen über die folgenden Schritte:
1. Ringüberprüfung, der Ring des Aufrufes wird überprüft, um sicherzustellen, daß er eine neue Prozedur aufrufen kann; der Aufruf muLi an eine kleinere oder gleiche Ringnummer gerichtet sein: wenn keine Ringüberschreilung aiifiritt. muß die neue Prozedur durch ein Tor 204 gemäß Fig. 2 geleitet v/erden. Die neue Ringnummer wird dann diejenige der aufgerufenen Prozedur.
2. Der Befehlszähler wird sichergestellt;
3. das Basisregister 0 (vgl Γ i g. 1) wird auf die durchzulassenden Parameter eingestellt;
4. der Kingangspunkt der aufgerufenen Prozedur wird aus dem Prozcdur-Descriptor entnommen, dessen Adresse in dem Befehl PROZEDUR-HINGANG enthalten ist;
5. eine Hinweisadressc zur Vcrbindungsinlormalion wird in das Basisregisier 7 geladen: (,5 b. die neue Prozedur wird begonnen durch Laden der neuen Ringnummcr und der Adresse des Eingangspunktes in den Befehlszähler.
Der Rest des !aufenden 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 PROZEDURENDE aus. Die Register und die Befehlszähler werden dann aus den Sicherstellungsbereichen des Stapels wieder aufgefüllt.
F i g. 1 zeigt das Blockierdiagramm einer Rechneranlage mit einem Hauptspeicher 101, der aus vier Bausteinen, aufgebaut aus Metalloxydhalbleiter-Speichcrelemcnten MOS, besteht. Die vier Spcichcrbaustcinc 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/Ausgangsslcucreinhcil IOC an ebenfalls nicht dargestellte periphere Untersysteme, wie Magnetbandeinheiten und Plallcnspcichcreinhciten, angeschlossen. Der Hauptspeicher-Sortierer ermöglicht den Zugriff zu allen vier Speicherbausteinen und deren Steuerung. Jeder Speicherbaustein enthält im typischen Fall 8 K bis 64 K Speicherplätze mit 8 Bytes pro Speicherplatz. Die Bausteine sind in Schritten von 8 K 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. 945 ns beträgt. Da der Hauptspeichersoriierer 102 Anforderungen von Speicherzyklen überlappend bedienen kann, können zur gegebenen Zeit mehrere Speicherbausteine gleichzeitig arbeiten. Die Zentraleinheit 100 und der Pufferspeicher 104 sowie die nicht dargestellte Ein/Ausgabesteuerung IOC können jeder jeweils ein Doppelwort (8 Bytes) abrufen. Bei einem Speicher/.iigriff aus der Zentraleinheit werden entweder die vier Bytes höherer Ordnung oder die vier Bytes niedrigerer Ordnung ausgewählt, und nur vier Informations-Bytes gelangen in die Zentraleinheit 100. Der Betrieb der Zentraleinheit wird von einem Festwertspeieber ROM gesteuert, welcher nachfolgend als Speichersteuerwerk 110 bezeichnet wird. Solche Steuerwerke s^d beispielsweise in dem Buch »Mikroprogramming-Principles and Practices« von Samir S. Husson, veröffentlicht 1970 durch PRENTICE HALL INC. sowie in der US-PS 36 34 883 beschrieben. Das Speichersteuerwerk 110 ist üblicherweise 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-Decodlerfunktion bewirkt eine spezielle Operation in der Zentraleinheit. Beispielsweise können die Steuerspeicher-Daten-Bits 1,2,3 r»ach ihrer Decodierung in die Form 010 eine Mj1JrO-Op-Decodierungsfunktion hervorrufen, welchen einen Obertrag 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 man Steuerspeichersortierer, welche eine spezielle Operation oder einen Befehl der Zentr&ieinheit 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 S:.uerspeicher dienen. Durch Testen bestimmter nicht dargestellter Fiip-FIops, welche durch BefehlsdecoJicfunktionen gesetzt oder rückgcsctzt werden, ist es möglich, den Betrieb des Steuerspeichers als erforderlich a; '. eine speziellere Sequenz umzusetzen. Der Steuerspeicher-Schnittstellcnadapter 109 steht in Verbindung mit dem Speichersteuerwerk 110, der Datenvcrwaltungseinheit 106, dem Adressensteuerwerk 107 und dem Rechenwerk 112 und bestimmt den Betrieb des Sieuerspcichers. Der Steuerspeicher-Schnittstellenadapter 109 enthält eine Logikschaltung zum Steuern von Speicheradressenänderungen, zum Testen, zur Fehlerprüfung und zur Erzeugung von Hardware-Adressen. Die Hardware-Adressenerzcugung wird allgemein zur Entwicklung der Startadrcssc eines Fehlcrsorticrcrs oder für die Startfolge benutzt Der Pufferspeicher 104 speichert die am meisten benutzten 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 fi 45 Seiten genannt, und jede Speicherseite enthält 32 Informationsbylcs. Eine bestimmte Seite kann mit Hilfe der S- höchstwertigen 16 Bits der Hauptspeicher adressiert werden, während die niedrigstwertigen 5 Bits zum Adres-
: sieren einer bestimmten Byte-Information innerhalb der Seile dienen. Die Seiten müssen unter Beibehaltung der
r.. 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. Gb die Information in die obere
ti so oder die untere Zeile der Spalten eingegeben wird, hängt davon ab. welche Zeile zur Verfugung steht. Folglich befinden sich im Pufferspeicher für jede Spalte einer Hauptspeicherseite (lypischerweise 64 bis 512 Seilen) zwei
t Seiten. Beispielsweise kann die Spalte 37 im Hauptspeicher irgendwelche zwei Informationsseiten aus Spalte 37
des Hauptspeichers enthalten. Die beiden Speicherseiten in der Pufferspcicherspaltc hängen davon ab, welche Seiten zuletzt dem Zugriff der Zentraleinheit ausgesetzt waren, d. h. die zuletzt aufgerufenen Seiten befinden ' 55 sich typischerweise im Pufferspeicher 104.
Ob eine bestimmte Informationsseite sich im Pufferspeicher 104 befindet, kann nur durch Überprüfung der Pufferspeicher-Adreßliste 105 festgestellt werden. Diese ist logisch in der gleichen Weise unterteilt, wie der Pufferspeicher, jedoch enthält jede Spalte anstelle von Informationsscitcn die Hauptspcicherspaltenadresse der entsprechenden Information im Pufferspeicher 104. Befindet sich in Spalte 0 des Pufferspeichers 104 die Seite M) 200 in der unteren und die Seite 0 in der oberen Zeile, so zeigt die Puffcrspcicheradreßlisle in ihrer unteren Zeile 00001 und in ihrer oberen Zeile 00000. Durch Zugriff zur Pufferspeieheradreßliste 105 mit der entsprechenden Spaltennummer und Vergleichen der angeforderten Zeilcnnummcr mit der im betreffenden Speicherplatz der Pufferspeicherlisle enthaltenen Zeilennummcr kann die Zentraleinheit feststellen, ob eine gegebene Seile sich im Pufferspeicher befindet. Die Datenverwaltungseinhcit 106 stellt die Schnittstelle dar zwischen der Zcntralein-(,- > hcit 100 und dem Hauptspeicher 101 und/oder dem Pufferspeicher 104. Während eines Lesevorgangs kann Information aus dom Hauptspeicher oder dem Pufferspeicher entnommen werden. Die Datenverwaltungseinheil 106 weiß, welche Einheit die Information enthält, und verteilt die Information zur richtigen Zeit in die Register der Zentraleinheü.Sie besorgt auch das Maskieren während partieller Lcscoperalioncn. Die Befehlsab-
rufeinhcit 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 12-Byte-Befehlsregister, welches normalerweise mehr als einen Befehl aufnimmt Zusätzlich fordert die Abrufeinheit 108 aus dem Hauptspeicher 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 vorabgerufen. 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 Pufferspeicheradreßliste 105, dem Hauptspeichersortierer 102, dem Rechenwerk 112, der Datenverwaltungseinheit 106 und dem Speichersteuerwerk 110. Das Adressensteuerwerk 107 ist für die Entwicklung aller Adressen in der Zentraleinheil zuständig. Alle Operationen des Adressensteuerwerks einschließlich des Übertrags zu von und innerhalb des Steuerwerks werden 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 Adreßtyp kann das Adressensieuerwerk unterschiedliche Operationen für jede Adresse in einem Befehl ausführen. Das Adressensteuerwerk 107 enthält ferner einen Assoziativspeicher, der üblicherweise die Basisadresse der achl zuletzt benutzten Speichersegmente zusammen mit den Segmentnummern speichert. Bei jedem Speicheraufruf wird die Segmentnummer gegenüber dem Inhalt des Assoziativspeichers geprüft, um festzustellen, ob die Basisadresse des Segments nun entwickelt und gespeichert ist. Befindet sich die Basisadre?"-; 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 niet im Assoziativspeicher 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.
In Zusammenarbeit mit dem Adressensteuerwerk 107, der Befehls-Abrufeinheit 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 Rechenwerk 112 und dem Speichersteuerwork 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 Scg.ment.
Der Befehlszähler 118 sieht mit dem internen Hauptspeiclicrregister (MLR) 103 und mit der Befehlsabrufeinheil 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 befinuct sich in der Zentraleinheit ein T-Register 114, welches auch mit der Befehlsabrufeinheit 108 in Verbindung steht und im typischen Fall ein 32-Bit-Register ist, das eine Segmentnurnmer und !6-Bi! oder 22-Bit positives ganzzahliges Zeichen enthält, welches die relative Adresse der Spitze des Prozedurstapds festlegt. Das Zustandsrcgislcr 115 ist ein 8-Bit-Register in der Zentraleinheit, welches unter anderem d'C letzte Rir.gnummer, d. h., den vorangehenden Wert der Prozeßringnummer PRN enthält.
Der Hauptspeicher 101 wird durch das Speicheradreßregister (MAR) 119 adressiert, und die betreffende Information wird abgerufen und vorübergehend gespeichert im internen Speicherregister (MLR) 103.
F i g. 3 zeigt das Flüßdiagramm der allgemeinen Regeln für die Entwicklung segmentierter Adressen bis zu 16 indirekten Descriptoren.
Die Fig.4A und 4B zeigen das Format des in Fig. 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) enihält. Der Bereich TAG ist ein 2-BiI-^cIu, 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 diem. 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 ICi-Bit oder ein 22-Bii-Feid dar, welches die Befehlsadresse innerhalb des Segments SEG bestimmt. Die F i g. 4C bis 4F zeigen das Format der Segmeni-Descriptoren. wobei die F i g 4C und 4D das erste und das zweite Wort eines direkten Segment-Descriptors darstellen, während die F i g. 4E und 4F das erste und das zweite Wort eines indirekten Segment-Doscripiors wiedergeben. Segmeiit-Dcscriptoren sind zwei Worte lang, wobei jedes Wort 32 Bit enthält. In den F i g. 4C und 4D stellt P das Anwcsenhcils-Bit dar. Hat dieses den Wert »t«, so .st das durch diesen Segment-Descriptor be/cichnete 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 Ausnahmcsignal, welche das fehlende Segment anzeigt. Alle librigcn Felder in Einern Segment-Descriptor haben nur dann eine Bedeutung, wenn das Anwcstnheits-Bit P den Wert »1« hat. A ist das Verfügbarkeits-Bit. Hat A den Wer! »0«, so isi das betreffende Segment nicht verfügbar oder gesperrt und eine Bezugnahme auf dieses Segment führt zu einem entsprechenden Ausnahmesignal. Hat A den Wert »1«, so ist das Segment verfügbar
und kann erreicht werden.! zeigt an, ob der Segment-Descriptor direkt, I — »0« 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. U 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 Sclireibvorgang auf »1« gesetzt. Wenn der Prozcdur-Aufrufmechanismus erfordert, daß ein Segment ein Torsegment ist oder wenn der IVo/.eßverbindungsmechanismus erfordert, daß das Segment ein Descriptor-Segment (SD) ist, werden die llils GS (filling semaphore) überprüft. Um ein gültiges Torsegment zu sein, müssen die GS-Bits den Wert 10 haben. Um ein gültiges Scgment-Dcseriptorsegment zu sein, muß der Wert 01 betragen. Wird ein Segmcnt-Descriptorscgmcni nicht benötigt, so werden
ίο diese Bits vernachlässigt. Die Basis ist ein 24 Bit-TeId, welches die absolute Adresse in Vicrfach-Wortcn des ersten Bytes im Segment definiert. Dieses f-'cld wird mit 16 multipliziert, um die Byic-Adrcs.se der Segmentbasis zu berechnen. Für die Ermittlung des Segmentumfangs dient d;is Feld SIZf.. Ist clic Segmenltabcllennummer STN größer oder gleich Null aber kleiner oder gleich Sechs, so ist das SIZI-!- Feld IH Bits lang. Ist die Segment tabellcnnummer STN größer oder gleich Acht aber kleiner oder gleich Fünf/ehn, so ist das Si/.e-Feld 1 2 Bits lang.
Die Anzahl der Bytes in einem Segment beträgt d;r 16-fache (SIZF. = I).
Ist SIZE gleich Null, so beträgt der Umfang des Segments 16 Hyies. Das Lcsezuj-'iiffeld RD ist ein 2-Bii-Fe:J. das die maximale effektive Adreßringnummer RAK angibt, für welche eine l.cscopciation im Segmcni gestaltet ist. Eine Prozedur kann immer im eigenen Scgmcni lesen, wenn die effektive AdrcUringnummcr EAR gleich der Prozeßringnummer PRN ist. Auch das Schrcibzugriffeld WR ist ein 2-Bil-Fcld, das in diesem Fall die maximale effektive Adreßringnummer EAR festlegt, bei der eine Schreiboperation im Segment zugelassen ist, sowie die minimale Prozeßringnurnmer PRN, bei welcher die Operation im Segment durchgeführt werden kann. MAXR ist die maximale Ringnummcr in Form eines 2-Bit-l eldes, welches die maximale Prozeßringnummer darstellt, bei der das Segment verarbeitet werden kann. Ein Ziilässigkeits-Bit WP zeigt an, ob eine Schreiboperation im Segment durchgeführt werden kann. Ist WP gleich »0«, darf keine Schreiboperation ausgeführt v/erden, ist WP »1«, so kann eine Schreihoperation erfolgen, sofern die effektive Adreßringnummer EA R 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, lsi F.P gleich »1«, so kann das Segment bei jeder beliebigen Prozeßringnummer verarbeitet werden, die größer oder gleich WR aK;r kleiner oder gleich MAXR ist. Das Feld MBZ (must be zero) muß von der Software bei der Erzeugung desFcldes auf Null gesetzt werden, bevor das Feld
jo von der Hardware benutzt wird.
Bei den Fig. 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-FcId, d. h. ein spezielles Feld, welches für Software-Gebrauch reserviert ist. Das Stellenfeld ist ein 28-Bii-Feld, das die absolute Adresse eines direkten Segment-Descriptors bestimmt. Der Wert im Stellenfeld muß ein Vielfaches von 8 sein. Die Fig. 4G und 4H zeigen das Format der Basisregister BR (Indexregister), welche bei der Adressenberechnung zur Bestimmung der Segmcnttabellennummer. einer Scgmenttabelleneingangsnummer. des OFFSET und einer Ringnummer dienen. Es sind üblicherweise 8 Basisregister vorhanden, wie in Ii g. I durch das Bezugs/eichen 1 lh angegeben. Die Basisregister heißen Basisregister 0 bis Basisregister 7. Ihr Umfang beträgt 32 Bit. Das iJasisrcgisieriormat gemäß F i g. 4E ist für kleine Segmente gedacht, wo STN größer oder gleich 8 aber kleiner oder gleich 15 ist. Dcmgcgen-
über wird das Basisregisterformat gemäß 4M für große Segmente benutzt, wo STN größer oder gleich 0 aber kleiner oder gleich 6 ist. TAG ist wiederum ein 2-Bit-Feld, welches demjenigen beim zuvor beschriebenen Daten-Descriptor entspricht. RING ist ebenfalls ein 2-Bit-Feld, welches die der segmeniicrtcn Adresse zugeordnete dem Informationsschutz dienende Ringnummer enthält. SEG bestimmt das Segment in einer Segmenttabelle und STN ist die Segmenttabellennummer, während STE die Segmcnttabellcncingangsnummer darstellt.
OFFSET ist je nach Segmenttabellennummer ein I6-Bit oder ein 22-Bil-Feld und definiert eine positive ganze Zahl. Es wird bei der Adressenentwicklung als Hinweisadresse in einem Segment benutzt.
Die F i g. 41 und 4J zeigen das Format des T-Registers. Es ist ein 22-Bit-Register und enthält eine Segmentnummer sowie eine I6-Bit oder 22-Bit lange positive Zahl, welche die relative Adresse der obersten Information des Prozedurstapels kennzeichnet. Es ist in F i g. 1 mit dem Bezugszeichen 114 dargestellt. Die einzelnen Felder des T-Registers haben den oben beschriebenen Inhalt.
Im folgenden w:rd unter Bezugnahme auf die F i g. 3 und 4A bis 4| die Berechnung der absoluten Adresse un ' 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 Adreßsilbe 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.
bo 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 Basisregister-Bit 8 und 9. Ist STN 4 :4 größer oder gleich Acht aber kleiner oder gleich Fünfzehn, so befindet sich STE in den Basisrcgister-Bits Acht bis Fünfzehn. Die relative Segmentadresse SRA für die indirekte Adressierung wird durch Addieren der Verschiebung in der Adrcßsübe, dem OFFSET des Basisregisters BR und dem 32-Bit-inhalt eines Indexregisters bcrechnci. falls dieser in der Adrcsscnsilbe angege-
f.-, ben ist Die Stimme dieser drei Größen stclll eine nicht gekennzeichnete ganzzahlige Binärzahl von 32 Bit dar. welche kleiner sein imiU ;jls die Größe des Segments entsprechend dem Segment STN. STK.
Die indirekte Adressierung erfolgt durch Abruf eines Datcn-Dcscriptors und Entwicklung einer Adresse aus diesem Descriptor. Die effektive Adresse des Da ι en-Descriptors wird wie im Falle des direkten Adrcssiercns
berechnet mit Ausnahme, dall kein Indexiegistcrinhalt beniil/t wird. Bei der Entwicklung der Adresse ;ius 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 STH aus dem Descriptor in der gleichen Weise entnommen wie aus einem Basisregisier. Die relative Segmentadresse SKA wird dur?h Addieren der Verschiebung im Descriptor und des Inhalts eines in der Silbe angegebenen > Indexregisters berechnet. Handell es sich um einen ITBB-Descriptor, so werden STN und STE aus dem im I)KK-TcId des Descriptors genannten Basisregistcr entnommen, wie bei direkter Adressierung. Die relative Segmentadres.se wird durch Addieren der Verschiebung im Descriptor, dem OFFSET des Basisregistors und de'T Inhalt eines in der Adreßsilbe angegebenen Indexregisters berechnet. Wie F i g. 3 zeigt, kann sich der Pro/jß über bis zu 16 Ebenen erstrecken.
)ede effektive Adresse enthält Schut/information, welche bei der Adressenentwicklung berechnet wird und durch die Ringschuuvorrichtiing der Errichtung zur Berechnung der absoluten Adresse die Zugriffsberechtigung prüft. Die effektive Adresse enthält die Schut/information in Form einer effektiven Adreßringnumrner F.AR, welche aus der Basisregister-Ringnummer BRN und aus der Prozeßringnummer PRN durch Auswahl der höchsten Ringnummer berechnet wird. Für die Entwicklung der effektiven Adreßringnummern bei indirekter ιϊ Adressierung wird ähnlich vorgegangen. Beim indirekten Adressieren ist die EAR für die Entnahme des ersten Descriptors EAR 1 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äß F i g. 5 vorhanden ist. Die effektive Adreßringnummer EAR für den zweiten Descriptor EAR 2 ist bei indirekter Ermittlung in mehrerrn Fhrnt'n der Höchstwert von
a. der effektiven Adreßnummer EAR I des ersten Descriptors;
b. der Ringnummer im ersten Descriptor, falls die indirekte Auswahl zu einem Segment führt;
c. der Ringnummer aus einem Basisregistcr 116, welches als Datenbasisregister BBR verwendet wird, wenn der erste Descriptor ein indirekter Hinweis auf den Segment-Descriptor ITBB ist.
Die effektive Adreßringnummer für indirekte Adressierung in mehreren Ebenen ist der Höchstwert von
b. der Ringnummer im /weiten Descriptor, wenn dies ein Segment-Descriptor ITS für indirekte Adressierung ist;
c der 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 F i g. 5 und 6 wird nachfolgend die Übertragung und Verarbeitung 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 enthaltendes 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 Assoziativspeicher 600 vorhanden ist. Durch Vergleich im UAS Assoziator 609 entsteht bei Übereinstimmung ein Übereinstimmungssignal, welches zum Codierer 610 gelangt. Dieser wandelt das Übcreinstimmungssignal 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-Sammclschiene 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 Fig. 6 speichert der UAB Assoziator-Pufferspeicher 611 ein erstes und ein zweites Wort eines Segment-Descriptors. Darüber hinaus können auch andere Informationen darin gespeichert werden.
Jedes der acht Basisregisier 602 wird über die UG- und Ul I-Registcr 603 und 604 adressiert, welche Basisregisteradressen aus einer Bcfchlsadreßsilbe enthalten oder bei dem das Basisregister durch das Befehlsformat gegeben ist. Die Basisregisier 602 enthalten Informationen wie TAG. die Basisregister-Ringnummer BRN, die Segmenttabellennummer STN, den Scgmenttabelleneinganj; 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-Operationsbefchls von der UWB-Logik 601 her. Beispielsweise wird Information aus dem UM-Register 502 in Fig.5 in die Bit-Positionen 2, 3 eines ausgewählten Basisregisters eingespeichert. Ferner kann Information von der QA-Sammelschiene in die Basisregisier eingegeben werden, und darüber hinaus ist dafür gesorgt, daß ein ausgewähltes Basisregister gelöscht, d. h. auf Null gestellt wird. Das Ausspeichern aus einem der Basisregister erfolgt über die UBR-Logik 605. Diese ermöglicht das Aussenden der bo 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-Teil der segmentierten Adresse. Wird die UBR-Logik 605 durch eine im nicht dargestellten Befehlspufferspeicher IB enthaltende Adresse adressiert, so gibt sie die Segmentnummer SEG, bestehend aus STN und STE über die UBS-Ü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 werden. Gleiches gilt für die Bits» bis 31 von der Sammelschiene 614 in bezug auf das UN-Register 608. Auch die Bits 9 bis 11 des US-Regisiers 607 können auf die QA-Sammelschiene 614 gegeben
13 j
werden. Die entsprechenden Pfeile in I' i g. 6 geben die Quelle der Daten und die Bil Nummern dieser Daten an.
Das 2-Bit-UP-Rcgister 501 speichert die laufende Pro/cüringnumincr l'Kf ■'. Sie u ird aus den Bits 2 und 3 dos Befehlszählers 118 über die Bits IC (2—3) der QA Sammelschiene hl4 in I- ι g. 6 erhalten. Die genannten Bits IC (2-3) werden unter Steuerung einer Mikm-Operation UV4QA0 in das 2-llii I JV-Rcmtcr 1JUJ übertragen. Diese Mikro-Operationcn werden durch Mikrobefehle im Spcichcrsteucrwcrk 110 hervorgerufen. In F i g. 5 bedeutet ein von einem Kreis umgebener Punkt eine Mikro-Operalion und die ersten beiden Buchstaben des Namens der Mikro-Operation bezeichnen die Bestimmung der zu übertragenden Daten, der vierte und fünfte Buchstabe bezeichnen dir Quelle der Daten, der dritte Buchslabe zeigt an, ob eine Teil- oder eine Vollübertragung erfolgt, wobei F für eir.c Vollübertragung steht, während das sechste Zeichen anzeigt, ob das die Übertragung bewirken-
!0 de 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 der QA-Sammelschicne, welche das Ende des Pfeils QA (2, 3), zeigen, dar, daß die Prozeß-Ringnummcrn mit der Mikro-Operalion UV9QA0 übertragen wird. Dies bedeutet, daß die Übertragung zum Register UV als Teilübertragung von der Sammelschiene QA als Quelle der Daten erfolgi. wobei das Zeichen 0 an sechster Stelle anzeigt, daß die
Übertragung bedingungslos erfolgt. Dieses Zeichen 0 wird das entsprechende siebente Zeichen im logischen Namen des Unterbefehls UV9QAI0 sein. Sobald die Pro/.cßringnummcr PRN von der QA-Sammelschiene 614 in das UV-Register 503 übertragen worden ist, criolgt eine weitere Übertragung vom UV-Register 503 in das UM-Register 502 unter Steuerung der Mikro-Operation UM9UV0. Schließlich führt die Mikro-Operalion UP9UM0 zu einer Übertragung vom UM-Register 502 in das UP- Register 501.
jo Das 2-Bit-Register UM 502 dient zur Erzeugung der effektiven Adreßringnummer L-AR während der ITS und ITBB Adressenbildung für das Adressensilbe I- und Adressensilbe 2-Bcfchlsformat. Die ITS und ITBB Adressenbildung bedeutet die indirekte Adressierung eines Segments und der Basis. /EAR = MAX (BRN, PRN. DRNy BBR (BRN) etc./. Die Bildung der effektiven AdrcLSringnummer F.AR erfolgt, wie zuvor beschrieben, mil einem oder mehreren Prüfvorgängen im Block 510, wobei die maximale Ringnummer erzeugt und im UM-Regisier 502 gespeichert wird, welches die effektive Adreßringnummer KAR aufnimmt. Das UO-Registcr dient zur Sicherstellung der effektiven Adreßringnummer für die Adressensilbe I. für den Fall, daß die Adressensilbc 2 für die Erzeugung von EAR 2 dient.
Das 2-Bit UV-Register 503 und das 2-Bit UW-Registcr 504 werden hauptsächlich als Speicher für verschiedene Ringnummern benutzt, welche aus Bereichen außerhalb der Ringüberprüfungseinrichtung gemäß Fig. 5 kommen und zu anderen Teilen übertragen werden. Beispielsweise wird die Basisrcgisicr-Ringnummcr BRN von den Bit-Positionen 2 und 3 der UBS-Übertragungslogik 606 durch die Mikro-Operation UVFBSO zum UV-Register 503 übertragen. Die maximale Ringnummer MAXR des Wortes 2 des Segment-Descriptors wird vom UAB Pufferspeicher 611 unter der Steuerung der Mikro-Operation UVFAB I in das UV-Register 503 übertragen. Die genannte Information ist in den Bits 36 und 37 des UAB Assoziator-Pufferspeichers 611 gespeichert. Bits 34 und 35 des UAB Pufferspeicheis 611, welche die Schreibringnummer WR darstellen, werden mit der Mikro-Operation UVFABO in das UV-Rcgisier 503 gebracht. Das UW-Registcr 504 enthält ähnliche Übertragungen anderer Ringnummern von verschiedenen Teilen des Systems. Beispielsweise werden die Bits 34 und 35, weiche die Schreibringnummer WR des UAB-Puiicrspeichers 6Ü darstellen, mit der Mikro-Operation UWFAB 1 zum UW-Register 504 gebracht. Die Bits 32 und 33. d. h. die l.cscringnummcr RD des UAB Puffer-Speichers 61t, können mit der Mikro-Operation UWFABO in das UW-Register 504 übertragen werden. Ferner können die Bits 0 und 1 der QA-Sammelschienc 614. gesteuert durch einen Mikrobefehl UW9QU0 in das UW-Register 504 übertragen werden. Mit der Mikro-Operation UV9UW0 sind mehrere Übertragungswege vom UW-Register 504 zum UV-Register 503 gegeben: Der Übertragungsweg vom UV-Register 503 mit der Mikro-Operation UM9UV0zum UM-Register502.der Übertragungsweg vom UM-Regisicr502 milder Mikro-Operation UP2UM0 zum UP-Register 501. der Übertragungsweg mit der Mikro-Operation UM9UP0 vom UP-Register 501 in das UM-Register 502. der Übertragungsweg vom UM-Rcgister 502 mit der Mikro-Operation UO9UM0 in das UO-Register 512 und schließlich der Übertragungsweg vom UO-Rcgisier 512 über die Mikro-Operation UM9UO0 in das UM-Rcgister 502.
Das UP-Register 501 bewahrt 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 Adreßringnummer EAR benutzt. Das UV-Register 503 kann für verschiedene Zwecke und zu verschiedenen Zeiten die !aufende Prozeßringnummer PRN, die Basisregistcr-Ringnummer BRN. die maximale Ringnummer MAXR, die Schreibringnummer WR oder die Leseringnummer RD speichern. Das UW-Register 504 kann zu verschiedenen Zeiten dieLeseringnummer RD, die Schreibringnummer WR und die Bits 0 und 1 der Sammelschiene QA speichern. UMR 505 ist eine Logikschaltung, deren Einzelheiten in Fig.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-Operation UMFMRO im UM-Rcgister 5OZ Dies stellt die eine Möglichkeit zur Bildung der effektiven Adreßringnummer 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
w) stellt eine andere Methode und/oder einen zusätzlichen Schritt zur Ableitung der effektiven Adreßringnummer EAR dar. Die UMR-Logikschaltung 505 wird auch zur Bestimmung eingesetzt, ob bei der Übertragung der Schreibringnummer WR in das UV-Register 503 eine Schreibübertragung eingetreten ist, und vergleicht dann die Inhalte des UM-Registers 502 und des UV-Registers 503 daraufhin, welcher den größeren Wert hat Da das UM-Register 502 die effektive Adreßringnummer EAR speichert, zeigt ein Vergleich der Inhalte des UM-Rcgi-
b5 sters und des UV-Registers an, ob EAR größer al:; WR is· ider umgekehrt Wenn das Schreibzulässigkeits-Bii WP im Segment-Descriptor gleich 1 ist und 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 Logikschaltungcn 506,507 und auch von der UBS-Logik 606 erhalten.
Die UW-Logik 506 entspricht im einzelnen der Schaltungsanordnung gemäß F i g. 8a. Sie ist mit Eingängen mittelbar oder unmittelbar an die Register 501 bis 504 und die l.ogiksehaltungen 505, 507 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 Adreßringnummcr KAR 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 diülit sein, daß die maximale Ringnummer MAXR größer oder gleich der effektiven Adreßringnummcr 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-Registcrs. 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 einstellen.
Die UEP-Logik 507 entspricht der Schaltungsanordnung gemäß Fig. 8b. Sie erzeugt zusammen mit der UMV-Logii: 506 das Lcsc-Übertretungs-Ausnahmesignai. welches jedoch übersteuert werden kann, falls die effektive Adreßringnummcr EAR gleich der laufenden Prozeßringnummer ist und die Segmentnummer de? Pro/.cdursegment-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 Veranschaulichung der Übersteuerung des Lcseübertreiungssignals sei angenommen, daß die effektive Adreßringnummer größer als d:c Leseringnummer RD ist, wodurch ein Leseübertretungssignal hohen Pegels entsteht, das als ein Eingangssignal dem UND-Gatter 522 zugeführt wird. Trot/.dern kann das Leseübertretungs-Ausnahmesignal trotz Vorhandensein eines Leseübertretungssignals nicht erzeugt werden, wenn die beiden folgenden Bedingungen gegeben sind:
1. Die effektive Adreßringnummcr EAR ist gleich der Pro/.cßringnummer PRN. d. h. der Inhalt des Registers UM ist gleich dem inhalt des Registers LJP, und
2. die Segmentnummer in der Adreßsilbc des Segments, in welchem eine Prozedur ausspeichern möchte, ist gleich der Segmentnummer des Prozedursegment-Deseriptors 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 U AS-Assoziators 609, wenn bei einem Vergleich der Inhalt des US-Registers 607 eine Übereinstimmung festgelegt 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 Adreßsilbe des adressierten Segments gleich der Segmentnummcr SEG des Prozedursegment-Descriptors der gerade ablaufenden Prozedur ist. wird das P-Bit des Prozedursegment-Deseriptors 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« zum Inverter 521, der an seinem Ausgang ein Signal »0« abgibt, welches zu einem anderen Eingang des UND-Gatters 522 gelangt. Da ein Signal »0« am UND-Gatter 522 steht, kann kein Leseübertretungsausnahmcsignal 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 Inverter» 5.21, welcher ein Ausgangssignal »1« an einen Eingang des UND-Gatters 522 abgibt. Wenn auch die effektive Adreßringnummer EAR größer als die Leseringnummer 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 »!«,wenn die Klemme 00 des URVIF-Flip-Flops 521 auf »0« liegt, das UND-Gatter 526 durch Zusendung der Mikro-Operation Leseübertretungs-Abfragesignal AJERVA an die eine Eingangsklemme des UND-Gatters 526 durchgeschaltet wird, während die OO-Klemme des URVIF-Fiip-Flops 524 auf »0« liegt. Damit sind alle Eingänge des UND-Gatters 522 auf »i« und es entsteht das Leseübertretungs-Ausnahmesignal.
Das Ausübungs-Übertretung?-Ausnahmesignal wird auf zwei Wegen erzeugt. Ein Ausführungs-Übertretungssignal ergibt sich, wenn oie UMW-Logik 506 anzeigt, daß die Bedingung, wonach WR kleiner oder gleich EAR und dieses kleiner oder gleich MAXR ist, nicht zutrifft. Dieses Ausführungsü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 Eingang des letztgenannten UND-Gatters 553 ein 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-Übertreiungs-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 613 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-Übertretungs-Ausnahmesignal.
Das Schreib-Übertretungs-Ausnahmestgnal wird ebenfalls auf zweierlei Weise gebildet Es wurde chon gezeigt, wie die UMR-Logik 505 ein Schi eib-Übertretungssignal entstehen läßt, wenn EAR größer ist als WR. Dieses Signa! 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-Obertretungs-Ausnahmesignal. Der zweite Eingang des UND-Gatters 545 nimmt beim Durchschalten des UND-Gatters 542 den Wert *l« an. Das letztgenannte Gatter wird aktiviert, wenn seine beiden Eingangssignale den Wert »1« haben. Das eine Eingangssignal hat diesen Wert, wenn der UWVlF Fiip-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-Übertreiungsabfrage
•o A]EW VA»1« ist. Dies geschieht, wenn eine Prozedur bezüglich eines Schreibübertretungs-Ausnahmesignals abgefragt werden soll. Die Flip-Flops URVlF, URNiF und UWVlF werden bei irgendwelchen Unterbrechungen oder durch die Software auf »0« gesetzt. Die Ilip-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-Übertretungs-Ausnahmesignals ergibt sich, wenn das Schreibzulässigkeits-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 A]EWVA ebenfalls »1« und steht am anderer. Eingang es UND-Gatters 546. so schaltet dieses UND-Gatter durch und ein Schreib-Übcrtragungs-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 533 in Verbindung mit dem Verstärker 530. dem UND-Gatter531 unddem Inverter 530A die Bildung des Maximnlwerts der Ringnummer EAR im Register UM 502. Ist der URN 1F 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 Befehlsabrufeinheil IFU die Eingangsklemme Situ desUND-Gatters 531 den Wert »1« annehmen. Hatte der Flip-Flop 532 des Ausgangssignals »0«. so wird dieses Signal im Inverter 53OA umgekehrt und das UND-Gatter 531 aktiviert Somit wird der Maximalwert des Inhalts des UP-Registcrs 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 »I«. so wird der Inhalt des UM-Registers 502 nicht über die obengenannten Quellen geändert und die effektive Adreßringnummer EAR wird im UM-Register 502 durch indirekte Adressierung ermittelt. Der Flip-Flop 533 dient als Unterstützungsspeicher für die effektive Adreßringnummer EA R der Adreßsilbe 2.
Die folgenden Teilfiguren der Fig.7 und 8 entsprechen den nachfolgend genannten Schaltungen in Fig. 5: F i g. 7a dem UW-Register 504; F i g. 7b dem UV-Register 503; F i g. 7c dem Biock 590; F i g. 7d dem Block 591: F i g. 7e dem Block 592; F i g. 7f dem UP-Register 501; F i g. 7g dem UO-Rcgister 512: F i g. 7h dem UM-Regisier 502; F i g. 8a der UWV-Logik 506; F i g. 8b der UEP-Logik507 und F i g. 8d der UMR-Logik 505.
Wie Fig. 7a zeigt, besteht das UW-Register 504 aus zwei Flip-Flops 715a und 720a. von denen jeder ein Informations-Bit des UW-Registers aufnimmt. Mit dem Flip-Flop 715a sind vier UND-Gatter 711a bis 714a gekoppelt und über ein ODER-Gatter zusammengeschaltet. Dabei hat jedes Gatter mit Ausnahme des Gatters 713a zwei Eingänge, denen jeweils wenigstens ein Signal zugeführt wird. Das UND-Gatter 714a ist mit einem Eingang an den Setzeingang UWOOOl Odes Flip-Flops 715a angeschlossen. Ersteht ferner mit der Klemme H27in Verbindung, an welcher ein Taktsignal PDA ankommt. Der Flip-Flop 720a ist mil den UND-Gattern 716a bis 719a in Form einer ODER-Schaltung zusammengeschaltct Die eine Eingangsklcmmc des UND-Gatters 716a steht mit einem Eingang des UND-Gatters 711:; in Verbindung; ein Eingang des UND-Gatters 717a ist mit einem Eingang des UND-Gatters 712a verbunden, 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 UWOOl 10 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 701;/ bis 704;) sind nach Art einer ODER-Schaltung zusammengcschaltet und mit ihren Ausgangsklemmen an die Eingänge des Inverters 705a geführt Das UND-Gatter 706a ist an den Verstärker 708a angeschlossen, während das UND-Gatter 707a mit dem Verstärker 709a in Verbindung sfht. Eine Eingangsklemme des UND-Gatters 706a ist mit einem Eingang des UND-Gatters 707a verbunden. Die Ausgangsklcmme des inverters 705a liegt an einem Eingang der UND-Gatter 714a und 719a. Der Ausgang des Verstärkers 708a steht mit einem Eingang des UND-Gatters 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ühnen 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 die Datensignale. Der Steuersignalcode wurde bereits beschrieben. Dabei bezeichnen die ersten beiden Zeichen die Bestimmung der zu übertragenden Daten: das dritte Zeichen gibt an, ob eine volie oder teilweise Übertragung durchgeführt werden soll, wobei der Buchstabe F eine Vollüberiragung 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 Buchstaber
bO benutzt; das sechste und siebente Zeichen sind üblicherweise Zahlen und zeigen an, ob das Signal »1« oder »0<< ist, d. h. eine ungcradcZahl in der sechsten Stelle bedeutet eine Bestätigung und eine ungerade Zahl in dci 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 Zcicher bezeichnen die Quelle der Daten; das vierte und fünfte Zeichen 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 Sii'ucrsigiink-n ila/u bestimmt im/u/ei^en. üb ikis Signal »I« oiler »0« ist und die Ebene des Auftretens des Signals. Im allgemeinen gibt das Formal selbst an, ob das Signal ein Steuersignal oiler ein Datensignal ist. Unter Bezugnahme auf die F i g. 5 und 6 können die Quelle und die Bestimmung der Signale festgestellt werden. Es gibl
einige Ausnahmen zu dieser allgemeinen Regel, welche in der Beschreibung und der Anlage erläutert sind.
Als Beispiel dieser Übereinkunft ergibt sich aus Fig.7a, daß die Signale UWFABIl. UWFABlO und UW9QA10 Steuersignale sind. Demgegenüber sind die Signale UAB3410, UAB3210, UAB3510, UAB3310, QAOOIlO und QA00010 Datensignale. Ausnahmesignale sind das Taktsignal PDARGlO und das Haltesignal UWHOLlO, welches die Information in den Flip-Flops 715a und 720a hält. Die Signale UWOBKlO und UWBKlO sind Unterstützungssignale, deren Hauptzweck es ist, die Hingangskapazität der Flip-Flops 715a und 720a 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 USCLRlO vorhanden, welches die Flip-Flops auf ö setzt.
Das dem UND-Gatter 702a zugeführte Signal UWFABl 1 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 UWFABlO 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-Regisier übertragen werden. Auch das Signal UW9QA10 am Eingang des Gatters 704a ist ein Steuersignal, womit Daten von der QA-Sammclschiene 614 in das UW-Register übertragen werden, wobei dies eine Teilübertragung darstellen kann. Das Signal QAOOIO am Eingang des UND-Gatters 706a ist ein Datensignal und kennzeichnet das Bit 00 in der Sammelschiene 614. Die dritte Stelle wird dab<-; nicht benutzt, weil die ersten beiden Stellen hinreichend angeben, wo sich die Daten befinden. Das Signal QAOOl 10 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 F i g. 5 bis 8 beschreibt die zur Verwirklichung des angestrebten Ringschutzes dienende Hardware.
F i g. 7b zeigt das Blockschaltbild des UV-Registers 503. Das Haltesignal UVHOLlO für dieses Register wird über den Inverter 7306 erzeugt, wenn keinem der UND-Gatter 7016 bis 708b ein Eingangssignal »1« zugeführt wird. Das genannte Haltesignal UVHOLIO wird dem UND-Gatter 723 zugeleitet und bewirkt, daß die im UV-Register 503 enthaltene Information festgehalten wird. Das dem Eingang des UND-Gatters 7046 und den Ausgängen der UND-Gatter 7056 bis 7086 zugeleitete Sign;il UVHOLIE erweitert die Anzahl der Steuersignale, welche das Haltesignal UVHOLlO erzeugen können. Auch das den Ausgängen der UND-Gatter 7106 bis 7136 sowie dem Eingang des UND-Gatters 7226 zugeführte Signal UVOBKlO dient der Erweiterung der Eingangssignale, welche dem Flip-Flop 7246 zugeführt werden können. Schließlich erweitert das Signal UVIBKlO an den Ausgängen der UND-Gatter 7166 bis 7186 und am Eingang des UND-Gatters 7276 in ähnlicher Weise die Anzahl der Eingangssignale, die zum Flip-Flop 7296 gelangen können.
F i g. 7g zeigt das Blockschaltbild des UO-Registers 51Z Die UND-Gatter 70ig bis 704g sind in Form einer Or-ER-Schaltung zusammengeführt, und ihr Ausgang liegt am Eingang des Inverters 705g. In ähnlicher Weise sind die UND-Gatter 706 bis 709g zusammengeschaltet und mit ihrem Ausgang an den Flip-Flop 710^ angeschlossen. Ein Eingang des UND-Gatters 709^ ist mit der Klemme UOOOOOlO des Flip-Flops 7i0g verbunden. Die UND-Gatter 7116 bis 714^sind wiederum nach Art einer ODER-Schaltung zusammengeführt und mit dem Flip-Flop 7i5g\n Verbindung gebracht. Ein Eingang des UND-Gatters 706#liegt am Eingang des UND-Gatters 711. ein Eingang des UND-Gatters 707g an einem Eingang des UND-Gatters 7\2g und ein Eingang des UND-Gatters 709gan einem Eingang des UND-Gatters 714^. Das vom Inverter 705 erzeugte Signal UOHOLlO wird ferner einem F.ingang der UND-Gatter 709 und 714g zugeleitet und dient zum Festhalten der Information im UO-RcgistcrS^. Die Klemme XOO stellt die Masscklemmc dar. während XNU ein nicht benutzter Eingang ist.
F i g. 7f zeigt das Blockschaltbild des UP-Rcgisters 501. Es ist der oben beschriebenen Schaltung von F i g. 7g ähnlich mit Ausnahme, daß unterschiedliche Signale aus verschiedenen Quellen und für unterschiedliche Bestimmungsstellen zugeführt werden.
In F i g. 7h ist das Blockschallbild des UM-Registers 502 wiedergegeben. Die UND-Gatter 701Λ bis 704Λ sind nach An einer ODER-Schaltung zusammengeführt und erzeugen über den Inverter 705Λ das Haltesignal UMHOLIO. In ähnlicher Weise sind die UND-Gatter 706Λ bis 709Λ zusammengesetzte*, und an den Eingang des UND-Gatters 7Ο4Λ angeschlossen, um den Bereich der Eingangssignale zu erweitern, welche gjs genannte Haltesignal erzeugen können.
Auch die UND-Gatter 71 In bis 714Λ sind in dieser Weise -usammcngcschaltet und mit dem Eingang des UND-Gatters 723Λ verbunden. Sie erweitern den Bereich der dem Flip-Flop 730Λ zuführbaren Signale. Schließlich sind in der gleichen Weise die UND-Gatter 7ί6Λ bis 719Λ zusammengeschaltet und an den Eingang des UND-Gatters 727Λ angeschlossen, um der. Bereich der dem Flip-Flop 731Λ zugeführten Signale zu erweitern. Eine der Zufuhr des Taktsignals PDA an die Flip-Flops 730Λ und 731 h dienende Leitung 740Λ ist mit den Punkten 734/1 und 735Λ verbunden. Der Eingang des UND-Gatters 703Λ ist erweitert durch Anschluß des Verstärkers 733/jzum Eingang des UND-Gatters 703Λ. um zwei weitere Hingänge URNl FOO und IRNUM10 zu schaffen.
In den F i g. 7c bis 7e sind die Blockschaltbilder der Schreibausnahme-Steuerlogik 590, der IFU-Unterbefehl-Stcuerlogik 591 und der l.escübertragungsausnahme-Steucrlogik 592 wiedergegeben. Fig. 7c zeigt die Flip-Flops 705c und 710. welche dem Flip-Flop 54), 540 entsprechen. Im Zuge einer Mikro-Operation URWl FlO wird die Information im Flip-Flop 71Of in den Flip-Flop 705c übertragen. Das Haltesignal UWVIH10 dient zum Festhalten der in den Flip-Flop 710c übertragenen Information, während mit dem Signal UWV2H10 die in den Flip-Flop 705c übertragene Information festgehalten wird. In ähnlicher Weise wird in F i g. 7d mit einem Mikro-Operationssignal UKNSWlO Information vom Flip-Flop 710i/ in den Flip-Flop 7051/ übertragen und in b5 Fi g. 7c mit einem Mikro-Üperationssignal URW2F10dic InIurination des Flip-Flops710ein den Flip-Flop 709e.
F i g. 8a zeigt das Blockschaltbild der UWV-Logik 506, F i «. 8b das Blockschaltbild der UWEP-Logik 507 und F i κ. 8d das Blockschaltbild der UMR-I.ogik 505. In F i g. 8a ist eine Logikschaltung zur Erzeugung eines Signals
»1« dargestellt, wenn eine der Testbedingungen 510 erfüllt ist und außerdem zur Erzeugung eines Ausführungs-Qbertretungssignals, 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 Signals UWLEVlO 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 Boolschen Gleichung ab:
Xx = (SCD)+(ABD)+(AC) (1)
ίο Hierin bedeutet ΛΊ 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-Regisiers
502 ist, ergibt sich, wenn das Signal UVGEMlO erzeugt wird. Dieses geschieht über den Inverter 820a 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 820a angeschlossen sind. Die Logik für die Erzeugung des Signals UVGEMlO ergibt sich aus der folgenden Gleichung:
X2 = (BCD) + (ABD)+(AC) (I!)
Das Signal .L'MGEVIO wird aufgrund der Eingangssignal der Gatter 806a bis 809a mit Hilfe des Inverters SiOs 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 Xj das erzeugte Ausgangssignal. In ähnlicher Weise wird das Signal UVEQM10 aufgrund der folgenden Gleichung gewonnen:
X* = (AC)+ AC)+ (BD)+ (BD) (I V)
und zeigt an, daH der Inhalt des UV-Registers 503 gleich dem Inhalt des UM-Registcrs 502 ist
1st der Inhalt des UM-Registers 502 größer oder gleich dem Inhalt des UW-Rcgisters 504, so entsteht das Signal UMGEWlO aufgrund der folgenden Beziehung:
Xi = (BCD)+(ABD)+(aZ) (V)
Ein Signal UMGTWlO entsieht, wenn der Inhalt des UM-Registcrs 502 größer ist als der Inhalt des UW-Registers 504. Hierzu dient die Beziehung:
Xb = (ABD) +C(BD+ A) (Vl)
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 UVGEMlO anzeigt, daß der Inhalt des UV-Rcgisters größer oder gleich dem Inhalt des UM-Registers ist und gleichzeitig das Signal UMGEWlO zu erkennen gibt, daß der Inhalt des UM-Registers größer oder gleich dem Inhalt des UW-Regislers ist und beide genannten Signale den Wert »1« haben.
Gemäß Fi g. 8b wird ein Signal UMEUQPIO aufgrund der folgenden Boolschen Beziehung erzeugt:
X7 = (AC)+(AC)+(BD)+(BD) (VII)
Hat dieses Signa! den Wert »1«, so bedeutet dies, daß der Inhalt des UM-Rcgisters 502 größer ist als derjenige desUP-Registers501.
Fi g.8d zeigt das Blockschaltbild für die Ausführung der Operationen der UMR-Logik 505 gemäß Fig. 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-Rcgistcrs kleiner als der Inhalt der UBS Logik ist oder umgekehrt. Die Erzeugung des Signals UPLHBiO/.eigi, daß der inhalt des Ur-Regisic-rs 501 kleiner oder gleich den Bits 2 und 3 UBS-Logik 606 ist Demgegenüber läßt das Signal UPGTBIO erkennen.
daß der Inhalt des UP-Registers 501 größer als die Bits 2 und 3 der UBS-Logik 606 ist Diese Signale entstehen
Mi aufgrund der folgenden Beziehung:
X« = (BCD)+(ABD)+(AC) (VIII)
Hierin bedeutet Xn das Ausgangssignal des Inverters S05d. und die Buchstaben kennzeichnen die verschiedeb$ nen Eingänge der UND-Gatter 801c/bis 803c/.
Zur Erläuterung der Bestimmung des Maximalwerts im Inhalt des UP-Registcrs und der UBS-Logik mit Hilfe der Ausgangssignale UMPBlOI und UMPBI10 der Verstärker 814c/ und 817c/sei zunächst angenommen, daß der Inhalt des UP-Registcrs kleiner oder gleich den Bits 2 und 3 der UBS-Logik ist. weil das Bit 2 den Wen »I«
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 UPLEBlO und den Wert »0« des Signals UPGTBlO angezeigt, welcher das invertierte Signal zum Signal UPLEBlO darstellt Das letztgenannte Signal wird dem einen Eingang des UND-Gatters 813c/ 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 813£/durchgeschaltet und das Signal UMPPOlO 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 816c/dargestellt wird, so wird das UND-Gatter 816c/aktiviert und das Signal UMPBl 10 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, befinde; sich der Höchstwert der beiden Größen in der UBS-Logik und seine Zahl ist eine binäre 11 oder eine dezimale 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 läßt sich der Wert im UP-Register durch die Signale UMPB und UMPBl 10 ermitteln, wenn der Inhalt des UP-Registers größer a'.s 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 UVGEMlO und UMGTVlO bestimmt werden, wenn das UV-Register 503 einen höheren oder gleichen Wert beinhaltet wie das UM-Register 502 beziehungsweise umgekehrt.
Die F i g. 9a bis 9f beschreiben die in den F i g. 7 und 8 verwendeten Zeichnungssymbole. Während die meisten aus sich heraus verständlich sind, sei bezüglich F i g. 9g angemerkt, daß dort drei UND-Gatter S0\gbis 903^nach Art einer ODER-Schaltung zusammengeschaltet sind und am Ausgang 904g ein Signal »1« entsteht, wenn eines der UND-Gatter den Wert»1« annimmt. F i g. 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ängi^.-it von den am Fiip-riöp siehenden Signalen dessen Umschaltung bewirkt
Begriffs-Liste
25 Job:
Haupt-Arbeitseinheit für Stapelverarbeitung, Mittel zur Beschreibung, Planung und Berechnung der Arbeit, welche der Benutzer durchführen läßt.
Job-Schritt:
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.
Adressenraum (Segmentation):
eine Gruppe logischer Adressen, die die Zentraleinheit während eines bestimmten Prozesses ir. 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 Proccss-Adreßraums, beispielsweise die Segmentnummer SEG und die Verschiebung D.
Basis-Adressenentwicklung:
eine Hardware-Prozedur, welche aus einer Anzahl von Adressenelementen eine absolute Adresse berechnet, die auf eine Byte-Stelle im Kernspeicher Bezug nimmt.
Process-Steuerblock:
er ist jedem Process zugeordnet und halt die erforderliche Information über den Process, u. a. die absolute Adresse der dem Process zugängigen Segmenttabellen.
J. P.Tabellen:
eine Sammlung logischer Adressen für die Ermittlung des dem Process zugeordneten Process-Steutfblocks.
.Signalname Typ Funktion
(1) WSCLR Steuerung Löscht die angeschlossenen Register
(2) PDARG Steuerung Taktsignal PDA
(3) PDURGIT Verbindung Anschlußder einerseits an das Taktsignal und andererseits an ein
Register angeschlossen ist.
(4) L)WOBK Verbindung Erweitert die Hingänge zum UW-Register
(Fortsetzung)
Signalname
Typ
Funktion
(5) UWHOL
(6) UWIBK
(7) UWOOOOO
(8) UWOOOlO
(9) UWOOIOO UW00110
(10) UVSPS
(11) UVSPD
(12) UVOBK
(13)
(14)
(15) (16)
(17) (18) (19)
(20)
(21)
(22)
(23) (24)
UVOOOOO UVOOOlO UVOOlOO UVOOIlO
UWVlS UWVlD UWV2F UWV2S UWV2D UWVlH UWVlC UWV2C
URNlS URN2S
URNlD URNSW
(25) URN2F
(26) URNlH
(27) URN2C
(28) URWlS URW2S
(29) URWlD
(30) URV2F (Jl) XNU (32) XOO
Steuerung Hält die Information im angeschlossenen Register
Steuerung Hält die Information im angeschlossenen Register, ist aber an
einen anderen Eingang des UW- Registers angeschlossen
Rückstelleingang eines Flip-Flops im UW-Registcr Setzeingang eines Flip-Flops im UW-Register Das gleiche wie (7) und (8) aber unterschiedliche Flip-Flops
Steuerung Reserve-Stcuercingang
Daten Reservc-Dateneingang
Expander Das gleiche wie (4) und (6). verbindet aber verschiedene Register
und Galter Die gleiche wie bei (7) bis (9), aber gehört zum UV-Flip-Flop
Steuerung SteucreingangfürUW VlF
Daten Dateneingang für UWVl F
Flip-Flop Schreib-Steuer Flip-Flop
Steuerung Steuereingang für (16)
Daten Dateneingang für (16)
Steuerung Halteschaltung für Flip-Flop UWVl F
Steuerung Löschen des Flip-Flops UWV1 F
Steuerung Löschen des Flip-Flops (16)
Steuerung Steucreingängc für Flip-Flops URNlF und URN2F
Daten Dateneingang für Flip-Flop URNIF
Steuerung Übertrag von URNl F nach URN2F und von URN2F nach URNlF
Flip-Flop Ladesteuerung max (UP, UBS2.3, nach UM)
Steuerung Halten des Flip-Flops URNIF
Steuerung Löschen des Flip-Flops URN2F
Steuerung Steuereingänge für URVl F und URV2F
Daten Dateneingang für URVIF
Flip-Flop Lescsteueriings Flip-Flop
Nicht benutzter Anschluß Geerdeter Anschluß
Hierzu 11 Blatt Zeichnung«

Claims (18)

Patentansprüche:
1. Datenverarbeitungsanlage mit einem Hauptspeicher für mehrere Arten von Informaiionsgruppcn. die jeweils einem durch ein Segment mit einstellbaren Grenzen abgeteilten Adressenraum zugeordnet sind, sowie mit einer Zugriffsprüflogik für den in Ringen organisierten Schutz von Informationen, die ein die Zuiässigkeit des Zugriffs zu einem gegebenen Adressenraum kennzeichnendes Signal erzeugt, dadurch gekennzeichnet, daß eine für einen gegebenen Adressenraum eine effektive Adreßringnummer KAR entwickelnde Einrichtung
a) einen ersten Speicher (503) für eine einem vorgegebenen Privilegrang des zugeordneten Adressenraums entsprechende Basisregister-Ringnummer RRN umfaßt; und
b) einen zweiten Speicher (501) für eine dein Privilegrang des Adressenraums des gerade ablaufenden Prozesses entsprechende Prozeßrihgnummer PRN aufweist; daß
c) an die beiden Speicher (503, 501) ein erster Verglcichcr (505) anschaltbar ist, welcher die Inhalte der beiden Speicher vergleicht; und daß
d) ein an den ersten Vergleicher angeschlossener dritter Speicher (502) denjenigen Inhalt der beiden vorgenannten Speicher (503, 501) mit dem höheren Wert aufnimmt, wobei dieser Inhalt die dem Höchstwert des dem betreffenden Adressenraum zukommenden Zugriffsprivilegs entsprechende effektive Adreßringnummer EAR darstellt.
2. DV-Adage nach Anspruch 1, dadurch gekennzeichnet, daß ein vierter Speicher (504) eine den für das Einspeichern (Schreiben) in den betreffenden Auressenrauin erforderlichen rviinuesipriviiegrang darstellende Schreibringnummer WR speichert.
3. DV-Anlage nach Anspruch 2, dadurch gekennzeichnet, daß an den dritten (502) und den vierten (504) Speicher ein zweiter Vergleicher (506) anschließbar ist, welcher feststellt, welcher dieser beiden Speicher den höheren Wert enthält.
4. DV-Anlage nach Ansprurh 3, dadurch gekennzeichnet, daß an den zweiten Vcrgleicher (506) eine erste Steuerschaltung (505) angeschlossen ist, welche in dem ausgewählten Adressenraum eine Schreiboperation zuläßt, sofern der Inhalt des vierten Speichers (504) höher isi als der des dritten Speichers (502), d. h. WR ist
jo größer als EAR.
5. DV-Anlage nach Anspruch 3. dadurch gekennzeichnet, daß an den /wc-.tcn Vcrglcichcr (506) ein erster Signalgenei-tor (509) angeschlossen ist, welcher ein Schrcibübertretungs-Ausnahmesignal erzeugt, falls der Inhalt des vierten Spe-chers (5<M) niedriger ist als der des dritten .Speichers (502), d. h. WR ist kleiner als EAR.
6. DV-Aniage nach Anspruch 5. dadurch gekennzeichnet, daß ein an den zweiten Vcrgleichcr (506) angeschlossener fünfter Speich -r (613) ein logisches Schrcibcrlaubnissignal WP speichert, welches, wenn es den Wert »I« hat, über eine zweite Steuerschaltung (590) eine Schreiboperation im ausgewählten Adressenraum zuläßt.
7. DV-Anlage nach Anspruch b, dadurch gekennzeichnet, daß an die zweite Steuerschaltung (590) ein zweiter Signalgenerator (509) angeschlossen ist. welcher ein Schrcibübertragungs-Ausnahmesignal erzeugt, falls das im fünften Speicher (613) enthaltene Signal den Wen »0« hat.
8. DV-Anlage nach Anspruch 2 oder einem der folgenden Ansprüche, dadurch gekennzeichnet, daß ein sechster Speicher (503) für eine dem für die Ausführung einer Operation im ausgewählten Adressenraum erforderlichen Mindestprivilegrang entsprechende Maximalringnummer MAXR vorgesehen und an diesen sechsten Speicher sowie den dritten (502) und vierten (504) Speicher ein dritter Verglcichcr (506) angcschlossen ist, welcher feststellt, ob die Maximalringnummcr MAXR größer oder gleich der effektiven Adreßringnummer EAR und diese größer oder gleich der Schreibringnummer WR ist,d. h. WR < EAR < MAXR.
9. DV-Anlage nach Anspruch 8, dadurch gekennzeichnet, daß an den dritten Vcrgleicher (506) eine dritte Steuerschaltung (511) angeschlossen ist, welche zuläßt, daß der ausgewählte Prozeß im ausgewählten Adressenraum eine Operation ausführt, sofern WR <KAR <MAXR.
10. DV-Anlage nach Anspruch 9, dadurch gekennzeichnet, daß an den dritten (502). den vierten (504) und den sechsten Speicher (503) ein vierter Vergleicher (506) angeschlossen ist, welcher fcsisicllt, ob die Bedingung WR <EAR < MAXR nicht erfüllt ist. d. h. WR < KAR < MÄXTT.
11. DV-Anlage nach Anspruch 10, dadurch gekennzeichnet, daß ein dritter Signalgenerator (511) an den vierten Verglcicher (506) angeschlossen ist und ein Ausführungsausnahmesignal erzeugt, falls WR <EAR <MAXR.
12. DV-Anlage nach Anspruch 11, dadurch gekennzeichnet, daß an den dritten Vcrgleicher (506) eine vierte Steuerschaltung (511) angeschlossen ist, welche die Durchführung einer Operation im ausgewählten Adressenraum verhindert, falls WR <EAR <MAXR.
13. DV-Anlage nach Anspruch 12. dadurch gekennzeichnet, daß ein siebenter Speicher (613) für ein M) Ausführungserlaubnissignal EP vorgesehen ist, welches, wenn es den Wert »I« hat. über eine fünfte Steuerschaltung (511) die Ausführung einer ()pcriition im ausgewiihllen Adressenraum zuliißl,
14. DV-Anlage nach Anspruch 13, dadurch gekennzeichnet, daß an den siebenten Speicher (613) eine erste Sperrschaltung (550,551) angeschlossen ist, welche die Ausführung einer Operation im ausgewählten Adressenraum verhindert, wenn das Ausführungserlaubnissigmil KP den Wert »0« hat.
h5
15. DV-Anlage nach Anspruch 14, dadurch gekennzeichnet, daß ein vierter Signalgenerator (552—554) an
die erste Spcrrschaluing (550, 551) angeschlossen ist und ein Ausübungsausnahmcsignal erzeugt, falls das Ausführungserlaubnissignal EPden Wert »0« hat.
16. DV-Anlagc nach Anspruch I oder einem folgenden, dadurch gekennzeichnet, dal! ein achter Speicher
24 5» Uöö
(504) für eine den für das Ausspeicheru (Lesen) aus dem ausgewählten Adressenraum erforderlichen Minimalprivilegrang darstellende Leseringnummer RD vorgesehen ist und daß an diesen und den dritten Speicher (5Ö2) ein fünfter Vergleicher (506) angeschlossen ist, der feststellt, welcher Inhalt der beiden genannten Speicher den höheren Wert hat.
17. DV-Anlage nach Anspruch 16, dadurch gekennzeichnet, daß an den fünften Vergleicher (506) eine sechste Steuerschaltung (508) angeschlossen ist, welche ein Lesen im ausgewählten Adressenraum zuläßt, sofern der Inhalt des achten Speichers (504) größer ist als der des dritten (502) Speichers, d. h. RD ist größer als EAR.
18. DV-Anlage nach Anspruch 17, dadurch gekennzeichnet, daß an den fünften Vergleicher (506) ein fünfter Sisnalgenerator (508) angeschlossen ist, welcher ein Leseübertragungs-Ausnahmesignal erzeugt, falls der Inhalt des achten Speichers (504) kleiner ist als der des dritten Speichers (502), d. h. RD ist kleiner als
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 DE2458065A1 (de) 1975-06-26
DE2458065C2 true 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)

Families Citing this family (54)

* 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
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
US4024508A (en) * 1975-06-19 1977-05-17 Honeywell Information Systems, Inc. Database instruction find serial
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
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4042911A (en) * 1976-04-30 1977-08-16 International Business Machines Corporation Outer and asynchronous storage extension system
US4035779A (en) * 1976-04-30 1977-07-12 International Business Machines Corporation Supervisor address key control system
US4038645A (en) * 1976-04-30 1977-07-26 International Business Machines Corporation Non-translatable storage protection control system
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
US4093987A (en) * 1977-03-24 1978-06-06 International Business Machines Corporation Hardware control storage area protection method and means
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 工業技術院長 メモリ保護装置
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
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
US20060095726A1 (en) * 2004-08-31 2006-05-04 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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2458065C2 (de) Datenverarbeitungsanlage
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
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
DE2437200C2 (de) Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE69936162T2 (de) Verfahren und Gerät für ein objektorientiertes Unterbrechungssystem
DE3048365C2 (de)
AT389772B (de) Datenverarbeitungsanordnung mit einem programmspeicher und einer schutzeinheit
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE2414311C2 (de) Speicherschutzeinrichtung
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
CH619309A5 (de)
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE2629459A1 (de) Datenverarbeitungssystem
DE1549531A1 (de) Digitale Rechenanlage
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2054835A1 (de) Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE10297494T5 (de) System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE112004000626T5 (de) Verfahren und Gerät zur Schaffung einer Programmlauf- bzw. Ausführungsabschirmung

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