CH504728A - Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen - Google Patents

Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen

Info

Publication number
CH504728A
CH504728A CH497266A CH497266A CH504728A CH 504728 A CH504728 A CH 504728A CH 497266 A CH497266 A CH 497266A CH 497266 A CH497266 A CH 497266A CH 504728 A CH504728 A CH 504728A
Authority
CH
Switzerland
Prior art keywords
address
word
register
command
memory
Prior art date
Application number
CH497266A
Other languages
English (en)
Inventor
Jefferson Beatson Thomas
John Boyle Frank
Fred Jr Burch Byron
Douglas Hunter Robert
Ewing Keefer David
Martin Rojko Richard
William Scott Daniel
Edward Wilhite John
Original Assignee
Gen Electric
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
Priority claimed from US446067A external-priority patent/US3368204A/en
Priority claimed from US448194A external-priority patent/US3366932A/en
Priority claimed from US448197A external-priority patent/US3368206A/en
Priority claimed from US448196A external-priority patent/US3368205A/en
Priority claimed from US448537A external-priority patent/US3413609A/en
Priority claimed from US448541A external-priority patent/US3370275A/en
Application filed by Gen Electric filed Critical Gen Electric
Publication of CH504728A publication Critical patent/CH504728A/de

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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Description


  
 



  Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen der in einem Speicher gruppenweise gespeicherten Befehlsworte.



   Datenverarbeitungsanlagen, die eine Folge von Befehlsworten ausführen, d. h. einem Programm folgen, sollten in der Lage sein, ein Befehlswort, wie es in dem Speicher eingespeichert ist, durch Änderung des Adressenfeldes zu modifizieren, ohne den Befehlscode selbst zu ändern. Es ist üblich, das Adressenfeld eines Befehlswortes in dem Programm dadurch zu ändern, dass man eine beschränkte Anzahl von Indexregistern in der Datenverarbeitungsanlage vorsieht. Jedes dieser In   dexregister    enthält eine Information, die dazu verwendet werden kann, das Adressenfeld des Befehlswortes in arithmetischer oder logischer Weise zu modifizieren, nachdem das Befehlswort aus dem Speicher ausgelesen worden ist, jedoch noch vor der Durchführung des Befehls.



   Wenn die Anzahl von Indexregistern in der Datenverarbeitungsanlage nur klein ist, ist es notwendig, eine grosse Anzahl   unproduktiver    Datenverarbeitungsschritte vorzunehmen, um entweder eine Adresse eines Zweiadressenbefehls zu entwickeln, um die Programmierung bestimmter Befehle zu verbessern, oder um die Befehlsworte zu modifizieren. Um die Adressenfelder mehrerer Befehle zu modifizieren und um den Inhalt solcher Indexregister zu ändern, müssen bestimmte Datenverarbeitungsbefehle verwendet werden.

  Solche nicht produktive Datenverarbeitungsschritte machen das ganze Programm komplexer, erfordern ausserdem eine grosse Anzahl von Speicherplätzen, um die zusätzlichen Befehle zu speichern, und verschwenden ausserdem wertvolle   Datenverarb eitungszeit.    Eine   fortschrittw    liche Programmierungstechnik erfordert eine grosse Anzahl von Indexgrössen, um die Möglichkeiten der Datenverarbeitungsanlage möglichst günstig ausnützen zu können. Wenn man in einer Datenverarbeitungsanlage jedoch eine grosse Anzahl von Indexregistern verwendet, um die Anzahl der unproduktiven Datenverarbeitungsschritte zu vermindern und um eine komplexe Programmierung zu ermöglichen, so wird die ganze Datenverarbeitungsanlage sehr komplex und erfordert eine umfangreiche und kostspielige Schaltlogik.



   Eine Forderung, die bei der Datenverarbeitung häufig auftritt, besteht in der Wiederholung einer Gruppe von Programmbefehlen. So können beispielsweise in einem Programm viele Punkte existieren, an denen eine Gruppe von Befehlen vorgesehen sein muss, um ein System simultaner Gleichungen lösen zu können. Hier könnte man zwar an jedem Punkt die Gruppe dieser Befehle wiederholen, die zur Lösung der Simultangleichungen erforderlich sind. Es ist jedoch günstiger, diese Gruppe von Befehlen erneut in das Programm einzuführen, und das Programm so einzurichten, dass ,die Datenverarbeitungsanlage auf ein Unterprogramm oder eine Subroutine abzweigt, wenn die Lösung simultaner Gleichungen erforderlich ist. In gleicher Weise kann es diese Subroutine notwendig machen, dass die Datenverarbeitungsanlage wiederholt zu einer anderen Subroutine übergeht.

  Die hierbei auftretende Schwierigkeit besteht darin, der Datenverarbeitungsanlage denjenigen Punkt im Programm anzuzeigen, zu dem sie zurückkehren soll, wenn sie gerade eine vorgegebene Subroutine beendet hat. Dieses wird die Verkettung von Subroutinen genannt. Ähnliche Schwierigkeiten treten bei der Verarbeitung von mehrdimensionalen Matrizen und bei der Tabellierung auf.



  In der Verarbeitung mehrdimensionaler Matrizen, Tabellierungsvorgängen und bei anderen komplexen Datenverarbeitungsoperationen werden Indexregister zur Unterstützung dieser Verkettung von Subroutinen verwendet. Die beschränkte Anzahl von Indexregistern in einer gewöhnlichen Datenverarbeitungsanlage stellt jedoch keine zufriedenstellende Lösung der Schwierigkeiten dar, die sich bei einer fortgeschrittenen Programmierung einer Datenverarbeitungsanlage ergeben.



  Es ist daher wünschenswert, den Indexteil in einer Datenverarbeitungsanlage flexibler zu machen.  



   Wenn es sich um Zweiadressenbefehle handelt, ist es üblich, die zweite Adresse auf die gleiche Weise durch Verwendung eines Index zu gewinnen, in der die Gewinnung der Adresse eines Einadressenbefehles vor sich geht, d. h. durch Verwendung einer begrenzten Anzahl von Indexregistern in der Datenverarbeitungsanlage. Wenn die Anzahl der Indexregister in einer Datenverarbeitungsanlage nur klein ist, wird es notwendig, diese grosse Anzahl unproduktiver Datenverarbeitungsschritte durchzuführen, da Datenverarbeitungsbefehle dazu verwendet werden müssen, sowohl die zweiten als auch die ersten Adressen anderer Befehle zu modifizieren und den Inhalt der Indexregister zu ändern.



   In Datenverarbeitungsanlagen ist es günstig, wenn ein einzelnes Befehlswort im Programm explizit zwei   diskrete    Speicherzellen adressieren kann. Ein solches Befehlswort wird Zweiadressenbefehl genannt. Ein Zweiadressenbefehl kann daher zwei Operanden verwenden, die in den beiden adressierten Speicherstellen vorhanden sind, um die Datenverarbeitungsfunktion durchzuführen, die aus dem Operationskode des Befehlwortes hervorgeht. Wenn in dem Befehlsvorrat der Datenverarbeitungsanlage   Zwei-Adressenbefehle    vorhanden sind, kann die Programmierung der Datenverarbeitungsanlage flexibler und fortschrittlicher gestaltet werden, so dass es möglich ist, das Programm kürzer zu machen und weniger Plätze im Speicher zu benutzen.



   In einer   Datenverarbeitungsanlage    sollte es auch möglich sein, mit einer indirekten Adressierung zu arbeiten. Bei der indirekten Adressierung gibt das Adressenfeld des Befehlswortes den Platz im Speicher an, an dem die Adresse desjenigen Operanden, der von dem Befehlswort verarbeitet werden soll, gefunden werden kann. Durch die indirekte Adressierung ist es möglich, die Programmierung der Datenverarbeitungsanlage flexibler zu gestalten. Ausserdem ist die indirekte Adressierung auch bei der Durchführung von vielen Datenverarbeitungsoperationen von Wert. Durch diese indirekte Adressierung ist es möglich, die Datenverarbeitungsanlage fortschrittlicher zu programmieren und die Datenverarbeitungsanlage besser auszunutzen.



   Selbst wenn es möglich ist, bei einer Datenverarbeitungsanlage mit indirekter Adressierung zu arbeiten, sind viele Datenverarbeitungsoperationen schwierig zu programmieren. Eine grössere FleXibilität in der indirekten Adressierung ist beispielsweise beim Sortieren, beim Verknüpfen von Subroutinen und beim Tabellieren von Vorteil, um eine fortschrittlichere Programmierung durchführen zu können.



   Ziel der Erfindung sind daher Verbesserungen in einer Datenverarbeitungsanlage, und im besonderen Verbesserungen im Adressen- und   Indexteil    einer solchen Anlage, durch die die gesamte Anlage selbst und auch die Rechnerzeit besser als bisher ausgenutzt werden.



   Die Erfindung ist dadurch gekennzeichnet, dass die Vorrichtung folgende Bauteile enthält: a) ein erstes Register, welches die Übertragung eines Befehlswortes oder Hilfswortes aus dem Speicher steuert, zwecks zwischenzeitlicher Speicherung mindestens eines Teiles des genannten Wortes in mindestens einem weiteren Register, b) ein zweites Register zur Speicherung einer beschränkten Anzahl von Bitstellen eines Befehls- oder   Hilfswortes,    im nachfolgenden mit Adressensteuerfeld bezeichnet, zwecks Modifizierung des Adressenteiles des in einem der genannten weiteren Register gespeicherten Wortes mittels eines Addierers, c) eine Operationssteuereinheit, eine Zeitgebersteuereinheit und eine Prüfeinheit zur Steuerung der durch die Modifizierung bedingten   tÇbertragungsvor-    gänge.



   Es sind also mehrere Register   vorgeschen,    die in der Lage sein können, bestimmte Bits von Worten, die ihnen übertragen wurden, zu untersuchen. Die Bestimmung, um welche Art von Worten es sich handelt, also beispielsweise um ein Befehlswort, ein anderes spezielles Wort oder ein Hilfswort, kann durch die Untersuchung vorgegebener Bitstellen dieses Wortes durchgeführt werden, um die Konfiguration dieser Bitstellen zu bestimmen. Es kann dann eine Subroutine oder eine Mikrooperation ausgelöst werden, deren Folge von der Bitkonfiguration abhängt. Diese Subroutine kann durch die   Übertragung    des Befehlswortes zwischen Registern den Dateninhalt des Wortes in Abhängigkeit vom Informationsinhalt in dem Hilfswort modifizieren. Das Hilfswort selbst kann ebenfalls modifiziert werden.

  Der Dateninhalt des modifizierten Wortes (hauptsächlich des Befehlswortes) kann weiterhin durch das gleiche oder durch ein anderes Hilfswort modifiziert werden.



  Das hängt von Registern ab und kann von Registern gesteuert werden, deren Zustand mit der ursprüng   eichen    oder auch späteren Dekodierung eines dieser Worte in Abhängigkeit steht.



   Die Modifizierung des Befehlswortes bezieht sich also auf die Modifizierung der Adresse des Operanden, der durch den Befehl verarbeitet oder beeinflusst werden soll. Es kann sich hier um eine einfache oder auch doppelte Adresse handeln. Es wird somit nicht mehr die Adresseninformation in dem Befehlswort als die zu verwendende übernommen, sondern es wird stattdessen eine Adressenmodifizierung ausgeführt, die im nachfolgenden Adressenentwicklung genannt werden soll.



   Durch die -erfindungsgemässen Massnahmen hat der Programmierer wesentlich mehr Freiheit, Adressen zu entwickeln. Ausserdem wird die gesamte Rechenzeit bei einem minimalen apparativen Aufwand vermindert.



   Nach einer Ausführungsform der Anlage sind in aufeinanderfolgenden Speicherplätzen, die auf das Be   fehlswsrt    folgen, das verarbeitet werden soll, ein oder mehrere Hilsworte gespeichert, die im folgenden AMS Worte genannt werden sollen. Wenn in bestimmten -Bitplätzen des Befehlswortes, die Adressensteuerfeld genannt werden, bestimmte binäre Ziffern vorhanden sind, wird ein AMS-Wort aus dem Speicher heraus in die Vorrichtung zum Entwickeln von   Operandenadres-    -sen eingelesen, in der dann bestimmt wird, ob das Wort ein Index, eine Indexstelle oder ein Indexsprung ist. Wenn sich das AMS-Wort selber als ein Index identifiziert, wird das Adressenfeld des AMS-Wortes dem   Adressenfeld    des Befehlswortes hinzuaddiert.

 

  Wenn das AMS-Wort sich selbst als eine Indexstelle identifiziert, bedeutet das Adressenfeld des AMS-Wortes einen Speicherplatz, der einen Index enthält. Dieser Index wird aus dem Speicher ausgelesen und dem Adressenfeld des Befehlswortes in der Vorrichtung zum Entwickeln von Operandenadressen hinzuaddiert.



  Wenn sich das AMS-Wort selbst als Indexsprung identifiziert, enthält sein Adressenfeld die Adresse einer anderen Art von Hilfswort, die entfernt liegendes AMS-Wort genannt werden soll. Dieses entfernt liegende   AMS-Wort    ist dann aus dem Speicher in die     VQrrichtung    zum Entwickeln von   perandenadressen    auszulesen. Der Zustand vorgegebener Bitstellen in dem entfernt liegenden AMS-Wort   kann-dieses    AMS Wort   wiederum    als Index, als Indexstelle oder als einen Indexsprung identifizieren. Diese Folge läuft un   teer der    Steuerung durch die Vorrichtung solange ab, bis eine   Indexgrosse    erhalten und dem Adressenfeld -des Befehlswortes hinzuaddiert worden ist.



   Wenn das Adressenfeld des   Befehiswortes    durch Hinzuaddieren einer Indexgrösse aufgebaut worden ist,   lehrt    die Steuerung wieder zu dem AMS-Wort zurück, das diese Folge ausgelöst hat. In Abhängigkeit vorgegebener   binärer    Ziffern in   -dem    Adressensteuerfeld des AMS-Wortes kann ein anderes AMS-Wort aus dem Speicher heraus und in die Vorrichtung hineingelesen werden, so dass die Modifizierung und der Aufbau des Adressenfeldes eines Befehls fortgeführt werden kann, wie es oben beschrieben ist. Dieser Aufbau von Adressen, bei dem der Inhalt eines jeden beliebigen adressierbaren Speicherplatzes verwendet wird, wird dann unter der Steuerung durch die Vorrichtung solange fortgesetzt, bis die endgültige Adresse des Befehlswortes in der Vorrichtung aufgebaut ist.

  Der Aufbau der endgültigen Adresse des Befehlswortes ist dann beendet, wenn das AMS-Wort, das -diese Folge zum Adressenaufbau ausgelöst hat, in seinem Adressenfeld keinen Kode mehr enthält, der bedeutet, dass ein anderes AMS-Wort aus dem Speicher auszulesen ist.



   Nach einer Ausführungsform der Vorrichtung sind in dem Befehlswort   Idrei    Bits als   Adressenste'uerfeld    vorgesehen. Wenn der Befehl ein Zweiadressenbefehl ist, und wenn der Wert der Bits in dem Adressensteuerfeld im Bereich zwischen 1 und 6 liegt, dann wird dieser Wert als zweite Adresse des Befehls -genommen, und der Inhalt der entsprechenden Speicherstellen aus den Stellen 1-6 stellt den zweiten Operanden dar. Wenn das Adressensteuerfeld einen Wert von 7 hat, wird in der Vorrichtung die erste Adresse aufgebaut. Ist der Wert des Adressensteuerfeldes dagegen 0, wird die erste Adresse nicht aufgebaut. An einem Speicherplatz, der auf diejenigen Speicherstellen folgt, in dem ein zu verarbeitendes Zweiadressenbefehlswort gespeichert ist, ist ein weiteres Hilfswort gespeichert, das im folgenden als SAS-Wort bezeichnet werden soll.



  Wenn der Wert des Adressensteuerfeldes nicht zwischen 1 und 6 liegt, wird das AMS-Wort dazu verwendet, die erste Adresse des Befehls aufzubauen, sofern ein solcher Adressenaufbau erforderlich ist. Dann wird ein SAS-Wort aus dem Speicher in die Vorrichtung hineingelassen, wo der Inhalt vorgegebener Bitstellen im Wort dieses Wort als einen Operanden eine   Operandenstelle,    oder auch als einen Operandensprung kennzeichnet, und zwar ganz ähnlich, wie es in Verbindung mit dem entfernt liegenden AMS-Wort bereits erwähnt worden ist. Wenn sich das SAS-Wort selbst als einen Operanden erkennt, ist die zweite Adresse des Zweiadressenbefehls die Adresse dieses SAS-Wortes und dieses SAS-Wort enthält den zweiten Operanden des Befehls. Wenn sich das SAS-Wort selbst als Operandenstelle identifiziert, enthält das Adressenfeld des SAS-Wortes die zweite Adresse des Befehls.

  Der Programmverarbeiter verwendet dann diese Adresse, um den Operanden an demjenigen Speicherplatz auszulesen, der dieser zweiten Adresse entspricht. Dieser   ope-    rand wird dabei aus dem Speicher in das M-Register der Vorrichtung eingelesen. Wenn das SAS-Wort sich selbst als einen Operandensprung kennzeichnet, enthält sein Adressenfeld die Adresse eines Wortes,   -das    als entfernt liegendes SAS-Wort bezeichnet werden soll, und dann aus dem Speicher in die Vorrichtung eingelesen   wird.    Der Inhalt vorgegebener Bitplätze in diesem entfernt liegenden SAS-Wort   lässt    wiederum erkennen, ob es sich um einen Operanden, eine   Operandenstelle    oder einen   Operariensprung    handelt.

  Diese Folge wird solange fortgesetzt, bis die zweite Adresse des   Zwi-    adressenbefehls definiert und der entsprechende Operand aus der richtigen Speicherstelle in das M-Register der Vorrichtung eingeschrieben worden ist.



   Um mit einer indirekten Adressierung arbeiten zu können, sind an vorgegebenen Speicherplätzen zwei Arten von Hilfsworten eingespeichert. Die erste Art dieser Hilfsworte, die indirektes Adressenwort genannt wird, wird aus dem Speicher ausgelesen, wenn ein AMS-Wort einen ganz bestimmten Kode enthält. Die Adresse des indirekten Adressenwortes im Speicher wird aus dem Adressenbefehl des Befehlswortes unter der Steuerung des AMS-Wortes aufgebaut. Wenn das Adressensteuerfeld des indirekten Adressenwortes einen vorgegebenen Kode enthält, wird die zweite Art Hilfswort, die indirektes AMS-Wort genannt werden soll, aus demjenigen Platz im Speicher ausgelesen, der auf den Speicherplatz folgt, in dem das indirekte Adressenwort gespeichert war.

  Vorgegebene Kodierungen an den Bitstellen 18 und 19 des indirekten AMS Wortes geben dann an, ob es sich bei dem indirekten   AM9Wort    um einen Index handelt, der dem Adres   sehfeld    des indirekten Adressenwortes hinzuaddiert werden soll, oder ob es sich um eine Indexstelle oder ein   Richtungssignai    handelt, dessen Adressenfeld den Ort einer Indexgrösse angibt, die dem Adressenfeld des indirekten Adressenwortes hinzuaddiert werden muss, oder ob es sich um einen Indexsprung handelt, dessen Adressenfeld den Ort im Speicher bezeichnet, an dem ein entfernt liegendes AMS-Wort eingespeichert ist, das seinerseits wieder ein Index, eine Indexstelle oder einen Indexsprung bedeuten kann.

  Wenn man einen Index erhält, und diesen Index dem Adressenfeld des indirekten Adressenwortes hinzuaddiert, dann wird die Bitstelle 21 des indirekten AMS-Wortes untersucht.



  Wenn die Bitstelle 21 einen vorgegebenen Wert hat, wenn dort also beispielsweise eine binäre 1 eingespeichert ist, so bedeutet dieses, dass das aufgebaute Adressenfeld des indirekten Adressenwortes selber wieder eine indirekte Adresse ist und dazu verwendet werden muss, ein weiteres indirektes Adressenwort zu erhalten.



   Diese Programmfolge aus einem indirekten Adressenwort und einem darauffolgenden indirekten AMS Wort wird in der Datenverarbeitungsanlage automatisch solange wiederholt, bis entweder das Adressen   steuerfeld    des indirekten Adressenwortes kein indirektes AMS-Wort mehr erfordert oder bis die Bitstelle 21 des indirekten AMS-Wortes keine binäre' 1 ist, was sonst eine weitere indirekte Adressierung erforderlich machte. Das AMS-Wort, das die indirekte Adressierung ausgelöst hat, wird dann weiterhin überprüft, um zu bestimmen, ob ein weiterer Adressenaufbau zusammen mit einem anderen AMS-Wort notwendig ist.

 

   Im folgenden soll ein Ausführungsbeispiel der Erfindung in Verbindung mit den Zeichnungen im einzelnen beschrieben werden.



   Fig. 1 ist ein Blockschaltbild der Datenspeicherelemente, der   lZatenübertragungswege      zwischen    diesen   Elementen sowie der Hauptsteuerelemente in einer Datenverarbeitungsanlage;
