DE3900246C2 - - Google Patents
Info
- Publication number
- DE3900246C2 DE3900246C2 DE3900246A DE3900246A DE3900246C2 DE 3900246 C2 DE3900246 C2 DE 3900246C2 DE 3900246 A DE3900246 A DE 3900246A DE 3900246 A DE3900246 A DE 3900246A DE 3900246 C2 DE3900246 C2 DE 3900246C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- instruction
- operand
- command
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
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, look ahead
- G06F9/3824—Operand accessing
Description
Die Erfindung betrifft eine Informationsverarbeitungsvor
richtung, nach dem Oberbegriff des Anspruchs 1, speziell eine solche
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 und ein Befehlsausführungsverfahren hierzu.
Grundlegende Arbeitsprinzipien solcher Informationsverarbeitungs
vorrichtungen sind in "Computer Architecture and parallel Processing"
von K. Hwang und F. A. Briggs, McGraw-Hill, 1984 beschrieben.
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 I1 die Anweisung gibt, den Inhalt eines
Mehrzweckregisters zu ändern, beispielsweise ein Operations
ergebnis im Mehrzweckregister zu speichern, und wenn der
unmittelbar folgende Befehl I2 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 I2 begonnen
werden, nachdem die Ausführungsstufe E für den Befehl I1 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-56-46 170 B be
schrieben wird und bei dem die Hochgeschwindigkeitsausführung
des folgenden Befehls I2 nur dann erreicht wird, wenn der Be
fehl I1, 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 I1 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 I2 begonnen. In dieser Weise wird parallel zur Stufe E
für den Befehl I1, in der der Operand im Mehrzweckregister ge
speichert wird, das durch den Befehl I1 bezeichnet ist, die
Stufe A für den folgenden Befehl I2 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
JP 63-47 934 A 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.
Ein Detektor für eine Adressenkollision findet sich im übrigen
in US 46 70 836.
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 der folgende Befehl
in einem Adressen-Konflikt mit diesem Befehl steht, ohne daß spezielle Bedin
gungen für den Inhalt des Indexregisters und des Basisregisters
benötigt werden, die durch den folgenden Befehl bezeichnet
sind.
Diese Aufgabe wird mit der im Anspruch 1 gekennzeichneten
Erfindung gelöst.
Die verfahrensseitige Lösung der Aufgabe ist in
Anspruch 13 angegeben.
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,
eine Adreßberechungseinrichtung (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 I1 keinen
Adressenkonflikt mit einem vorhergehenden Befehl hat. In der
Befehlsfolge, die in Fig. 3A dargestellt ist, ist der vorher
gehende Befehl I1 der Ladebefehl, der den Operanden vom Haupt
speicher 12 in das Mehrzweckregister #3 lädt. Der folgende
Befehl I2 ist andererseits ein Additionsbefehl, der das Mehr
zweckregister #3 als Indexregister und das Mehrzweckregister #1
als Basisregister angibt. Der Additionsbefehl I2 bewirkt somit
einen Adressenkonflikt mit dem vorhergehenden Ladebefehl I1
bezüglich des Mehrzweckregisters #3. Bei bekannten Vorrichtun
gen und Verfahren mußte die Berechnung der Adresse des Befehls
I2 (Stufe A) begonnen werden, nachdem das Laden des Operanden,
der durch den Befehl I1 benötigt wird, in das Mehrzweckregister
#3 abgeschlossen ist (Stufe E). Bei dem vorliegenden Ausfüh
rungsbeispiel der Erfindung werden die Befehle I1 und I2 von
Fig. 3A in der in Fig. 2C dargestellten Weise ausgeführt.
Die Stufe B zum Abrufen des Operanden des Additionsbefehls I2
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 I2 nur einen Zyklus beträgt.
Wenn in Fig. 1 der vorhergehende Ladebefehl I1 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 3a, eine Hilfsoperationssteuereinheit 3b und eine Dekodier
startsteuerung 3c. Wenn der Kollisionsdetektor (Konfliktdetektor) 3a keinen Konflikt
zu einem Befehl I1 feststellt, dann spricht die Hilfsoperations
steuerung 3b auf den Befehl I1 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 I1 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 I1
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 3b 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 I1 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 I2 wird andererseits in das Be
fehlsregister 1 durch eine Befehlsabrufschaltung 17 geladen,
wenn die Adressenerzeugung für den vorhergehenden Ladebefehl I1
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 I1 jedoch eine Änderung des Inhalts des Mehrzweck
registers #3 bewirkt, das als Indexregister durch den Additions
befehl I2 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 I1 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 I1 zu einer bestimmten Gruppe gehört, wird
eine Hochgeschwindigkeitsausführung in der folgenden Weise er
zielt.
Wenn der Konfliktdetektor 3a einen Adressenkonflikt zwischen
dem folgenden Befehl und dem vorhergehenden Befehl feststellt,
arbeitet die Hilfsoperationssteuerung 3b 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 I2 in der folgenden
Weise ausgeführt. Der Inhalt der Mehrzweckregister #3 und #1
der Mehrzweckregister 2, die durch den Additionsbefehl I2
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 I1 fortgeschrieben wurde, kann er für
die Adressenberechnung des Additionsbefehls I2 nicht benutzt
werden, es können jedoch der Inhalt des Basisregisters, das
durch den Additionsbefehl I2 bezeichnet ist, und der Versatz
für die Adressenberechnung benutzt werden. Die Hilfsoperations
steuereinheit 3b 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 I2 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 I2 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 JP 56-46 170 B der
Fall ist, wird die unvollständige Adresse zunächst auf der
Grundlage von Teilen der Adressendaten, die durch den folgenden
Befehl I2 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 I1 abgeru
fenen Daten dem Operandenpufferregister 15 und gleichfalls der
Hilfsoperationseinheit 100 gemäß der Erfindung über die Signal
leitung 35 übertragen. Für den Ladebefehl I1 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 I2 benutzt werden.
Die Hilfsoperationssteuerung 3b 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 I1 abgerufen wurden. In dieser Weise wird die richtige
Operandenadresse des Additionsbefehls I2 erzeugt und auf die
Signalleitung 34 gegeben. Auf das Ende des Abrufsignals 37,
das am Ende des Abrufens des Operanden des Ladebefehls I1 vom
Hauptspeicher 12 erzeugt wird, steuert die Hilfsoperations
steuerung 3b 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 I2 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 I1 der Fall ist. Für den Additionsbe
fehl I2 wird im Gegensatz zum Ladebefehl I1 der Inhalt des Mehr
zweckregisters #5, das durch das Feld R 1 des Additionsbefehls
I2 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 I1 durchgeführt, und wird dann die Adres
senberechnung durch die Hilfsoperationseinheit parallel zur
Ausführung der Operationsstufe des Ladungsbefehls I1 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 3a 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 3b 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
dem 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 3c 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 I2
erläutert, der in Fig. 3A auf den Ladebefehl I1 folgt.
Wenn angenommen wird, daß kein Adressenkonflikt zwischen dem
vorhergehenden Ladebefehl I1 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 I2 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 I1 hält, liefert
der Dekodierer 104 ein Signal L, das das Dekodieren des Lade
befehls I1 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 I2 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 I2 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 30a bis 30c 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 3c 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 I2 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 I1 und benutzt der folgende Lade
befehl das Mehrzweckregister #3, das durch den Additionsbefehl
I1 zu ändern ist, als Indexregister. Der vorhergehende Addi
tionsbefehl I1 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 I1 eine Opera
tion durch die Operationseinheit 16 benötigt. Wenn der folgende
Ladebefehl I2 in das Befehlsregister 1 geladen wird, nachdem
der vorhergehende Additionsbefehl I1 dekodiert ist, arbeitet
die in Fig. 1 dargestellte Informationsverarbeitungsvorrich
tung in der folgenden Weise.
Wenn der vorhergehende Befehl I1 der Additionsbefehl ist, ist
die Operandenadresse des folgenden Ladebefehls I2 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
I1 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 I2 kann somit ausge
führt werden, ohne daß der Abschluß der Ausführung des vorher
gehenden Additionsbefehles I1 abgewartet wird. Der Inhalt des
Mehrzweckregisters #3, das als Indexregister durch den Lade
befehl I2 bezeichnet ist, der Inhalt des Mehrzweckregisters #1,
das als Basisregister bezeichnet ist, und der Versatz D, der
durch den Befehl I2 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 3b 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 3c 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 I1 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 I1 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 I2 in das Adressenregister
11 geladen. Der Operand des Ladebefehls I1 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
I1 ist, und der folgende Additionsbefehl I2 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 I1 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 I1 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 I1, 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 I2 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 I2 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 I2 abgeschlossen ist. Wenn der Operand des Lade
halbbefehls I2 abgerufen ist, wird die Operandenadresse des
Additionsbefehls I2 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 3b ein Signal 30a
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 30a 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 I1 ein Subtrak
tionsbefehl. Die Mehrzweckregisternummer (3) die durch den
Subtraktionsbefehl I1 zu ändern ist, und die Indexregister
nummer des folgenden Ladebefehls I2 sind gleich, so daß ein
Konflikt besteht. Die Operandenadresse, die durch den Lade
befehl I2 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 I1 addiert, d.h. wird (GPR 3)+(GPR 1) +D ge
bildet. Wenn der zweite Operand OP 2 des Subtraktionsbefehls
I2 abgerufen wird, wird er von dieser Summe subtrahiert, um
die Operandenadresse des Ladebefehls I2 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 I2 zu berech
nen, und wird diese im Adressenregister 8 gehalten, bis der
Operand (OP 2) des Subtraktionsbefehls I1 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 I1 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 30b, das
den Wähler 198 ansteuert, wird in der folgenden Weise erzeugt.
Wenn der Dekodierer 104 den vorhergehenden Subtraktionsbefehl
I1 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 30b 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 I1 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 I1 geändert wird, wird je
doch durch den folgenden Additionsbefehl I2 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 I2 kann
durch (OP 2)+(OP 2)+D auf der Grundlage der zweiten Operan
dendaten (OP 2) des vorhergehenden Ladebefehls I1 und der
Distanz oder dem Versatz D bestimmt werden, der durch den Lade
befehl I2 bezeichnet ist. Der zweite Operand (OP 2) des Lade
befehls I1, 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 I2 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 I2
bestimmt werden kann. Der Schieber 212 kann ein einfacher 1-
Bit-Linksschieber sein. Der Wähler 199 wird durch das Signal
30c 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 30c.
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 "OB" und
"OC" 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 (13)
- . Informationsverarbeitungsvorrichtung, umfassend einen Kollisionsdetektor (3a), der feststellt, ob ein in Ausführung befindlicher vorhergehender Befehl, der einen er sten Operanden abruft, eine Adreßinformation aus einer Viel zahl von Adreßdaten eines folgenden Befehls ändert;
einen Adreßrechner (7, 100), der aus der Vielzahl der Adreßdaten eine für den folgenden Befehl benötigte Operanden adresse berechnet,
dadurch gekennzeichnet,
daß der Adreßrechner (7, 100) in eine Adreßberechnungs einrichtung (7) und in Operationseinrichtungen (100, 54) aufgeteilt ist,
wobei auf ein positives Ergebnis des Kollisionsdetektors (3a) hin die Adreßberechnungseinrichtung (7) parallel zur Ausführung des vorhergehenden Befehls ein Zwischenergebnis der Operandenadresse des folgenden Befehls berechnet, während die Operationseinrichtungen (100) dann, wenn der erste Ope rand für den vorhergehenden Befehl vom Hauptspeicher abgeru fen ist und vor einer Änderung der genannten Adresseninfor mation durch den vorhergehenden Befehl, in Abhängigkeit des vorhergehenden Befehls und des ersten Operanden, aus dem Zwi schenergebnis die endgültige Operandenadresse des folgenden Befehls erzeugen. - 2. Informationsverarbeitungsvorrichtung nach Anspruch 1, gekennzeichnet durch eine Adreßdatenversorgungseinrich tung mit mehreren Registern (2) und Einrichtungen (50, 52, 108, 109), die auf das positive Ergebnis des Kollisionsdetektors (3a) ansprechen, um der Adreßberechnungseinrichtung (7), bestimmt durch den vorhergehenden Befehl, zumindest einen Teil der durch den folgenden Befehl bezeichneten Adreßdaten, die aus den Werten eines Indexregisters und eines Basisregisters und eines Versatzes bestehen, zu liefern.
- 3. Informationsverarbeitungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die dann, wenn der vorhergehende Befehl ein Befehl eines ersten Typs ist, bei dem der erste Operand unverändert das Ausführungsergebnis darstellt, die Adreßdaten bis auf die genannte Adreßinfor mation der Adreßberechnungseinrichtung (7) liefern; und
daß die Operationseinrichtungen eine Einrichtung (10) enthalten, die dann, wenn der vor hergehende Befehl eine Befehl des ersten Typs ist, die Summe aus dem abgerufenen ersten Operanden und der Ausgabe der Adreßberechnungseinrichtung (7) berechnet. - 4. Informationsverarbeitungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die dann, wenn der vorhergehende Befehl ein Befehl eines zwei ten Typs ist, der die Erweiterung eines Vorzeichen-Bits des zweiten Operanden und die Verwendung des erweiterten zweiten Operanden als Ausführungsergebnis des vorhergehenden Befehls ver langt, die Adreßdaten bis auf die genannte Adreßinforma tion der Adreßberechnungseinrichtung (7) liefern; und
daß die Operationseinrichtungen eine Vorzeichen-Erweite rungseinrichtung (210), die dann, wenn der vorhergehende Befehl ein Befehl des zweiten Typs ist, das Vorzeichen-Bit des abgerufenen ersten Operanden er weitert, und eine Einrichtung enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßberechnungseinrichtung (7) berechnet. - 5. Informationsverarbeitungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Adreßdatenversorgungseinrich tung Einrichtungen enthält, die dann, wenn der vorhergehende Befehl ein bestimmter Befehl ist, alle Adreßdaten der Adreßberechnungseinrichtung (7) parallel zur Ausführung des vorhergehenden Befehls liefern.
- 6. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, die Summe aus der genannten Adreßinformation und dem ersten Operanden als Ausführungsergebnis zu erzeugen und die genannte Adreßinformation durch dieses Ergebnis zu aktualisieren; und
daß die Operationseinrichtungen Einrichtungen enthalten, die die Summe aus der Ausgabe der Adreßberechnungseinrichtung (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 genannten Adreß information als Ausführungsergebnis zu erzeugen und die genannte Adreßinformation mittels des Ausführungsergeb nisses zu aktualisieren; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bits 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ßberechnungseinrichtung (7) als Adresse des zweiten Operan den bildet. - 8. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, die Differenz zwischen der genannten Adreßinformation und dem ersten Operanden als Ausführungsergebnis zu er zeugen und die genannte Adreßinformation mittels des Ausführungs ergebnisses zu aktualisieren; und
daß die Operationseinrichtungen Einrichtungen (10, 211) enthalten, die die Differenz zwischen der Ausgabe der Adreß berechnungseinrichtung (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, die Differenz zwischen der genannten Adreßinformation und dem er weiterten ersten Operanden als Ausführungsergebnis zu erzeugen und die genannte Adreßinformation mittels des Ausfüh rungsergebnisses zu aktualisieren; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei terungseinrichtung (210) zum Erweitern des Vorzeichen-Bits des ersten Operanden und Einrichtungen (10, 211) enthalten, die die Differenz zwischen der Ausgabe der Adreßberechnungseinrich 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 dann, wenn der vorhergehende Befehl verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern und das Ausführungsergebnis des vorherge henden Befehls auf der Grundlage des erweiterten ersten Operan den zu erzeugen, das Vorzeichen-Bit des ersten Operanden, der vom Hauptspeicher abgerufen wird, erweitert 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ßberechnungseinrichtung (7) ausführen, um die Adresse des zwei ten Operanden zu bilden.
- 11. Informationsverarbeitungsvorrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß die Adreßversorgungseinrichtung eine Einrichtung enthält, die dann, wenn der vorher gehende Befehl verlangt, den ersten Ope randen unverändert als Ausführungsergebnis zu verwenden, und auf die Feststellung des Kollisionsdetektors (3a) hin, daß zwei Adreßinformationen der Adreßdaten durch das Ausfüh rungsergebnis deas vorhergehenden Befehls zu aktualisieren sind, die Adreßdaten bis auf diese beiden Adreß informationen der Adreßberechnungseinrichtung (7) liefert; 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 Verdoppelungseinrichtung (212) und der Ausgabe der Adreßberechnungseinrichtung (7) als Adresse des zweiten Operanden bildet. - 12. Informationsverarbeitungsvorrichtung nach einem der An sprüche 1 bis 11, dadurch gekennzeichnet, daß die Adreßbe rechnungseinrichtung (7) auf ein negatives Ergebnis des Ko lisionsdetektors (3a) hin durch Addition der Vielzahl der Adreßdaten die entgültige Operandenadresse des folgenden Befehls erzeugt.
- 13. Befehlsausführungsverfahren in einer Informationsverar beitungsvorrichtung zum Ausführen von Befehlen jeweils in mehrerer Stufen, wobei verschiedene Stufen verschiedener Befehle parallel ausgeführt werden, mit folgenden Schritten:
Feststellen, ob ein vorhergehender Befehl, der sich in Ausführung befindet, die Anweisung enthält, einen ersten Operan den von einem Hauptspeicher abzurufen, Ausführungsergebnis daten auf der Grundlage des ersten Operanden zu erzeugen und eine Adreßinformation aus einer Vielzahl von Adreßdaten eines folgenden Befehls mittels der Ausführungsergebnisdaten zu aktualisieren;
ansprechend auf ein positives Feststellungsergebnis, wird eine Adreßberechnungseinrichtung (7) mit zumindest einigen der Adreß daten versorgt, die durch die Art des vorhergehenden Befehls bestimmt werden, um eine Operandenadreß-Berechnungsstufe für den fol genden Befehl abzuschließen; und
vor dem Aktualisieren der genannten Adreßinformation durch den vorhergehenden Befehl und nachdem der erste Operand vom Hauptspeicher in einer Operanden-Abrufstufe für den vor hergehenden Befehl abgerufen wurde, wird eine Opera tion, die durch den vorhergehenden Befehl bestimmt wird, mit dem Ergebnis der Adreßberechnungseinrichtung (7) und dem abgerufenen ersten Operan den durchgeführt, um die Adresse des zweiten Operanden zu er zeugen.
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 DE3900246A1 (de) | 1989-07-20 |
DE3900246C2 true 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 | 三菱電機株式会社 | データ検索装置 |
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 |
JP2542120B2 (ja) * | 1989-11-15 | 1996-10-09 | 松下電器産業株式会社 | 情報処理装置 |
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 |
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 |
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 |
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 |
US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
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 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CS164932B2 (de) * | 1971-09-07 | 1975-11-28 | ||
JPS5928793B2 (ja) * | 1979-09-06 | 1984-07-16 | ロス・オペレ−テイング・バルブ・カンパニ− | 複式安全弁 |
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 |
JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
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 |
JPS6347834A (ja) * | 1986-08-15 | 1988-02-29 | Hitachi Ltd | 先行制御方式 |
-
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
Also Published As
Publication number | Publication date |
---|---|
JP2667849B2 (ja) | 1997-10-27 |
US5075849A (en) | 1991-12-24 |
DE3900246A1 (de) | 1989-07-20 |
JPH01177127A (ja) | 1989-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2846495C2 (de) | Zentraleinheit | |
DE3900246C2 (de) | ||
DE2230102C2 (de) | Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung | |
DE2714805C2 (de) | ||
DE3424962C2 (de) | ||
DE3210816C2 (de) | ||
DE2903349C2 (de) | Prozessor und Verfahren zur Datenverarbeitung | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE1901228C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE2630323C3 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE2835095C2 (de) | Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren | |
DE3306084A1 (de) | Rechnerarchitektur zur gleitkomma -addition | |
DE69826404T2 (de) | Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen | |
DE19545179A1 (de) | Vektorspeicheroperationen | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE1900141B2 (de) | Hilfssteuerwerk fur eine Datenver arbeitungsanlage | |
DE2332971C2 (de) | Mikroprogrammsteuereinrichtung | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE3043653A1 (de) | Datenverarbeitungsanlage |
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 |