[go: up one dir, main page]

DE1909090C3 - Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage - Google Patents

Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage

Info

Publication number
DE1909090C3
DE1909090C3 DE1909090A DE1909090A DE1909090C3 DE 1909090 C3 DE1909090 C3 DE 1909090C3 DE 1909090 A DE1909090 A DE 1909090A DE 1909090 A DE1909090 A DE 1909090A DE 1909090 C3 DE1909090 C3 DE 1909090C3
Authority
DE
Germany
Prior art keywords
memory
register
memory area
protection
status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE1909090A
Other languages
English (en)
Other versions
DE1909090A1 (de
DE1909090B2 (de
Inventor
Sherril Allan Harmon
Wallace Nixon Patterson
Emery Albert White
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honeywell Inc
Original Assignee
Honeywell Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Inc filed Critical Honeywell Inc
Publication of DE1909090A1 publication Critical patent/DE1909090A1/de
Publication of DE1909090B2 publication Critical patent/DE1909090B2/de
Application granted granted Critical
Publication of DE1909090C3 publication Critical patent/DE1909090C3/de
Expired legal-status Critical Current

Links

Classifications

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

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)
  • Multi Processors (AREA)

Description

Die Erfindung bezieht sich auf eine Schutzeinrichtung gemäß dem Oberbegriff des Patentanspruchs 1.
Bei Rechenanlagen soll häufig bereits ein neues Programm ausgeführt werden, während das alte und seine zugehörigen Daten noch im Arbeitsspeicher gespeichert sind. Daher kann beispielsweise bei einer > Prozeßrechenanlage, die Betriebsprogramme zur Steuerung oder Überwachung eines Prozesses benutzt, die Kapazität des Rechners nicht vollständig ausgenutzt sein, weil der Rechner nicht ständig zur Überwachung oder Steuerung des Prozesses benötigt wird. Dennoch
ίο muß die Rechenkapazität im Bedarfsfalle zur Verfügung stehen. Jedoch wird die vom Programm nicht benötigte Kapazität, die Rechnerfreizeit, häufig zur Ausführung eines zweiten Programms verwendet, das noch Fehler enthalten kann. Während der Ausführung dieses zweiten Programms müssen daher das laufende Programm oder Betriebsprogramm und die zugehörigen Daten, die zur Steuerung oder Überwachung des Prozesses verwendet werden, geschützt werden.
Bei bekannten Arbeitsspeicherschutzeinrichtungen
:o ist jedem Speicherplatz ein Bit zugeordnet, das den belegungszustand dieses Speicherplatzes anzeigt. Wenn der Speicherplatz als belegt angezeigt wird, wird seine Adressierung bei der Ausführung eines zweiten Programms, das noch Fehler enthalten kann, verhindert.
Ji Eine derartige Schutzeinrichtung ist verhältnismäßig aufwendig, weil sie einen großen Teil der Arbeitsspeicherkapazität zum Speichern der Arbeitsspeicherschutzbits benötigt.
Bei der bekannten Schutzeinrichtung der gattungsge-
iw mäßen Art (FR-PS 1507 779 IEEE Transactions on Electronic Computers, Juni 1967, Seiten 320 bis 326 oder The Electrical Communication. Vol. 42, Nr. 2, 1967, S. 196 enthält jedes Schutzzustandswort die Adresse des Speicherbereichs, dem das Schutzzustandswort zu-
·."> geordnet ist. Das heißt, für jeden Speicherbereich (dort Blöcke genannt) ist eine Speicherschutzinformation zu lesen, was Zeit kostet. Es gibt Programme, die mit größeren Speicherbereichen arbeiten, deren Teilbereiche einen unterschiedlichen Speicherschutz erfordern.
ίο Aufgabe der Erfindung ist es, beim Arbeiten mit derartigen Gegebenheiten ein häufiges Lesen der einzelnen den Speicherteilbereichen zugeordneten Speicherschutzinformationen zu vermeiden.
Diese Aufgabe ist durch die im Patentanspruch 1
r> gekennzeichneten Merkmale gelöst. Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Bei dieser Ausbildung der Schutzeinrichtung sind für die Zustandsbits keine speziellen Adressen erforderlich.
Vi Infolgedessen entfällt nicht nur eine zusätzliche Codierung und Adressierung, mit dem Vorteil der geiingeren Fehlergefahr, sondern auch zusätzlicher Speicherraum.
Nachstehend wird ein Ausführungsbeispiel der
μ Erfindung an Hand der Zeichnung beschrieben. Es zeigt Fig. 1 ein Blockschaltbild der Informationsspeichervorrichtungen, der Informations- und Steuersignal-Übertragungskanäle zwischen diesen Vorrichtungen und der größeren Steuervorrichtungen einer Rechenan-
»(I lage,
Fig. 2 eine symbolische Darstellung des Aufbaus eines Steuerwortes,
F i g. 3 schematisch den Aufbau des Arbeitsspeichers der Rechenanlage nach Fig. 1 in Übereinstimmung mit
tv'· der Schutzeinrichtung nach der Erfindung,
F i g. 4 schematisch den Arbeitsspeicherplatz, der das jedem Arbeitsspeicherbereich zugeordnete Schutzzustandswort enthält.
F i g. 5 den Aufbau eines Schutzzustandswortes und
F i g. 6 ein Blockschaltbild, das die hauptsächlichen Informationsspeicherelemente und logischen Elemente zeigt, die in der Schutzeinrichtung nach der Erfindung verwertet werden.
F i g. 1 zeigt schematisch eine typische Rechenanlage, die zur Steuerung oder Überwachung eines Prozesses dient. Die größeren Einheiten der Rechenanlage sind ein Rechen- und Steuerwerk 10, ein Speicher 11 mit einem Speicher-Multiplexer 12 und einer Magnetkern- iu Speichereinheit 13, ein Hauptspeicher 14, der einen Platten- oder Trommelspeicher enthält, eine automatische Programmunterbrechungseinheit 15, ein Eingabe/ Ausgabe-Expander 18, ein peripherer Eingabe/Ausgabe-Zwischenspeicher 16, an den die peripheren Vorrichtungen angeschlossen werden können, z. B. ein Bandoder Kartenlocher und ein Band- oder Kartenleser. Ein peripheres Steuerwerk 23 kann ebenfalls an den Speicher-Multiplexer 12 angeschlossen sein. Der Eingabe/Ausgabe-Expander 18 ist über eine F.ingabe/Ausgabe-Mehrtachieitung 25 ans Rechen- und Steuerwerk iO angeschlossen. Er dient als Multiplexer für aus dem zu steuernden und zu überwachenden Prozeß abgeleitete digitale und analoge Eingangssignale und als Multiplexer und Verstärker für an den Prozeß abgegebene :ί Signale.
Um Informationen aus dem Speicher 11 zu holen, wird die entsprechende Adresse einem Speicher-Adressenregister 80 zugeführt. Nicht gezeigte Adresse.idecodierschaltungen und Abfrageverstärker bewirken die jo Übertragung des Inhalts des adressierten Speicherplatzes aus der Magnetkernspeichereinheit 13 in ein Speicher-Datenregister 81, wobei das Datenv/ort dem Rechen- und Steuerwerk 10 zur Verfügung gestellt wird.
Das Rechen- und Steuerwerk 10 enthält die folgenden r. Elemente, von denen nicht alle in der erfindungsgemäßen Einrichtung verwendet werden, so daß sie nur kurz beschrieben werden, um das Verständnis der Anlage zu erleichtern: Ein B-Register 100, ein Adressenregister 101, auch /-Register genannt, ein /!-Register 102, ein P-Register 103, ein Speicherbereichsregister 104. auch K-Register genannt, ein Zustandsregister 105, auch L-Register genannt, und einen /-Zähler 106 sowie einen Paralleladdierer 110, ein Taktsteuerwerk 111, ein Operationssteuerwerk 112 und Steuersignalquellenflip- ■»-> flops 113. Die Übertragung von Informationen zwischen den Elementen der Anlage erfolgt parallel.
Die in der Anlage verwendeten Register sind aus Flipflops aufgebaut. In diesen Flipflops werden kurzzeitig eine Gruppe zusammengehöriger Binärziffern einer ίο Daten- oder Steuerinformation gespeichert.
Die für die Flipflops irgendeines Registers verwendeten Bezugszeichen setzen sich aus einem auch für das Register verwendeten Kennbuchstaben und einer Zahl zusammen, die der Stellenwertigkeit des darin gespei- r» cherten Informationsbits entspricht. So speichert Flipflop A 23 das vierundzwanzigste oder höchstwertige Bit, das im /4-Register 102 gespeichert ist, während das Flipflop flOO das niedrigstwertige Bit speichert, das im 0-Register gespeichert ist. Die in den einzelnen t>o Flipflops eines Registers gespeicherten Bits werden normalerweise parallel von einem Register in ein anderes übertragen. Außerdem können die Bits auch zwischen einigen Registern seriell übertragen werden.
Die Grundinformationseinheit bei dieser Anlage ist hi ein Wort mit 24 Binärziffern. Den Binärziffern zwischen den Bits 23 und 0 sind aufeinanderfolgende abnehmende Wertigkeiten zugeordnet.
Drei Hauptkategorien von Wörtern werden in der Rechenanlage nach Fig. 1 verwendet. 1) Datenwörter, 2) Befehlswörter und 3) HilfsWörter zur Adressierung und Steuerung. Bei den Hilfswörtern handelt es sich um folgende Arten:
a) Indexwörter
b) Steuerwörter.
Der Aufbau der Steuerwörter (b) ist in F i g. 2 gezeigt.
Bei der Übertragung von Informationen zwischen dem Speicher 11 und bestimmten peripheren Vorrichtungen sind die übertragenen binären Datenwörter wählbar in zwei Bytes ä 12 Bits, 3 Bytes a 8 Bits oder 4 Bytes ä 6 Bits unterteilt.
Zur Vereinfachung kann ein Binärwort auch durch eine Folge von »Oktalziffern« kompakter dargestellt werden, wobei jede Oktalziffer drei benachbarte Binärziffern darstellt.
Die Ausführung von Prozeß- und Steueroperationen wird in der Rechenanlage von einer Folge von Befehlswörtern verschiedener Arten ,..steuert, die in der Magnetkernspeichereinheii i3 gespeichert sind und eins nach dem anderen ausgeführt werden. Die Reihenfolge, in der die Befehle ausgeführt werden, wird Programmfolge (oder P-Fo!ge) genannt und von einem Zähler ge-reuert. Der Operationscode (die Bits 23—18) eines VoÜoperanden-Befehlswortes bestimmt den auszuführenden Operations- oder Programmschritt. Das Operandenadressenfeld (die Bits 13 — 0) bestimmt die Adresse eines Speicherplatzes im Speicher 11, aus dem ein Wort zur Verarbeitung oder Steuerung geholt werden soll oder in dem ein Wort während der Ausführung des Befehls gespeichert werden soll.
Zur Einleitung von Unterprogrammen, die spezielle Funktionen ausführen, z. B. um anzuzeigen, ob eine Adresse eine Endadresse ist, oder ob eine Adresseninformation durch eine vorbestimmte Größe modifiziert werden soll, werden andere Befehlswörter verwendet.
Fig.2 zeigt ein Steuerwort, das bei der Ausfühaing von Operationen zur Übertragung von Informationer aus einer peripheren Vorrichtung in den Speicher 11 oder zur Übertragung von Informationen in eine periphere Vorrichtung aus dem Speicher 11 verwendet wird. Das MFeId (die Bits 23—18) dts Steuerwortes bestimmt in Einer-Komplementform die Anzahl der zwischen der entsprechenden peripheren Vorrichtung und dem Speicher 11 zu übertragenden Wörter. Das AZ-FeId kann bis zu 63 Wörter vorgeben. Das C-FeId (die Bits 17 und 16) des Steuerwortes bestimmt in jedem Zeitpunkt die Anzahl der noch zwischen der peripheren Vorrichtung und dem Speicher 11 zu übertragenden Bytes, um die Übertragung des laufenden Wortes zu vollenden. Das C-FeId wire1 zu Beginn so eingestellt, daß es derr. PFeId gleicht. Das P-FeId (die Bits 15 und 14) bestimmt in Zweier-Komplementform die Anzahl der Bytes eins, zwei, dre! oder vier — in jedem Wort, das zwischen der peripheren Vorrichtung und dem Speicher 11 übertragen wird.
Das y-Feld (die Bits 13—0) des Steuerwortes bestimmt zu Anfang die um 1 verminderte Anfangsadresse der Gruppe von Speicherplätzen, in die oder aus denen Daten übertragen werden sollen.
Schutzeinrichtung
Im folgenden wird die Schutzeinrichtung der Rechenanlage im einzelnen beschrieben.
Bei der Benutzung der Schutzeinrichtung nach der Erfindung wird ein Unterschied gemacht zwischen laufenden oder Betriebsprogrammen, die geprüft und
von allen Programmierfehlern befreit worden sind, und Programmen, die nicht geprüft worden sind und Fehler enthalten können. Die Schutzeinrichtung nach der Erfindung ist besonders wichtig, wenn die zuletzt genannten Programme in einer im Zeitmultiplexbetrieb (auch TIME-SHARING genannt) arbeitenden Anlage geprüft wird, wobei früher geprüfte Betriebsprograinme gleichzeitig mit dem ungeprüften Programm ausgeführt werden, oder im Zusammenhang mit einem Prozeßrechner, dessen von vorher geprüften Betriebsprogrammen nicht benötigte Rechenzeit zum Prüfen ungeprüfter Programme verwendet wird. In jedem Falle darf das ungeprüfte Programm die laufenden Programme oder Betriebsprogramme nicht stören, und gespeicherte Daten, die bei der Ausführung dieser Betriebsprogramme benötigt werden, dürfen nicht geändert oder irgendwie zerstört werden. Dieser Schutz der Betriebsprogramme und zugehörigen Daten ist besonders wichtig bei Prozeßrechenanlagen, bei denen eine derartige Störung eine Unterbrechung oder Beeinträchtigung der Steuerung oder Regelung des gesteuerten oder geregelten Prozesses oder der gesteuerten oder geregelten Anlage zur Folge haben kann.
Die in F i g. 6 im einzelnen dargestellte Schutzeinrichtung wird in Verbindung mit der anhand von Fig. 1 beschriebenen Anlage beschrieben. Aus Gründen der Klarheit sind sind nicht alle Verbindungen zwischen den Blöcken nach den F i g. I und 6 im einzelnen beschrieben. Es dürfte jedoch dem Fachmann aufgrund der folgenden Beschreibung klar sein, wie die verschiedenen Verbindungen alle vorgenommen sind.
Die Magnetspeichereinheit 13 des Arbeitsspeichers 11 enthält 32 768 Speicherplätze zum Speichern von Informationen. In Übereinstimmung mit der Schutzeinrichtung ist die Magnetkernspeichereinheit 13 in 64 Speicherbereiche unterteilt, von denen jeder 512 Speicherplätze enthält. Die 512 Speicherplätze jedes Speicherbereichs sind wiederum in acht Blöcke unterteilt, von denen jeder 64 Speicherplätze enthält. Die Magnetkernspeichereinheit 13 enthält also 512
unterteilt ist. von denen jeder Block 64 Speicherplätze enthält.
Fig. 3 ist ein Diagramm oder eine Karte der Magnetkernspeichereinheit 13 zur bildlichen Darstellung der Unterteilung der 32 768 Wörter des Arbeitsspeichers in 512 Blöcke ä 64 Speicherplätze. In F i g. 3 sind die Speicherplatzadressen in Oktalschreibweise angegeben. So ist beispielsweise die in binärer Schreibweise uurch 15 Nullen dargestellte Speicherplatzadresse in oktaler Schreibweise als 0000O8 und die in binärer Schreibweise durch 15 Einsen dargestellte Adresse in oktaler Schreibweise als 777778 dargestellt Der mit V, bezeichnete Speicherbereich besteht aus den ersten 512 Speicherplätzen des Arbeitsspeichers, unterteilt in acht Blöcke mit je 64 Speicherplätzen, wie dargestellt. Die mit Vi- V64 bezeichneten Speicherbereiche enthalten je 512 Wortgruppen von Arbeitsspeicherplätzen, wie es in F i g. 3 gezeigt ist
Für jeden der 64 Speicherbereiche des 32 768-Wort-Arbeitsspeichers ist ein 24-Bit-Schutzzustandswort vorgesehen. Wie Fig.4 zeigt, ist das Schutzzustandswort für den Speicherbereich V. im Arbeitsspeicherplatz 00100s gespeichert, während die Schutzzustandswörter für die Speicherbereiche V2- Va jeweils in den Arbeitsspeicherplätzen 0010I8 bis OO177s gespeichert sind.
Jedes 24-Bit-Schutzzustandswort bestimmt oder kennzeichnet den Schutzzustand der acht aufeinanderfolgenden 64-Wörter-Arbeitsspeicherblöcke des entsprechenden Speicherbereichs. Nach Fig.5, die den Aufbau eines Schutzzustandswortes zeigt, bestimmen die Bitstellen Null und Eins des Zustandswortes den Schutzzustand des ersten 64-Wörter-Blocks des entsprechenden Speicherbereichs. In F i g. 5 stellen die Buchstaben .^irgendeine der oktalen Ziffernkombinationen 00-07, 10-17, 20-27, 30-37, 40-47. 50-57. 60-67 und 70-77 dar, die den 64 Speicherbereichen entsprechen. So bestimmen beispielsweise die Bits 0 und 1 des Schutzzustandswortes für den Speicherbereich Vm den .Schutzzustand der Arbeitsspeicherplätzc 76000» bis 76077m. Die Bitstelle 2 des Zustandswortes wird nicht verwendet. Die Bitstelien 3 und 4 des Zustandswortes bestimmen den Schutzzustand des zweiten 64-Wörtcr-Biocks des entsprechenden Speicherbereichs. Die Bitstelle 5 des Zustandswortes wird nicht verwendet. In ähnlicher Weise bestimmen die Bitstellen 6 und 7, 9 und 10. 12 und 13, 15 und 16, 18 und 19. und 21 und 22 den Schutzzustand des dritten, vierten, fünften, sechsten, siebten und achten 64-Wörter-Blocks des entsprechenden Speicherbereichs. Die Bitstellen 2, 5,8, 11, 14, 17. 20 und 23 sind für eine spätere Erweiterung der Schutzeinrichtung vorgesehen. Als Alternative kann auch cii. .o-Bit-Schutzzustandswort verwendet werden.
Schutzzustandscodes
Zur Bestimmung des Schutzzustands jedes Blocks mit 64 Arbeitsspeicherplätzen sind nach der Erfindung vier Schutzkodes vorgesehen. Diese vier Schutzkodes sind folgende:
j-, Schutz-/ustaniiscode
Bedeutung
11 Dieser Code bedeutet, daß das laufende Pro
gramm die Speicherplätze des entsprechen-
Ηλτι A4^X/Hrtpr_Rlrw*lrc nnhpcrhränW hi>-
nutzen kann. Das laufende Programm kann den Inhalt der Speicherplätze dieses Blocks auslesen, Informationen in die Speicherplätze dieses Blocks einlesen und Befehle aus den Speicherplätzen des Blocks holen.
01 Dieser Code bedeutet, daß das laufende Pro
gramm nur Informationen aus den Speicherplätzen des entsprechenden Blocks au lesen oder Befehle aus dem Block holen kann. Schreib- und Speicheroperationen sind bei dem Block nicht gestattet, mit Ausnahme durch einen relativ adressierten Befehl innerhalb eines Quasi-Unterprogramms. Außerdem dürfen jederzeit Informationen in Speicherplätzen 0000Og-OOOn8 gespeichert werden, die zum Speichern von Indexwörtern und Q-Register-Daten verwendet werden.
10 Dieser Code bedeutet, daß entweder Lese
oder Schreiboperationen in dem entsprechenden Block ausgeführt werden können, aber kein Befehl aus dem Block geholt werden darf, es sei denn, es ist der Ziel-Befehl eines .WTC-Befehls, eines Befehls eines Quasi-Unterprogramms oder eines von einer automatischen Programmunterbrechung
Fortscl/ung
Schul/·· Bedeutung
/uslands-
adressierten Befehls. Im allgemeinen kennzeichnet dieser Code einen Block, der mit Ausnahme zum Speichern von Befehlen für alle Zwecke verwendet werden kann.
(K) Dieser Code bedeutet, daß der zugehörige
64-Wörter-Arbeitsspeieherbloek für das laufende Programm unzugänglich ist, mit der Ausnahme, daß
1) das Auslesen eines Befehls während eines Qiiasi-Unterprogranims gestattet
2) organisatorische Befehle während eines Quasi-Unterprogramms diesen Bereich anwählen dürfen,
3) das Auslesen bzw. Holen des Ziel-Befehls eines ATTC-Befehls gestattet ist,
4) das Adressieren der Arbeitsspeicherplätze 0000O8-OOO 17„ gestattet ist und
5) das Auslesen oder Ausführen irgendeines Befehls gestattet ist. der durch eine autoautomatische Programmunterbrechung adressiert wird.
Schutzlogik
Das im Rechen- und Steuerwerk enthaltene Zustandsregister 105 dient zur Zwischenspeicherung von Schutzzustandswörtern, wenn die Anlage im Schutzoder Fangbetrieb arbeitet.
Ein Schutzzustandswort, das über das Arbeitsspeicher-Datenregister 81 (F i g. 1) aus dem Arbeitsspeicher 11 geholt wird, wird im Ö-Register 100 zwischengespeichert. Das im fl-Register 100 gespeicherte Zustandswort wird einem r araiieiaddierer ι iu zugeführt, der die unbenutzten Bits des 24-Bit-Zustandswortes abdeckt (maskiert) und die 16 Schutzzustandsbits ins Zustandsregister 105 überträgt. Die Flipflops L 00 und L 01, die den Bitstellen 0 und 1 des Zustandsregisters 105 zugeordnet sind, speichern also die Zustandsbits für den ersten 64-Wörter-Block des entsprechenden Speicherbereichs, während die Zustandsregister-Flipflops, die den Bitstellen 2 und 3,4 und 5, 6 und 7,8 und 9. 10 und 11,12 und 13, 14 und 15 des Zustandsregisters 105 entsprechen, die Zustandsbits jeweils für den zweiten, dritten, vierten, fünften, sechsten, siebten und achten 64-Wörter-Block des entsprechenden Speicherbereichs speichern.
Das Speicherbereichsregister 104 speichert die Bits der sechsthöchsten Stellen der Adresse des im Zustandsregister 105 gespeicherten Schutzzustandswortes. Der Inhalt des Speicherbereichsregisters 104 bestimmt also den Speicherbereich, der dem Zustandswort entspricht das gerade im Zustandsregister 105 gespeichert ist Die im Speicherbereichsregister 104 gespeicherten sechs Bits stellen auch die sechs Bits der niedrigsten Stellen der Adresse des Arbeitsspeicherplatzes dar, der das im Zustandsregister 105 gespeicherte Wort enthält Solange wie die Arbeitsspeicherpiätze in dem durch den Inhalt des Speicherbereichsregisters 104 bestimmten Speicherbereich adressiert sind, ist das Schutzzustandswort im Zustandsregister 105 anwendbar und bestimmt den Schutzzustand des adressierten Arbeitsspeicherplatzes.
Jedesmal, wenn der Arbeitsspeicher aus dem P-Register 103 oder Adressenregister 101 adressiert wird, wenn die Anlage im Schutz- oder Fangbetrieb arbeitet, werden die höchsten sechs Bits der Arbeitsspeicheradresse mit dem Inhalt des Speicherbereichsregisters 104 verglichen. Wenn diese Bits verschieden sind, liegt eine »Speicherbereichsdifferenz« vor, die anzeigt, daß
to das im Zustandsregister 105 gespeicherte Schutzzustandswort nicht anwendbar ist und den Schutzzustand des adressierten Arbeitsspeicherplatzes nicht bestimmt. Der Inhalt des Speicherbereichsregisters 104 wird dann so eingestellt, daß er den höchsten sechs Bits des
ii adressierten Arbeitsspeicherplatzes entspricht, und der neue Inhalt des Speicherbereichsregisters 104 wird zum Auslesen des anwendbaren Schutzzustandswortes aus dem Arbeitsspeicher in das Zustandsregister 105 verwendet. Wenn der Vergleich ergibt, daß der Inhalt des Speicherbereichsregisters 104 mit den höchsten sechs Bits des adressierten Arbeitsspeicherplatzes übereinstimmt, werden die Inhalte des Speicherbereichsregisters 104 und des Zustandsregisters 105 nicht geändert.
_'j Die Bits der sechs höchsten Stellen (die höchststelligen sechs Bits) der Adresse im P-Register 103 oder Adressenregister 101, d. h. einschließlich der Bitstelle 9 bis 14, bestimmen also einen der 64 Speicherbereiche der Magnetkernspeichereinheit 13. Diese Bits bilden in Verbindung mit den angenommenen Bits 001 ΟΟχ die Adresse des Arbeitsspeicherplatzes, der das Schutzzustandswort enthält, das jenem Speicherbereich entspricht. Wenn also der Inhalt der Bitstellen 9 bis 14 der in dem P-Register 103 oder Adressenregister 101
)i gespeicherten Adresse gleich 0O8 ist. ist der Arbeitsspeicherplatz, der das jenem Speicherbereich, d. h. dem Speicherbereich V1, entsprechende Zustandswort enthält, gleich 00100s. In ähnlicher Weise ist die Adresse des Arbeitsspeicherplatzes, der das Zustandswort für
t» den Speicherbereich Va enthält, der dadurch identifiziert wird, gleich 00107«. wenn der Inhalt der Bitstellen 9 bis Mgieicnu/gist.
Die Bitstellen 6 bis 8 der im P-Register 103 oder Adressenregister 101 gespeicherten Adressen kenn-
^i zeichnen einen der acht 64-Wörter-Arbeitsspeicherblöcke in dem durch den Inhalt der Bitstellen 9 bis 14 bestimmten Speicherbereich. Wenn also der Inhalt der Bitstellen 6 bis 8 der Arbeitsspeicheradresse gleich Os ist, wie es in F i g. 5 gezeigt ist, befindet sich der adressierte
Vi Arbeitsspeicherplatz in dem ersten 64-Wörter-Arbeitsspeicherblock dieses Speicherbereichs, und die Flipflops L 00 und L 01 des Zustandsregisters 105 enthalten die Zustandsbits, die diesem 64-Wörter-Arbeitsspeicherblock entsprechen. In ähnlicher Weise befindet sich der adressierte Arbeitsspeicherplatz in dem siebten 64-Wörter-Arbeitsspeicherblock des Speicherbereichs, wenn der Inhalt der Bitstellen 6 bis 8 der Arbeitsspeicheradresse gleich 6g ist und die Flipflops L 12 und L 13 des Zustandsregisters 105 enthalten den auf diesen
μ 64-Wörter-Arbeitsspeicherblock anwendbaren Zustandscode.
Die Bitstellen 0 bis 5 der im P-Register 103 oder Adressenregister 101 gespeicherten Adresse kennzeichnen den speziellen Arbeitsspeicherplatz, der im
b'i Arbeitsspeicherblock und Speicherbereich adressiert ist der durch den Inhalt der Bitstellen 6 bis 14 gekennzeichnet ist
In F i g. 6 ist die Schutzeinrichtung nach der Erfindung
dargestellt. Wenn nach Fig.6 der Arbeitsspeicher aus dem Adressenregister 101 adressiert wird, wird ein Durchschaltsignal SAMI (durch aus Gründen der Klarheit nicht dargestellte Mittel) erzeugt, das den Inhalt der Adressinregister-Bitstellen 14—9, der durch Ausgangssignale Fl 14— Fl09 der entsprechenden Adressenregisttr-FIipflops dargestellt wird, Ausgangsanschlüssen von logischen Verknüpfungsgliedern MA 14- MA 09 zugeführt, die mit der Bezugszahl 150 versehen sind. Das Durchschaltsignal SAMIschaltet den Inhalt der Adressenregister-Bilstellen 8 — 6, der durch Ausgangssignale F/08—F/06 entsprechender Adressenregister-Flipflops dargestellt wird, auf die Ausgangsanschlüsse logischer Verknüpfungsglieder MA 06— MA 08 durch, die mit der Bezugszahl 151 versehen sind. In ähnlicher Weise schaltet das Durchschaltsignal SAMI den Inhalt der Adressenregister-Bitstellen 5 bis 0, der durch Aii5"3ri™ssi™p.a!e F/05— F/00 entsprechender Adressenregister-Flipflops dargestellt wird, auf Ausgänge logischer Verknüpfungsglicder /VM 05— MA 00 durch, die mit der Bezugszahl 152 versehen sind. Wenn der Arbeitsspeicher aus dem P-Register 103 adressiert wird, wird das Durchschaltsignal SAMP in ähnlicher Weise durch nicht gezeigte Mittel erzeugt, so daß es den Inhalt der Bitstellen 14 bis 9, der durch Ausgangssignale FP 14— FP09 entsprechender P-Register-Flipflops dargestellt wird, auf Ausgangsanschlüsse logischer Verknüpfungsglieder 150 durchschaltet. Das Durchschaltsignal SAMP schaltet auch den Inhalt der P-Register-Bitstellen 8 — 6, der durch Ausgangssignale FP08 entsprechender P-Register-Flipflops dargestellt wird, und den Inhalt der Bitstellen 5 — 0, der durch Ausgangssignale FP05—FPOO entsprechender P-Register Flipflops dargestellt wird, jeweils auf die Ausgangsanschlüsse logischer Verknüpfungsglieder 151 und 152 durch. Unabhängig davon, von welchem Register der Arbeitsspeicher adressiert wird, kennzeichnen die Ausgangssignale der Verknüpfungsglieder 150 den Arbeitsspeicherbereich, der den adressierten Arbeitsspeicherplatz enthält, während die Ausgangssignale der Verknünfuneselieder 151 den ArbeitssDeicherblock im gekennzeichneten Arbeitsspeicherbereich kennzeichnen, der den adressierten Arbeitsspeicherplatz enthält. Die Ausgangssignale der Verknüpfungsglieder 152 kennzeichnen den speziellen Arbeitsspeicherplatz im gekennzeichneten Arbeitsspeicherblock.
Die durch die Ausgangssignale MA 14— MAOO der Verknüpfungsglieder 150, 151 und 152 dargestellte Arbeitsspeicheradresse wird über den Arbeitsspeicher-Multiplexer 12 in den Arbeitsspeicher übertragen. Die Ausgangssignale MA 14— MA 09 der Verknüpfungsglieder 150 werden auch dem Speicherbereichsregister 104 und eine Vergleichseinrichtung 155 bildenden Verknüpfungsgliedern MCM3—MCMX zugeführt. In F i g. 1 sind die eine Decodiervorrichtung bildenden Verknüpfungsglieder 150,151 und 152 aus Gründen der Übersichtlichkeit weggelassen. In der Praxis liegen sie jedoch zwischen den Registern 101 und 103, wie es in F i g. 6 angedeutet ist, um die erforderlichen Datenübertragungskanäle, wie generell in Fig.) angedeutet, zu bilden.
Die Ausgangssignale MA0&—MA06 der Verknüpfungsglieder 151 werden Verknüpfungsgliedern M 31 ΧΜ 3XX, gekennzeichnet durch die Bezugszahl 160, Verknüpfungsgliedern M2XX—M2XI, gekennzeichnet durch die Bezugszahl 161, Verknüpfungsgliedern MXXX—MXXX, gekennzeichnet durch die Bezugszahl 162, und Verknüpfungsgliedern MOXX-MOXX, ge kennzeichnet durch die Bezugszahl 163, zugeführt.
Die sechs höchststelligen Bits der Arbeitsspeicheradresse, die durch die Ausgangssignale MA 14—AM 09 der Verknüpfungsglieder 150 dargestellt wird, werden aufgrund der Erzeugung eines Durchschaltsignals MTAV im Speicherbereichsregister 104 gespeichert. Das Durchschaltsignal MTA Vwird von einer Speicherbereichsdifferenzlogik 168 erzeugt.
Die Vergleichseinrichtung 155 erhält die Ausgangssignale MA 14— MA 09 der Verknüpfungsglieder 150 und die Ausgangssignale der Flipflops des Speicherbereichsregisters 104 und vergleicht den Inhalt des .Speicherbereichsregisters 104, der den Arbeitsspeicherbereich bestimmt, auf das das im Zustandsregister 105 gespeicherte Arbeitsspeicher-Schutzzustandswort anwendbar ist, mit den sechs höchststelligen Bits der augenblicklichen Arbeitsspeicheradresse, die durch die AüSgangSS'gnalp rfff Vprknüpfiingsglieder 150 dargestellt wird. Bei Feststellung einer Ungleichheit, was bedeutet, daß das im Zustandsregister 105 gespeicherte Zustandswort nicht auf den adressierten Arbeitsspeicherplatz anwendbar ist, erzeugt die Vergleichseinrichtung 155 ein oder mehrere Steuersignale MCMi, MCM2 oder MCM3 abhängig von den ihnen zugeführten Eingangssignalen.
Das Verknüpfungsglied MVDF, gekennzeichnet durch die Bezugszahl 165, erhält die Ausgangssignale der Vergleichseinrichtiing 155 zusätzlich zu den Signalen MF13, MF14 und MXAQ. Das Verknüpfungsglied 165 gibt Ausgangssignale MVDF ab, wenn eines oder mehrere der Ausgangssignale MCM 1, MCM 2 und MCM 3 von der Vergleichseinrichtung 155 erzeugt werden und wenn bestimmte andere Bedingungen erfüllt sind, wie:
1) (MF 13) die Anlage arbeitet im Fangbetrieb (MTRM), die angezeigte Speicherbereichsdifferenz ist nicht die Folge einer Schutzverletzung (MTRP), die Anlage ist nicht dabei, ein neues Zustandswort ins Zustandsregister 105 zu übertragen, und zwar wegen der zuvor festgestellten Speich-^rbereichsdifferenz (MAMV), die Speicherbereichsdifferenz ist keine Folge einer automatischen Programmunterbrechung (SPIX) und
2) entweder (a) (SCOX MXAQ) der aus dem Arbeitsspeicher geholte Befehl ist nicht der Zielbefehl eines XEC-Befehls (XEXC) und gehört nicht zu einem Quasi-Unterprogramm (XQUA) oder (b) (MF 14) der Arbeitsspeicher wird aus dem Adressenregister 101 (SAMI) adressiert, und zwar während eines anderen Reihenfolgesteuerzustands als des Reihenfolgesteuerzustands 1 (SCOX), nicht als Folge einer automatischen Programmunterbrechung (SPI 2), und der adressierte Operand wird nicht in einem Quasi-Unterprogramm (MFXl) relativ adressiert. Wenn die letzte Bedingung nicht erfüllt ist, d. h. der adressierte Operand in einem Quasi-Unterprogramm adressiert wird, wird eine organisatorische Funktion, die die laufenden Programme nicht stören kann, ausgeführt, und der Zustand des adressierten Speicherplat ies braucht nicht geprüft zu werden.
Das Ausgangssignal MVDFdes Verknüpfungsgliedes 165 wird der Speicherbereichsdifferenzlogik 168 zugeführt. Die Logik 168 ist mit einem nicht dargestellten Taktsignalgenerator in an sich bekannter Weise verbunden, um deren Ausgangssignale zeitlich zu steuern. Beim Auftreten des Signals MVDF and eines Taktsignals wird das Durchschaltsignal MTA V von der
Logik 168 erzeugt und dem Speicherbereichsregister 104 zugeführt, um die höchststelligen sechs Bits der im Adressenregister 101 oder P-Register 103 gespeicherten Adresse ins Speicherbereichsregister '04 zu übertragen. Die Speicherbereichsdifferenzlogik spricht auch auf das Signal und ein Taktsignal dahingehend an, daß sie ein Signal M/tMK erzeugt. Das Signal MAMV wird dazu verwendet, den neuen Inhalt des Speicherbereichsregisters 104 zu den Verknüpfungsgliedern 152 durchzuschalten. Das Durchschaltsignal MAMV schaltet das Verknüpfungsglied MA 06 der Verknüpfungsglieder 151 durch. Beim Auftreten des Signals MAMV und eines Taktsignals wird das Signal MLSR von der Logik 168 erzeugt, das alle Flipflops des L-Registers 105 setzt. Das Signal MAH wird ebenfalls von der Logik 168 beim Auftreten des Signals MAMV und eines Taktsignals erzeugt und schaltet das neue Arbeitsspeicher-Schutzzustandswort. das aus dem Arbeitsspeicher geholt wird urd an den Ausgängen des Paralleladdierers 110 zur Verfugung steht, ins /.-Register 505 durch. Ein nicht gezeigtes Signal wird beim Auftreten des Signals MVDFoder MAMV erzeugt und hält das Rechen- und Steuerwerk nach Fig. I in seinem augenblicklichen Reihenfolgesteuerzustand.
Die Flipflops L 15— LOO des Zustandsregisters 105 _>ί werden alle aufgrund des von der Speicherdifferenzlogik 168 erzeugten Signals MLSR und eines Taktsignals in den 1-Zustand gesetzt. Beim Auftreten des von der Soeicherbereichsdifferenzlogik 168 erzeugten Signals MAL 1 und eines Taktsignals wird das Schutzzustands- κι wort von den Ausgängen des Paralleladdierers 110 ins L-Register 105 übertragen. Die Ausgangssignale FL 14 — FL 00 und FL 14- FL 00 werden Verknüpfungsgliedern 160—163 zugeführt. Die Verknüpfungsglieder 160—163 crhaltsn auch Ausgangssignale MA 08 — AM 06 der r, Verknüpfungsglieder 151. Die Ausgangssignale der Glieder 160—163 werden Verknüpfungsgliedern 170 zugeführt. Die Ausgangssignale der Verknüpfungsglieder 160 stellen den Schutzzustandscode dar, der entweder auf den siebten oder achten 64-Wörter-Ar- w beitsblock des im Speicherbereichsregister 104 angegebenen anwendbar ist, je nachdem, welcher Arbeitsspeicherblock von den Ausgangssignalen der Verknüpfungsglieder 151 adressiert wird. Die Ausgangssignale der Verknüpfungsglieder 171 stellen den Schutzzu- -r> Standscode dar, der entweder auf den fünften oder sechsten 64-Wörter-Arbeitsblock des im Speicherbereichsregister 104 angegebenen Speicherbereichs anwendbar ist, je nachdem, welcher Arbeitsspeicherblock den durch die Ausgangssignale der Verknüpfungsglie- w der 151 adressierten Arbeitsspeicherplatz enthält. Die Ausgangssignale M1 IA" und MiXi der Verknüpfungsglieder 162 stellen den Schutzzustandscode dar, der entweder auf den dritten oder den vierten 64-Wörter-Arbeitsblock des im Speicherbereichsregister 104 gekennzeichneten Speicherbereichs anwendbar ist, je nachdem, welcher Arbeitsspeicherblock den durch die Ausgangssignale der Glieder 151 adressierten Speicherplatz enthält Die Ausgangssignale MO IX-und MOXl der Verknüpfungsglieder 163 stellen den Schutzzu- ω Standscode dar, der entweder auf den ersten oder den zweiten 64-Wort-Arbeitsspeicherblock des im Speicherbereichsregister 104 angegebenen Speicherbereichs anwendbar ist, je nachdem, welcher Arbeitsspeicherblock den durch die Ausgangssignale der t>5 Verknüpfungsglieder 151 dargestellten Speicherplatz enthält
Das Ausgangssignal ML XX der Verknüpfungsgliede?
170 stellt eine binäre Eins dar, wenn das Bit der höchsten Stelle des Arbeitsspeicherzustandscodes im Zustandsregister 105, der auf den adressierten Arbeitsspeicherplatz anwendbar ist, eine binäre Eins ist In ähnlicher Weise stellt das Ausgangssignal MLX1 der Verkniipfungsglieder 170 eine binäre Eins dar, wenn das Bit der niedrigsten Stelle des Schutzzustandscodes im Zustandsregister 105, der auf den adressierten Arbeitsspeicherplatz anwendbar ist, eine binäre Eins ist. Die Ausgangssignale ML IA" und MLX 1 der Verknüpfungsglieder 170 stellen also den Schutzzustandscode dar, der auf den 54-Wörter-Arbeitsblock des Arbeitsspeicherbereichs anwendbar ist, der dem Zustandswort im Zustandsregister 105 entspricht und den Arbeitsspeicherplatz enthält, der aus dem Adressenregister 101 oder P-Register 103 adressiert ist. Die Ausgangssignale der Verknüpfungsglieder 170 werden einem Verknüpfungsglied ML 11. gekennzeichnet durch die Bezugszahl 172, einem Verknüpfungsglied ML 01, gekennzeichnet durch die Bezugszahl 173, einem Verknüpfungsglied MLQO, gekennzeichnet durch die Bezugszahl 174. und durch die Bezugszahl 175 gekennzeichneten Verknüpfungsgliedern MFM— MFOl zugeführt.
Das Ausgangssignal ML II des Verknüpfungsgliedes 172 stellt eine Eins dar, wenn der anwendbare Schutzzustandscode 11 ist. Das Ausgangssignal MLOl des Verknüpfungsgliedes 173 ist eine binäre Eins, wenn der anwendbare Schutzzustandscode 01 ist. D.is Ausgangssigna! MLOO des Verknüpfungsgliedes 174 ist eine binäre Eins, wenn der anwendbare Schutzzustandscode 00 ist. Die Ausgangssignale der Verknüpfungsglieder 172, 173 und 174 werden den Verknüpfungsgliedern 175 zugeführt. Die Verknüpfungsglieder 175 erhalten auch die Ausgangssignale von Verknüpfungsgliedern MFI8, MF17. MF12 und MF10-MF06, die zusammen durch die Bezugszahl 180 gekennzeichnet sind, und andere Signale, die in der Anlage durch nicht dargestellte Mittel erzeugt werden, d. h. die Signale SCOI, 5C04, VVDOI. MlRT, TTSE, MTRM, TSCA. SAMW, DGN2 und MVDA, wie es in Fi g. 6 gezeigt ist. Diese den Verknüpfungsgliedern 175 zugeführten Signale werden von einer Logik in der hinnctitung in Abhängigkeit von speziellen Bedingungen in α/ι sich bekannter Weise erzeugt. Die Verknüpfungsglieder 175 erhalten auch die Ausgangssignale ML IA" und MLX \ von Verknüpfungsgliedern 170.
Die Verknüpfungsglieder 175 und zugehörige Verknüpfungsglieder 180 bestimmen während des Sehutz- und Fangbetriebs die Bedingungen, unter denen eine Adressierung des durch den Inhalt des Adressenregisters 101 oder P-Registers 103 gekennzeichneten Arbeitsspeicherplatzes zulässig ist, und mithin bestimmen sie Verletzungen der Schutzanforderungen der Anlage. Die Ausgangssignale der Verknüpfungsglieder 175 werden einem Verknüpfungsglied MFVL zugeführt, das durch die Bezugszahl 185 gekennzeichnet ist Die Verknüpfungsglieder 185 sind so ausgebildet daß das Ausgangssignal MFVL des Verknüpfungsgliedes 185 zum Anzeigen einer Schutzverletzung erzeugt wird, wenn irgendeines der Ausgangssignale MF04—MFOl der Verknüpfungsglieder 175 eine binäre Eins darstellt. Das Ausgangssignal MFVL des Verknüpfungsgliedes 185 wird einer Fanglogik 190 zugeführt.
Die speziellen Bedingungen, unter denen eine Schutzverletzung der Anlage auftritt und das Signa! MFVL erzeugt wird, werden hier nicht im einzelnen beschrieben. Es sei jedoch darauf hingewiesen, daß die verschiedenen zuvor beschriebenen Bedingungen Anlaß
zu einer Verletzung geben können und daß die Einrichtung so ausgebildet sein kann, daß andere Bedingungen, je nach der speziell verwendeten Rechenanlage, ebenfalls Anlaß zu einer Schutzverletzung geben können.
Die Fanglogik 190 erhält das Ausgangssignal des Verknüpfungsgliedes 185. Beim Auftreten des Ausgangssignals MFVL des Verknüpfungsgliedes 185 gibt die Fanglogik 190 das Signal MTRP ab, die einen Korrekturvorgang in der Einrichtung auslöst
Während des Betriebs ist den Speicherplätzen des Arbeitsspeichers, die ein zuvor geprüftes oder laufendes Programm enthalten, der Schutzzustandscode 00 zugeordnet, um zu verhindern, daß diese Speicherplätze durch das ungeprüfte Programm, das Fehler enthalten kann, aufgerufen werden. Den Arbeitsspeicherplätzen, die Informationen und Daten enthalten, die für das laufende Programm benötigt werden und die vor einer Änderung geschützt werden müssen, ist der Schutzzustandscode 01 zugeordnet, der es einem ungeprüften Programm gestattet. Informationen aus diesen Speicherpiätzen auszulesen, aber das ungeprüfte Programm daran hindert. Informationen in diejenigen Arbeitsspeicherplätze einzulesen, denen dieser Zustandscode zugeordnet ist. Der nur zum Auslesen von Daten vorgesehene Speicherteil kann auch üblicherweise verwendete Unterprogramme enthalten. Den Arbeitsspeicherplätzen, die das ungeprüfte Programm en1 halten, werden entweder der Schutzzustandscode 11, der eine unbeschränkte Verwendung der Arbeits- ju Speicherplätze gestattet, oder der Code 01 zugeordnet, der es dem ungeprüften Programm gestattet, Daten oder Befehle aus den Arbeitsspeicherplätzen zu lesen. Einem anderen Teil des Arbeitsspeichers kann der Schutzzustandscode 10 zugeordnet sein, und er kann als Hilfsteil dienen, aus dem Informationen ausgelesen oder in dem Informationen gespeichert werden können. Programme können jedoch nicht mit dem Hilfsteil gespeichert werden.
Während des Betriebs wird ein Fangbetriebsflipflop TRM (das zu den Verknüpfungsgliedern 175 gehört) durch nicht gezeigte Mittel in den 1-Zustand gesetzt, um die Schutzeinrichtung in Betrieb (in den Fangbetrieb) zu setzen. Im Fangbetrieb ist die Anlage gegen potentielle störende Vorgänge, die durch das ungeprüfte Programm ausgelöst werden, geschützt. Zu diesem Zweck werden alle Speicherzugriffe überwacht, die das Rechen- und Steuerwerk 10 ausführt, die Benutzung der Arbeitsspeicherplätze wird durch cien diesen Arbeitsspeicherplätzen zugeordneten Schutzzustandscode ge- regelt, wodurch geschützte Bereiche des Arbeitsspeichers bewahrt bleiben, unerlaubte Eingabe/Ausgabe-Operationen werden verhindert und der Übergang der Rechenanlage in einen Zweig oder Zyklus, der die Bedienung anderer Echtzeit-Forderungen verhindern « würde, wird vermieden.
Jedesmal, wenn der Arbeitsspeicher aus dem Adressenregister 101 oder P-Register 103 adressiert wird, werden die sechs höchststelligen Bits der Arbeitsspeicheradresse, die das Arbeitsspeichervolumen be- w> stimmen, das den adressierten Speicherplatz enthält, mit dem Inhalt des Speicherbereichsregisters 104 verglichen, der den Arbeitsspeicherbereich bestimmt, der dem gerade im Zustandsregister 105 gespeicherten Schutzzustandswort entspricht Wenn eine Differenz bzw. ein 1» Unterschied zwischen den sechs höchststelligen Bits der Arbeitsspeicheradresse und dem Inhalt des Speicherbereichsregisters 104 besteht, wodurch angezeigt wird.
daß das Zustandsregister 105 nicht den Schutzzustandscode enthält, der auf den adressierten Arbeitsspeicherplatz anwendbar ist, wird eines der Signale MCMI1 MCM 2 oder MCM3 erzeugt Beim Auftreten eines der Signale AfCAi 1, MCM2 oder MCM3 wird das Signal MVDF erzeugt, wenn die angezeigte Speicherbereichsdifferenz nicht die Folge einer vorherigen Schutzverletzung ist wenn kein neues Zustandswort wegen einer vorher festgestellten Speicherbereichsdifferenz ins Zustandsregister 105 übertragen wird und wenn einer Programmunterbrechungsforderung nicht nachgekommen wird. Das Signal MVDS wird nicht erzeugt wenn beispielsweise der Arbeitsspeicher nicht durch den Inhalt des Adressenregisters 101 adressiert wird.
Wenn der Arbeitsspeicher 11 das Signal MRLS abgibt, wird ein Signal A/7VIV erzeugt das die sechs höchststelligen Bits der Arbeitsspeicheradresse aus dem Adressenregister 101 oder dem P-Register 103 ins Speicherbereichsregister 104 durchschaltet. Das Flipflop AMVm der Logik 168 wird gesetzt um das Signal MA V zu erzeugen, das den Arbeitsspeicher durch den Inhalt des Speicherbereichsregisters 104 adressiert und bewirkt daß die Verknüpfungsglieder 151 das Signal MA 06 abgeben, um den Arbeitsspeicherplatz zu adressieren, der das Schutzzustandswort enthält das dem adressierten Arbeitsspeicherplatz entspricht Das Signal SAMP oder das Signal SAMI, je nachdem welches anwendbar ist, wird eine binäre Null, weil der Arbeitsspeicher und aus dem Speicherbereichsregister 104 adressiert wird. Da der Inhalt des Speicherbereichsregisters 104 jetzt den höchsten sechs Bits der Adresse des vorgeschriebenen Arbeitsspeicherplatzes entspricht, wird das Signal A/VDFeine binäre Null.
Das Schutzzustandswort, das aus dem Speicherbereichsregister 104 adressiert wird, wird aus dem Magnetkernspeicher 13 adressiert und aus dem Arbeitsspeicher-Datenregister 81 durch ein Durchschaltsignal ins B-Register 100 übertragen. Ein weiteres Durchschaltsignal schaltet den Inhalt des B-Registers 100 zum Paralleladdierer 110 durch. Ein weiteres Taktsignal bewirkt, daß die Logik 168 das Signal MLSR erzeugt, das alle Flipflops des Zustandsregisters 105 ir den 1-Zustand setzt Dann wird das Signal MRLi erzeugt, das seinerseits die Erzeugung des Signals MAL 1 bewirkt, um die 16 Schutzzustandscode-Bits des 24-Bit-Schutzzustandswortes von den Ausgängen des Paralleladdierers HO ins Zustandsregister 105 zu übertragen. Nachdem das richtige Schutzzustandsworl im Zustandsregister 105 gespeichert ist wird der Arbeitsspeicher wieder aus dem Adressenregister 101 oder S-Register 103 für die Operation adressiert, die die Ermittlung der Speicherbereichsdifferenz bewirkt hat In diesem Augenblick kann die Operation beendet werden, vorausgesetzt, daß keine Schutzverletzung oder kein Fang bzw. keine Falle (TÄ/iP^auftritt.
Wenn das richtige Schutzzustandswort im Zust&ndsregister 105 enthalten ist werden die Bits 6—8 der Arbeitsspeicheradresse, die den 64-Wörter-Arbeitsspeicherblock des Arbeitsspeicherbereichs anzeigen der den adressierten Arbeitsspeicherplatz enthält, vor den Verknüpfungsgliedern 160—163 zum Auswähler des richtigen Schutzzustandscodes verwendet, der in Zustandsregister 1OS gespeichert ist Die Bits de: ausgewählten Schutzzustandscodes werden von der Verknüpfungsgliedern 170, 172,173 und 174 decodier und von den Verknüpfungsgliedern 175 zur Überprü fung auf eine Schutzverletzung verwendet fm allgemei nen wird eine Schutzverletzung festgestellt:
a) Wenn sich der adressierte Arbeitsspeicherplatz in einem unzugänglichen Teil (Zustandscode 00) befindet; dann wird ein Befehl eines Quasi-Unterprogramms ausgeführt, aber der Operand nicht relativ adressiert, wodurch angezeigt wird, daß es sich um eine andere als um eine organisatorische Operation handelt; wenn der Operand relativ adressiert wäre, könnte die organisatorische Operation die Sicherheit der Anlage nicht beeinträchtigen, und es würde kein Fang (trap) auftreten (MF04);
b) wenn sich der adressierte Arbeitsspeicherplatz in einem unzugänglichen Teil (Zustandscode 00) und die Anlage entweder im Reihenfolgesteuerzustand 3 oder im Reihenfolgesteuerzustand 2 befindet und einen LDX-Bdehl ausführt; wenn der Operand jedoch in einem Quasi-Unterprogramm relativ adressiert wird, bedeutet dies eine organisatorische Operation, so daß kein Fang auftritt (MFM);
c) wenn sich der adressierte Arbeitsspeicherplatz entweder in einem unzugänglichen Teil oder in einem Teil, aus dem nur ausgelesen werden darf (Zustandscode 00 oder 01), und sich die Anlage im Reihenfolgesteuerzustand 2 befindet und einen D/V/T-Befehl ausführt oder sich im Reihenfolgesteuerzustand 3 befindet und einen STiQ-Befehl ausführt, sofern die Operanden dieser Befehle in einem Quasi-Unterprogramm relativ adressiert werden, wodurch eine organisatorische Operation (MFOl angezeigt wird; y,
d) wenn sich der adressierte Arbeitsspeicherplatz in einem unzugänglichen Teil oder in einem Lese/ Schreib-Teil (Zustandscode 00 oder 10) befindet, ein Befehl aus dem Arbeitsspeicher geholt wird und nicht der Ziel-Befehl eines XfC-Befehls und kein Befehl eines Quasi-Unterprogramms (MF03) ist; oder
e) wenn sich der adressierte Arbeitsspeicherplatz in einem Teil befindet, aus dem nur ausgelesen wird (Zustandscode 01), wird der 57/4-Befehl ausgeführt, und wenn der Befehl zu einem Quasi-Unterprogramm gehört, wird der Operand nicht relativ adressiert, und bei der Operation handelt es sich daher nicht um eine organisatorische Operation (MF 02). Ji
Obwohl die oben angegebenen Bedingungen für das dargestellte Ausführungsbeispiel vorgeschieben sind, können sie entsprechend den Schutzbestimmungen einer anderen Anlage geändert werden. Bei dem dargestellten Ausführungsbeispiel dienen die angegebe- ίι> nen Bedingungen für eine Schutzverletzung zum angemessenen Schutz der Anlage gegen Fehler, die in einem ungeprüften Programm auftreten können.
Nachdem das richtige Schutzzustandswort aus dem Arbeitsspeicher geholt und im Zustandsregister 105 '."> gespeichert ist. wird der auf den adressierten Arbeitsspeicherplatz anwendbare Schutzzustandscode geprüft, wenn eine Speicherbereichsdifferenz festgestellt wurde. Wenn irgendeines der Verknüpfungsglieder MFOi- MFM (die auch als Tore bezeichnet werden können) m> der logischen Einheit 175 durchgeschaltet ist und dadurch eine Schutzverletzung der Anlage anzeigt, erzeugt das Verknüpfungsglied 185 das Signal MFVL Das Signal MFVL sperrt bestimmte Operationen in dem Rechen- und Steuerwerk, um zu verhindern, daß das t>< ungeprüfte Programm laufende Programme oder Betriebsprogramme stört. So kann beispielsweise das Speichern von Informationen im Arbeitsspeicher verhindert werden. Als nächstes wird das Fang-Flipflop in der Fang-Logik 190 in den !-Zustand gesetzt, so daß das Signal MTRP erzeugt wird. Der Inhalt des Adressenregisters 101 wird dann den Eingängen des Paralleladdierers 110 zugeführt, und außerdem werden Durchschaltsignale erzeugt, die die Ausgangssignale des Paralleladdierers 110 ins B-Register 100 durchschalten und dadurch die Übertragung des Inhalts des Adressenregisters 101 ins B-Register 100 vervollständigen. Dann wird durch nicht gezeigte Mittel ein Signal erzeugt, das die Auslösung einer Schreiboperation im Arbeitsspeicher gestattet. Durch ein Signal MTRP werden Verknüpfungsglieder bzw. Tore MA 00 und MA 04 durchgeschaltet, um den Arbeitsspeicherplatz 00021a zu adressieren und den Inhalt des Adressenregisters 101 und des B-Registers 100 in den Arbeitsspeicherplatz 0002I8 zu übertragen.
Als nächstes geht die Anlage in den Reihenfolgesteuerzustand 1 über. Das Verknüpfungsglied MA 04 wird vom Signal MTRP durchgeschaltet, um die Adresse des Arbeiisspeicherpiatzes 0ÖÖ2Ö8 ins Arbeitsspeicheradressenregister 80 zu übertragen. Der Inhalt des Arbeitsspeicherplatzes OOO2O3 umfaßt einen 5PB-Befehl zum Auslösen der Ausführung eines Korrekturprogramms. Der Befehl SPB wird ins Rechen- und Steuerwerk übertragen, und die Fangbetrieb- und Fangflipflops werden zurückgesetzt. Dann wird ein Fehlerprogramm ausgeführt, um die Ursache zu korrigieren, die den Anlaß der Schutzverletzung bildete.
Zusammenfassend wird für jeden Speicherbereich von 512 Speicherplätzen des Arbeitsspeichers ein Schutzzustandswort gebildet. Jeder Speicherbereich ist in acht 64-Wort-Blöcke unterteilt, und verschiedene Bitstellen des Schutzzustandswortes, das einem Speicherbereich zugeordnet ist, bestimmen den Schutzzustand jedes 64-Wort-Blockes. Die Schutzzustandswörter sind in vorbestimmten Speicherplätzen des Arbeitsspeichers gespeichert. Das Zustandsregister ist im Rechenwerk angeordnet und dient zur Speicherung eines Schutzzustandswortes. Das Speicherbereichsregister dient zur Speicherung von sechs Bits, die den Speicherbereich kennzeichnen, dem das im Zustandsregister gespeicherte Zustandswort zugeordnet ist. Außerdem ist ein Flipflop vorgesehen, das einen vorbestimmten Zustand einnimmt, wenn das Programm, das immer noch Fehler enthalten kann, ausgeführt wird, um den Schutzbetrieb der Anlage zu bestimmen. Jedesmal, wenn der Arbeitsspeicher entweder vom Adressenregister oder vom P-Rcg\%ir des Rechenwerks während des Schutzbetriebs adressiert wird, werden die Bits der sechs höchsten Stellen der Adresse mit dem Inhalt des Speicherbereichsregisters verglichen, um festzustellen, ob das richtige Zustandswort im Zustandsregister gespeichert ist. Wenn der Vergleich ergibt, daß das richtige Zustandswort nicht im Zustandsregister gespeichert ist, werden die sechs höchststelligen Adressenbits ins Speicherbereichsregister übertragen, und der Arbeitsspeicher wird vom Speicherbereichsregister adressiert, um das Schutzzustandswort, das dem adressierten Arbeitsspeicher zugeordnet ist, aus dem Arbeitsspeicher ins Zustandsregister zu übertragen.
Die Arbeitsspeicheradresse wird zum Auswählen der anwendbaren Bitstellen des Zustandswortes im Zustandsregister verwendet. Die ausgewählten Zustandsbits werden decodiert und Verknüpfungsgliedern zugeführt, die auch Informationen erhalten, die den Zweck angeben, für den der Arbeitsspeicher adressiert
wird, d. h. zum Auslesen oder Ausführen von Befehlen, und ob ein Befehl ausgeführt wird, seine Kennung, den Reihenfolgesteuerzustand, in dem die Anlage arbeitet, das Vorhandensein einer Programmunterbrechung und anderer Bedingungen oder Zustände der Anlage. Die Verknüpfungslogtk bestimmt, ob eine nicht verlangte Operation versucht wird, was eine Schutzverletzung der Anlage darstellt. Wenn eine Schutzverletzung aufgetreten ist, wird ein Signal (MFVL) erzeugt, das die Übertragung des Inhalts des Adressenregisters in einen bestimmten Arbeitsspeicherplatz veranlaßt Anstelle der normalen Befehlsausleseoperation wird der Inhalt eines anderen vorbestimmten Arbeitsspeicherplatzes automatisch ins Rechenwerk übertragen, um eine Korrektur auszuführen.
Die Bitstellen der Zustandswörter, die jedem 64-Wort-Block des Arbeitsspeichers zugeordnet sind, können mindestens vier Schutzzustände bestimmen, d. h. zugänglich, nicht zugänglich, oder nur zum Datenlesen oder Eefehlslesen zugänglich, oder nur zum Datenlesen oder üatenschreiben. aber nicht zum Befehlslesen zugänglich. Befehle, die den Inhalt geschützter Speicherbereiche des Arbeitsspeichers nicht beeinflussen können, dürfen ausnahmslos ausgeführt werden. Bei den meisten Befehlen hängen Schutzverletzungen der Anlage von der Art der gerade ausgeführten Befehle, dem Schutzzustand des adressierten Arbeitsspeicherplatzes und anderer Bedingungen oder Zustände in der Anlage ab. Schutzverletzungen werden als Antwort auf irgendwelche Befehle angezeigt, die normalerweise Eingabe/Ausgabe-Operationen auslösen würden, d. h. Übertragungen zwischen dem Arbeitsspeicher und ein.-m Peripheriegerät der Rechenanlage. Um den ungehinderten Ablauf der Betriebsprogramme bei der Steuerung, Regelung oder Überwachung des Prozesses zu gewährleisten, verläßt die Anlage den Schutzbetrieb automatisch beim Auftreten einer Programmunterbrechung.
Die Schutzeinrichtung nach der Erfindung ist also in der Lage, einen wirksamen und zuverlässigen Schutz der laufenden Programme oder Betriebsprogramme und der zugehörigen Daten im Arbeitsspeicher zu bilden, und gestattet gleichzeitig die Speicherung der
ίο Schutzzustandsinformation für alle Arbeitsspeicherplätze in einem verhältnismäßig kleinen Teil des Arbeitsspeichers. Die Fähigkeit der Schutzeinrichtung zwischen verschiedenen Befehlsarten zu unterscheiden und die Fähigkeit mindestens vier Schutzzustände zuzuordneri steigert die Flexibilität der Einrichtung. Die Verfügbarkeit eines dritten Schutzzustandsbits für jeden 64-Wörter-Block gestattet die Erweiterung der Anlage auf acht Schulzzustände für jeden Block. Die Schutzeinrichtung verhindert die Auslösung aller
2« Eingabe/Ausgabe-Operationen während der Ausführung eines ungeprüften Programms, um die im Arbeitsspeicher gespeicherten Programme und Daten zu schützen und zu gewährleisten, daß keine unerlaubten Steueroperationen ausgelöst werden. Die Ausführung von Programmunterbrechungen wird nicht beschränkt, da die Anlage automatisch den Schutz- oder Fangbetrieb beim Auftr- ten einer Programmunterbrechung verläßt. Die Einrichtung schützt auch gegen Schleifen oder Zyklen, die durch ein ungeprüftes
V) Programm ausgelöst werden können, das die Ausführung des laufenden Programms oder Beinebsprogranims stört, wodurch die Anforderungen an den Echtzeit-Betrieb der Anlage befriedigt werden.
Micr/ii 4 Blatt Zcichininucn

