DE3043653C2 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE3043653C2
DE3043653C2 DE3043653A DE3043653A DE3043653C2 DE 3043653 C2 DE3043653 C2 DE 3043653C2 DE 3043653 A DE3043653 A DE 3043653A DE 3043653 A DE3043653 A DE 3043653A DE 3043653 C2 DE3043653 C2 DE 3043653C2
Authority
DE
Germany
Prior art keywords
data
operand
address
length
alignment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3043653A
Other languages
English (en)
Other versions
DE3043653A1 (de
Inventor
Mamoru Hatano Kanagawa Hinai
Kenichi Zama Kanagawa Wada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3043653A1 publication Critical patent/DE3043653A1/de
Application granted granted Critical
Publication of DE3043653C2 publication Critical patent/DE3043653C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage, bei der die Ausführung eines jeden Makrobefehls nach dem Pipeline-Prinzip, wie z. B. einen Digitalrechner, der Makrobefehle in überlappter Weise verarbeitet, in eine Anzahl von Stufen unterteilt wird, wie sie im Oberbegriff des Patentanspruches 1 näher bezeichnet ist. Insbesondere bezieht sich die Erfindung auf eine Datenverarbeitungsanlage, die so aufgebaut ist, daß sie das Ausrichten und Wählen von Daten ermöglicht.
Bei herkömmlichen Digitalrechnern wird ein anschließend auszuführender Makrobefehl aus einem Speicher ausgelesen, der Makrobefehle und Daten speichert; eine Adresse zur genauen Angabe von Daten, die bei der Ausführung eines bestimmten Makrobefehls verwendet werden sollen, nachstehend als Speicheroperand bezeichnet, wird aus dem Makrobefehl mittels einer Befehlseinheit erhalten; der entsprechende Speicheroperand wird aus dem Speicher auf der Basis der Speicheroperandenadresse ausgelesen, und der bestimmte Makrobefehl wird ausgeführt. In diesem Falle hat der Speicheroperand, der aus dem Speicher mittels eines Auslesevorganges ausgelesen wird, eine feste spezielle Länge für den Prozessor, z. B. 8 Byte. Ferner ist es herkömmliche Praxis, daß das Auslesen des Speicheroperanden aus dem Speicher nicht mit einem Speicheroperanden von 8 Byte erfolgen kann, wenn man an einer willkürlichen Adressenposition beginnt, vielmehr erfolgt dies Auslesen bei Blockdaten mit einer Länge von 8 Byte von einer vorgegebenen Grenzposition zwischen Blöcken von 8 Byte. In dem Falle, wo der auszulesende gewünschte Speicheroperand Daten umfaßt, die sich auf beiden Seiten der Grenzposition befinden, werden die beiden Auslese vorgänge, um aus dem Speicher 8 Byte mit einer kleineren Adresse als de.· speziellen Grenzposition und 8 Byte mit einer größeren Adresse als die spezielle Grenzposition auszulesen, auch dann durchgeführt, wenn der gewünschte Speicheroperand kurzer als 8 Byir ist. Danach werden die beiden 8-Byte-Daten unter Verwendung einer arithmetisch-logischen Einheit ausgerichtet, damit die gewünschten Daten von 8 Byte daraus ausgewählt werden können. Da auf diese Weise die herkömmliche Datenverarbeitungsanlage die Aus-
richtung der Daten und die Wahl der Daten mit der arithmetisch-logischen Einheit durchführt, benötigt sie eine lange Verarbeitungszeit. Dies führt zu einer Zunahme der Verarbeitungszeit eines Befehls. Um diesen Nachteil auszuräumen, sind bereits Datenverarbeitungsanlagen bekannt geworden, bei denen die Ausrichtung der Daten mit einer für diese Verwendung ausschließlich vorgesehenen Schaltung durchgefüht wird, die auch als Ausrichtungsschaltung bezeichnet wird und in der JP-OS 49-95546 (US-PS 38 58 183) und JP-OS 53-94133 beschrieben ist.
In der zuerst genannten Druckschrift werden Daten von 8 Byte, einschließlich der gewünschten Daten von 4 Byte, aus einem Speicher ausgelesen, die ausgelesenen 8-Byte-Daten unter Verwendung einer Datenausrichtungsschaitung ausgerichtet, und die gewünschten 4-Byte-Daten anschließend ausgewählt. Bei der zweiten genannten Literaturstelle werden Daten mit 16 Byte, einschließlich der gewünschten Daten mit einer Länge innerhalb von 8 Byte mittels einer Datenausrichtungsschaltung ausgerichtet, woraufhin die gewünschten Daten mit einer Länge innerhalb von 8 Byte ausgewählt werden.
Wenn die willkürliche Ausrichtung von Daten auf diese Weise mit einer Datenausrichtungsschaltung erfolgt, kann die Verarbeitungszeit eines Befehls verkürzt werden. Wird jedoch die Ausrichtung von Daten während der Ausführung von irgendeinem der verschiedenen Befehle durchgeführt, wird die Steuerschaltung für die Datenausrichtungsschaltung äußerst kompliziert. Insbesondere ändern sich der zeitliche Ablauf und der Vorgang, mit denen die Ausrichtung der Daten durchgeführt wird, in Abhängigkeit von individuellen oder einzelnen Befehlen. Dementsprechend muß die Steuerschaltung so aufgebaut sein, daß bei jedem Befehl die gewünschte Operation mit einer vorgegebenen Zeitsteuerung im Laufe der Ausführung des Befehls vorgenommen werden kann.
Zur Lösung dieses Problems hat man bereits an eine Technik gedacht, bei der die Ausrichtung der Daten unter Verwendung eines Mikrobefehls durchgeführt wird. Bei einer solchen Technik kann die Ausrichtung der Daten für sämtliche Makrobefehle mittels einer einfachen Einrichtung drrch die Verwendung von Mikrobefehlen durchgeführt werden. Wenn jedoch beabsichtigt ist, diese Technik tatsächlich auf einen großen Rechner anzuwenden, tritt das Problem auf, daß die Verarbeitungsgeschwindigkeit des Makrobefehls aufgrund der Verwendung von Mikrobefehlen abnimmt. Insbesondere bei großen Rechnern werden die entsprechenden Makrobefehle in überlappter Weise ausgeführt, und zwar mit dem sogenannnten Pipeüne-Steuersystem. Genauer gesagt, wird die Ausführung jedes Makrobefehls in eine Vielzahl von Stufen, z. B. 4 Stufen, unterteilt:
(1) D-Stufe zur Decodierung des Makrobefehls und Berechnung einer Operandenadresse, die für die Ausführung des Befehls erforderlich ist,
(2) Α-Stufe zur Umwandlung der berechneten Operandenadresse in eine physikalische Adresse,
(3) L-Stufe zum Auslesen eines entsprechenden Operanden aus einem Speicher unter Verwendung der umgewandelten physikalischen Operandenadresse und
(4) Ε-Stufe zur Ausführung einer Operation unter Verwendung des Operanden.
Jede der Stufen von der D-Stufe zur L-Stufe wird innerhalb eines Maschinenzyklus bearbeitet, und die Stufen jedes Makrobefehls werden parallel mit den unterschiedlichen Stufen der anderen Makrobefehle verarbeitet. Unter den verschiedenen Stufen wird die E-Stufe mit dem Mikrobefehl gesteuert. Andererseits werden die übrigen D-, A- und L-Stufen mit einer verdrahteten Logik zur ausschließlichen Verwendung gesteuert. Wenn dementsprechend die Steuerungstechnik der Ausrichtung unter Verwendung von Mikrobefehlen der
ίο oben beschriebenen Art bei einem herkömmlichen System eingeführt wird, müssen die Stufen-Steuerschaltungen für die D-, A- und L-Stufen drastisch geändert werden. Außerdem erfordern einige der Makrobefehle Speicheroperanden nicht nur in den L-Stufen, sondern auch in den Ε-Stufen. Bei der Verarbeitung von solchen Makrobefehlen wird dementsprechend, wenn die Ausrichtungssteuerung des in der Ε-Stufe ausgelesenen Speicheroperanden mittels einer verdrahteten Logik zur ausschließlichen Verwendung erfolgt, die entsprechende Schaltung hierfür kompliziert.
Auf diese Weise wird dann, wenn ein großer Rechner, der die Makrobefehle in überlappter Weise verarbeitet, mit der Datenausrichtungsschaltung versehen wird, das System unvermeidlicherweise kompliziert.
Aufgabe der Erfindung ist es, eine nach dem Pipelineprinzip arbeitende Datenverarbeitungsanlage anzugeben, die die Ausrichtung der Daten mit hoher Geschwindigkeit ausführt und die dazu eine Befehlseinheit aufweist, die die der letzten Stufe vorangehenden Stufen steuert, die einen Mikrobefehls-Steuerspeicher für die Steuerung der letzten Stufe besitzt, und die während der vorgegebenen Stufe wie auch während der letzten Stufe eine Ausrichtung der Daten mit einer einfachen Steuerschaltung ausführt.
Diese Aufgabe wird mit einer Datenverarbeitungsanlage nach dem Oberbegriff des Patentanspruches 1 erfindungsgemäß mit den im kennzeichnenden Teil dieses Anspruches angegebenen Merkmalen gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben.
Die Erfindung wird nachstehend anhand der Beschreibung von Ausführungsbeispielen und unter Bezugnahme auf die beiliegende Zeichnung näher erläutert. Die Zeichnung zeigt in
Fig. 1 ein Blockschaltbild einer erfindungsgemäßen Datenverarbeitungsanlage;
F i g. 2 ein Blockschaltbild einer Befehlseinheit zur Verwendung bei der Datenverarbeitungsanlage gemäß Fig.l;
F i g. 3 ein Blockschaltbild einer ersten Ausrichtungssteuerung für die Datenverarbeitungsanlage nach Fig. 1;
F i g. 4 ein Blockschaltbild einer Adressensteuerung für eine Datenverarbeitungsanlage nach F i g. 1;
F i g. 5 ein Diagramm zur Erläuterung der Wirkungsweise einer Adressenänderungsschaltung für die Anordnung gemäß F i g. 4;
F i g. 6 ein Blockschaltbild einer Entscheidungsschaltung für die Abrufdatenlänge für eine Anordnung gemaßFig.3;
F i g. 7 ein Blockschaltbild einer Entscheidungsschaltung für die Verschiebungs-Byte-Zahl für eine Anordnung gemäß F i g. 3;
F i g. 8 ein Blockschaltbild einer Maskenmuster-Ent-Scheidungsschaltung für eine Anordnung gemäß F i g. 3; F i g. 9 ein Diagramm zur Erläuterung der Ausgangssignale der Schaltung nach F i g. 8;
F i g. 10 ein Diagramm zur Erläuterung der Operatio-
nen der Wähler bei den Schaltungen gemäß F i g. 6 bis 8;
Fig. 11 ein Blockschaltbild einet Operandensteuerung für eine Datenverarbeitungsanlage nach Fig. 1;
Fig. 12 ein Diagramm zur Erläuterung der Anordnung eines Steuerregisters für eine Datenverarbeitungsanlage nach F i g. 1;
Fig. 13 ein Blockschaltbild einer zweiten Ausrichtungssteuerung für eine Datenverarbeitungsanlage nach Fig. 1;
F i g. 14 ein Blockschaltbild einer Entscheidungsschaltung für die Abrufdatenlänge für eine Anordnung gemäß F ig. 13;
F i g. 15 ein Blockschaltbild einer Entscheidungsschaltung für die Verschiebungs-Byte-Anzahl für eine Anordnung gemäß Fig. 13;
F i g. 16 ein Blockschaltbild einer Maskenmuster-Entscheidungsschaltung für eine Anordnung gemäß Fig. 13;
Fig. 17 ein Diagramm zur Erläuterung der Wirkungsweise der Schaltung gemäß Fig. 13;und in
Fig. 18 ein Diagramm zur Erläuterung der Wirkungsweise eines Wählers für eine Schaltung gemäß Fig. 2.
Die vorliegende Ausführungsform läßt sich bei Elektronenrechnern vom System/370 der International Business Machines Corporation verwenden. Die Wirkungsweise dieses Systems ist in einer Veröffentlichung mit dem Titel »IBM System/370 Principles of Operation« erläutert. Dementsprechend ist die Erläuterung der Wirkungsweise des genannten Systems weggelassen, wenn sie nicht speziell erforderlich ist, und die bei dem System verwendeten Ausdrücke werden ohne nähere Erläuterung angewandt, wenn es sich nicht um spezielle Fälle handelt.
Die Befehle, die bei der erfindungsgemäßen Datenverarbeitungsanlage verwendet werden, werden ganz allgemein in Überlappungs-Befehle und Nicht-Überlappungs-Befehle eingeteilt Beide Befehlsarten stimmen insofern überein, als jeder Befehl in vier Stufen ausgeführt wird, jedoch unterscheiden sich die Befehle darin, daß jede Stufe des zuerst genannten Befehls in einem Maschinenzyklus ausgeführt werden kann, während die Ε-Stufe des zuletzt genannten Befehls mehr als einen Maschinenzyklus erfordert. Unter den Überlappungsbefehlen rufen einige Speicheroperanden in einem Pufferspeicher 40 oder Hauptspeicher 10 in ihren A-Stufen ab, während die anderen andere Operanden abrufen. Die Erfindung besteht insbesondere in der Schaltungstechnik hinsichtlich des Abrufens von Speicheroperanden, während die Schaltungen zum Abrufen der anderen Operanden die gleichen wie beim Stande der Technik sind. Dementsprechend werden im folgenden die Schaltungen hinsichtlich der Ausführung von Makrobefehlen, die andere Operanden als die Speicheroperanden abrufen, der Übersichtlichkeit halber in der Darstellung und Beschreibung weggelassen. Im folgenden werden diejenigen Schaltungen anhand der Zeichnung erläutert, die relevant sind für zwei Befehle, nämlich einen Überlappungsbefehl, der das Abrufen des Speicheroperanden nur in der Α-Stufe erfordert, und einen Nicht-Überlappungsbefehl, der das Abrufen des Speicheroperanden sowohl in der Α-Stufe als auch in der Ε-Stufe erforderlich macht
Ein Beispiel für ersteren ist ein Ladebefehl, während Beispiele für letzteren Befehle mit Speicher-zu-Speicher-Format sind, wie z. B. ein Befehl zur Übertragung von Zeichenfolgen und Dezimalbefehle zum Addieren oder Subtrahieren von Dezimalbefehlen.
Fig. 1 zeigt ein Blockschaltbild der erfindungsgemäßen Datenverarbeitungsanlage. Die Datenverarbeitungsanlage weist folgende Baugruppen auf: Einen Hauptspeicher 10 und einen Pufferspeicher 40, die eine Vielzahl von Makrobefehlen und Daten speichern, eine Befehlseinheit 20' zur Steuerung der Decodier- und Ausführstufen des Makrobefehls, eine Adressensteuerung 30 zur Umwandlung einer virtuellen Adresse aus der Befehlseinheit 20' in eine reale Adresse, einen Zyklusschieber 50 zur Verschiebung eines Ausgangssignales des Pufferspeichers 40 bei jedem Byte nach links, eine Operandensteuerung 60 zum Maskieren eines Ausgangssignals des Zyklusschiebers 50, eine Arithmetik-Logik-Einheit 70, einen Steuerspeicher 80, der Mikrobefehle zur Steuerung der Ausführung der Makrobefehle speichert, zwei Ausrichtungssteuerungen 90 und 90' zur Steuerung der Ausrichtung der aus dem Pufferspeicher 40 ausgelesenen Daten, und einen Wähler 100 zum Wählen der Ausgangssignale dieser Ausrichtungssteuerungen.
Bei der Anordnung nach F i g. 1 bestehen wesentliche Merkmale der erfindungsgemäßen Datenverarbeitungsanlage darin, daß dei Ausrichtungssteuerung 90' und der Wähler 100 vorgesehen sind und daß in Abhängigkeit von den Ausführungsstufen der Makrobefehle die Ausrichtungssteuerungen 90 und 90' umgeschaltet und verwendet werden, während die Befehlseinheit 20' so aufgebaut ist, daß sie eine Überlappungsverarbeitung der auszuführenden Befehle ermöglicht.
Die Ausrichtungssteuerungen 90 und 90' werden verwendet, um die in der L-Stufe bzw. Ε-Stufe ausgelesenen Daten auszurichten und zu wählen.
Bevor eine detaillierte Erläuterung zu der erfindungsgemäßen Datenverarbeitungsanlage erfolgt, soll der Hauptgedanke der Wirkungsweise beschrieben werden. Wie nachstehend erläutert, wird eine Vielzahl von aus dem Pufferspeicher 40 ausgelesenen Makrobefehlen über den Zyklusschieber 50 zur Befehlseinheit 20' übertragen.
Diese Vielzahl von Makrobefehlen wird in überlappter Weise von der Befehlseinheit 20' verarbeitet, wenn es sich nicht um Nicht-Überlappungsbefehle handelt. Im einzelnen geht es dabei um folgendes: Nimmt man an, daß die D-, A-, L- und Ε-Stufen des ersten Makrobefehls jeweils in ersten, zweiten, dritten und vierten Maschinenzyklen arbeiten, dann arbeiten die D- bis E-Stufen des zweiten Makrobefehls im Anschluß an den ersten Makrobefehl jeweils in den zweiten bis fünften Maschinenzyklen, und die D- bis Ε-Stufen des dritten Makrobefehls im Anschluß an den zweiten Makrobefehl arbeiten jeweils in den dritten bis sechsten Maschinenzyklen. In gleicher Weise werden die anschließenden Makrobefehle in überlappter Weise' verarbeitet Wenn jedoch der erste Makrobefehl ein Nicht-Überlappungsbefehl ist, wird der Start der D-Stufe des anschließenden zweiten Makrobefehls unterbrochen, bis die Ε-Stufe des ersten Makrobefehls endet
Bei der Ausführung von Nicht-Überlappungsbefehlen sind zwei Speicheroperandenadressen betroffen.
Hinsichtlich der Verarbeitung jedes Operanden werden die D-, A-, L- und Ε-Stufen, wie oben dargelegt durchlaufen. Genauer gesagt: Hinsichtlich eines Operanden, der die Ausführung des speziellen Befehls betrifft, werden die D-, A- und L-Stufen in den entsprechenden Maschinenzyklen durchlaufen, wobei ein Zyklus für eine Stufe gilt und parallel mit ihnen und mit jeder Verzögerung von einem Maschinenzyklus werden die D-, A-, L- und Ε-Stufen hinsichtlich eines anderen Operanden, der
sich auf die Ausführung des Befehls bezieht, ausgeführt. Das bedeutet, der Nicht-Überlappungsbefehl hat die beiden ersten und zweiten D-Stufen, die beiden ersten und zweiten Α-Stufen, die beiden ersten und zweiten L-Stufen und die eine E-Stufe.
In dem Falle, wo in der Α-Stufe jedes Makrobefehls ein Speicheroperand in den Pufferspeicher 40 abgerufen wird, wird die virtuelle Adresse dieses Operanden über eine Leitung 20Λ an die Adressensteuerung 30 übertragen. Der Pufferspeicher 40 besteht aus zwei Bereichen 42 und 44. Die Adressensteuerung 30 wandelt die virtuelle Adresse von der Befehlseinheit 20' in physikalische Adressen um und liest gleichzeitig 8-Byte-Operanden zur Bildung eines Operanden von kontinuierlichen 16 Byte aus den entsprechenden Bereichen 42 und 44 des Pufferspeichers 40 aus. Der aus dem Pufferspeicher 40 ausgeiesene Operand mit 16 Byte wird mit dem Zyklusschieber 50 um eine gewünschte Anzahl von Bytes nach links verschoben, um die vordere Position des Operanden zu steuern. Danach werden diejenigen Byte-Positionen im Ausgangsiignal des Zyklusschiebers 50, die andere als die Byte-Positionen einschließlich eines gewünschten Operanden sind, in der Operandensteuerung 60 maskiert oder ausgeblendet, woraufhin der gewünschte Operand der Arithmetik-Logik-Einheit 70 zugeführt wird.
Während die in der Α-Stufe entwickelte Speicheroperanden-Abrufanforderung in der oben angegebenen Weise verarbeitet wird, werden die Adressensteuerung 30, der Zyklusschieber 50 und die Operandensteuerung 60 von der Ausrichtungssteuerung 90' gesteuert, welche vom Wähler 100 gewählt ist.
In dem Falle, wo der zu verarbeitende Makrobefehl ein Befehl mit dem sogenannten Speicher-zu-Speicher-Format ist, erfolgt die Speicheroperanden-Abrufanforderung nicht nur in der Α-Stufe, sondern auch in der Ε-Stufe. Die Verarbeitung der Speicheroperanden-Abrufanforderung, die in der Α-Stufe entwickelt worden ist, wird von der ersten Ausrichtungssteuerung 90' wie im Falle des Überlappungsbefehles gesteuert.
Wenn im Gegensatz dazu die in der Ε-Stufe aufgetretene Speicheroperanden-Abrufanforderung zu verarbeiten ist, wählt der Wähler 100 die zweite Ausrichtungssteuerung 90, welche die Adressensteuerung 30, den Zyklusschieber 50 und die Operandensteuerung 60 steuert.
Auf diese Weise wird der Speicheroperandsnabruf in der Α-Stufe von der ersten Ausrichtungssteuerung 90' gesteuert Da diese Ausrichtungssteuerung von der Befehlseinheit 20' in Form einer verdrahteten Logikschaltung gesteuert ist, wird der Speicheroperandenabruf mit hoher Geschwindigkeit verarbeitet Dementsprechend ist eine Überlappungsverarbeitung mit anderen Befehlen möglich.
Andererseits erfolgt der Speicheroperandenabruf in der Ε-Stufe im Hinblick auf den Makrobefehl, der die Speicheroperandenabrufe sowohl in der Α-Stufe als auch in der Ε-Stufe erfordert, durch die zweite Ausrichtungssteuerung 90, die vom Makrobefehl gesteuert wird, und die zweite Ausrichtungssteuerung 90 kann mit einer einfachen Schaltung realisiert werden.
Die Datenverarbeitungsanlage soll nachstehend im einzelnen erläutert werden.
Bei der Anordnung nach F i g. 1 überträgt die Befehlseinheit 20' eine virtuelle Adresse von 32 Bits, um einen anschließend vom Pufferspeicher 40 auszuführenden Makrobefehl auszulesen, aus einer Befehlsabrufsteuerung 214 (vgl. F i g. 2) über die Leitung 20/4 zur Adressensteuerung 30. In Abhängigkeit von der virtuellen Adresse liefert die Adressensteuerung 30 eine physikalische Adresse von 32 Bits für den Pufferspeicher 40 auf einer Leitung 30Λ oder 30Ä Der Pufferspeicher 40 besteht aus den beiden ersten und zweiten Bänken 42 und 44. Die ersten und zweiten Bänke 42 und 44 liefern gespeicherte Information, jeweils mit einer Länge von 8 Byte, auf Leitungen 42/4 und 42B in Abhängigkeit von den physikalischen Adressen auf den Leitungen 30/4
ίο bzw. 30ß. In dem Falle, wo der auszulesende Makrobefehl im ersten Bereich 42 des Pufferspeichers 40 gespeichert ist, überträgt der Zyklusschieber 50 mit einer Länge von 16 Byte den vom ersten Bereich 42 gelieferten Makrobefehl über eine Leitung 50/4 zur Befehlseinheit, ohne irgendeine Verschiebungsoperation vorzunehmen.
In dem Falle, wo der auszulesende Makrobefehl in der zweiten Bank 44 gespeichert ist, verschiebt der Zyklusschieber 50 den von der Bank 44 gelieferten Makrobefehl um einen Betrag von 8 Byte nach links und überträgt ihn dann über die Leitung 50Λ zur Befehlseinheit 20'. Die Verschiebungsgröße des Zyklusschiebers 50 beim Auslesen des Makrobefehls wird von der Befehlseinheit 20' über eine Leitung 28Λ der ersten Ausrich- tungssteuerung 90' übermittelt.
Wie in F i g. 3 dargestellt, speichert die erste Ausrichtungssteuerung 90' die Verschiebungsgröße in einem Register 94' für die Verschiebungsbyteanzahl, um die Verschiebungsgröße abzuspeichern und versorgt den Zyklusschieber 50 mit einem Steuersignal, um eine entsprechende Verschiebungsoperation über eine Leitung 90'ß mittels einer Verschiebungssteuerschaltung 95' vorzunehmen.
Wenn der vorgegebene Makrobefehl nicht im Pufferspeicher 40 gespeichert ist, wird der spezielle Makrobefehl zum Pufferspeicher 40 über eine Leitung 10/4 vom Hauptspeicher 10 mit einer Kapazität von 4 Megabyte übertragen, woraufhin die gleiche Verarbeitung wie oben durchgeführt wird. Sämtliche Adressen für den Zugriff zum Hauptspeicher 10 werden über die Ausgangsleitungen 30/4 bis 30C der Adressensteuerung 30 geliefert. Der Einfachheit halber sind die zum Hauptspeicher führenden Adressenleitungen in F i g. 1 weggelassen. Auf diese Weise wird die Vielzahl von Makrobefehlen aus dem Pufferspeicher 40 ausgelesen. Bei der Anordnung gemäß F i g. 2 wird die Vielzahl von aus dem Pufferspeicher 40 ausgelesenen Makrobefehlen in einem Befehlspuffer 200 gespeichert. Von diesen Makrobefehlen wird ein auszuführender Makrobefehl in einem Befehlsregister 210 mit einer Länge von 4 Byte unter der Steuerung einer bekannten Befehlsstufensteuerung 212 gespeichert Die D-Stufe jedes Makrobefehls startet, wenn der Befehl in das Befehlsregister 210 eingegeben wird.
Ein anderer Befehl als der Speicher-zu-Speicher- Befehl hat eine Länge von 2 Byte oder 4 Byte. Der Speicher-zu-Speicher-Befehl hat eine Länge von 6 Byte. Beim Eingeben des Speicher-zu-Speicher-Befehls in das Befehlsregister 210 werden nur 4 Byte auf der signifikanteren Seite zuerst gesetzt Das Befehlsregister 210 hat eine Länge von 4 Byte. Innerhalb dieser Länge ist ein 1-Byte-Feld auf der signifikantesten Seite das Feld eines Betriebscodes. Hinsichtlich anderer Befehle als denen mit Speicher-zu-Speicher-Format sind Daten zur Zuordnung einer Operandenadresse im übrigen 3-Byte-FeId des Befehlsregisters 210 gespeichert Hinsichtlich der Befehle im Speicher-zu-Speicher-Format sind Daten mit der Länge eines Operanden in einem 2-Byte-
Feld auf der signifikanteren Seite gespeichert. Das verbleibende 2-Byte-Feld ist ein Feld zur Zuordnung einer Operandenadresse.
In der D-Stufe des Makrobefehls decodiert ein Decodierer 230 den Betriebscode, um zu wissen, ob dieser Makrobefehl ein Nicht-Überlappungsbefehl ist oder nicht.
Wenn als Ergebnis der Decodierung der Makrobefehl sich als Nicht-Überlappungsbefehl (Speicher-zu-Speicher-Befehl) herausstellt, setzt ein Ausgangssignal »1« vom Decodierer 230 ein RS-Flip-Flop 238. In Abhängigkeit von einem gesetzten Ausgangssignal des Flip-Flops 238 speichert die Befehlsstufensteuerung 212 die übrigen 2 Byte des Speicher-zu-Speicher-Befehls (SS-Befehls) in die Position von 2 Byte auf der weniger signifikanten Seite des Befehlsregisters 2JO beim nächsten Maschinenzyklus ein. Somit wird der SS-Befehl verarbeitet, als ob es sich um zwei Befehle von 4 Byte handelte. Während der Ausführung des SS-Befehls werden die anschließenden Makrobefehle an ihrer Übermittlung vom Befehlspuffer 200 zum Befehlsregister 210 gehindert und ihre D-Stufen nicht gestartet. Die Register 232 und 234 dienen dazu, das Ausgangssignal des Decodierers 230 sequentiell bei jedem Maschinenzyklus zu verschieben. Die Register 232 und 234 halten dementsprechend das Ausgangssignal des Decodieren 230 in den vorher im Befehlsregister 210 gespeicherten A- bzw. L-Stufen des Makrobefehls. Ein Ausgangssignal »1« vom Register 234 wird verwendet, um ein Flip-Flop 239 zu setzen. Ein Ausgangssignal des Flip-Flops 239 wird in der Ε-Stufe jedes Befehls in der nachstehend beschriebenen Weise verwendet
Wenn als Ergebnis der Decodierung im Decodierer 230 festgestellt wird, daß der Makrobefehl im Befehlsregister 210 kein Nicht-Überlappungsbefehl ist, wird ein Signal »0« vom Decodierer 230 geliefert, und das Flip-Flop 238 wird nicht gesetzt. Dementsprechend wird beim nächsten Maschinenzyklus der anschließende Makrobefehl vom Befehlspuffer 200 unter der Steuerung der Befehlsstufensteuerung 212 in das Befehlsregister 210 eingegeben. Anschließend werden die Makrobefehle in gleicher Weise und nacheinander in Intervallen von einem Maschinenzyklus in das Befehlsregister 210 eingespeichert.
Ein Befehlsschlangenregister 250 ist ein Register, das zum Speichern von 2 Byte der ersten Hälfte von jedem der Befehle zu speichern, die nacheinander im Befehlsregister 210 gespeichert werden, und zwar mit einer Verzögerung von einem Maschinenzyklus. Das Befehlsschlangenregister 250 liefert dementsprechend zwei Byte auf der signifikanteren Seite des vorher im Befehlsregister 210 gespeicherten Makrobefehls bei der A-Stufe dieses Makrobefehls. In einem Ausgangssignal des Befehlsschlangenregisters 250 ist 1 Byte auf der signifikanteren Seite ein Befehlscode, der in ein Steuerspeicher-Adressenregister 810 (vgl. F i g. 1) innerhalb des Steuerspeichers 80 (vgl Fig. 1) in der L-Stufe eingespeichert und in der Ε-Stufe verwendet wird.
Im Ausgangssignal des Befehlsschlangenregisters 250 ist 1 Byte auf der weniger signifikanten Seite ein Längenfeld hinsichtlich der Datenlänge eines Operanden, wie er für die Ausführung von Makrobefehlen im SS-Format verwendet wird.
Arithmetikschaltungen 252 und 226 sowie Längenfeldregister 254 und 220 sind Schaltungen, die in Abhängigkeit vom Längenfeld arbeiten, das vom Befehlsschlangenregister 250 geliefert wird. Das Längenfeld, das vom Befehlsschlangenregister 250 in der A-Stufe jedes Befehls geliefert wird, geht durch die Arithmetikschaltung 252 hindurch, um in den Längenfeldregistern 254 und 220 bei den L- bzw. Ε-Stufen des Befehls gespeichert zu werden. Die Einzelheiten der Wirkungsweise der aus diesen Bestandteilen bestehenden Schaltungsanordnung werden nachstehend näher erläutert.
Andererseits werden in der D-Stufe des im Befehlsregister 210 gespeicherten Befehls die zweiten bis vierten Bytes des speziellen Befehls einer bekannten Operandenadresse-Rechenschaltung 216 zugeführt, die eine virtuelle Adresse eines Speicheroperanden bestehend aus 24 Bits liefert.
Wenn diese Adresse die Adresse eines aus dem Pufferspeicher 40 auszulesenden Operanden angibt, wird sie in ein Operandenadressenregister 260 eingespeichert. Wenn diese Adresse eine Adresse angibt, um einen Operanden in den Pufferspeicher 40 einzuschreiben, wird sie in ein Operandenadressenregister 270 eingespeichert. Außerdem wird, wenn der Befehl das Auslesen eines zweiten Operanden erfordert, die Adresse in ein Operandenadressenregister 240 eingespeichert. Hierbei ist die Adresse, die von der Operandenadressen-Rechenschaltung geliefert wird, die vordere Adresse des Operanden.
Hierbei bezeichnet der Ausdruck »vordere Adresse des Operanden« entweder einen kleineren Wert, nachstehend als »ganz linke Adresse« bezeichnet, oder einen größeren Wert, nachstehend als »ganz rechte Adresse« bezeichnet, zwischen den Adressen an beiden Enden des Operanden zur Vorgabe des speziellen Operanden. Welchen dieser Adressen die vordere Adresse entspricht, wird in Abhängigkeit von den Befehlen bestimmt, und die Dezimaloperationsbefehle entsprechen letzterem und die anderen SS-Befehle ersterem.
Der Inhalt des Operandenadressenregisters 270 wird nacheinander bei jedem Maschinenzyklus in die Operandenadresser.register 272 und 274 weitergeschoben. Außerdem wird der Inhalt des Operandenadressenregisters 274 anschließend mit einer Arithmetikschaltung 276 überprüft, wie es nachstehend näher erläutert ist.
Auch der Inhalt des Operandenadressenregisters 260 wird mit einer Arithmetikschaltung 262 überprüft und anschließend bei jedem Maschinenzyklus in die Operandenadressenregister 264 und 266 weitergeschoben. Der Inhalt des Operandenadressenregisters 266 wird anschließend mit einer Arithmetikschaltung 268 überprüft Auch der Inhalt des Operandenadressenregisters 240 wird mit einer Arithmetikschaltung 242 überprüft und anschließend in die Operandenadressenregister 244 und 246 weitergeschoben. Der Inhalt des Operandenadressenregisters 246 wird anschließend mit ei-
a_:«i »:i ι i» >^o .n.i ^r*
nci m iiiuiicuiiaciiaiiuiig ^-to uuci μι Ul u
Wie in Fig. 18 dargestellt, wählt ein Wähler 282 die Operandenadresse von irgendeinem der Operandenadressenregister 240,246, 260, 266 und 274 und schickt sie der Adressensteuerung 30 über die Leitung 20Λ.
Ein Wähler 284 wählt die unteren 4 Bits der Operandenadresse in den Operandenadressenregistern 266 und 260 und schickt sie zu den Ausrichtungssteuerungen 90 und 90'.
Ein Wähler 280 wählt die unteren 4 Bits der Operandenadresse in den Operandenadressenregistern 240 und 246 und schickt sie zu den Ausrichtungssteuerungen 90 und 90'.
Wie in F i g. 3 dargestellt, decodiert in der ersten Ausrichtungssteuerung 90' ein Decodierer 98' den Betriebscode, der über eine Leitung 21A vom Befehlsregister 210 innerhalb der Befehlseinheit 20' anglegt wird, und
unterscheidet die Richtung der Ausrichtung des vom Wähler 282 gelieferten Operanden, & h, ob die Adresse dieses Operanden die ganz linke Adresse oder die ganz rechte Adresse ist. Ob die Operandenadresse die ganz linke Adresse angibt oder nicht, wird in Abhängigkeit von dem Makrobefehl vorher bestimmt, so daß die gerannte Diskriminierung ermöglicht wird, indem man den Betriebscode des speziellen Makrobefehls decodiert. In dem Falle, wo die Operandenadresse die ganz rechte Adresse angibt, wie z. B. bei dem Dezimaloperationsbefehl, liefert der Decodierer 98' ein Signal »1«, während er in jedem anderen Falle ein Signal »0« liefert Das gelieferte Ausgangssignal wird in ein Register 99' für die Richtung der Ausrichtung eingespeichert. Ein Ausgangssignal vom Register 99' wird an die Adressensieuerung 30 (vgl Fig. 1) über eine Leitung 90Ά den Wähler 100 und eine Leitung 90"A in der L-Stufe jedes Befehls geschickt
In gleicher Weise wird die Richtung der Ausrichtung des Speicheroperanden, die in der Ε-Stufe jedes Befehls erforderlich ist von der Ausrichtungssteuerung 90 an die Adressensteuerung 30 über eine Leitung 90/4 den Wähler 100 und die Leitung WA geschickt. Einzelheiten der Adressensteuerung 30 sind in F i g. 4 dargestellt
Die virtuelle Adresse von 32 Bits des Operanden, die über die Leitung 20A von der Befehlseinheit 20' angelegt wird, wird in die entsprechende reale Adresse des Operanden mit 32 Bits mit einer bekannten Adressenumwandlungsschaltung 32 umgewandelt und die reale Adresse wird über eine Leitung 32A an Quelladressenregister 34 und 36 angelegt. Andererseits wird das vierte Bit der realen Adresse des Operanden, gerechnet vom geringstwertigen Bit über eine Leitung 38ß einer Adresscnänderungsschaltung 38 zugeführt. In Abhängigkeit von dem Signal auf der Leitung 90" A, das von der Ausrichtungssteuerung 90' oder 90 angelegt wird, und dem Signal auf der Leitung 32ß, das von der Adressenumwandlungsschaltung 32 angelegt wird, liefert die Adressenänderungsschaltung 38 binäre Daten von 4 Bits, die Werte von »0«, » + 8« und » — 8« auf den Leitungen 38,4 und 38ß auf der Basis der in F i g. 5 dargestellten Zusammenhänge und addiert diese Daten zu den bereits in den Quelladressenregistern 34 und 36 gespeicherten Realadressen des Operanden. Da eine konkrete Schaltungsanordnung der Adressenänderungsschaltung 38 ohne weiteres vom Fachmann unter Bezugsnahme auf Fig.5 realisiert werden kann, erscheint eine nähere Erläuterung entbehrlich. Um die Additionen vorzunehmen, sind die Quelladressenregi ster 34 und 36 aus Zählern oder aus Einheiten mit Addierern aufgebaut.
Die Quelladressenregister 34 und 36 werden verwendet, um Daten mit 16 Byte in Adressenbereichen, die jeweils Daten von 8 Byte enthalten, nacheinander aus der ersten bzw. zweiten Bank 42 bzw. 44 auszulesen.
Die Wirkungsweise der Adressenänderungsschaltung 38 hat folgende Bedeutung. Die Adressierungen der ersten und zweiten Bank 42 und 44 des Pufferspeichers 40 erfolgt abwechselnd mit 8 Byte. Genauer gesagt, in den Fällen, wo die Adressen 0 bis 7, 16 bis 23,32 bis 39,... in Dezimalschreibweise sind, werden die diesen Adressen entsprechenden Daten in der ersten Bank 42 eingespeichert, und in den Fällen, wo die Adressen 8 bis 15,24 bis 31,40 bis 47,... in Dezimalschreibweise sind, werden die diesen Adressen entsprechenden Daten in der zweiten Bank 44 eingespeichert. Wenn dementsprechend die Adressen im Binärsystem angegeben sind, werden die Daten entsprechend den Adressen, bei denen jeweils das vierte Sit gerechnet vom geringstwertigen Bit auf der Leitung 325 den Wert »0« oder »1« hat in der ersten Bank 42 bzw. zweiten Bank 44 gespeichert
Infolgedessen gibt in dem Falle, wo das Signal auf der Leitung 90" A den Wert »0« hat, die Adresse auf der Leitung 32Λ die ganz Unke Adresse der auszulesenden Daten an; damit wird (i), wenn das Signal auf der Leitung 32ß den Wert »0« hut das Datensignal »0« auf der Leitung 3SA übertragen, um die Adresse im Quelladressenregister 34 bei der Adresse auf der Leitung 32A zu halten, und gleichzeitig wird das Datensignal »8« auf der Leitung 385 geliefert, um die Adresse im Quelladressenregister 36 auf einen Wert zu bringen, bei dem »8« zu der Adresse auf der Leitung 32A hinzuaddiert wird.
Wenn andererseits (U) das Signal auf der Leitung 32β den Wert »1« hat, wird das Datensignal »0« auf der Leitung 383 geliefert um die Adresse im Quelladressenregister 36 bei der Adresse auf der Leitung 32/4 zu halten, und gleichzeitig wird das Datensignal »8« auf der Leitung 32A geliefert um die Adresse im Quelladressenregister 34 auf einen Wert zu bringen, bei dem »8« zur Adresse auf der Leitung 32A hinzuaddiert ist Somit werden in den Quelladressenregistern 34 und 36 die Adressen gespeichert um jeweils aus der ersten und zweiten Bank 4 2 und 44 des Pufferspeichers 40 die Daten auszulesen, die jeweils 8 Byte aufweisen, um Daten von aufeinanderfolgenden 16 Byte einschließlich der Daten von 8 Byte zu bilden, deren ganz linke Adresse die Adresse auf der Leitung 32Λ ist.
Im Gegensatz dazu gibt in dem Falle, wo das Signal auf der Leitung 90"Λ den Wert »1« hat, die Adresse der auszulesenden Daten an, und wenn somit (i) das Signal auf der Leitung 323den Wert »0« hat, wird das Datensignal »0« auf der Leitung 38/4 geliefert, um die Adresse im Queltedressenregister 34 bei der Adresse auf der Leitung 32A zu halten, und gleichzeitig wird das Datensignal » — 8« auf der Leitung 38ß geliefert, um die Adresse im Quelladressenregister 36 auf einen Wert zu bringen, bei dem » — 8« zu Adresse auf der Leitung 32Λ hinzuaddiert wird.
Wenn andererseits (H) das Signal auf der Leitung 32ß den Wert »1« hat, wird das Datensignal »0« auf der Leitung 38ß geliefert, um die Adresse im Quelladressenregister 36 bei der Adresse auf der Leitung 32/4 zu halten, und gleichzeitig wird das Datensignal »-8« auf der Leitung 38/4 geliefert, um die Adresse im Quelladressenregister 34 auf einen Wert zu bringen, bei dem » — 8« zur Adresse auf der Leitung 32Λ hinzuaddiert wird. Somit werden in den Quelladresse.iregistern 34 und 36 die Adressen gespeichert, um jeweils aus der ersten und zweiten Bank 42 und 44 des Pufferspeichers 40 die Daten auszulesen, die jeweils aus 8 Byte bestehen, um Daten von aufeinanderfolgenden 16 Byte einschließlich von 8 Byte zu bilden, deren ganz rechte Adresse die Adresse auf der Leitung 32/4 ist.
Wie sich aus F i g. 1 entnehmen läßt, werden die Ausgangssignale von diesen Quelladressenregistern 34 und 36 jeweils der ersten und zweiten Bank 42 und 44 des Pufferspeicher:; 40 über die Leitungen 30/4 und 30ß zugeführt, um die Daten mit einer Gesamtzahl von 16 Byte daraus auszulesen. Auf diese Weise werden die: Daten mit 16 Byte einschließlich der Daten mit 8 Byte, beginnend mit der realen Adresse des Operanden, vom Pufferspeicher 40 durch einen Auslesevorgang geliefert.
Wenn die gewünschten Daten nicht im Pufferspeicher 40 gespeichert sind, werden sie vom Hauptspeicher 10 zum Pufferspeicher 40 übertragen, und anschließend wird der Auslesevorgang wie oben beschrieben durch-
geführt
Die Daten mit 16 Byte werden über die Leitungen 42Λ und 44Λ dem Zyklusschieber zugeführt Der Zyklusschieber 50 nimmt einen zyklische Verschiebung der angelegten Daten Byte Mr Byte nach links um eine Anzahl von Bytes vor, die durch ein Verschiebungssteuersignal vorgegeben wird, welches über eine Leitung WB vom Wähler 100 zugeführt wird. Die Ausrichtungssteuerungen 90' und 90 versorgen die Leitungen 90'B und 9OB mit Verschiebungssteuersignalen zur Verarbeitung der Speicheroperanden-Abrufanforderungen, die in den A- bzw. Ε-Stufen erzeugt werden. Der Wähler 100 wählt eine dieser Leitungen 90'ß und 9OB. In der ersten Ausrichtungssteuerung 90' wird das Verschiebungssteuersignal von der Verschiebungssteuerschaltung 95' in F i g. 3 vorgegeben.
Diese Verschiebungssteuerschaltung 95' empfängt ein Ausgangssignal von einer Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl über ein Register 94' für die Verschiebungsbyteanzahl und liefert das entsprechende Verschiebungssteuersignal. Die Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl empfängt die unteren 4 Bits der Operandenadressen von der Befehlseinheit 20' über Leitungen 2AA bzw. 26Λ, bestimmt die Anzahl von Verschiebungsbytes auf der Basis dieser Daten und unter der Steuerung des über eine Leitung 20B zugeführten Betriebscodes, und speichert die bestimmte Anzahl im Register 94' für die Verschiebungsbyteanzahl.
Wie im einzelnen in F i g. 7 dargestellt, besteht die Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl aus einer Komplementschaltung 933', einem Addierer 937' und Wählern 930', 932' und 936'. Die Komplementschaltung 933' versorgt eine Leitung 933'/t mit dem 2'er Komplement von Daten »X«, bestehend aus den unteren 4 Bits der Operandenadresse, entsprechend Daten »-X«. Der Wähler 932' wählt die Leitung 24Λ oder 26/4. Der Wähler 936' wählt das Datensignal » — auf der Leitung 933Ά oder ein konstantes Datensignal »9« auf einer Leitung 934Ά Der Addierer 937' errechnet die Summe der Ausgangssignale der Wähler 932' und 936'. Der Wähler 930' wählt eines der Ausgangssignale des Wählers 932' bzw. des Addierers 937'. Sämtliche Operationen dieser Wähler 932', 936' und 930' werden vom Betriebscode gesteuert, der von der Befehlseinheit 20' über die Leitung 20B angelegt wird. Außerdem spricht der Wähler 932' auch auf ein Signal auf einer Leitung 212Λ an, das von der Befehlseinheit 20' geliefert wird. Die Zusammenhänge zwischen den Wählvorgängen dieser Wähler und den Betriebscodes sind in F i g. 10 aufgeführt. In F i g. 10 ist ferner die Verwendung der entsprechenden Betriebscodes angegeben.
Wie sich wiederum aus F i g. 1 ergibt, führt der Zyklusschieber 50 zyklisch eine Verschiebung der angelegten Daten nach links um eine bestimmte Anzahl von Bytes unter der Steuerung der zweiten Ausrichtungssteuerung 90 durch und wählt anschließend die oberen 8 Bytes der verschobenen Daten und schickt sie der Operandensteuerung 60 über die Leitung 5OA Die Operandensteuerung 60 ist in F i g. 11 dargestellt.
In Abhängigkeit von Abrufmaskendaten mit 8 Bits, die vom Wähler 100 über Leitungen 90'C übermittelt werden, schneidet sie mittels Gattern 62 sämtliche Daten in bestimmten Bytepositionen unter den über die Leitungen 5OA angelegten Daten ab. Nach dem Speichern der resultierenden Daten in einem Operandenpufferregister 600 führt die Operandensteuerung 60 sie der Arithmetik-Logik-Einheit 70 über eine Leitung 60Λ zu.
Die Ausrichtungssteuerungen 90 und 90' versorgen die Leitungen 9O'Cund 9OC mit Abrufmaskendaten zur Verarbeitung der von den L- bzw. Ε-Stufen erzeugten Speicheroperanden-Abrufanforderungen. Der Wähler 100 wählt eine der Leitungen 90'C und 9OC In der ersten Ausrichtungssteuerung 90' werden die Operandenmaskendaten von einer Maskenmuster-En tscheidungsschaltung 96 über eine Leitung 96'A sowie ein Operandenmaskenregister 97' geliefert, wie es in F i g. 3 dargestellt ist Die Maskenmuster-Entscheidungsschaltung 96' spricht auf ein Ausgangssignal einer Entscheidungsschaltung 91' für die Operandendatenlänge an, welche die Länge der auszulesenden Daten bestimmt, und spricht ferner auf ein Ausgangssignal der unteren 4 Bits innerhalb der Operandenadresse an, und liefert ein Operandenmaskenmuster unter der Steuerung des Betriebscodes, der über die Leitung 2OB anliegt
Die Entscheidungsschaltung 9V für die Operandendatenlänge spricht auf ein Längenfeld an, das über eine Leitung 25A vom Befehlsschlangenregister 250 in der Befehlseinheit 20' anliegt, und bestimmt eine Operandenlänge unter der Steuerung des Betriebscodes auf der Leitung 2OB.
Wie im einzelnen in Fig.6 dargestellt besteht die Entscheidungsschaltung 91' aus Abtastschaltungen 911', 915' und 917' für Minimalwerte, Konstantregistern 914' und 919' sowie einem Wähler 910' zum Wählen von einem der Ausgangssignale der Abtastschaltungen und Register. Der Wähler 910 wird mit dem Betriebscode gesteuert, der über die Leitung 20ß anliegt. Der Zusammenhang zwischen dem Betriebscode und dem Ausgangssignal des Wählers 910' ist in F i g. 10 angegeben.
Die Abtastschaltungen 911', 915' und 917' sind über die Leitungen 254 an das Längenfeld des Befehlsschlangenregisters 250 in der Befehlseinheit 20' angeschlossen. Die Abtastschaltung 91Γ vergleicht die gesamte Datenlänge LF innerhalb des Längenfeldes mit »7— W« und liefert einen kleineren Wert. Hierbei bezeichnet »IV« Daten, bestehend aus den unteren 3 Bits, die dadurch erhalten werden, daß man das erste 1 Bit aus den unteren 4 Bits der Operandenadresse entfernt, welche vom Wähler 284 geliefert wird. Die Abtastschaltung 915' vergleicht Daten LFi, die von den signifikanteren 4 Bits der Datenlänge LF und »7« dargestellt werden, und liefert kleinere Daten. Die Abtastschaltung 917' vergleicht Daten LF2, die aus den weniger signifikanten 4 Bits der Datenlänge LF und »7« bestehen, und liefert kleinere Daten.
Die Abtastschaltung 911' wird in dem Falle gewählt, wo die ausgelesene Datenlänge aus dem Pufferspeicher 40 auf 8 Byte oder weniger begrenzt werden kann, z. B. bei einem MVC-Befehl. Die Abtastschaltungen 915' und 917' werden im Falle von Dezimaloperationsbefehlen sowie dann verwendet, wenn die ersten bzw. zweiten Operanden auszulesen sind. Das Register 914' wird beispielsweise beim Ladebefehl gewählt und verwendet, um Daten von 4 Bytes unabhängig vom Wert von LF auszulesen.
Wie im einzelnen in Fig.8 dargestellt, besteht die Maskenmuster-Entscheidungsschaltung 96' (vgl. F i g. 3) aus einem linken Mustergenerator 962' und einem rechten Mustergenerator 964', an denen das Ausgangssignal der Entscheidungsschaltung 9Γ über eine Leitung 9\'A anliegt; einer Schiebereinrichtung 966', die dazu dient, ein Ausgangssignal des linken Mustergenerators 962', um einen Betrag nach rechts zu schieben, der durch
17 18
Daten repräsentiert wird, die aus den unteren 3 Bits aus die von diesem Betriebscode zugeordnet wird, und steu-
den unteren 4 Bits im Operandenadressenregister 240 ert die Ausführung des Ε-Stufen der Makrobefehle,
bestehen, wobei das Signal auf der Leitung 24Λ züge- Beim Auslesen von einem Makrobefehl speichert der
führt wird; sowie einem Wähler 960', der dazu dient, die Steuerspeicher 80 den Makrobefehl in ein dort vorgese-
Ausgangssignale der beiden Generatoren 962' bzw. 964' 5 henes Steuerregister 800 ein (vgL F i g. 12).
und der Schiebeeinrichtung 966' auszuwählen. Der Jeder Makrobefehl hat ein Feld 802 für die nächste
Wähler 960' wird mit dem Betriebscode auf der Leitung Adresse für die Zuordnung eines Makrobefehls, der als
205 gesteuert. nächster auszulesen ist, ein Steuerfeld 804 zur Angabe
Wie in Fig. 9 dargestellt, sind die Ausgangssignale einer Steuerinformation für die Ausführung des Befehls,
der Generatoren 962' und 964' Daten aus 6 Bits, bei io ein Operationsbeendigungsfeld 805 zur Angabe, ob die
denen der Wert »1« auf der linken Seite bzw. rechten Operation der Ε-Stufe beendet ist, und ein Ausrich-
Seite zusätzlich zur Zahl der Operandendatenlänge von tungsfeld 806 aus 4 Bits zur Steuerung der Ausrichtung
der Entscheidungsschaltung 91' für die Operandenda- und Wahl von ausgelesenen Daten. Das Steuerfeld 804
tenlänge (vgl. F i g. 3) besetzt wird. enthält ein Feld, das eine Schreibanforderung und eine
Ein Ausgangssignal vom Wähler 960' wird dem Ope- 15 Leseanforderung in der Ε-Stufe ausgibt, welche über
randenmaskenregister 97' über die Leitung 96Ά über- eine Leitung 8OC geliefert werden. Die Werte »00« und
mittelt und dort eingespeichert (vgl. Fig-3). Fin Aus- »01« dieses Feldes geben die Leseanforderungen des
gangssignal des Operandenmaskenregisters 97' wird zweiten bzw. ersten Operanden an, und die Werte »10«
den acht Gattern 62 innerhalb der Operandensteuerung oder »11« geben aas Schreiben des ersten Operanden
60 übermittelt, wie es in F i g. 11 dargestellt ist Es schal- 20 an. Die Ausrichtungssteuerung 90 empfängt das Aus-
tet die Gatter ab, entsprechend einem Wert »0« des richtungsfeld 806 über eine Leitung 8OA und liefert
Ausgangssignales des Wählers 960', um damit eine »0« Steuersignale an die Adressensteuerung 30, den Zyklus-
bei allen an den Gattern anliegenden Daten von 1 Byte schieber 50 und die Operandensteuerung 60 über die
einzugeben, und es schaltet die Gatter ein, entsprechend Leitungen 90A 90ß bzw. 9OC
einem Wert »1«, um damit sämtliche Daten von einem 25 Wie in Fig. 13 dargestellt, decodiert in der zweiten Byte hindurchzulassen, die an den Gattern anliegen, Ausrichtungssteuerung 90 ein Decodierer 98 das Auswenn sie intakt bleiben. Somit werden Daten, bei denen richtungsfeld 806 innerhalb des Steuerregisters 800, um nur die Bytes an gewünschten Stellen signifikant sind festzustellen, ob die von der Befehlseinheit 20' gelieferte und sämtliche anderen »0« sind, im Operandenpufferre- Operandenadresse die ganz linke Adresse oder die ganz gister 600 gespeichert. 30 rechte Adresse ist. Da der Fall, ob die Operandenadres-Die auf diese Weise im Operandenpufferregister 600 se die ganz linke Adresse ist oder nicht, in Abhängigkeit gespeicherten Daten werden der Arithmetik-Logik-Ein- von Makrobefehlen vorher bestimmt ist, ist die obige heit 70 über die Leitung 6OA zugeführt. Unterscheidung in der Weise möglich, daß die Inhalte In dem Falle, wo der Abruf des Speicheroperanden in der von den Makrobefehlen ausgelesenen Ausrichder Α-Stufe eines bestimmten Befehls gefordert wird, 35 tungsfelder vorher so bestimmt sind, daß sie entsprewird die Ausrichtung dieses Operanden mit der oben chend den Makrobefehlen spezifisch sind. In dem Falle, beschriebenen ersten Ausrichtungssteuerung 90' durch- wo die Operandenadresse die ganz rechte Adresse angeführt. Im Befehl mit SS-Format werden jedoch die gibt, wie z. B. bei dem Dezimalbetriebsbefehl, liefert der Abrufe der Speicheroperanden sowohl in der Α-Stufe Decodierer 98 eine »1«, und in jedem anderen Falle als auch der Ε-Stufe gefordert. In diesem Falle wird die 40 liefert er eine »0«.
in der Α-Stufe entwickelte Speicheroperanden-Abruf- Das gelieferte Ausgangssignal wird in ein Register 99
anforderung mit der ersten Ausrichtungssteuerung 90' für die Richtung der Ausrichtung eingespeichert. Ein
wie bei den anderen Befehlen als denen mit SS-Format Ausgangssignal vom Register 99 für die Richtung der
verarbeitet. Die in der Ε-Stufe entwickelte Speicher- Ausrichtung wird an die Adressensteuerung 30 über die
operanden-Abrufanforderung wird mit dem Steuerspei- 45 Leitung 9OA gegeben (vgl. F i g. 1). Die zweite Ausrich-
cher 80 und der zweiten Ausrichtungssteuerung 90 ver- tungssteuerung 90 liefert ein Verschiebungssteuersignal
arbeitet. für den Zyklusschieber 50 in der Ε-Stufe mittels einer
Bei der Verarbeitung der Α-Stufe wird das Ausgangs- Verschiebungssteuerschaltung 95. Diese Verschie-
signal von der Entscheidungsschaltung 91' für die Ab- bungssteuerschaltung 95 erhält ein Ausgangssignal von
rufdatenlänge innerhalb der ersten Ausrichtungssteue- 50 einer Entscheidungsschaltung 93 für die Verschiebungs-
rung 90' zu der Arithmetikschaltung 252 innerhalb der byteanzahl über ein Register 94 für die Verschiebungs-
Befehlseinheit 20' über die Leitung 91' geschickt. Die byteanzahl und liefert das entsprechende Verschie-
Differenz dieses Ausgangssignals vom Längenfeld LF bungssteuersignal.
des Befehlsschlangenregisters 250 wird in der L-Stufe Die Entscheidungsschatlung 93 für die Verschieins Längenfeldregister 254 eingespeichert und wird in 55 bungsbyteanzahl erhält die unteren 4 Bits der von der der Ε-Stufe weiter ins Längenfeldregister 220 eingespei- Befehlseinheit 20' gelieferten ersten und zweiten Opechert. randenadressen über die Leitungen 24A bzw. 26A und Infolgedessen wird die Länge LF des in der Ε-Stufe erhält außerdem Daten in einem nicht näher dargestellabzurufenden Speichercperanden im Längenfeldregi- ten Arbeitsregister 72, das sich innerhalb der Arithmester 220 gespeichert. Die Daten LF werden der zweiten 60 tik-Logik-Einheit 70 befindet (vgl. F i g. 1). Auf der Basis ' Ausrichtungssteuerung 90 über eine Leitung 22A über- dieser Daten bestimmt sie die Anzahl der Verschie- pjj mittelt. bungsbytes unter der Steuerung des Ausrichtungsfeldes , Andererseits wird der Betriebscode vom Befehls- 806 in dem Steuerregister 800, was über die Leitung 8OA Schlangenregister 250 über die Leitung 20Äan das Steu- erfolgt, wobei die bestimmte Anzahl in das Register 94 erspeicher-Adressenregister 810 im Steuerspeicher 80 65 für die Verschiebungsbyteanzahl eingespeichert wird.
1*' (vgl. Fig. 1) in der L-Stufe angelegt, die der Ε-Stufe Wie im einzelnen in Fig. 15 dargestellt, besteht die ('; vorhergeht. Der Steuerspeicher 80 liest nacheinander Entscheidungsschaltung 93 für die Verschiebungsbyte-[,· Makrobefehle innerhalb einer Makrobefehlsfolge aus, anzahl aus Wählern 932, 936 und 930, einer Komple-
19 20
mentschaltung 933, Registern 934 und 935 sowie einem unter der Steuerung des Ausrichtungsfeldes 806. Addierer 937. Die Komplementschaltung 933 liefert das Wie im einzelnen in F i g. 14 dargestellt, besteht die 2'er Komplement von Daten »Xu, zusammengesetzt aus Entscheidungsschaltung 91 für die Operandendatenländen unteren 4 Bits des Operandenadresserregisters 240, ge aus Minimaiwert-Abtastschaltungen 911, 913, 915 mathematisch entsprechend Daten»—X«. Die Register s und 917, einem Konstanten-Register 919 und einem 934 und 935 speichern binäre Daten entsprechend den Wähler 910 zur Auswahl von einem der Ausgangssigna-Konstanten »9« bzw. »13«. Der Wähler 932 wählt unter Ie der Abtastschaltungen und des Registers sowie des den unteren 4 Bits von »X« und » V« der Operanden- Ausgangssignales des Arbeitsregisters 72 auf der Leiadressen auf den Leitungen 24A bzw. 26/4, während der tung 72/4. Der Wähler 910 wird vom Ausrichtungsfeld Wähler 936 eines der Ausgangssignale vcn der Korn- ίο 806 innerhalb des Steuerregisters 800 gesteuert das plementschaltung 933 sowie den Registern 934 und 935 über die Leitung 82.4 anliegt Die Zusammenhänge zwiwählt Der Addierer 937 berechnet die Summe der Aus- sehen dem Inhalt des Ausrichtungsfeldes und dem Ausgangssignale von den Wählern 932 und 936. gangssignal des Wählers 910 ist in Fig. 17 angegeben. Der Wähler 930 wählt unter den folgenden Ausgangs- Die Abtastschaltungen 911,913,915 und 917 sind an das Signalen: Einem Ausgangssignal »Ζ« des Arbeitsregi- 15 Längenfeldregister 220 innerhalb der Befehlseinheit ansters 72, Daten »V« auf einer Leitung 938Λ, auf der geschlossen. Die Abtastschaltungen 911 und 913 versämtliche unteren 3 Bits der Daten » K« auf der Leitung gleichen die gesamte Datenlänge LF innerhalb des Län-264 zu »0« gemacht sind, dem Ausgangssignal des Wäh- genfeldregisters 220 mit »7« bzw. »3« und liefern kleinelers 932 und dem Ausgangssignal des Addierers 937. re Werte. Die Abtastschaltung 915 vergleicht Daten Sämtliche Operationen der Wähler 932, 936 und 930 20 LFi, die von den oberen 4 Bits der Datenlängen LF sind gesteuert von Daten im Ausrichtungsfeld 806 inner- repräsentiert werden, und »7« und liefert kleinere Dahalb des Steuerregisters 800, die über die Leitung 80/4 ten. Die Abtastschaltung 917 vergleicht Daten LF2, begeliefert werden. Die Zusammenhänge zwischen den stehend aus den unteren 4 Bits der Datenlänge LF, und Wähloperationen der Wähler und dem Ausrichtungs- »7« und liefert kleinere Daten.
feld 806 sind in Fig. 17 aufgelistet. In Fig. 17 sind au- 25 Die Abtastschaltung 911 wird in dem Falle gewählt, ßerdem die Verwendungen der jeweiligen Ausrich- wo die aus dem Pufferspeicher 40 auszulesende Datentungsfelder angegeben. Wenn das Ausgangssignal des länge auf 8 Byte oder weniger begrenzt werden kann, Decodierers 98 (vgl. Fig. 13) den Wert »0« hat so ent- ζ. B. bei einem MVC-Befehl. Die Abtastschaltung 913 sprechen die vom Wähler 930 gelieferten Daten irgend- wird gewählt, wenn die aus dem Pufferspeicher 40 ausweichen Daten »Λ«, »V«, »V«, »Z«, »Y - X«, 30 zulesende Datenlänge auf 4 Bytes oder weniger be- » Y + 13« und » Y + 9«, wie es in F i g. 17 angegeben ist, grenzt werden soll. Bei der vorliegenden Ausführungsund wenn das Ausgangssignal des Decodierers 98 (vgl. form wird sie bei der Ausführung eines Befehls gewählt, Fig. 13) den Wert »1« hat so entsprechen die vom der eine Wortüberlappungsverarbeitung erfordert. Die Wähler 930 gelieferten Daten den Werten »y + 9« Abtastschaltungen 915 und 917 werden im Falle der oder »Λ" + 9«. Bei der Verarbeitung eines bestimmten 35 Dezimalbetriebsbefehle bzw. dann verwendet, wenn die Makrobefehls können dementsprechend die Daten des ersten und zweiten Operanden ausgelesen werden. Das Ausrichtungsfeldes innerhalb einer Mikrobefehlsfolge Konstantenregister 919 wird beispielsweise bei einer zur Überwachung der Steuerung der Ausführung des Unterbrechungsverarbeitung gewählt und verwendet, Makrobefehls vorher entsprechend Fig. 17 spezifiziert um Daten von 8 Bytes unabhängig vom Inhalt des Länwerden, so daß die gewünschte Anzahl von zu verschie- 40 genfeldregisters 220 auszulesen. Die Leitung 72-4 wird benden Bytes vom Wähler 930 geliefert werden kann. in dem Falle gewählt, wo die Auslese-Datenlänge mit Die Ausrichtungsdaten müssen jedoch auch bei der Spe- einem willkürlichen Wert im Arbeitsregister 72 bezifizierung des Wählvorganges eines nachstehend näher stimmt ist.
beschriebenen Wählers 960 bestimmt werden. Wie im einzelnen in Fig. 16 dargestellt, besteht die Bei der Anordnung gemäß Fig. 15 ist im Falle der 45 Maskenmuster-Entscheidungsschatiung 96 aus einem Wahl der Daten »Z« des Arbeitsregisters 72 die Ver- linken Mustergenerator 962 und einem rechten Musterschiebung von irgendeiner gewünschten Anzahl von By- generator 964, an denen das Ausgangssignal der Enttes möglich, indem man die Daten »Z« in der notwendi- Scheidungsschaltung 91 für die Operandendatenlänge gen Weise bestimmt. Die zweite Ausrichtungssteuerung über eine Leitung 91/4 anliegt, einer rechten Verschie-90 liefert Abrufmaskendaten zur Steuerung der Ope- 50 bungseinrichtung 966, die dazu dient, ein Ausgangssirandensteuerung 60 in der Ε-Stufe von einer Masken- gnal des linken Mustergenerators 962 nach rechts um muster-Entscheidungsschaltung 96 (vgl. Fig. 13) und einen Wert zu verschieben, der von Daten repräsentiert über eine Leitung 96/4 sowie ein Abrufmaskenregister wird, die aus den unteren drei Bits unter den unteren 97. 4 Bits innerhalb des Operandenadressenregisters bestein Abhängigkeit von einem Ausgangssignal von einer 55 hen und auf der Leitung 24/4 geliefert werden, sowie Entscheidungsschaltung 91 für die Abrufdatenlänge, einem Wähler 960, der dazu dient, Ausgangssignale der welche eine auszulesende Datenlänge vorgibt, und von Mustergeneratoren 962 und 954 sowie der rechten Vereinem Ausgangssignal der unteren 4 Bits innerhalb des Schiebungseinrichtung 966 zu wählen. Der Wähler 960 Operandenadressenregisters liefert die Maskenmuster- wird gesteuert vom Ausrichtungsfeld 806 innerhalb des Entscheidungsschaltung % ein Abrufmaskenmuster un- 60 Steuerregisters 800 auf der Leitung 8OA Die Mustergeter der Steuerung des Ausrichtungsfeldes 806 innerhalb neratoren 962 und 964 sowie die rechte Verschiebungsdes Steuerregisters 800, wobei die Zuführung über die einrichtung 966 haben völlig gleiche Anordnungen wie Leitung 80/4 erfolgt. die entsprechenden Komponenten in F i g. 8.
Die Entscheidungsschaltung 91 für die Operandenda- Das Ausgangssignal des Wählers 960 wird dem Ope-
tenlänge spricht auf die Ausgangssignale des Längen- 65 randenmaskenregister 97 (vgl. F i g. 13) über die Leitung
feldregisters 220 innerhalb der Befehlseinheit 20' und 96Λ übermittelt und dort gespeichert. Das Ausgangssi-
des Arbeitsregisters 72 innerhalb der Arithmetik-Logik- gnal des Operandenmaskenregisters 97 wird an die
Einheit 70 an und bestimmt eine Operandendatenlänge Operandensteuerung 60 übermittelt, wie sie in Fie. Il
dargestellt ist.
Wenn die Gesamtlänge LF der auszulesenden Daten 8 Bytes oder weniger beträgt, wird das Auslesen der von der Operandenrealadresse zugeordneten Daten durch eine Ausleseoperation beendet. Wenn im Gegensatz dazu die Gesamtlänge LF 8 Byte überschreitet, wird der obige Auslesevorgang wiederholt, bis das Auslesen der Daten die Gesamtlänge LF hat. Genauer gesagt, das Ausgangssignal der Entscheidungsschaltung 91 für die Operandendatenlänge wird über die Leitung %\A zum Subtrahierer 226 innerhalb der Befehlseinheit 20' geschickt, und die Differenz zwischen diesem Ausgangssignal und dem Wert des Längenfeldregisters 220 im Längenfeldregister 220 gespeichert. Wenn der resultierende Inhalt des Längenfeldregisters 220 nicht negativ ist, wird das Auslesen von Daten wieder durchgeführt, und zwar unter Verwendung der Inhalte des Längenfeldregisters 220 und der Operandenadressenregister 240 oder 260. Dieser Auslesevorgang wird solange wiederholt, bis der Inhalt des Längenfeldregisters 220 negativ wird.
Andererseits überträgt die Befehlseinheit 20' die im Operandenadressenregister 240 (vgl. F i g. 2) gespeicherte virtuelle Operandenadresse an die Adressensteuerung 30 während der oben angegebenen Operation des Auslesens von Daten aus dem Pufferspeicher 40. Die Adressensteuerung 30 erzeugt die Realadressen für den Operanden in völlig gleicher Weise wie oben erläutert. In dem Falle, wo der in Ausführung befindliche Befehl es erfordert, die Daten für die reale Operandenadresse aus dem Pufferspeicher 40 auszulesen, wird der Auslesevorgang mit denselben Prozeduren wie oben beschrieben durchgeführt, woraufhin ein Mikrobefehl mit dem Wert »1« im Operationsbeendigungsfeld 805 ausgelesen und in das Steuerregister 800 (vgl. Fig. 12) geladen wird, wobei die Ε-Stufe bei der Ausführung dieses Befehls endet. Zu diesem Zeitpunkt wird das Operationsbeendigungsfeld 805 über die Leitung 805zur Eefehlseinheit 20' übertragen und setzt die Flip-Flops 238 und 239 zurück, die vorher gesetzt worden sind.
Somit wird die Ausführung des nächsten Makrobefehls wiederum gestartet.
Ein konkretes Ausführungsbeispiel wird nachstehend zum besseren Verständnis der oben beschriebenen Ausführungsform erläutert.
Im Falle der Verarbeitung eines MVC-Befehls (Zeichenfolge übertragen) wird angenommen, daß die Daten »A"« und » K«. die von den unteren 4 Bits der ersten und zweiten Operandenadressen repräsentiert werden, in dezimaler Schreibweise »2« und »6« sind und daß die Gesamtlänge LF von Daten »16« in dezimaler Schreibweise ist. Dementsprechend beträgt die Gesamtlänge von auszulesenden Daten 17 Bytes.
Nach Beendigung der ersten Decodierung wird die erste Operandenadresse in die Operandenadressenregister 260 und 270 gesetzt Zusätzlich wird der Wert »0« von der Befehlsstufensteuerung 212 auf der Leitung 2\2A geliefert
Nach Beendigung der anschließenden zweiten Decodierung wird die zweite Operandenadresse in das Operandenadressenregister 240 gesetzt, und gleichzeitig wird am Ende der ersten A-Stufe das Ausgangssignal des Operandenadressenregisters 270 wie es ist in das Operandenadressenregister 272 gesetzt. Zusätzlich wird ein Wert »1« von der Befehlsstufensteuerung 212 auf der Leitung 2124 gesetzt.
Nach Beendigung der anschließenden zweiten A-Stufe wird der Wert des Operandenadressenregisters 240 von der Arithmetikschaltung 242 einer Operation voi » + 6« unterworfen, da die Ausleselänge »5« in der Aus richtungssteuerung 90' gesetzt ist, und das Ergebni wird in das Operandenadressenregister 244 gesetzi Dementsprechend werden die unteren 4 Bits des Ope randenadressenregisters 244 zum Wert »12«. Gleichzei tig arbeitet die Arithmetikschaltung 252 und führt eini Operation » — 6« aus und in das Register 254 wird de Wert »10« gesetzt.
ίο Nach Beendigung der anschließenden zweiten L-Stu fe werden der Wert des Operandenadressenregister: 244 in das Operandenadressenregister 246 und der Wer des Operandenadressenregisters 272 in das Operanden adressenregister 274 gesetzt Zusätzlich wird der Wer des Registers 254 in das Längenfeldregister 220 gesetzt Dementsprechend werden die Werte »12« in die unte ren 4 Bits des Operandenadressenregisters 246 unc »10« in das Längenfeldregister 220 gesetzt und zur E Stufe geliefert.
Da der erste Operand beim MVC-Befehl nicht ausge lesen wird, werden die Werte der Operandenadressen register 264 und 266 nicht verwendet. Daher werden die Operationen dieser Operandenadressenregister bezug lieh dieses Befehls nicht näher erläutert.
Hinsichtlich der Ausrichtung von Daten wird der Betriebscode als Ausgangssignal des Befehlsregisters 21( der ersten Ausrichtungssteuerung 90' über die Leitung 21A übermittelt, und die Richtung der Ausrichtung wire vom Decodierer 98' decodiert. Hinsichtlich dieses Befehls liefert der Decodierer 98' eine »0«. Nach Beendigung dieser zweiten Decodierung wird dieser Wert ir das Register 99' für die Richtung der Ausrichtung gesetzt. Gleichzeitig wird der Betriebscode vom Decodierer 230 in der Decodierstufe daraufhin decodiert, ob es sich um einen Überlappungsbefehl oder Nicht-Überlappungsbefehl handelt. Als Ergebnis liefert der Decodierer 230 eine »1« und setzt das Flip-Flop 238 in einer Zwischenstufe der ersten Decodierstufe. Nach Beendigung der ersten Decodierung wird die »1« in das Register 232 gesetzt. Jetzt, wo das Flip-Flop 238 auf »i« gegangen ist arbeitet die Befehlsstufensteuerung 212 so, daß sie die Decodierung des nächsten Befehls sperrt Da das Flip-Flop 239 auf dem früheren Wert oder »0«
zum Zeitpunkt der Beendigung der zweiten Decodierstufe gehalten wird, wird das Ausgangssignal auf einer Leitung 23Λ den Wert »0« haben. In der zweiten A-Stufe wählt dementsprechend der Wähler 100 (vgl. F i g. 1) das Ausgangssignai auf der Leitung 90'Λ des Registers 99' für die Richtung der Ausrichtung und liefert das Signal auf der Leitung 90"A Da zu diesem Zeitpunkt auf der Leitung 212Λ das Signal »1« liegt, wählt der Wähler 282 eine Leitung 240Z, wie es in F i g. 18 angegeben ist Mit anderen Worten, der zweite Operand wird gewählt
Unter Verwendung der zweiten Operandenadresse 20/4 und des Decodierergebnisses »0« auf der Leitung WA erzeugt die Adressensteuerung 30 die Realadresse des zweiten Operanden. Sie liest aus dem Pufferspeicher 40 Daten von 16 Bytes einschließlich Daten von 8 Bytes aus, deren ganz linke Adresse die Realadresse des zweiten Operanden ist
Da die Leitung 23Λ den Wert »0« hat, wählt der Wähler 280 den Inhalt einer Leitung 240 Y und liefert ihn der Leitung 26/4. Mit anderen Worten, die unteren 4 Bits der zweiten Operandenadresse oder »6« in diesem Beispiel werden gewählt
Da die Leitung 23Λ den Wert »10« hat, wählt der Wählter 284 in gleicher Weise den Inhalt einer Leitung
260 Y oder die unteren 4 Bits der ersten Operandenadresse, in diesem Beispiel »2« und liefert dies auf der Leitung 24/4.
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl innerhalb der Ausrichtungssteuerung 90' spricht der Wähler 930' auf den Betriebscode auf der Leitung 20ß an, um eine Leitung 937Ά wie in Fig. 10 angegeben, zu wählen und Daten » Y — X« oder die Differenz der ersten und zweiten virtuellen Operandenadressen zu liefern. Da in diesem Beispiel Y = 6 und X = 2 gilt, wird das Ausgangssignal der Leitung 937Ά zum Wert »4«. Dieses Ausgangssignal »4« wird im Register 94' für die Verschiebungsbyteanzahl gespeichert und anschließend an die Verschiebungssteuerschaltung 95' übermittelt.
Das Ausgangssignal auf der Leitung 90'Ä wird vom Wähler 100 gewählt und dem Zyklusschieber 50 über die Leitung 90"ß übermittelt. Hierbei werden die Daten um den Wert von 4 Bytes zyklisch nach links verschoben. Dementsprechend ist ein Teil der Daten, die von der zweiten Operandenadresse zugeordnet sind, in den 6 Bytes von den dritten bis achten Bytes enthalten, wenn man vom linken Ende der vom Zyklusschieber 50 gelieferten Daten aus rechnet. 2 Bytes auf der linken Seite der Daten, die vom Zyklusschieber 50 geliefert werden, sind Daten, die nicht für die Ausführung verwendet werden.
Andererseits spricht der Wähler 910' in der Entscheidungsschaltung 91' für die Operandendatenlänge innerhalb der ersten Ausrichtungssteuerung 90' auf den Betriebscode auf der Leitung 20S für den MVC-Befehl an und wählt eine Ausgangsleitung 911'Λ der Abtastschaltung 911', wie es in Fig. 10 angegeben ist. Da die Abtastschaltung 911' mit dem Wert »2« über die Leitung 24/4 und mit dem Wert »16« über die Leitung 25 A versorgt wird, geht das Ausgangssignal der Abtastschaltung 91Γ auf den Wert »5«. Dieses Ausgangssignal wird den Mustergeneratoren 962' und 964' in der Maskenmuster-Entscheidungsschaltung 96' sowie der Befehlseinheit 20' übermittelt. Der Wähler 960' in der Maskenmuster-Entscheidungsschaltung 96' spricht auf den Betriebscode auf der Ladung 20ß für den MVC-Befehl an und wählt eine Ausgangsleitung 966/4 der rechten Verschiebungseinrichtung 966', wie es in F i g. 10 angegeben ist.
Der linke Mustergenerator 962' spricht auf die angelegten Daten »5« an und liefert ein Muster »11111100«, wie es in Fig.9 angegeben ist. Die rechte Verschiebungseinrichtung 966' verschiebt dieses Muster nach rechts um eine Zahl, die von der Leitung 24A vorgegeben wird, im vorliegenden Beispiel »2«, und liefert ein Muster »00111111«. Dieses Ausgangssignal auf der Leitung 90'C wird vom Wähler 100 gewählt und der Operandensteuerung 60 über die Leitung 90"C übermittelt. In Abhängigkeit vom 8-Bit-Muster von der Leitung 90"Cschneidet die Operandensteuerung 60 nur 2 Bytes, nämlich die ersten und zweiten Bytes des Ausgangssignales des Zyklusschiebers 50, bestehend aus 8 Bytes, ab und überträgt die Daten der anderen 6 Bytes zur Arithmetik-Logik-Einheit 70.
Somit speichert die Arithmetik-Logik-Einheit 70 Daten, die sich auf eine Gesamtzahl von 8 Bytes belaufen und aus den Daten der 6 Bytes, beginnend von der zweiten Operandenadresse, und den beiden verbleibenden Bytes von »0« bestehen. Nach der Beendigung der zweiten Α-Stufe wird der Wert des Registers 232 in das Register 234 gesetzt, und nach Beendigung der zweiten L-Stufe setzt das Ausgangssignal des Registers 234 das Flip-Flop 239. Da in diesem Beispiel das Register 232 den Wert »1« hat, wird das Flip-Flop 239 nach Beendigung der zweiten L-Stufe auf »1« gesetzt. Es wird nicht zurückgesetzt, bis ein EOP-Signal, welches das Ende der Ε-Stufe angibt, vom Steuerspeicher 80 auf den Wert »1« geht. Dementsprechend wird, wenn die Ε-Stufe ausgelöst wird, nachdem also die zweie L-Stufe beendet ist, ein Wert »1« auf der Leitung 23/4 gehalten.
Die Ε-Stufe wird folgendermaßen ausgeführt.
Der Betriebscode des MVC-Befehls wird von der Befehlseinheit 20' zum Steuerspeicher 80 geschickt, und der vordere Mikrobefehl einer Mikrobefehlsfolge zur Ausführung dieses MVC-Befehls wird in das Steuerregister 800 geladen. Danach werden Mikrobefehle innerhalb der Folge nacheinander in vorgegebener Folge ausgelesen, um den MVC-Befehl auszuführen. Bei der Auslösung dieser Ausführung wird in der Befehlseinheit 20' untersucht, ob der MVC-Befehl eine Wortüberlappungsverarbeitung erfordert oder nicht. Der Einfachheit halber ist eine Schaltung dafür nicht eigens dargestellt.
Das Ergebnis dieser Abtastung oder Diskriminierung wird zum Steuerspeicher 80 übertragen. Auf der Basis dieses Ergebnisses geht der Steuerspeicher 80 zur Verzweigung eines anderen Mikrobefehls.
Wenn festgestellt worden ist, daß der MVC-Befehl ein Befehl ist, der keine Überlappungsverarbeitung erfordert, werden die Daten »1001« in das Ausrichtungsfeld 806 des anschließenden Mikrobefehlzweiges gespeichert. Beim Auslesen von Daten aus dem Hauptspeicher 10 wird dieses Ausrichtungsfeld vom Decodierer 98 decodiert. Das decodierte Ergebnis ist »0«, wie es in F i g. 17 angegeben ist. Dieses Ergebnis wird zum Wähler 100 über die Leitung 9OB übertragen. Da die Leitung 23Λ den Wert »1« hat, wird die Leitung 90S vom Wähler 100 gewählt, und die Daten auf dieser Leitung werden zur Adressensteuerung 30 geschickt. Unter Verwendung des Decodierer-Ergebnisses und der virtuellen zweiten Operandenadresse vom Operandenadressenregister 240 erzeugt die Adressensteuerung 30 eine reale zweite Operandenadresse. Sie liest aus dem Pufferspeicher 40 Daten von 16 Bytes einschließlich Daten von 8 Bytes aus, von denen die ganz linke Adresse die reale zweite Operandenadresse ist.
Andererseits liefert in der Entscheidungsschaltung 93 für die Verschiebungsbyteanzahl in der zweiten Ausrichtungssteuerung 90 Wähler 930 die Daten »V« in Abhängigkeit von den Ausrichtungsdaten »1001«. Dieser Wert ist beim vorliegenden Beispiel »12«. Das Ausgangssignal »12« wird im Register 94 für die Verschiebungsbyteanzahl gespeichert und anschließend an die Verschiebungssteuerschaltung 95 geschickt Das Ausgangssignal auf der Leitung 90i? der Verschiebungssteuerschaltung 95 wird zum Wähler 100 geschickt Da die Leitung 23/4 den Wert »1« hat, wird die Leitung 90 ß vom Wähler 100 gewählt, und die aus dem Pufferspeicher 40 ausgelesenen Daten von 16 Bytes werden zyklisch um den Betrag von 12 Bytes nach links verschoben, und zwar vom Zyklusschieber 50 unter der Steuerung der Verschiebungssteuerschaltung 95.
Andererseits spricht in der Entscheidungsschaltung 91 für die Abrufdatenlänge in der Ausrichtungssteuerung 90 der Wähler 910 auf die Ausrichtungsdaten »1001« an und wählt eine Ausgangsleitung 911Λ der Abtastschaltung 911, wie es in F i g. 17 angegeben ist Da »10« an der Abtastschaltung 911 vom Längenfeldregister 220 anliegt, geht das Ausgangssignal dieser Abtastschaltung 911 auf den Wert »7«. Dieses Ausgangssignal
wird zu den Mustergeneratoren 962 und 964 innerhalb der Maskenmuster-Entscheidungsschaltung % geschickt.
In Abhängigkeit von den Ausrichtungsdaten »1001« wählt der Wähler 960 in der Maskenmuster-Entscheidungsschaltung % eine Ausgangsleitung 962/t des linken Mustergenerators 962, wie sich aus Fig. 17 ergibt. Der linke Mustergenerator 962 spricht auf die angelegten Daten »7« an (was einer »111« in binärer Schreibweise entspricht) und liefert ein Muster »11111111«. Dies wird in das Operandenmaskenregister 97 eingegeben. Das Ausgangssignal auf der Leitung 9OC des Operandenmaskenregisters 97 wird zum Wähler 100 geschickt, und die Ausgangsleitung 9OC wird für eine Leitung 90"Cgewählt, da die Leitung 23Λ auf »1« ist.
In Abhängigkeit vom 8-Bit-Muster von der Ausrichtungssteuerung 90 speichert die Operandensteuerung 60 in das Operandenpufferregister 600 die Daten von 8 Bytes insgesamt ein, wie sie vom Zyklusschieber 50 geliefert werden. Somit sind die Daten von 8 Bytes, beginnend von der zweiten Operandenadresse, im Operandenpufferregister 600 gespeichert. Anschließend reduziert die Befehlseinheit den Längenfeldwert oder LF-Wert im Längenfeldregister 220 auf einen Wert »2«, der durch Subtraktion des Wertes »8« von »10« erhalten wird. Außerdem erhöht sie die Werte in den Operandenadressenregistern 240 und 260 jeweils um »8«. Danach wird unter Verwendung der aktualisierten Inhalte des Längenfeldregisters 220 und der Operandenadressenregister das Auslesen der Daten in gleicher Weise wie oben beschrieben durchgeführt.
Die vorstehende Beschreibung gibt die wesentlichen Züge der Verarbeitung des MVC-Befehls an, der keine Überlappungsverarbeitung erfordert.
In dem Falle, wo der MVC-Befehl eine Überlappungsverarbeitung erfordert, werden Daten »0001« in das Ausrichtungsfeld 806 innerhalb des anschließenden Mikrobefehlszweiges gespeichert. Der Wähler 910 (vgl. F i g. 14) wählt das Ausgangssignal der Abtastschaltung 913 und liefert es als Auslesedatenlänge. Der Wähler 930 (vgl. F i g. 15) in der Entscheidungsschaltung 93 für die Verschiebungsbyteanzahi liefert die Daten » V«. Die Verschiebungssteuerschaltung 95 steuert den Zyklusschieber 50 und sorgt dafür, daß er das Ausgangssignal des Pufferspeichers 40 ohne irgendeine Verschiebung oder mit einer Verschiebung von 8 Bytes liefert, und zwar in Abhängigkeit davon, ob » Y«. den Wert »0000« oder »1000« hat Die Einzelheiten der anderen Operationen sind prinzipiell die gleichen wie in dem Falle, wo die Überlappungsverarbeitung nicht erforderlich ist, so daß ihre Beschreibung entbehrlich erscheint
Die in der oben beschriebenen Weise ausgerichteten Daten werden anschließend in den Pufferspeicher 40 in der Ε-Stufe eingeschrieben. In diesem Falle wird eine Schreibadresse vom Operandenadressenregister 274 über den Wähler 282 an die Adressensteuerung 30 angelegt Das Einschreiben wird mit 8 Bytes entsprechend der bekannten Technik ausgeführt Der Wert des Operandenadressenregisters 274 wird einer Operation von » + 8« von der Arithmetikschaltung 276 bei jedem Schreibvorgang unterworfen. In der Adressensteuerung 30 wird eine reale Schreibadresse erzeugt und in das Register 39 eingespeichert, um das Einschreiben in den Pufferspeicher 40 vorzunehmen.
Die Wirkungsweise der vorliegenden Ausführungsform wird nachstehend für den Fall der Verarbeitung von Dezimalbetriebsbefehlen erläutert Dabei wird ein Fall betrachtet bei dem die Länge LF 1 des ersten Operanden in dezimaler Schreibweise »15« beträgt, während die Länge LF 2 des zweiten Operanden in dezimaler Schreibweise »12« beträgt.
Der Dezimalbefehl unterscheidet sich vom MVC-Befehl darin, daß sowohl der erste als auch der zweite Operand vom Hauptspeicher ausgelesen werden.
Nach Beendigung der ersten Decodierstufe wird (erste Operandenadresse + LF 1) in die Operandenadressenregister 260 und 270 gesetzt. Zusätzlich wird der
ίο Wert »0« auf der Leitung 212/4 von der Befehlsstufensteuerung 212 geliefert.
Nach Beendigung der anschließenden zweiten Decodierung wird (zweite Operandenadresse + LF 2) in das Operandenadressenregister 240 gesetzt und gleichzeitig der Inhalt des Operandenadressenregisters 270 bei Beendigung der ersten Α-Stufe in das Operandenadresscnregister 272 gesetzt. Zusätzlich wird der Wert »1« auf der Leitung 212/4 von der Befehlsstufensteuerung 212 gesetzt.
Da die Ausleselänge »7« auf der Leitung 91Ά von der Ausrichtungssteuerung 90' gesetzt ist, wird ein Wert, bei dem der Wert des Operandenadressenregisters 260 eine Operation » — 8« unterworfen ist, von der Arithmetikschaltung 262 erhalten und in das Operandenadressenregister 264 gesetzt. Zur gleichen Zeit arbeitet die Arithmetikschaltung 252 in der Weise, daß sie die erste Operandenlänge einer Operation » — 8« unterwirft, wobei das Ergebnis in das Register 254 gesetzt wird. Dementsprechend erhält die erste Operandenlänge LFl der Wert »7«. Nach Beendigung der anschließenden zweiten L-Stufe wird der Inhalt des Operandenadressenregisters 272 in das Operandenadressenregister 274, der Inhalt des Operandenadressenregisters 264 in das Operandenadressenregister 266, der Inhalt des Operandenadressenregisters 244 in das Operandenadressenregister 246 und der Inhalt des Registers 254 in das Längenfeldregister 220 gesetzt. Dementsprechend werden (erste Operandenadresse + LF 1) in das Operandenadressenregister 274, (zweite Operandenadresse -r LF 2 — 8) in das Operandenadressenregister 266 sowie die Werte LFl »7« und LF2 »4« in das Längenfeldregister 220 gesetzt und zur Ε-Stufe übermittelt.
Hinsichtlich der Ausrichtungssteuerung wird der Betriebscode im Befehlsregister 210 vom Decodierer 98' decodiert. Im Falle eines Dezimalbefehls liefert der Decodierer 98' einen Wert »1«. Dieser Wert wird in das Register 99' für die Richtung der Ausrichtung nach Beendigung der ersten Decodierung gesetzt Der Betriebscode innerhalb des Befehlsregisters 210 wird außerdem
so vom Decodierer 230 decodiert, der einen Wert »1« liefert Dieses Ausgangssignal setzt das Flip-Flop 238 in einer Zwischenstufe der ersten Decodierung. Außerdem wird das Register 232 nach Beendigung der ersten Decodierung gesetzt. Jetzt, wo das Flip-Flop 238 auf den Wert »1« gegangen ist, arbeitet die Befehlsstufensteuerung 212 so, daß sie die Decodierung des nächsten Befehls sperrt.
Da das Flip-Flop 239 den vorhergehenden Wert oder »0« nach Beendigung der ersten Decodierung speichert, geht das Signal auf der Leitung 23Λ auf »0«. Dementsprechend wählt der Wähler 100 die Ausgangsleitung 9O'y4 des Registers 99' für die Richtung der Ausrichtung in der anschließenden ersten Α-Stufe, die gleich der zweiten D-Stufe ist Das Resultat wird zur Adressensteuerung 30 geschickt
Da zu diesem Zeitpunkt der Wert »0« auf der Leitung 212Λ geliefert wird, wählt der Wähler 282 die- Leitung 260Z oder (erste Operandenadresse + LFl). Die
Adressensteuerung 30 erzeugt die reale zweite Operandenadresse in Abhängigkeit vom Signal vom Wähler 282 und dem Ausgangssignal des Decodierers 98', und Daten mit 16 Bytes, einschließlich Daten mit 8 Bytes, bei denen die ganz rechte Adresse die reale zweite Operandenadresse ist, werden aus dem Pufferspeicher 40 ausgelesen.
In der ersten Α-Stufe liefert der Wähler 284 die Daten der Leitung 260 Y, d. h. wahlweise die unteren 4 Bits von (erste Operandenadresse + LF1) auf der Leitung 24A
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl in der ersten Ausrichtungssteuerung 90' spricht der Wähler 930' auf den Betriebscode für den Dezimalbefehl auf der Leitung 20 B und das Signal »0« auf der Leitung 212Λ an und liefert die Daten der Leitung 937Ά oder »λ -I- 9«, wie es in F i g. i0 angegeben ist. Dieses Ausgangssignal wird im Register 94' für die Verschiebungsbyteanzahl gespeichert und anschließend an die Verschiebungssteuerschaltung 95' geschickt. Das Ausgangssignal wird dem Wähler 100 über die Leitung 90' B übermittelt und dort gewählt Das Ausgangssignal des Wählers 100 wird über die Leitung 90' B an den Zyklusschieber 50 übermittelt. Die Daten von 16 Bytes einschließlich des ersten Operanden, die vorher gelesen worden sind, werden vom Zyklusschieber 50 zyklisch um den Wert von »Λ' + 9« Bytes nach links verschoben.
Andererseits spricht der Wähler 910' in der Entscheidungsschaltung 91' für die Abrufdatenlänge innerhalb der ersten Ausrichtungssteuerung 90' auf den Betriebscode auf der Leitung 20 B und das Signal »0« auf der Leitung 212/4 an und wählt die Ausgangsleitung 915Ά der Abtastschaltung 915, wie es in Fig. 10 angegeben ist. Das Ausgangssignal auf der Leitung 915'Λ wird an die Mustergeneratoren 962' und 964' in der Maskenmuster-Entscheidungsschaltung 96' und die Befehlseinheit 20' übermittelt. Da in diesem Ausführungsbeispiel LF 1 den Wert »15« hat, wird »7« auf der Leitung 915Ά übermittelt.
In Abhängigkeit vom Betriebscode auf der Leitung 20 B und dem Signal »0« auf der Leitung 212A wählt der Wähler 960' in der Maskenmuster-Entscheidungsschaltung 96' die Ausgangsleitung 964'A des rechten Mustergenerators 964', wie es in Fig. 10 angegeben ist. Das Ausgangssignal des Wählers 960' wird über die Leitung 90' C an den Wähler 100 übermittelt und dort gewählt, woraufhin es über die Leitung 90' C zur Operandensteuerung 60 übertragen wird.
Die Operandensteuerung 60 maskiert das Ausgangssignal von 8 Bytes vom Zyklusschieber 50 in Abhängigkeit vom 8-Bit-Muster auf der Leitung 90" Cund schickt anschließend die resultierenden Daten zur Arithmetik-Logik-Einheit 7ö. Somit wird der erste Operand an die Arithmetik-Logik-Einheit 70 übertragen.
Hinsichtlich des zweiten Operanden werden gleiche Verarbeitungen der ersten Decodierstufe, der ersten A-Stufe und der ersten L-Stufe wie oben dargelegt durchgeführt.
Da das Ausgangssignal vom Befehlsregister 210 auf der Leitung 2iA der Betriebscode für den Dezimalbefehl wie im Falle der zweiten Decodierstufe ist, wird das Ausgangssignal des Decodierers 98' zu »1«. Außerdem wird, wie oben erläutert, der Wert »1« auf der Leitung 212A nach Beendigung der zweiten Decodierung gesetzt Dementsprechend wählt der Wähler 282 die Leitung 240 Z oder (zweite Operandenadresse + LF 2) und liefert dies der Leitung 2OA, wie es in F i g. 18 angegeben ist In der ersten Α-Stufe wählt der Wähler 280 die Leitung 240 V, mit anderen Worten die unteren Bits von (zweite Operandenadresse 4- LF 2).
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl in der ersten Ausrichtungssteuerung 90' spricht der Wähler 930' auf den Betriebscode auf der Leitung 20 B und das Signal »1« auf der Leitung 212/4 an und wählt die Leitung 937'/4, wie es in F i g. 10 angegeben ist. Als Ergebnis wird ein Signal » Y + 9« vom Wähler 930'geliefert.
In der Entscheidungsschaltung 91' für die Operandendatenlänge wählt der Wähler 910' die Ausgangsleitung 917'Λ der Abtastschaltung 917' wie es in F i g. 10 angegeben ist. Der Wähler 960' in der Maskenmuster-Entscheidungsschaltung 96' wählt die Ausgangsleitung 964'A des rechten Mustergenerators 964', wie es in F i g. 10 angegeben ist.
Auf diese Weise wird auch der zweite Operand an die Arithmetik-Logik-Einheit 70 übermittelt.
Zu diesem Zeitpunkt sind die Länge LF1 auf »7« und die Länge LF2 auf »4« gesetzt, und die übrigen Operanden werden durch Mikrobefehle ausgelesen.
Nach Beendigung der zweiten Α-Stufe wird der Wert des Registers 232 in das Register 234 gesetzt, und nach Beendigung der zweiten L-Stufe setzt das Ausgangssignal des Registers 234 das Flip-Flop 239. Auch in diesem Falle hat der Inhalt des Registers 232 den Wert »1«, so daß das Flip-Flop 239 auf »1« nach Beendigung der zweiten L-Stufe gesetzt wird. Das Flip-Flop 239 wird solange nicht zurückgesetzt, bis das EOP-Signal, welches das Ende der Ε-Stufe angibt, vom Steuerspeicher 80 auf den Wert »1« geht.
Wenn dementsprechend die Ε-Stufe ausgelöst wird, wird der Wert »1« immer noch für die Leitung 23Λ geliefert. In einer Mikrobefehlsfolge zum Auslesen von Daten, die durch die zweite Operandenadresse repräsentiert sind, wird »1110« in das Ausrichtungsfeld gespeichert. Dementsprechend wählt der Wähler 910 die Leitung 917A Beim vorliegenden Beispiel wird die Leitung 917/4 von der Abtastschaltung 917 mit Binärdaten versorgt die dem Wert »3« entsprechen. Dementsprechend wird der zweite Operand mit einer Länge von 4 Bytes innerhalb des Pufferspeichers 40 und vom zweiten Operandenadressenregister 246 ausgelesen.
Dieser zweite Operand wird vom Zyklusschieber 50 zyklisch um einen Betrag nach links verschoben, der den Daten » Y + 9« entspricht. In der Entscheidungsschaltung 93 für die Verschiebungsbyteanzahl, welche in Fig. 15 dargestellt ist werden Daten vom Wähler 930 geliefert. Die Daten » Y + 9« ergeben einen notwendigen und ausreichenden Verschiebungswert, um vom Zyklusschieber 50 diejenigen 8-Byte-Daten in den aus dem Pufferspeicher 40 ausgelesenen 16-Byte-Daten zu liefern, deren ganz rechtes Ende die zweite Operandenadresse im Operandenadressenregister 246 ist. Die Daten mit der Länge von 8 Bytes werden der Operandensteuerung 60 übermittelt. Der Wähler 960 (vgl. F i g. 16) in der Operandensteuerung 60 wählt und liefert das Ausgangssignal des rechten Mustergenerators 964. Die Operandensteuerung 60 liefert dementsprechend Daten bestehend aus signifikanten Daten mit einer Anzahl von Bytes, die gleich der Operandendatenlänge ist die vom Wähler 910 (vgl. Fig. 14) bei den Daten von 8 Bytes geliefert wird, deren ganz rechte Adresse die zweite Operandenadresse ist, wobei sämtliche anderen Bytes »0« sind. Diese Daten werden zur Arithmetik-Logik-Einheit 70 übermittelt.
Anschließend wird die erste Operandenadresse von der Befehlseinheit 20' zur Adressensteuerung übertragen, und die reale erste Operandenadresse wird in glei-
29
ther Weise wie der zweite Operand erzeugt, um das Auslesen von Daten vorzunehmen. Es werden Daten »1101« in das Ausrichtungsfeld innerhalb einer Mikrobefehlsfolge zur Verarbeitung des ersten Operanden eingespeichert Der Wähler 930 (vgl. Fig. 15) liefert dementsprechend Daten »X + 9«. Anschließend werden der Zyklusschieber 50 und die Operandensteuerung 60 in gleicher Weise von der Ausrichtungssteuerung 90 gesteuert, wie im Falle des zweiten Operanden. Der ausgelesene erste Operand und der vorher ausgelesene zweite Operand werden einer vorgegebenen Operation in der Arithmetik-Logik-Einheit 70 unterworfen, woraufhin das Resultat in den Pufferspeicher 40 und den Hauptspeicher 10 eingespeichert wird. Eine Speicheradresse wird zu diesem Zeitpunkt vom Register 39 in der Adressensteuening 30 geliefert. Auf diese Weise endet die Verarbeitung des Dezimalbetriebsbefehls. In gleicher Weise wie im Falle des MVC-Befehls wird eine Speicheradresse zu diesem Zeitpunkt von dem Operandenadressenregister 274 angelegt. Die Arithmetikschaltung 276 unterwirft jedoch den Wert des Operandenadressenregisters 274 bei jedem Einschreibvorgang einer Operation » - 8«.
Die vorstehenden Ausführungen zeigen, daß gemäß der Erfindung eine sehr einfache Datenverarbeitungsanlage geschaffen wird, welche die Ausrichtung und Wahl von Daten durchführt, die bei der Verarbeitung der verschiedensten Befehle erforderlich sind. Die Ausrichtung von Daten, die in einer L-Stufe erforderlich sind, wird mit einer ersten Ausrichtungssteuerung durchgeführt, die von einer verdrahteten Logik zur ausschließlichen Verwendung gesteuert wird, während die Ausrichtung von Daten, die bei einer Ε-Stufe erforderlich sind, mit einer zweiten Ausrichtungssteuerung durchgeführt wird, die von einem Mikrobefehl gesteuert wird. Hinsichtlich derjenigen Makrobefehle, die nur in den L-Stufen Abrufspeicheroperanden erfordern, wird die Ausrichtung des Speicheroperanden mittels der ersten Ausrichtungssteuerung durchgeführt Andererseits werden bei der Ausführung von Makrobefehlen, die Abrufspeicheroperanden in den L-Stufen und Ε-Stufen erfordern, die Speicheroperanden in den L- bzw. E-Stufen mittels der ersten und zweiten Ausrichtungssteuerung ausgerichtet.
45 Hierzu 12 Blatt Zeichnungen
50
60

Claims (8)

Patentansprüche:
1. Datenverarbeitungsanlage, bei der die Ausführung eines jeden Makrobefehls nach dem Pipelineprinzip in eine Anzahl von Stufen unterteilt wird, mit einem Datenspeicher (10,40),
einer Befehlseinheit (20') zum sequentiellen Dekodieren eines jeden Makrobefehls für die Steuerung der Ausführung derjenigen Stufen, die dessen letzter Stufe vorausgehen,
einem Steuerspeicher (80), der eine Mikrobefehlsfolge nach Maßgabe eines Befehlscodes des dekodierten Makrobefehls Hefen, um dessen letzte Stufe zu steuern, is
ersten Registern (Operandenadressenregister 260, 264,266,270, 272,274) zum Speichern von Operandenadressen und zweiten Registern (Längenfeldregister 220,254) zum Speichern der Längen adressierter Operanden, die für decodierte Makrobefehle abzurufen sind, wobei diese Operandenadressen und diese Längen jeweils zu Anfang von der Befehlseinheit als Ergebnis der Decodierung eines jeden Makrobefehls geliefert und nach jedem für einen decodierten Makrobefehl ausgeführten Auslesevorgang erneuert werden, so daß jeweils die erneuerte Operandenadresse und die erneuerte Länge eine Operandenadrese und eine Länge für den verbleibenden Teil der Operandendaten darstellt, auf die zugegriffen wird, und mit einer Auslesevorrichtung (Adressensteuerung 30) zum Auslesen eines Datenblocks vorgegebener Länge, der zwischen zwei Adressengrenzen angeordnet ist und eine Operandenadresse enthält, die in einem ersten Register gespeichert ist, wobei das Auslesen zuerst während einer vorgegebenen, der letzten Stufe vorangehenden Stufe ausgeführt wird, um einen ersten Datenblock abzurufen, der an der zu Anfang in das erste Register eingespeicherten Operandenadresse beginnt, und das Auslesen danach während der letzten Stufen ausgeführt wird, um einen zweiten Datenblock abzurufen, der der erneuerten Operandenadresse zugeordnet ist,
gekennzeichnet durch
eine Ausrichtungseinrichiung (50, 60, 100), welche den ersten oder den zweiten ausgelesenen Datenblock entsprechend einem ersten oder zweiten Verschiebungsbetrag (90'ß, 90B) verschiebt und anschließend gesteuert durch ein erstes oder zweites Maskenpositionssignal (90'C, 9OQ maskiert, eine erste Ausrichtungssteuerung (90'), die eine erste Vorrichtung (93', 94', 95') und eine zweite Vorrichtung (9Γ, 96', 97') umfaßt, wobei die erste Vorrichtung ein Signal (90'B) mit dem ersten Verschiebungsbetrag und die zweite Vorrichtung das erste Maskenpositionssignal (90'Q der Ausrichtungseinrichtung zuführen, wenn der erste Datenblock zu der Ausrichtungseinrichtung abgerufen wird, und wobei die erste Vorrichtung auf einen Befehlscode {20B) des decodierten Makrobefehls anspricht und die zweite Vorrichtung auf die zu Anfang bereitgestellte Länge (25A), die zu Anfang bereitgestellte Operandenadresse (24A) und den Befehlscode (20B) anspricht,
und durch eine zweite Ausrichtungssteuerung (90), die eine dritte Vorrichtung (93,94,95) und eine vierte Vorrichtung (91,96,97) aufweist, wobei die dritte Vorrichtung ein Signal (90S^ mit dem zweiten Verschiebungsbetrag und die vierte Vorrichtung das zweite Maskenpositionssignal (9OQ der Ausrichtungseinrichtung zuführen, wenn der zweite Datenblock zu der Ausrichtungseinrichtung abgerufen wird, und wobei die dritte Vorrichtung auf ein in einem vom Steuerspeicher gelieferten Mikrobefehl vorhandenes Ausrichtungsfeld (SOA) anspricht, und die vierte Vorrichtung auf die erneuerte Datenlänge (2?A), die erneuerte Operandenadresse (24A) und das Ausrichtungsfeld (SOA) anspricht
2. Datenverarbeitungsanlage nach Anspruch 1, bei der der Datenspeicher einen Hauptspeicher (10) und einen Pufferspeicher (40) aufweist, dadurch gekennzeichnet, daß der Pufferspeicher (40) zwei Bänke (42, 44) aufweist, und daß die Auslesevorrichtung (30) einen ersten Teil und einen zweiten Teil eines ersten oder eines zweiten Datenblocks aus jeweils einer anderen der beiden Bänke abruft, wobei der erste und der zweite Teil jeweils eine Länge besitzen, die die Hälfte der vorgegebenen Länge beträgt, und daß die Ausrichtungseinrichtung einen Zyklusschieber (50) aufweist, um den ersten und den zweiten Teil miteinander zu verschieben, danach denjenigen Teil der verschobenen Daten, dessen Länge die Hälfte dei vorgegebenen Länge beträgt, als verschobene Daten freizustellen, und daß die Ausrichteinrichtung eine Operandensteuerung (60) zum Maskieren der verschobenen Daten aufweist, um am Ausgang der Aur.richtungseinrichtung maskierte Daten bereitzustellen.
3. Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die erste Vorrichtung (93', 94', 95') eine Einrichtung (93') umfaßt, um unterschiedliche erste Verschiebungsbeträge zu erzeugen und um nach Maßgabe des Befehlscodes einen der unterschiedlichen ersten Verschiebungsbeträge auszuwählen, und daß die dritte Vorrichtung (93,94,95) eine Einrichtung (93) zum Erzeugen verschiedener zweiter Verschiebungsbeträge umfaßt, mit der nach Maßgabe des Ausrichtungsfeldes ein bestimmter von den verschiedenen zweiten Verschieb· mgsbeträgen ausgewählt wird.
4. Datenverarbeitungseinrichtung nach Anspruch 3, dadurch gekennzeichnet, daß ein Teil der unterschiedlichen ersten Verschiebungsbeträge von der zu Anfang eingespeicherten Operandenadresse und ein Teil der zweiten Verschiebungsbeträge von der erneuerten Operandenadrese abhängen.
5. Datenverarbeitungsanlage nach Anspruch 3 oder 4 mit einer Einrichtung zum Speichern der Speicheranfangsadresse, die zum Speichern der Ergebnisdaten verwendet wird, die man mit dem ausgeführten Makrobefehl in dem Datenspeicher erhält, wobei diese Speicheranfangsadresse zu Anfang als Ergebnis der Decodierung von jedem Makrobefehl durch die Befehlseinheit bereitgestellt wird und sodann nach jedem Speichervorgang, der für den decodierten Makrobefehl ausgeführt wird, erneuert wird, daß die erneuerte Speicheranfangsadresse eine Anfangsadresse für die zu speichernden Ergebnisdaten darstellt, dadurch gekennzeichnet,
daß Teile von den unterschiedlichen ersten Verschiebungsbeträgen von einer ersten Differenz zwischen einer zu Anfang bereitgestellten Operandenadresse und einer zu Anfang bereitgestellten Speicheranfangsadresse abhängen,
und daß ein Teil der verschiedenen zweiten Verschiebungsbeträge von einer zweiten Differenz zwi-
sehen der erneuerten Operandenadresse und der erneuerten Speicheranfangsadresse abhängen.
6. Datenverarbeitunganlage nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die zweite Vorrichtung (91', 96', 97') eine Einrichtung (9Γ) umfaßt, um eine erste effektive Datenlänge innerhalb des ersten Datenblocks nach Maßgabe der zu Anfang bereitgestellten Länge und des Befehlscodes zu bestimmen und eine Einrichtung (96') aufweist, um das erste Maskenpositionssignal (9O'Q nach Maßgabe der zu Anfang bereitgestellten Operandenadresse, der ersten effektiven Datenlänge und dem Befehlscode bereitzustellen, und daß die vierte Vorrichtung (91,96,97) eine Einrichtung (91) umfaßt, um eine zweite effektive Datenlänge innerhalb des zweiten Datenblocks nach Maßgabe der erneuerten Datenlänge und des Ausrichtungsieides zu bestimmen, sowie eine Einrichtung (96) aufweist, umd das zweite Maskenpositionssignal (9OQ nach Maßgabe der erneuerten Anfangsadresse, der zweiten effektiven Datenlänge und dem Ausrichtungsfeld zu erzeugen.
7. Datenverarbeitungsanlage nach Anspruch 6, dadurch gekennzeichnet, daß die Einrichtung (91') zur Bestimmung der ersten effektiven Datenlänge eine Einrichtung (SH', S15', Si7') aufweist, um die verschiedenen ersten effektiven Datenlängen parallel nach Maßgabe der zu Anfang gespeicherten Länge bereitzustellen, und daß sie einen Wähler (910') aufweist, um eine der unterschiedlichen ersten effektiven Datenlängen nach Maßgabe des Befehlscoües auszuwählen, und daß die Einrichtung (91) zur Bestimmung der zweiten effektiven Datenlänge eine Einrichtung (911, 913, 915, 917) aufweist, um unterschiedliche zweite effektive Datenlängen parallel nach Maßgabe einer erneuerten Datenlänge bereitzustellen, sowie einen Wähler (910), um eine der unterschiedlichen effektiven Datenlängen nach Maßgabe des Ausrichtungsfeldes auszuwählen.
8. Datenverarbeitungsanlage nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß die Einrichtung (96') zum Erzeugen des ersten Maskenpositionssignals eine erste, rechte Mustergeneratorvorrichtung (964') aufweist, um eine erste Anzahl von Bits zu erzeugen, welche einer ersten partiellen Zahl von Bits des ersten ausgelesenen Datenblocks zugeordnet sind, die in dessen rechten Teil angeordnet sind und einem nioht-maskierten Zustand entsprechen, wobei die erste partielle Zahl gleich der ersten effektiven Datenlänge ist, und daß sie eine erste linke Mustergeneratorvorrichtung (962') aufweist, um eine zweite Anzahl von Bits zu erzeugen, die einer zweiten partiellen Zahl von Bits des ersten ausgelesenen Datenblocks zugeordnet sind, die in dessen linken Teil angeordnet sind und einem nicht-rr.askierten Zustand entsprechen, wobei die zweite partielle Zahl der ersten effektiven Datenlänge entspricht, daß eine erste Verschiebungseinrichtung (966') vorhanden ist, um die erste Anzahl von Bits nach rechts um einen Betrag zu verschieben, der von der zu Anfang bereitgestellten Operandenadresse abhängt, daß ein Wähler (960') vorgesehen ist, um einen der Ausgänge der ersten rechten Mustergeneratorvorrichtung, der ersten linken Mustergeneratorvorrichtung und der ersten Verschiebungseinrichtung auszuwählen, und daß die Einrichtung (96) zum Erzeugen des zweiten Maskenpositionssignals eine zweite rechte Mustergeneratorvorrichtung
(964) aufweist, um eine dritte Anzahl von Bits zu erzeugen, die einer dritten partiellen Zahl von Bits des zweiten ausgelesenen Datenblocks zugeordnet sind, die in dessen rechten Teil angeordnet sind und einem nicht-maskierten Zustand entsprechen, wobei die dritte partielle Zahl gleich der zweiten effektiven Datenlänge ist, daß sie eine zweite linke Mustergeneratorvorrichtung (962) aufweist, um eine vierte Anzahl von Bits zu erzeugen, die einer vierten partiellen Zahl von Bits des zweiten ausgelesenen Datenblocks zugeordnet sind, die in dessen linken Teil angeordnet sind un einem nicht-maskierenden Zustand entsprechen, wobei die vierte partielle Zahl gleich der zweiten effektiven Datenlänge ist, und daß sie eine zweite Verschiebungseinrichtung (966) aufweist, um die vierte Anzahl von Bits nach rechts um einen Betrag zu verschieben, der von der erneuerten Operandenadresse abhängt, und daß sie einen Wähler (960) aufweist, um einen der Ausgänge der zweiten rechten Mustergeneratorvorrichtung, der zweiten linken Mustergeneratorvorrichtung und der zweiten Verschiebungseinrichtung auszuwählen.
DE3043653A 1979-11-19 1980-11-19 Datenverarbeitungsanlage Expired DE3043653C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP54148892A JPS5847053B2 (ja) 1979-11-19 1979-11-19 デ−タ処理装置

Publications (2)

Publication Number Publication Date
DE3043653A1 DE3043653A1 (de) 1981-06-19
DE3043653C2 true DE3043653C2 (de) 1985-05-30

Family

ID=15463022

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3043653A Expired DE3043653C2 (de) 1979-11-19 1980-11-19 Datenverarbeitungsanlage

Country Status (3)

Country Link
US (1) US4396982A (de)
JP (1) JPS5847053B2 (de)
DE (1) DE3043653C2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3138897C2 (de) * 1981-09-30 1987-01-08 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum Ausrichten von Speicheroperanden für dezimale und logische Befehle
DE3138948C2 (de) * 1981-09-30 1985-04-18 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zur Erzeugung von Byte-Kennzeichenbits für die Verarbeitung von Speicheroperanden
US4592005A (en) * 1982-07-06 1986-05-27 Sperry Corporation Masked arithmetic logic unit
US4598365A (en) * 1983-04-01 1986-07-01 Honeywell Information Systems Inc. Pipelined decimal character execution unit
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
JPH06100968B2 (ja) * 1986-03-25 1994-12-12 日本電気株式会社 情報処理装置
US5333287A (en) * 1988-12-21 1994-07-26 International Business Machines Corporation System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6735685B1 (en) * 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5859990A (en) * 1995-12-29 1999-01-12 Intel Corporation System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7051168B2 (en) * 2001-08-28 2006-05-23 International Business Machines Corporation Method and apparatus for aligning memory write data in a microprocessor
CN110825435B (zh) * 2018-08-10 2023-01-24 昆仑芯(北京)科技有限公司 用于处理数据的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3858183A (en) * 1972-10-30 1974-12-31 Amdahl Corp Data processing system and method therefor
JPS5230351A (en) * 1975-09-04 1977-03-08 Nippon Telegr & Teleph Corp <Ntt> Data processing unit
JPS5247341A (en) * 1975-10-13 1977-04-15 Hitachi Ltd Data processing unit
JPS5283042A (en) * 1975-12-29 1977-07-11 Fujitsu Ltd Instruction control system of information process device
JPS5376721A (en) * 1976-12-20 1978-07-07 Hitachi Ltd Data processing unit
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
JPS6041768B2 (ja) * 1979-01-19 1985-09-18 株式会社日立製作所 デ−タ処理装置

Also Published As

Publication number Publication date
JPS5672742A (en) 1981-06-17
DE3043653A1 (de) 1981-06-19
US4396982A (en) 1983-08-02
JPS5847053B2 (ja) 1983-10-20

Similar Documents

Publication Publication Date Title
DE3043653C2 (de) Datenverarbeitungsanlage
DE3424962C2 (de)
DE3048675C2 (de) Datenverarbeitungssystem
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2813128C2 (de) Steuereinrichtung für Mikroprogrammspeicher
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE3688824T2 (de) Datenverarbeitungssystem.
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2339636C2 (de) Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE60006021T2 (de) VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2036729A1 (de) Digital Datenverarbeiter
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE1499290A1 (de) Datenverarbeitungsmaschine
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2539211A1 (de) Zugriffssteuereinheit
DE2601242A1 (de) Elektronenrechner mit programmspeicherung
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE1806535B2 (de) Seriell arbeitende digitale rechenanlage
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE2227761B2 (de) Speichersystem
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: STREHL, P., DIPL.-ING. DIPL.-WIRTSCH.-ING. SCHUEBE

D2 Grant after examination
8364 No opposition during term of opposition