DE3043653A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE3043653A1 DE3043653A1 DE19803043653 DE3043653A DE3043653A1 DE 3043653 A1 DE3043653 A1 DE 3043653A1 DE 19803043653 DE19803043653 DE 19803043653 DE 3043653 A DE3043653 A DE 3043653A DE 3043653 A1 DE3043653 A1 DE 3043653A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- address
- operand
- register
- line
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 51
- 230000015654 memory Effects 0.000 claims description 111
- 238000006073 displacement reaction Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000000712 assembly Effects 0.000 claims description 2
- 238000000429 assembly Methods 0.000 claims description 2
- 238000005070 sampling Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 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
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000011435 rock Substances 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
BESCHREIBUNG
Die Erfindung betrifft eine Datenverarbeitungsanlage, wie z.B. einen Digitalrechner, der Makrobefehle in überlappter
Weise verarbeitet. 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, nachstehend als Speicheroperand bezeichnet, zur Verwendung bei der Ausführung eines bestimmten
Makrobefehls wird aus dem Makrobefehl mittels einer Befehlseinheit erhalten, der entsprechende Speieheroperand 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 Speicher-Operanden
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.
5 In dem Falle, wo der auszulesende gewünschte Speicheroporand
Daten umfaßt, die sich auf beiden Seiten der Grenzposition befinden, werden die beiden Auslesevorgänge, um aus dem ■
Speicher 8 Byte mit einer kleineren Adresse als der speziellen Grenzposition und 8 Byte mit einer größeren Adresse als
die spezielle Grenzposition auszulesen, auch dann durchgc-
130025/0572
führt, wenn der gewünschte Speicheroperand kürzer als 8 Byte 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 Ausrichtung 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 zur ausschließlichen Verwendung vorgesehenen Schaltung durchgeführt wird, die
auch als Ausrichtungsschaltung bezeichnet wird, wie es
in der JP-OS 49-95546 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 Datenausrichtungsschaltung 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 Verabeitungszeit eines Befehls verkürzt werden. Um jedoch
die Ausrichtung von Daten während der Ausführung von irgendeinem der verschiedenen Befehle durchzuführen, wird
eine 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
130025/0S72
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 durch 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
sogenannten Pipeline-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) E-Stüfe 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 Ε-Stufe mit dem Mikrobefehl gesteuert. Andererseits werden die übrigen D-, A- und L-Stufe.n
mit einer verdrahteten Logik zur ausschließlichen Verwendung gesteuert.
130025/0S72
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 Verabeitung
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, unter Vermeidung der geschilderten Probleme eine Datenverarbeitungsanlage anzugeben,
die in überlappter Weise Makrobefehle verarbeitet, wobei die Ausrichtung der Daten bei hoher Geschwindigkeit
und mit einer einfachen Steuereinrichtung erfolgen kann. Zur Erreichung dieses Zieles wird bei einer erfindungsgemäßen
Datenverarbeitungsanlage die Ausrichtung von Daten, die in einer L-Stufe erforderlich sind, mit einer
ersten Ausrichtungsschaltung durchgeführt, die von einer verdrahteten Logik zur ausschließlichen Verwendung gesteuert
ist, während die Ausrichtung der Daten, die in einer E-Stufe erforderlich sind, mit einer zweiten Ausrichtungsschaltung
durchgeführt wird, die von einem Makrobefehl gesteuert wird.
Hinsichtlich derjenigen Makrobefehle, die Speicheroperanden nur in den L-Stufen abrufen müssen, wird die Ausrichtung
des Speicheroperanden mittels der ersten Ausrichtungsschaltung durchgeführt. Andererseits werden bei der Ausführung
von Makrobefehlen, bei denen das Abrufen von Speicheroperanden sowohl in den L-Stufen als auch den Ε-Stufen erforder-
130025/0572
-V-
lieh ist, die in den L- bzw. Ε-Stufen abgerufenen Speicheroperanden
mit den ersten und zweiten Ausrichtungsschaltungen ausgerichtet.
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
Figur 1 ein Blockschaltbild einer erfindungsgemäßen Datenverarbeitungsanlage
;
Figur 2 ein Blockschaltbild einer Befehlseinheit zur Verwendung bei der Datenverarbeitungsanlage gemäß
Figur 1;
Figur 3 ein Blockschaltbild einer ersten Ausrichtungssteuerung für die Datenverarbeitungsanlage nach
Figur 1;
Figur 4 ein Blockschaltbild einer Adressensteuerung für
eine Datenverarbeitungsanlage nach Figur 1; Figur 5 ein Diagramm zur Erläuterung der Wirkungsweise einer
Adressenänderungsschaltung für die Anordnung gemäß Figur 4;
Figur 6 ein Blockschaltbild einer Entscheidungsschaltung für die Abrufdatenlänge für eine Anordnung gemäß
Figur 3;
Figur 7 ein Blockschaltbild einer Entscheidungsschaltung für die Verschiebungs-Byte-Zahl für eine Anordnung
gemäß Figur 3;
Figur 8 ein Blockschaltbild einer Maskenmuster-Entscheidungsschaltung
für eine Anordnung gemäß Figur 3; Figur 9 ein Diagramm zur Erläuterung der Ausgangssignale
der Schaltung nach Figur 8; Figur 10 ein Diagramm zur Erläuterung der Operationen der
Wähler bei den Schaltungen gemäß Figur 6 bis 8; Figur 11 ein Blockschaltbild einer Operandensteuerung für
eine Datenverarbeitungsanlage nach Figur 1; Figur 12 ein Diagramm zur Erläuterung der Anordnung eines
Steuerregisters für eine Datenverarbeitungsanlage nach Figur 1;
130025/0S72
Figur 13 ein Blockschaltbild einer zweiten Ausrichtungssteuerung für eine Datenverarbeitungsanlage nach
Figur 1;
Figur 14 ein Blockschaltbild einer Entscheidungsschaltung
für die Abrufdatenlänge für eine Anordnung gemäß
Figur 13;
Figur 15 ein Blockschaltbild einer Entscheidungsschaltung
für die Verschiebungs-Byte-Anzahl für eine Anordnung gemäß Figur 13;
Figur 16 ein Blockschaltbild einer Maskenmuster-Entscheidungsschaltung
für eine Anordnung gemäß Figur 13; Figur 17 ein Diagramm zur Erläuterung der Wirkungsweise
der Schaltung gemäß Figur 13; und in
Figur 18 ein Diagramm zur Erläuterung der Wirkungsweise eines Wählers für eine Schaltung gemäß Figur 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 tiberlappungs-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 erfodert, 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.
Figur 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
13ÖG2S/0S72
Wählen der Ausgangssignale dieser Ausrxchtungssteuerungen.
Bei den in Figur 1 dargestellten Blöcken haben der Hauptspeicher 10, die Adressensteuerung 30, der Pufferspeicher
40, der Zyklusschieber 50, die Operandensteuerung 60, die Arithmetik-Logik-Einheit 70, der Steuerspeicher
80 und die Ausrichtungssteuerung 90 im wesentlichen die gleiche Anordnung wie in der US-Anmeldung 79 247.
Bei der Anordnung nach Figur 1 bestehen wesentliche Merkmale der erfindungsgemäßen Schaltung darin, daß die 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 Ausrxchtungssteuerungen 90 und 90' werden verwendet, um die in der L-Stufe bzw. Ε-Stufe ausgelesenen
Daten auszurichten und zu wählen.
Befor eine detailierte Erläuterung des erfindungsgemäßen
Systems erfolgt, soll der Hauptgedanke der Wirkungsweise beschrieben werden.
Wie nachstehend näher erläutert, wird eine Vielzahl von aus dem Pufferspeicher 40 ausgelesenen Makrobefehlen
über den Zyklusschieber 50 zur Befehlseinheit 20' übertragen.
Diese Vielzahl von Markobefehlen 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 Markobefehls jeweils in ersten, zweiten, dritten und vierten Maschinenzyklen arbeiten, dann
arbeiten die D- bis Ε-Stufen des zweiten Markobefehls 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.
130G25/GS72
In gleicher Weise werden die anschließenden Makrobefehle in überlappter Weise verarbeitet. Wenn jedoch der erste
Markobefehl 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 IC-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 cnt~ spechenden Maschinenzyklen durchlaufen, wobei .ein Zyklus
für eine Stufe gilt, und parallel mit ihnen und mit jeder Verzögerung von einem Maschinenzyklüs 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 2OA an die Adressensteuerung 30 übertragen. Der Pufferspeicher
40 besteht aus zwei Bereichen 42 und 44. Die Adressen-Steuerung 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
3Q 42 und 44 des Pufferspeichers 40 aus. Der aus dem Pufferspeicher
40 ausgelesene 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
Ausgangssignal des Zyklusschiebers 50, die andere als die Byte-Positionen einschließlich eines gewünschten Operanden
130025/0572
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 60, 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 Speicheroperand-Abrufanforderung nicht nur in der Α-Stufe, sondern auch in der Ε-Stufe. Die.Verarbeitung
der Speicheroperanden-Abrufanforderung, die in der A-Stufe entwickelt worden ist, wird von der Ausrichtungssteuerung 90'
wie im Falle des überlappungsbefehles gesteuert.
Wenn im Gegensatz dazu die in der Ε-Stufe aufgetretene Speicheroperand-Abrufanforderung zu verarbeiten ist, wählt
der Wähler 100 die Ausrichtungssteuerung 90, welche die
Adressensteuerung 30, den Zyklusschieber 50 und die Operand.ensteuerung
60 steuert.
Auf diese Weise wird der Speicheroperandenabruf in der Α-Stufe von der Ausrichtüngssteuerung 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 Ausrichtungssteuerung 90,
die vom Makrobefehl gesteuert wird, und die Ausrichtungssteuerung 90 kann mit einer einfachen Schaltung realisiert
werden.
Das erfindungsgemäße System soll nachstehend im einzelnen erläutert werden.
130025/0572
Bei der Anordnung nach Figur 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. Figur 2) über die Leitung 20A 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 3OA oder
3OB. Der Pufferspeicher 40 besteht aus den beiden ersten und zweiten Bereichen 42 und 44. Die ersten und zweiten
Bereiche 42 und 44 liefern gespeicherte Information, jeweils mit einer Länge von 8 Byte, auf Leitungen 42A und 42B in
Abhängigkeit von den physikalischen Adressen huf den Leitungen 3OA bzw. 3OB. 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 5OA zur Befehlseinheit, ohne irgendeine Verschiebungsoperation vorzunehmen.
In dem Falle, wo der auszulesende Makrobefehl im zweiten Bereich 44 gespeichert ist, verschiebt der Zyklusschieber
50 den vom zweiten Bereich 44 gelieferten Makrobefehl um einen Betrag von 8 Byte nach links und überträgt ihn dann
über die Leitung 5OA zur Befehlseinheit 20'. Die Verschiebungsgröße
des Zyklusschiebers 50 beim Auslesen des Makrobefehls wird von der Befehlseinheit 20' über eine Leitung
2 8A der Ausrichtungssteuerung 90' übermittelt.
Wie in Figur 3 dargestellt, speichert die Ausrichtungssteuerung 901 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 901B mittels einer Verschiebungssteuerschaltung
95' vorzunehmen.
Wenn der vorgegebene Makrobefehl nicht im Puffer-
130026/0572
speicher 40 gespeichert ist, wird der spezielle Makrobefehl zum Pufferspeicher 40 über eine Leitung 1OA 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 3OA bis 3OC
der Adressensteuerung 30 geliefert. Der Einfachheit halber sind die zum Hauptspeicher führenden Adressenleitungen in
Figur 1 weggelassen. Auf diese Weise wird die Vielzahl von Makrobefehlen aus dem Pufferspeicher 40 ausgelesen.
Bei der Anordnung gemäß Figur 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-zuSpeicher-Befehl
hat eine Länge von 6 Byte. Beim Eingeben des Speicher-zu-Speicher-Befehls in das Befehlsregister
werden nur 4 Byte auf der signifikanteren Seite zuerst gesetzt. Das Befehlsregister 210 hat eine Länge von 4 Byte.
Innerhalb dieser Länger 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-Feld des Befehlsregisters 210 gespeichert. Hinsichtlieh
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
130026/OS72
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
210 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-Befehlr,
werden die anschließenden Makrobefehle an ihrer Übermittlung vom Befehlspuffer 200 zum Befehlsregister 210 gehindert:
und ihre D-Stufen nicht gestartet. Die Register 2 32 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 Decodierers 230 in den vorher im BeCehlsregistor
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 Befelsregister
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 Befehlsregisters 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 Befehls-
13002S/0572
register 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 2-10
gespeicherten Makrobefehls bei der Α-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. Figur 1) innerhalb des Steuerspeichers 80 (vgl.
Figur 1) in der L-Stufe eingespeichert und in der E-Stufe verwendet wird.
Im Ausgangssignal des BefehlsSchlangenregisters 2 50
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 Befehlsschlagenregister
250 geliefert wird. Das Längenfeld, das vom Befehlsschlangenregister
250 in der Α-Stufe jedes Befehls geliefert
wird, geht durch die Arithmetikschaltung 252 hindurch, um in den Längenfeldregistern 254 und 220 bei den L- bzw. E-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
130025/0S72
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 Inhalb des Operandenadressenregisters 270 wird nacheinander bei jedem Maschinenzyklus in die Operandenadressenregister
272 und 274 weitergeschoben. Außerdem wird der Inhalt des Operandenadressenregisters 2 74 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 anschliessend
mit einer Arithmetikschaltung 2 48 überprüft.
Wie in Figur 18 dargestellt, wählt ein Wähler 282 die Operandenadresse von irgendeinem der Operandenadressen-
130Ö25/0S72
register 240, 246, 260, 266 und 274 und schickt sie der Adressensteuerung 30 über die Leitung 2OA.
Ein Wähler 284 wählt die unteren 4 Bits der Operandenadresse in den Operandenadressenregistern 266 und 260 und
schickt sie 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 den AusrichtungsSteuerungen 90 und 90".
Wie in Figur 3 dargestellt, decodiert in der Ausrichtungsschaltung
90' ein Decodierer 98' den Betriebscode,der über eine Leitung 21A vom Befehlsregister 210 innerhalb der
Befehlseinheit 20' angelegt wird, und unterscheidet die Richtung der Ausrichtung des vom Wähler 282 gelieferten
Operanden, d.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 genannte 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
5 der Ausrichtung eingespeichert. Ein Ausgangssignal vom
Register 99' wird an die Adressensteuerung 30 (vgl. Figur 1) über eine Leitung 901A den Wähler 100 und eine Leitung 9011A
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 9OA den Wähler 100
und die Leitung 90"A geschickt. Einzelheiten der Adressensteuerung
30 sind in Figur 4 dargestellt.
Die virtuelle Adresse von 32 Bits des Operanden, die über die Leitung 2OA von der Befehlseinheit 20" angelegt
130025/0672
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 38B einer Adressenä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 32B, das von der Adressenumwandlungsschaltung
32 angelegt wird, liefert die Adressenänderungsschaltung 38 binäre Daten von 4 Bits, die Werte
von 11O", " + 8" und "-8" auf den Leitungen 38A und 38B auf
der Basis der in Figur 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 Bezugnahme auf Figur 5 realisiert werden kann, erscheint
eine nähere Erläuterung entbehrlich. Um die Additionen vorzunehmen, sind die Quelladressenregister 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 den ersten bzw. zweiten Bereichen 42 und 44 auszulesen.
Die Wirkungsweise der Adressenänderungsschaltung 38 hat folgende Bedeutung. Die Adressierungen der ersten und
zweiten Bereiche 42 und 44 des Pufferspeichers 40 erfolgt abwechselnd mit 8 Byte. Genauer gesagt, in den Fällen, wo
die Adressen O bis 7, 16 bis 23, 32 bis 39, ... in Dezimalschreibweise
sind, werden die diesen Adressen entsprechenden Daten in den ersten Bereich 42 eingespeichert, und in den
Fällen, wo die Adressen 8 bis 15, 24 bis 31, 40 bis 47, in Dezimalschreibeweise sind, werden die diesen Adressen
entsprechenden Daten in den zweiten Bereich 44 eingespeichert
130025/0572
Wenn dementsprechend die Adressen im Binärsystem angegeben sind, werden die Daten entsprechend den Adressen,
bei denen jeweils das vierte Bit, gerechnet vom geringstwertigen Bit, auf der Leitung 32B den Wert "O" oder "1"
hat, im ersten Bereich 42 bzw. zweiten Bereich 44 gespeichert.
Infolgedessen gibt in dem Falle, wo das Signal auf der Leitung 9O"A den Wert "O" hat, die Adresse auf der Leitung
32A die ganz linke Adresse der auszulesenden Daten an; damit wird (i), wenn das Signal auf der Leitung 32B den
Wert "O" hat, das Datensignal "0" auf der Leitung 38A ü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 38B 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 (ii) das Signal auf der Leitung 32B
den Wert "1" hat, wird das Datensignal "0" auf der Leitung 38B geliefert, um die Adresse im Quelladressenregister 36
bei der Adresse auf der Leitung 32A 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 Quelladressen-5 registern 34 und 36 die Adressen gespeichert, um jeweils
aus den ersten und zweiten Bereichen 42 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 32A ist.
Im Gegensatz dazu gibt in dem Falle, wo das Signal auf der Leitung 9011A den Wert "1" hat, die Adresse auf
der Leitung 32A die ganz rechte Adresse der auszulesenden Daten an, und wenn somit (i) das Signal auf der Leitung 32B
den Wert "0" hat, wird das Datensignal "0" auf der Leitung 38A geliefert, um die Adresse im Quelladressenregister 34
J3ÖÖ25/Ö572
bei der Adresse auf der Leitung 32A zu halten, und gleichzeitig wird das Datensignal "-8" auf der Leitung 38B geliefert,
um die Adresse im Quelladressenregisher 36 auf einen Wert zu bringen, bei dem "-8" zur Adresse auf der Leitung
32A hinzuaddiert wird.
Wenn andererseits (ii) das Signal auf der Leitung 32B
den Wert "1" hat, wird das Datensignal "O" auf der Leitung 38B geliefert, um die Adresse im Quelladressenregister 36
bei der Adresse auf der Leitung 32A zu halten, und gleichzeitig wird das Datensignal "-8" auf der Leitujng 38Λ geliefert,
um die Adresse im Quelladressenregxster 34 auf einen Wert zu bringen, bei dem "-8" zur Adresse auf der
Leitung 32A hinzuaddiert wird. Somit werden in den Quelladressenregistern
34 und 36 die Adressen gespeichert, um jeweils aus den ersten und zweiten Bereichen 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 32A ist.
Wie sich aus Figur 1 entnehmen läßt, werden die Ausgangssignale von diesen Quelladressenregistern 34 und
jeweils den ersten und zweiten Bereichen 42 und 44 des Pufferspeichers 40 über die Leitungen 3OA und 3OB 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 durchgeführt.
Die Daten mit 16 Byte werden über die Leitungen 42A und 44A dem Zyklusschieber zugeführt. Der Zyklusschieber
nimmt eine zyklische Verschiebung der angelegten Daten Byte für Byte nach links um eine Anzahl von Bytes vor, die durch
130Ö2S/O572 original inspected
ein Verschiebungssteuersignal vorgegeben wird, welches über eine Leitung 9O"B vom Wähler 100 zugeführt wird. Die
Ausrichtungssteuerungen 90' und 90 versorgen die Leitungen 901B 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'B und 9OB. In der Ausrichtungssteuerung 90'
wird das Verschiebungssteuersignal von der Verschiebungssteuerschaltung
95' in Figur 3 vorgegeben.
Diese Verschiebungssteuerschaltung 95' empfängt ein
Ausgangssignäl 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 24A bzw. 26A, bestimmt die Anzahl von Verschiebungsbytes
auf der Basis dieser Daten und unter der Steuerung des über eine Leitung 2OB zugeführten Betriebscodes, und speichert
die bestimmte Anzahl im Register 94' für die Verschiebungsbyteanzahl
.
Wie im einzelnen in Figur 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 9331A mit dem 2'er Komplement von Daten
"X", bestehend aus den unteren 4 Bits der Operandenadresse, entsprechend Daten "-X". Der Wähler 9 32' wählt die Leitung
24A oder 26A. Der Wähler 936' wählt das Datensignal "-X" auf der Leitung 9331A oder ein konstantes Datensignal "9"
auf einer Leitung 9341A. 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 2OB angelegt
130025/0572
wird. Außerdem spricht der Wähler 932' auch auf ein Signal auf einer Leitung 212A an, das von der Befehlseinheit
20' geliefert wird- Die Zusammenhänge zwischen den Wählvorgängen dieser Wähler und den Betriebscodes sind
in Figur 10 aufgeführt. In Figur 10 ist ferner die Verwendung der entsprechenden Betriebscodes angegeben.
Wie sich wiederum aus Figur 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 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 Figur 11 dargestellt.
In Abhängigkeit von Abrufmaskendaten mit 8 Bits, die vom Wähler 100 über Leitungen 901C übermittelt werden,
schneidet sie mittels Gattern 62 sämtliche Daten in bestimmten Bytepositionen unter den über die Leitungen 50Λ
angelegten Daten ab. Nach dem Speichern der resultierenden Daten in einem Operandenpufferregister 600 führt die Opercindensteuerung
60 sie der Arithmetik-Logik-Einheit 70 über eine Leitung 6OA zu.
Die AusrichtungsSteuerungen 90 und 90' versorgen die
Leitungen 90'C und 9OC mit Abrufmaskendaten zur Verarbeitung
der von den L- bzw. Ε-Stufen erzeugten Speicheroperanden-Abrufanforderungen.
Der Wähler 100 wählt eine der Leitungen 901C und 9OC. In der Ausrichtungssteuerung 90'
werden die Abrufmaskendaten von einer Maskenmuster-PJntscheidungsschaltung
96 über eine Leitung 961A sowie ein Abrufmaskenregister 97* geliefert, wie es in Figur 3 dargestellt
ist. Die Maskenmuster-Entscheidungsschaltung 96' spricht auf ein Ausgangssignal einer Entscheidungsschaltung
91' für die Abrufdatenlä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 Abrufmaskenmuster unter der Steuerung des Betriebscodes, der über die Leitung 2OB anliegt
130025/067
Die Entscheidungsschaltung 91" für die Abrufdabendat:enlänge
spricht auf ein Langenfeld an, das über eine Leitung 25A vom BefehlsSchlangenregister 250 in der Befehlseinheit
20" anliegt, und bestimmt eine Abrufdatenlänge unter der Steuerung des Betriebscodes auf der Leitung
2OB.
Wie im einzelnen in Figur 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
wird mit dem Betriebscode gesteuert, der über die Leitung 2OB anliegt. Der Zusammenhang zwischen dem Betriebscode
und dem Ausgangssignal des Wählers 910' ist in Figur 10 angegeben.
Die Abtastschaltungen 911', 915' und 917' sind über
die Leitung 25A an das Längenfeld des Befehlsschlangenregisters 250 in der Befehlseinheit 20' angeschlossen. Die
Abtastschaltung 911' vergleicht die gesamte Datenlänge
LF1 innerhalb des Längenfeldes mit "7 - W" und liefert einen
kleineren Wert. Hierbei bezeichnet "W" Daten, bestehend aus dein 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 LF11, die von den signifikanteren
4 Bits der Datenlängen LF1 und "7" dargestellt werden, und liefert kleinere Daten. Die Abtastschaltung
917' vergleicht Daten LF'2, 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
130025/0572
gewählt und verwendet, um Daten von 4 Bytes unabhängig vom Wert von LF1 auszulesen.
Wie im einzelnen in Figur 8 dargestellt, besteht die Maskenmuster-Entscheidungsschaltung 96' (vgl. Figur 3)
aus einem linken Mustergenerator 962' und einem rechten Mustergenerator 964', an denen das Ausgangssignal der
Entscheidungsschaltung 91' über eine Leitung 911A anliegt;
einer Schiebereinrichtung 966", die dazu dient, ein Ausgangssignal
des linken Mustergenerators 962' um einen Betrag nach rechts zu schieben, der durch Daten repräsentiert
wird, die aus den unteren 3 Bits aus den unteren 4 Bits im Operandenadressenregister 240 bestehen, wobei dar>
Signal auf der Leitung 2 4A zugeführt wird; sowie einem Wähler 960', der dazu dient, die Ausgangssignal der bedden
Generatoren 962' bzw. 964' und der Schiebeeinrichtung 9 66' auszuwählen. Der Wähler 960' wird mit dem Betriebscode auf der Leitung 2OB gesteuert.
Wie in Figur 9 dargestellt, sind die Ausgangssignale der Generatoren 962' und 964' Daten aus 8 Bits, bei denen
der Wert "1" auf der linken Seite bzw. rechten Seite zusätzlich zur Zahl der Abrufdatenlänge von der Entscheidungsschaltung
91' für die Abrufdatenlänge (vgl. Figur 3) besetzt wird.
Ein Ausgangssignal vom Wähler 960' wird dem Abrufmaskenregister 97' über die Leitung 96 Ά übermittelt und
dort eingespeichert (vgl. Figur 3). Ein Ausgangssignal des Abrufmaskenregisters 97' wird den acht Gattern 62 innerhalb
der Operandensteuerung 60 übermittelt, wie es in Figur 11 dargestellt ist. Es schaltet die Gatter ab, entsprechend
einem Wert "0" des Ausgangssignales des Wählers 9 60*, um damit eine "0" bei allen an den Gattern anliegenden Daten
von 1 Byte einzugeben, und es schaltet die Gatter ein, entsprechend einem Wert "1", um damit sämtliche Daten von
einem Byte hindurchzulassen, die an den Gattern anliegen, wenn sie intakt bleiben. Somit werden Daten, bei denen nur
230025/0572
die Bytes an gewünschten Stellen signifikant sind und sämtliche anderen "O" sind, im Operandenpufferregister
600 gespeichert.
Die auf diese Weise im Operandenpufferregister 600 gespeicherten Daten werden der Arithmetik-Logik-Einheit
über die Leitung 6OA zugeführt.
In dem Falle, wo der Abruf des Speicheroperanden in der Α-Stufe eines bestimmten Befehls gefordert wird, wird
die Ausrichtung dieses Operanden mit der oben beschriebenen Ausrichtungssteuerung 90' durchgeführt. Im Befehl
mit SS-Format werden jedoch die Abrufe der SpeicherOperanden
sowohl in der Α-Stufe als auch der Ε-Stufe gefordert. In diesem Falle wird die in der Α-Stufe entwickelte Speicheroperanden-Abrufanforderung
mit der Ausrichtungssteuerung 90* wie bei den anderen Befehlen als denen mit SS-Format verarbeitet.
Die in der Ε-Stufe entwickelte Speicheroperanden-Abruf
an förderung wird mit dem Steuerspeicher 80 und der Ausrichtungssteuerung 90 verarbeitet, wie es in der erwähnten
US-SN 79 247 erläutert ist.
Bei der Verarbeitung der Α-Stufe wird das Ausgangssignal von der Entscheidungsschaltung 91' für die Abrufdatenlänge
innerhalb der Ausrichtungssteuerung 90' zu der Arithmetikschaltung 252 innerhalb der Befehlseinheit
20' über die Leitung 91' geschickt. Die Differenz dieses
Ausgangssignals vom Längenfeld LF1 des Befehlsschlangenregisters
250 wird in der L-Stufe ins Längenfeldregister eingespeichert und wird in der Ε-Stufe weiter ins Längenfeldregister
220 eingespeichert.
Infolgedessen wird die Länge LF des in der E-Stufe abzurufenden Speicheroperanden im Längenfeldregister 220
gespeichert. Die Daten LF werden der Ausrichtungssteuerung 90 über eine Leitung 22A übermittelt.
Andererseits wird der Betriebscode vom Befehlsschlangenregister 250 über die Leitung 2OB an das Steuerspeicher-Adressenregister
810 im Steuerspeicher 80 (vgl. Figur 1) in der L-Stufe angelegt, die der Ε-Stufe vorhergeht. Der
130025/0672
Steuerspeicher 80 liest nacheinander Makrobefehle innerhalb
einer Makrobefehlsfolge aus, die von diesem Betriebscode zugeordnet wird, und steuert die Ausführung des E-Stufen
der Makrobefehle. Beim Auslesen von einem Makrobefehl
speichert der Steuerspeicher 80 den Makrobefehl in ein dort vorgesehenes Steuerregister 800 ein (vgl- Figur
12).
Jeder Makrobefehl hat ein Feld 802 für die nächste Adresse für die Zuordnung eines Makrobefehls, der als
nächster auszulesen ist, ein Steuerfeld 804 zur Angabe einer Steuerinformation für die Ausführung des Befehls,
ein Operationsbeendigungsfeld 805 zur Angabe, ob die Operation der Ε-Stufe beendet ist, und ein Ausrichtungsfeld
aus 4 Bits zur Steuerung der Ausrichtung und Wahl von ausgelesenen Daten. Das Steuerfeld 804 enthält ein Feld, das
eine Schreibanforderung und eine Leseanforderung in der E-Stufe ausgibt, welche über eine Leitung 80C geliefert
werden. Die Werte "00" und "01" dieses Feldes geben die Leseanforderungen des zweiten bzw. ersten Operanden an,
und die Werte "10" oder "11" geben das Schreiben des ersten Operanden an. Die Ausrichtungssteuerung 90 empfängt das
Ausrichtungsfels 806 über eine Leitung 8OA und liefert Steuersignale an die Adressensteuerung 30, den Zyklusschieber
50 und die Operandensteuerung 60 über die Leitungen 9OA, 9OB bzw. 9OC.
Wie in Figur 13 dargestellt, decodiert in der Ausrichtungssteuerung
90 ein Decodierer 98 das Ausrichtungsfeld 806 innerhalb des Steuerregisters 800, um festzustellen,
ob die von der Befehlseinheit 20' gelieferte Operandenadresse die ganz linke Adresse oder die ganz rechte Adresse
ist. Da der Fall, ob die Operandenadresse die ganz linke Adresse ist oder nicht, in Abhängigkeit von Makrobefehlen
vorher bestimmt ist, ist die obige Unterscheidung in der Weise möglich, daß die Inhalte der von den Makrobefehlen
ausegelesenen Ausrichtungsfelder vorher so bestimmt sind, daß sie entsprechend den Makrobefehlen spezifisch sind.
130025/0572
In dem Falle, wo die Operandenadresse die ganz rechte Adresse angibt, wie z.B. bei dem Dezimalbetriebsbefehl,
liefert der Decodierer 98 eine "1", und in jedem anderen Falle liefert er eine "O".
Das gelieferte Ausgangssignal wird in ein Register 99 für die Richtung der Ausrichtung eingespeichert. Ein
Ausgangssignal vom Register 99 für die Richtung der Ausrichtung wird an die Adressensteuerung 30 über die Leitung
9OA gegeben (vgl. Figur 1). Die Ausrichtungssteuerung 90
liefert ein Verschiebungssteuersignal für den Zyklusschieber 50 in der Ε-Stufe mittels einer Verschiebungssteuerschaltung
95. Diese Verschiebungssteuerschaltung 95 erhält 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 erhält die unteren 4 Bits der von der Befehlseinheit 20' gelieferten ersten und zweiten Operandenadressen
über die Leitungen 24A bzw. 26A und erhält außerdem Daten
in einem nicht näher dargestellten Arbeitsregister 72, das sich innerhalb der Arithmetik-Logik-Einheit 10 befindet
(vgl. Figur 1). Auf der Basis dieser Daten bestimmt sie die Anzahl der Verschiebungsbytes unter der Steuerung des Ausrichtungsfeldes
806 in dem Steuerregister 800, was über die Leitung 8OA erfolgt, wobei die bestimmte Anzahl in das
Register 9 4 für die Verschiebungsbyteanzahl eingespeichert wird.
Wie im einzelnen in Figur 15 dargestellt, besteht die Entscheidungsschaltung 93 für die Verschiebungsbyteanzahl
aus Wählern 932, 936 und 930, einer Komplementschaltung 933, Registern 934 und 9 35 sowie einem Addierer 937. Die Komplementschaltung
933 liefert das 2'er Komplement von Daten "X", zusammengesetzt
aus den unteren 4 Bits des Operandenadressenregisters 240, mathematisch entsprechend Daten "-X". Die
Register 934 und 935 speichern binäre Daten entsprechend
130025/0572
den Konstanten "9" bzw. "13". Der Wähler 932 wählt unter den unteren 4 Bits von "X" und "Y" der Operandenadressen
auf den Leitungen 24A bzw. 26A, während der Wähler 936 eines der Ausgangssignale von der Komplementschaltung 9
sowie den Registern 934 und 935 wählt. Der Addierer 937 berechnet die Summe der Ausgangssignale von den Wählern 9
und 9 36.
Der Wähler 930 wählt unter den folgenden Ausgangssignulen:
Einem Ausgangssignal "Z" des Arbeitsregisters 72, Daten "Y1" auf einer Leitung 938A, auf der sämtliche unteren 3 Bits dor:
Daten "Y" auf der Leitung 26A zu "0" gemacht sind, dem Ausgangssignal
des Wählers 9 32 und dem Ausgangssignal des Addierers 9 37. Sämtliche Operationen der Wähler 9 32, 9 36
und 9 30 sind gesteuert von Daten im Ausrichtungsfeld 806
innerhalb des Steuerregisters 800, die über die Leitung 80Λ geliefert werden. Die Zusammenhänge zwischen den Wähloperationen
der Wähler und dem Ausrichtungsfeld 806 sind in Figur 17 aufgelistet. In Figur 17 sind außerdem die Verwendungen
der jeweiligen Ausrichtungsfelder angegeben. Wenn das Ausgangssignal
des Decodierers 9 8 (vgl. Figur 13) den Wert "O" hat, so entsprechen die vom Wähler 9 30 gelieferten Daten
irgendwelchen Daten "X", "Y", "Y"1, "Z", "Y-X11, "Y+13" und
"Y+9", wie es in Figur 17 angegeben ist, und wenn das Ausgangssignal des Decodierers 98 (vgl. Figur 13) den Wert "1"
hat, so- entsprechen die vom Wähler 9 30 gelieferten Daten den Werten "Y+9" oder "X+9". Bei der Verarbeitung eines
bestimmten Makrobefehls können dementsprechend die Daten des Ausrichtungsfeldes innerhalb einer Mikrobefehlsfolge
zur Überwachung der Steuerung der Ausführung des Makrobefehls
vorher entsprechend Figur 17 spezifiziert werden, so daß die gewünschte Anzahl von zu verschiebenden Bytes
vom Wähler 9 30 geliefert werden kann. Die Ausrichtungsdaten müssen jedoch auch bei der Spezifizierung des Wählvorganges
eines nachstehend näher beschriebenen Wählers 960 bestimmt werden.
130025/0572
Bei der Anordnung gemäß Figur 15 ist im Falle der
Wahl der Daten "Z" des Arbeitsregisters 72 die Verschiebung von irgendeiner gewünschten Anzahl von Bytes möglich, indem
man die Daten "Z" in der notwendigen Weise bestimmt. Die Ausrichtungssteuerung 90 liefert Abrufmaskendaten zur Steuerung
der Operandensteuerung 60 in der Ε-Stufe von einer Maskenmuster-Entscheidungsschaltung 96 (vgl. Figur 13) und
über eine Leitung 96A sowie ein Abrufmaskenregister 97.
In Abhängigkeit von einem Ausgangssignal von einer Entscheidungsschaltung 91 für die Abrufdatenlänge, welche
eine auszulesende Datenlänge vorgibt, und von einem Ausgangssignal der unteren 4 Bits innerhalb des Gperandenadressenregisters
liefert die Maskenmuster-Entscheidungsschaltung 9 6 ein Abrufmaskenmuster unter der Steuerung des
Ausrichtungsfeldes 806 innerhalb des Steuerregisters 800, wobei die Zuführung über die Leitung 8OA erfolgt.
Die Entscheidungsschaltung 91 für die Abrufdatenlänge
spricht auf die Ausgangssignale des Längenfeldregisters innerhalb der Befehlseinheit 20! und des Arbeitsregisters
72 innerhalb der Arithmetik-Logik-Einheit 70 an und bestimmt eine Abrufdatenlänge unter der Steuerung des Ausrichtungsfeldes
806.
Wie im einzelnen in Figur 14 dargestellt, besteht die Entscheidungsschaltung 91 für die Abrufdatenlänge aus Minimalwert-Abtastschaltungen
911, 913, 915 und 917, einem Konstanten-Register 919 und einem Wähler 910 zur Auswahl
von einem der Ausgangssignale der Abtastschaltungen und des Registers sowie des Ausgangssignales des Arbeitsregisters
72 auf der Leitung 72A. Der Wähler 910 wird vom Ausrichtungsfeld
806 innerhalb des Steuerregisters 800 gesteuert, das über die Leitung 82A anliegt» Die Zusammenhänge zwischen dem
Inhalt des Ausrichtungsfeldes und dem Ausgangssignal des
Wählers 910 ist in Figur 17 angegeben. Die Abtastschaltungen 911, 913, 915 und 917 sind an das Längenfeldregister 220
innerhalb der Befehlseinheit angeschlossen. Die Äbtast-Schal-
130025/05^2
tungen 911 und 913 vergleichen die gesamte Datenlänge
LF innerhalb des Längenfeldregisters 220 mit "7" bzw. "3" und liefern kleinere Werte. Die Abtastschaltung 915
vergleicht Daten LF1, die von den oberen 4 Bits der Datenlängen LF repräsentiert werden, und "7" und liefert kleinere
Daten. Die Abtastschaltung 917 vergleicht Daten LF2, bestehend aus den unteren 4 Bits der Datenlänge LF, und
"7" und liefert kleinere Daten.
Die Abtastschaltung 911 wird in dem Falle gewählt, wo die aus dem Pufferspeicher 40 auszulesende Datonlänge
auf 8 Byte oder weniger begrenzt werden kann, z.B. bei einem MVC-Befehl. Die Abtastschaltung 913 wird gewählt,
wenn die aus dem Pufferspeicher 40 auszulesende Datenlänge auf 4 Bytes oder weniger begrenzt werden soll. Bei der
vorliegenden Ausführungsform wird sie bei der Ausführung
eines Befehls gewählt, der eine Wortüberlappungsverarbeitung
erfordert. Die Abtastschaltungen 915 und 197 werden im Falle der Dezimalbetriebsbefehle bzw. dann verwendet, wenn
die ersten und zweiten Operanden ausgelesen werden. Das Konstantenregister 919 wird beispielsweise bei einer Unterbrechungsverarbeitung
gewählt und verwendet, um Daten von 8 Bytes unabhängig vom Inhalt des Längenfeldregisters 220
auszulesen. Die Leitung 72A wird in dem Falle gewählt, wo die Auslese-Datenlänge mit einem willkürlichen Wert im
Arbeitsregister 72 bestimmt ist.
Wie im einzelnen in Figur 16 dargestellt, besteht die Maskenmuster-Entscheidungsschaltung 96 aus einem linken
Mustergenerator 962 und einem rechten Mustergenerator 96 4,
an denen das Ausgangssignal der Entscheidungsschaltung 91 für die Abrufdatenlänge über eine Leitung 91A anliegt,
einer rechten Verschiebungseinrichtung 966, die dazu dient, ein Ausgangssignal des linken Mustergenerators 9 62 nach
rechts um einen Wert zu verschieben, der von Daten repräsentiert wird, die aus den unteren drei Bits unter den unteren
4 Bits innerhalb des Operandenadressenregisters bestehen und auf der Leitung 24A geliefert werden, sowie einem Wähler
13Ö025/G572
9 60, der dazu dient, Ausgangssignale der Mustergeneratoren 962 und 964 sowie der rechten Verschiebungseinrichtung 966
zu wählen. Der Wähler 960 wird gesteuert vom Ausrichtungsfeld 806 innerhalb des Steuerregisters 800 auf der Leitung
8OA. Die Mustergeneratoren 962 und 964 sowie die rechte Verschiebungseinrichtung 966 haben völlig gleiche Anordnungen
wie die entsprechenden Komponenten in Figur 8.
Das Ausgangssignal des Wählers 960 wird dem Abrufmaskenregister
9 7 (vgl. Figur 13) über die Leitung 96A übermittelt
und dort gespeichert. Das Ausgangssignal des Abrufmaskenregisters
97 wird an die Operandensteuerung 60 übermittelt, wie sie in Figur 11 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 Abrufdatenlänge wird über die Leitung 91A
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. Figur 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
130025/0572
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. Figur 12) geladen wird, wobei die Ε-Stufe bei der Ausführung dieses Befehls
endet. Zu diesem Zeitpunkt wird das Operationsbeendigungsfeld 805 über die Leitung 8OB zur Befehlseinheit 20'
übertragen und setzt die Flip-Flops 238 und 2 39 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ührungaform
erläutert.
Im Falle der Verarbeitung eines MVC-Befehls (Zeichonfolge
übertragen) wird angenommen, daß die Daten "X" und "Y" 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 LF1 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 212A geliefert.
Nach Beendigung der anschließenden zweiten Decodierung
wird die zweite Operandenadresse in das Operandenadressenregister 240 gesetzt, und gleichzeitig wird am Ende der
ersten Α-Stufe das Ausgangssignal des Operandenadressenregisters
270 wie es ist in das Operandenadressenrcgistor 272 gesetzt. Zusätzlich wird ein Wert "1" von der Befehlsstufensteuerung
212 auf der Leitung 212A gesetzt.
130025/0572
Nach Beendigung der anschließenden zweiten A-Stufe wird der Wert des Operandenadressenregisters 240 von
der Arithmetikschaltung 242 einer Operation von "+6" unterworfen, da die Ausleselänge "5" in der Ausrichtungssteuerung
90' gesetzt ist, und das Ergebnis wird in das Operandenadressenregister 244 gesetzt. Dementsprechend
werden die unteren 4 Bits des Operandenadressenregisters 244 zum Wert "12". Gleichzeitig arbeitet die Arithmetikschaltung
252-und führt eine Operation "-6" aus, und in das Register 254 wird der Wert "10" gesetzt.
Nach Beendigung der anschließenden zweiten L-Stufe werden der Wert des Operandenadressenregisters 244 in das
Operandenadressenregister 246 und der Wert des Operandenadressenregisters 272 in das Operandenadressenregister
gesetzt. Zusätzlich wird der Wert des Registers 254 in das Längenfeldregister 220 gesetzt. Dementsprechend werden
die Werte "12" in die unteren 4 Bits des Operandenadressenregisters
246 und "10" in das Längenfeldregister 220 gesetzt und zur Ε-Stufe geliefert.
Da der erste Operand beim MVC-Befehl nicht ausgelesen
wird, werden die Werte der Operandenadressenregister 264 und 266 nicht verwendet. Daher werden die Operationen dieser
Operandenadressenregister bezüglich dieses Befehls nicht näher erläutert.
Hinsichtlich der Ausrichtung von Daten wird der Betriebscode als Ausgangssignal des Befehlsregisters 210 der Ausrichtungssteuerung
90' über die Leitung 21A übermittelt, und die Richtung der Ausrichtung wird vom Decodierer 98' decodiert.
Hinsichtlich dieses Befehls liefert der Decodierer 98' eine "0". Nach Beendigung dieser zweiten Decodierung wird
dieser Wert in das Register 99' für die Richtung der Ausrichtung gesetzt. Gleichzeitig wird der Betriebscode vom
Decodierer 230 in der Decosierstufe 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
130025/0572
_ O ·7 _
ersten Decodierstufe. Nach Beendigung der ersten Decodierung wird die "1" in das Register 232 gesetzt. Jetzt, wo
das Flip-Flop 238 auf "1" 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 "O" zum Zeitpunkt der Beendigung der zweiten Decodierstufe gehalten
wird, wird das Ausgangssignal auf einer Leitung 2 3A den Wert "O" haben. In der zweiten Α-Stufe wählt dementsprechend
der Wähler 100 (vgl. Figur 1) das Ausgangssignal auf der Leitung 901A 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 212A das Signal "1"
liegt, wählt der Wähler 282 eine Leitung 24OZ, wie es in Figur 18 angegeben ist. Mit anderen Worten, der zweite Operand
wird gewählt.
Unter Verwendung der zweiten Operandenadresse 2OA und des Decodierergebnisses "0" auf der Leitung 90"A 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 23A den Wert "0" hat, wählt der Wähler
280 den Inhalt einer Leitung 24OY und liefert ihn der Leitung 26A. Mit anderen Worten, die unteren 4 Bits der zweiten
Operandenadresse oder "6" in diesem Beispiel werden gewählt.
Da die Leitung 23A den Wert "10" hat, wählt der Wähler 284 in gleicher Weise den Inhalt einer Leitung 26OY oder
die unteren 4 Bits der ersten Operandenadresse, in diesem Beispiel "2" und liefert dies auf der Leitung 24A.
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl
innerhalb der Ausrichtungssteuerung 90' spricht der Wähler 9 30' auf den Betriebscode auf der Leitung 2OB
an, um eine Leitung 9371A wie in Figur 10 angegeben, zu
wählen und Daten "Y-X" oder die Differenz der ersten und
EAD Cvr;iG;ir-'AL
130025/0572
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 9O1B wird vom
Wähler 100 gewählt und dem Zyklusschieber 50 über die Leitung
90"B ü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 rechriet. 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 Abrufdatenlänge innerhalb der Ausrichtungssteuerung 90' auf den Betriebscode auf der Leitung
2OB für den MVC-Befehl an und wählt eine Ausgangsleitung
9111A der Abtastschaltung 911', wie es in Figur 10
angegeben ist. Da die Abtastschaltung 911' mit dem Wert
"2" über die Leitung 2 4A und mit dem Wert "16" über die Leitung
25A versorgt wird, geht das Ausgangssignal der Abtastschaltung 911' auf den Wert "5". Dieses Ausgangssignal wird
den Mustergeneratoren 962' und 964' in der Maskenmusterentscheidungsschaltung 96' sowie der Befehlseinheit 20'
übermittelt. Der Wähler 960' in der Maskenmuster-Entscheidungsschaltung
96' spricht auf den Betriebscode auf der Ladung 2OB für den MVC-Befehl an und wählt eine Ausgangsleitung
966A der rechten Verschiebungseinrichtung 966', wie es in Figur 10 angegeben ist.
Der linke Mustergenerator 962' spricht auf·die angelegten
Daten "5" an und liefert ein Muster "11111100", wie
1 30025/0S72
es in Figur 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 "ΟΟ1111Ί1".
Dieses Ausgangssignal auf der Leitung 901C wird vom Wähler
100 gewählt und der Operandensteuerung 60 über die Leitung 9O11C übermittelt. In Abhängigkeit vom 8-Bit-Muster
von der Leitung 90"C schneidet 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 Daton,
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 Bybes von "0" bastehon.
Nach der Beendigung der zweiten Α-Stufe wird der Wert des Registers 232 in das Register 234 gesetzt, un d 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 2 39 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 zweite L-Stufe beendet ist, ein Wert "1" auf der Leitung 23A gehalten.
Die Ε-Stufe wird folgendermaßen ausgeführt.
Der Betriebscode des MVC-Befehls wird von der Befehlseinheit
20' zum Steuerspeicher 80 geschickt, und der vordere Mikrobefehl einer Mikrobefehlsfolge zur Ausführung
dieses MVC-Befehls wird in das Steuerregister 800 geladen. Danach werden Mikrobefehle innerhalb der Folge nacheinander
in vorgegebener Folge ausgelesen, um den MVC-Befehl auszuführen. Bei der Auslösung dieser Ausführung
wird in der Befehlseinheit 20' untersucht, ob der MVC-
BAD ORIGINAL 130025/0572
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 9 8 decodiert. Da's decodierte
Ergebnis ist "0", wie es in Figur 17 angegeben ist. Dieses Ergebnis wird zum Wähler 100 über die Leitung 9OB übertragen.
Da die Leitung 23A den Wert "1" hat, wird die Leitung 9OB 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 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 5 ist.
Andererseits liefert in der Entscheidungsschaltung für die Verschiebungsbyteanzahl in der Ausrichtungssteuerung
90 der Wähler 930 die Daten "Y" in Abhängigkeit von den Ausrichtungsdaten "1001". Dieser Wert ist beim vorliegenden
Beispiel "12". Das Ausgangssignal "12" wird im Register für die Verschiebungsbyteanzahl gespeichert und anschließend
an die Verschiebungssteuerschaltung 95 geschickt. Das Ausgangssignal auf der Leitung 9OB der Verschiebungssteuerschaltung
95 wird zum Wähler 100 geschickt. Da die Leitung 23A den Wert "1" hat, wird die Leitung 9OB vom Wähler 100
gewählt,und die aus dem Pufferspeicher 40 ausgelesenen Daten
130025/0572
von 16 Bytes werden zyklisch um den Betrag von 12 Bytes nach links verschoben, und zwar vorn Zyklus schieber 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 911A der Abtastschaltung 911,
wie es in Figur 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 9 64 innerhalb der Maskenmuster-Entscheidungsschaltung 96
geschickt. *
In Abhängigkeit von den Ausrichtungsdaten "1001" wählt der Wähler 960 in der Maskenmuster-Entscheidungsschaltung
eine Ausgangsleitung 962A des linken Mustersgenerators 962,
wie sich aus Figur 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 Abrufmaskenregister 9 7 eingegeben.
Das Ausgangssignal auf der Leitung 9OC des Abrufmaskenregisters
97 wird zum Wähler 100 geschickt, und die Ausgangsleitung 9OC wird für eine Leitung 9O11C gewählt, da die
Leitung 2 3A 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
130025/0572
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. Figur 14) wählt
da<; Ausgangssignal der Abtastschaltung 913 und liefert es
als Auslesedatenlänge. Der Wähler 930 (vgl. Figur 15) in dor Entscheidungsschaltung 93 für die Verschiebungsbyteanzahl
liefert die Daten "Y'". Die Verschieburigssteuerschaltung
9 5 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 "γ1" 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 Schreib-5 adresse vom Operandenadressenregister 274 über den Wähler
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 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
130025/0572
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 "O" auf der Leitung 212A 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 Operandenadressenregister 272 gesetzt. Zusätzlich wird der Wert "1" auf der Leitung 212A von der
Befehlsstufensteuerung 212 gesetzt.
Da die Ausleselänge "7" auf der Leitung 911A 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ängo
LF1 den 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 in das Operandenadressenregister 246 und der Inhalt des
Registers 254 in das Längenfeldregister 220 geseLzt. Dementsprechend
werden (erste Operandenadresse + LF'1) in äaa
Operandenadressenregister 274, (zweite Operandenadresse + LF12 - 8) in das Operandenadressenregister 266 sowie
die Werte LF1 "7" und LF2 "4" in das Längenfeldregister
130025/0572 .,-^ ■,,-.» -£i
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 vom Decodierer 230
docodiert, 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 djLe 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 23A auf "0". Dementsprechend wählt der Wähler 100 die Ausgangsleitung 901A 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 212A geliefert wird, wählt der Wähler 282 die Leitung 2 6OZ
oder (erste Operandenadresse + LF1). 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, einschiießiich 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 26OY, d.h. wahlweise die unteren 4 Bites von (erste Operandenadresse + LF1) auf der Leitung 24A.
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl in der Ausrichtungssteuerung 90' spricht
13002.5/0572 Of"GiNal
der Wähler 9 30' auf den Betriebscode für den Dezimalbofehl
auf der Leitung 2OB und das Signal "0" auf der Leitung 212Λ
an und liefert die Daten der Leitung 9371A oder "X-f-9", wie
es in Figur 10 angegeben ist. Dieses Ausgangssignal wird im Register 94' für die Verschiebungsbyteanzahl gespeichert
und anschließend an die Verschiebungssteuerschal Lung 95'
geschickt. Das Ausgangssignal wird dem Wähler 100 über die Leitung 901B übermittelt und dort gewählt. Das Ausgangssignal
des Wählers 100 wird über die Leitung 901B 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 "X + 9" Bytes nach links verschoben.1 Andererseits spricht der Wähler 910' in der Entschoidungsschaltung
91' für die Abrufdatenlänge innerhalb der Ausrichtungssteuerung 90' auf den Betriebscode auf dcr
Leitung 2OB und das Signal "0" auf der Leitung 212Λ an und
wählt die Ausgangsleitung 915 Ά der Abtastschaltung 915, wie es in Figur 10 angegeben ist. Das Ausgangssignal auf
der Leitung 9151A wird an die Mustergeneratoren 962' und
964' in der Maskenmuster-Entscheidungsschaltung 96' und die Befehlseinheit 20' übermittelt. Da in diesem Ausführungnbeispiel
LF'1 den Wert "15" hat, wird "7" auf der Leitung 915'A übermittelt.
In Abhängigkeit vom Betriebscode auf der Leitung 2OB und dem Signal "0" auf der Leitung 212A wählt der Wähler
960' in der Maskenmuster-Entscheidungsschaltung 96' die
Ausgangsleitung 9641A des rechten Mustergenerators 9 64',
wie es in Figur 10 angegeben ist. Das Ausgangssignal des Wählers 960' wird über die Leitung 901C an den Wähler
ü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"C und schickt anschließend
die resultierenden Daten zur Arithmetik-Logik-Einheit
13 0 0 2 5/0572 BAD OHiamAL
Somit wird der erste Operand an die Arithmetik-Logik-K.inheit
70 übertragen.
Hinsichtlich des zweiten Operanden werden gleiche Verarbeitungen der ersten Decodierstufe, der ersten A-Stufe
r) und der ersten L-Stufe wie oben dargelegt durchgeführt.
Da das Ausgangssignal vom Befehlsregister 210 auf der Leitung 21A 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 24OZ oder (zweite Operandenadresse -l· LF'2) und liefert dies der Leitung 20A, wie'es in Figur
18 angegeben ist. In der ersten Α-Stufe wählt der Wähler
280 die Leitung 24OY, mit anderen Worten die unteren Bits von (zweite Operandenadresse + LF'2).
In der Entscheidungsschaltung 93' für die Verschiebungsbyteanzahl
in der Ausrichtungssteuerung 90' spricht der Wähler 9 30' auf den Betriebscode auf der Leitung 2OB
und das Signal "1" auf der Leitung 212A an und wählt die
Leitung 9371A, wie es in Figur 10 angegeben ist. Als Ergebnis
wird ein Signal "Y + 9" vom Wähler 930' geliefert.
In der Entscheidungsschaltung 91' für die Abrufdatenlänge
wählt der Wähler 910' die Ausgangsleitung 9171A der
Abtastschaltung 917' wie es in Figur 10 angegeben ist.
Der Wähler 960' in der Maskenmuster-Entscheidungsschaltung
96' wählt die Ausgangsleitung 964 Ά des rechten Mustergenerators
964',wie es in Figur 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
30025/0572
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 E-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 23A geliefert.
In einer Mikrobefehlsfolge zum Auslesen von Daten, die durch die zweite Operandenadresse repräsentiert sind, wird "1110"
in das Ausrichtungsfeld gespeichert. Dementsprechend wähltder Wähler 910 die Leitung 917A. Beim vorliegenden Beispiel
wird die Leitung 917A 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 + CJ"
entspricht. In der Entscheidungsschaltung 93 für die Verschiebungsbyteanzahl, welche in Figur 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
5 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. Figur 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 Abrufdatenlänge
ist, die vom Wähler 910 (vgl. Figur 14) bei den Daten von 8 Bytes geliefert wird, deren ganz rechte Adresse die
zweite Operandenadresse ist, wobei sämtliche anderen Bytes "O" sind. Diese Daten werden zur Arithmetik-Logik-Einheit
130025/0572
70 übermittelt.
Anschließend wird die erste Operandenadresse von der Bcyfohlseinhe.it 20' zur Adressensteuerung übertragen, und
die reale erste Operandenadresse wird in gleicher Weise wie der zweite Operand erzeugt, um das Auslesen von Daten
vorzunehmen. Es werden Daten "1101" in das Ausrichtungsfal.d
innerhalb einer Mikrobefehls folge zur Verarbeitung do:>
ersten Operanden eingespeichert. Der Wähler 9 30 (vgl. Figur 15) liefert dementsprechend Daten "X + 9". Anschließend
werden der Zyklusschieber 50 und die Operandensteuerung
60 in gleicher Weis-e 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 Arithme-Lik-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 Adressensteuerung 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 5 Operation "-8".
Die vorstehenden Ausführungen zeigen, daß gemäß der Erfindung eine sehr einfache Datenverarbeitungsanlagen 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 ge-
130025/0572
steuert wird. Hinsichtlich derjenigen Mc'ikrobefehlc, 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. Ε-Stufen mittels
der ersten und zweiten Ausrichtungssteuerungen ausgerichtet.
130025/0572 BAD original
Claims (4)
- P AT E N TA N WÄ LT F.SCHIFF v. FÖNER STREHL SCHÜBEL-HOPF EBBINGHAUS FINCKMARIAHILFPLATZ 2*3, MÖNCHEN 9O POSTADRESSE: POSTFACH 95 O1 6O1 D-80OO MÖNCHEN 95 O Π / O Cj CHITACHI, LTD. 1^. November 1980DEA-25 326Datenverarbeitungsanlage PATENTANSPRÜCHEDatenverarbeitungsanlage, bei der jeder Makrobefehl in eine Vielzahl von Stufen aufgeteilt und die verschiedenen Stufen der verschiedenen Makrobefehle in überlappter Weise verarbeitet werden, gekennzeichnet durcheinen Hauptspeicher zum Speichern von Daten, eine Stufensteuereinrichtung in Form einer verdrahteten Logik, um nacheinander auszuführende Makrobefehle zu decodieren, damit die Gesamtlänge und eine vordere Adresse von Daten, die für die Ausführung jedes Makrobefehls erforderlich sind, bestimmt und die Ausführungen der anderen Stufen als .der letzten Stufe jedes Makrobefehls gesteuert werden, einen Steuerspeicher zur Steuerung der Ausführung der letzten Stufe jedes von der Steuereinrichtung gelieferten Makrobefehls in Abhängigkeit von einem Betriebscode jedes Makro-QRiGJMAL. INSPECTED130025/0572befenIs,einen Zugriffsadressenspeicher zum Speichern von Adressen für den Zugriff zum Hauptspeicher, um die jeweiligen Befehle aus ζ ufüh ren,eine Einrichtung zum Setzen eines Anfangswertes der Zugriffsadresse bei der vorderen Adresse und zum Aktualisieren der Zugriffsdaten bei jedem Male, wenn vom Hauptspeicher Zugriff zu den Daten genommen wird,
eine Einrichtung zum Speichern von aus dem Hauptspeicher auszulesenden Datenlängen, um die jeweiligen Befehle auszuführen,eine Einrichtung zum Setzen eines Anfangswertes der Auslesedatenlängen bei den Gesamtdatenlängen und zum Aktualisieren der Auslesedatenlängen bei jedem Male, wenn vom Hauptspeicher Zugriff zu den Daten genommen wird, und eine Ausleseeinrichtung, um auf der Basis der Zugriffsadresse und der Auslesedatenlänge einen Teil der Daten, die für die Ausführung jedes Makrobefehls erforderlich sind, unter der Steuerung der Steuereinrichtung in einer vorgegebenen Stufe vor der letzten Stufe, sowie die übrigen Daten unter der Steuerung des Steuerspeichers in der letzten Stufe auszulesen, wobei die Ausleseeinrichtung folgende Baugruppen umfaßt: eine Einrichtung zum Auslesen von Datenblöcken vorgegebener Länge, die die Zugriffsadresse anthalten und sich zwischen einem vorgegebenen Paar von Adressengrenzen befinden, eine Ausrichtungseinrichtung, um die ausgelesenen DatenblöckeI30G25/0S72zu verschieben und sie anschließend zu maskieren, eine Einrichtung zur Steuerung der Verschiebungswerte der Ausrichtungseinrichtung für die in der vorgegebenen Stufe bzw. der letzten Stufe ausgelesenen Datenblöcke in Abhängigkeit von der Zugriffsadresse, wobei diese Einrichtung eine erste Anordnung, die außerdem auf den Betriebscode jedes von der Steuereinrichtung gelieferten Befehls anspricht, und eine zweite Anordnung aufweist, die auf einen vom Steuerspeicher gelieferten Mikrobefehl anspricht, eine Einrichtung zur Bestimmung effektiver Datenlängen in den ausgelesenen Datenblöcken in der vorgegebenen Stufe bzw. der letzten Stufe in Abhängigkeit von der Auslesedatenlänge, wobei diese Einrichtung eine dritte Anordnung, die außerdem auf den von der Steuereinrichtung gelieferten Betriebscode anspricht, und eine vierte Anordnung aufweist, die auf den vom Steuerspeicher gelieferten Mikrobefehl anspricht, und eine Einrichtung zur Steuerung der Maskenpositionen der Ausrichteinrichtung für die in der vorgegebenen Stufe bzw. der letzten Stufe ausgelesenen Datenblöcke in Abhängigkeit von der effektiven Datenlänge und der Zugriffsadresse, wobei diese Einrichtung eine auf den Betriebscode ansprechende fünfte Anordnung und eine auf den Mikrobefehl ansprechende sechste Anordnung aufweist und wobei die Einrichtung zur Änderung 5 der Auslesedatenlänge auf die effektive Datenlänge ansprichl. - 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet , daß die erste und zweite An-130025/OS723043553Ordnung jeweils Mittel zur Auswertung einer Differenz von zwei Zugriffsadressen besitzen, die für die Ausführung jedes !3 Makrobefehls relevant sind, wobei die erste Anordnung außerdem Mittel zur selektiven Lieferung der Zugriffsadressendifferenz in Abhängigkeit vom Betriebscode besitzt und die zweite Anordnung außerdem Mittel zur selektiven Lieferung der Zugriffsadressendifferenz in Abhängigkeit von einem vorgegebcnen Mikrobefehl besitzt.
- 3. Datenverarbextungsanlage nach Anspruch 1ibder 2, dadurch gekennzeichnet , daß die dritten und vierten Anordnungen siebente und achte Einrichtungen aufweisen, um die effektive Datenlänge in Abhängigkeit von der Zugriffsadresse bzw. der Auslesedatenlänge zu bestimmen, wobei die dritte Anordnung Mittel zur selektiven Lieferung eines Ausgangssignales der siebenten Einrichtung in Abhängigkeit vom Betriebscode und die vierte Anordnung Mittel zur selektiven Lieferung eines Ausgangssignals der achten Einrichtung in Abhängigkeit vom Mikrobefehl besitzen.
- 4. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet , daß die Ausrichtungseinrichtung Mittel aufweist, um die Datenblöcke vorgegebener Länge zu verschieben und sie anschließend als Daten mit kleinerer Länge als der vorgegebene Wert zu liefern.-130025/0S72
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 true DE3043653A1 (de) | 1981-06-19 |
DE3043653C2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3138897A1 (de) * | 1981-09-30 | 1983-04-14 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zur verarbeitung von speicheroperanden fuer dezimale und logische befehle |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4812971A (en) * | 1983-10-03 | 1989-03-14 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | 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 |
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 |
EP0663083B1 (de) * | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
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 |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7599981B2 (en) * | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
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 |
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 DE DE3043653A patent/DE3043653C2/de not_active Expired
- 1980-11-19 US US06/208,250 patent/US4396982A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
IBM-Nachrichten, Juni 1968, H. 189, S. 225-229 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3138897A1 (de) * | 1981-09-30 | 1983-04-14 | Siemens AG, 1000 Berlin und 8000 München | Schaltungsanordnung zur verarbeitung von speicheroperanden fuer dezimale und logische befehle |
Also Published As
Publication number | Publication date |
---|---|
US4396982A (en) | 1983-08-02 |
JPS5672742A (en) | 1981-06-17 |
DE3043653C2 (de) | 1985-05-30 |
JPS5847053B2 (ja) | 1983-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE3210816C2 (de) | ||
DE3424962C2 (de) | ||
DE2846495C2 (de) | Zentraleinheit | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2829668A1 (de) | Kanaldatenpufferspeicher | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2910839A1 (de) | Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion | |
DE2644441A1 (de) | Datenverarbeitungssystem | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE3856139T2 (de) | Mikroprozessor | |
DE2353635A1 (de) | Datenverarbeitungssystem und verfahren zur datenverarbeitung | |
DE2926351A1 (de) | Look-ahead-speicheradressen- steuereinrichtung | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2739525A1 (de) | Prozessor | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2349253C3 (de) | Rechnersystem | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE1499286A1 (de) | Datenbearbeitungsanlage |
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 |