Claims (5)

Patentansprüche: b)
1. Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage mit einem Adressenregister und in dem Arbeitsspeicher gespeicherten Zustandswörtern, die jeweils den Speicherschutz für einen zugeordneten Speicherbereich definieren, gekennzeichnet durch folgende Merkmale:
a) es ist ein Speicherbereichsregister (104) vorgesehen, das jeweils die Adresse des zuletzt verwendeten Speicherbereiches (Vy, Vi; · · · VM) speichert und die Adresse eines neuen Speicherbereiches aus dem entsprechenden Teil des Adressenregisters (101) übernimmt, wenn eine den Inhalt des Adressenregisters mit dem Inhalt des Speicherbereichsregisters (104) vergleichende Vergleichseinrichtung (155) Ungleichheit feststellt;
es ist ein Zustandsregister (105) vorhanden, das das Schur^zustandswort (F i g. 5) für den durch das Speicherbereichsregister (104) definierten Speicherbereich aus einem reservierten zentralen Speicherbereich des Arbeitsspeichers (11) übernimmt;
c) jeder Speicherbereich ist in Blöcke unterteilt und jedes Schutzzustandswort enthält in geometrischer Zuordnung für jeden Block eine vorgegebene Anzahl von Schutzbits, die bei der Adressierung des jeweiligen Blocks über eine auch mit dem Adressenregister (101) verbündene Decodiervorrichtung (150—152) entsprechend der geometrischen Zuordnung ausgewählt und ausgewerte* werden.
2. Schutzeinrichtung nach Anbruch 1, gekennzeichnet durch Sperrvorrichtungen (175, Signal MTRM) zum Sperren der Schutzeinrichtung (Fig.6), wenn diese anzeigt, daß der adressierte Arbeitsspeicherplatz nicht geschützt ist.
3. Schutzeinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Schutzeinrichtung (Fig. 6) eine Vorrichtung (185) enthält, die ein Signal (MFVL) erzeugt, wenn die Kommunikation zwischen dem Rechenwerk (10) und dem Arbeitsspeicherplatz verhindert ist, und daß die Rechenanlage auf dieses Signal (MFVL) dahingenend anspricht, daß sie den Zugriff zu diesem Arbeitsspeicherplatz verhindert.
4. Schutzeinrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die Rechenanlage beim Auftreten dieses Signals (MFVL) einen Programmfehler-Korrekturvorgang auslöst.
5. Schutzeinrichtung nach Anspruch 4, bei der die Rechenanlage eine Programmunterbrechungsvorrichtung zum wählbaren Unterbrechen der Ausführung des Hauptprogramms durch das Rechenwerk enthält, dadurch gekennzeichnet, daß die Schutzeinrichtung (Fig.6) eine Vorrichtung (175) enthält, die auf eine durch die Programmunterbrechungsvorrichtung ausgelöste Programmunterbrechung dahingehend anspricht, daß sie die Schutzeinrichtung (F i g. 6) sperrt, wenn das Programmunterbrechungs- Befehlssignal die Ausführung eines Befehls eines fehlerfreien Programms anzeigt.
DE1909090A 1968-02-23 1969-02-24 Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage Expired DE1909090C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US70756468A 1968-02-23 1968-02-23