Fig. 2 zeigt symbolisch, wie die Worte organisiert sind, die in der Anlage nach Fig. 1 verwendet werden;
Fig. 2a ist ein alphanumerisches Datenwort und zeigt die Zeichenstellen 0, 1, 2 und 3 sowie das Zeichen No. 3 im einzelnen, also Zonenbits (A) und Erkennungsbit   (BCD).   



   Fig. 2b ist ein binäres Wort.



   Fig. 2c ist ein Befehlswort und zeigt die Bitplätze für das Adressenfeld (AF), das Adressensteuerfeld (ACF) und den Operationskode (OC).



   Fig. 2d ist ein Indexwort an einem festen Platz (wenn es zur Adressenmodifizierung verwendet ist) und zeigt das Adressenfeld (AF).



   Fig. 2e ist ein AMS-Wort und zeigt wiederum die Bitplätze für das Adressenfeld (AF), das Adressensteuerfeld (ACF), die Klasse (CL) und das indirekte Adressenfeld (I/A).



   Fig. 2f ist ein entfernt liegendes AMS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und für die Klasse   (CL).   



   Fig. 2g ist ein indirektes Adressenwort und zeigt wiederum die Bitplätze für das Adressenfeld (AF) und das Adressensteuerfeld   (ACF).   



   Fig. 2h ist ein   indirektes    AMS-Wort und zeigt die Bitplätze für das Adressenfeld (AF), die Klasse (CL) und das indirekte Adressenfeld (I/A).



   Fig. 2i ist ein SAS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und die Klasse   (CL).   



   Fig. 2j ist ein entfernt liegendes SAS-Wort und zeigt die Bitplätze für das Adressenfeld (AF) und die Klasse (CL).



   In der vorliegenden Datenverarbeitungsanlage wird ein Binärkode verwendet. Hierin kann eine binäre 1 durch ein positives elektrisches Signal in der Grössenordnung von + 3,8 Volt dargestellt sein, während eine binäre 0 durch ein elektrisches Signal in der Grössenordnung von + 0,2 Volt dargestellt ist.



   Die Datengrundeinheit, die für das Verarbeiten und für den Datenaustausch in der Anlage verwendet wird, ist das Wort. Dieses Datenwort enthält hier 24 Bits.



  Wenn das Wort in dem Speicher erscheint, wird ein 25 igstes Bit zur Paritätsprüfung venvendet. Die erste binäre Ziffer in   dem    Datenwort ist die Ziffer mit dem höchsten Stellenwert, während die letzte binäre Ziffer die Ziffer mit dem niedrigsten Stellenwert des Wortes ist. Binäre Ziffern, die zwischen den beiden Ziffern mit dem höchsten und dem niedrigsten Stellenwert angeordnet sind, sind der Reihenfolge nach abnehmenden Stellenwerten zugeordnet.



   Es werden drei allgemeine Kategorien von Worten venvendet, nämlich erstens Datenwort, zweitens Befehlswort und drittens Hilfsworte für die Adressierung und die Steuerung.



   Datenworte kann man weiterhin in a) alphanumerische Datenworte und b) binäre Datenworte unterteilen.



   Hilfsworte sind so aufgebaut, wie es in den Figuren 2d-2j dargestellt ist.



   Die einzelnen Operationen, mit denen eine Datenverarbeitung durchgeführt wird, werden in der Anlage durch eine Folge von Befehlsworten gesteuert, die im Speicher 10 (Fig. 1) gespeichert sind. Zu einer Zeit wird immer nur ein Befehl ausgeführt. Die Reihenfolge, in der die Befehle ausgeführt werden, ist die sogenannte P-Folge oder Programmfolge. Diese Programmfolge wird durch einen Zähler gesteuert.



   Die Organisation eines Befehlswortes ist in der Fig. 2c dargestellt. Der Operationskode des Befehlswortes (Bits 18-23, Feldmarkierung OC) gibt die durchzuführende Operation oder den Programmschritt an, und zeigt ausserdem, ob der Befehl ein Einadressenbefehl oder ein Zweiadressenbefehl ist. Das Adres   sehfeld    das mit AF bezeichnet ist (Bitplätze 0-14) ist eine numerische Darstellung eines vorläufigen, eines effektiven oder eines endgültigen Platzes im Speicher 10, aus dem während der Befehlsdurchführung Daten zur Verarbeitung ausgelesen werden sollen oder in den nach der Ausführung des   Befehle    verarbeitete Daten eingespeichert werden sollen. Im vorliegenden Fall sollen aus vorläufigen Adressen endgültige Adressen aufgebaut werden, so dass der Befehl ausgeführt werden kann.

  Weiterhin sollen Adressen höherer Ordnung aus   Mehradressenbefehlen    aufgebaut bzw. gewonnen werden. Jeder Platz im Speicher ist durch eine unterschiedliche Adresse gekennzeichnet. Das Adressen   steuerfeld    oder ACF (Bits 15-17) bestimmt zusammen mit dem Operationscode, ob und wenn ja, welche Art des Adressenaufbaus durchgeführt werden soll. In be   stimmte    Befehlen enthält das Befehlsadressenfeld AF acuh andere Informationen ausser einer Speicheradresse. Diese Vielseitigkeit der Adressierung erhöht die Nützlichkeit der ganzen Anlage. Diese grössere Vielseitigkeit wird durch die Verwendung von Hilfsworten erreicht.



   Die beschriebene Datenverarbeitungsanlage erlaubt es, bei einer verminderten Rechnerzeit und geringeren Anforderungen an den Programmspeicher ausgedehnte Adressenänderungen sowie einen Neuaufbau von Adressen vorzunehmen. Der Befehlsvorrat der Datenverarbeitungsanlage enthält sowohl Einadressen- als auch Zweiadressenbefehle. Einadressenbefehle bezeichnen einen einzigen Operanden im Speicher 10, während sich Zweidaressenbefehle mit zwei Operanden befassen. Während der Ausführung von Befehlen hält der zentrale Rechner der Datenverarbeitungsanlage die nachstehende allgemeine Folge ein:
1) Das Befehlswort wird aus dem Speicher ausgelesen.



   2) Es wird jener Adressenaufbau durchgeführt, der von dem Adressensteuerfeld des Befehlswortes angegeben ist.



   3) Wenn der Operationscode ergibt, dass der Befehl ein Zweiadressenbefehl ist, wird die zweite Adresse aufgebaut.



   4) Der Befehl wird ausgeführt.



   Die Erfindung befasst sich mit dem Adressen aufbau bzw. mit der Adressenge'winnung die unter Punkt 2) dieser Aufzählung angeführt ist, sowie mit der Gewinnung der zweiten Adresse nach Punkt 3). Diese eben ausgeführte Programmfolge wird in dem zentralen Rechner durch die Verwendung von einem oder mehreren Hilfsworten bewirkt. Hilfsworte sind im Speicher 10 auf die gleiche Weise wie Datenworte und Befehlsworte gespeichert.



   In der Fig. 2d ist ein festliegendes Indexwort (FLIW) dargestellt. Während eines Adressenaufbaus unter der Verwendung eines festliegenden Indexwortes wird das Adressenfeld (Bit 0-14) des festliegenden Indexwortes dem Adressenfeld des Befehlswortes hinzuaddiert. Dann wird der Befehl unter Verwendung der modifizierten Adresse durchgeführt. Wenn der Opera  tionseode des   Befehle    angibt, dass es sich um einen Zweiadressenbefehl handelt, wird das festliegende Indexwort zur Gewinnung der zweiten Adresse des Be   fehles    verwendet.



   Die Befehls-Adressengewinnung oder der Befehls Adressenaufbau wird nicht. nur mit Hilfe   festliegender    Indexworte durchgeführt. Befehlsadressen können auch in dem zentralen Rechner der Datenverarbeitungsanlage durch   die    Verwendung eines AMS-Wortes (Fig.   2e)    aufgebaut oder gewonnen werden. Ein AMS Wort ist ein Wort in der Programmfolge, dessen Aufgabe es ist, die Adresse desjenigen Befehls zu modifizieren, der in der Programmfolge der nächste ist.



   Die Bits 18 und 19 des AMS-Wortes definieren die Klasse des Wortes wie folgt: Bits 18, 19 Klasse 00 Index 01 Indexzeiger 10 Indexsprung
Wenn das AMS-Wort als Index erkannt ist, wird das Adressenfeld (Bits 0-14) dem Adressenfeld oder der vorläufigen Adresse des Befehls hinzuaddiert, der durchgeführt werden soll. Wenn die Klassenbits des AMS-Wortes anzeigen, dass es sich um einen   Indexzei-    ger handelt, so bedeutet das Adressenfeld des AMS Wortes die Adresse eines Speicherortes einer Indexgrösse ausserhalb der Programmfolge', die zum Adres   senfebd    oder der vorläufigen Befehlsadresse hinzuaddiert werden muss. Wenn das AMS-Wort als ein Indexsprung klassifiziert ist, so bezeichnet seine Adresse einen Ort ausserhalb der Programmfolge, an dem ein entfernt liegendes AMS-Wort enthalten ist.



   Der Bitplatz 21 des AMS-Wortes wird zur Steuerung des Adressenaufbaus mittels indirekter Adressierung verwendet. Eine binäre 1 an der Bitstelle 21 des AMS-Wortes zeigt an, dass die aufzubauende oder zu gewinnende Adresse eine effektive Adresse ist, die nicht als Operandenadresse' verwendet wird, sondern dafür, aus dem Speicher 10 ein indirektes Adressenwort zu gewinnen. Das Adressenfeld des indirekten Adressenwortes wird dann bei der Ausführung des Be   fehls    als eine vorläufige oder als eine endgültige Adresse verwendet.



   Die Bitstelle'n 15-17 des AMS-Wortes werden dazu verwendet, anzuzeigen, ob die Indexoperationen fortgeführt werden sollen oder nicht. Wenn die Bitpositionen   15-17 binäre    Einsen enthalten, werden die Indexoperationen fortgesetzt, Wenn die Adresse so weit aufgebaut worden ist, wie es das gerade vorliegende AMS-Wort erfordert, wird aus dem Speicher ein weiteres AMS-Wort abgerufen und zum weiteren Aufbau des   Befehlsadressenfeldes    benutzt. Jede andere Bitkonfiguration in den Bitstellen 15-17 zeigt an, dass zum weiteren Adressenaufbau ein anderes AMS-Wort nicht erforderlich ist. Das AMS-Wort ist das einzige, das daraufhin untersucht wird, ob die Indexoperationen fortgesetzt werden sollen. Die Bitstellen 20, 22 und 23 bleiben ausser Betracht.



   Ein entfernt liegendes AMS-Wort ist ein AMS Wort ausserhalb der Programmfolge. Ein entfernt liegendes AMS-Wort wird durch ein AMS-Wort adressiert, das einen Indexsprung darstellt, ferner durch ein anderes entfernt liegendes AMS-Wort, das einen Indexsprung darstellt oder durch ein indirektes AMS Wort, das ebenfalls einen Indexsprung darstellt. Wie ein entfernt liegendes AMS-Wort organisiert ist, ist in der Fig. 2f gezeigt. Diese Organisation ist ähnlich wie die Organisation des AMS-Wortes getroffen, bis auf die Ausnahme, dass die Bitstellen 15-17 und 20-23   au:;ser    Betracht bleiben, da ein entfernt liegendes AMS-Wort nur auf seine Klasse hin untersucht wird.



  Wenn die Klassenbits eines entfernt liegenden AMS Wortes anzeigen, dass das Wort in Index ist, so wird sein   A,dressenfeld    der vorläufigen Adresse hinzuaddiert, um in dem Fall, in dem mit indirekter Adressierung gearbeitet wird, eine effektive Adresse zu gewinnen, oder um die endgültige Adresse aufzubauen.



  Wenn das entfernt liegende AMS-Wort einen   InFdexzei-    ger   bedeute't,    so wird es dazu verwendet, aus dem Speicher 10 ein Wort abzuleiten, das eine Indexgrösse enthält. Wenn die Klassenbits des entfernt liegenden AMS-Wortes dieses Wort als einen Indexsprung kennzeichnen, wird das   Adressenfeld    des   entferutliegenden      A1S-Wortes    dazu verwendet, ein weiteres entfernt liegendes AMS-Wort zu adressieren.



   Ein AMS-Wort, wie es oben beschrieben ist, sorgt dafür, dass ein Index erhalten wird, mit dem das Adressenfeld eines Befehlswortes modifiziert wird. Anschliessend wird dann die Bitstelle 21 des AMS-Wortes untersucht. Wenn dort eine binäre 1 vorhanden ist, so bedeutet das, dass die gewonnene Adresse des Befehlswortes eine effektive Adresse ist und dazu verwendet werden muss, ein indirektes Adressenwort zu gewinnen. Die indirekte Adresse kennzeichnet einen Speicherort, an dem ein indirektes Adressenwort enthalten ist. In der Fig. 2g ist gezeigt, wie das indirekte Adressenwort organisiert ist. Diese Organisation stimmt mit der Organisation eines AMS-Wortes bis auf die Ausnahme überein, dass die Binärziffern in den Bitstellen 18-23 ausser Betracht bleiben.

  Das Adressenfeld des indirekten Adressenwortes ersetzt die Adresse, die vorhergehend für den auszuführenden Befehl gewonnen worden ist.



   Das Adressensteuerfeld des indirekten Adressenwortes kann mit Hilfe eines indirekten AMS-Wortes einen weiteren Adressenaufbau erforderlich machen.



  Das indirekte AMS-Wort ist ein Spezialfall eines entfernt liegenden AMS-Wortes. Die Organisation des indirekten AMS-Wortes, die in der Fig. 2h gezeigt ist, stimmt mit der Organisation des entfernt liegenden AMS-Wortes bis auf die Bitstelle 21 überein, die dazu verwendet werden kann, weitere indirekte Adressierungen zu kennzeichnen. Das indirekte AMS-Wort kann als Index, als Indexzeiger oder als Indexsprung klassifiziert werden. Als Indexsprung wird das indirekte AMS-Wort dazu verwendet, ein entfernt liegendes AMS-Wort abzurufen und so den Adressenaufbau weiterzuführen. Diese Folge der indirekten Adressierung wird solange fortgesetzt, bis entweder das Adressen   steuerfeid    eines indirekten Adressenwortes ein weiteres indirektes AMS-Wort unnötig macht, oder bis ein indirektes AMS-Wort anzeigt, dass eine weitere indirekte Adressierung nicht mehr erforderlich ist. 

  Wenn diese Folge der indirekten Adressierung beendet ist, so kehrt die Steuerung zu demjenigen AMS-Wort zurück, das diese Folge der indirekten Adressierung ausgelöst hat.



   Für solche Befehle, die eine zweite Adresse benötigen (hierbei bleibt die Adresse des festgelegten Index  wortes ausser Betracht), wird eine zweite Adressenfolge ausgelöst, die nach der Gewinnung der ersten Adresse abläuft, Die Auslösung dieser zweiten Adressenfolge erfolgt durch das Auslesen des nächsten Wortes der Programmfolge aus dem Speicher. Dieses Wort ist ein SAS-Wort und ist so organisiert, wie es in der Fig. 2i dargestellt ist. Dieses SAS-Wort wird nur auf seine Klasse hin untersucht, die durch den Zustand der binären Ziffern an den Bitstellen 18 und 19 gegeben ist. Die Bitstellen 15-17 und 20-23 werden nicht berücksichtigt.

  Die Klasse eines SAS-Wortes ist wie folgt definiert: Bits 19, 18 Klasse 00 Operand   ol    Operandenzeiger 10 oder 11 Operandensprung    WO1-Block-Folgen   
Wenn die Klassenbits   des    SAS-Wortes anzeigen, dass es sich um einen Operanden handelt, ist die zweite Adresse des Befehls die Adresse des   SAS-Wor-    tes. Ein Operand schliesst die zweite   Adressenfolge    und seine Selbsterkennung ab. Wenn das SAS-Wort als Operandenzeiger klassifiziert werden muss, so bedeutet dies, dass das Adressenfeld   des    Operandenzeigers die zweite Adresse   des    Zweiadressenbefehls enthält.

  Wenn die Klassenbits des SAS-Wortes dagegen anzeigen, dass ein Operandensprung vorliegt, wird das   Adressen-    feld dazu verwendet, ein entfernt liegendes SAS-Wort abzurufen, das für den weiteren Aufbau der zweiten Adresse   verwendet    wird. Da die' ACF-Bitplätze 15-17 des SAS-Wortes immer ausser Betracht bleiben, wird nur ein SAS-Wort dazu verwendet, die zweite Adresse zu gewinnen.



   Die Organisation eines entfernt liegenden SAS Wortes, das in Fig. 2j gezeigt ist, ist mit der Organisation eines entfernt   liegenden    AMS-Wortes identisch.



  Das entfernt liegende SAS-Wort ist ein SAS-Wort, das ausserhalb der Programmfolge liegt und nur auf seine Klasse hin untersucht wird. Um die zweite Adresse eines Zeweiadressenbefehles zu gewinnen oder aufzubauen, kann jede beliebige Anzahl von entfernt liegenden SAS-Worten benutzt werden.



   Die oben beschriebenen Hilsworte werden daher in der Datenverarbeitungsanlage zusammen mit den Adressenfeldern der Befehlsworte dazu verwendet, die Adressen von Operanden aufzubauen oder zu gewin   nen, die denjenigen    Operationen unterworfen werden sollen, die im Operationscode des Befehlswortes angegeben ist. Jeder Befehl verwendet daher ein Befehlswort, das sich auf ein festgelegtes Indexwort bezieht oder auf das ein oder mehrere AMS-Worte und wenn notwendig ein SAS-Wort folgen kann. Jedes AMS Wort kann sich auf ein indirektes Adressenwort bezie   hen,    auf das ein indirektes AMS-Wort folgen kann.



  Jedes indirekte AMS-Wort kann sich auf ein anderes indirektes Adressenwort beziehen. AMS-Worte und SAS-Worte können sich auch auf entfernt liegende AMS-Worte und entfernt liegende SAS-Worte beziehen, die im Speicher 10 eingespeichert sind, die jedoch ausserhalb der Programmfolge liegen, um die zweite Befehlsadresse zu bestimmen oder aber die Art der   Adressenänderung    ABS.



   Wie man sieht, ermöglicht die grosse Anzahl möglicher Kombinationen aus den in Frage kommenden Bits eine grosse Vielseitigkeit in der Programmierung. Der Binärwert der in Frage kommenden Bits wird in den Registern analysiert und dekodiert, in die die Worte' oder Teile von ihnen übertragen worden sind. Flipflops, die zusammenfassend als Steuersignalflipflops bezeichnet werden sollen und ein Teil der Steuersignaleinheit sind, werden in Übereinstimmung mit den dekodierten, in Frage kommenden Bits in den Nullzustand oder den 1-Zustand umgeschaltet, oder durch Signale, die logisch daraus abgeleitet werden. Diese Flipflops werden   anschliiessend    mit passenden Codebuchstaben bezeichnet. In der Beschreibung wird die Wirkungsweise und die Aufgabe solcher Flipflops erklärt werden.

  Wie diese Flipflops jedoch speziell verbunden sind, ist in den Zeichnungen nicht dargestellt, da dieses dem Durchschnittsfachmann bekannt ist.



   Von der allgemeinen Organisation der Datenverarbeitungsanlage vom Datenfluss, von der Ausführung von Befehlen, sowie von der Auswahl und der Erzeugung von Signalen wird nur soviel beschrieben, wie es für das Verständnis der Erfindung notwendig ist.



   In der Fig. 1 ist nur soviel von der Datenverarbeitungsanlage dargestellt, wie es für das Verständnis der vorliegenden Erfindung nötig ist. Der Zweck der Fig. 1 ist es, die Elemente der Anlage   darzutellen,    in denen Daten gespeichert sind, ferner die Datenübertragungswege zwischen diesen Eleme'nten und die Hauptsteuerschaltkreise und   Steuerelemente    des Systems. Es sind alle solche Elemente weggelassen worden, die nach dem Stand der Technik üblich sind, oder die keinen unmittelbaren Zusammenhang mit der Erfindung haben. Da die gleichen Bausteine, beispielsweise Register, verschiedene Aufgaben haben können, sind diese Bausteine mit willkürlichen Codebezeichnungen in Form grosser Buchstaben versehen, um Verwechslungen zu vermeiden.

  Ebenso sind auch Signale (die in der Anlage verfügbar sind) sowie Befehle' zur Erzeugung bestimmter Signale aus Gründen der Klarheit mit Codenamen, Buchstaben oder Zahl versehen. Es ist bekannt, dass man mit einem Zeitgebergenerator ganz nach Wunsch Zeitgebersignale oder Steuerbefehlssignale erzeugen kann. Weiterhin ist bekannt, durch logische Verknüpfung solcher Signale bei Bedarf andere Signale dieser Arten zu erzeugen.



   Während der Beschreibung der Erfindung wird eine Anzahl von Signalen mit willkürlichen Codebezeichnungen versehen werden. Die Funktion dieser Signale und ihre' Wirkung gehen aus der Beschreibung hervor.



  Wie diese Signale abgeleitet werden, wird jedoch nicht beschrieben. Solche Signale jedoch, die die beschriebenen Funktionen haben und die logische Folgen auslösen, die in der Beschreibung erörtert werden, können in der Datenverarbeitungsanlage durch logische Fortsetzung und Verknüpfung von Signalen und Zeitgebersignalen gewonnen werden, was bekannt ist. Da die meisten solcher Signale eine bestimmende Funktion haben, d. h. dass sie eine bestimmte Operation auslösen,   wenn    sie vorhanden sind, und eine andere Operation auslösen, wenn sie nicht vorhanden sind (oder wenn ihr   inverse    Signal anliegt), können diese Signale allgemein als Steuersignale angesprochen werden, die das Auftreten vorbestimmter Operationen steuern, das auf vorherbestimmten Ereignissen oder einer logischen   Kombination von Ereignissen beruht.

  Die Bezeichnung durch willkürliche Buchstaben wurde gewählt, um Unklarheiten in der Terminologie und die Wiederholung des Wortes Steuerung bzw. Steuersignal zu vermeiden.



   In der Beschreibung ist die Bezeichnung nach den folgenden Gesichtspunkten durchgeführt worden. Ein Register ist mit einem grossen Buchstaben bezeichnet, dem Dezimalzahlen nachfolgen, die die einzelnen Stufen der   Register    oder die effektiven Zeitperioden einer jeden Stufe angeben. Signale, die von Flipflops abgeleitet sind, sind mit den Buchstaben F bezeichnet. Inverse Signale tragen einen Querstrich über der eigentlichen Bezeichnung. S und R bedeuten 1- und 0-Anschlüsse.



  Diese Signale können das Ergebnis logischer Verknüpfungen anderer Signale sein, wobei die Boole'sche Algebra zugrunde gelegt ist. In den Zeichnungen ist nur die Schaltlogik dargestellt, da technische Ausführungsformen einer solchen Schaltlogik dem Durchschnittsfachmann bekannt   sind.   



   Während   Datenverarbeitungs operationen    sind in dem Speicher 10   Béfehlsworte    für die Datenverarbeitung gespeichert, sowie Befehlsworte für die Adressierung und die Steuerung, Datenworte, die verarbeitet werden sollen und Datenworte, die das Ergebnis einer Verarbeitung sind. Während der Datenverarbeitungsoperationen können in verschiedenen Registern der Anlage   D atenworte    zwischenzeitlich gespeichert werden. Die Übertragung von Daten zwischen den einzelnen Registern und anderen Elementen des Systems, die durch die Verbindungslinien in Fig. 1 angedeutet ist, wird durch Parallelübertragung binärer Ziffern aus einem Register in ein   anderes    Register oder Element durchgeführt. Im folgenden werden die wesentlichen Bauelemente sowie ihre Zusammenarbeit beschrieben.



   Der Speicher 10 arbeitet mit den anderen Elementen des zentralen Rechners nicht synchron und enthält seine eigene Zeitgeberlogik, seine eigene Steuerlogik (nicht gezeigt) und ein   Adressenregister.    Der Speicher 10 arbeitet mit den anderen Elementen des zentralen Rechners zusammen, nämlich mit der Vorrichtung zum Entwickeln von Operandenadressen welche im folgenden als Programmverarbeiter bezeichnet wird und der Eingabe-Ausgabesteuereinheit, um binärkodierte Adressen zu erhalten, um weiterhin Datenworte anzunehmen oder zu liefern, um Befehlsworte und Hilfsworte anzunehmen oder abzugeben und um Steuersignale anzunehmen oder abzugeben, durch die es möglich ist, den Zeittakt des Speichers mit dem Zeittakt im restlichen zentralen Rechner zu synchronisieren.



  Adresseninformationen werden dem Speicher 10 durch die B-Tore 317 zugeführt.



   Das I-Regislter 313 speichert den Operationscode des Befehlswortes, der die Bits 18-23 enthält. Der   Operationscode    im I-Register 313 steuert die Art der Operation, die von der Anlage durchgeführt werden soll. Das   Adressensteuerfeid    des Befehlswortes, das aus den Bits 15 bis 17 besteht, ist in dem Q-Register 306 gespeichert.



   Das Adressensteuerfeld im Q-Register 306 steuert den Aufbau des   Befehls-Adressenfeldes    und kann den Aufbau der zweiten Adresse eines Zweiadressenbefehles steuern. Das Adressenfeld des Befehlswortes, das aus   den    Bits 0-14 besteht, ist normalerweise im D Register 311 gespeichert, es kann jedoch während der Durchführung bestimmter Befehle auch im E-Register 303 gespeichert sein. Das Befehlsadressenfeld, das im D-Register 311 oder im E-Register 303 gespeichert ist, gibt den Ort im Speicher an, aus dem ein Operandenwort ausgelesen oder in den ein Operandenwort eingelesen werden soll. Die Adresse für den nächsten vom Programmverarbeiter ,durchzuführenden Befehl ist im P-Register 310 gespeichert.

  Wenn ein Befehl fast voll   ständig      durchgeführt    ist, wird die nächste Befehls adresse, die in dem P-Register 310   geslpeichert    ist, an den Addierer 302 angelegt, so dass der zentrale Rechner in die Lage versetzt wird, den nächsten Befehl aus dem Speicher 10 abzurufen.



   Alle Worte, die aus dem Speicher 10 ausgelsen oder in den Speicher 10   übertragen    werden, müssen durch das M-Register 301 hindurchlaufen. Wenn somit aus dem Speicher 10 ein Befehl abgerufen werden soll, wird die Adresse in dem P-Register 310 über die Addierstufe 302 zum D-Register 311 und von dort durch die B-Tore 317 übertragen, und das Befehlswort wird aus   der    adressierten Speicherstelle in das M-Register eingelesen.



   Der Operationscode, das Adressensteuerfeld und das Steuerfeld des Befehlswortes in dem M-Register werden dann an das   I-Regisber    313, das Q-Register 306 und entweder an ,das D-Register 311 oder das E-Register 303 übe'rtragen. Sodann wird der Befehl ausgeführt.   Operandenworte,    die während der Durchführung von Befehlen verwendet werden, werden aus dem Speicher mittels des gleichen Vorganges abgerufen, d. h., dadurch, dass auch das Operandenwort zu Beginn in das M-Register 301 übertragen wird.



   Wenn ein Wort aus dem Speicher 10 in das M Register 301   übetragen    wird, wird der 25 igste Bit, der der Paritätsbit ist, an die Paritätsprüf- und Steuerlogik 316 übertragen. Die Paritätsprüf- und Steuerlogik 316 testet das Wort in dem M-Register 301 ab und bestimmt unter der Verwendung des Paritätsbits aus dem Speicher 10, ob in dem Wort, das aus dem Speicher 10 heraus übertrager worden ist, ein Paritätsfehler vorhandeln ist oder nicht. Wenn dagegen in dem M-Register 301 ein Wort zwischenzeitlich gespeichert ist, das an den Speicher 10 übertragen werden soll, tastet die Paritätsprüf- und Steuerlogik 316 das Wort in dem M-Register 301 ab und erzeugt den richtigen Paritätsbit, der als 25 igster Bit des Wortes in den Speicher 10 übertragen wird.



   Arithmetische Operationen, Stellwertverschiebungen, Vergleichsoperationen, logische Operationen usw., denen das Operandenwort unterworfen werden soll, werden unter Verwendung des M-Registers 301 des Addierers 302 und des E-Registers 303 durchgeführt.



  Der Addierer 302 ist in der Lage, die Addition solcher Informationen vorzunehmen, die gleichzeitig aus dem M-Register 301 und dem E-Register 303 einlaufen.

 

  Der Addierer 302 führt auch die Additionen solcher Informationen durch, die ihn gleichzeitig vom M-Register 301 und vom P-Register 310, vom D-Register 311 oder auch von anderen Registern zugeführt werden.



  Die   Ausgangsgrösse    des Addierers 302 kann an das E-Register 303, das M-Register 301 und D-Register 311, das P-Register 310 oder an irdgenein anderes passendes Register übertragen werden, wie es durch die Datenübertragungswege in Fig. 1 dargestellt ist.



  Das Q-Register 306 kann während der Ausführung bestimmter Befehle als Zähler oder als Zwischenspeicherregister dienen.



   Die Steuerung der Operationen im Zentralrechner wird in der Hauptsache durch die Operationssteuereinheit 318, die Zeitgebereinheit 319, das I-Register 313,  das P-Register 310, das D-Register 311 und das A Register 312 durchgeführt. Der Inhalt des   Registers    313 wird durch die Operationssteuereinheit 318 dekodiert, welche während der Durchführung des Befehls durch den Zentralrechner für die richtige Steuerlogik sorgt. Die Operationssteuereinheit 318 enthält ein Register, das W-Register genannt ist (nicht gezeigt).



  Dieses Register dient dazu, die Folgen der besonderen Subroutine (oder Mikrooperation) auszuwählen, die W-Blöcke genannt werden, ebenso zur Auswahl der Steuerlogik, der Dekodierungslogik für das   1-Register    313 und für das Auswahlregister. Die Zeitgebersteuereinheit steuert die innere Zeitgebung des   Zentralrech-    ners und ermöglicht die Synchronisation des Programmverarbeiters,   -der    Operationssteuereinheit 318 und der Eingabe/Ausgabe-Steuereinheit 13 mit dem Speicher 10. Die Zeitgebersteuereinheit 319 enthält einen Generator, der Zeitgeberimpulse für den zentralen Rechner erzeugt, weiterhin logische Schaltkreise zur Steuerung der Zeitimpulserzeugung, sowie einen Zähler, der TL-Zähler genannt ist, und der in dem   zentralen    Rechner die einzelnen Zeitperioden definiert.



  Das A-Regiter 312 wird dazu verwendet, die Teil Adresse des Wortes mit dem höchsten Stellenwert des Vierwort-Akkumulators im Speicher 10 zu speichern.



  Ein Register 314 weist Flip-Flops PL2 und PL1 auf.



  Dieses Register dient dazu, die Länge des Akkumulators anzuzeigen. Die im Register 314 enthaltene Zahl zeigt die Anzahl der Worte im Akkumulator auf. Die Inhalte des A-Registers 312 und des Registers 314 stellen die Adresse des Wortes mit dem höchsten Stellenwert des Akkumulators dar. Ein Akkumulator-Zählregister 315, das Flip-Flops AC2 und AC1 aufweist, arbeitet mit dem A-Register 312 zusammen, um nacheinander jedes Wort des Akkumulators zu adressieren.



  Das D-Register 311 wird in der Hauptsache als ein Adressenregister verwendet, um eine Adresseninformation durch das B-Tor 317 hindurch in den Speicher 10 zu übertragen. Das P-Register 310 wind als Zähler verwendet, der periodisch vorgerückt wird, um die Adresse des nächsten Wortes zu bilden. Die   Eingabel      Ausgabe-Stenereinheit    13 enthält mehrere Kanäle.



  Jedes äussere Zusatzgerät, das zusammen mit dem zentralen Rechner verwendet wird, ist mit einem dieser Eingabe/Ausgabe-Kanäle verbunden. Jeder   Eingabel    Ausgabe-Kanal erlaubt die Übertragung von Befehlen aus dem zentralen Rechner an das äussere Zusatzgerät, das mit diesem Kanal verbunden ist, weiterhin die   Übertragung    zwischen dem Speicher 10 und dem äusseren Zusatzgerät, sowie die Übertragung von Informationen, die dem Betriebszustand des äusseren Zusatzgerätes und des Kanals dem zentralen Rechner anzeigen.



   Der zentrale Rechner erhält die Daten durch die   Eingabe/Ausgabe-Steuereinheit    13 zugeführt. Diese Daten können von einer Schreibmaschine, von einem Kartenleser, einem Lochstreifenleser, von einem Magnetband oder einem Magnetscheibenspeicher oder auch von einer anderen Stelle herstammen, wie es symbolisch durch   die'    Leitung 323 angezeigt ist. Der zentrale Rechner gibt die Daten auf die erwähnten periphären Geräte über die Eingabe/Ausgabe-Steuereinheit 13 über die Leitung 324.



   Der Speicher 10, der in der Fig. 1 schematisch dargestellt ist, speichert Worte, die verarbeitet werden sollen. Worte, die das Ergebnis von Bearbeitungsschritten sind, weiterhin   Befehisworte,    die für die Datenverarbeitung massgebend sind, sowie Hilfsworte, für die Adressierung und die Steuerung. Ein Speicher 10, der für die Verwendung in der dargestellten   Verarbeitungs-    anlage geeignet ist, kann bis zu 32 768 Worte von jeweils 25   Bits    Länge speichern.



   Die Information über die Speicheradresse läuft über die B-Tore 317 der Vorrichtung, die auch als Programmverarbeiter bezeichnet wird, ein und wird in einem B-Register gespeichert, das dem Speicher 10 zugeordnet, jedoch nicht gezeigt ist und das als Speicheradressenregister dient. Dieses B-Register empfängt die   Ausgangssignale    der B-Tore 317 des Programmverarbeiters, sobald zu Beginn einer jeden   Speicherperiode    ein Signal zur Verbindung der Ausgangsanschlüsse der B-Tore 317 mit den entsprechenden Eingangsanschlüssen der   B-Register-Flip-Flops    vorhanden ist. Zu Beginn einer jeden Speicherperiode ist daher der Inhalt des B-Speicherregisters immer auf den neuesten Stand gebracht.

  Die Flip-Flops dieses B-Registers werden durch ein weiteres Signal immer nach auf Null   zurück    geschaltet, wenn die Datenverarbeitungsanlage zu Beginn eingeschaltet wird, sowie am Ende einer jeden Speicherperiode.



   Das M-Register 301 des Programmverarbeiters speichert zwischenzeitlich ein Wort von 24 Bits, das in den Speicher 10 eingespeichert werden soll oder das gerade aus dem Speicher ausgelesen worden ist. Der 25 igste Bit, der der Paritätsbit ist, wird, wenn er aus dem Speicher 10 ausgelesen ist, über die Leitung 360 dem   Paritätsprüfschaltkreis    316 der Vorrichtung zugeführt,   während der    Paritätsbit eines Wortes, das in dem Speicher 10 eingespeichert werden soll, von dem Pariprüfschaltkreis über Leitung 361 selbst geliefert wird.



  Die Flip-Flops des M-Registers 301 werden durch ein   Rückstelisignal    auf Null zurückgestellt. Der Operationscode, der in den Befehlsworten enthalten ist, beherrscht die Operationen des Systems während der Durchführung eines Befehls. Der   Ope'rationscode    ist in dem   1-Register    313 gespeichert, das ein 6-Bit-Register ist und zur Speicherung der Bits 18-23 des Befehlswortes dient, das von dem zentralen Rechner ausgeführt werden soll. Der Operationscode des Befehlswortes ist so ausgewählt, dass er irgendeine von 53 verschiedenen Bitkombinationen darstellt. Jede dieser 53 Bitkombinationen betrifft eine grundsätzlich andere Datenverarbeitungsoperation der ganzen Anlage.



   Das I-Register 313 ist dafür vorgesehen, die Inhalte der Flipflops 18-23 (nicht gezeigt) des M-Registers 301 aufzunehmen. Die hierzu nötige Übertragung erfolgt parallel, wenn ein Arbeitszeitgebersignal an den Eingangstoren anliegt, die die Ausgangsanschlüsse der Flipflops des M-Registers mit den entsprechenden Eingangsanschlüssen der sechs Flipflops des   I-Registe,rs    miteinander   verbin,den.    Der Inhalt des   I-Registexs    313 wird der   Dekodiermatrix    für das I-Register zugeführt. Das P-Register ist ein 15-Bit-Zähler mit 15 Flip-Flops für das   Adressenfeld,    das mit Bit 0-14 bezeichnet ist. Das P-Register 310 empfängt die Bits   Q-14    der Ausgangssignale der Addierstufe 302. Diese Bits werden dem P-Register parallel übertragen. 

  Die   Übertragung    wird durchgeführt, wenn ein Zeitgebersignal an den Eingangstoren anliegt, die die entsprechenden Ausgänge der Addierstufe mit den entsprechenden Eingangsanschlüssen der Flip-Flops des P-Registers verbinden. Der Inhalt des P-Registers 310 kann vom Programm her geändert werden. Die Folge, in der die aufeinanderfolgenden Befehle ausgeführt werden, wird vom P-Register 310 gesteuert, welches als sogenannter     Prograrnzähier    dient. Der Zählerstand im P-Register 310 wird jeweils um 1 erhöht, wenn ein bestimmtes Signal auftritt. Das ist immer der Fall, wenn ein Wort innerhalb der Programmfolge verwendet wird. Der   Zäfrlerstand    in dem P-Register 310 wird dazu verwendet, die Adresse für Befehlsworte, AMS- und SAS Hilfsworte im Speicher 10 zu gewinnen.

  Zum Abrufen des in der Programmfolge nächsten Befehls oder Hilfswortes aus dem Speicher 10 wind die im P-Register 310 gespeicherte   Adresse    über den   Addierer    302 an das D-Register 311 und von dort über die B-Tore 317 zum Speicher 10 übertragen, so dass der zentrale Rechner das Programm-Folge-Wort abrufen kann. Das P-Folge-Wort wird nun in das M-Register 301 übertragen. Hieran schliessen sich folgende Operationsschritte an:   Paritätsprüfung      durch    die Paritätsprüfeinheit 316, Übertragung des   Operationsccod,e    an das   Register,    Übertragung des Adressensteuerfeldes an das Q-Register 306, Übertragung des   Adressenfeides    an das D Register 311, Übertragung des gesamten Wortes an das   E-Registef    303.



   Das D-Register 311 ist ein 15-Bitregister und enthält 15 Flip-Flops. Diese Flip-Flops enthalten normalerweise die   Adresse    eines Datenwortes, eines   Hilfwortes    ader eines Befehlswortes. In das Register 311 werden durch   Parallelübertragungodie    Bits 0-14 der Ausgangssignale der Addierstufe 302 übertragen, wenn ein Zeitgebersignal an den Eingangstoren anliegt, die die Eingangsanschlüsse der Registerflipflops und die Ausgangsanschlüsse der Addierstufe miteinander verbindet.



  Wenn ein Befehl ausgeführt wird, bei dem ein Akkumulator der doppelten, dreifachen oder vierfachen Länge verwendet ist, wird das D-Register 311 dazu benutzt,, Zugriff zu den   Operandenworten    in der richtigen Reihenfolge zu erhalten, so dass die Operandenworte und die   Akkumulatorworte    zueinander passen. Die Adresse   in der    D-Register 311 wird auf ein Zeitgebersignal hin jeweils um 1 vermindert, so dass   ich    die Adressen der nachfolgenden   Operandenworte    ergeben.



  Das D-Register 311 enthält noch   Informatiorlen    bezüglich der   Schiebesteuerung,    die durch Ausführung eines solchen Befehls notwendig sind. Der Inhalt des D Registers 311 kann entweder den B-Toren oder dem   Addierer    302 zugeführt werden.



   Das A-Register 312 ist ein   13-Bitregister    mit 13 Flipflops. Das   A-Register    312 wird dazu   verwendet,    die augenblickliche Teiladresse des   Vierwort-Akkumu-    lators im Speicher 10 zu speichern. Die   Teiladresse      dlie    in dem   A-Register    312 enthalten ist, ist die Adresse des Akkumulatorwortes mit dem höchsten   Stellenwert.    Wenn ein Zeitgebersignal auftritt, wird die Teilinformation (Adressenfeld) aus dem E-Register 303 an das   A-Register    312 übertragen. Das Zeitgebersignal wird   dabei den    Eingangstoren zugeführt, die die Ausgänge der Addierstufe mit den entsprechenden Eingängen der Flip-Flops des A-Registers verbinden.

  Die Information im   ARegister    312 wird entweder an die B-Tore 317 oder an das E-Register 303 übertragen.



  Die Flip-Flops des   A-Registe'rs    312 werden durch ein Signal in den Nullzustand zurückgeschaltet, so dass das   ARegister    312 gelöscht ist.



   Das Register 314, dass die   Akkumulatorlänge    anzeigt, weist zwei Flip-Flops PL2 und PL1 auf, die die Arbeitslänge des Akkumulators speichern. Diese Arbeitslänge kann 1,   2J    3 oder 4 Worte betragen. Der Inhalt des Registers 314 bildet in Verbindung mit dem Inhalt des   A-Registers    312 eine   vollständige    15-Bit Adresse, die die Adresse des   Akkumulatorwortes    mit dem höchsten Stellenwert ist.

  Die beiden Flip-Flops PL2 und   PLI    sind so eingerichtet, dass sie durch Par   alielübertragung    den Inhalt entweder des   ersten    und des zweiten Flip-Flops des   I-Registets    313, den Inhalt der beiden   e'rsten    Flip-Flops des E-Registers 303 oder des zehnten und elften Flip-Flops des   D-Reps.ters    311 aufnehmen können, wenn an die   Eingangstore    des Registers 314 ein passendes   Überagungssignal    angelegt wird.



   Das Akkumulatorzählregister 315, das zwei Flip Flops AC2 und AC1 enthält, ergänzt die Adresse im A-Register 312, so dass sich die Adresse eines   de'r    vier Werte des Akkumulators ergibt. Dadurch, dass be stimmt wird, welches der vier möglichen Akkumulatorworte ausgewählt werden soll,   kanrr    man jedes Akku mulatorwort adressieren. Wenn beispielsweise das Register 315 im binären 10-Zustand ist, ist das dritte Wort zu adressieren. Der Zählerstand im Akkumula   torzählerregister    315 wird während der Durchführung bestimmter Befehle durch den Zentralrechner jeweils   um    1 erhöht oder um 1 vermindert, um vorgeschriebene Worte des   Akkumulators    adressieren zu können.



   Die B-Tore 317 übertragen Adressen aus dem Pro   graniffiverarbeiter und der Eingabe/Ausgabe-Steuerung    an ein B-Register (nicht   gezeigt    des Speichers 10, Die B-Tore 317 erhalten ihre Eingangssignale aus dem D-Register   311,    dem A-Register 312, dem   Akkumula-      torlängeuregister      314,    dem   Akkumulatorzählregister    315,   dekn    M-Register   301,    dem   Register    306 und der   Eingabe/Ausgabesteuereinheit    13.

  Während Datenoder Programmunterbrechungen wird   die      Adressenin-    formation den   B-Ten    317 von der   Eingabe-Ausgabe'-    steuereinheit 13 zugeführt. An die B-Tore 317 werden Tastslignale angelegt, um die   passende    Adresse an ein   B-Rester    übertragen zu können.



     Datenverarbeitungsoperafionen    im Zentralrechner   werden    unter der Steuerung eines Befehlswortes   durch    geführt. Der   Opreationseode    eines jeden Befehlswortes, durch den die Operation selbst bestimmt ist, wird im   Register    313 gespeichert. Dieser Operationscode be steht im   besonderen    aus den Bits 18-23, die in   fünf      Flipflops    gespeichert sind. Der Operationscode im I Register 313 steuert die Art der Operation, die von dem zentralen Rechner durchgeführt werden soll.

  Das   Adressenfeid    des   Befehlswortes    kann in der arithmetischen Einheit modifiziert werden und wird normalerweise zuerst in das D-Register 311 übertragen, bevor der Befehl ausgeführt wird.



   Das M-Register 301 ist ein 24-Bit-Register mit   vierundzwanzig    Flipflops. Dieses Register dient während der Ausführung von Befehlen   und    während der Durchführung von   Eingale/Ausgabeoperationen    als   Operationsregistèr.    Das M-Register 301 empfängt Signale' die die 24 Bits eines Wortes darstellen. Diese Signale werden während einer Leseoperation im Speicher von den   Lesetreiberstufen    abgegeben. 

  Sechs Flipflops (Adressenfeld) des M-Registers 301 können durch   Parallelübertragung    die Bits 0-5 des Ausgangssignales der Addierstufe 302 empfangen, wenn ein Zeitgebersignal an die   Eingangstore    des M-Registers 301 gelegt ist, die die   entsprechenden    Ausgänge der Addierstufe 301 mit den entsprechenden Eingängen der   MRegisterflipflops    verbinden.



   Weitere neun Flip-Flops des M-Registers 301 können durch Parallelübertragung die Bits   614    (Adressenfeld) des Ausgangssignales der Addierstufe 302  empfangen, wenn an die Eingangstore des M-Registers ein weiteres Zeitgebersignal angelegt wird, die die entsprechenden Ausgangsanschlüsse der Addierstufe mit den entsprechenden Eingängen der Flipflops des Registers verbinden. Weitere neun Flipflops des M-Registers 301 können durch Parallelübertragung die Bits 15-23 des Ausgangssignales der Addierstufe 302 empfangen, wenn an die   Eingangstore    ein entsprechendes   Zeitgebersignal    angelegt wird. Diese Eingangstore verbinden ebenfalls die passenden Ausgangsanschlüsse der Addierstufe 302 mit den entsprechenden Eingängen der M-Registerflipflops.

  Während einer Eingabe- oder Ausgabeoperation können die M-Registerflipflops Informationen aus der Eingabe/Ausgabesteuereinheit 13 aufnehmen, wenn ein solches Signal an die Eingangstore angelegt wird, wodurch die Eingabe/Ausgabesteuereinheit 13 mit den   entsprechenden    Eingängen der M-Registerflipflops verbunden werden. An die Eingänge der M-Registerflipflops werden zu bestimmten Zeitpunkten Signale angelegt, um die Flipflops des M-Registers 301 auf null zurückzuschalten und um damit das M-Register zu löschen. Zeitgebersi,gnale sorgen dafür, dass der Inhalt eines jeden Flipflops des M-Registers 301 in ein Flipflop des nächst niedrigeren Stellenwertes übertragen wird. Der Inhalt des Flipflops mit dem niedrigsten Stellenwert kann dabei an den Flipflop mit dem höchsten Stellenwert übertragen werden.



  Die Information, die in dem M-Register 301 enthalten ist, kann an den Speicher 10, an die Eingabe/Ausgabesteuereinheit 13, an den Paritätsprüfkreis 316, an das Q-Register 306, an das B-Register und an das   I-Regi-    ster 313 übertragen werden.



   Der Addierer 302 führt die logischen Funktionen durch, die bei der Durchführung eines Befehls für binäre und dezimal-arithmetische Operationen notwendig sind. Weiterhin   dient der    Addierer 302 als   Mittels    punkt für die meisten Datenübertragungen innerhalb des Zentralrechners. Der   Addierer    302 weist zwei vollständige   Addierwerke    auf. Das erste vollständige   AS    dierwerk führt die arithmetischen Operationen und Datenübertragungen durch. Das zweite vollständige Addierwerk korrigiert die Ergebnisse, die im ersten vollständigen Addierwerk während ein er dezimal arithmetischen Operation entstehen. Die Addierstufe 302 dient nicht als statischer Speicher in dem Zentralrechner.

  Die Information aus dem M-Register 301 wird an das erste vollständige   Addierwerk    angelegt, und zwar dadurch, dass man ein Signal an die Tore anlegt,   die    die Ausgangsanschlüsse der M-Registerflipflops mit den Eingängen der   Addierstufe    verbinden. Die Informationen, die in dem E-Register 303, dem   D-RegisrDer    311, dem   P-Registe'r    310 und dem CC-Register 304 enthalten sind, können auf ähnliche Weise durch Tastsignale an das erste vollständige   Addierwerk      angelegt    werden. Hierzu sind diese Tastsignale an die Eingangstore des Addierers zu legen.

  Ein Additions-Signal wird dazu benutzt, während einer arithmetischen Operation eine 1 hinzuzuaddieren, um einen   Übertrag    von der vorherigen   Addition    in der Summe aufzunehmen, oder aber, um eine 1 einem Komplement   hinzuznaid-    dieren, das an das erste   vollständige    Addierwerk angelegt ist. Die Ausgangssignale des Addierers 302 können an das M-Register 301, das CC-Register 304, das P-Register 310, das D-Register 311 und das   E-Regi    ster 303 übertragen werden.



   Das E-Register 303 ist ein 24-Bit-Register und dient während der Durchführung eines Befehles als Operationsregister. Das E-Register enthält vierundzwanzig Flip-Flops für   die    Bits 0-23. Die   E-Register-    Flip-Flops sind in der Lage, durch Parallelübertragung die   Ausgangssignaie    des   Addierers    302 aufzunehmen, wenn ein   Zeitgebersignal    an die Eingangstore angelegt wird, die die Ausgänge   des    Addierers mit den entspre   chenden    Eingängen der E-Register-Flip-Flops verbinden.

  Neun Flip-Flops mit dem höheren Stellenwert sind in   der    Lage, durch   Paralieiübertragung    den Inhalt der neun Flip-Flops mit dem niedrigeren Stellenwert aufzunehmen, wenn ein   Zeitgebersignal    an die Eingangstore angelegt wird, das die Ausgänge der neun Flip-Flops mit dem niedrigeren Stellenwert an den entsprechenden Eingängen der neun Flip-Flops mit   dlem    höheren Stellenwert anlegt. Ein Zeitgebersignal sorgt dafür, dass das Komplement des Inhaltes des E-Registers 303 in dem E-Register gebildet wird. Ein Zeitgebersign,al sorgt dafür, dass der Inhalt der Flip-Flops in   die    Flip-Flops des E-Registers mit   dem    nächst niedrigeren Stellenwert übertragen wird.

  Der Inhalt der Flip Flops mit dem niedrigsten Stellenwert wird aus dem E-Register heraus übertragen und kann während der Durchführung bestimmter Befehle an die Flip-Flops mit dem höchsten Stellenwert des M-Registers 301 übertragen werden. Der Inhalt des E-Registers 303 wird an das A-Register 312, an das Akkumulatorlängenregister 314 und an den Addierer 302 übertragen.



  CC-Register 304 ist ein 5-Bit-Register und weist fünf Flip-Flops auf. Das CC-Register 304 wird hauptsächlich als Zähler   verwendet.    Das CC-Register 304 zählt während der Durchführung einiger Befehle die   Über-    träge der   Stelienwerte    und speichert ausserdem die Anzahl der Zeichen- oder Bitstellen durch die der Akkumulator während der Ausführung   eines    Schiebebefehls verschoben werden soll.

  Die CC-Register-Flip-Flops sind   m    der Lage, den Inhalt der entsprechenden Flip Flops vom N-Register 305 durch   Paralielübertragung    aufzunehmen, wenn an die Eingangstore, die die Ausgangsanschlüsse der N-Register-Flip-Flops mit den ent   sprechenden    Eingängen der CC-Register-Flip-Flops verbinden, ein Zeitsignal angelegt wird. Die CC-Register-Flip-Flops können ausserdem die Bits 0-4 des   Ausgangssignals    der   Addierstufe    302 aufnehmen, wenn ein   Zeitgebersignal    an   den    Eingangstoren erscheint, die die   Ausgangsanschlüsse    der Addierstufe mit den entsprechenden Eingängen der CC-Register-Flip-Flops verbinden.

  Ein Löschsignal löscht das CC-Register 304, während der Zählerstand im CC-Register durch ein anderes Signal erhöht wird. Der Inhalt des CC Registers 304 kann entweder an den Addierer 302 oder an das   N-Reçster    305 übertragen werden.



   Das N-Register 305 ist ein   5-Bit-Register    mit fünf Flip-Flops und dient als Zähler. Durch ein Signal wird   dler      Zähierstand    im N-Register 305 um 1 erniedrigt.



   Das Q-Register 306 ist mit seinen vier Flip-Flops ein   4-Bit-Register    und wird während der Verschiebeoperation von Befehlen als Zähler verwendet. Die beiden   Q-Register-F1ip-Flops    mit   dem    geringeren Stellenwert können den Inhalt   der    Flip-Flops für die Bits, 15, 16, 17   (Adress.ensteuerfeld)    des M-Registers 301 durch   Parallelüberitragung    aufnehmen, wenn ein Signal an die   Eingangsltore    angelegt wird, die die Ausgänge der Flip Flops des   M-Registers    301 mit den   entsprechenden    Eingängen der Flip-Flops des Q-Registers 306 verbinden. 

  Die Flip-Flops des   Q-Regissters    306 werden durch ein Signal auf 0 zurückgestellt, das ihren entsprechenden Eingängen zugeführt wird. Dadurch ist das   Q-      Register gelöscht. Der Inhalt des Q-Registers 306 kann an das N-Register 305 und an die B-Tore 317 übertragen werden.



   Bevor irgendein Befehlswort ausgeführt werden kann,   treten    in dem   zentralen    Rechner normalerweise bestimmte Signale auf, die bestimmte Subroutinen oder Mikrooperationen auslösen. Diese bestimmten Signale bewirken die Übertragung ein es neuen Befehlswortes   aus dem    Speicher 10 an das   M-Register    301, die Pari   tätsprüfung    dieses Befehlswortes, die Übertragung des Operationscode des Befehlswortes an das   1-Register    313, die Übertragung   des      Aldressensteue.rfelldes    (ACF) des Befehlswortes an das.

  Q-Register 306, die   Übe'rtra-    gung des   Adressenfeides    des Befehlswortes an das D-Register 311, die   Übertriagung    des Befehlswortes an das E-Register 303, und ausserdem erhöhen diese Signale den   Zählerstand    im P-Register 310. Diese Signale und die   entspre'chenden    Mikrooperationen treten zu Beginn als erste Operationsfolge oder Subroutine auf, die WOO-Block genannt wird. Während diese Blocks wird die Mikrooperation der Befehlssuche durchgeführt.



   Wenn das Adressenfeld des Befehlswortes zur endgültigen Adresse entwickelt werden soll, oder wenn eine zweite   Adresse    zu entwickeln ist, treten andere vorbesltimmte Signale und Mikrooperationen vor der Befehlsausführung als Teil dieser anfänglichen Routine auf. Diese Signale und Mikrooperationen enthalten eine andere Zeit- und Operationsfolge oder Subroutine, die WO1-Block genannt wird. Die Mikrooperationen des WO1-Blockes ziehen aus dem Speicher Hilfsworte heraus und   verwenden      diese    Hilfsworte zur Entwicklung der endgültigen Operandenadresse, die während de.r Ausführung   des    Befehls verwendet wird.

  Wenn der Befehl ein   Zwei-Adressenbefehl    ist, entwickeln die Mikrooperationen des   WO1-Blocks    auf ähnliche Weise die zweite   Adresse   
Die Anfangsroutine, die der Ausführung aller Befehle in der Datenverarbeitungsanlage gemeinsam ist, enthält der Mikrooperationsblock WOO, der eine Mikrooperation durchführt, also alle Schritte auslöst bzw.   veranlasst,    die zur   Befehissuche    erforderlich sind.



  Während des   Mikrooperationsblockes    WOO wird dasjenige   Befehiswort,    das die nächste Datenverarbeitungsoperation steuert, aus   derjenigen    Speicherstelle in das M-Register   eingelesen,    dessen Adresse durch die Adresse im   P-Register    gekennzeichnet ist. Nun wird die Parität des Befehlswortes überprüft. Zur Vorbereitung der   Befehisausführung    wird der Operationscode des   Befehlswortes    in   dem      1-Register    313 und das   Adressenfeld    des Befehlswortes in dem D-Register 311 gespeichert.

  Das   Aldressensteuerfelld    (ACF) des Be   fehlswortes    wird an das   Q-Regisiter    306 übertragen.



  Das   Befehiswort    wird   dann    an seine Stelle im Speicher zurückgespeichert. Nun wird der Zählerstand im P Register 310 um 1 erhöht, um die Adresse des näch   sten    Befehls oder des nächsten Wortes in der Programmfolge zu gewinnen, sofern das Adressenfeld des gerade   anregenden    Befehls aufgebaut werden soll, oder sofern der Befehl ein Zweiadressenbefehl ist. Am Ende des Blocks WOO führt der Programmverarbeiter die anderen Mikrooperationsblöcke aus, die zum Aufbau der   Adresse    und zur Durchführung des Befehls erfor   deriich    sind, sofern eine   Adresse    aufgebaut oder ein Befehl durchgeführt werden soll.



   Die bis jetzt   belschriebenetn    Elemente arbeiten zusammen, um die Datenverarbeitungsanlage in die Lage zu   versletzen,      Adressen    aufzubauen bzw. zu entwickeln.



  Es werden drei Arten von Adressen   verwendet:    a) vor   läufige    Adressen, b) effektive Adressen und c) endgültige   Adressen.    Eine vorläufige Adresse ist eine Adresse, die   durch    Hinzuaddieren von einem oder mehreren Indizes modifiziert werden muss, um eine effektive oder eine endgültige Adresse zu erhalten.



  Eine effektive Adresse ist eine Adresse, die' dazu verwendet wird, den Ort eines indirekten Adressenwortes im Speicher zu   definieren.    Die endgültige Adresse ist eine   Adresse,    die zusammen mit dem Operationscode   eines    Befehlswortes dazu verwendet wird, den Befehl auszuführen.



   Der Mikrooperationsblock WO1 ist Bestandteil der Anfangsroutine aller   Befehle,    die den Aufbau oder die Entwicklung von Adressen erforderlich machen. Ein   Ein-Ardcressenbefehl    erfordert dann den Aufbau oder die Entwicklung einer   Adresse,    wenn das Adressenfeld des   Befehlsworte's    nicht   die    endgültige Adresse ist.



  Zwei   Adnesísenbefehle    erfordern immer die Entwicklung der zweiten Adresse während des Mikroopera   tionshlockes      WO1,    und können auch die Entwicklung der ersten Adresse erforderlich machen. Während des Mikrooperationsblockes   WO 1    werden Hilfsworte aus dem Speicher herausgezogen und   dazu    verwendet, die   endgültigen      Adressen    aufzubauen.



   Der Mikrooperationsblock   WO1      enthält    5 Folgen zum Aufbau von Adressen, die durch den Zustand der Flip-Flops XS2, XS1 des Indexfolgeregisters 493 und durch den Zustand eines Signals definiert sind. Das   Signal    ist   in.    der   folgenden    Tabelle mit DFXW bezeichnet, welche Tabelle die Folgen des WO1-Blocks zeigen: FXS2   FXS1    DFXW Folge   O    0 - 0   O    1 1 1-DFXW 0 1   0    1-DFXW 1 0 - 2 1 1 - 3
Wenn während des Blockes WOO die Makrooperation der   Befehlslsuche    durchgeführt ist, kann entweder die Folge 0 oder die Folge 1-DFXW des Blockes   WO1    begonnen werden.

  Wenn bei der Durchführung einer Folge des Blocks   WO 1    keine endgültige Adresse   gewon-    nen wird, geht der Block WO1 erneut zu dieser   glei-    chen Folge oder zu einer anderen Folge über. Das erneute Eintreten in den Block WO1 und die damit verbundene Durchführung einer   passenden    Operationsfolge wird solange wiederholt, bis aus dem Adressenfeld des Befehlswortes eine   endgültige    Adresse aufgebaut worden ist oder bis die zweite Adresse eines bestimmten Zweiadressenbefehls gewonnen worden   ist    Die   nachfolgende    Aufstellung zeigt die   Operationsfol-    gen des Blocks WO1 an, in die von einer vorgegebenen Folge aus eingetreten   werten    kann, 

   um die Adressenentwicklung fortzusetzen.  



     W01 -Block-Operationsfolgen    von Folge zu Folge 0 0, 1-DFXW, 2   l-9FXW Adressenentwicklung    vollständig 1-DFXW 0, 1-DFXW, 2 2 0,3 3 0, 1-DFXW, 2
Jede der Folgen des Blocks WO1 kann auf die Entwicklung einer endgültigen Adresse führen. Um somit einen gegebenen Befehl ausführen zu können, kann in die nachfolgenden Subroutinen, die zu dieser Befehlsausführung notwendig sind, von jeder möglichen Folge des Blocks   WO1    her eingetreten werden.



  Um anzuzeigen, dass die Adresse eines   Einadressenbe      fehls    vollständig aufgebaut worden ist, tritt ein Fertig Signal auf für den Beginn der   Subroutinien,    die zur Ausführung dieses Befehls notwendig sind. Das   Fertig-    signal tritt auch dann auf, wenn angezeigt werden soll, dass die erste Adresse eines Zweiadressenbefehls fertig aufgebaut ist. Dann kann der Aufbau der zweiten Adresse ausgelöst werden. Wenn der Aufbau der zweiten Adresse eines   Zweiadressenbefehles    vollständig ist, tritt ein anderes Fertigsignal auf, um anzuzeigen, dass nun die Subroutinen ausgelöst werden können, die zur Durchführung dieses. Befehls notwendig sind.



   Zu Beginn des Mikrooperationsblockes   WO1,    welcher durch einen nicht gezeigten Th-Zähler in bestimmte Zeitperioden aufgeteilt wird, tritt während der Zeitperiode TLO ein Hilfswortsignal auf, sofern eine der Folgen 0, 1-DFXW, 2 oder 3 durchgeführt werden soll. Der Zustand des   Hilfswortsignals    ist während des gesamten Blocks WO1 eine binäre 1. Dieses Signal tastet die B-Tore 317 auf, so   dass    die Adresse des Hilfswortes aus dem D-Register 311 in das B-Register des Speichers 10 übertragen werden kann, sobald die Adresse des Hilfswortes in dem D-Register 311 erscheint.

  Wenn   die    Folge 1-DFXW ausgeführt werden soll, tritt ein   Indexsignal    auf, und tastet die B-Tore 317 auf, so dass die' Adresse eines an einem festen Platz eingespeicherten   Indexwortes    aus dem   0-Register    306 an das B-Register des Speichers 10 übertragen werden kann. Wenn während der Zeitperiode TLO ein erstes Zeitgeberarbeitssignal auftritt, wird ein Flipflop (nicht gezeigt) zur Auslösung einer   Leseoperation    im Speicher in den Einszustand umgeschaltet.

  Wenn nun entweder die Folge 0 oder die Folge 3 durchgeführt werden soll, tritt zu diesem Zeitpunkt ebenso ein weiteres   Zeitgeberarbeitssignal    auf, um die   Adresse    eines AMS-Wortes oder eines SAS-Wortes oder die Adresse eines indirekten AMS-Wortes von dem Addierer 302 an das D-Register 311 zu übertragen, von wo aus sie durch das Hilfswortsignal an die B-Tore 317 übertragen werden kann.



   Während der Zeitperiode   TE1    werden verschiedene Flipflops in der Anlage und auch die Flipflops des M-Registers in den Nullzustand zurückgeschaltet. Der Zeitgebergenerator des   Programmverarbeiters    wird angehalten. Ausserdem wird der Zählerstand in dem TL-Zähler auf TL2 erhöht. Diese Folge von Mikrooperationen stellt die   eine    Halbiolge des Blocks   WO1    dar.



   Die zweite   Haibfolge    des Mikrooperationsblocks WO1 wird ausgelöst, wenn vom Speicher her ein Syn   chronisiernngssignal    auftritt, durch das der Zeitgebergenerator des Programmverarbeiters wieder anläuft. Zu diesem Zeitpunkt   wird    das Hilfswort aus dem Speicher in das M-Register 301 übertragen. Wenn während der Zeitperiode TL2 das erste Zeitgeberarbeitssignal auftritt, erscheint ein   Schreibbefehisignal,    das im Speicher 10 eine' Schreiboperation auslöst, mit der das Hilfswort an seinen früheren Platz zurückgespeichert wird; das Hilfswort wird   ausserdem    dem Addierer 302 zugeführt.



  Wenn   das    Hilfswort ein Index ist, was durch ein Signal angezeigt ist, wird das Wort, das in dem   E-Regster    303 gespeichert ist, an die anderen Eingänge des Addierers 302 angelegt, so dass der Index der vorläufigen Adresse hinzuaddiert wird.



   Wenn eine Folge   0    durchgeführt wird, wird wäh   rend    der Zeitperiode TL3 der zweiten Halbfolge ein Flipflop CL1 in den   Zustand    umgeschaltet, sofern das Adressensteuerfeld eines AMS-Wortes einen Wert von 7 hat, was anzeigt, dass der Aufbau der Adresse   milt    einem anderen AMS-Wort   fortgelsetzt    werden muss; wird der Flipflop CL1 dagegen nicht in den 1 Zustand geschaltet, und ist der Befehl ein Einadressenbefehl, so ist der Aufbau der Adresse vollendet. Wie diese Operationen im einzelnen ablaufen, wird unten noch erklärt.



   Wenn eine Folge 0 oder eine Foleg 3   durchgeführt    wird, wird während der Zeitperiode TL3 der Flipflop CL2 in den   Ejuszustand    umgeschaltet, sofern der Bit 21 eines AMS-Wortes oder eines indirekten AMS Wortes eine binäre Eins ist. Der Flipflop CL2 zeigt an, dass die Adresse, die aufgebaut wird, eine effektive   Adresse    ist, (wie   die    bereits definiert wurde), die dazu verwendet wird, aus dem Speicher ein indirektes Adressenwort zu gewinnen. Wenn eine Folge 0 durchgeführt   wird,    tritt zu diesem Zeitpunkt auch ein Signal auf, das den Zählerstand in dem P-Register 310 um Eins erhöht. Der Inhalt des   P-Registers    310 stellt dann die Adresse dies nächsten P-Folge-Wortes dar, das ein Befehlswort, ein AMS-Wort oder ein SAS-Wort sein kann.



   Wenn   während    der Zeitperiode TL4 das erste Zeitgeberarbeitssignal, das in der Zeitperiode TL2 schon vorhanden war, auftritt, wird ein anderes Zeitgeberar   beitssignai    hervorgerufen, das die Adresse von dem Addierer 302 an   das    E-Register 303 überträgt, sofern ein Signal vorhanden ist, das anzeigt, dass die Indexvorgänge fortgesetzt werden können. Das zuletzt erwähnte   Zeitigeberarbeitssignal    tritt auch während der Folge 2 auf, um das   indirekte    Adressenwort vom Addierer 302 an das E-Register 303 zu übertragen.

 

   Wenn die Folge 2 durchgeführt wird, wird während der   Zeitperiode    TL5 die Adresse des indirekten Adressenwortes aus dem D-Register 311 an den Addierer 302 übertragen, sofern das   Adressensteuerfeld    des indirekten Adressenwortes einen Wert von 7 hat. Durch diesen Wert ist angezeigt, dass das indirekte AMS Wort die nachfolgenden Speicherplätze einnimmt.



  Wenn während der Durchführung einer Folge 2 das erste Zeitgeberarbeitssignal auftritt, das schon in den Zeitperioden TL2 und TL4 vorhanden war, wird ein Flipflop CAY in den Einszustand umgeschaltet, sofern das Adressensteuerfeld eines indirekten Adressenwortes einen Wert von 7 aufweist. Dadurch wird der     Adresse    des indirekten   Adrf sisenwortes    der Wert 1 hin   zuaddiert,    um die Adresse eines indirekten AMS-Wortes zu bilden.   Wenn    zu diesem Zeitpunkt das Signal DXNW vorhanden ist, das anzeigt, dass die Indexvor   gälte    mit einem AMS-Wort fortgesetzt werden müssen, wird der Zählerstand in dem P-Register 310 an den   Addierer    302 übertragen.

  Während der Folge 2 wird auch ein Flipflop PSY in   dNen      Einszustand    umgeschaltet, wenn stich   der    Flipflop CL1 im 1-Zustand befindet, wodurch angezeigt ist, dass der Indexvorgang   fortgeszt    werden muss,   und    wenn das inverse Signal vorhanden ist,   das    anzeigt,   dass      die    indirekte Adressierang nicht mit einem indirekten AMS-Wort fortgesetzt werden soll.

  In allen Folgen tritt zu diesem Zeitpunkt das weitere in der   Zeitperiode      TL0    bereits einmal angelegte   Zeitgeberarbeitssi,gnal    auf, um eine Übertragung vom Addierer 302 zum   DWRegister    311 zu bewirken, solange   der    Befehl kein Zweiadressenbefehl ist,   oder,      sofern    es sich um einen Zweiadressenbefehl   hande'lt,    die zweite   Adresse    noch nicht entwickelt worden ist.



  Die einzige Ausnahme, in der   dieses      Zeitgeberarbeitssi-    gnal nicht auftritt,   besteht    während einer Folge 2 bei gleichzeitigem   Vorhandensein    eines Signales, das anzeigt, dass ein   indirektes    AMS-Wort verwendet werden soll.



   Wenn während   der      Zeistpenode    TLO ein Zeitgebersteuersignal auftritt, werden die   Indexfolgeregister-Flip-    flops XS2 und XS1 entweder in den Eins-Zustand oder in den Nullzustand geschaltdt. Das hängt von der   Folge es    Blocks WO1 ab,   die    als nächstes   durchge-    führt werden soll. Hierbei ist angenommen, dass der Aufbau der   Adresse    noch nicht vollständig durchgeführt   worden    ist. Während der Folgen 0, 1-DXFW oder 3   wird daher der      Flipflop    XS1 dann in den 1   Zustand    geschaltet, wenn die   Indexvorgänge    noch nicht   vollständig    durchgeführt sind.

  Während der Folge 2 wird der Flipflop XS1 dagegen dann in den   Eins-      Zustand    umgeschaltet, wenn die   Indexvorgänge    mit einem   indirekten    AMS-Wort   fortgesetzt    werden sollen.



  Der Flipflop   XS1    wird dann in den Nullzustand ge   schaltet,    wenn es sich um einen Zweiadressenbefehl handelt,   dessen    erste Adresse bereits   vollsltänditg    ge   wannen    worden ist, und bei dem die Entwicklung der   zweiten    Adresse ausgelöst werden muss.   Der-Flipflop    XS1 wird aber auch dann in den Nullzustand zurückgeschaltet, wenn die   Indexvorgänge    mit einem AMS Wort   fortgesetzt    werden sollen.



   Der Flipflop   XS1    wird   ausserdem    auch dann in den Nullzustand zurückgeschaltet, wenn ein Index mittels indirekter Adressierung gewonnen   werden    soll.



   Wenn der Aufbau   einer    Adresse mit Hilfe eines indirekten   Adressenwortes    fortgesetzt werden soll, wird der   Flip-Fiop    XS2 in   Åaen-Einszustand    umgeschaltet.



  Wenn ein   ZweiadreTslsenbefehl    vorliegt, dessen erste Adresse bereits fertig aufgebaut ist, bei dem die Entwicklung der zweiten Adresse jedoch ausgelöst werden muss, oder wenn der Aufbau der Adresse mit einem AMS-Wort   fortgesetzt    werden muss, wird der Flipflop XS2 in den Nullzustand zurückgeschaltet.

  Auch während der Durchführung von Folge 2 wird der Flipflop XS2 in den   Nullzustand    zurückgeschaltet, wenn die Indexvorgänge mit einem AMS-Wort fortgesetzt werden   sollen,      oder Wenn    im Falle eines Zweiadressenbefehls die Gewinnung der ersten Adresse bereits   vollständig    ist,   die    Gewinnung der zweiten Adresse jedoch auslgelöst   werden    muss.   ZusätzLich wird    der Flipflop XS2 während   der    Folgen 0, 1-DFXW und 3 in den Nullzustand   zurückgeschaltet,    wenn der Aufbau der Adresse noch nicht vollständig ,durchgeführt worden ist.

  Der Flipflop NXF   wird    in den   Eins-Zusand    umgeschaltet, wenn der   Befehl    ein   Zwei;adressenbefehl    ist, bei dem die Gewinnung der ersten Adresse bereits vollständig durchgeführt ist, die Gewinnung der zweiten Adresse jedoch ausgelöst werden   mus;s.    Während der Folge 2 wird der Flipflop NFX dagegen in den Einszustand   umgeschaltet,    wenn der Befehl ein Zweiadressenbefehl ist, und die Entwicklung der ersten   Adresse    nicht mit einem   indirekten      AMS-Wort¯fortgesetzt    werden soll.



  Während der Folgen 0, 1-DFXW oder 3 wird der Flipflop AO1 in den Einszustand umgeschaltet, wenn das   Hilfswort    ein   Inidexanzeiger    ist, der anzeigt, dass das nächste Wort, das aus dem Speicher ausgelesen werden soll,   ein    Index ist.



   Der Flipflop AO1 wird in den Nullzustand zurück   ges-chaltet,    wenn das Signal auftritt, welches den Index des   Hllfswortes    anzeigt. Wenn ein   Synchronisierungssi      gnal    vom Speicher 10 her erscheint, um den Zeitgeber   generator-des    Programmverarbeiters wieder anlaufen zu lassen, wird ein nicht gezeigter Flipflop in den Eins- zustand umgeschaltet. Damit ist die zweite Halbfolge des   Mikro operations blocks    WO1 vollständig durchgeführt, und der Programmverarbeiter kann erneut in den Mikrooperationsblock WO1 eintreten, um die Adressen   vollständig    zu gewinnen.

  Er kann zu diesem Zeitpunkt aber auch in einen anderen Mikroopera   tionsblock      eilntneten,      der    durch den Zustand des   W-Auswahlregisters      der    Operationssteuereinheit 319 definiert ist, um den Befehl   durotzuführen.    Die Flipflops XSl und XS2 des Indexfolgeregisters 493 sind   SteuerfLipflops,    die zusammen mit dem Signal DFXW fünf mögliche Folgen für die Adressengewinnung definieren,   die    in der Tabelle  WO1 Blockfolgen  aufge'führt sind.

  Die Mikrooperationen zur Gewinnung der   Adresse, -die    während des Blocks WO1 auftreten, hängen von den Zuständen der Flipflops XS2 und XS1 und von dem   Zustand      des    Signals DFXW ab. Die Kombination der Zustände, dieser beiden Flipflops und des Signals DFXW bestimmen   die    Art und die Reihenfolge bestimmter Mikrooperationen während des Blocks   WO1,    wie es oben erklärt wurde.



   In der obigen Beschreibung wurden die   Mikroope-    rationen des Blocks WO1 in Betracht gezogen, die ganz allgemein während der   Anfangsroutine    für alle   Einadres sen-    und   Zweindressenbefeh le    auftreten. Zur   Ve;rwendung    mit bestimmten Befehlen können die Mikrooperationen des Blocks WO1 auf Wunsch auch variiert werden.



   Folge O
Die Folge 0 des Blocks WO1 kann von einem Block WOO aus begonnen werden, oder von den Folgen 1-DFXW, 2 oder 3. Man kann die Folge 0 aber auch im Anschluss an eine gerade durchgeführte Folge   0    neu beginnen. Die Folge 0 des Blocks WO1 verwendet entweder ein AMS-Wort, um die Adresse eines   Einadressen-    befehls zu gewinnen, oder ein SAS-Wort, um eine zweite Adresse eines Zweiadressenbefehls zu gewinnen.

 

   Wenn dem   Addierer    302 ein AMS-Wort oder ein SAS-Wort zugeführt ist, wird die Art der Worte   über    prüft,   dle      durch    den Zustand der Bits 18   und    19 gekennzeichnet ist. Wenn   das    Wort eine Verknüpfung darstellt, wird sein Adressenfeld aus dem Adierer 302 in das D-Register 311 übertragen, und im Block WO1 wird zur Folge 1-DFXW übergegangen, um den Index  oder den Operanden zu gewinnen. Wenn das Wort ein Indexzeiger ist, was sich durch die   Dekodierung      daher      Bilds    18 und 19 ergibt,   wincl:    das   Adress;enfeld    des Wortes vom Addierer 302 an das   D-Regisér 311    übertragen.

  Im Block   WO1      wird    zur Folge 1-DFXW übergeganges um den Index oder den Operanden zu gewinnen. Ausserdem   wid    ein weiterer Flipflop AO1 in den Einszustand umgeschaltet. Ist das Wort ein   Operan'd,    ist die Gewinnung der   Adresse    vollständig   durch    führt, und die passenden Mikrooperationsblöcke, wie sie durch das   W-Ausfwahlregister      definiert    sind, werden zur Ausführung des Befehls vollzogen. Ist   das    Wort ein Index, wird die vorläufige Adresse aus   dem    E-Register 31)3 an den   Addierer    302 angelegt, und durch den Index modifiziert.



   Anschliessend wird das   Adresslensteuerfeld    (ACF) des AMS-Wortes überprüft. Zeigt das   Adressenlsteue.r-    feld einen Wert von 7, so wird der Flipflop CL1 in den Einszustand umgeschaltet. Anschliessend wird der Bit 21 des AMS-Wortes überprüft, und   der    Flipflop CL2 in den Einszustand umgeschaltet, sofern der Bit   71    ein binärer Einszustand ist. Dann wird der Zählerstand des   P-Registers    310 um 1 erhöht, um die Adresse des nächsten AMS-Wortes zu erhalten.



   Wenn   der    Flipflop CL2 in den 1-Zustand umgeschaltet worden ist, dann ist an diesem Punkt die entwickelte Adresse eine effektive Adresse. Sie wird dann vom Addierer 302 an das D-Register 311   übe.rtr.agen.   



     Anvehliessend    wird die   Operationsfoige    2 des Blocks   WO1    begonnen, um durch   indirekte    Adressierung   eine    neue effektive   Adresse,    eine andere vorläufige   Adresse    oder eine endgültige Adresse zu   entwickeln.    Wenn der Flipflop CL2 nicht im   1Zustand    ist, wird   der    Flipflop CL1 überprüft.

  Wenn der Flipflop CL1 im   1Zustand    ist, wird die   entwickeite      Adresse    an   das    E-Register 303 übertragen, ausserdem wird die Adresse im P-Register 310 an den Addierer 302 übertragen, und die   Opera-    tionsfolge 0 des Blocks   WO1    wird begonnen, um   den    Indexvorgang mit einem anderen AMS-Wort   fortzuset-    zen.



   Wenn der Flipflop CL1 nicht im 1-Zustand ist und wenn es sich um die   Adresse    eines   Einadressenbefehls    handelt,   !dann,    ist die   entwickelte      Adresse    eine   endgül-    tige Adresse, die dann vom   Addierer    302 in das D Register 311 übertragen wird. Die   Adreslslengewinnung    ist dann vollständig und der zentrale Rechner führt die Mikrooperationsblöcke aus, die durch den Zustand des W-Auswahlregisters definiert sind, um den Befehl durchzuführen. Wenn der Flipflop CL1 nicht im Einszustand ist, wenn es sich aber um einen   Zwei.adrelssen-    befehl handelt, wird die endgültige erste   Adresse    vom Addierer 302 an das D-Register 311 übertragen.

  Zusätzlich wird der Flipflop NXF in den 1-Zustand und der Flipflop AO1 in den   Nffllzustand    geschaltet. In manchen Fällen   wird    auch nun   wieder    die Operationsfolge Null des Blocks WO1 begonnen, um mit einem SAS-Wort   die    zweite Adresse zu entwickeln. Das hängt von der Art des   B.efehls    ab.



   Folge 1-DFXW
Die Folge 1-DFXW wird von einem Block WOO ausgehend begonnen, wenn das Adressensteuerfeld eines Befehlswortes einen Wert aufweist, der im Bereich von 1-6 liegt. Das Adressensteuerfeld definiert dann den Ort eines Indexwortes im   Speicher,      d.as.    an einem fest vorgegebenen Speicherort   eingespeichert    ist.



  Das   Adressensteuerfeld    wird dann vom   Q-Regisber    306 des Programmverarbeiters an den Speicher übertragen,   um    dieses an einem fest vorgegebenen Speicherplatz   e.ugespeicherte    Indexwort zu gewinnen.



   Wenn der Befehl, der durch den   Operationscode    in dem   1-Register    313 definiert ist, ein   Einadressenbefehl    ist, ist das an dem festen Speicherplatz eingespeicherte Indexwort ein Index, der im   Addierer    302 dem Adressenfeld des   Befehiswortes    hinzuaddiert wird, um eine   endgültige      Adresse    zu bilden, die an ;das D-Register 311   übertragen    wird. Damit ist die   Adresse    vollständig gewonnen und der Befehl wird ausgeführt.

  Wenn der Befehl ein Zweiadressenbefehl ist, ist das an einem festen Speicherplatz eingespeicherte Indexwort ein   Operand.    Dann wind durch die Durchführung der pas   senden      Mikrooperationsblöcke      dile    Adresse vollständig aufgebaut und der Befehl durchgeführt.



   Folge 1-DFXW
Die Folge 1-DFXW des Blocks   WO1    kann entweder von   dlen      Operationsfolgen    0 oder 3 her begonnen werden, oder auch von einer gerade durchgeführten Folge 1-DFXW. Während der Folge 1-DFXW werden zum Aufbau bzw. zur Entwicklung von Adressen zusätzlich zu Indices entfernt   liegende    AMS-Worte und entfernt liegende SAS-Worte verwendet.



   Wenn ein Hilswort aus dem Speicher ausgelesen worden ist, wird der Flipflop   AO1    überprüft. Wenn   stich    der Flipflop AO1 im   1Zustand    befindet, so handelt es sich bei   dem    Hilfswort um einen Index oder um einen   Operanden.    Befindet sich der Flipflop AO1 im Nullzustand, so ist das Hilfswort entweder ein entfernt liegendes AMS-Wort oder ein entfernt liegendes SAS Wort,   dessen    Art überprüft wird. Ist das Hilfswort ein Zeiger, oder stellt es eine Verknüpfung dar, so wird sein   Adressenfeld    an das D-Register 311 übertragen.



  Ist das Hilfwort ein Zeiger, so wird der Flipflop AO1 in den 1-Zustand umgeschaltet. Die anschliessende Entwicklung der   Adresse wird    dann durch einen erneuten Beginn der Folge 1-DFXW des Blocks WO1 bewirkt.



   Wenn sich zeigt, dass das Hilfswort ein Index oder ein Operand ist, entweder durch Selbsterkennung oder deswegen, weil der Flipflop AO1 in den 1-Zustand geschaltet ist, wind der Flipflop NXF überprüft. Befindet sich der Flipflop NXF im   1-Zustand,    dann ist das Hilfswort ein   Operand.    Der Aufbau der Adresse ist dann beendet und der Befehl kann durch Durchführung der   passenden      Mikrooperationsblöcke    durchgeführt werden.   Befindet    sich   dagegen    der Flipflop NXF im   Zustand,    so ist   das    Hilfswort ein Index und wird im   Adldlierer    der vorläufigen Adresse hinzuaddiert,
Anschliessend wird der Flipflop CL2 überprüft.

 

  Befindet sich der Flipflop CL2 im 1-Zustand, so bedeutet   dies,    dass die Entwickelte Adresse eine effektive Adresse   islt,    die dazu zu verwenden ist, ein indirektes   Adressenwort    zu erhalten. In diesem Falle wird die effektive Adresse vom Addierer 302 zum D-Register 311 übertragen.



   Daraufhin wird in die Folge 2 des Blocks WO1 eingetreten, um durch indirekte Adressierung eine neue effektive Adresse, eine neue vorläufige Adresse oder eine neue endgültige Adresse zu entwickeln. Wenn der Flipflop CL2 im Nullzustand ist, wird der Flipflop CL1 überprüft. Befindet er sich dann im 1-Zustand, so bedeutet dies, dass der Indexvorgang mit einem   andere    ren AMS-Wort fortgesetzt werden muss. In diesem   Fall wird die Adresse des nächsten AMS-Wortes vom P-Register durch den Addierer 302 hindurch an das D-Register 311 übertragen. Ausserdem wird in die Folge 0 des Blocks WO1 eingetreten, um die Adres   senentwicklung    fortzusetzen. Wenn der Flipflop   CL1.   



  jedoch im   Zustand    ist, und wenn die Adresse die Adresse eines   Einadresjsenbefehls    ist, so   ist    die gewonnene Adresse eine endgültige Adresse, die an das D-Register übertragen wird.   Ans,chliessend    wird der Befehl durch die Durchführung   der    passenden Mikro   operationsblöcke    ausgeführt. Handelt es sich jedoch um einen   ZweiadZressenbefehl,    so wird die endgültige erste Adresse im E-Register 303 gespeichert, der Flipflop NXF wird in den 1-Zustand und der Flip-Flop AO1 wird in den   Nullzustand    geschaltet. Bei Bedarf kann dann wieder in die Folge   0    des Blockes WO1 eingetreten werden, um auch   die    zweite Adresse zu entwickeln.



   Folge 2 Die Folge 2 des Blockes WO1 kann im Anschluss an die Folgen 0, 1-DFXW oder 3 begonnen werden. Bei der Durchführung der Folge 2 wird ein indirektes   Adressenwort      aus dem    Speicher gewonnen und dazu verwendet, die Entwicklung der Adresse eines   Eins-      adressenbefehls    bzw. die Entwicklung der ersten Adresse   einels      Zweiadre senbefehls    fortzusetzen.   Wie    derum wird   wie    bisher das   Adressensteuerfeld    daraufhin überprüft, ob es den Wert  7  aufweist. Hat es den Wert  7 , so   tritt    das bereits erwähnte Signal auf, was bedeutet, dass die indirekte Adressierung mit einem indirekten AMS-Wort fortgesetzt werden muss.



  In   diesem    Fall wird die Adresse, an der das   indirekte    Adressenwort im Speicher 10 gespeichert war, vom D-Register 311 an   den Addierer    302 übertragen. Dort wird diese Adresse um  1  ergänzt. Die neue Adresse   wird dann    an das   D-Regislter    311 zurückübertragen.



  Daraufhin wird   die    Folge 3 des Blocks WO1 begonnen, um in der Adressenentwicklung mit Hilfe eines indirekten AMS-Wortes   fortzufahre'n.    Zeigt dagegen das   Adresslenslteuerfeld    einen anderen Wert als  7 , so wird der Flipflop   CLl    überprüft. Befindet er sich im 1-Zustand, so bedeutet dies, dass die Indexvorgänge mit   dem    nächsten AMS-Wort, also nicht mehr wie oben mit einem indirekten AMS-Wort   fortgesetzt    werden müssen. In   diesem    Fall wird die Adresse aus dem P-Register 310 durch den Addierer 302 hindurch an das   D-Regis,ter    311 übertragen.

  Daraufhin wird erneut in die Folge   0    eingetreten.   Befindet    sich der Flipflop CL1 dagegen im Nullzustand und handelt es sich um einen   Einadresrsenbefehl,    so ist   die    Adresse fertig entwickelt und   fder    Befehl kann durchgeführt werden.



  Handelt es sich dagegen um einen   Zweiadressenbefehl,    so kann zur Entwicklung der zweiten Adresse erneut in die Folge   0    eingetreten werden.



   Folge 3
Die Folge 3 des   Blocks    WO1 kann nur im Anschluss an eine Folge 2   begonnen    werden.Die Folge' 3   dient dazu,    aus dem Speicher ein indirektes AMS-Wort zu erhalten um es zum weiteren   Adressenaufbau    zu verwenden.



   Das indirekte AMS-Wort wird vom Speicher her   erhalten    und auf seine Art hin untersucht. Wenn das indirekte   AMS-WoIt      din    Zeiger oder eine Verknüpfung ist, wird sein Adressenfeld an das D-Register 311 übertragen. Anschliessend wird in die Folge   1 DFXW    eingetreten, um einen Index oder einen Operanden zu gewinnen. Wenn   das    indirekte AMS-Wort dagegen ein Index ist,   wilid    es der vorläufigen Adresse im Addierer 302 hinzuaddiert. Dann wird der Bit 21 daraufhin überprüft, ob eine   weitere    indirekte Adressierung er   förderlich    ist.

  Wenn der Bit 21 eine binäre 1 ist, so   ist    die entwickelte   Adresse    eine effektive Adresse, die zur Gewinnung   eines    anderen indirekten Adressenwortes verwendet wird. In diesem Fall wind die effektive Adresse vom   Addierer    302 an das D-Register 311 übertragen. Daraufhin wird in die Folge 2 eingetreten, um   durch    indirekte   Adressierung    eine neue effektive   Adresse,      eii,ne      andere    vorläufige Adresse oder eine endgültige Adresse zu gewinnen.



   Wenn der Bit 21 eine binäre Null ist, wird der Flipflop CL1 überprüft. Befindet er sich im 1-Zustand, so bedeutet dies, dass die Indexvorgänge mit dem nächsten AMS-Wort fortgesetzt werden   müssen.    In diesem Fall wird   die    entwickelte Adresse an das E-Register 303 und die Adresse im   P-Register    310 an das D   Register    311 übertragen. Zur weiteren   Adres,sen,ent-    wicklung wird dann in   dile    Folge 0   eingjetreten.    Wenn der Flipflop CL1 im   Nullzustand    ist und wenn es sich um   die    Adresse eines   Einadressenbefehis    handelt, so ist die Adresse eine endgültige Adresse, die an das D Register 311 übertragen wird.

  Die Adressenentwicklung   ist damit    vollständig durchgeführt. Wenn es   sich    um einen Zweiadressenbefehl handelt, wird zur Entwicklung der zweiten   Adresse    erneut in die Folge   0    des Blocks   WO1    eingetreten.



   Es sind somit wirkungsvolle   Massnahmen      vogese    hen, durch die   durch      die      Verwendung    von Hilfsworten Adressen gewonnen oder entwickelt werden können.



  Zur zwischenzeitlichen Speicherung von Befehlsworten    oder B efehlszeichen werden Ühertragungskomponenten    beispielsweise die M-, E- und   1-Register    und die Operationssteuerung der Steuereinheit 318 verwendet.



  Gleichzeitig dienen   diese      Übertragungskomponenten    dazu, nach Überprüfung bestimmter   Bitstelillen    in den Befehlsworten oder Zeichen bestimmte Hilfsworte zu gewinnen. Ein getrenntes Register (P-310) speichert die Adresse eines Hilfswortes oder eines Befehlswortes.



  In Abhängigkeit von der Information, die in   bestimm-    ten Bits   Ider      Hilfswortie    vorhanden ist, wirken wiederum weitere Komponenten der Datenverarbeitungsanlage   (Q-Relgister    306; Addierer 302; E-Register 303) auf die   Befehlsworte-    oder Zeichen in den Speicherund   tÇbertragungskomponenten    (M-301 und E-303 Register) ein, um in Abhängigkeit von Informationen in bestimmten Teilen der Hilfsworte bestimmte Teile der Befehlsworte zu   modifizieren.    Die Übertragung von Daten von und zu den verschiedenen Registern wird von einer Zeitgebersteuerung 319 gesteuert, die während verschiedener TL-Perioden (Zeitgeberperioden) wirkt.

 

   Wenn ein Befehlswort modifiziert worden ist, wie es eben beschrieben wurde, werden die vorgegebenen Bits erneut überprüft, um   festzusteiien,    ob das Befehls wort   erneut    modifiziert   werden    muss. Fällt diese   Über-    prüfung bejahend aus, so kann mit dieser Modifizierung auf die gleiche Weise fortgefahren werden, wie es gerade erläutert wurde. Auf diese Weise können aufeinanderfolgende Daten solange aus dem Speicher gewonnen werden, bis eine Überprüfung anzeigt,   Idass    das Datenwort vollständig ist und somit die endgültige   Adresse      derjenigen    Daten darstellt, auf die der Befehl einwirken soll.  



   U'enn man bestimmte Bitplätze des Hilfswortes einem bestimmten Code zuordnet und   wem    man diese   Cade    in den Hilfsworten überprüft, kann man in Abhängigkeit von den Daten im Hilfswort selber mit der Entwicklung einer Adresse fortfahren. Daher kann   die    logische Anordnung der Daten im Hilfswort sehr   fiexi-    bei gestaltet werden. Man kann beispielsweise dem Code an bestimmten Bitplätzen des Hilfswortes eine solche Konfiguration geben, dass das Hilfswort selbst als Operand wirkt. Eine anidere   Codekonfiguration    an den selben Bitplätzen kann das Hilfswort als zusätzliche Adresse eines   Mehradressenbefehles    kennzeichnen. 

  Sie kann jedoch auch bedeuten, dass zur Entwicklung der Adresse des   Hauptbefehls    ein   anderes    Datenwort aus dem Speicher ausgelesen werden muss. 

