DE3043653C2 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 58
- 238000006073 displacement reaction Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000000873 masking effect Effects 0.000 claims description 3
- 240000004808 Saccharomyces cerevisiae Species 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 19
- 238000005070 sampling Methods 0.000 description 17
- 230000000295 complement effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 241000153282 Theope Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand 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. 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.
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 » — X« 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-
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.
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
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.
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)
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,
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
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-
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.
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)
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)
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 | 株式会社日立製作所 | デ−タ処理装置 |
-
1979
- 1979-11-19 JP JP54148892A patent/JPS5847053B2/ja not_active Expired
-
1980
- 1980-11-19 US US06/208,250 patent/US4396982A/en not_active Expired - Lifetime
- 1980-11-19 DE DE3043653A patent/DE3043653C2/de not_active Expired
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 |