DE2458065C2 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
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.
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.
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.
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. '!
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
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.
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 ;
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
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. ;
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 .,
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:
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,
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,
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.
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
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
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)
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)
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
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2258112A5 (de) * | 1973-11-30 | 1975-08-08 | Honeywell Bull Soc Ind | |
US4300192A (en) * | 1974-04-18 | 1981-11-10 | Honeywell Information Systems Inc. | Method and means for storing and accessing information in a shared access multiprogrammed data processing system |
US4024508A (en) * | 1975-06-19 | 1977-05-17 | Honeywell Information Systems, Inc. | Database instruction find serial |
US4025901A (en) * | 1975-06-19 | 1977-05-24 | Honeywell Information Systems, Inc. | Database instruction find owner |
US4042912A (en) * | 1975-06-19 | 1977-08-16 | Honeywell Information Systems Inc. | Database set condition test instruction |
US4044334A (en) * | 1975-06-19 | 1977-08-23 | Honeywell Information Systems, Inc. | Database instruction unload |
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 |
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 |
US4047161A (en) * | 1976-04-30 | 1977-09-06 | International Business Machines Corporation | Task management apparatus |
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 |
US4103326A (en) * | 1977-02-28 | 1978-07-25 | Xerox Corporation | Time-slicing method and apparatus for disk drive |
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 |
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 |
EP0192232B1 (de) * | 1985-02-18 | 1993-11-18 | Nec Corporation | Datenverarbeitungsgerät |
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 |
US4866599A (en) * | 1985-06-27 | 1989-09-12 | Bull Hn Information Systems Inc. | Call instruction, return instruction and trap procedure for ring crossing architecture |
US4703417A (en) * | 1985-06-27 | 1987-10-27 | Honeywell Information Systems Inc. | Call instruction for ring crossing architecture |
US5053951A (en) * | 1986-12-23 | 1991-10-01 | Bull Hn Information Systems Inc. | Segment descriptor unit for performing static and dynamic address translation operations |
US4975878A (en) * | 1988-01-28 | 1990-12-04 | National Semiconductor | Programmable memory data protection scheme |
US5051894A (en) * | 1989-01-05 | 1991-09-24 | Bull Hn Information Systems Inc. | Apparatus and method for address translation of non-aligned double word virtual addresses |
US5117491A (en) * | 1989-03-31 | 1992-05-26 | Bull Hn Information Systems Inc. | Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding |
CA2018319C (en) * | 1989-06-30 | 1997-01-07 | Larry Alan Wehr | Method of providing mandatory secrecy and integrity file security in a computer system |
US5596739A (en) * | 1994-02-08 | 1997-01-21 | Meridian Semiconductor, Inc. | Method and apparatus for detecting memory segment violations in a microprocessor-based system |
US5784615A (en) * | 1994-12-13 | 1998-07-21 | Microsoft Corporation | Computer system messaging architecture |
EP0752664A3 (de) * | 1995-07-07 | 2006-04-05 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur Meldung der Datenübertragung zwischen Hardware und Software |
US6105132A (en) * | 1997-02-20 | 2000-08-15 | Novell, Inc. | Computer network graded authentication system and method |
US7216345B1 (en) * | 2000-04-07 | 2007-05-08 | Hall Aluminum Llc | Method and apparatus for protectively operating a data/information processing device |
WO2006026484A2 (en) * | 2004-08-31 | 2006-03-09 | Ivivity, Inc | Independent hardware based code locator |
US9390031B2 (en) * | 2005-12-30 | 2016-07-12 | Intel Corporation | Page coloring to associate memory pages with programs |
US20070234330A1 (en) * | 2006-03-01 | 2007-10-04 | Microsoft Corporation | Prevention of executable code modification |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US9530000B2 (en) * | 2013-06-14 | 2016-12-27 | Microsoft Technology Licensing, Llc | Secure privilege level execution and access protection |
US10162694B2 (en) | 2015-12-21 | 2018-12-25 | Intel Corporation | Hardware apparatuses and methods for memory corruption detection |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
Family Cites Families (3)
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 |
-
1973
- 1973-12-12 US US424239A patent/US3916385A/en not_active Expired - Lifetime
-
1974
- 1974-12-07 DE DE2458065A patent/DE2458065C2/de not_active Expired
- 1974-12-10 IT IT54447/74A patent/IT1024384B/it active
- 1974-12-11 CA CA215,725A patent/CA1023870A/en not_active Expired
- 1974-12-11 FR FR7440868A patent/FR2254826B1/fr not_active Expired
- 1974-12-12 GB GB53772/74A patent/GB1495717A/en not_active Expired
- 1974-12-12 JP JP49142999A patent/JPS5092646A/ja active Pending
Non-Patent Citations (1)
Title |
---|
NICHTS-ERMITTELT |
Also Published As
Publication number | Publication date |
---|---|
GB1495717A (en) | 1977-12-21 |
IT1024384B (it) | 1978-06-20 |
JPS5092646A (de) | 1975-07-24 |
US3916385A (en) | 1975-10-28 |
CA1023870A (en) | 1978-01-03 |
DE2458065A1 (de) | 1975-06-26 |
FR2254826A1 (de) | 1975-07-11 |
FR2254826B1 (de) | 1978-06-23 |
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 | |
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 | |
DE3689961T2 (de) | Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem. | |
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 | |
DE2719295A1 (de) | Programmsteuerung | |
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 | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE10297494T5 (de) | System und Verfahren zum Behandeln von Gerätezugriffen auf einen Speicher mit erhöhter Speicherzugriffssicherheit | |
DE3688811T2 (de) | Speicherblock für eine Ringschutzarchitektur. |
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 |