[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE3043653A1 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

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
Application number
DE19803043653
Other languages
English (en)
Other versions
DE3043653C2 (de
Inventor
Mamoru Hatano Kanagawa Hinai
Kenichi Zama Kanagawa Wada
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3043653A1 publication Critical patent/DE3043653A1/de
Application granted granted Critical
Publication of DE3043653C2 publication Critical patent/DE3043653C2/de
Expired legal-status Critical Current

Links

Classifications

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

Landscapes

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

Description

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)

  1. P AT E N TA N WÄ LT F.
    SCHIFF v. FÖNER STREHL SCHÜBEL-HOPF EBBINGHAUS FINCK
    MARIAHILFPLATZ 2*3, MÖNCHEN 9O POSTADRESSE: POSTFACH 95 O1 6O1 D-80OO MÖNCHEN 95 O Π / O Cj C
    HITACHI, LTD. 1^. November 1980
    DEA-25 326
    Datenverarbeitungsanlage PATENTANSPRÜCHE
    Datenverarbeitungsanlage, bei der jeder Makrobefehl in eine Vielzahl von Stufen aufgeteilt und die verschiedenen Stufen der verschiedenen Makrobefehle in überlappter Weise verarbeitet werden, gekennzeichnet durch
    einen 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. INSPECTED
    130025/0572
    befenIs,
    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öcke
    I30G25/0S72
    zu 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. 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet , daß die erste und zweite An-
    130025/OS72
    3043553
    Ordnung 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. 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. 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
DE3043653A 1979-11-19 1980-11-19 Datenverarbeitungsanlage Expired DE3043653C2 (de)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
DE3043653A1 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)

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

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

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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM-Nachrichten, Juni 1968, H. 189, S. 225-229 *

Cited By (1)

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