DE3900246A1 - Informationsverarbeitungsvorrichtung - Google Patents
InformationsverarbeitungsvorrichtungInfo
- Publication number
- DE3900246A1 DE3900246A1 DE3900246A DE3900246A DE3900246A1 DE 3900246 A1 DE3900246 A1 DE 3900246A1 DE 3900246 A DE3900246 A DE 3900246A DE 3900246 A DE3900246 A DE 3900246A DE 3900246 A1 DE3900246 A1 DE 3900246A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- operand
- instruction
- command
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
Die Erfindung betrifft eine Informationsverarbeitungsvor
richtung, die sequentiell Befehle in einem Pipelinesteuer
system ausführt, wobei eine Hochgeschwindigkeitsausführung
dadurch erzielt wird, daß Störungen in der Pipeline vermin
dert werden.
In einem Pipelinesteuersystem wird die Ausführung von Be
fehlen in mehrere Stufen unterteilt, die in überlappender
Weise ausgeführt werden. Fig. 2A der zugehörigen Zeichnung
zeigt die Befehlsausführung bei einem bekannten Pipelinesteu
ersystem. In Fig. 2A sind eine Befehlswortdecodierstufe D,
eine Rechenstufe A für die effektive Operandenadresse, eine
Abrufstufe B, die einen Operanden von einem Hauptspeicher abruft,
eine Operandenübertragungsstufe L, in der der vom Hauptspei
cher abgerufene Operand auf ein Operandenpufferregister über
tragen wird, und eine Ausführungsstufe E dargestellt, in der
eine einem Befehl inhärente Operation ausgeführt wird. Die
effektive Adresse in der Stufe A wird dadurch berechnet, daß
der Inhalt von zwei Mehrzweckregistern, die durch einen Index
teil und einen Basisteil des Befehls jeweils bezeichnet sind
(und die als Indexregister und Basisregister jeweils bezeich
net werden),und ein Versatz addiert werden, der ein Teil des
Befehls ist.
Wenn in dem Pipelinesteuersystem die Stufe D für einen Befehl
abgeschlossen ist, wird die Stufe A für diesen Befehl begonnen
und wird gleichzeitig auch die Stufe D für den folgenden Be
fehl begonnen. In dieser Weise werden mehrere Befehle sequen
tiell in überlappender Weise ausgeführt.
Wenn ein Befehl I 1 die Anweisung gibt, den Inhalt eines
Mehrzweckregisters zu ändern, beispielsweise ein Operations
ergebnis im Mehrzweckregister zu speichern, und wenn der
unmittelbar folgende Befehl I 2 die Anweisung gibt, dasselbe
Mehrzweckregister als Indexregister oder Basisregister zu
bezeichnen, um dessen Inhalt zum Erzeugen der effektiven
Adresse zu verwenden, und eine Hochgeschwindigkeitsausführungs
technik nicht benutzt wird, dann muß die Rechenstufe A zum
Berechnen der effektiven Adresse für den Befehl I 2 begonnen
werden, nachdem die Ausführungsstufe E für den Befehl I 1 ab
geschlossen ist und das Operationsergebnis im Mehrzweckregi
ster gespeichert ist, wie es in Fig. 2A dargestellt ist.
In der in Fig. 2A dargestellten Weise besteht folglich ein
Zusatzbedarf von drei Zyklen. Wenn der Inhalt des Mehrzweck
registers, der zum Erzeugen der effektiven Adresse des Operan
den benutzt wird, durch den vorhergehenden Befehl geändert
wird, wird das als Adressenkonflikt bezeichnet. Es sind ver
schiedene Verfahren zum Erzielen einer Hochgeschwindigkeits
ausführung im Adressenkonflikt vorgeschlagen worden.
Fig. 2B zeigt ein Verfahren, das in der JP-B-56-46 170 be
schrieben wird und bei dem die Hochgeschwindigkeitsausführung
des folgenden Befehls I 2 nur dann erreicht wird, wenn der Be
fehl I 1, der den Inhalt des Mehrzweckregisters ändert, ein
Ladebefehl ist, der die Anweisung gibt, einen Operanden am
Hauptspeicher unverändert in ein Mehrzweckregister zu laden.
Insbesondere wird bei der Ausführung des Befehles I 1 der Ope
rand vom Hauptspeicher abgerufen und auf den Operandenpuffer
sowie auf ein Register übertragen, das an einem Eingang eines
eine Adresse erzeugenden Addierers vorgesehen ist. Gleichzeitig
mit der oben erwähnten Übertragung wird mit der Ausführung der
Stufe A zum Erzeugen der effektiven Adresse für den folgenden
Befehl I 2 begonnen. In dieser Weise wird parallel zur Stufe E
für den Befehl I 1, in der der Operand im Mehrzweckregister ge
speichert wird, das durch den Befehl I 1 bezeichnet ist, die
Stufe A für den folgenden Befehl I 2 ausgeführt. Das hat zur
Folge, daß der Zusatzbedarf auf zwei Zyklen reduziert ist,
wie es in Fig. 2B dargestellt ist.
Um das obige Verfahren weiter zu verbessern, ist in der japa
nischen Patentanmeldung 61-1 91 841, die der US Patentanmeldung
84 072 aus dem Jahre 1987 entspricht, unter dem Titel "Instruc
tion Processing Apparatus with Enhanced Execution of An
Address-Conflicting Instruction" ein Verfahren zum weiteren
Beschleunigen der Ausführung eines auf einen Adressenkonflikt
folgenden Befehls beschrieben, wenn dieser einer bestimmten
Bedingung genügt. Wenn insbesondere das Mehrzweckregister,
dessen Inhalt durch den vorhergehenden Befehl zu ändern ist,
als Indexregister durch den folgenden Befehl bezeichnet wird,
und der Inhalt des Basisregisters, das durch den folgenden Be
fehl bezeichnet wird,und der Versatz, der durch den Befehl
bezeichnet wird, beide gleich Null sind, oder wenn das Mehr
zweckregister, dessen Inhalt durch den vorhergehenden Befehl
zu ändern ist, als Basisregister durch den folgenden Befehl
bezeichnet wird, und der Inhalt des Indexregisters, das durch
den folgenden Befehl bezeichnet wird und der Versatz, der
durch den Befehl angegeben wird, beide gleich Null sind, dann
ist die Operandenadresse, die für den folgenden Befehl be
nötigt wird, gleich dem Operanden selbst, der durch den vor
hergehenden Befehl geschrieben wurde. In einem solchen Fall
kann auf die Adressenberechnung für den folgenden Befehl ver
zichtet werden, um die Ausführung des folgenden Befehls zu
beschleunigen. Der vom Hauptspeicher für den vorhergehenden
Befehl abgerufene Operand wird somit direkt auf das Adressen
register übertragen, das zu dem Hauptspeicher in Beziehung
steht, und es wird die Operandenabrufstufe L für den folgenden
Befehl auf der Grundlage dieses Operanden ausgeführt. Das hat
zur Folge, daß der Zusatzbedarf auf einen Zyklus reduziert
wird, wie es in Fig. 2C dargestellt ist.
Bei dem bekannten Verfahren, das in Fig. 2B dargestellt ist,
wird die Hochgeschwindigkeitsausführung nur dann, wenn der
vorhergehende Befehl ein Ladebefehl ist, aber nicht dann er
zielt, wenn der vorhergehende Befehl ein Additions- oder
Subtraktionsbefehl ist.
Bei dem Verfahren, das in Fig. 2C dargestellt ist, wird die
Hochgeschwindigkeitsausführung nur dann erzielt, wenn der
Inhalt des Indexregisters, das durch den folgenden Befehl
bezeichnet wird, und der Versatz beide gleich Null sind, oder
wenn der Inhalt des Basisregisters und die Distanz beide
gleich Null sind. Die Hochgeschwindigkeitsausführung wird dann
nicht erzielt, wenn sowohl das Indexregister als auch das Ba
sisregister, die durch den folgenden Befehl bezeichnet sind,
zum Erzeugen der Adresse benutzt werden. Wenn der Befehl, der
den Inhalt des Mehrzweckregisters ändert, ein Addier- oder
Subtrahierbefehl ist, ist die Operation durch eine Operations
einheit erforderlich und nimmt der Zusatzbedarf um einen Zyk
lus zu.
Durch die Erfindung soll eine Informationsverarbeitungsvor
richtung geschaffen werden, die eine Hochgeschwindigkeitsaus
führung nicht nur für einen Ladebefehl sondern auch für einen
Addier/Subtrahierbefehl erzielt, wenn ein folgender Befehl
in einem Konflikt mit einem Befehl steht, der die Ausführung
einer Operation erforderlich macht, ohne daß spezielle Bedin
gungen für den Inhalt des Indexregisters und des Basisregisters
benötigt werden, die durch den folgenden Befehl bezeichnet
sind.
Dazu umfaßt die erfindungsgemäße Informationsverarbeitungsvor
richtung eine Detektoreinrichtung, die feststellt, ob ein vor
hergehender Befehl, der gerade ausgeführt wird, die Anweisung
gibt, einen ersten Operanden von einem Hauptspeicher abzurufen,
die Ausführungsergebnisdaten für den vorhergehenden Befehl
auf der Grundlage des ersten Operanden zu erzeugen und eine der
vielen Adressendaten, die durch einen folgenden auszuführenden
Befehl bezeichnet sind, mit den Ausführungsergebnisdaten zu ändern,
eine Adressenaddiereinrichtung, die auf ein negatives Ergebnis
der Detektoreinrichtung anspricht und die vielen Adressenda
ten addiert, um eine zweite Operandenadresse zu erzeugen, die
durch den folgenden Befehl benötigt wird, eine Adressendatenver
sorgungseinrichtung, die auf ein positives Ergebnis der Detektor
einrichtung anspricht und der Adressenaddiereinrichtung wenig
stens eine der vielen Adressendaten liefert, die durch einen
Typ eines vorhergehenden Befehls bestimmt sind, und zwar pa
rallel zur Ausführung des vorhergehenden Befehls, und eine
Operationseinrichtung, die auf das positive Ergebnis anspricht
und dann, wenn der erste Operand des vorhergehenden Befehls
vom Hauptspeicher abgerufen ist, eine durch den vorhergehenden
Befehl bestimmte Operation am Ausgangssignal der Adressenaddier
einrichtung vor einer Änderung der einen Adressendaten durch
den vorhergehenden Befehl und am abgerufenen ersten Operan
den ausführt, um als zweite Operandenadresse eine Adresse zu
erzeugen, die gleich der Summe der vielen Adressendaten aus
schließlich der einen Adressendaten und des Ausführungsergeb
nisses für den vorhergehenden Befehl ist.
Die Schaltung, die die Verwendung des Inhalts des Registers,
der durch den vorhergehenden Befehl zu ändern ist, für die
Erzeugung der Adresse durch den folgenden Befehl wahrnimmt,
macht die gelesenen Daten dieses Registers in Abhängigkeit vom
Feststellungsergebnis gleich Null, so daß der Dreieingangs
adressenaddierer eine Interimsumme der Adressenberechnung
liefert. Das Register, das das Ausgangssignal des Dreieingangs
adressenaddierers hält, hält die Interimsumme bis der Operand
vom Hauptspeicher durch den vorhergehenden Befehl abgerufen
ist und diese Informationen in der Operationseinrichtung ver
arbeitet sind.
Im folgenden werden anhand der zugehörigen Zeichnung besonders
bevorzugte Ausführungsbeispiele der Erfindung näher beschrieben.
Es zeigen:
Fig. 1 den Gesamtaufbau eines Ausführungsbeispiels der
erfindungsgemäßen Informationsverarbeitungsvor
richtung,
Fig. 2A ein Zeitdiagramm der Ausführung von zwei Adressen
konfliktbefehlen bei einem bekannten Verfahren,
Fig. 2B ein Zeitdiagramm der Ausführung der gleichen beiden
Befehle wie in Fig. 2A bei einem weiteren bekann
ten Verfahren,
Fig. 2C ein Zeitdiagramm der Ausführung der gleichen beiden
Befehle wie in Fig. 2A bei der in Fig. 1 darge
stellten Verarbeitungsvorrichtung,
Fig. 3A bis 3E verschiedene Befehlsfolgen, die Gegenstand der
Hochgeschwindigkeitsausführung gemäß der Erfindung
sind,
Fig. 4 das Schaltbild der in Fig. 1 dargestellten Steu
erschaltung,
Fig. 5A ein Codeerweiterungsverfahren für einen Halbwort
operanden, wenn ein Codebit gleich "0" ist,
Fig. 5B ein Codeerweiterungsverfahren für den Halbwortope
randen, wenn das Codebit gleich "1" ist, und
Fig. 6A und 6B verschiedene Befehlsformate für einen Adressen
modusänderungsbefehl.
Fig. 1 zeigt den Gesamtaufbau eines Ausführungsbeispiels der
erfindungsgemäßen Informationsverarbeitungsvorrichtung. In
Fig. 1 sind ein Befehlsregister 1, Mehrzweckregister 2,
eine Steuerschaltung 3 zur auf den Befehl im Befehlsregister 1
ansprechend erfolgenden Steuerung der Ausführung eines Befehls,
ein Adressenaddierer 7 zum Erzeugen einer Adresse eines Operan
den, der von einem Hauptspeicher 12 für den Befehl abzurufen
ist, ein Ausrichter 14 zum Verschieben des vom Hauptspeicher 12
abgerufenen Operanden um eine angemessene Anzahl von Bits
und zum Herausgreifen eines geeigneten Teils, eine arithmeti
sche und logische Operationseinheit 16, deren Operationsergeb
nis den Mehrzweckregistern 2 geliefert wird, und eine Hilfs
operationseinheit 100 dargestellt, die gemäß der Erfindung
neu vorgesehen ist. Das Ausgangssignal oder die Ausgangsinfor
mation des Ausrichters 14 und das Ausgangssignal oder die Aus
gangsinformation des Adressenaddierers 7 liegen an der Hilfs
operationseinheit 100, die die Operandenadresse auf der Grund
lage dieser beiden Eingangsinformationen berechnet und diese
Operandenadresse über einen Wähler 54 einem Adressenregister 11
liefert. Die Ausgangsinformation der Hilfsoperationseinheit
wird dazu benutzt, früher als bei bekannten Vorrichtungen die
Operandenadresse zu berechnen, die vom folgenden Befehl benö
tigt wird, der in einer Adressenkonfliktsituation zu einem vor
hergehenden Befehl steht. Eine Befehlsabrufschaltung 17 ruft
Befehle vom Hauptspeicher 12 ab und liefert diese der Reihe
nach dem Befehlsregister. Die Fig. 3A bis 3E zeigen Bei
spiele von Befehlsfolgen, die gemäß der Erfindung schnell aus
geführt werden können. Ein Feld OP bezeichnet die Art der Ope
ration, ein Feld R 1 bezeichnet die Nummer des Mehrzweckre
gisters, das für einen ersten Operanden benutzt wird, die
Felder X und B zeigen die Indexregisternummer und die Basis
registernummer, die durch den Befehl bezeichnet sind, um einen
zweiten Operanden vom Hauptspeicher abzurufen, und ein Feld D
bezeichnet einen Versatz, der durch den Befehl angegeben wird.
Die vom Hauptspeicher abzurufende Operandenadresse ist durch
eine Summe der Inhalte des Basisregisters und des Indexregisters,
die durch den Befehl bezeichnet sind, und den Versatz bestimmt.
Der Gesamtarbeitsablauf in Fig. 1 wird im folgenden für die
Ausführung der Befehlsfolge erläutert, die in Fig. 3A darge
stellt ist. Es sei angenommen, daß ein Ladebefehl I 1 keinen
Adressenkonflikt mit einem vorhergehenden Befehl hat. In der
Befehlsfolge, die in Fig. 3A dargestellt ist, ist der vorher
gehende Befehl I 1 der Ladebefehl, der den Operanden vom Haupt
speicher 12 in das Mehrzweckregister #3 lädt. Der folgende
Befehl I 2 ist andererseits ein Additionsbefehl, der das Mehr
zweckregister #3 als Indexregister und das Mehrzweckregister #1
als Basisregister angibt. Der Additionsbefehl I 2 bewirkt somit
einen Adressenkonflikt mit dem vorhergehenden Ladebefehl I 1
bezüglich des Mehrzweckregisters #3. Bei bekannten Vorrichtun
gen und Verfahren mußte die Berechnung der Adresse des Befehls
I 2 (Stufe A) begonnen werden, nachdem das Laden des Operanden,
der durch den Befehl I 1 benötigt wird, in das Mehrzweckregister
#3 abgeschlossen ist (Stufe E). Bei dem vorliegenden Ausfüh
rungsbeispiel der Erfindung werden die Befehle I 1 und I 2 von
Fig. 3A in der in Fig. 2C dargestellten Weise ausgeführt.
Die Stufe B zum Abrufen des Operanden des Additionsbefehls I 2
wird parallel zur Stufe E für den vorhergehenden Ladebefehl
ausgeführt. Das hat zur Folge, daß die Verzögerung der Ausfüh
rung des Befehls I 2 nur einen Zyklus beträgt.
Wenn in Fig. 1 der vorhergehende Ladebefehl I 1 in das Befehls
register 1 geladen ist, wird der Operand, der von dem Befehl
benötigt wird, nach dem herkömmlichen Verfahren vom Haupt
speicher abgerufen. Es werden nämlich die Indexregisternummer X
(=4) und die Basisregisternummer B (=8) den Mehrzweckregistern 2
über die Leitungen 21 und 22 geliefert.
Das hat zur Folge, daß der Inhalt X und B den Mehrzweckregistern
#4 und #8 von Mehrzweckregistern 2 auf die Leitungen 24 und 25
gegeben wird. Die Steuerschaltung 3 umfaßt einen Konfliktdetek
tor 3 a, eine Hilfsoperationssteuereinheit 3 b und eine Dekodier
startsteuerung 3 c. Wenn der Konfliktdetektor 3 a keinen Konflikt
zu einem Befehl I 1 feststellt, dann spricht die Hilfsoperations
steuerung 3 b auf den Befehl I 1 an, um die Steuerwähler 50 und
52 so anzusteuern, daß die Daten auf den Leitungen 24 und 25
gewählt werden. Die Daten werden somit in ein Indexeingangs
register (IX) 4 und ein Basiseingangsregister (IB) 5 des Drei
eingangsadressenaddierers 7 jeweils geladen.
Eine Distanz oder ein Versatz B (=12), der ein Teil des Lade
befehls I 1 ist, wird andererseits vom Befehlsregister 1 einem
Versatzeingangsregister (ID) 6 des Adressenaddierers 7 über die
Leitung 23 geliefert. Das hat zur Folge, daß der Dreieingangs
adressenaddierer 7 die drei Eingangsdaten addiert, um die Adres
se des Operanden zu berechnen, der durch den Ladebefehl I 1
benötigt wird. Die sich ergebende Adresse 33 wird in das Adres
senregister 11 geladen, das über einen Wähler 54 mit dem Haupt
speicher verbunden ist. Da der Ladebefehl in keinem Konflikt
mit dem vorhergehenden Befehl steht, gibt die Hilfsoperations
einheit 3 b dem Wähler 54 über ein Wählsignal 32 den Befehl,
die Ausgangsdaten 33 des Adressenaddierers 7 zu wählen. Er
greift zum Hauptspeicher 12 über die Operandenadresse zu, die
in das Adressenregister 11 geladen ist, um den Operanden des
Ladebefehls I 1 abzurufen, und lädt die abgerufenen Daten in ein
Datenregister 13. Der Ausrichter 14 kann von einem herkömm
lichen Typ sein, der den notwendigen Teil der abgerufenen Da
ten herausgreift und zur Verwendung in der Operation ausrich
tet. Eine Schaltung zum Steuern des Ausrichters hat gleich
falls einen herkömmlichen Aufbau und ist der Einfachheit hal
ber nicht dargestellt. Die in das Datenregister 13 geladenen
Daten werden über den Ausrichter 14 in ein Operandenpuffer
register 15 geladen, so daß sie folglich einer arithmetischen
und logischen Operationseinheit 16 geliefert werden, die eine
Operation ausführt, die durch die Art des Befehls bestimmt ist.
Da der Ladebefehl keine Operation benötigt, gehen die abgerufe
nen Daten durch die Operationseinheit 16 hindurch und werden
die abgerufenen Daten den Mehrzweckregistern 2 über eine Signal
leitung 36 geliefert und im Mehrzweckregister #3 gespeichert,
das durch das Feld R 1 des Befehls bezeichnet ist.
Der folgende Additionsbefehl I 2 wird andererseits in das Be
fehlsregister 1 durch eine Befehlsabrufschaltung 17 geladen,
wenn die Adressenerzeugung für den vorhergehenden Ladebefehl I 1
bereit ist, d.h. wenn die Daten zur Adressenberechnung in das
Indexeingangsregister 4, das Basiseingangsregister 5 und das
Versatzeingangsregister 6 geladen sind. Da der vorhergehende
Ladebefehl I 1 jedoch eine Änderung des Inhalts des Mehrzweck
registers #3 bewirkt, das als Indexregister durch den Additions
befehl I 2 bezeichnet ist, besteht zwischen diesen beiden Befeh
len ein Adressenkonflikt. Das in der US Patentanmeldung, die
der japanischen Patentanmeldung 61-1 91 841 entspricht, beschrie
bene Verfahren ist in diesem Fall nicht anwendbar, da der In
halt des Basisregisters 1, das in keinem Konflikt zum vorher
gehenden Befehl I 1 steht und das das Mehrzweckregister ist,
das durch den folgenden Additionsbefehl bezeichnet ist, nicht
gleich Null ist. Bei dem vorliegenden Ausführungsbeispiel wird
angenommen, daß der Inhalt des Basisregisters #0 immer gleich
null ist, daß jedoch der Inhalt der anderen Mehrzweckregister
nicht immer gleich null ist. Wenn gemäß der Erfindung der vor
hergehende Befehl I 1 zu einer bestimmten Gruppe gehört, wird
eine Hochgeschwindigkeitsausführung in der folgenden Weise er
zielt.
Wenn der Konfliktdetektor 3 a einen Adressenkonflikt zwischen
dem folgenden Befehl und dem vorhergehenden Befehl feststellt,
arbeitet die Hilfsoperationssteuerung 3 b verschieden in Ab
hängigkeit davon, ob der folgende Befehl zu der bestimmten
Gruppe gehört oder nicht. Wenn der folgende Befehl ein Befehl
ist, der nur eine einfache Operation benötigt, beispielsweise
ein Additionsbefehl oder ein Ladehalbbefehl ist, dann wird
die Dekodierstufe des folgenden Befehls I 2 in der folgenden
Weise ausgeführt. Der Inhalt der Mehrzweckregister #3 und #1
der Mehrzweckregister 2, die durch den Additionsbefehl I 2
als Indexregister und Basisregister jeweils bezeichnet sind,
wird zu den Leitungen 24 und 25 ausgelesen. Da der Inhalt des
Mehrzweckregisters #3 gleich "1" ist, bevor er durch den vor
hergehenden Ladebefehl I 1 fortgeschrieben wurde, kann er für
die Adressenberechnung des Additionsbefehls I 2 nicht benutzt
werden, es können jedoch der Inhalt des Basisregisters, das
durch den Additionsbefehl I 2 bezeichnet ist, und der Versatz
für die Adressenberechnung benutzt werden. Die Hilfsoperations
steuereinheit 3 b steuert somit den Wähler 50 über die Signal
leitung 26 derart, daß der Wähler 50 statt der auf der Leitung
24 vom Mehrzweckregister #3, das als Indexregister bezeichnet
ist und einen Konflikt aufweist, gelieferten Daten den Wert "0"
wählt. Der Wähler 52 wählt den Inhalt des Basisregisters auf
der Leitung 25. Der durch den Additionsbefehl I 2 bezeichnete
Versatz wird unverändert dem Adressenaddierer 7 geliefert. Das
hat zur Folge, daß der Adressenaddierer 7 nur den Inhalt des
Mehrzweckregisters 1, das als Basisregister durch den Additions
befehl I 2 bezeichnet ist, und den Versatz addiert, der durch
den Befehl angegeben ist. Statt im Dreieingangsadressenaddierer
7 auf die Ankunft des Operanden zu warten, der durch die Aus
führung des vorhergehenden Befehles erzeugt wird, wie es bei
dem Verfahren der japanischen Patentanmeldung 56-41 170 der
Fall ist, wird die unvollständige Adresse zunächst auf der
Grundlage von Teilen der Adressendaten, die durch den folgenden
Befehl I 2 bezeichnet sind, berechnet und ausgegeben. Die un
vollständige Adresse, die auf die Signalleitung 33 gegeben
wird, wird in das Register 8 geladen, das gemäß der Erfindung
vorgesehen ist, um den Abschluß des Abrufens des Operanden des
vorhergehenden Befehls abzuwarten. Andererseits werden die vom
Hauptspeicher 12 durch den vorhergehenden Ladebefehl I 1 abgeru
fenen Daten dem Operandenpufferregister 15 und gleichfalls der
Hilfsoperationseinheit 100 gemäß der Erfindung über die Signal
leitung 35 übertragen. Für den Ladebefehl I 1 wird eine Opera
tion durch die Operationseinheit 16 nicht benötigt. Dement
sprechend ist der Operand identisch mit den Daten, die in das
Mehrzweckregister #3 geladen sind. Er kann daher als Inhalt
des Basisregisters des Additionsbefehls I 2 benutzt werden.
Die Hilfsoperationssteuerung 3 b in der Steuerschaltung 3
steuert die Wähler 197 bis 199 in der Hilfsoperationssteuerung
100 derart, daß die Daten die Schaltungen 210 bis 212 umgehen,
die zum Erzielen einer Hochgeschwindigkeitsausführung anderer
Befehle vorgesehen sind, wie es später beschrieben wird.
Das hat zur Folge, daß der Addierer 10 die unvollständige
Adresse, die im Register 8 gespeichert ist, und die Daten
addiert, die vom Hauptspeicher 12 für den vorhergehenden Be
fehl I 1 abgerufen wurden. In dieser Weise wird die richtige
Operandenadresse des Additionsbefehls I 2 erzeugt und auf die
Signalleitung 34 gegeben. Auf das Ende des Abrufsignals 37,
das am Ende des Abrufens des Operanden des Ladebefehls I 1 vom
Hauptspeicher 12 erzeugt wird, steuert die Hilfsoperations
steuerung 3 b den Wähler 54 über die Steuersignalleitung 32 so,
daß die Ausgangsdaten 34 der Operationseinheit 10 als Eingangs
daten zum Adressenregister 11 gewählt werden. In dieser Weise
wird die Adresse des Additionsbefehls I 2 berechnet und in das
Adressenregister 11 geladen. Danach wird der Operand vom Haupt
speicher 12 abgerufen und der Operationseinheit 16 geliefert,
wie es beim Ladebefehl I 1 der Fall ist. Für den Additionsbe
fehl I 2 wird im Gegensatz zum Ladebefehl I 1 der Inhalt des Mehr
zweckregisters #5, das durch das Feld R 1 des Additionsbefehls
I 2 bezeichnet ist, der Operationseinheit 16 über die Leitung
41 geliefert und zum Operanden addiert, der vom Hauptspeicher
12 in die Operationseinheit 16 abgerufen ist. Die Summe wird
im Mehrzweckregister #5 der Mehrzweckregister 2 gespeichert,
das durch das Feld R 1 bezeichnet ist.
Um die in Fig. 3A dargestellte Befehlsfolge auszuführen, ist
bei dem bekannten Ausführungsverfahren, das in Fig. 2B darge
stellt ist, ein Zusatzbedarf von zwei Zyklen vorgesehen. Gemäß
der Erfindung wird die Adressenberechnung (Stufe A) durch den
Adressenaddierer 7 unabhängig von der Ausführung des vorher
gehenden Ladebefehls I 1 durchgeführt, und wird dann die Adres
senberechnung durch die Hilfsoperationseinheit parallel zur
Ausführung der Operationsstufe des Ladungsbefehls I 1 ausgeführt,
und wird der Operand vom Hauptspeicher abgerufen (Stufe B).
Gemäß der Erfindung wird der Zusatzbedarf daher auf einen Zyk
lus reduziert.
Einzelheiten der Steuerschaltung 3 werden im folgenden anhand
von Fig. 4 beschrieben. Der Konfliktdetektor 3 a umfaßt ein
Register 102, Komparatoren 105 und 106, einen Dekodierer 103
und Verknüpfungsglieder 123, 124 und 199′. Das Register 102
hält die Mehrzweckregisternummer R 1 für den ersten Operanden
des Befehls (vorhergehender Befehl), der im Befehlsregister
(Fig. 1) gehalten ist, wenn ein Befehl (folgender Befehl) in
das Befehlsregister geladen wird. Die Komparatoren 105 und 106
sind 4-Bit-Komparatoren. Der Komparator 105 vergleicht das
Feld R 1 des vorhergehenden Befehls, d.h. die Mehrzweckregister
nummer R 1, die durch den vorhergehenden Befehl zu ändern ist,
und die Mehrzweckregisternummer, die durch das Indexregister
feld des gerade in das Befehlsregister 1 eingegebenen Befehls
bezeichnet ist, wobei dann, wenn diese Nummern gleich sind,
der Komparator 105 ein Ausgangssignal mit dem logischen Wert
"1" erzeugt. Der Komparator 106 vergleicht das Feld R 1 des vor
hergehenden Befehls und die Mehrzweckregisternummer B, die
durch das Basisregisterfeld des folgenden Befehls angegeben
ist, wobei dann, wenn diese Nummern gleich sind, der Kompara
tor 106 ein Ausgangssignal mit dem logischen Wert "1" erzeugt.
Der Dekodierer 103 dekodiert den Operationscode des gerade
in das Befehlsregister 1 geladenen Befehls, um festzustellen,
ob der Befehl das Indexregister oder das Basisregister benötigt,
wobei dann, wenn der Befehl das zuerst genannte Register benö
tigt, der Dekodierer 103 ein Benötigungssignal X auf eine Lei
tung 135 gibt, während der Dekodierer 103 dann, wenn der Be
fehl das zuletzt genannte Register benötigt, ein Benötigungs
signal B auf eine Leitung 136 gibt.
Die Ausgangsleitung 135 des Dekodierers 103 und der Ausgang
des Komparators 105 liegen an einem UND-Glied 123. Wenn der
Inhalt des Mehrzweckregisters, das durch den Befehl zu ändern
ist, der dem Befehl vorausgeht, der in das Befehlsregister ein
geladen ist, und der Inhalt des Indexregisters, das durch den
Befehl bezeichnet ist, der in das Befehlsregister 1 geladen ist,
gleich sind, dann hat das Ausgangssignal des UND-Gliedes 123
den logischen Wert "1". In ähnlicher Weise liegen die Ausgangs
leitung 136 des Dekodierers 103 und der Ausgang des Kompara
tors 106 am UND-Glied 124, das ein Ausgangssignal mit dem lo
gischen Wert "1" erzeugt, wenn der vorhergehende Befehl und
der nachfolgende Befehl in einem Konflikt miteinander bezüglich
des Basisregisters stehen.
Wenn somit eines der Ausgangssignale der UND-Glieder 123 und
124 den logischen Wert "1" hat, dann besteht ein Adressenkon
flikt zwischen dem vorhergehenden Befehl und dem folgenden Be
fehl. Da das ODER-Glied 199′ die Ausgangssignale der UND-Glie
der 123 und 124 empfängt, erzeugt das ODER-Glied 199′ ein Aus
gangssignal mit dem logischen Wert "1", wenn der Adressenkon
flikt besteht.
Eine logische Hilfsoperationssteuerschaltung 3 b umfaßt ein
Register 101, einen Dekodierer 104, Verknüpfungsglieder 108
bis 115 und Register 120 bis 122 sowie 223 bis 225.
Das Register 101 hält den Operationscode des Befehls (vorher
gehender Befehl), der dem Befehl vorausgeht (folgender Befehl),
der gerade in das Befehlsregister 1 geladen wird. Der Dekodie
rer 104 dekodiert die Art des vorhergehenden Befehls. Wenn bei
den vorliegenden Ausführungsbeispiel der Erfindung der vorher
gehende Befehl ein Ladebefehl ist, das heißt, wenn dieser Be
fehl ein Ladebefehl oder ein Ladehalbbefehl ist, dann wird ein
Signal L auf eine Leitung 137 gegeben. Wenn der vorhergehende
Befehl ein Additionsbefehl oder ein Subtraktionsbefehl ist,
dann wird ein Signal A/S auf eine Leitung 138 gegeben. Wenn
insbesondere der vorhergehende Befehl ein Subtraktionsbefehl
ist, dann wird ein Signal S auf eine Leitung 141 gegeben. Wenn
der vorhergehende Befehl ein Befehl ist, ein Halbwort zu ver
arbeiten, beispielsweise ein Ladehalbbefehl, ein Additions
halbbefehl oder ein Subtraktionshalbbefehl ist, dann wird ein
Signal H auf eine Leitung 140 gegeben. Wenn der vorhergehende
Befehl ein anderer Befehl als ein Ladebefehl, ein Additions
befehl oder ein Subtraktionsbefehl beispielsweise ein Mehr
fachbefehl ist, dann wird ein Signal "OTHERS" auf eine Lei
tung 139 gegeben.
Die Verknüpfungsglieder 108 bis 115 und die Register 120 bis
122 sowie 223 bis 225 steuern die Ausführung des nachfolgenden
Befehls, der in einem Konflikt mit dem vorhergehenden Befehl
steht, in Abhängigkeit von der Art des vorhergehenden Befehls.
Die Dekodierstartsteuerung 3 c steuert den Beginn des Dekodierens
des Befehls, der in das Befehlsregister 1 geladen ist.
Die Arbeitsweise der in Fig. 4 dargestellten Schaltung wird
im folgenden bezüglich der Ausführung des Additionsbefehls I 2
erläutert, der in Fig. 3A auf den Ladebefehl I 1 folgt.
Wenn angenommen wird, daß kein Adressenkonflikt zwischen dem
vorhergehenden Ladebefehl I 1 und dem vorvorhergehenden Befehl
bestand, dann haben die Ausgangssignale der UND-Glieder 123
und 124 beide den logischen Wert "0" und haben die Ausgangs
signale XSUPO und BSUPO der UND-Glieder 108 und 109 beide den
logischen Wert "0". Die Wähler 50 und 52 in Fig. 1 wählen
somit die Ausgangsleitungen 24 und 25 der Mehrzweckregister 2
jeweils. In dieser Weise wird der Ladebefehl normal ausgeführt.
Wenn der folgende Additionsbefehl I 2 in das Befehlsregister 1
geladen wird, liefert der Dekodierer 103 Benötigungssignale X
und Y, die anzeigen, daß das Indexregister und das Basisre
gister benötigt werden, den UND-Gliedern 123 und 124 über die
Signalleitungen 135 und 136 jeweils. Wenn andererseits der
Dekodierer 104 den Inhalt des Registers 101 dekodiert, das den
Operationscode des vorhergehenden Ladebefehls I 1 hält, liefert
der Dekodierer 104 ein Signal L, das das Dekodieren des Lade
befehls I 1 angibt, den UND-Gliedern 108 und 109 über eine Lei
tung 137. Die Komparatoren 105 und 106 vergleichen die Mehr
zweckregisternummern X (=3) und B (=1) , die durch den Addi
tionsbefehl I 2 als Indexregister und Basisregister bezeich
net sind, mit der Mehrzweckregisternummer R 1 (=3),in das der
Operand durch den vorhergehenden Ladebefehl geladen ist.
Die Indexregisternummer X (=3) des Additionsbefehls wird dem
Komparator 105 über eine Signalleitung 132 geliefert und die
Basisregisternummer B (=7) wird dem Komparator 107 über eine
Signalleitung 133 geliefert. Die Mehrzweckregisternummer R 1,
die durch den Ladebefehl zu ändern ist, wird andererseits vom
Register 102 den beiden Komparatoren 105 und 106 geliefert.
Da der Adressenkonflikt bezüglich des Indexregisters besteht,
ist das Ausgangssignal des Komparators 105 gleich "1", wobei
dieses Signal am UND-Glied 123 liegt. Dementsprechend hat das
Ausgangssignal XSUPO des UND-Gliedes 123 den logischen Wert "1".
Andererseits bleiben die Ausgangssignale der UND-Glieder 124
und 109 auf dem logischen Wert "0". Das Signal XSUPO liegt am
Wähler 50 (Fig. 1) über eine Leitung 26, so daß der Wähler 50
so gesteuert wird, daß er den Wert Null als Eingangsdaten für
das Indexeingangsregister 4 von Fig. 1 wählt, wie es im vor
hergehenden beschrieben wurde. Das hat zur Folge, daß der Drei
eingangsadressenaddierer 7 den Inhalt des Basisregisters, das
durch den Befehl I 2 bezeichnet ist, und die Distanz oder den
Versatz addiert. Das UND-Glied 109 in Fig. 4 erzeugt ein Aus
gangssignal BSUPO mit dem logischen Wert "1" wenn der vorher
gehende Befehl ein Ladebefehl ist und der folgende Befehl das
Basisregister für die Adressenberechnung benötigt und die Mehr
zweckregisternummer, die durch den vorhergehenden Befehl zu
ändern ist, gleich der Basisregisternummer ist. Der Wähler 52
(Fig. 1) wird so gesteuert, daß er den Wert Null für das Ba
siseingangsregister 5 wählt und der Dreieingangsadressenaddie
rer 7 (Fig. 1) addiert nur den Inhalt des Indexregisters und
die Distanz oder den Versatz.
Wie es in Fig. 4 dargestellt ist, liegen das Signal L, das
dann erzeugt wird, wenn der durch den Dekodierer 104 dekodier
te Befehl ein Ladebefehl ist, und das Signal A/S, das dann
erzeugt wird, wenn der dekodierte Befehl ein Additions- oder
Subtraktionsbefehl ist, am ODER-Glied 114. Da der vorhergehen
de Befehl ein Ladebefehl ist, und das Signal L durch den De
kodierer 104 erzeugt wird, hat das Ausgangssignal des ODER-
Gliedes 114 den logischen Wert "1". Wenn eines der Ausgangs
signale der UND-Glieder 121 und 124 den logischen Wert "1"
hat, hat das Ausgangssignal des ODER-Gliedes 199′ den logi
schen Wert "1". Das Ausgangssignal des UND-Gliedes 110, an dem
die Ausgangssignale der ODER-Glieder 199′ und 114 liegen, hat
daher den logischen Wert "1", wobei dieses Signal in das Re
gister 223 geladen wird, das die Funktion der Einstellung des
Zeitablaufes hat. Sein Ausgangssignal 31 bewirkt, daß das Re
gister 8 in Fig. 1 die Ausgangsdaten des Dreieingangsadressen
addierers 7 liest. Das Register 8 hält den Inhalt des Index
registers, der vom Dreieingangsadressenaddierer 7 kommt, d.h.
die unvollständige Adresse, die nicht den Inhalt des Basisre
gisters enthält. Die Ausgangsdaten 31 des Registers 223 in
Fig. 4 liegen am Zeiteinstellregister 224 und dessen Ausgangs
daten liegen am UND-Glied 115.
Wenn das UND-Glied 115 ein Signal ADV, das das Ende
des Abrufens des Operanden des vorhergehenden Ladebefehls vom
Hauptspeicher 12 angibt, über die Signalleitung 37 empfängt, dann be
kommt das Ausgangssignal 32 des UND-Gliedes 115 den logischen
Wert "1". Dieses Signal gibt dem Wähler 54 in Fig. 1 den Be
fehl, die Ausgangsdaten der Hilfsoperationseinheit 100 zu
wählen. Die Ausgangssignale der UND-Glieder 111 bis 113 be
halten den logischen Wert "0" für den in Fig. 3A dargestell
ten Fall, wobei diese Ausgangssignale über die Register 120
bis 122 auf die Leitungen 30 a bis 30 c gegeben werden. Diese
Signale geben den Wählern 197 bis 199 in Fig. 1 den Befehl,
Ausgangsdaten von anderen Schaltungen als den Schaltungen 210
bis 212 zu wählen.
Die Dekodierstartsteuerung 3 c in Fig. 4 unterdrückt das De
kodieren eines Befehls, der auf denjenigen Befehl folgt, der
den Adressenkonflikt verursacht hat. Im Fall des Adressenkon
fliktes liefert das ODER-Glied 199′ ein Signal "1" dem UND-
Glied 116, an dem auch die Umkehr des Signals OTHERS vom De
kodierer 104 liegt. Wenn der vorhergehende Befehl ein Ladebe
fehl ist, wie es in Fig. 3A dargestellt ist, hat das Signal
OTHERS den logischen Wert "0" und hat das Ausgangssignal des
UND-Gliedes 116 den logischen Wert "1". Dieses Ausgangssignal
liegt zwei Zyklen später über die Register 128 und 129 am UND-
Glied 118. Das UND-Glied 118 erzeugt ein Signal 41, das das
Dekodieren des weiteren zwei Zyklen nach den Dekodieren des
folgenden Befehls I 2 folgenden Befehls unterdrückt. Dieses
Signal liegt an der I-Abrufschaltung 17 und am Befehlsregister
1 (Fig. 1). Wenn das Signal ADV vom Hauptspeicher 12 kommt,
wird das Dekodierunterdrückungssignal 41 durch die UND-Glieder
115 und 118 rückgesetzt.
Im folgenden wird die Arbeitsweise der in Fig. 1 dargestell
ten Informationsverarbeitungsvorrichtung für den Fall beschrie
ben, daß die in Fig. 3B dargestellte Befehlsfolge ausgeführt
wird. Bei der vorliegenden Befehlsfolge ist der vorhergehende
Befehl ein Additionsbefehl I 1 und benutzt der folgende Lade
befehl das Mehrzweckregister #3, das durch den Additionsbefehl
I 1 zu ändern ist, als Indexregister. Der vorhergehende Addi
tionsbefehl I 1 bewirkt, daß die Operationseinheit 16 den In
halt (GPR 3) des Mehrzweckregisters #3, das durch das Feld R 1
des Befehls bezeichnet ist, und den Operanden (OP 2) des Haupt
speichers addiert und fordert auf, diese Summe in dem Mehr
zweckregister #3 zu speichern. Das vorliegende Ausführungsbei
spiel unterscheidet sich somit von dem in Fig. 3A dargestell
ten Fall dadurch, daß der vorhergehende Befehl I 1 eine Opera
tion durch die Operationseinheit 16 benötigt. Wenn der folgende
Ladebefehl I 2 in das Befehlsregister 1 geladen wird, nachdem
der vorhergehende Additionsbefehl I 1 dekodiert ist, arbeitet
die in Fig. 1 dargestellte Informationsverarbeitungsvorrich
tung in der folgenden Weise.
Wenn der vorhergehende Befehl I 1 der Additionsbefehl ist, ist
die Operandenadresse des folgenden Ladebefehls I 2 die Summe
des Mehrzweckregisters #3 (GPR 3) bevor dieses durch den Additionsbefehl
I₁ fortgeschrieben ist, des zweiten Operanden
(OP 2) des Hauptspeichers 12, der durch den Additionsbefehl I₁
bezeichnet ist, des Inhalts (GPR 1) des Mehrzweckregisters #1,
das als Basisregister durch den Ladebefehl I₂ bezeichnet ist
und des Versatzes (D), der durch den Befehl angegeben wird, d. h.
gleich (GPR 3) + (OP 2) + (GPR 1) + D. Eine Interimssumme der
Operandenadresse des Ladebefehls I₂ wird berechnet, während
die Daten des zweiten Operanden (OP 2) des Additionsbefehls I₁
noch nicht vom Hauptspeicher 12 abgerufen sind. Drei Daten
GPR 3, GPR 1 und D werden addiert, während der Inhalt (GPR 3) des
Mehrzweckregisters #3 benutzt wird, bevor dieses durch den
Additionsbefehl geändert wird, um eine unvollständige Adresse
zu bestimmen. Wenn der zweite Operand (OP 2) des Additionsbefehls
I 1 vom Hauptspeicher 12 abgerufen wird, wird er zur un
vollständigen Adresse durch die Hilfsoperationseinheit 100
addiert, um eine vollständige Adresse zu bestimmen. Die Deko
dierstufe für den folgenden Ladebefehl I 2 kann somit ausge
führt werden, ohne daß der Abschluß der Ausführung des vorher
gehenden Additionsbefehles I 1 abgewartet wird. Der Inhalt des
Mehrzweckregisters #3, das als Indexregister durch den Lade
befehl I 2 bezeichnet ist, der Inhalt des Mehrzweckregisters #1,
das als Basisregister bezeichnet ist, und der Versatz D, der
durch den Befehl I 2 bezeichnet ist, werden durch den Dreiein
gangsadressenaddierer 7 addiert, der die unvollständige Adresse
berechnet. Wenn der vorhergehende Befehl der Ladebefehl ist
(Fig. 3A), ist es notwendig, das Indexeingangsregister oder
das Basiseingangsregister auf Null zu setzen, ein derartiger
Arbeitsschritt ist jedoch dann nicht notwendig, wenn der vor
hergehende Befehl der Additionsbefehl ist. Die Hilfsoperations
einheit 3 b in der Steuerschaltung 3 gibt die Daten "0"
auf die Signalleitungen 26 und 27, damit die Wähler 50 und
52 die Ausgangsleitungen 24 und 25 der Mehrzweckregister 2
auswählen.
Die Arbeitsweise des Konfliktdetektors 3 c in Fig. 4 ist die
gleiche wie bei der Befehlsfolge von Fig. 3A. Die Ausgangs
signale des UND-Gliedes 123 und des ODER-Gliedes 199′ haben
den logischen Wert "1".
Da der durch den Dekodierer 104 dekodierte vorhergehende
Befehl ein Additionsbefehl ist, gibt der Dekodierer 104 das
Signal A/S auf die Signalleitung 138, wobei er jedoch kein
Signal L auf die Leitung 137 gibt. Das hat zur Folge, daß das
Ausgangssignal des UND-Gliedes 108 auf dem logischen Wert "0"
bleibt, was im Gegensatz zu dem in Fig. 3A dargestellten Fall
steht. Das Ausgangssignal des UND-Gliedes 109 bleibt auf dem
logischen Wert "0", wie es im Fall von Fig. 3A der Fall ist.
Die Ausgangssignale XSUPO und BSUPO der UND-Glieder 108 und 109
werden den Wählern 50 und 52 (Fig. 1) über die Leitungen 26
und 27 geliefert. Die Summe (GPR 3)+(GPR 1)+D vom Adressen
addierer 7 in Fig. 1 wird in das Register 8 eingegeben. Ein
Setzsignal 31 für das Register 8 wird durch die Steuerschal
tung in folgender Weise erzeugt. Da das Ausgangssignal A/S des
Dekodierers 104 den logischen Wert "1" hat, hat gemäß Fig. 4
das Ausgangssignal des ODER-Gliedes 114 gleichfalls den logi
schen Wert "1", wie es im Fall von Fig. 3A der Fall ist.
Das Ausgangssignal 31 des Registers 223 hat dementsprechend
den logischen Wert "1", wie im Fall von Fig. 3A.
In dieser Weise erfolgt die Addition im Adressenaddierer 7
genauso als würde kein Konflikt bestehen. Der folgende Arbeits
vorgang ist der gleiche wie bei der Befehlsfolge von Fig. 3A.
Wenn das Abrufen des Operanden (OP 2) des vorhergehenden Addi
tionsbefehles I 1 abgeschlossen ist, werden die abgerufenen
Daten (OP 2) über die Signalleitung 35 der Hilfsoperations
einheit 100 geliefert. Die Wähler 197 bis 199 der Hilfsopera
tionseinheit 100 wählen die abgerufenen Daten und liefern die
abgerufenen Daten dem Addierer 10, der sie zur unvollständigen
Adresse (GPR 3)+(GPR 1)+D addiert, die im Register 8 gehal
ten wird. Wenn andererseits das Endsignal ADV für das Abrufen
des Operanden des Additionsbefehles I 1 an der Steuerschaltung
3 über die Signalleitung 37 liegt, dann steuert die Steuer
schaltung 3 den Wähler 54 über ein Signal 32 derart, daß der
Wähler 54 die Ausgangsdaten des Addierers 10 wählt. Somit wird
die Operandenadresse des Ladebefehls I 2 in das Adressenregister
11 geladen. Der Operand des Ladebefehls I 1 am Hauptspeicher 12
kann somit abgerufen werden.
Das hat zur Folge, daß selbst dann, wenn ein Adressenkonflikt
zum vorhergehenden Additionsbefehl besteht, die Ausführung des
folgenden Befehls beschleunigt werden kann.
Es sei im folgenden ein Fall angenommen, in dem der vorhergehen
de Befehl ein Mehrzweckregisteränderungsbefehl ist, der einen
Halbwortoperanden handhabt, beispielsweise ein Ladehalbbefehl
I 1 ist, und der folgende Additionsbefehl I 2 einen Adressen
konflikt zum vorhergehenden Befehl hat, wie es in Fig. 3C
dargestellt ist.
Die Arbeitsweise unterscheidet sich von derjenigen der Befehls
folge von Fig. 3A und 3B insofern, als der Operand (OP 2), der
durch den Ladehalbbefehl I 1 bezeichnet wird, vom Hauptspeicher
12 zum Addierer 10 über eine Vorzeichenerweiterungsschaltung 210
abgerufen wird. Der Ladebefehl und der Additionsbefehl, die in
Fig. 3A und 3B dargestellt sind, handhaben 4-Byte-Daten
als Operanden und die vom Hauptspeicher abgerufenen Daten und
die Addition haben eine 4-Byte-Länge. Der in Fig. 3C darge
stellte Ladehalbbefehl I 1 ruft andererseits 2-Byte-Daten vom
Hauptspeicher 12 ab und lädt diese Daten in das 4-Byte-Mehr
zweckregister #3, das durch das Feld R 1 bezeichnet wird.
Das Ladebit der 2-Byte-Daten, die vom Hauptspeicher 12 ab
gerufen werden, wird als Vorzeichenbit angesehen und das
Vorzeichenbit wird von der Operationseinheit 16 zu zwei
höherwertigen Bytes erweitert, um 4-Byte-Daten zu bilden.
Dann werden diese Daten in das Mehrzweckregister #3 geladen.
Die Operation, die durch die Operationseinheit 16 auszufüh
ren ist, unterscheidet sich somit von der Addition, die bei
der Befehlsfolge von Fig. 3A ausgeführt wird. Wenn insbeson
dere das Ladebit der 2-Byte-Daten gleich "0" ist, werden Bits
mit dem Wert "0" in die beiden höherwertigen Bytes (Fig. 5A)
gefüllt, während dann, wenn das Ladebit den Wert "1" hat,
Bytes mit dem Wert "1" eingefüllt werden (Fig. 5B).
Für die Befehlsfolge von Fig. 3C erfolgen die Dekodierung
des Ladehalbbefehls I 1, das Berechnen der Operandenadresse
und das Abrufen des Operanden in der gleichen Weise wie für
den Ladebefehl von Fig. 3A. Wenn der folgende Additionsbe
fehl I 2 in das Befehlsregister 1 geladen wird, dann besteht
ein Konflikt bezüglich des Indexeingangsregisters, wie es in
Fig. 3A der Fall ist, und werden die Eingangsdaten zum Index
eingangsregister 4 beim Berechnen der Operandenadresse des
Additionsbefehles I 2 auf null gesetzt, wie es in Fig. 3A der
Fall ist. Die unvollständige Adresse wird im Register 8
(Fig. 5) gehalten, bis das Abrufen des Operanden des Lade
halbbefehls I 2 abgeschlossen ist. Wenn der Operand des Lade
halbbefehls I 2 abgerufen ist, wird die Operandenadresse des
Additionsbefehls I 2 durch die Hilfsoperationseinheit 100 be
rechnet. In diesem Fall ist es notwendig, die 2-Byte-Ope
randendaten in vier Bytes zu erweitern. Das erfolgt durch
eine Vorzeichenerweiterungsschaltung 210. Der 2-Byte-Ope
rand, der durch den Ladehalbbefehl abgerufen ist, wird durch
den Ausrichter 14 an der 2-Byte-Position niedriger Wertigkeit
eines 4-Byte-Datenweges 35 ausgerichtet. Die Vorzeichenerwei
terungsschaltung 210 prüft das höchstwertige Bit und addiert
sechzehn Bits, die den gleichen Wert wie das Vorzeichen-Bit
haben, zur höherwertigen Position der ursprünglichen 2-Bit-
Daten. Die erweiterten Daten werden vom Wähler 197 gewählt
und über die Wähler 198 und 199 dem Addierer 10 geliefert.
Wenn der vorhergehende Befehl ein Ladehalbbefehl ist, kann
in dieser Weise die Adresse des folgenden Additionsbefehls
fehlerfrei bestimmt werden. Der Wähler 197 wählt die erweiter
ten Daten, wenn die Hilfsoperationssteuerung 3 b ein Signal 30 a
mit dem logischen Wert "1" dem Wähler 197 liefert. Dieses
Steuersignal wird in der folgenden Weise erzeugt. Wenn der
vorhergehende Befehl ein Halbworthandhabungsbefehl ist, dann
liefert gemäß Fig. 4 der Dekodierer 104 ein Signal H dem UND-
Glied 111 über die Signalleitung 140. Da ein Signal mit dem
logischen Wert "1" dem UND-Glied 111 vom ODER-Glied 199′ ge
liefert wird, erzeugt das UND-Glied 111 ein Ausgangssignal mit
dem logischen Wert "1", das über das Zeiteinstellregister 120
auf die Leitung 30 a gegeben wird.
Wenn der vorhergehende, das Mehrzweckregister ändernde Befehl
ein Additionshalbbefehl ist, der es erforderlich macht, einen
Halbwortoperanden zu addieren, werden sowohl die Operation des
Addierers 7, die in Verbindung mit Fig. 3B beschrieben wurde,
als auch die Operation der Vorzeichenerweiterungsschaltung aus
geführt, die in Verbindung mit Fig. 3C beschrieben wurde.
Im folgenden wird der Arbeitsablauf für die in Fig. 3D darge
stellte Befehlsfolge beschrieben. In diesem Fall ist der vorher
gehende, das Mehrzweckregister ändernde Befehl I 1 ein Subtrak
tionsbefehl. Die Mehrzweckregisternummer (3) die durch den
Subtraktionsbefehl I 1 zu ändern ist, und die Indexregister
nummer des folgenden Ladebefehls I 2 sind gleich, so daß ein
Konflikt besteht. Die Operandenadresse, die durch den Lade
befehl I 2 bestimmt ist, ist gleich (GPR 3)-(OP 2)+(GPR 1)+D,
wobei die Symbole die gleichen sind, wie sie für Fig. 3A be
nutzt wurden. Ähnlich wie im Fall von Fig. 3B werden drei
Daten ausschließlich des zweiten Operanden (OP 2) des Subtrak
tionsbefehls I 1 addiert, d.h. wird (GPR 3)+(GPR 1) +D ge
bildet. Wenn der zweite Operand OP 2 des Subtraktionsbefehls
I 2 abgerufen wird, wird er von dieser Summe subtrahiert, um
die Operandenadresse des Ladebefehls I 2 zu berechnen. Ähnlich
wie im Fall von Fig. 3B, in dem der vorhergehende Befehl der
Additionsbefehl ist, werden somit der Inhalt (GPR 3) des Mehr
zweckregisters #3 vor seiner Änderung durch den Subtraktions
befehl, der Inhalt (GPR 1) des Mehrzweckregisters #1, das als
Basisregister durch den Ladebefehl bezeichnet ist, und die
Distanz oder der Versatz D durch den Adressenaddierer 7 addiert,
um die unvollständige Adresse für den Ladebefehl I 2 zu berech
nen, und wird diese im Adressenregister 8 gehalten, bis der
Operand (OP 2) des Subtraktionsbefehls I 1 abgerufen wird. Für
den Additionsbefehl werden die Operandendaten (OP 2), die vom
Hauptspeicher 12 abgerufen werden, einfach durch den Addierer
10 addiert. Für den Subtraktionsbefehl I 1 müssen sie jedoch
subtrahiert werden. Die Subtraktion erfolgt gewöhnlich durch
eine Addition unter Verwendung eines Zweierkomplementes.
Bei dem vorliegenden Ausführungsbeispiel wird statt der Sub
traktion des zweiten Operanden (OP 2) des Subtraktionsbefehls,
der auf die Signalleitung 35 abgerufen wird, von der Summe
(GPR 3)+(GPR 1)+D, die im Register 8 gehalten ist, ein Zwei
erkomplement der Daten auf der Signalleitung 35 über eine Kom
plementschaltung 211 erzeugt und durch den Wähler 198 ausge
wählt und dem Addierer 10 geliefert. Es wird dann zum Inhalt
addiert, der im Register 8 gehalten ist, um dasselbe Ergebnis
wie bei einer Subtraktion zu erhalten. Das Signal 30 b, das
den Wähler 198 ansteuert, wird in der folgenden Weise erzeugt.
Wenn der Dekodierer 104 den vorhergehenden Subtraktionsbefehl
I 1 dekodiert, dann liefert er gemäß Fig. 4 ein Signal S dem
UND-Glied 112 über die Leitung 141. Da ein Signal mit dem
Wert "1" auch vom ODER-Glied 199 am UND-Glied 112 liegt, er
zeugt das UND-Glied 112 ein Ausgangssignal mit dem logischen
Wert "1", das über das Zeiteinstellregister 121 und die Lei
tung 30 b dem Wähler 198 geliefert wird (Fig. 1).
Wenn der vorhergehende Befehl ein Subtraktionsbefehl ist,
wird in dieser Weise der Zusatzbedarf auf einen Zyklus re
duziert, wie es beim Ladebefehl oder Additionsbefehl der
Fall ist und in Fig. 2C dargestellt ist. Wenn in Fig. 3D
der Subtraktionsbefehl I 1 ein Subtraktionshalbbefehl ist,
der einen Halbwortoperanden handhabt, dann werden die Wähler
197 und 198 so angesteuert, daß sowohl die Ausgangsdaten der
Codeerweiterungsschaltung 210 als auch der Komplementschal
tung 211 gewählt werden, wie es in Fig. 1 dargestellt ist.
Das vorliegende Ausführungsbeispiel der Erfindung ist somit
auch auf einen derartigen Befehl anwendbar.
Im folgenden wird der Arbeitsvorgang für die Befehlsfolge
erläutert, die in Fig. 3E dargestellt ist. Die Kombination
der Befehle ist die gleiche wie bei Fig. 3A, das Mehrzweck
register, das durch den Ladebefehl I 1 geändert wird, wird je
doch durch den folgenden Additionsbefehl I 2 im Gegensatz zu
dem Fall von Fig. 3A sowohl als Indexregister als auch als
Basisregister bezeichnet. Die bekannten Verfahren und Vorrich
tungen sagen über die Hochgeschwindigkeitsausführung in einem
derartigen Fall nichts aus. Gemäß der Erfindung wird die Aus
führung in gleicher Weise wie bei den Befehlsfolgen von Fig. 3A
bis 3D beschleunigt.
Die Operandenadresse des folgenden Additionsbefehls I 2 kann
durch (OP 2)+(OP 2)+D auf der Grundlage der zweiten Operan
dendaten (OP 2) des vorhergehenden Ladebefehls I 1 und der
Distanz oder dem Versatz D bestimmt werden, der durch den Lade
befehl I 2 bezeichnet ist. Der zweite Operand (OP 2) des Lade
befehls I 1, der vom Hauptspeicher 12 abgerufen wird, wird
nämlich verdoppelt und zur Distanz oder dem Versatz D zuaddiert.
Die Wähler 50 und 52 werden so gesteuert, daß die Eingangsda
ten zum Indexeingangsregister und die Eingangsdaten zum Basis
eingangsregister des Adressenaddierers 7 gleich null gehalten
werden. Die Signale 26 und 27, die die Wähler 50 und 52 an
steuern, kommen von den UND-Gliedern 108 und 109 in Fig. 4.
Wenn der zweite Operand (OP 2) des Ladebefehls I 2 anschließend
abgerufen wird, wird der Operand durch einen Schieber 212
verdoppelt, dessen Ausgangsdaten vom Wähler 199 gewählt und
zum Inhalt des Registers 8 durch den Addierer 10 addiert werden,
so daß die richtige Operandenadresse des Additionsbefehls I 2
bestimmt werden kann. Der Schieber 212 kann ein einfacher 1-
Bit-Linksschieber sein. Der Wähler 199 wird durch das Signal
30 c angesteuert, das vom UND-Glied 113 in Fig. 4 erzeugt wird.
Die UND-Glieder 123 und 124 erzeugen Ausgangssignale mit dem
logischen Wert "1", wenn ein Indexregisterkonflikt oder ein
Basisregisterkonflikt jeweils besteht, wie es im vorhergehenden
beschrieben wurde. Für die Befehlsfolge von Fig. 3E liegt das
Ausgangssignal des UND-Gliedes 113, das den logischen Wert "1"
hat, über das Zeiteinstellregister 122 an der Leitung 30 c.
Wenn das Register, das durch den vorhergehenden Ladebefehl
geändert wurde, sowohl als Indexregister als auch als Basis
register für den folgenden Befehl benutzt wird, wird in dieser
Weise der Zusatzbedarf auf einen Zyklus reduziert, wie es in
Fig. 2C dargestellt ist. Das ist nicht auf die vorhergehenden
Ladebefehle beschränkt, das vorliegende Ausführungsbeispiel
der Erfindung ist gleichfalls auf den Additionsbefehl und den
Subtraktionsbefehl anwendbar.
Ein Verriegelungsglied 225 in Fig. 4 dient dazu, einen Adres
senmodus zu bezeichnen, in dem die Bit-Breite der Operanden
adresse zum Zugriff auf den Hauptspeicher 12 bestimmt wird, die
vom Adressenaddierer 7 kommt. Wenn das Ausgangssignal 28 des
Verriegelungsgliedes 225 den Wert "0" hat, dann hat die Adres
se eine 24-Bit-Breite, und wenn das Ausgangssignal 28 den logi
schen Wert "1" hat, hat die Adresse eine 31-Bit-Breite.
Das hat zur Folge, daß auf den Hauptspeicher 12 entweder mit
einer 24-Bit-Adresse oder mit einer 31-Bit-Adresse zugegriffen
werden kann. Das Verriegelungsglied 225 wird gesetzt oder rück
gesetzt, wenn der Dekodierer 103 einen Befehl dekodiert, der
den Adressenmodus ändert. Die Fig. 6A und 6B zeigen Beispiele
eines Befehls, der den Adressenmodus ändert. Mit "0B" und
"0C" sind Operationscodes bezeichnet. Diese Befehle sind 2-
Bit-Befehle und das Bit 0 des Mehrzweckregisters, das durch
das Feld R 2 bezeichnet ist, gibt den Adressenmodus an.
Wenn der Dekodierer 103 den Befehl von Fig. 6A oder 6B de
kodiert, wird das Bit 0 des Mehrzweckregisters, das durch das
Feld R 2 bezeichnet ist, auf der Signalleitung 24 in das Ver
riegelungsglied 225 eingegeben. Sein Ausgangssignal 28 unter
drückt die Ausgangsdaten des Dreieingangsadressenaddierers 7.
Gemäß der Erfindung hinsichtlich des Adressenmodus steuert das
Ausgangssignal 28 des Verriegelungsgliedes 225 zum Steuern des
Adressenmodus nicht nur den Dreieingangsadressenaddierer 7
sondern auch die Ausgangsdaten des Addierers 10. Durch Reflek
tieren des Adressenmodus zu den Ausgangsdaten des Addierers 10
durch das Ausgangssignal 28 des Verriegelungsgliedes 225 kann
der Adressenkonflikt sogar sofort nach der Änderung des Adres
senmodus schnell verarbeitet werden.
Wenn die Adressenmodussteuerung durch die Signalleitung 28
an den Ausgangsdaten des Addierers 10 nicht bewirkt wird,
können Operandendaten des vorhergehenden Befehls, die vom
Hauptspeicher 12 abgerufen wurden, dem Addierer 10 nicht ge
liefert werden, sondern muß dieser über den Dreieingangsaddie
rer 7 oder die Mehrzweckregister 2 versorgt werden. Das hat
zur Folge, daß der Zusatzbedarf um einen oder zwei Zyklen zu
nimmt.
Wenn ein Adressenkonflikt zu einem vorhergehenden Ladebefehl
oder Additions/Subtraktionsbefehl besteht, kann gemäß der Er
findung die Dekodierung des folgenden Befehls beschleunigt wer
den, ohne daß Bedingungen für den folgenden Befehl aufgestellt
werden. Wenn der vorhergehende Befehl einen Halbwortoperanden
handhabt, oder wenn das Indexregister und das Basisregister
des folgenden Befehls gleichzeitig durch den vorhergehenden Be
fehl geändert werden, wird die Hochgeschwindigkeitsausführung
dennoch erzielt.
Claims (12)
1. Informationsverarbeitungsvorrichtung,
gekennzeichnet durch
eine Detektoreinrichtung (3 a), die feststellt, ob ein vorhergehender Befehl, der sich in der Ausführung befindet, die Anweisung gibt, einen ersten Operanden von einem Haupt speicher abzurufen, Ausführungsergebnisdaten für den vorher gehenden Befehl auf der Grundlage des ersten Operanden zu er zeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen folgenden auszuführenden Befehl, mit den Ausführungsergebnisdaten zu ändern;
eine Adreßaddiereinrichtung (7), die auf ein negatives Ergebnis der Detektoreinrichtung (3 a) anspricht und die Viel zahl der Adreßdaten addiert, um eine zweite Operandenadresse zu erzeugen, die vom folgenden Befehl benötigt wird;
eine Adreßdatenversorgungseinrichtung (2, 50, 52, 108, 109), die auf ein positives Ergebnis der Detektoreinrichtung (3 a) anspricht, um der Adreßaddiereinrichtung (7) zumindest einen Teil der Adreßdaten zu liefern, bestimmt durch die Art des vorhergehenden Befehls, und zwar parallel zur Ausführung des vorhergehenden Befehls; und
Operationseinrichtungen (100, 54, 110 bis 114), die auf das positive Feststellungsergebnis ansprechen, um dann, wenn der erste Operand für den vorhergehenden Befehl vom Haupt speicher abgerufen ist und vor einer Änderung der einen Adreß dateninformation durch den vorhergehenden Befehl, eine Opera tion durchzuführen, die durch den vorhergehenden Befehl oder eine Ausgabe der Adreßaddiereinrichtung (7) und den abgerufe nen ersten Operanden bestimmt ist, um als zweite Operanden adresse eine Adresse zu erzeugen, die gleich der Summe aus der Vielzahl der Adreßdaten ausschließlich der einen Adreßdatenin formation und dem Ausführungsergebnis für den vorhergehenden Befehl ist.
eine Detektoreinrichtung (3 a), die feststellt, ob ein vorhergehender Befehl, der sich in der Ausführung befindet, die Anweisung gibt, einen ersten Operanden von einem Haupt speicher abzurufen, Ausführungsergebnisdaten für den vorher gehenden Befehl auf der Grundlage des ersten Operanden zu er zeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen folgenden auszuführenden Befehl, mit den Ausführungsergebnisdaten zu ändern;
eine Adreßaddiereinrichtung (7), die auf ein negatives Ergebnis der Detektoreinrichtung (3 a) anspricht und die Viel zahl der Adreßdaten addiert, um eine zweite Operandenadresse zu erzeugen, die vom folgenden Befehl benötigt wird;
eine Adreßdatenversorgungseinrichtung (2, 50, 52, 108, 109), die auf ein positives Ergebnis der Detektoreinrichtung (3 a) anspricht, um der Adreßaddiereinrichtung (7) zumindest einen Teil der Adreßdaten zu liefern, bestimmt durch die Art des vorhergehenden Befehls, und zwar parallel zur Ausführung des vorhergehenden Befehls; und
Operationseinrichtungen (100, 54, 110 bis 114), die auf das positive Feststellungsergebnis ansprechen, um dann, wenn der erste Operand für den vorhergehenden Befehl vom Haupt speicher abgerufen ist und vor einer Änderung der einen Adreß dateninformation durch den vorhergehenden Befehl, eine Opera tion durchzuführen, die durch den vorhergehenden Befehl oder eine Ausgabe der Adreßaddiereinrichtung (7) und den abgerufe nen ersten Operanden bestimmt ist, um als zweite Operanden adresse eine Adresse zu erzeugen, die gleich der Summe aus der Vielzahl der Adreßdaten ausschließlich der einen Adreßdatenin formation und dem Ausführungsergebnis für den vorhergehenden Befehl ist.
2. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die Adreßdatenversorgungseinrich
tung mehrere Register (2) und Einrichtungen (50, 52, 108, 109)
enthält, die auf das positive Ergebnis der Detektoreinrichtung
(3 a) ansprechen, um der Adreßaddiereinrichtung (7), vorgegeben
durch den vorhergehenden Befehl, die Adreßdaten, die in einem
Indexregister und einem Basisregister aus der Vielzahl von Re
gistern gehalten werden, die durch den folgenden Befehl be
zeichnet werden, und zumindest einen Teil eines Versatzes zu
liefern, der durch den folgenden Befehl bezeichnet wird.
3. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an sprechen, daß der vorhergehende Befehl ein Befehl eines ersten Typs ist, der die Verwendung des ersten Operanden unverändert als Ausführungsergebnisdaten für den vorhergehenden Befehl verlangt, um die Adreßdaten bis auf die eine Adreßdateninfor mation der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (10) enthalten, die auf die Feststellung anspricht, daß der vor hergehende Befehl ein Befehl des ersten Typs ist, um die Summe aus dem abgerufenen ersten Operanden und der Ausgabe der Adreßaddiereinrichtung (7) zu berechnen.
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an sprechen, daß der vorhergehende Befehl ein Befehl eines ersten Typs ist, der die Verwendung des ersten Operanden unverändert als Ausführungsergebnisdaten für den vorhergehenden Befehl verlangt, um die Adreßdaten bis auf die eine Adreßdateninfor mation der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (10) enthalten, die auf die Feststellung anspricht, daß der vor hergehende Befehl ein Befehl des ersten Typs ist, um die Summe aus dem abgerufenen ersten Operanden und der Ausgabe der Adreßaddiereinrichtung (7) zu berechnen.
4. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an sprechen, daß der vorhergehende Befehl ein Befehl eines zwei ten Typs ist, der die Erweiterung eines Vorzeichen-Bit des zweiten Operanden und die Verwendung des Ergebnisses als die Ausführungsergebnisdaten für den vorhergehenden Befehl ver langt, um die Adreßdaten bis auf die eine Adreßdateninforma tion der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Vorzeichen-Erweite rungseinrichtung (210), die auf die Feststellung anspricht, daß der vorhergehende Befehl ein Befehl des zweiten Typs ist, um das Vorzeichen-Bit des abgerufenen ersten Operanden zu er weitern, und eine Einrichtung enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) berechnet.
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an sprechen, daß der vorhergehende Befehl ein Befehl eines zwei ten Typs ist, der die Erweiterung eines Vorzeichen-Bit des zweiten Operanden und die Verwendung des Ergebnisses als die Ausführungsergebnisdaten für den vorhergehenden Befehl ver langt, um die Adreßdaten bis auf die eine Adreßdateninforma tion der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Vorzeichen-Erweite rungseinrichtung (210), die auf die Feststellung anspricht, daß der vorhergehende Befehl ein Befehl des zweiten Typs ist, um das Vorzeichen-Bit des abgerufenen ersten Operanden zu er weitern, und eine Einrichtung enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) berechnet.
5. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die Adreßdatenversorgungseinrich
tung Einrichtungen enthält, die auf die Feststellung anspre
chen, daß der vorhergehende Befehl ein bestimmter Befehl ist,
um alle Adreßdaten der Adreßaddiereinrichtung (7) parallel zur
Ausführung des vorhergehenden Befehls zu liefern.
6. Informationsverarbeitungsvorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, die Summe aus der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation durch dieses Ergebnis fortzuschrei ben; und
daß die Operationseinrichtungen Einrichtungen enthalten, die die Summe aus der Ausgabe der Adreßaddiereinrichtung (7) und dem ersten Operanden, der vom Hauptspeicher abgerufen wird, als Adresse des zweiten Operanden bilden.
daß der bestimmte Befehl ein Befehl ist, der verlangt, die Summe aus der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation durch dieses Ergebnis fortzuschrei ben; und
daß die Operationseinrichtungen Einrichtungen enthalten, die die Summe aus der Ausgabe der Adreßaddiereinrichtung (7) und dem ersten Operanden, der vom Hauptspeicher abgerufen wird, als Adresse des zweiten Operanden bilden.
7. Informationsverarbeitungsvorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, die Sum me aus dem erweiterten ersten Operanden und der einen Adreß dateninformation als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausführungsergeb nisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden, der vom Hauptspeicher abgerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operan den bildet.
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, die Sum me aus dem erweiterten ersten Operanden und der einen Adreß dateninformation als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausführungsergeb nisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden, der vom Hauptspeicher abgerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operan den bildet.
8. Informationsverarbeitungsvorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, den Unterschied zwischen der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu er zeugen und die eine Adreßdateninformation mit den Ausführungs ergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreß addiereinrichtung (7) und dem ersten Operanden, der vom Haupt speicher abgerufen wird, als Adresse des zweiten Operanden bilden.
daß der bestimmte Befehl ein Befehl ist, der verlangt, den Unterschied zwischen der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu er zeugen und die eine Adreßdateninformation mit den Ausführungs ergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreß addiereinrichtung (7) und dem ersten Operanden, der vom Haupt speicher abgerufen wird, als Adresse des zweiten Operanden bilden.
9. Informationsverarbeitungsvorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, den Un terschied zwischen der einen Adreßdateninformation und dem er weiterten ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausfüh rungsergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden und Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreßaddiereinrich tung (7) und der Ausgabe der Vorzeichen-Erweiterungseinrich tung (210) als Adresse des zweiten Operanden bilden.
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, den Un terschied zwischen der einen Adreßdateninformation und dem er weiterten ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausfüh rungsergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden und Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreßaddiereinrich tung (7) und der Ausgabe der Vorzeichen-Erweiterungseinrich tung (210) als Adresse des zweiten Operanden bilden.
10. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß die Operationseinrichtungen eine
Vorzeichen-Erweiterungseinrichtung (210), die auf die Fest
stellung anspricht, daß der vorhergehende Befehl ein Befehl
ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu
erweitern und die Ausführungsergebnisdaten für den vorherge
henden Befehl auf der Grundlage des erweiterten ersten Operan
den zu erzeugen, um das Vorzeichen-Bit des ersten Operanden zu
erweitern, der vom Hauptspeicher abgerufen wird, und Einrich
tungen (10, 211) enthalten, die eine Operation, die durch den
vorhergehenden Befehl bestimmt ist, an der Ausgabe der Vor
zeichen-Erweiterungseinrichtung (210) und der Ausgabe der
Adreßaddiereinrichtung (7) ausführen, um die Adresse des zwei
ten Operanden zu bilden.
11. Informationsverarbeitungsvorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung eine Einrichtung enthält, die auf die Feststellung anspricht, daß der vorher gehende Befehl ein Befehl ist, der verlangt, den ersten Ope randen unverändert als die Ausführungsergebnisdaten für den vorhergehenden Befehl zu verwenden, und weiterhin auf die Feststellung durch die Detektoreinrichtung (3 a) anspricht, daß zwei Adreßdateninformationen der Adreßdaten durch die Ausfüh rungsergebnisdaten für den vorhergehenden Befehl fortzu schreiben sind, um die Adreßdaten bis auf diese beiden Adreß dateninformationen der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (212) zum Verdoppeln des ersten Operanden, der vom Hauptspeicher ab gerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Verdopplungseinrichtung (212) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operanden bildet.
daß die Adreßdatenversorgungseinrichtung eine Einrichtung enthält, die auf die Feststellung anspricht, daß der vorher gehende Befehl ein Befehl ist, der verlangt, den ersten Ope randen unverändert als die Ausführungsergebnisdaten für den vorhergehenden Befehl zu verwenden, und weiterhin auf die Feststellung durch die Detektoreinrichtung (3 a) anspricht, daß zwei Adreßdateninformationen der Adreßdaten durch die Ausfüh rungsergebnisdaten für den vorhergehenden Befehl fortzu schreiben sind, um die Adreßdaten bis auf diese beiden Adreß dateninformationen der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (212) zum Verdoppeln des ersten Operanden, der vom Hauptspeicher ab gerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Verdopplungseinrichtung (212) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operanden bildet.
12. Befehlsausführungsverfahren in einer Informationsverar
beitungsvorrichtung zum Ausführen von Befehlen jeweils in
mehreren Stufen, wobei verschiedene Stufen verschiedener
Befehle parallel ausgeführt werden,
gekennzeichnet durch folgende Schritte:
Feststellen, ob ein vorhergehender Befehl, der sich in Ausführung befindet, die Anweisung gibt, einen ersten Operan den von einem Hauptspeicher abzurufen, Ausführungsergebnis daten auf der Grundlage des ersten Operanden zu erzeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen auszuführenden folgenden Befehl, mit den Ausführungsergebnisdaten fortzuschreiben;
auf ein positives Feststellungsergebnis ansprechend, Ver sorgen eines Adreßaddierers mit zumindest einigen der Adreß daten, die durch die Art des vorhergehenden Befehls bestimmt werden, um eine Operandenadreß-Berechnungsstufe für den fol genden Befehl abzuschließen; und
vor dem Fortschreiben der einen Adreßdateninformation durch den vorhergehenden Befehl, nachdem der erste Operand vom Hauptspeicher in einer Operanden-Abrufstufe für den vor hergehenden Befehl abgerufen wurde, Durchführen einer Opera tion, die durch den vorhergehenden Befehl bestimmt ist, an der Ausgabe des Adreßaddierers und dem abgerufenen ersten Operan den, um eine Adresse als Adresse des zweiten Operanden zu er zeugen, die gleich der Summe aus den Adreßdaten ausschließlich der einen Adreßinformation und den Ausführungsergebnisdaten für den vorhergehenden Befehl ist.
Feststellen, ob ein vorhergehender Befehl, der sich in Ausführung befindet, die Anweisung gibt, einen ersten Operan den von einem Hauptspeicher abzurufen, Ausführungsergebnis daten auf der Grundlage des ersten Operanden zu erzeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen auszuführenden folgenden Befehl, mit den Ausführungsergebnisdaten fortzuschreiben;
auf ein positives Feststellungsergebnis ansprechend, Ver sorgen eines Adreßaddierers mit zumindest einigen der Adreß daten, die durch die Art des vorhergehenden Befehls bestimmt werden, um eine Operandenadreß-Berechnungsstufe für den fol genden Befehl abzuschließen; und
vor dem Fortschreiben der einen Adreßdateninformation durch den vorhergehenden Befehl, nachdem der erste Operand vom Hauptspeicher in einer Operanden-Abrufstufe für den vor hergehenden Befehl abgerufen wurde, Durchführen einer Opera tion, die durch den vorhergehenden Befehl bestimmt ist, an der Ausgabe des Adreßaddierers und dem abgerufenen ersten Operan den, um eine Adresse als Adresse des zweiten Operanden zu er zeugen, die gleich der Summe aus den Adreßdaten ausschließlich der einen Adreßinformation und den Ausführungsergebnisdaten für den vorhergehenden Befehl ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63000351A JP2667849B2 (ja) | 1988-01-06 | 1988-01-06 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3900246A1 true DE3900246A1 (de) | 1989-07-20 |
DE3900246C2 DE3900246C2 (de) | 1992-01-23 |
Family
ID=11471415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3900246A Granted DE3900246A1 (de) | 1988-01-06 | 1989-01-05 | Informationsverarbeitungsvorrichtung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5075849A (de) |
JP (1) | JP2667849B2 (de) |
DE (1) | DE3900246A1 (de) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2668438B2 (ja) * | 1989-04-21 | 1997-10-27 | 三菱電機株式会社 | データ検索装置 |
JP2542120B2 (ja) * | 1989-11-15 | 1996-10-09 | 松下電器産業株式会社 | 情報処理装置 |
US5276822A (en) * | 1989-11-15 | 1994-01-04 | Matsushita Electric Industrial Co., Ltd. | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction |
JPH04275628A (ja) * | 1991-03-01 | 1992-10-01 | Mitsubishi Electric Corp | 演算処理装置 |
US5522052A (en) * | 1991-07-04 | 1996-05-28 | Matsushita Electric Industrial Co. Ltd. | Pipeline processor for processing instructions having a data dependence relationship |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
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 |
WO1994008287A1 (en) * | 1992-09-29 | 1994-04-14 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
JP3499135B2 (ja) * | 1998-06-29 | 2004-02-23 | 富士通株式会社 | 情報処理装置 |
US6453424B1 (en) * | 1999-03-31 | 2002-09-17 | International Business Machines Corporation | System and method for temporally controlling instruction execution |
US7185182B2 (en) * | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
US7107438B2 (en) | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
US20050216713A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Instruction text controlled selectively stated branches for prediction via a branch target buffer |
US7694286B2 (en) * | 2005-02-10 | 2010-04-06 | International Business Machines Corporation | Apparatus and method for detecting base-register usage conflicts in computer code |
US8966230B2 (en) * | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5646170A (en) * | 1979-09-06 | 1981-04-27 | Ross Operating Valve Co | Multiple safety valve |
US4670836A (en) * | 1983-06-13 | 1987-06-02 | Hitachi, Ltd. | Device for detecting an overlap of operands to be accessed |
JPS6347834A (ja) * | 1986-08-15 | 1988-02-29 | Hitachi Ltd | 先行制御方式 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CS164932B2 (de) * | 1971-09-07 | 1975-11-28 | ||
US4445177A (en) * | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
JPS61109145A (ja) * | 1984-11-01 | 1986-05-27 | Fujitsu Ltd | メモリアドレス算出方式 |
JPS61133440A (ja) * | 1984-11-30 | 1986-06-20 | Nec Corp | デ−タ処理装置 |
JPS61267135A (ja) * | 1985-05-21 | 1986-11-26 | Nec Corp | デ−タ処理装置 |
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
-
1988
- 1988-01-06 JP JP63000351A patent/JP2667849B2/ja not_active Expired - Fee Related
- 1988-12-30 US US07/292,346 patent/US5075849A/en not_active Expired - Fee Related
-
1989
- 1989-01-05 DE DE3900246A patent/DE3900246A1/de active Granted
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5646170A (en) * | 1979-09-06 | 1981-04-27 | Ross Operating Valve Co | Multiple safety valve |
US4670836A (en) * | 1983-06-13 | 1987-06-02 | Hitachi, Ltd. | Device for detecting an overlap of operands to be accessed |
JPS6347834A (ja) * | 1986-08-15 | 1988-02-29 | Hitachi Ltd | 先行制御方式 |
Non-Patent Citations (1)
Title |
---|
US-Buch: K. Hwang, F.A. Briggs "Computer Architecture and parallel Processing", McGraw Hill Book Company, 1984, S. 200-208 * |
Also Published As
Publication number | Publication date |
---|---|
JPH01177127A (ja) | 1989-07-13 |
US5075849A (en) | 1991-12-24 |
JP2667849B2 (ja) | 1997-10-27 |
DE3900246C2 (de) | 1992-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3424962C2 (de) | ||
DE3900246C2 (de) | ||
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE2846495A1 (de) | Digitales datenverarbeitungssystem | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
DE2903349C2 (de) | Prozessor und Verfahren zur Datenverarbeitung | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE2755273C2 (de) | ||
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE68927029T2 (de) | Pipelineprozessor | |
DE69414592T2 (de) | Ausführung von datenverarbeitungsbefehlen | |
DE69616718T4 (de) | Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten | |
DE2421130C2 (de) | ||
DE69227348T2 (de) | DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
DE3854853T2 (de) | Datenprozessor mit erweiterten Operationsfunktionen | |
DE2332971A1 (de) | Mikroprogrammsteuersystem | |
DE68927398T2 (de) | Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE69131954T2 (de) | Zeichenfolgensuchgerät und -system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
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 | ||
8339 | Ceased/non-payment of the annual fee |