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 Datenverarbeitungsanlage

Info

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
Application number
DE19702026718
Other languages
English (en)
Inventor
Bobby Andrew Glendora; Dent Benjamin Albert Altadena; Hauck Erwin Arthur Arcadia; Calif. Creech (V.St.A.). P
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.)
Unisys Corp
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2026718A1 publication Critical patent/DE2026718A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/1416Protection 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/1425Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing 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.
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
Betriebsablauf
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)

  1. Ansprüche
    1. 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 Adressensignal
    109 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 1564
    8. 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üche
    3 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, und
    das 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/1564
    den 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
DE19702026718 1969-07-30 1970-06-01 Verfahren und Vorrichtung zum Speichern von Wörtern im Speicher einer Datenverarbeitungsanlage Pending DE2026718A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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