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
Application number
DE3900246A
Other languages
English (en)
Other versions
DE3900246A1 (de
Inventor
Kazunori Saitama Jp Kuriyama
Yooichi Shintani
Tohru Shonai
Eiki Hadano Jp Kamada
Kiyoshi Tokio/Tokyo Jp Inoue
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3900246A1 publication Critical patent/DE3900246A1/de
Application granted granted Critical
Publication of DE3900246C2 publication Critical patent/DE3900246C2/de
Granted legal-status Critical Current

Links

Classifications

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

  1. . 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
DE3900246A 1988-01-06 1989-01-05 Informationsverarbeitungsvorrichtung Granted DE3900246A1 (de)

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)

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

* Cited by examiner, † Cited by third party
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 先行制御方式

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