Publications (3)

Publication Number Publication Date
DE1909090A1 DE1909090A1 (de) 1969-09-04
DE1909090B2 DE1909090B2 (de) 1979-10-31
DE1909090C3 true DE1909090C3 (de) 1980-07-17

Family

ID=24842209

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1909090A Expired DE1909090C3 (de) 1968-02-23 1969-02-24 Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage

Country Status (4)

Country Link
US (1) US3562717A (de)
DE (1) DE1909090C3 (de)
FR (1) FR2002539A1 (de)
GB (1) GB1262359A (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3683418A (en) * 1970-04-16 1972-08-08 Bell Telephone Labor Inc Method of protecting data in a multiprocessor computer system
JPS4930578B1 (de) * 1970-09-30 1974-08-14
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3858182A (en) * 1972-10-10 1974-12-31 Digital Equipment Corp Computer program protection means
FR2258112A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US3890601A (en) * 1974-03-11 1975-06-17 Philco Ford Corp Password operated system for preventing unauthorized or accidental computer memory alteration
FR2269150B1 (de) * 1974-04-25 1977-10-28 Honeywell Bull Soc Ind
US4017839A (en) * 1975-06-30 1977-04-12 Honeywell Information Systems, Inc. Input/output multiplexer security system
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
US4099243A (en) * 1977-01-18 1978-07-04 Honeywell Information Systems Inc. Memory block protection apparatus
US4196476A (en) * 1977-08-30 1980-04-01 Xerox Corporation Reproduction machine with selectively disclosable programs
US4328542A (en) * 1979-11-07 1982-05-04 The Boeing Company Secure implementation of transition machine computer
US4409655A (en) * 1980-04-25 1983-10-11 Data General Corporation Hierarchial memory ring protection system using comparisons of requested and previously accessed addresses
US5404499A (en) * 1990-01-24 1995-04-04 Logical Services Incorporated Semi-automatic program execution error detection

Also Published As

Publication number Publication date
GB1262359A (en) 1972-02-02
DE1909090A1 (de) 1969-09-04
US3562717A (en) 1971-02-09
FR2002539A1 (de) 1969-10-17
DE1909090B2 (de) 1979-10-31

Similar Documents

Publication Publication Date Title
EP0512542B1 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
DE1951552C3 (de) Speichereinrichtung mit Sicherung durch Schutzschlüssel
DE1909090C3 (de) Schutzeinrichtung für den Arbeitsspeicher einer Rechenanlage
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2417795C2 (de) Datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2758152A1 (de) Speicherschutzanordnung
DE3048365A1 (de) Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem
DE1499203B1 (de) Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE1181460B (de) Elektronische Zifferrechenmaschine
DE2316296A1 (de) Durch mikroprogramme steuerbare verarbeitungseinrichtung
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
DE2458096C2 (de) Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage
DE2054830B2 (de) Informationsverarbeitungsanlage mit mitteln zum zugriff zu speicher-datenfeldern variabler laenge
DE1935944C3 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE1499206B2 (de) Rechenanlage
DE1524111C3 (de) Elektronische Datenverarbeitungsanlage
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage
DE19955776C1 (de) Multitasking-Prozessorsystem
DE1185404B (de) Fehlerermittlungsanlage
DE1812137A1 (de) Elektronische Datenverarbeitungseinrichtung
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1184122B (de) Addiervorrichtung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee