DE2026718A1 - Verfahren und Vorrichtung zum Speichern von Wörtern im Speicher einer Datenverarbeitungsanlage - Google Patents
Verfahren und Vorrichtung zum Speichern von Wörtern im Speicher einer DatenverarbeitungsanlageInfo
- Publication number
- DE2026718A1 DE2026718A1 DE19702026718 DE2026718A DE2026718A1 DE 2026718 A1 DE2026718 A1 DE 2026718A1 DE 19702026718 DE19702026718 DE 19702026718 DE 2026718 A DE2026718 A DE 2026718A DE 2026718 A1 DE2026718 A1 DE 2026718A1
- Authority
- DE
- Germany
- Prior art keywords
- word
- memory
- address
- register
- operand
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Detroit, Staat Michigan
(V.St.A.)
Verfahren und Vorrichtung zum Speichern von Wörtern im Speicher einer Datenverarbeitungsanlage
Die Erfindung befaßt sich mit dem Verfahren zum Speichern einer Informationseinheit in einem Speicher
einer Datenverarbeitungsanlage, insbesondere mit der Ausführung eines Speicheroperators in der Anlage.
Es sind Datenverarbeitungsanlagen bekannt, die Speicheroperatoren
ausführen. Der Speicheroperator bewirkt normalerweise, daß eine in einem Register enthaltene
Informationseinheit in eine spezielle Speicherstelle eingespeichert wird. Weiterhin sind Datenverarbeitungsanlagen
bekannt, die mit einem Überschreib-Operator arbeiten. Der Überschreib-Operator ist dem Speicheroperator
ähnlich. Der Unterschied zwischen beiden besteht darin, daß ein Speicheroperator kein Überschreiben
einer Information bewirkt, die durch einen speziellen
109841/
-2- 2028718
Code geschützt ist, der das zugehörige Wort als geschützte Information bezeichnet« Dagegen ermöglicht
ein Überschreib-Operator das Überschreiben einer geschützten Information.
Es sind zwei Arten von Speicher- und Überschreib-Operator
en bekannt und werden löschende und nichtlöschende Formen genannt. Bei der nicht-löschenden
Form bleibt die in den Speicher zu schreibende Infor-
ψ mation in dem Register, aus dem sie entnommen wurde,
zurück. Bei der löschenden Form dagegen wird die im Speicher gespeicherte Information in dem Register,
aus dem sie ausgeschrieben wurde, gelöscht«
Bekannte Datenverarbeitungsanlagen sind in ihrer aparativen Auslegung so konstruiert, daß sie auf einen
Speicheroperator ansprechen und die gewünschte Infor- ' mation in eine von einer jeweiligen Adresse bezeichneten
Speicherstelle einspeichern«, Die Adresse ist ebenfalls in einem Register gespeichert. In vielen
Fällen müssen jedoch vorbereitende Schritte unternommen werden, ehe der Speicheroperator ausgeführt
* wird. Beispielsweise kann die Adresse ein indirektes
Adressenbezugswort sein, das indirekt die Stelle im Speicher bezeichnet, an der die Information aufgrund
des Speicheroperators gespeichert werden soll. Mit anderen Worten, das indirekte Bezugswort kann sich
auf die gewünschte Speicherstelle direkt oder indirekt über eines oder mehrere andere indirekte Adressenbezugswörter
beziehen. Bei derartiger Einrichtung ist es notwendig, mit indirekten Bezugswörtern zu arbeiten,
um die Adresse der tatsächlichen Speicherstelle zu erhalten, in der die Information gespeichert werden soll.
1Π9 8Λ1/156Λ
Weiterhin müssen bekannte Datenverarbeitungsanlagen das Vorliegen eines indirekten Adressenbezugswortes
wahrnehmen und in vorbereitenden Arbeitsschritten die tatsächliche Adresse ableiten, ehe der Speicheroperator
ausgeführt wird. Das erfordert, daß der Programmierer die Arten der benutzten Adressenbezugswörter
berücksichtigt, so daß sich, komplizierte und zeitaufwendige
Programmstufen vor der Ausführung des gerade vorliegenden Speicheroperators ergeben.
Vielfach werden unterschiedliche Gruppen von Daten in
verschiedenartigen Datenformaten im gleichen Programm verarbeitet. So kann es notwendig sein, eine Datengruppe
in der Weise vorzuverarbeiten, daß vor der Ausführung
eines Speicheroperators im gemeinsamen Programm die Codes geändert werden. Bekannte Datenverarbeitungsanlagen
erfordern normalerweise ein vorheriges Verarbeiten und ein Programmierer muß die Notwendigkeit
derartigen vorherigen Verarbeitens vor dem Antreffen eines Speicheroperators beachten.
Die Notwendigkeit einer Vorverarbeitung vor Ausführung
eines Speicheroperators ist der Tatsache zuzuschreiben, daß in den bekannten Datenverarbeitungsanlagen keine
Einrichtung vorgesehen ist, die das dem Speicheroperator zugeordnete Adressenwort automatisch interpretiert.
Dagegen ermöglicht eine Ausführungsart der Erfindung,
daß auf einen Speicheroperator hin ein einzelnes Adressenbezugswort oder eine Kette von verbundenen
Adressenbezugswortern automatisch überwacht und interpretiert wird. Der Speicheroperator hat als primäre
Aufgabe das Speichern eines Operanden; jedoch kann
109841/1564
seine primäre Aufgabe je nach der Interpretation der adressierenden Kette überschrieben werden. Mit der
vorliegenden Erfindung wird eine Datenverarbeitungsanlage geschaffen, in der der Speicheroperator in
einer der ausgeführten Datenstruktur angepaßten Weise ausgeführt wird. Dazu ist ein Datenrechner vorgesehen,
der einen· Speicheroperator mit einem zugeordneten Adressenbezugswort automatisch ausführt, das direkt
oder indirekt über eines oder mehrere AdressenbezugswÖrter auf die tatsächliche Speicherstelle, in die
eingespeichert werden soll, zeigt. Der Speichermechanismus überwacht automatisch die verbundenen Adressenwörter
und bestimmt die tatsächliche Adresse, unter der die Information auf den Speicheroperator hin gespeichert
werden soll. Es ist nicht nötig, von vornherein die Art des dem Speicheroperator zugeordneten
Adressenwortes zu kennen.
Die Erfindung schafft weiterhin einen Datenrechner, der während der Ausführung eines Speicheroperators
automatisch sich in andere Prozeduren verzweigen und dynamisch die mit dem Speicheroperator Verwendung
findende Adresse erzeugen oder berechnen kann.
Wichtige Elemente zur Erzielung vorstehender Vorteile sind Markierungs- oder Artsignale, die jedes Wort
identifizieren, sowie ein Mechanismus der ein Adressenbezugswort oder eine Kette aus solchen Wörtern
dynamisch überwacht und auswertet. Weiterhin ist eine Speicherschutzvorrichtung sowie eine Abweisvorrichtung
wichtig.
Die Art- oder Markierungssignale in jedem Wort unter-
Ί Π984.1 / 1SG4
scheiden als Wörter zwischen Operandenwörtern und Adressenbezugswörtern und unterscheiden selbst unterschiedliche
Arten von Adressenbezugswörtern· Dadurch kann der Überwachungs- und Auswertungsmechanismus
differenziert auf den gleichen Speicheroperator hin reagieren, wenn er auf ein unterschiedliches Adressenbezugswort
oder eine Kette aus solchen Wörtern für verschiedenartige Datengruppen gerichtet wird. Der
Überwachungs- und Auswertungsmechanismus vermag die
Adressenbezugswortketten dynamisch auszuwerten und die tatsächliche Speicherstelle, in der Daten gespeichert
werden sollen, automatisch zu bestimmen.
Diese Fähigkeit ermöglicht auch den automatischen Eintritt in eine spezielle Prozedur, die eine für das
Speichern der gewünschten Daten auf den Speicheroperator hin benutzte Adresse berechnen oder ableiten kann.
Somit führt die Maschine oberflächlich gesehen einfach
einen Speicheroperator aus; die ablaufenden Funktionen jedoch können ziemlich verwickelt sein und ein größerer
Teil der gesamten Maschinenlogik kann tatsächlich zur vollständigen Ausführung des Speicheroperators
aufgerufen werden.
Der Speicherschutz- und -abweismechanisrnus verleiht dem Rechner die offensichtliche Möglichkeit, im Blindversuch
Daten in eine Speicherzelle einzuspeichern. Wenn der Inhalt der Speicherzelle ein Adressenbezugswort
ist, ist der Speicher geschützt und das Einschreiben in die Zelle verboten. Im Ergebnis bleibt
das Adressenbezugswort in der Speicherzelle ungeändert. Jedoch wird das Adressenbezugswort in den Rechner zurückgegeben
und dazu benutzt, die in der Kette der
109841/1564
Adressenbezugswörter enthaltenen Adressen zu verbinden. Dadurch ist der Datenrechner imstande, eine Liste von
Adressenbezugswörtern auf eine Weise zu berechnen, die
die Adresfenbezugswörter im Speicher nicht ändert»
schließlich speichert er in die gewünschte Speicherstelle ein»
Kurz zusammengefaßt umfaßt die erfindungsgemäße Vorrichtung
in einer Datenverarbeitungsanlage einen Speicher mit Speichersteilen, die Wörter, insbesondere
Operandenwörter und Adressenbezugswörter, enthalten. Ein in einer Speicherstelle gespeicherter Operand ist
mit einem ersten Bezugswort direkt oder über andere Adressenbezugswörter durch ein Speicheradress-Signal
in jedem Bezugswort verbunden, wobei jedes der Wörter ein Artsignal enthält, das die Art des zugeordneten
Wortes bezeichnet. Eine Vorrichtung liest das Wort aus dem Speicher In der Speicherstelle aus, die durch
das Adressensignal in dem ersten Bezugswort bezeichnet
wurde, sowie Wörter, die von dem Lese-Adressbezugswort
bezeichnet wurden, bis ein Operandenwort ausgelesen wird. Weitere Einrichtungen überwachen die Artsignale
der für ein Operandenartwort gelesenen Wörter.
Weitere Einrichtungen speichern ein gewünschtes Wort
in diejenige Speicherstelle, aus der ein Operandenwort
ausgelesen wurde.
Das erfindungsgemäße Verfahren zum Speichern eines Wortes bezieht sich auf eine Datenverarbeitungsanlage,
in der die Speicherstelle für das Einspeichern einen Operanden enthält und über eines oder mehrere Adressenbezugswörter
mit einem ersten Adressenbezugswprt ver-
10 9.84 1/1 56
bunden ist. Das Adressenbezugswort und das Operandenwort
enthalten artbezeichnende Signale. Das Verfahren zeichnet sich dadurch aus, daß aus dem Speicher dasjenige
Wort ausgelesen wird, das vom ersten Adressenbezugswort bezeichnet wird, daß alle Wörter, die von
einem derartigen ausgelesenen Wort bezeichnet werden, ausgelesen werden, bis ein Operandenwort gelesen wird.
Die Artsignale der ausgelesenen Wörter werden auf eine
Operandenwortart überwacht. Ein gewünschtes Wort wird in diejenige Speicherstelle eingespeichert, aus der
ein Wort mit einem Operandenartsignal ausgelesen wurde.
Ein Ausführungsbeispiel der Erfindung wird nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
Es zeigen:
Fig. 1 das Blockschaltbild einer mit den
Merkmalen der Erfindung ausgerüsteten Datenverarbeitungsanlage;
Fig. 2A bis 2E Flußdiagramme zur Erläuterung
der einzelnen von der Datenverarbeitungsanlage nach Fig. 1 ausgeführten Arbeitsschrittej
Fig. 3 einzelne Wortformate der verschiedenartigen
Adressenbezugswörter, die in der Datenverarbeitungsanlage nach Fig. 1 Verwendung findenj und
Fig. 4 das Beispiel eines Stapels aus Adressenbezugswörtern, die über einen Datenbezeichner
mit einer. Reihe von Daten verbunden sind, die einen verwendbaren Operanden enthalten.
Fig. 1 zeigt oberhalb der gestrichelten Trennungslinie
einen Datenrechner und unterhalb einen Speichermodül·
Der Datenrechner weist C, A und B-Register 10, 12 und
auf, die übliche Flip-Flop-Register sind. Die A- und
B-Register 12 und 14 bilden zusammen mit dem Speicherstellen in einem Kernspeicher im Speichermodul den
Teil eines Informationsstapeis. Mehrere Anzeigeregister
sind bei 16 dargestellt» Jedes Anzeigeregister enthält die absolute Adresse eines Wortes in dem in dem Kernspeicher
liegenden Stapel und dient zur Bildung der absoluten Adresse von Speicherstellen, wie das im einzelnen
nachfolgend näher beschrieben wird.
Mehrere Programmregister einschließlich eines BUFF-Registers und eines BOSR-Registers sind bei 18 dargestellt.
Das BUFF-Register ist lediglich ein Pufferregister für das Zwischenspeichern partieller Adressen
und das BOSR-Register speichert die Adresse einer Speicherstelle im Kernspeicher, die die Basis des gerade
in Benutzung befindlichen Stapels darstellt. Im einzelnen werden die Adressen in den BOSR- und BUFF-Registern
mit Teilen von Adressenbezugswörtern kombiniert, so daß sich die tatsächlichen Adressen von
Speicherstellen in dem Kernspeicher ergeben, in die eingeschrieben bzw. aus denen ausgelesen werden soll.
Ein gewöhnlicher, binärer Volladdierer 20 ist für das
Addieren von Partialadressen-Signalen vorgesehen, aus denen die vollständige Adresse einer Speicherstelle
in dem Kernspeicher gebildet wird. Ein Register MM 22 speichert vorübergehend eine Adresse, bevor sie auf
den Speichermodul gegeben wird. Ein Operatorregister 24 speichert einen Operator, beispielsweise den Speicheroperator,
der aus dem Speicher ausgelesen wurde.
10 9 8 4 1 /1564
Entschlüsseier 26 und 28 decodieren bestimmte Teile der in dem C-Register 10 und dem A-Register 12 gespeicherten
Wörter. Dabei hat das C-Register 10 einen Abschnitt 10a und einen Abschnitt 10b, in denen Markierungssignale
und ein Anwesenheitsbit (P) gespeichert werden. Der Entschlüsseier 26 ist an die Abschnitte
10a und 10b des C-Registers 10 angeschlossen und gibt je nach deren Inhalt Steuersignale an einem
oder mehreren Ausgängen ab (Fig. 1). Das A-Register 12 besitzt die Abschnitte 12a und 12b, in denen Markierungssignale
und ein Ε-Bit gespeichert sind. Der Entschlüsseier 28 spricht auf den Inhalt der Abschnitte
12a und 12b an und gibt ein Steuersignal auf einen oder mehrere seiner Ausgänge (Fig. 1).
Das Tor 33 überträgt den Inhalt des C-Registers 10
in das A-Register 12 und umgekehrt. Ein Tor 35 überträgt den Inhalt des A-Registers 12 in das B-Register
14 und umgekehrt.
Eine Sammelleitung 30 verbindet den Speichermodul mit
dem Datenrechner. Ein Tor 32 schließt die Register 10, 12 und 14 an die Speicher-Sammelleitung 30 an. Ein
Tor 34 schließt die Register 10, 12 und 14 an das Anzeigeregister 16, die Programmregister 18 und den
Adressenaddierer 20 an. Die Einzelheiten des Betriebsverhaltens und der Aufbau der Tore 32 und 34 wird
nachfolgend im Zusammenhang mit den Flußdiagrammen der Fig. 2A bis 2B beschrieben.
Eine Steuer- und Zeitgebereinheit 36 sorgt für die sequentielle Steuerung des Arbeitsablaufs im Datenrechner.
Die Schrittsteuerung 36 weist mit den Sym-
10984 I/1-5 64
bolen C0-C7, C7·, C8-C17, C17«, C18-C20, C201, C21-C27
und MC bezeichnete Ausgänge auf, die normalerweise den schrittweisen Arbeitsablauf der Anlage regeln·
2ur Erläuterung sind nur CO und C27 in Fig. t eingetragen und die dazwischenliegenden Ausgänge sind gestrichelt angedeutet. Die Schrittsteuerung 36 kann
so betrachtet werden, als habe sie einen dem jeweiligen Ausgang entsprechenden Betriebszustand« Die
^ Schrittsteuerung 36 besitzt weiterhin mit öl, PI und
" PE bezeichnete Ausgänge, die die Ausführung'spezieller
Unterbrechungsfunktionen auslosen. Der Ausgang OC der
Schrittsteuerung 36 führt ein Steuersignal, wenri die
Ausführung eines Operators abgeschlossen ist. Der Aufbau
und der Arbeitsabläuf der Schrittsteueruhg-36
ist in den Flyßdiagrammen. der Fig. 2A.bis 2D dargestellt und wird nachfolgend noch genauer.beschrieben*
Der Speichermodul umfaßt einen gewöhnlichen Kernspei-*
eher 38 mit seinem· zugeordneten Adressenregister ;40*>v
Ein Tor 4.2 leitet die in dem WM-Register 22 gespei- ■ ■
cherte Adresse weiter in das Adressenregister 40. Eine
gewöhnliche Lese/Schreibsteuerung 44 regelt das Auslesen und Einschreiben in den Kernspeichsi? 38.' Im
Gegensatz. zu gewöhnlichen Kernspeicherrv- ist der Kernspeicher
,38 mit iwel Informations- oder £ufferregistern
46 und 48 ausgerüstet. Das Register 46 ist mit BUFF I
und das Register 48 mit BUFF 2 bezeichnet. Wenn eine
Lese- oder Schreiboperation stattfinden soll, wird der Inhalt der adressierten Speicherstelle in das
BUFF 1 gespeichert und ein Tor 50 leitet den Inhalt des BUFF 1 über die Speicher-Sammelleitung in den
Rechner. Wenn ein Wort in den Kernspeicher 38 geschrieben werden soll, speichert ein Tor 52 das Wort
109841/1.584
aus der Sammelleitung 30 in das BUFF 2. Die Tore 54,
56 und 58 sowie der Inverter 55 lassen den Inhalt des BUFF 1 oder BUFF 2 in den Kernspeicher 38 während
der Schreibphase der Schreiboperation zurückspeichern. Ein Speicherzähler 60 steuert die Arbeitsschritte des
Speichermoduis. Die Ausgänge des Speicher'zählers 60 sind"mit den Symbolen MO - M3 bezeichnet (M 1 und M2
sind gestrichelt angedeutet). Ein Speichermodul wie der in Fig. 1 dargestellte ist im übrigen in der
gleichlaufenden Patentanmeldung P 17 74 863.9-53 (Anwaltszeichen B 88) beschrieben.
Fig. 3 zeigt die Struktur verschiedenartiger Wörter,
die in der Datenverarbeitungsanlage nach Fig. 1 auf*-
treten. Alle Wörter sind mit einer Markierung versehen, die die Art des Wortes bezeichnet. Jede Markierung
weist mehrere Bits auf, und die Kombination der Zustände dieser Bits bezeichnet die Art des entsprechenden
Wortes. So enthält ein Operandenwort eine Markierung, die das Wort als Operand ausweist. Die Operanden-Markierung
ist wichtig, wenn ein Speicheroperator ausgeführt werden soll und das zu speichernde Wort
an einer Stelle gespeichert werden muß, die einen Operanden enthält und nicht an einer solchen Stelle
gespeichert werden kann, die ein Adressbezugswort enthält. Die Operanden-Markierung dient dazu, dem System
zu signalisieren, wenn ein Operand angetroffen wird. Vier verschiedene Arten von Adressenbezugswörtern
treten in dem System nach Fig. 1 auf. Indirekte Bezugswörter (englisch: Indirect Reference Word, IRW)
und indirekte, ausgefüllte Bezugswörter (englisch: Indirect Reference Word Stuffed, IRWS) sind Adressenbezugswörter,
deren adressierender Teil entweder auf
109841 /1
ein anderes IRW oder IRWS, einen Datenbezeichner (englisch: data descriptor, DD), ein Programmsteuerwort
(englisch: program control word, PCW) oder auf einen Operanden hinweisen. Sowohl das IRW wie auch
das IRWS enthalten eine Bezeichnung und ein E-Bit. Die gleiche Bezeichnung identifiziert sowohl IRW wie
auch IRWS. Wenn, das E~Bit ein 1-Bit ist, ist damit das Wort als IRWS identifiziert, während ein O-Bit
an der Stelle des Ε-Bit ein IRW-Wort angibt.
Ein IRW enthält einen lexicographischen Pegel (englisch: lexicographical level, 11) und einen Verschiebewert
(englisch: displacement value, ί ). Der 11 bezeichnet
eines der Anzeigeregister 16; der Wert des σ ,
wenn er zu der in dem Anzeigeregister (bezeichnet durch den 11) enthaltenen Adresse addiert wird, gibt die absolute
Adresse in dem Kernspeicher 38 an, auf die tatsächlich das entsprechende IRW hinweist oder sich bezieht.
Man sagt, daß ein Adressenbezugswort auf ein anderes
Wort weist oder sich auf es bezieht, wenn das Adres«=·
I
" senbezugswort Adressensignalteile enthält, die" zur Ableitung der Adresse eines derartigen anderen Wortes dienen. Der 11-Wert in einem IRW bezeichnet somit ein Anzeigeregister, das eine Adresse enthält, -die nach Addition zu dem S- Wert die Adresse einer anderen Speicherstelle im Kernspeicher angibt.
" senbezugswort Adressensignalteile enthält, die" zur Ableitung der Adresse eines derartigen anderen Wortes dienen. Der 11-Wert in einem IRW bezeichnet somit ein Anzeigeregister, das eine Adresse enthält, -die nach Addition zu dem S- Wert die Adresse einer anderen Speicherstelle im Kernspeicher angibt.
Ein IRWS enthält einen Verschiebewert (DISP) und einen
Zuwachswert (englisch: increment value, a )* Der Wert
des DISP gibt eine absolute Adresse im Kernspeicher an, die von dem IRWS bezeichnet wurde, wenn dieser
1098/.1/156A
Wert zu der in dem BOSR-Register 18 enthaltenen Adresse
der Basis des gerade in Benutzung befindlichen Stapels und zu dem <-* -Wert im gleichen IRWS addiert wird.
Datenbezeichnet (DD) sind Adressenbezugswörter, die auf andere DD oder einen Operanden hinweisen können.
Ein DD kann sich nicht auf ein IRW oder ein IRWS beziehen. Ein DD enthält eine Bezeichnung, die ihn als
DD ausweist, sowie ein Präsenz-Bit (P), das angibt, ob der von dem DD angegebene Operand im Kernspeicher
38 anwesend ist. Der Datenbezeichner enthält weiterhin einen Längenwert und einen Adressenwert, die, wenn
sie zueinander addiert werden, die absolute Adresse der Speicherstelle im Kernspeicher 38 liefern, auf die
sich der entsprechende DD bezieht.
Ein PCW enthält eine Bezeichnung, die das Wort als PCW ausweist, und nicht dargestellte Adressenteile, die
sich auf eine andere Prozedur zur Ausführung durch den Datenrechner beziehen. Wenn ein PCW angetroffen
wird, läßt es den Datenrechner zu der Prozedur überwechseln, die von den Adressenteilen des PCW bezeichnet
wird.
Fig. 4 zeigt als Beispiel einen Stapel, der in den A- und B-Registern sowie dem Kernspeicher 38 gespeichert
sein kann. Die mit Pfeilen versehenen Linien dienen zur Erläuterung der Weise, in der Adressenbezugswörter
sich auf eine Stelle beziehen, in der ein
Operand gespeichert werden soll. Die A- und B-Register 12 und 14 sind die beiden obersten Register des Stapels
und enthalten in der Darstellung der Fig. 4 ein IRW bzw. einen Operanden. Stapelmarkierungswörter (englisch;
10984 171 BBA
mark stack control words, MSCW) sind an verschiedenen Pegeln in dem Stapel vorgesehen. Für jedes MSCW
gibt es ein Anzeigeregister 16, das eine absolute Adresse der Speicherstelle in dem Kernspeicher enthält,
wo das entsprechende MSCW gespeichert ist. Weitere Einzelheiten einer derartigen Stapelstruktur
zusammen mit den zugeordneten Anzeigeregistern sind in der gleichlaufenden Patentanmeldung P 17 74 907.4-53
(Anwaltszeichen B 04) beschrieben.
Ein Speicheroperator läßt den in dem B-Register 14
enthaltenen Operanden in eine Speicherstelle speichern, die einen Operanden enthält. Der Operand ist beispielsweise
in einer Datenreihe befindlich dargestellt. Das erste IRW (in dem A-Register 12) und der Operand Hn
der Datenreihe) sind miteinander über eine Kette verbunden. Beispielsweise zeigt Fig. 4 ein IRW im A-Register
.12, das über zwei nachfolgende IRW und ein DD in dem Stapel sowie über ein DD in einer Dope-Vektor-Reihe
(englisch: dope vector array) mit dem Operanden verkettet ist. Der Datenrechner ist so eingerichtet, daß
er automatisch jedes der Adressenbezugswörter (IRW und " DD) durch die ganze Kette herab inspiziert und' jedes
vor dem Überschreiben mit dem zu speichernden Operanden bewahrt. Nur wenn der Operand in der Datenreihe erreicht
ist, speichert der Datenrechner den in dem B-Register 14 enthaltenen Operanden. Dieses Speichern findet in
der Speicherstelle statt, in der der Operand gespeichert
ist.
109841/1564
Der Betriebsablauf der erfindungsgemäßen Datenverarbeitungsanlage nach Fig. 1 ist1 in den Flußdiagrammen
der Fig. 2A bis 2E erläutert. Die Fig. 2A bis 2D zeigen ein Flußdiagramm, bei dem der Datenrechner ein
oder mehrere Adressenbezugswörter abtastet, um eine Speicherstelle zu finden, die einen Operanden enthält
und in der ein Wort gespeichert werden kann. Dieser Arbeitsablauf geschieht auf einen in dem Operatorregister 24 gespeicherten Speicheroperator hin. An bestimmten
Stellen im Flußdiagramm der Fig. 2A (d.h. Fig. 2B und 2C) ist eine Speicheroperation durch den
Speichermodul notwendig. Fig. 2E erläutert die Sequenz der Arbeitsschritte des Speichermoduls während einer
Speicheroperation.
Das in dem Flußdiagramm benutzte Notationssystem sollte noch erwähnt werden. Die umkreisten Abschnitte des
Flußdiagramms repräsentieren einen Zustand, der vor dem Fortfahren mit eier nächsten Flußdiagramm-Stufe bestehen
muß. Die anderen Symbole im Flußdiagramm erläutern Handlungsposcen, die nachfolgend beschrieben
werden. Links von dem verschiedenen Symbolen im Flußdiagramm folgt dem Symbol C eine Ziffer (d.h. Cl, C2
etc.). Diese Symbole entsprechen den Ausgangssignalen aus der Schrittsteuerung 36 (Fig. 1) und zeigen den
Ausgang der Schrittsteuerung 36 an, der ein Steuersignal für jede Stufe in dem Flußdiagramm empfängt·
Die vom Rest der Symbole repräsentierte Arbeitsdurchführung wird nachfolgend erläutert, wobei sich das
Verständnis der Symbole einstellen wird.
109841/15BA
Man nehme nun an, daß der Operator aus dem Kernspeicher 38 ausgelesen und in das Operatorregister 24 eingespeichert
wurde. Weiter nehme man an, daß das A-Register 12 den Operanden enthält, der auf den Speicheroperator
hin in dem Kernspeicher gespeichert werden soll, und daß das B-Register eines der Adressenbezugsworter
enthält. Eine Beschreibung dieser Operationen wird hier nicht näher gegeben, da die Art und
Weise, in der Operatoren, Operanden und Adressenwörter aus dem Speicher erhalten und in die Register gespei-
W ' chert werden, in der Rechnertechnik wohlbekannt ist.
Anfänglich ist die Schrittsteuerung 36 in dem Zustand
und gibt ein Steuersignal bei CO ab. Die Schrittsteuerung 36 spricht auf den Speicheroperator an und geht
in den Zustand 1 über, bei dem ein Steuersignal am Ausgang Cl gebildet wird. Während des Zustandes 1 enthält
das A-Register 12 einen Operanden und die im Abschnitt 12a enthaltene Bezeichnung identifiziert ein
Operandenwort. Dadurch bildet der Decodierer 28 ein Steuersignal an dem Operanden-Ausgang, wodurch die
Schrittsteuerung 36 in den Zustand 2 übergeht (angezeigt durch JA in Fig. 2A). Der Grund für den Eintritt
^ in den Zustand 2 liegt in der Notwendigkeit, den Inhalt
der Register A und B auszutauschen. Der Inhalt der zwei Register wird ausgetauscht,, da das B-Register den
Operanden enthalten und das Α-Register das Adressenbezug'swort
enthalten muß, ehe die weitere Operation stattfinden kann. Dazu läßt das Steuersignal an dem
C2-Ausgang das Tor 35 die in den Registern A und B gespeicherten Wörter austauschen, so daß das A-Register
jetzt das Adressenbezugswort und das B-Register· den Operanden enthält.
109841/1584
Wenn das Α-Register anfänglich das Adressenbezugswort
enthielt, würde kein Steuersignal an dem Operanden-Ausgang des Decodierers 28 gebildet worden sein und
die Schrittsteuerung 36 würde vom Zustand 1 direkt in
den Zustand 3 übergegangen sein (angezeigt durch NEIN, Fig. 2A). Nach dem Zustand 2 geht die Schrittsteuerung
36 in den Zustand 3.
Das Steuersignal bei C3 läßt das Tor 33 das in dem A-Register 12 enthaltene Adressenbezugswort in das C-Register
10 übertragen. Nach dem Zustand 3 geht die Schrittsteuerung 36 in den Zustand 4.
Während des Zustandes 4 wird festgestellt, ob das in dem C-Register enthaltene Bezugswort ein IRW oder ein
IRWS ist. Dazu entschlüsselt der Decodierer 26 die Bezeichnungssignale in 10a und bildet ein Steuersignal
am IRW-Ausgang, wenn das Wort ein IRW oder ein IRWS ist. Ein Ausgangssignal an dem IRW-Ausgang des Decodierers
26 läßt die Schrittsteuerung 36 in den Zustand 13 übergehen, in dem das IRW-Flußdlagramm erreicht
wird (vgl. Fig. 2C). Wenn während des Zustandes 4 das in dem C-Register 10 enthaltene Adressenbezugswort
kein IRW oder ein IRWS ist, läßt das Ausbleiben eines Steuersignals an dem IRW-Ausgang des Decodierer^ 26
die Schrittsteuerung 36 in. den Zustand 5 übergehen (angezeigt durch NEIN in Fig. 2A).
Während des Zustandes 5 wird festgestellt, ob das Adressenbezugswort, das jetzt in dem C-Register 10
enthalten ist und aus dem A-Register 12 übertragen wurde, ein DD ist. Wenn das Wort ein DD ist, bildet
der Decodierer 26 ein Steuersignal an dem DD-Ausgang,
109 841/1664
wodurch die Schrittsteuerung 36 in den Zustand 6 geht,
bei dem das DD-Flußdiagramm erreicht wird (Fig. 2B).
Wenn während des Zustandes 5 das in dem C-Register 10
enthaltene Wort kein DD ist, bedeutet das, daß eine unzulässige Bedingung vorliegt und daß der weitere
Betrieb des Datenrechners unterbrochen werden muß. Dazu bildet die Schrittsteuerung 36 ein Steuersignal
~ an dem OI-Ausgang und zeigt damit eine Unterbrechungs-
^ bedingung aufgrund eines unerlaubten Operators an;
weiterhin wird ein Steuersignal an dem QC-Ausgang gebildet, wodurch angezeigt ist, daß der Arbeitsablauf
abgeschlossen ist. Danach geht die Schrittsteuerung 36 zurück in den Zustand 0. Der Unterbrechungs-Arbeitsablauf
wird hier nicht beschrieben, da er für das Verständnis der Erfindung nicht wesentlich ist.
Man nehme nun an, daß während des Zustandes 5 der Schrittsteuerung 36 ein DD in dem C-Register 10 festgestellt
und ein Steuersignal an dem DD-Ausgang des Decodierers 26 gebildet wurde, woraufhin der Zustand 6
eingenommen wurde. Der Zustand 6 ist der erste Zustand des DD-Flusses (Fig. 2B). "
Während des Zustandes 6 wird anhand einer Prüfung festgestellt, ob der von dem DD in dem C-Register
bezeichnete Operand präsent ist. Das P-Bit des DD zeigt diese Information an. Wenn das P-Bit, das in
10b enthalten ist, eine 1 ist, bedeutet das, daß der Operand nicht vorhanden ist und daß damit eine Fehlerbedingung
besteht. Demzufolge bildet die Schrittsteuerung 36 ein Steuersignal an dem PI-Ausgang und zeigt
109841/1564
damit an, daß eine FehlerUnterbrechungs-Bedingung aufgrund
des Präsenz-Bits besteht; ein Steuersignal wird weiter an dem OC-Ausgang gebildet und zeigt damit an,
daß die Ausführung des Operators abgeschlossen ist.
Man nehme nun an, daß während des Zustandes 6 das P-Bit
0 ist unci daß somit, der Decodierer 26 kein Steuersignal
an dein P»l-Ausgang bildet. Dadurch geht die Schrittsteuerunq
3b in den Zustand 7, auf den der Zustand folgt. Während der Zustände 7 und 71 werden die Längen-
und Adressenwerte des DD in dem C-Register 10 addiert und ergeben die absolute Adresse der Speicherstelle,
auf die sich der DD bezieht. Dazu läßt ein Steuersignal bei C7 das Tor 34 den Längenwert durch einen
Eingang des Adressenaddierers 20 und den Adressenwert durch den anderen Eingang des Adressenaddierers 20 gelangen.
Der Adressenaddierer 20 addiert automatisch diese zwei Werte und bildet ein Ergebnis, das die gewünschte
absolute Adresse in dem Kernspeicher repräsentiert. Das Steuersignal bei C7 läßt das MM-Register
22 das Ergebnis speichern. Nach dem Zustand C71 bildet
die Schrittsteuerung 36 ein Steuersignal an dem MC-Ausgang und leitet damit einen Speicherzyklus in dem
Speichermodul ein, wie er in Fig. 2E erläutert ist.
Bei dem Arbeitsablauf des Speichermoduls, wie er in Fig. 2E erläutert ist, wird ein Steuersignal an dem
MC-Ausgang der Schrittsteuerung 36 erzeugt, das die Tore 32 und 52 veranlaßt, den in dem B-Register 14
enthaltenen Operanden in das BUFF 2-Register zu speichern ; ferner setzt es den Speicherzähler 60 in den
Zustand I1 wodurch ein Steuersignal an dem Ml-Ausgang
erzeugt wird.
BAD ORIGINAL 109841/1584
Während des Zustandes 1 des SpeicherZählers 60 läßt
das Steuersignal an Ml die Tore 42 die Adresse aus dem MM-Register 22 in das A-Register 40 speichern.
Nach dem Zustand 1 geht der Speicherzähler 60 in den
Zustand 2.
Während des Zustandes 2 des Speicherzählers 60 wird ein Steuersignal an M2 gebildet. Das Steuersignal bei
M2 aktiviert die Lese- und Schreibsteuereinheit 44, wodurch der Kernspeicher 38 den Inhalt der von der
P Adresse im AR-Register 40 bezeichneten Speicherstelle ausliest, und läßt das Wort in das BUFF 1-Register 46
speichern. Die Markierungs-Bits werden verschlüsselt, so daß Bit 49 eine 1 für alle Wörter außer für Operanden
ist (was für die vorliegende Beschreibung eingehalten werden soll). Wenn das Bit 49 eine 1 ist, zeigt
es an, daß das in dem BUFF Ϊ gespeicherte Wort etwas
anderes als ein Operand ist, und daß solch ein Wort ein geschütztes Wort ist und in den Kernspeicher 38
an dieselbe Stelle aus der es ausgelesen wurde, wieder zurückgespeichert werden muß. Dazu hat das Tor 56 einen
Eingang aus dem Bit 49 in dem BUFF 1-Register und einen
- Eingang aus dem M3-· Ausgang des SpeicherZählers' 60. Nach
dem Zustand 2 geht der Speicherzähler in dem Zustand 3 und gibt ein Steuersignal an den M3-Ausgang, wodurch
das Tor 56 das Wort in dem BUFF 1 durch das ODER-Tor zurück in den Kernspeicher 38 einspeichert. Das Steuersignal
bei M3 läßt die Lese-/und Schreibsteuerung 44 das auf ihren Eingang gegebene Wort zurück in die
Speicherstelle schreiben, die von der Adresse AR 40 bezeichnet ist. Somit ist das durch die Tore 56 und 58
aus dem BUFF 1 übertragene Wort wieder an der gleichen Speicherstelle in dem Kernspeicher eingeschrieben, aus
1098A1/1SBA
der es ausgelesen wurde. Kernspeicher,, die nach einem
Lesezyklus einen Schreibzyklus durchlaufen, sind bekannt.
Wenn das Bit 49 eine O ist, zeigt es an, daß das aus
dem Kernspeicher 38 ausgelesene Wort ein Operand ist, und daß demzufolge der in dem BUPF 2 Register enthaltene
Operand in die Speicherstelle eingespeichert werden soll, aus der das Wort in dem BUPF 1 ausgelesen wurde· Dazu
invertiert der Inverter 55 den O-Ausgang aus dem Bit
und gibt ein Steuersignal auf das Tor 54« Das Steuersignal bei M3 läßt dann das Tor 54 den im BUFF 2 enthaltenen
Operanden in diejenige Speicherstelle speichern,' die von der Adresse AR 40 bezeichnet ist. Außerdem läßt
das Steuersignal bei M3 die Tore 50 und 32 das in dem BUFF 1 enthaltene Wort zurück in das C-Register 10 übertragen.
Somit dürfte deutlich geworden sein, daß die Tore 54,
56 und 5c zusammen mit dem Inverter 55 eine Einrichtung darstellen, die die aus dem Kernspeicher 38 ausgelesenen Wörter überwacht und feststellt, ob jedes Wort ein
Operand oder ein Adressenbezugswort ist. Wenn das Wort ein Operand ist, dann wird der Operand, der im BUPF 2
gespeichert und aus dem B-Register 14 erhalten worden ist, in diejenige Speicherstelle gespeichert, aus der
das Wort ausgelesen wurde. Wenn andererseits die Komponenten 54 bis 58 feststellen, daß das aus dem Kernspeicher
ausgelesene Wort ein geschütztes Wort ist, das irgendeines der Adressenbezugswörter sein kann,
wird da$ im BUFF 1 enthaltene Wort zurück in die gleiche Speicherstelle des Kernspeichers 38 geschrieben, aus der es ausgelesen wurde, so daß es ungeändert
bleibt.
BAD ORIGINAL
109841/1564
Man kehre nun zurück zu dem DD-Flußdiagramm (Fig„ 2B).
Nach dem Steuersignal bei M3 setzt die Schrittsteuerung 36 den DD-Fluß mit dem durch das Steuersignal bei M3
eingeleiteten Zustand 8 fort und bildet @in Steuersignal am C8-Ausgang.
Während des Zustandes 8 wird bestimmt, ob das neue aus
dem Speicher 38 ausgelesene Wort, das jetzt im C-Register 10 enthalten ist, ein DD ist. Wenn das Wort ein 00 ist,
zeigt dies die Markierung an und der Decodierer 26 bildet ein Steuersignal an dem DD-Ausgang.
Man nehme nun an, daß während des Zustandes 8 der Schrittsteueruhg
36 der Decodierer 26 ein Signal am DD-Ausgang bildet und damit anzeigt, daß ein DD im C-Register 10
enthalten ist. Die Schrittsteuerung 36 geht automatisch in die Zustände 6, 7, 7» und MC zurück und wiederholt
den oben beschriebenen Arbeitsablauf; $
Man nehme nun an, daß das endlich in dem C-Register 10
gespeicherte Wort kein DD ist. Dann wird kein Steuersignal an dem DD-Ausgang des Decodierers 26 gebildet,
so daß der Zustand 9 der Schrittsteuerung 36 eingenommen wird, der auf den Zustand 8 folgt.
Während des Zustandes 9 wird geprüft, ob das C-Register
10 einen Operanden enthält. Wenn das C-Register einen Operanden enthält, wird ein Steuersignal an dem Operanden-Ausgang
des Entschlüsselers 26 gebildet, das die Schrittsteuerung 36 in den Zustand 10 gehen läßt. Wenn
jedoch während des Zustandes 9 kein Steuersignal an. dem
Operanden-Ausgang des Decodierers 26 gebildet wird, und damit angezeigt ist, daß ein Operand in dem C-Register
109841/18B4
nicht gespeichert ist, dann bildet die Schrittsteuerung
36 ein Steuersignal an dem OI-Ausgang und zeigt damit eine Unterbrechung aufgrund eines unerlaubten Operanden
an, und bildet weiterhin ein Steuersignal am OC-Ausgang, womit die Ausführung des Operators als vollständig abgeschlossen
angezeigt ist.
Man nehme nun an, daß das in dem C-Register gespeicherte
Wort ein Operand ist und daß der Decodierer 26 ein Steuersignal an dem Operanden-Ausgang bildet. Daraufhin
geht die Schrittsteuerung 36 in den Zustand 10 über.
Man nehme nun an, daß die Schrittsteuerung 36 in dem
Zustand 10 ist, und daß jetzt ein Operand in dem C-Register 10 enthalten ist. Das Steuersignal bei C 10 läßt
den Inhalt des A-Registers 12 löschen (auf nicht dargestellte Weise mittels eines Tores) und die Schrittsteuerung
36 geht in den Zustand 11 über.
Es gibt zwei verschiedene Arten von Speicheroperatoren,
die in dem Register 24 gespeichert und von dem Datenrechner
ausgeführt werden können. Einer von beiden ist ein löschender Speicheroperator und der andere ist ein
nicht-löschender Speicheroperator. Löschender Speicheroperator
bedeutet, daß der in dem B-Register 14 enthaltene Operand gelöscht oder zerstört wird. Ein nichtlöschender
Speicheroperator bedeutet, daß der in dem
B-Register 14 gespeicherte Operator bewahrt oder zurückgehalten wird. Wenn der in dem Operator-Register 24
gespeicherte Operator ein nicht-löschender Speicheroperator ist, geht die Schrittsteuerung 36 vom Zustand
11 in einen Zustand über, bei dem ein Steuersignal an dem OC-Ausgang gebildet wird, wodurch angezeigt wird,
10984
daß der Operator vollständig ist. Man nehme nun an, daß der Operator ein löschender Speicheroperator ist ι
Dann geht die Schrittsteuerung 36 vom Zustand 11 in den Zustand 12. Das Steuersignal bei C12 läßt durch
nicht dargestellte Tore den Inhalt des B-Registers 14 ;
auf 0 zurückstellen bzw. dessen Inhalt löschen. Nach dem Zustand 12 geht die Schrittsteuerung 36 in einen
Zustand, bei dem ein Steuersignal.am OC-Ausgang wie fc · vorbeschrieben erzeugt wird.
Damit ist nun klar, daß eine einen Operanden enthaltende Speicherstelle, in die ein anderer Operand gespeichert
werden soll, entweder direkt oder indirekt über Adressenbezugswörter mit einem ersten Adressenbezugswort verkettet
ist und daß der Decodierer 26 wie auch die Schrittsteuerung 36 eine Einrichtung abgeben, die die Adressenbezugswörter
überwacht, sowie sie aus dem. Speicher ausgelesen werden, um zu bestimmen9 wenn ein Operand erhalten
wird. Jedesmal wenn ein Adressenbezugswort anstelle eines gewünschten Operanden erhalten wird, wird
das Wort, auf das sich das Adressenbezugswort bezieht, P von der Schrittsteuerung 36 ausgelesen, bis der Operand
erreicht wird.
Noch einmal zurück zum Zustand 4 der Schrittsteuerung 36;
man nehme an, daß der Decodierer 26 ein Ausgangssignal an dem IRW-Ausgang bildet und damit anzeigt, daß ein
IRW oder ein IRWS in dem C-Register 10 enthalten ist.
Unter diesen Umständen geht die Schrittsteuerung 36 aus dem Zustand 4 in den Zustand 13.
Das Steuersignal an C13 läßt das Tor 33 das IRW oder
IRWS, das in dem C-Register 10 enthalten ist, in das
109841/1564
Α-Register 12 speichern und die Schrittsteuerung 36 in den Zustand 14 übergehen. Somit enthalten jetzt die
beiden Register A und C die IRW oder IRWS.
Während des Zustandes 14 wird geprüft, ob das in dem
A-Register 12 enthaltene Adressenbezugswort ein IRW oder ein IRWS ist. Dazu bildet der Decodierer 28 ein
Steuersignal an dem E=l-Ausgang, wenn das Wort ein IRWS ist und bildet kein Steuersignal an dem E«l-Ausgang,
wenn das Wort ein IRW ist. Man nehme nun an, daß das Wort ein IRW ist. Dementsprechend geht die Schrittsteuerung
36 aus dem Zustand 14 in den Zustand 15. Während der Zustände 15_bis 17· der Schrittsteuerung 36 wird
eine absolute Adresse gebildet unter Zuhilfenahme der Adresseninformation des IRW, das in dem C-Register 10
enthalten ist. Entsprechend Fig. 3 wird festgestellt, daß das IRW einen 11-Wert und einen ο -Wert enthält.
Der 11-Wert bezeichnet eines der Anzeigeregister in Das Steuersignal bei Cl5 läßt das Tor 34 den 11-Wert in dem
in dem C-Register 10 enthaltenen IRW auf das Anzeigeregister 16 geben, wodurch die in dem entsprechenden Anzeigeregister enthaltene Adresse ausgelesen und auf einen Eingang
des Adressenaddierers 20 gegeben wird. Keine Adresseninformation wird auf den anderen Eingang des Addierers
gegeben und somit wird die Adresse aus dem Anzeigeregister ungeändert an den Ausgang des Addierers 20 weitergegeben.
Daraufhin geht die Schrittsteuerung 36 in den Zustand Das Steuersignal bei C16 läßt die Programmregister 18
die Adresse (die· aus den Anzeigeregistern ausgelesen und
ungeändert an den Ausgang des Adressenaddierers 20 weitergegeben wurde) in das BUFF Register speichern. Danach
geht die Schrittsteuerung 36 in den Zustand 17 über;
109841/1564
Die Anzeigeregister 16 und die Programmregister 18 können auf vielfältige Weise aufgebaut sein. Zum Zwecke
der hier anstehenden Erklärung mögen sie eine Torschaltung umfassen, die in das geeignete Register speichert
oder die Information aus dem geeigneten Register ausgibt.
Das Steuersignal bei Cl'7 läßt die Programmregister 18
die vorher in dem BUFF Register gespeicherte Adresse
P auslesen und auf einen Eingang des Adressenaddierers geben. Das Steuersignal bei C17 läßt weiterhin das Tor
34 den 6 -Wert aus dem in dem C-Register enthaltenen IRW auf den anderen Eingang des Adressenaddierers 20
geben. Der Adressenaddierer 20 ist so angelegt, daß er die zwei Werte automatisch addiert und die absolute
Adresse bildet, auf die sich das in dem C-Register 10
enthaltene IRW bezieht. Das Steuersignal bei C17» läßt das MM Register 22 den Adressenausgang aus dem Adressenaddierer
20 speichern. Nach dem Zustand 17· geht die Schrittsteuerung 36 in einen Zustand über, bei dem ein
Steuersignal am MC-Ausgang auftritt und das nächste
^ Wort in der Kette wird gelesen.
Die vorstehende Beschreibung der Zustände 15 bis 17'
betrifft ein IRW, das sich auf ein Wort bezieht bzw· auf ein Wort deutet, das in der gleichen Adressenumgebung
wie die gerade ausgeführte Prozedur sich befindet; mit anderen Worten, das sich innerhalb des gleichen
Stapels befindet, auf den von den Anzeigeregistern gezeigt wird. Ein IRWS ist ein Bezugswort, das sich auf
ein Wort bezieht bzw. auf ein Wort deutet, das außerhalb der Adressenumqebung der gerade ausgeführten Prozedur
sich befindet.
109841/1564
Wie in Fig. 3 angedeutet, enthält ein IRWS einen DISP-Wert
und einen i -Wert. Der DISP-Wert wird zu der in
dem BOSR-Register der Programmregister 18 enthaltenen Adresse der Stapelbasis addiert und außerdem zu dem
ο -Wert addiert, so daß sich die Adresse ergibt, auf
die sich das IRWS bezieht.
Man nehme an, daß das in dem A-Register 12 beim Zustand
14 enthaltene Bezugswort ein IRWS ist. Statt in den Zustand 15 geht die Schrittsteuerung 36 in den Zustand
18 über. Während des Zustandes 18 läßt das Steuersignal am C18-Ausgang die Programmregister 18 den Inhalt des
BOSR-Registers auf einen Eingang des Adressenaddierers geben. Das Steuersignal bei C18 läßt weiterhin das Tor
den Inhalt des DISP-Feldes des in dem A-Register 12 enthaltenen
IRWS auf den anderen Eingang des Adressenaddierers 20 geben. Der Adressenaddierer 20 addiert automatisch
diese beiden Werte und bildet die Summe. Danach wird der Zustand 19 eingenommen. Das Steuersignal bei
C19 läßt die Programmregister 18 die Summe in das BUFF-Register
speichern. Nach dem Zustand 19 nimmt die Schrittsteuerung 36 den Zustand 20 an. Während des Zustandes
läßt das Steuersignal bei C20 den Inhalt des BÜFF Registers in dem Programmregistern 18 auf einen Eingang
des Adressenaddierers 20 gelangen. Das Steuersignal bei C20 läßt weiterhin das Tor 34 den ο -Wert des in dem
C-Register 10 enthaltenen IRWS auf den anderen Eingang des Adressenaddierers 20 gelangen. Danach wird der Zustand
20· eingenommen und das Steuersignal bei C201
läßt das MM-Register 22 die Summe speichern. Nach dem Zustand 20' nimmt die Schrittsteuerung 36 einen Zustand
an, bei dem ein Steuersignal an dem MC-Ausgang gebildet wird.
109841/15B4
2028718
Man sieht somit, daß während des Zustandes 14 (ob ein
IRW oder ein IRWS in dem A-Register 12 gespeichert ist) eine Adresse gebildet wird, die die absolute Adresse
einer- Speicherstelle ist, an der das Wort gefunden werden kann, auf das sich das IRW oder IRWS bezieht. Das
Steuersignal bei MC bewirkt einen Speicherzyklus, der
ähnlich zu dem vorbeschriebenen abläuft, wobei das an der absoluten Adresse gespeicherte Wort aus dem Kern-
|f speicher 38 ausgelesen und in das C-Register 10 gespeichert
wird.
Das Steuersignal bei M3 des Speicherzählers 60 nach dem
Speicherzyklus läßt die Schrittsteuerung 36 in den Zustand 21 übergehen. Während des Zustandes 21 wird das
in dem Register 10 während des vorhergehenden Speicherzyklus1
gespeicherte Wort darauf geprüft, ob es ein IRW oder ein IRWS ist. Wenn ein IRW oder ein IRWS ge- .
speichert ist, wird ein Steuersignal an dem IRW-Ausgang
des Decodierers 26 gebildet, der die Schrittsteuerung 36 zur Rückkehr in den Zustand 13 veranlaßt ι das Wort,
auf das sich das in dem C-Register 10 gespeicherte IRW ψ oder IRWS bezieht, wird ausgelesen und in das C-Register
10 gespeichert. Man nehme nun an, daß dieses Verfahren wiederholt wird, bis ein Wort in dem C-Register 10 gespeichert
ist, das kein IRW oder IRWS ist. Unter diesen Umständen geht die Schrittsteuerung 36 vom Zustand 21
in den Zustand 22, wodurch das Endprogramm (Fig. 2D)
erreicht wird.
Im Zustand 22 wird das in dem C-Register 10 enthaltene
Wort darauf geprüft, ob es ein DD ist. Wenn es ein DD ist, wird ein Steuersignal an dem DD-Ausgang des Decodierers
26 gebildet, das die Schrittsteuerung 36 zur
109841/1564
Rückkehr in den Zustand 6 veranlaßt, wodurch das DD-Flußdiagramm
aus der Fig. 2B wiederholt wird.
Wenn das in dem C-Register IG enthaltene" Wort kein DD
ist, wird kein Steuersignal an dem DD-Ausgang des Decodierers 26 gebildet. Dadurch geht die Schrittsteuerung
36 aus dem Zustand 22 in den Zustand 23.
Während des Zustandes 23 wird geprüft, ob das in dem
C-Register 10 enthaltene Wort ein PCW ist. Wenn das Wort ein PCW ist, bildet der Decodierer 26 ein Steuersignal
an dem PCW-Ausgang, wodurch die Schrittsteuerung 36 ein Steuersignal an dem PE-Ausgang bildet, das seinerseits
den Datenrechner dazu veranlaßt, eine Zufallsprozedur (englisch: accidental procedure entry) auszuführen.
Die Zufallsprozedur, die durch ein derartiges PCW eingeleitet wird, ist ähnlich derjenigen, die in
der oben zitierten deutschen Patentanmeldung P 17 74 907.4-53
beschrieben wurde. Man bedenke, daß die auf ein derartiges PCW hin eingeleitete Prozedur die Berechnung einer Adresse
bewirkt, die ihrerseits als Adresse dienen kann, in die . M
der in dem B-Register 14 enthaltene Operand gespeichert werden soll.
Man nehme an, daß während des Zustandes 23 kein Steuersignal
an dem PCW-Ausgang des Decodierers 26 gebildet · wird, wodurch angezeigt wird, daß das in dem C-Register
10 enthaltene Wort kein PCW ist. Dadurch geht die Schrittsteuerung
36 in den Zustand 24 über und bildet ein Steuersignal an dem C24-Ausgang.
Während des Zustandes 24 wird geprüft, ob das_In dem
C-Register 10 enthaltene Wort ein Operand ist. Wenn das
109841/1584
in dem C-Register 10 enthaltene Wort ein Operand istr
bildet der Decodierer 26 ein Steuersignal an dem Operanden-Ausgang. Wenn der Decodierer 26 kein Steuersignal
an dem Operanden-Ausgang bildet, zeigt dies an, daß eine
andere Wortart in dem C-Register 10 gespeichert ist, was eine Fehlerbedingung darstellt. Dementsprechend spricht
die Schrittsteuerung 36 auf diese Bedingung an und bildet ein Steuersignal an dem OI-Ausgang und zeigt damit an,
daß eine Unterbrechungsbedingung aufgrund eines unzulässigen Operators vorliegt; weiter wird ein Steuersignal
an dem OC-Ausgang gebildet, wodurch die Beendigung der Ausführung des Operators angezeigt wird.
Man nehme an, daß während des Zustandes 24 ein Steuersignal
an dem Operanden—Ausgang des Decodierers 26 als
Anzeige dafür, daß ein Operand in dem C-Register 10 gespeichert ist, gebildet wird. Diese Bedingung läßt die
Schrittsteuerung 36 in den Zustand 25 übergehen.
Während des Zustandes 25 wird ein Steuersignal an dem C2 5-Ausgang der Schrittsteuecung 36 gebildet, das bewirkt,
daß das A-Regi'ster 12 gelöscht oder auf 0 gesetzt wird. Nach dem Zustand 25 geht die Schrittsteuerung 36
in den Zustand 26 über.
Während des Zustandes 26 wird geprüft, ob der in dem
Operator-Register 24 enthaltene Operator ein löschender Speicheroperator ist. Wenn der Operator ein löschender
Speicheroperator ist, wird der Zustand 27 eingenommen.
Das Steuersignal bei C27 läßt das B-Register löschen oder auf 0 zurücksetzen und nachfolgend die Schritt—
steuerung 36 ein Steuersignal an dem OC-Äusgang.bilden,
wodurch die Beendigung der Ausführung des Operators
109841/1564
angezeigt wird. Wenn der in dem Operator-Register 24 gespeicherte Operator ein nicht-löschender Operator
ist, dann wird das Signal an dem OC-Ausgang unmittelbar nach dem Zustand 26 gebildet.
Man erkennt, daß der Speicher Speicherstellen enthält,
an denen Wörter gespeichert sind, die Operandenwörter und Adressenbezugswörter (d.h. IRW, IRWS, DD und PCW-Wörter)
umfassen. Ein Operand ist in einer Speicherstelle gespeichert und hangt an einem ersten Adressenbezugswort
entweder direkt oder indirekt über andere Bezugswörter durch Speicheradressen—Signale, die in den Bezugswörtern
enthalten sind. Jedes der Wörter enthält ein Signal, das die Art des Wortes bezeichnet. Die Bezugs—
Wörter werden aus derjenigen Speicherstelle ausgelesen,
die durch das Adressensignal in dem ersten Adressenbezugswort und in allen dadurch bezeichneten Wörtern
angegeben wird, bis ein Operandenwort ausgelesen wird. Wenn ein Operandenwort ausgelesen wird, dann wird das
zur Speicherung vorgesehene Wort in der gleichen Stelle gespeichert, aus der der Operand ausgelesen wurde· Der
Decodierer 26 und die Komponenten 54 bis 58 bilden eine Einrichtung zur Überwachung der Markierungs- oder Artsignale
in jedem Wort für das Operandenwort und sorgen somit dafür, daß das Wort gespeichert wird, wenn das
Operandenwort angetroffen wird.
Man bedenke weiterhin, daß die Flußdiagramme zwar gewisse Prüfoperationen, so beispielsweise bei Cl, C4,
C5, C6, C8, C9 etc. als sequentiell auftretend zeigen, daß jedoch viele oder die meisten dieser Prüfstufen
gleichzeitig mit Operationen oder, in speziellen Fällen untereinander gleichzeitig ausgeführt werden können,
109841/15.6 A
also jedenfalls nicht sequentiell ausgeführt werden müssen.
Es wurde also eine Datenverarbeitungsanlage mit einem
Speicher beschrieben, in dessen Speicherstellen Wörter enthalten sind, die Operandenwörter und Adressenbezugswörter
umfassen. Ein in einer Speicherstelle gespeicherter Operand ist mit einem ersten Bezugswort direkt
oder über andere Adressenbezugswörter durch ein Speicheradressen-Signal in jedem Bezugswort verkettet,wobei
jedes der Wörter ein die Art des zugehörigen Wortes bezeichnendes Artsignal enthält. Das Wort in der Speicherstelle,
die von dem Adressensignal in dem ersten Bezugswort bezeichnet wird, wird gelesen, und alle Wörter, ,
die von dem gelesenen Adressenbezugswort bezeichnet werden, werden gelesen, bis ein Operandenwort ausgelesen
wird. Die Artsignale der'ausgelesenen Wörter werden
auf eine Operandenwortart hin überwacht. Ein gewünschtes Wort wird in diejenige Speicherstelle eingespeichert,
aus der ein Operandenwort ausgelesen wurde· Das Verfahren setzt sich aus folgenden Schritten zusammen: Auslesen desjenigen Wortes aus dem Speicher, das von dem
ersten Adressenbezugswort bezeichnet wird; Auslesen -jedweder Wörter, die von einem derartigen gelesenen
Wort bezeichnet werden, bis ein Operandenwort gelesen
wird. Die Artsignale der ausgelesenen Wörter werden auf eine Operandenwortart überwacht. Ein gewünschtes Wort
wird in diejenige Speicherstelle eingespeichert, aus der ein Wort ausgelesen wurde, das ein Operandenartsignal
enthält.
41/15 6
Claims (1)
- Ansprüche1. Verfahren zum Speichern eines Wortes in einem Speicher einer Datenverarbeitungsanlage, bei der eine ein Operandenwort enthaltende Speicherstelle über eines oder mehrere, an anderen Stellen gespeicherte Adressenbezugswörter mit einer ein erstes Adressenbezugewort enthaltenden SpeichersteHe verkettet ist und Operanden- sowie Adressenbezugswörter ihre Art bezeichnende Markierungen enthalten, dadurch gekennzeichnet, daß das erste Adressenbezugswort und die folgenden mit ihm verketteten Wörter aus den jeweiligen Speicherstellen ausgelesen und ihre Markierungen auf das Vorliegen einer Operandenwortmarkierung geprüft werden; und daß das zu speichernde Wort an derjenigen Speicherstelle gespeichert wird, aus der ein eine Operandenwortmarkierung tragendes Wort ausgelesen wird.2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,daß das Speichern des Wortes bei Vorliegen eines "Speichere" Operators durchgeführt wird.Datenverarbeitungsanlage zur Ausführung des Verfahrens nach Anspruch 1 oder 2 mit einem Speicher, dessen Speicherstellen Operandenwörter und indirekte Adressenbezugswörter enthalten und bei dem eine ein Operandenwort enthaltende Speicherstelle direkt oder über andere Adressenbezugswörter durch ein Speicheradressensignal in jedem Adressenbezugswort mit einer ein erstes Adressenbezugswort enthaltenden Speicherstelle Verkettet ist, sowie mit einer Leseschaltung, die ein Wort aus derjenigen Speicherstelle ausliest, die von dem Adressensignal109 841/15-6 A 'in dem vorangegangenen Adressenbezugswort angegeben ist, gekennzeichnet durch eine Prüfschaltung' (54,55,56), die die Markierung des jeweils ausgelesenen Wortes auf.eine Operandenwortmarkierung prüft, und durch eine Schreibschaltung (40,44,54,58,26,28), die das zu speichernde Wort an derjenigen Speicherstelle einspeichert, aus der ein eine Operandenwortmarkierung tragendes Wort ausgelesen wurde.w 4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß ein Register (24) für das Speichern von Operatoren, beispielsweise eines "Speichere"-Operators, vorgesehen ist und daß die Prüf- sowie die Schreibschaltung in Abhängigkeit auf einen einzelnen "Speichere"-Operator arbeiten.5. Datenverarbeitungsanlage nach Anspruch 3 oder 4, gekennzeichnet durch ein Register (14), das das zu speichernde Wort aufnimmt.6. Datenverarbeitungsanlage nach einem der Ansprüche 3 t bis 5, gekennzeichnet durch ein weiteres Register (10), das das erste Adressenbezugswort sowie andere von ihm bezeichnete Bezugswörter nach deren Auslesen aus dem Speicher aufnimmt.7. Datenverarbeitungsanlage nach einem der Ansprüche 3 bis 6, gekennzeichnet durch eine auf einen "Speichere"-Operator ansprechende Steuerschaltung (36), die durch ein Steuersignal die Leseschaltung zum Auslesen eines weiteren Wortes aus dem Speicher veranlaßt, wenn ein eine Adressenbezugswortmarkierung enthaltendes Wort vorliegt.10984 17 15648. Datenverarbeitungsanlage nach Anspruch 7, gekennzeichnet durch eine Anzeigeschaltung (26,, Ausgänge.DD, IRW), die die Markierungen der aus dem Speicher ausgelesenen Wörter überwacht und auf die Steuerschaltung eine das Vorliegen eines Adressenbezugswortes signalisierende Anzeige gibt.9. Datenverarbeitungsanlage nach einem der Ansprüche 3 bis 8, dadurch gekennzeichnet, daß die Adressenbezugswörter solche Wörter (PCW) enthalten, die auf eine andere von der Datenverarbeitungsanlage auszuführende Prozedur weisen; daß diese Wörter (PCW) mit einer eigenen Markierung versehen sind; und daß die Anzeigeschaltung (26, Ausgang PCW) auf diese Markierung anspricht und eine Anzeige abgibt, die das Übertragen der Steuerung auf die andere Prozedur signalisiert.10. Datenverarbeitungsanlage nach einem der Ansprüche3 bis 9, dadurch gekennzeichnet, daß das zu speichernde Wort in einem ersten Register (48) und das aus dem Speicher ausgelesene Wort in einem zweiten Register (46) zwischengespeichert werden; daß die Schreibschaltung auf die Prüfschaltung anspricht und in den Speicher das Wort aus dem ersten Register dann einspeichert, wenn eine Operandenwortmarkierung festgestellt wurde, unddas Wort aus dem zweiten Register in den Speicher speichert, wenn eine Adressenbezugswortmarkierung festgestellt wurde.11. Datenverarbeitungsanlage nach einem der Ansprüche 3 bis 10, dadurch gekennzeichnet, daß die Adressenbezugswörter ein indirektes Bezugswort und Datenbezeichner enthalten; daß die indirekten Bezugswörter auf andere indirekte Bezugswörter, DatenbezeIchner und Operan-109841/1564den weisenj daß die Datenbezeichner lediglich auf andere Datenbezeichner und Operanden weisen} daß für die indirekten Bezugswörter und die Datenbezeichnet eigene Markierungen vorgesehen sindj daß die Prüfschaltung (26) und (28, Ausgänge IRW, DD, Operand) die Markierungen überwacht und ein die verschiedenen Arten der Adressenbezugswörter bezeichnendes Ausgangssignal abgibt; und daß eine Fehlersignalschaltung (36) auf die Markierung der aus dem Speicher ausgelesenen Wörter anspricht und ein Fehlersignal abgibt, wenn ein Datenbezeichnet auf ein indirektes Bezugswort weist.12. Datenverarbeitungsanlage nach einem der Ansprüche 3 bis 11, dadurch gekennzeichnet, daß die Adressenbezugswörter in einem Stapel aufeinanderfolgender Speicherstellen im Speicher (38") gespeichert sind.109841/1 564
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84601069A | 1969-07-30 | 1969-07-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2026718A1 true DE2026718A1 (de) | 1971-10-07 |
Family
ID=25296696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19702026718 Pending DE2026718A1 (de) | 1969-07-30 | 1970-06-01 | Verfahren und Vorrichtung zum Speichern von Wörtern im Speicher einer Datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
US (1) | US3611310A (de) |
JP (1) | JPS5126013B1 (de) |
BE (1) | BE753831A (de) |
DE (1) | DE2026718A1 (de) |
FR (1) | FR2055542A5 (de) |
GB (1) | GB1268984A (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4241396A (en) * | 1978-10-23 | 1980-12-23 | International Business Machines Corporation | Tagged pointer handling apparatus |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3222649A (en) * | 1961-02-13 | 1965-12-07 | Burroughs Corp | Digital computer with indirect addressing |
BE621075A (de) * | 1961-08-17 |
-
1969
- 1969-07-30 US US846010A patent/US3611310A/en not_active Expired - Lifetime
-
1970
- 1970-05-13 GB GB23123/70A patent/GB1268984A/en not_active Expired
- 1970-06-01 DE DE19702026718 patent/DE2026718A1/de active Pending
- 1970-07-23 BE BE753831D patent/BE753831A/xx not_active IP Right Cessation
- 1970-07-23 FR FR7027242A patent/FR2055542A5/fr not_active Expired
- 1970-07-30 JP JP45066200A patent/JPS5126013B1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
FR2055542A5 (de) | 1971-05-07 |
US3611310A (en) | 1971-10-05 |
BE753831A (fr) | 1970-12-31 |
GB1268984A (en) | 1972-03-29 |
JPS5126013B1 (de) | 1976-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE2630323B2 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik | |
DE1901228A1 (de) | Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE69509024T2 (de) | Emulator mit Detektierungsmechanismus eines illegalen Zugriffs auf ein Spezialregister | |
DE2145709A1 (de) | Datenverarbeitungsanlage | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE1499206B2 (de) | Rechenanlage | |
DE69230898T2 (de) | Speicherauswahl enthaltendes Verarbeitungs-System und Verfahren | |
DE3750311T2 (de) | Gerät und Verfahren zur Übertragung zwischen Prozessoren. | |
DE2654389C3 (de) | Wartungssteuerung mit Prozessor und Speicher zur Fehleranalyse und -diagnose für elektronische Datenverarbeitungsanlagen und Verfahren zu deren Betrieb | |
CH625895A5 (de) | ||
DE3323824A1 (de) | Speicherprogrammierbare steuerung | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
DE3486276T2 (de) | Verfahren zum Steuern eines Pufferspeichers in einem Datenverarbeitungsgerät. | |
DE3226214C2 (de) | Datenverarbeitungsanlage | |
DE2425380C2 (de) | Datenverarbeitungsanlage zur parallelen Ausführung von Verarbeitungsoperationen | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE2242009C2 (de) | Verfahren und Anordnung zum Erkennen, ob im Mikroprogramm einer Datenverarbeitungsanlage vorgesehene Verzweigungsoperationen ausgeführt werden | |
DE102009009172B4 (de) | Abbildung von Adressen eines Programmcodes und von Adressen von Daten in einem Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHN | Withdrawal |