Claims (1)

  1. PATENTANSPRUCH
    Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen der in einem Speicher (10) gruppenweise gespeicherten Befehls worte, dadurch gekennzeichnet, dass die Vorrichtung folgende Bauteile enthält: a) ein erstes Register (P-310), welches die Übertragung eines Befehlswortes oder Hilfswortes aus dem Speicher steuert, zwecks zwischenzeitlicher Speicherung mindestens eines Teiles des genannten Wortes in mindestens einem weiteren Register (M-301, E-303, 1-313, D-311), b) ein zweites Register (Q-306) zur Speicherung einer beschränkten Anzahl von Bitstellen eines Be fehls- oder Hilfswcrtes, im nachfolgenden mit Adres sen steuerfeid bezeichnet,
    zwecks Modifizierung des Adressenteils des in einem der genannten weiteren Register gespeicherten Wortes mittels eines Addierers (302), c) eine Operationssteuereinheit (318), eine Zeit,ge- bersteuereinheit (319) und eine Prüfeinheit (492) zur Steuerung der durch die Modifizierung bedingten Über- tragungsvorgänge.
    UNTERANSPRÜCHE 1. Datenverarbeitungsanlage nach Patentanslpruch, dadurch gekennzeichnet, dass im Speicher (10) Hilfsworte einer ersten Art mit einem Adressensteuerfeld und einem Klassenfeld sowie Hilfsworte einer zweiten Art mit nur einem Klassenfeld gespeichert sind.
    2. Datenverarbeitungsanlage nach Patentanspruch, dadurch gekennzeichnet, dass der Addierer (302) zum Adressenfeld des Befehlswortes das Adressenfeid eines Hilfswortes hinzuaddiert.
    3. Datenverarbeitungsanlage nach Patentanspruch und Unteranspruch 2, dadurch gekennzeichnet, dass bei einer durch die Prüfeinheit (492) festgestellten ersten Bitkonfiguration in einem die Bedeutung des Adressenfeldes bestimmenden Klassenfeld eines Hilfswortes die aus der genannten Addition hervorgehende Summenadresse als endgültige Operaudenadresse erkannt wird, und dass bei einer festgestellten zweiten Bitkonfiguration ein weiteres Hilfswort aus dem Speicher (10) ausgelesen wird.
    4. Datenverarbeitungsanlage nach Unteranspruch 3, dadurch gekennzeichnet, dass bei Feststellung der genannten zweiten Bitkonfiguration des Hilfissvortes (Fig. 2e, Bitplätze 18, 19) und bei einer ersten Bitkon figuration des im zweiten Register (Q-306) gespeicher- ten Adressensteuerfeldes desselben Hilfswortes (Fig. 2e, Bitplätze 15, 16, 17) das Auslesen von Hilfsworten aus dem Speicher (10) fortgesetzt wird bis zum endgüftigen Aufbau der Operandenadresse im Befehls wort (Fig. 2c).
    5. Datenverarbeitungsanlage nach Patentanspruch und den Untelran,sprüchen 3 und 4, dadurch gekennzeichnet, dass die Prüfeinheit (492) in Zusammenarbeit mit der -Zeitgebersteuereinheit (319) und der Operationssteuereinheit (318) nach Auslesen desjenigen Wortes aus der Speicherstelle, dessen Adresse im ersten Register (P-310) gespeichert ist, die Adresse des in der Programmfolge nächsten Hllfswortes bildet und das Auslesen des Wortes aus der nächstfolgenden Speicherstelle in die weiteren Register (M-301, E-303, I-313, D-311) und in das zweite Register (Q-306) veranlasst zur Entwicklung der Operandenadresse durch den Addierer (302).
    6. Datenverarbeitungsanlage nach Patentanspruch und Iden Unteransprüclien 1-5, dadurch gekennzeichnet, dass. die Prüfeinheit (492) in Zusammenarbeit mit der Zeitgebersteuereinheit (319) und der Operations- steuereinheit (318) bei Vorliegen einer von drei be stimmten Bitkonfigurationen im Klassenfeld des oder der Hilfsworte (Fig. 2e, 2f, 2h, 2i, 2j;
    Bitplätze 18, 19) folgendes veranlasst: a) bei ,der ersten Bitkonfiguration wird das Adressenfeld des in der Programmfolge nächsten Hilfswortes erster Art (Fig. 2e, Bitplätze 0-14) dem Adressenfeid des Befehiswortes (Fig. 2c, Bitplätze 0-14) hinzuad- diert als endgültige Operandenadresse; b) bei d zweiten Bitkonfiguration wird aus dem Speicher (10) ein weiteres als Indexgrösse ausserhalb der Programmfolge liegendes Hilfswort (Fig. 2g) ausgelesen, dessen Adressenfeln dem Adressenfeld des Be fehlswortes hinzuaddiert wird zur Entwicklung der Operandenadresse;
    c) bei der drmttetn Bitkonfiguration wird aus dem Speicher (10) ein ausserhalb der Programmfolge liegendes Hilfswort zweiter Art mit einem Klassenfeld (Fig. 2f) ausgelesen und dessen Adressenfeld dem Adressenfeltd des Befehiswortes hinzuaddiert zur sukzessiven Entwicklung der Operandehadçresse.
    7. Datenverarbeitungsantage nach Patentanspruch, dadurch gekennzeichnet, dass aufeinanderfolgende Wortspeich,erplätze im Speicher (10) aufeinanderfolgende Adressen haben, dass das erste Register (P-310) die Adresse einer Speicllerstelle für ein solches Wort enthält, dass weiterhin die Zeitgebesrteuereinheit (319) den Zählerstand in dem ersten Register (P-310) zwecks Billdung der nächstfolgenden Adresse im Register dann erhöht, wenn das Wort von derjenigen Speicherstelle in die weiteren Register (M-301, E-303, I-313, D-311) übertragen worden ist, die .der momentanen Adresse im ersten Register (P-310) entspricht,
    und dass die Zeitgebersteuereinheit (319) auf die Adresse in dem ersten Register anspricht, um einen Zweiadressenbefehi von derjenigen Speicherstelle an die weiteren Register zu übertragen, di'e durch Idie Adresse im ersten Register gekennzeichnet ist, dass Idie Prüfeinheit (492) weiterhin auf die Adresse im ersten Register anspricht, um ein Hilfswort aus einer ausgewählten Speichersteile an die weiteren Register zu übertragen,
    und dass d'ie Prüfein heizt (492) auf das Hilfswort anspricht, um die Adresse einer Speicherstelle aus der Gruppe der genannten aufeinanderfolgenden Speicherplätze zu kennzeichnen, die dann,die zweiite Adresse des Zweiadressenbefehlswor- tes bildet.
    8. Datenverarbietungsanlage nach Patentanspruch und den Unteransprüchen 1-5, dadurch gekennzeich- net, dass bei Vorhandensein einer Bitkonfiguration des Befehlswortes (Fig. 2c, Bitplätze 18-23), weiche die Entwicklung einer zweiten, dritten usw. Adresse eines Mehradressenbefehis fordert, ein in der Progratmufolge nächstes Hilfswort (Fig.
    2i) aus dem Speicher (10) gelesen wird, dessen Klassenfeld (Bitplätze 18, 19) eine von drei bestimmten Bitkonfigurationen aufweist, wobei die Prüfeinheit (492) in Zusammenarbeit mit der Zeitgebeirsleuere3inheit (319) und der Operationssteuereinheit (318) folgendes veranlasst:
    a) bei Vorhandensein der ersten Bitkonfiguration ist Idas Adressenfeld des genannten Hilfswortes (Fig. 2i, Bitplätze 0-14) ,die zweite Adresse des genannten Be fehlswortes, an welcher Adresse der zweite Operand gespeichert ist, b) bei Vorhandensein der zweiten Bitkonfiguration wird ein anderes Hilfswort aus dem Speicher (10) gelesen, dessen Aldressenfeld die zweite Adresse des ge genannten Befehiswortes ist, wobei die Entwicklung weiterer Adressen unterbunden wird, c) bei Vorhandensein der dritten Bitkonfiguration wird ein Hilfswort zweiter Art (Fig. 2j),
    das ausserhalb der Programmfolge liegt, aus dem Speicher (10) gelesen, Dessen Adressenfeld für die weitere Entwicklung der Adresse eines Mehradressenbefehlswortes verwendet wird.
    9. Datenverarbeitungsanla ge nach Unteranspruch 7, dadurch gekennzeichnet, ,dlass das Hilfswort als zusätzlicher Operand Verwendung findet.
    10. Datenverarbeitungsanlage nach Patentanspruch, wobei indirekte Adressenworte mit einem indi rekten Ad,resslenfeld in bestimmten Speicherstellen des Speichers (10) und Befehlsworte mit einem indirekten Adressenfeld in einem Teil der Vorrichtung für die Entwicklung von Operandenadressen gespeichert sind, dadurch gekennzeichnet, dass das den Operationscode des Befehlswortes speichernde Register (I-313), das das Befehiswort oder das Hilfswort speichernde Register (F303, M-301), der Addierer (302),
    die Opera tionssteuereinheit (318) und die Zeitgebersteuereinheit (319) aufgrund des indirekten Adressenfeldes eines Befehlswortes (Fig. 2c, Bitplätze 0-14) die Übertragung eines indirekten Hilfswortes (Fig. 2g) aus dem Speicher (10) in den Teil der Vorrichtung für die Adressenent- wicklung zum Aufbau der indirekten Adresse steuert.
    11. Datenverarbeitungsanlage nach Unteranspruch 10, dadurch gekennzeichnet, dass die auf das Adres sensteuerfeld des indirekten Hilfswortes (Fig. 2g, Bit- plätze 15, 16, 17) ansprechende Prüfeinheit (492) und das erste Register (P-310) das indirekte Adressenfeld dekodieren und bei Vorliegen einer bestimmten Bitkonfiguration im Adressenfeld des indirekten Adre's:- senwortes modifizieren, worauf der Teil der Vorrichtung für die Adressenentwicklung diese neue Adresse zum endgültigen Adressenaufbau verarbeWitet.
    12. Datenverarbeitungsanlage nach Unteranspruch 11, dadurch gekennzeichnet, dass die Operatiomstetier- einheit (318) und idie Zeitgebersteuereinheit (319) a) auf einen ersten dekodierten Wert des indirekten Aldressenfeldes hin das Adressenfeid des indirekten Hilfswortes als Operandenadre'sse des Befehlswortes verwenden, b) in durch einen Zeitzähler vorgegebenen, be stimmten Zeitperioden auf einen zweiten dekodierten Wert des indirekten Adressenfeldes hin den Adressenteil des indire'kten Hilfiswortes als indirekte Adresse für weitere Daten verwenden,
    c) in Zusammenarbeit mit dem Register (I-313) für den Operationscode des Befehlswortes den Registern (M-301, E-303) für die Befehlsworte oder Hilfsworte auf das indirekte Adressenfeld ansprechen und die Übertragung eines anderen indirekten Hiifswortes aus dem Speicher (10) in den Teil der Vorrichtung für die Adressenentwicklung steuern.
    13. Datenverarbeitungsanlage nach Unteranspruch 11, dadurch gekennzeichnet, dass die Hilfsworte eine Bitkonfiguration (Fig. 2e, 2h, Bitplätze 21) aufweisen, auf die das erste Register (P-310) und die Prüfeinheit (492) ansprechen, um die vorgegebene Adresse als indirekte Adresse zu verwenden und mit dieser Adresse die Übertragung eines anderen indirekten Adressenwortes aus dem Speicher (10) an den genannten Teil der Vorrichtung für die Adressenentwicklung auslösen, und dass das besagte Register sowie ,die Prüfeinh,eit Diese Prüfvorgänge so lange fortlaufend wiederholen und weitere Übertragungen auslösen,
    bis die gesamte Bitkonfiguration des letzten übertragenen indirekten Hilfswortes nach der Dekodierung einen Wert zeigt, der anzeigt, dass die indirekte Adresse eine endgültige Adresse ist.
CH497266A 1965-04-06 1966-04-05 Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen CH504728A (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US446067A US3368204A (en) 1965-04-06 1965-04-06 Address development apparatus for multi-address instructions
US44819565A 1965-04-14 1965-04-14
US448194A US3366932A (en) 1965-04-14 1965-04-14 Address development apparatus for a data processing system
US448197A US3368206A (en) 1965-04-14 1965-04-14 Information shift apparatus in a data processing system
US448196A US3368205A (en) 1965-04-14 1965-04-14 Control apparatus in a data processing system
US44854065A 1965-04-15 1965-04-15
US448537A US3413609A (en) 1965-04-15 1965-04-15 Indirect addressing apparatus for a data processing system
US448541A US3370275A (en) 1965-04-15 1965-04-15 Apparatus for selective processing of information characters in a data processing system

Publications (1)

Publication Number Publication Date
CH504728A true CH504728A (de) 1971-03-15

Family

ID=27575440

Family Applications (4)

Application Number Title Priority Date Filing Date
CH487966A CH497749A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage mit einem Speicher mit adressiebaren Speicherplätzen
CH487766A CH468673A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage mit einer Zentraleinheit
CH487866A CH480690A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage
CH497266A CH504728A (de) 1965-04-06 1966-04-05 Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CH487966A CH497749A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage mit einem Speicher mit adressiebaren Speicherplätzen
CH487766A CH468673A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage mit einer Zentraleinheit
CH487866A CH480690A (de) 1965-04-06 1966-04-04 Datenverarbeitungsanlage

Country Status (4)

Country Link
US (2) US3487368A (de)
CH (4) CH497749A (de)
GB (4) GB1139181A (de)
NL (4) NL6604659A (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3701972A (en) * 1969-12-16 1972-10-31 Computer Retrieval Systems Inc Data processing system
US3798615A (en) * 1972-10-02 1974-03-19 Rca Corp Computer system with program-controlled program counters

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2943788A (en) * 1953-04-16 1960-07-05 Ncr Co Data analyzing apparatus
US2902675A (en) * 1953-07-28 1959-09-01 Underwood Corp Storage apparatus for typing control
NL193982A (de) * 1954-01-15
US3012723A (en) * 1955-01-12 1961-12-12 Hogan Lab Inc Electronic computer system
IT557030A (de) * 1955-08-01
US3161763A (en) * 1959-01-26 1964-12-15 Burroughs Corp Electronic digital computer with word field selection
NL255604A (de) * 1959-09-08
US3166668A (en) * 1960-03-24 1965-01-19 Ibm Computer program system
US3160857A (en) * 1960-03-24 1964-12-08 Ibm Data transfer control and check apparatus
US3071739A (en) * 1961-04-21 1963-01-01 Bell Telephone Labor Inc Digital phase equalizer, automatically operative, in accordance with time-inverted impulse response of the transmission circuit

Also Published As

Publication number Publication date
CH468673A (de) 1969-02-15
CH497749A (de) 1970-10-15
NL6604659A (de) 1966-10-07
US3483519A (en) 1969-12-09
NL6604661A (de) 1966-10-07
GB1139181A (en) 1969-01-08
NL6604658A (de) 1966-10-07
NL6604660A (de) 1966-10-07
CH480690A (de) 1969-10-31
GB1148081A (en) 1969-04-10
GB1137670A (en) 1968-12-27
GB1139675A (en) 1969-01-08
US3487368A (en) 1969-12-30

Similar Documents

Publication Publication Date Title
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2714805C2 (de)
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE1274825B (de) Speicherprogrammiertes Datenverarbeitungssystem zur Verarbeitung von Programmen anderer Datenverarbeitungssysteme
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE1524209B2 (de) Programmgesteuerte datenverarbeitungsanlage
DE1931966B2 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2036729A1 (de) Digital Datenverarbeiter
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2718110A1 (de) Datenverarbeitungseinheit
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE3121046C2 (de)
DE2245284A1 (de) Datenverarbeitungsanlage
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
EP0130269A2 (de) Speicherprogrammierbare Steuerung
DE1956460C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2835110A1 (de) Schneller echtzeit-rechneremulator
CH504728A (de) Datenverarbeitungsanlage mit einer Vorrichtung zum Entwickeln von Operandenadressen
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE2419836C3 (de) Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen

Legal Events

Date Code Title Description
PL Patent ceased