[go: up one dir, main page]

DE3900246A1 - Informationsverarbeitungsvorrichtung - Google Patents

Informationsverarbeitungsvorrichtung

Info

Publication number
DE3900246A1
DE3900246A1 DE3900246A DE3900246A DE3900246A1 DE 3900246 A1 DE3900246 A1 DE 3900246A1 DE 3900246 A DE3900246 A DE 3900246A DE 3900246 A DE3900246 A DE 3900246A DE 3900246 A1 DE3900246 A1 DE 3900246A1
Authority
DE
Germany
Prior art keywords
address
operand
instruction
command
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE3900246A
Other languages
English (en)
Other versions
DE3900246C2 (de
Inventor
Kazunori Kuriyama
Yooichi Shintani
Tohru Shonai
Eiki Kamada
Kiyoshi 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 or look ahead
    • G06F9/3824Operand accessing

Landscapes

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

Description

Die Erfindung betrifft eine Informationsverarbeitungsvor­ richtung, die sequentiell Befehle in einem Pipelinesteuer­ system ausführt, wobei eine Hochgeschwindigkeitsausführung dadurch erzielt wird, daß Störungen in der Pipeline vermin­ dert werden.
In einem Pipelinesteuersystem wird die Ausführung von Be­ fehlen in mehrere Stufen unterteilt, die in überlappender Weise ausgeführt werden. Fig. 2A der zugehörigen Zeichnung zeigt die Befehlsausführung bei einem bekannten Pipelinesteu­ ersystem. In Fig. 2A sind eine Befehlswortdecodierstufe D, eine Rechenstufe A für die effektive Operandenadresse, eine Abrufstufe B, die einen Operanden von einem Hauptspeicher abruft, eine Operandenübertragungsstufe L, in der der vom Hauptspei­ cher abgerufene Operand auf ein Operandenpufferregister über­ tragen wird, und eine Ausführungsstufe E dargestellt, in der eine einem Befehl inhärente Operation ausgeführt wird. Die effektive Adresse in der Stufe A wird dadurch berechnet, daß der Inhalt von zwei Mehrzweckregistern, die durch einen Index­ teil und einen Basisteil des Befehls jeweils bezeichnet sind (und die als Indexregister und Basisregister jeweils bezeich­ net werden),und ein Versatz addiert werden, der ein Teil des Befehls ist.
Wenn in dem Pipelinesteuersystem die Stufe D für einen Befehl abgeschlossen ist, wird die Stufe A für diesen Befehl begonnen und wird gleichzeitig auch die Stufe D für den folgenden Be­ fehl begonnen. In dieser Weise werden mehrere Befehle sequen­ tiell in überlappender Weise ausgeführt.
Wenn ein Befehl I 1 die Anweisung gibt, den Inhalt eines Mehrzweckregisters zu ändern, beispielsweise ein Operations­ ergebnis im Mehrzweckregister zu speichern, und wenn der unmittelbar folgende Befehl I 2 die Anweisung gibt, dasselbe Mehrzweckregister als Indexregister oder Basisregister zu bezeichnen, um dessen Inhalt zum Erzeugen der effektiven Adresse zu verwenden, und eine Hochgeschwindigkeitsausführungs­ technik nicht benutzt wird, dann muß die Rechenstufe A zum Berechnen der effektiven Adresse für den Befehl I 2 begonnen werden, nachdem die Ausführungsstufe E für den Befehl I 1 ab­ geschlossen ist und das Operationsergebnis im Mehrzweckregi­ ster gespeichert ist, wie es in Fig. 2A dargestellt ist. In der in Fig. 2A dargestellten Weise besteht folglich ein Zusatzbedarf von drei Zyklen. Wenn der Inhalt des Mehrzweck­ registers, der zum Erzeugen der effektiven Adresse des Operan­ den benutzt wird, durch den vorhergehenden Befehl geändert wird, wird das als Adressenkonflikt bezeichnet. Es sind ver­ schiedene Verfahren zum Erzielen einer Hochgeschwindigkeits­ ausführung im Adressenkonflikt vorgeschlagen worden.
Fig. 2B zeigt ein Verfahren, das in der JP-B-56-46 170 be­ schrieben wird und bei dem die Hochgeschwindigkeitsausführung des folgenden Befehls I 2 nur dann erreicht wird, wenn der Be­ fehl I 1, der den Inhalt des Mehrzweckregisters ändert, ein Ladebefehl ist, der die Anweisung gibt, einen Operanden am Hauptspeicher unverändert in ein Mehrzweckregister zu laden. Insbesondere wird bei der Ausführung des Befehles I 1 der Ope­ rand vom Hauptspeicher abgerufen und auf den Operandenpuffer sowie auf ein Register übertragen, das an einem Eingang eines eine Adresse erzeugenden Addierers vorgesehen ist. Gleichzeitig mit der oben erwähnten Übertragung wird mit der Ausführung der Stufe A zum Erzeugen der effektiven Adresse für den folgenden Befehl I 2 begonnen. In dieser Weise wird parallel zur Stufe E für den Befehl I 1, in der der Operand im Mehrzweckregister ge­ speichert wird, das durch den Befehl I 1 bezeichnet ist, die Stufe A für den folgenden Befehl I 2 ausgeführt. Das hat zur Folge, daß der Zusatzbedarf auf zwei Zyklen reduziert ist, wie es in Fig. 2B dargestellt ist.
Um das obige Verfahren weiter zu verbessern, ist in der japa­ nischen Patentanmeldung 61-1 91 841, die der US Patentanmeldung 84 072 aus dem Jahre 1987 entspricht, unter dem Titel "Instruc­ tion Processing Apparatus with Enhanced Execution of An Address-Conflicting Instruction" ein Verfahren zum weiteren Beschleunigen der Ausführung eines auf einen Adressenkonflikt folgenden Befehls beschrieben, wenn dieser einer bestimmten Bedingung genügt. Wenn insbesondere das Mehrzweckregister, dessen Inhalt durch den vorhergehenden Befehl zu ändern ist, als Indexregister durch den folgenden Befehl bezeichnet wird, und der Inhalt des Basisregisters, das durch den folgenden Be­ fehl bezeichnet wird,und der Versatz, der durch den Befehl bezeichnet wird, beide gleich Null sind, oder wenn das Mehr­ zweckregister, dessen Inhalt durch den vorhergehenden Befehl zu ändern ist, als Basisregister durch den folgenden Befehl bezeichnet wird, und der Inhalt des Indexregisters, das durch den folgenden Befehl bezeichnet wird und der Versatz, der durch den Befehl angegeben wird, beide gleich Null sind, dann ist die Operandenadresse, die für den folgenden Befehl be­ nötigt wird, gleich dem Operanden selbst, der durch den vor­ hergehenden Befehl geschrieben wurde. In einem solchen Fall kann auf die Adressenberechnung für den folgenden Befehl ver­ zichtet werden, um die Ausführung des folgenden Befehls zu beschleunigen. Der vom Hauptspeicher für den vorhergehenden Befehl abgerufene Operand wird somit direkt auf das Adressen­ register übertragen, das zu dem Hauptspeicher in Beziehung steht, und es wird die Operandenabrufstufe L für den folgenden Befehl auf der Grundlage dieses Operanden ausgeführt. Das hat zur Folge, daß der Zusatzbedarf auf einen Zyklus reduziert wird, wie es in Fig. 2C dargestellt ist.
Bei dem bekannten Verfahren, das in Fig. 2B dargestellt ist, wird die Hochgeschwindigkeitsausführung nur dann, wenn der vorhergehende Befehl ein Ladebefehl ist, aber nicht dann er­ zielt, wenn der vorhergehende Befehl ein Additions- oder Subtraktionsbefehl ist.
Bei dem Verfahren, das in Fig. 2C dargestellt ist, wird die Hochgeschwindigkeitsausführung nur dann erzielt, wenn der Inhalt des Indexregisters, das durch den folgenden Befehl bezeichnet wird, und der Versatz beide gleich Null sind, oder wenn der Inhalt des Basisregisters und die Distanz beide gleich Null sind. Die Hochgeschwindigkeitsausführung wird dann nicht erzielt, wenn sowohl das Indexregister als auch das Ba­ sisregister, die durch den folgenden Befehl bezeichnet sind, zum Erzeugen der Adresse benutzt werden. Wenn der Befehl, der den Inhalt des Mehrzweckregisters ändert, ein Addier- oder Subtrahierbefehl ist, ist die Operation durch eine Operations­ einheit erforderlich und nimmt der Zusatzbedarf um einen Zyk­ lus zu.
Durch die Erfindung soll eine Informationsverarbeitungsvor­ richtung geschaffen werden, die eine Hochgeschwindigkeitsaus­ führung nicht nur für einen Ladebefehl sondern auch für einen Addier/Subtrahierbefehl erzielt, wenn ein folgender Befehl in einem Konflikt mit einem Befehl steht, der die Ausführung einer Operation erforderlich macht, ohne daß spezielle Bedin­ gungen für den Inhalt des Indexregisters und des Basisregisters benötigt werden, die durch den folgenden Befehl bezeichnet sind.
Dazu umfaßt die erfindungsgemäße Informationsverarbeitungsvor­ richtung eine Detektoreinrichtung, die feststellt, ob ein vor­ hergehender Befehl, der gerade ausgeführt wird, die Anweisung gibt, einen ersten Operanden von einem Hauptspeicher abzurufen, die Ausführungsergebnisdaten für den vorhergehenden Befehl auf der Grundlage des ersten Operanden zu erzeugen und eine der vielen Adressendaten, die durch einen folgenden auszuführenden Befehl bezeichnet sind, mit den Ausführungsergebnisdaten zu ändern, eine Adressenaddiereinrichtung, die auf ein negatives Ergebnis der Detektoreinrichtung anspricht und die vielen Adressenda­ ten addiert, um eine zweite Operandenadresse zu erzeugen, die durch den folgenden Befehl benötigt wird, eine Adressendatenver­ sorgungseinrichtung, die auf ein positives Ergebnis der Detektor­ einrichtung anspricht und der Adressenaddiereinrichtung wenig­ stens eine der vielen Adressendaten liefert, die durch einen Typ eines vorhergehenden Befehls bestimmt sind, und zwar pa­ rallel zur Ausführung des vorhergehenden Befehls, und eine Operationseinrichtung, die auf das positive Ergebnis anspricht und dann, wenn der erste Operand des vorhergehenden Befehls vom Hauptspeicher abgerufen ist, eine durch den vorhergehenden Befehl bestimmte Operation am Ausgangssignal der Adressenaddier­ einrichtung vor einer Änderung der einen Adressendaten durch den vorhergehenden Befehl und am abgerufenen ersten Operan­ den ausführt, um als zweite Operandenadresse eine Adresse zu erzeugen, die gleich der Summe der vielen Adressendaten aus­ schließlich der einen Adressendaten und des Ausführungsergeb­ nisses für den vorhergehenden Befehl ist.
Die Schaltung, die die Verwendung des Inhalts des Registers, der durch den vorhergehenden Befehl zu ändern ist, für die Erzeugung der Adresse durch den folgenden Befehl wahrnimmt, macht die gelesenen Daten dieses Registers in Abhängigkeit vom Feststellungsergebnis gleich Null, so daß der Dreieingangs­ adressenaddierer eine Interimsumme der Adressenberechnung liefert. Das Register, das das Ausgangssignal des Dreieingangs­ adressenaddierers hält, hält die Interimsumme bis der Operand vom Hauptspeicher durch den vorhergehenden Befehl abgerufen ist und diese Informationen in der Operationseinrichtung ver­ arbeitet sind.
Im folgenden werden anhand der zugehörigen Zeichnung besonders bevorzugte Ausführungsbeispiele der Erfindung näher beschrieben. Es zeigen:
Fig. 1 den Gesamtaufbau eines Ausführungsbeispiels der erfindungsgemäßen Informationsverarbeitungsvor­ richtung,
Fig. 2A ein Zeitdiagramm der Ausführung von zwei Adressen­ konfliktbefehlen bei einem bekannten Verfahren,
Fig. 2B ein Zeitdiagramm der Ausführung der gleichen beiden Befehle wie in Fig. 2A bei einem weiteren bekann­ ten Verfahren,
Fig. 2C ein Zeitdiagramm der Ausführung der gleichen beiden Befehle wie in Fig. 2A bei der in Fig. 1 darge­ stellten Verarbeitungsvorrichtung,
Fig. 3A bis 3E verschiedene Befehlsfolgen, die Gegenstand der Hochgeschwindigkeitsausführung gemäß der Erfindung sind,
Fig. 4 das Schaltbild der in Fig. 1 dargestellten Steu­ erschaltung,
Fig. 5A ein Codeerweiterungsverfahren für einen Halbwort­ operanden, wenn ein Codebit gleich "0" ist,
Fig. 5B ein Codeerweiterungsverfahren für den Halbwortope­ randen, wenn das Codebit gleich "1" ist, und
Fig. 6A und 6B verschiedene Befehlsformate für einen Adressen­ modusänderungsbefehl.
Fig. 1 zeigt den Gesamtaufbau eines Ausführungsbeispiels der erfindungsgemäßen Informationsverarbeitungsvorrichtung. In Fig. 1 sind ein Befehlsregister 1, Mehrzweckregister 2, eine Steuerschaltung 3 zur auf den Befehl im Befehlsregister 1 ansprechend erfolgenden Steuerung der Ausführung eines Befehls, ein Adressenaddierer 7 zum Erzeugen einer Adresse eines Operan­ den, der von einem Hauptspeicher 12 für den Befehl abzurufen ist, ein Ausrichter 14 zum Verschieben des vom Hauptspeicher 12 abgerufenen Operanden um eine angemessene Anzahl von Bits und zum Herausgreifen eines geeigneten Teils, eine arithmeti­ sche und logische Operationseinheit 16, deren Operationsergeb­ nis den Mehrzweckregistern 2 geliefert wird, und eine Hilfs­ operationseinheit 100 dargestellt, die gemäß der Erfindung neu vorgesehen ist. Das Ausgangssignal oder die Ausgangsinfor­ mation des Ausrichters 14 und das Ausgangssignal oder die Aus­ gangsinformation des Adressenaddierers 7 liegen an der Hilfs­ operationseinheit 100, die die Operandenadresse auf der Grund­ lage dieser beiden Eingangsinformationen berechnet und diese Operandenadresse über einen Wähler 54 einem Adressenregister 11 liefert. Die Ausgangsinformation der Hilfsoperationseinheit wird dazu benutzt, früher als bei bekannten Vorrichtungen die Operandenadresse zu berechnen, die vom folgenden Befehl benö­ tigt wird, der in einer Adressenkonfliktsituation zu einem vor­ hergehenden Befehl steht. Eine Befehlsabrufschaltung 17 ruft Befehle vom Hauptspeicher 12 ab und liefert diese der Reihe nach dem Befehlsregister. Die Fig. 3A bis 3E zeigen Bei­ spiele von Befehlsfolgen, die gemäß der Erfindung schnell aus­ geführt werden können. Ein Feld OP bezeichnet die Art der Ope­ ration, ein Feld R 1 bezeichnet die Nummer des Mehrzweckre­ gisters, das für einen ersten Operanden benutzt wird, die Felder X und B zeigen die Indexregisternummer und die Basis­ registernummer, die durch den Befehl bezeichnet sind, um einen zweiten Operanden vom Hauptspeicher abzurufen, und ein Feld D bezeichnet einen Versatz, der durch den Befehl angegeben wird. Die vom Hauptspeicher abzurufende Operandenadresse ist durch eine Summe der Inhalte des Basisregisters und des Indexregisters, die durch den Befehl bezeichnet sind, und den Versatz bestimmt.
Der Gesamtarbeitsablauf in Fig. 1 wird im folgenden für die Ausführung der Befehlsfolge erläutert, die in Fig. 3A darge­ stellt ist. Es sei angenommen, daß ein Ladebefehl I 1 keinen Adressenkonflikt mit einem vorhergehenden Befehl hat. In der Befehlsfolge, die in Fig. 3A dargestellt ist, ist der vorher­ gehende Befehl I 1 der Ladebefehl, der den Operanden vom Haupt­ speicher 12 in das Mehrzweckregister #3 lädt. Der folgende Befehl I 2 ist andererseits ein Additionsbefehl, der das Mehr­ zweckregister #3 als Indexregister und das Mehrzweckregister #1 als Basisregister angibt. Der Additionsbefehl I 2 bewirkt somit einen Adressenkonflikt mit dem vorhergehenden Ladebefehl I 1 bezüglich des Mehrzweckregisters #3. Bei bekannten Vorrichtun­ gen und Verfahren mußte die Berechnung der Adresse des Befehls I 2 (Stufe A) begonnen werden, nachdem das Laden des Operanden, der durch den Befehl I 1 benötigt wird, in das Mehrzweckregister #3 abgeschlossen ist (Stufe E). Bei dem vorliegenden Ausfüh­ rungsbeispiel der Erfindung werden die Befehle I 1 und I 2 von Fig. 3A in der in Fig. 2C dargestellten Weise ausgeführt. Die Stufe B zum Abrufen des Operanden des Additionsbefehls I 2 wird parallel zur Stufe E für den vorhergehenden Ladebefehl ausgeführt. Das hat zur Folge, daß die Verzögerung der Ausfüh­ rung des Befehls I 2 nur einen Zyklus beträgt.
Wenn in Fig. 1 der vorhergehende Ladebefehl I 1 in das Befehls­ register 1 geladen ist, wird der Operand, der von dem Befehl benötigt wird, nach dem herkömmlichen Verfahren vom Haupt­ speicher abgerufen. Es werden nämlich die Indexregisternummer X (=4) und die Basisregisternummer B (=8) den Mehrzweckregistern 2 über die Leitungen 21 und 22 geliefert.
Das hat zur Folge, daß der Inhalt X und B den Mehrzweckregistern #4 und #8 von Mehrzweckregistern 2 auf die Leitungen 24 und 25 gegeben wird. Die Steuerschaltung 3 umfaßt einen Konfliktdetek­ tor 3 a, eine Hilfsoperationssteuereinheit 3 b und eine Dekodier­ startsteuerung 3 c. Wenn der Konfliktdetektor 3 a keinen Konflikt zu einem Befehl I 1 feststellt, dann spricht die Hilfsoperations­ steuerung 3 b auf den Befehl I 1 an, um die Steuerwähler 50 und 52 so anzusteuern, daß die Daten auf den Leitungen 24 und 25 gewählt werden. Die Daten werden somit in ein Indexeingangs­ register (IX) 4 und ein Basiseingangsregister (IB) 5 des Drei­ eingangsadressenaddierers 7 jeweils geladen.
Eine Distanz oder ein Versatz B (=12), der ein Teil des Lade­ befehls I 1 ist, wird andererseits vom Befehlsregister 1 einem Versatzeingangsregister (ID) 6 des Adressenaddierers 7 über die Leitung 23 geliefert. Das hat zur Folge, daß der Dreieingangs­ adressenaddierer 7 die drei Eingangsdaten addiert, um die Adres­ se des Operanden zu berechnen, der durch den Ladebefehl I 1 benötigt wird. Die sich ergebende Adresse 33 wird in das Adres­ senregister 11 geladen, das über einen Wähler 54 mit dem Haupt­ speicher verbunden ist. Da der Ladebefehl in keinem Konflikt mit dem vorhergehenden Befehl steht, gibt die Hilfsoperations­ einheit 3 b dem Wähler 54 über ein Wählsignal 32 den Befehl, die Ausgangsdaten 33 des Adressenaddierers 7 zu wählen. Er greift zum Hauptspeicher 12 über die Operandenadresse zu, die in das Adressenregister 11 geladen ist, um den Operanden des Ladebefehls I 1 abzurufen, und lädt die abgerufenen Daten in ein Datenregister 13. Der Ausrichter 14 kann von einem herkömm­ lichen Typ sein, der den notwendigen Teil der abgerufenen Da­ ten herausgreift und zur Verwendung in der Operation ausrich­ tet. Eine Schaltung zum Steuern des Ausrichters hat gleich­ falls einen herkömmlichen Aufbau und ist der Einfachheit hal­ ber nicht dargestellt. Die in das Datenregister 13 geladenen Daten werden über den Ausrichter 14 in ein Operandenpuffer­ register 15 geladen, so daß sie folglich einer arithmetischen und logischen Operationseinheit 16 geliefert werden, die eine Operation ausführt, die durch die Art des Befehls bestimmt ist. Da der Ladebefehl keine Operation benötigt, gehen die abgerufe­ nen Daten durch die Operationseinheit 16 hindurch und werden die abgerufenen Daten den Mehrzweckregistern 2 über eine Signal­ leitung 36 geliefert und im Mehrzweckregister #3 gespeichert, das durch das Feld R 1 des Befehls bezeichnet ist.
Der folgende Additionsbefehl I 2 wird andererseits in das Be­ fehlsregister 1 durch eine Befehlsabrufschaltung 17 geladen, wenn die Adressenerzeugung für den vorhergehenden Ladebefehl I 1 bereit ist, d.h. wenn die Daten zur Adressenberechnung in das Indexeingangsregister 4, das Basiseingangsregister 5 und das Versatzeingangsregister 6 geladen sind. Da der vorhergehende Ladebefehl I 1 jedoch eine Änderung des Inhalts des Mehrzweck­ registers #3 bewirkt, das als Indexregister durch den Additions­ befehl I 2 bezeichnet ist, besteht zwischen diesen beiden Befeh­ len ein Adressenkonflikt. Das in der US Patentanmeldung, die der japanischen Patentanmeldung 61-1 91 841 entspricht, beschrie­ bene Verfahren ist in diesem Fall nicht anwendbar, da der In­ halt des Basisregisters 1, das in keinem Konflikt zum vorher­ gehenden Befehl I 1 steht und das das Mehrzweckregister ist, das durch den folgenden Additionsbefehl bezeichnet ist, nicht gleich Null ist. Bei dem vorliegenden Ausführungsbeispiel wird angenommen, daß der Inhalt des Basisregisters #0 immer gleich null ist, daß jedoch der Inhalt der anderen Mehrzweckregister nicht immer gleich null ist. Wenn gemäß der Erfindung der vor­ hergehende Befehl I 1 zu einer bestimmten Gruppe gehört, wird eine Hochgeschwindigkeitsausführung in der folgenden Weise er­ zielt.
Wenn der Konfliktdetektor 3 a einen Adressenkonflikt zwischen dem folgenden Befehl und dem vorhergehenden Befehl feststellt, arbeitet die Hilfsoperationssteuerung 3 b verschieden in Ab­ hängigkeit davon, ob der folgende Befehl zu der bestimmten Gruppe gehört oder nicht. Wenn der folgende Befehl ein Befehl ist, der nur eine einfache Operation benötigt, beispielsweise ein Additionsbefehl oder ein Ladehalbbefehl ist, dann wird die Dekodierstufe des folgenden Befehls I 2 in der folgenden Weise ausgeführt. Der Inhalt der Mehrzweckregister #3 und #1 der Mehrzweckregister 2, die durch den Additionsbefehl I 2 als Indexregister und Basisregister jeweils bezeichnet sind, wird zu den Leitungen 24 und 25 ausgelesen. Da der Inhalt des Mehrzweckregisters #3 gleich "1" ist, bevor er durch den vor­ hergehenden Ladebefehl I 1 fortgeschrieben wurde, kann er für die Adressenberechnung des Additionsbefehls I 2 nicht benutzt werden, es können jedoch der Inhalt des Basisregisters, das durch den Additionsbefehl I 2 bezeichnet ist, und der Versatz für die Adressenberechnung benutzt werden. Die Hilfsoperations­ steuereinheit 3 b steuert somit den Wähler 50 über die Signal­ leitung 26 derart, daß der Wähler 50 statt der auf der Leitung 24 vom Mehrzweckregister #3, das als Indexregister bezeichnet ist und einen Konflikt aufweist, gelieferten Daten den Wert "0" wählt. Der Wähler 52 wählt den Inhalt des Basisregisters auf der Leitung 25. Der durch den Additionsbefehl I 2 bezeichnete Versatz wird unverändert dem Adressenaddierer 7 geliefert. Das hat zur Folge, daß der Adressenaddierer 7 nur den Inhalt des Mehrzweckregisters 1, das als Basisregister durch den Additions­ befehl I 2 bezeichnet ist, und den Versatz addiert, der durch den Befehl angegeben ist. Statt im Dreieingangsadressenaddierer 7 auf die Ankunft des Operanden zu warten, der durch die Aus­ führung des vorhergehenden Befehles erzeugt wird, wie es bei dem Verfahren der japanischen Patentanmeldung 56-41 170 der Fall ist, wird die unvollständige Adresse zunächst auf der Grundlage von Teilen der Adressendaten, die durch den folgenden Befehl I 2 bezeichnet sind, berechnet und ausgegeben. Die un­ vollständige Adresse, die auf die Signalleitung 33 gegeben wird, wird in das Register 8 geladen, das gemäß der Erfindung vorgesehen ist, um den Abschluß des Abrufens des Operanden des vorhergehenden Befehls abzuwarten. Andererseits werden die vom Hauptspeicher 12 durch den vorhergehenden Ladebefehl I 1 abgeru­ fenen Daten dem Operandenpufferregister 15 und gleichfalls der Hilfsoperationseinheit 100 gemäß der Erfindung über die Signal­ leitung 35 übertragen. Für den Ladebefehl I 1 wird eine Opera­ tion durch die Operationseinheit 16 nicht benötigt. Dement­ sprechend ist der Operand identisch mit den Daten, die in das Mehrzweckregister #3 geladen sind. Er kann daher als Inhalt des Basisregisters des Additionsbefehls I 2 benutzt werden. Die Hilfsoperationssteuerung 3 b in der Steuerschaltung 3 steuert die Wähler 197 bis 199 in der Hilfsoperationssteuerung 100 derart, daß die Daten die Schaltungen 210 bis 212 umgehen, die zum Erzielen einer Hochgeschwindigkeitsausführung anderer Befehle vorgesehen sind, wie es später beschrieben wird. Das hat zur Folge, daß der Addierer 10 die unvollständige Adresse, die im Register 8 gespeichert ist, und die Daten addiert, die vom Hauptspeicher 12 für den vorhergehenden Be­ fehl I 1 abgerufen wurden. In dieser Weise wird die richtige Operandenadresse des Additionsbefehls I 2 erzeugt und auf die Signalleitung 34 gegeben. Auf das Ende des Abrufsignals 37, das am Ende des Abrufens des Operanden des Ladebefehls I 1 vom Hauptspeicher 12 erzeugt wird, steuert die Hilfsoperations­ steuerung 3 b den Wähler 54 über die Steuersignalleitung 32 so, daß die Ausgangsdaten 34 der Operationseinheit 10 als Eingangs­ daten zum Adressenregister 11 gewählt werden. In dieser Weise wird die Adresse des Additionsbefehls I 2 berechnet und in das Adressenregister 11 geladen. Danach wird der Operand vom Haupt­ speicher 12 abgerufen und der Operationseinheit 16 geliefert, wie es beim Ladebefehl I 1 der Fall ist. Für den Additionsbe­ fehl I 2 wird im Gegensatz zum Ladebefehl I 1 der Inhalt des Mehr­ zweckregisters #5, das durch das Feld R 1 des Additionsbefehls I 2 bezeichnet ist, der Operationseinheit 16 über die Leitung 41 geliefert und zum Operanden addiert, der vom Hauptspeicher 12 in die Operationseinheit 16 abgerufen ist. Die Summe wird im Mehrzweckregister #5 der Mehrzweckregister 2 gespeichert, das durch das Feld R 1 bezeichnet ist.
Um die in Fig. 3A dargestellte Befehlsfolge auszuführen, ist bei dem bekannten Ausführungsverfahren, das in Fig. 2B darge­ stellt ist, ein Zusatzbedarf von zwei Zyklen vorgesehen. Gemäß der Erfindung wird die Adressenberechnung (Stufe A) durch den Adressenaddierer 7 unabhängig von der Ausführung des vorher­ gehenden Ladebefehls I 1 durchgeführt, und wird dann die Adres­ senberechnung durch die Hilfsoperationseinheit parallel zur Ausführung der Operationsstufe des Ladungsbefehls I 1 ausgeführt, und wird der Operand vom Hauptspeicher abgerufen (Stufe B). Gemäß der Erfindung wird der Zusatzbedarf daher auf einen Zyk­ lus reduziert.
Einzelheiten der Steuerschaltung 3 werden im folgenden anhand von Fig. 4 beschrieben. Der Konfliktdetektor 3 a umfaßt ein Register 102, Komparatoren 105 und 106, einen Dekodierer 103 und Verknüpfungsglieder 123, 124 und 199′. Das Register 102 hält die Mehrzweckregisternummer R 1 für den ersten Operanden des Befehls (vorhergehender Befehl), der im Befehlsregister (Fig. 1) gehalten ist, wenn ein Befehl (folgender Befehl) in das Befehlsregister geladen wird. Die Komparatoren 105 und 106 sind 4-Bit-Komparatoren. Der Komparator 105 vergleicht das Feld R 1 des vorhergehenden Befehls, d.h. die Mehrzweckregister­ nummer R 1, die durch den vorhergehenden Befehl zu ändern ist, und die Mehrzweckregisternummer, die durch das Indexregister­ feld des gerade in das Befehlsregister 1 eingegebenen Befehls bezeichnet ist, wobei dann, wenn diese Nummern gleich sind, der Komparator 105 ein Ausgangssignal mit dem logischen Wert "1" erzeugt. Der Komparator 106 vergleicht das Feld R 1 des vor­ hergehenden Befehls und die Mehrzweckregisternummer B, die durch das Basisregisterfeld des folgenden Befehls angegeben ist, wobei dann, wenn diese Nummern gleich sind, der Kompara­ tor 106 ein Ausgangssignal mit dem logischen Wert "1" erzeugt. Der Dekodierer 103 dekodiert den Operationscode des gerade in das Befehlsregister 1 geladenen Befehls, um festzustellen, ob der Befehl das Indexregister oder das Basisregister benötigt, wobei dann, wenn der Befehl das zuerst genannte Register benö­ tigt, der Dekodierer 103 ein Benötigungssignal X auf eine Lei­ tung 135 gibt, während der Dekodierer 103 dann, wenn der Be­ fehl das zuletzt genannte Register benötigt, ein Benötigungs­ signal B auf eine Leitung 136 gibt.
Die Ausgangsleitung 135 des Dekodierers 103 und der Ausgang des Komparators 105 liegen an einem UND-Glied 123. Wenn der Inhalt des Mehrzweckregisters, das durch den Befehl zu ändern ist, der dem Befehl vorausgeht, der in das Befehlsregister ein­ geladen ist, und der Inhalt des Indexregisters, das durch den Befehl bezeichnet ist, der in das Befehlsregister 1 geladen ist, gleich sind, dann hat das Ausgangssignal des UND-Gliedes 123 den logischen Wert "1". In ähnlicher Weise liegen die Ausgangs­ leitung 136 des Dekodierers 103 und der Ausgang des Kompara­ tors 106 am UND-Glied 124, das ein Ausgangssignal mit dem lo­ gischen Wert "1" erzeugt, wenn der vorhergehende Befehl und der nachfolgende Befehl in einem Konflikt miteinander bezüglich des Basisregisters stehen.
Wenn somit eines der Ausgangssignale der UND-Glieder 123 und 124 den logischen Wert "1" hat, dann besteht ein Adressenkon­ flikt zwischen dem vorhergehenden Befehl und dem folgenden Be­ fehl. Da das ODER-Glied 199′ die Ausgangssignale der UND-Glie­ der 123 und 124 empfängt, erzeugt das ODER-Glied 199′ ein Aus­ gangssignal mit dem logischen Wert "1", wenn der Adressenkon­ flikt besteht.
Eine logische Hilfsoperationssteuerschaltung 3 b umfaßt ein Register 101, einen Dekodierer 104, Verknüpfungsglieder 108 bis 115 und Register 120 bis 122 sowie 223 bis 225.
Das Register 101 hält den Operationscode des Befehls (vorher­ gehender Befehl), der dem Befehl vorausgeht (folgender Befehl), der gerade in das Befehlsregister 1 geladen wird. Der Dekodie­ rer 104 dekodiert die Art des vorhergehenden Befehls. Wenn bei den vorliegenden Ausführungsbeispiel der Erfindung der vorher­ gehende Befehl ein Ladebefehl ist, das heißt, wenn dieser Be­ fehl ein Ladebefehl oder ein Ladehalbbefehl ist, dann wird ein Signal L auf eine Leitung 137 gegeben. Wenn der vorhergehende Befehl ein Additionsbefehl oder ein Subtraktionsbefehl ist, dann wird ein Signal A/S auf eine Leitung 138 gegeben. Wenn insbesondere der vorhergehende Befehl ein Subtraktionsbefehl ist, dann wird ein Signal S auf eine Leitung 141 gegeben. Wenn der vorhergehende Befehl ein Befehl ist, ein Halbwort zu ver­ arbeiten, beispielsweise ein Ladehalbbefehl, ein Additions­ halbbefehl oder ein Subtraktionshalbbefehl ist, dann wird ein Signal H auf eine Leitung 140 gegeben. Wenn der vorhergehende Befehl ein anderer Befehl als ein Ladebefehl, ein Additions­ befehl oder ein Subtraktionsbefehl beispielsweise ein Mehr­ fachbefehl ist, dann wird ein Signal "OTHERS" auf eine Lei­ tung 139 gegeben.
Die Verknüpfungsglieder 108 bis 115 und die Register 120 bis 122 sowie 223 bis 225 steuern die Ausführung des nachfolgenden Befehls, der in einem Konflikt mit dem vorhergehenden Befehl steht, in Abhängigkeit von der Art des vorhergehenden Befehls.
Die Dekodierstartsteuerung 3 c steuert den Beginn des Dekodierens des Befehls, der in das Befehlsregister 1 geladen ist.
Die Arbeitsweise der in Fig. 4 dargestellten Schaltung wird im folgenden bezüglich der Ausführung des Additionsbefehls I 2 erläutert, der in Fig. 3A auf den Ladebefehl I 1 folgt.
Wenn angenommen wird, daß kein Adressenkonflikt zwischen dem vorhergehenden Ladebefehl I 1 und dem vorvorhergehenden Befehl bestand, dann haben die Ausgangssignale der UND-Glieder 123 und 124 beide den logischen Wert "0" und haben die Ausgangs­ signale XSUPO und BSUPO der UND-Glieder 108 und 109 beide den logischen Wert "0". Die Wähler 50 und 52 in Fig. 1 wählen somit die Ausgangsleitungen 24 und 25 der Mehrzweckregister 2 jeweils. In dieser Weise wird der Ladebefehl normal ausgeführt. Wenn der folgende Additionsbefehl I 2 in das Befehlsregister 1 geladen wird, liefert der Dekodierer 103 Benötigungssignale X und Y, die anzeigen, daß das Indexregister und das Basisre­ gister benötigt werden, den UND-Gliedern 123 und 124 über die Signalleitungen 135 und 136 jeweils. Wenn andererseits der Dekodierer 104 den Inhalt des Registers 101 dekodiert, das den Operationscode des vorhergehenden Ladebefehls I 1 hält, liefert der Dekodierer 104 ein Signal L, das das Dekodieren des Lade­ befehls I 1 angibt, den UND-Gliedern 108 und 109 über eine Lei­ tung 137. Die Komparatoren 105 und 106 vergleichen die Mehr­ zweckregisternummern X (=3) und B (=1) , die durch den Addi­ tionsbefehl I 2 als Indexregister und Basisregister bezeich­ net sind, mit der Mehrzweckregisternummer R 1 (=3),in das der Operand durch den vorhergehenden Ladebefehl geladen ist. Die Indexregisternummer X (=3) des Additionsbefehls wird dem Komparator 105 über eine Signalleitung 132 geliefert und die Basisregisternummer B (=7) wird dem Komparator 107 über eine Signalleitung 133 geliefert. Die Mehrzweckregisternummer R 1, die durch den Ladebefehl zu ändern ist, wird andererseits vom Register 102 den beiden Komparatoren 105 und 106 geliefert. Da der Adressenkonflikt bezüglich des Indexregisters besteht, ist das Ausgangssignal des Komparators 105 gleich "1", wobei dieses Signal am UND-Glied 123 liegt. Dementsprechend hat das Ausgangssignal XSUPO des UND-Gliedes 123 den logischen Wert "1". Andererseits bleiben die Ausgangssignale der UND-Glieder 124 und 109 auf dem logischen Wert "0". Das Signal XSUPO liegt am Wähler 50 (Fig. 1) über eine Leitung 26, so daß der Wähler 50 so gesteuert wird, daß er den Wert Null als Eingangsdaten für das Indexeingangsregister 4 von Fig. 1 wählt, wie es im vor­ hergehenden beschrieben wurde. Das hat zur Folge, daß der Drei­ eingangsadressenaddierer 7 den Inhalt des Basisregisters, das durch den Befehl I 2 bezeichnet ist, und die Distanz oder den Versatz addiert. Das UND-Glied 109 in Fig. 4 erzeugt ein Aus­ gangssignal BSUPO mit dem logischen Wert "1" wenn der vorher­ gehende Befehl ein Ladebefehl ist und der folgende Befehl das Basisregister für die Adressenberechnung benötigt und die Mehr­ zweckregisternummer, die durch den vorhergehenden Befehl zu ändern ist, gleich der Basisregisternummer ist. Der Wähler 52 (Fig. 1) wird so gesteuert, daß er den Wert Null für das Ba­ siseingangsregister 5 wählt und der Dreieingangsadressenaddie­ rer 7 (Fig. 1) addiert nur den Inhalt des Indexregisters und die Distanz oder den Versatz.
Wie es in Fig. 4 dargestellt ist, liegen das Signal L, das dann erzeugt wird, wenn der durch den Dekodierer 104 dekodier­ te Befehl ein Ladebefehl ist, und das Signal A/S, das dann erzeugt wird, wenn der dekodierte Befehl ein Additions- oder Subtraktionsbefehl ist, am ODER-Glied 114. Da der vorhergehen­ de Befehl ein Ladebefehl ist, und das Signal L durch den De­ kodierer 104 erzeugt wird, hat das Ausgangssignal des ODER- Gliedes 114 den logischen Wert "1". Wenn eines der Ausgangs­ signale der UND-Glieder 121 und 124 den logischen Wert "1" hat, hat das Ausgangssignal des ODER-Gliedes 199′ den logi­ schen Wert "1". Das Ausgangssignal des UND-Gliedes 110, an dem die Ausgangssignale der ODER-Glieder 199′ und 114 liegen, hat daher den logischen Wert "1", wobei dieses Signal in das Re­ gister 223 geladen wird, das die Funktion der Einstellung des Zeitablaufes hat. Sein Ausgangssignal 31 bewirkt, daß das Re­ gister 8 in Fig. 1 die Ausgangsdaten des Dreieingangsadressen­ addierers 7 liest. Das Register 8 hält den Inhalt des Index­ registers, der vom Dreieingangsadressenaddierer 7 kommt, d.h. die unvollständige Adresse, die nicht den Inhalt des Basisre­ gisters enthält. Die Ausgangsdaten 31 des Registers 223 in Fig. 4 liegen am Zeiteinstellregister 224 und dessen Ausgangs­ daten liegen am UND-Glied 115.
Wenn das UND-Glied 115 ein Signal ADV, das das Ende des Abrufens des Operanden des vorhergehenden Ladebefehls vom Hauptspeicher 12 angibt, über die Signalleitung 37 empfängt, dann be­ kommt das Ausgangssignal 32 des UND-Gliedes 115 den logischen Wert "1". Dieses Signal gibt dem Wähler 54 in Fig. 1 den Be­ fehl, die Ausgangsdaten der Hilfsoperationseinheit 100 zu wählen. Die Ausgangssignale der UND-Glieder 111 bis 113 be­ halten den logischen Wert "0" für den in Fig. 3A dargestell­ ten Fall, wobei diese Ausgangssignale über die Register 120 bis 122 auf die Leitungen 30 a bis 30 c gegeben werden. Diese Signale geben den Wählern 197 bis 199 in Fig. 1 den Befehl, Ausgangsdaten von anderen Schaltungen als den Schaltungen 210 bis 212 zu wählen.
Die Dekodierstartsteuerung 3 c in Fig. 4 unterdrückt das De­ kodieren eines Befehls, der auf denjenigen Befehl folgt, der den Adressenkonflikt verursacht hat. Im Fall des Adressenkon­ fliktes liefert das ODER-Glied 199′ ein Signal "1" dem UND- Glied 116, an dem auch die Umkehr des Signals OTHERS vom De­ kodierer 104 liegt. Wenn der vorhergehende Befehl ein Ladebe­ fehl ist, wie es in Fig. 3A dargestellt ist, hat das Signal OTHERS den logischen Wert "0" und hat das Ausgangssignal des UND-Gliedes 116 den logischen Wert "1". Dieses Ausgangssignal liegt zwei Zyklen später über die Register 128 und 129 am UND- Glied 118. Das UND-Glied 118 erzeugt ein Signal 41, das das Dekodieren des weiteren zwei Zyklen nach den Dekodieren des folgenden Befehls I 2 folgenden Befehls unterdrückt. Dieses Signal liegt an der I-Abrufschaltung 17 und am Befehlsregister 1 (Fig. 1). Wenn das Signal ADV vom Hauptspeicher 12 kommt, wird das Dekodierunterdrückungssignal 41 durch die UND-Glieder 115 und 118 rückgesetzt.
Im folgenden wird die Arbeitsweise der in Fig. 1 dargestell­ ten Informationsverarbeitungsvorrichtung für den Fall beschrie­ ben, daß die in Fig. 3B dargestellte Befehlsfolge ausgeführt wird. Bei der vorliegenden Befehlsfolge ist der vorhergehende Befehl ein Additionsbefehl I 1 und benutzt der folgende Lade­ befehl das Mehrzweckregister #3, das durch den Additionsbefehl I 1 zu ändern ist, als Indexregister. Der vorhergehende Addi­ tionsbefehl I 1 bewirkt, daß die Operationseinheit 16 den In­ halt (GPR 3) des Mehrzweckregisters #3, das durch das Feld R 1 des Befehls bezeichnet ist, und den Operanden (OP 2) des Haupt­ speichers addiert und fordert auf, diese Summe in dem Mehr­ zweckregister #3 zu speichern. Das vorliegende Ausführungsbei­ spiel unterscheidet sich somit von dem in Fig. 3A dargestell­ ten Fall dadurch, daß der vorhergehende Befehl I 1 eine Opera­ tion durch die Operationseinheit 16 benötigt. Wenn der folgende Ladebefehl I 2 in das Befehlsregister 1 geladen wird, nachdem der vorhergehende Additionsbefehl I 1 dekodiert ist, arbeitet die in Fig. 1 dargestellte Informationsverarbeitungsvorrich­ tung in der folgenden Weise.
Wenn der vorhergehende Befehl I 1 der Additionsbefehl ist, ist die Operandenadresse des folgenden Ladebefehls I 2 die Summe des Mehrzweckregisters #3 (GPR 3) bevor dieses durch den Additionsbefehl I₁ fortgeschrieben ist, des zweiten Operanden (OP 2) des Hauptspeichers 12, der durch den Additionsbefehl I₁ bezeichnet ist, des Inhalts (GPR 1) des Mehrzweckregisters #1, das als Basisregister durch den Ladebefehl I₂ bezeichnet ist und des Versatzes (D), der durch den Befehl angegeben wird, d. h. gleich (GPR 3) + (OP 2) + (GPR 1) + D. Eine Interimssumme der Operandenadresse des Ladebefehls I₂ wird berechnet, während die Daten des zweiten Operanden (OP 2) des Additionsbefehls I₁ noch nicht vom Hauptspeicher 12 abgerufen sind. Drei Daten GPR 3, GPR 1 und D werden addiert, während der Inhalt (GPR 3) des Mehrzweckregisters #3 benutzt wird, bevor dieses durch den Additionsbefehl geändert wird, um eine unvollständige Adresse zu bestimmen. Wenn der zweite Operand (OP 2) des Additionsbefehls I 1 vom Hauptspeicher 12 abgerufen wird, wird er zur un­ vollständigen Adresse durch die Hilfsoperationseinheit 100 addiert, um eine vollständige Adresse zu bestimmen. Die Deko­ dierstufe für den folgenden Ladebefehl I 2 kann somit ausge­ führt werden, ohne daß der Abschluß der Ausführung des vorher­ gehenden Additionsbefehles I 1 abgewartet wird. Der Inhalt des Mehrzweckregisters #3, das als Indexregister durch den Lade­ befehl I 2 bezeichnet ist, der Inhalt des Mehrzweckregisters #1, das als Basisregister bezeichnet ist, und der Versatz D, der durch den Befehl I 2 bezeichnet ist, werden durch den Dreiein­ gangsadressenaddierer 7 addiert, der die unvollständige Adresse berechnet. Wenn der vorhergehende Befehl der Ladebefehl ist (Fig. 3A), ist es notwendig, das Indexeingangsregister oder das Basiseingangsregister auf Null zu setzen, ein derartiger Arbeitsschritt ist jedoch dann nicht notwendig, wenn der vor­ hergehende Befehl der Additionsbefehl ist. Die Hilfsoperations­ einheit 3 b in der Steuerschaltung 3 gibt die Daten "0" auf die Signalleitungen 26 und 27, damit die Wähler 50 und 52 die Ausgangsleitungen 24 und 25 der Mehrzweckregister 2 auswählen.
Die Arbeitsweise des Konfliktdetektors 3 c in Fig. 4 ist die gleiche wie bei der Befehlsfolge von Fig. 3A. Die Ausgangs­ signale des UND-Gliedes 123 und des ODER-Gliedes 199′ haben den logischen Wert "1".
Da der durch den Dekodierer 104 dekodierte vorhergehende Befehl ein Additionsbefehl ist, gibt der Dekodierer 104 das Signal A/S auf die Signalleitung 138, wobei er jedoch kein Signal L auf die Leitung 137 gibt. Das hat zur Folge, daß das Ausgangssignal des UND-Gliedes 108 auf dem logischen Wert "0" bleibt, was im Gegensatz zu dem in Fig. 3A dargestellten Fall steht. Das Ausgangssignal des UND-Gliedes 109 bleibt auf dem logischen Wert "0", wie es im Fall von Fig. 3A der Fall ist. Die Ausgangssignale XSUPO und BSUPO der UND-Glieder 108 und 109 werden den Wählern 50 und 52 (Fig. 1) über die Leitungen 26 und 27 geliefert. Die Summe (GPR 3)+(GPR 1)+D vom Adressen­ addierer 7 in Fig. 1 wird in das Register 8 eingegeben. Ein Setzsignal 31 für das Register 8 wird durch die Steuerschal­ tung in folgender Weise erzeugt. Da das Ausgangssignal A/S des Dekodierers 104 den logischen Wert "1" hat, hat gemäß Fig. 4 das Ausgangssignal des ODER-Gliedes 114 gleichfalls den logi­ schen Wert "1", wie es im Fall von Fig. 3A der Fall ist. Das Ausgangssignal 31 des Registers 223 hat dementsprechend den logischen Wert "1", wie im Fall von Fig. 3A.
In dieser Weise erfolgt die Addition im Adressenaddierer 7 genauso als würde kein Konflikt bestehen. Der folgende Arbeits­ vorgang ist der gleiche wie bei der Befehlsfolge von Fig. 3A. Wenn das Abrufen des Operanden (OP 2) des vorhergehenden Addi­ tionsbefehles I 1 abgeschlossen ist, werden die abgerufenen Daten (OP 2) über die Signalleitung 35 der Hilfsoperations­ einheit 100 geliefert. Die Wähler 197 bis 199 der Hilfsopera­ tionseinheit 100 wählen die abgerufenen Daten und liefern die abgerufenen Daten dem Addierer 10, der sie zur unvollständigen Adresse (GPR 3)+(GPR 1)+D addiert, die im Register 8 gehal­ ten wird. Wenn andererseits das Endsignal ADV für das Abrufen des Operanden des Additionsbefehles I 1 an der Steuerschaltung 3 über die Signalleitung 37 liegt, dann steuert die Steuer­ schaltung 3 den Wähler 54 über ein Signal 32 derart, daß der Wähler 54 die Ausgangsdaten des Addierers 10 wählt. Somit wird die Operandenadresse des Ladebefehls I 2 in das Adressenregister 11 geladen. Der Operand des Ladebefehls I 1 am Hauptspeicher 12 kann somit abgerufen werden.
Das hat zur Folge, daß selbst dann, wenn ein Adressenkonflikt zum vorhergehenden Additionsbefehl besteht, die Ausführung des folgenden Befehls beschleunigt werden kann.
Es sei im folgenden ein Fall angenommen, in dem der vorhergehen­ de Befehl ein Mehrzweckregisteränderungsbefehl ist, der einen Halbwortoperanden handhabt, beispielsweise ein Ladehalbbefehl I 1 ist, und der folgende Additionsbefehl I 2 einen Adressen­ konflikt zum vorhergehenden Befehl hat, wie es in Fig. 3C dargestellt ist.
Die Arbeitsweise unterscheidet sich von derjenigen der Befehls­ folge von Fig. 3A und 3B insofern, als der Operand (OP 2), der durch den Ladehalbbefehl I 1 bezeichnet wird, vom Hauptspeicher 12 zum Addierer 10 über eine Vorzeichenerweiterungsschaltung 210 abgerufen wird. Der Ladebefehl und der Additionsbefehl, die in Fig. 3A und 3B dargestellt sind, handhaben 4-Byte-Daten als Operanden und die vom Hauptspeicher abgerufenen Daten und die Addition haben eine 4-Byte-Länge. Der in Fig. 3C darge­ stellte Ladehalbbefehl I 1 ruft andererseits 2-Byte-Daten vom Hauptspeicher 12 ab und lädt diese Daten in das 4-Byte-Mehr­ zweckregister #3, das durch das Feld R 1 bezeichnet wird. Das Ladebit der 2-Byte-Daten, die vom Hauptspeicher 12 ab­ gerufen werden, wird als Vorzeichenbit angesehen und das Vorzeichenbit wird von der Operationseinheit 16 zu zwei höherwertigen Bytes erweitert, um 4-Byte-Daten zu bilden. Dann werden diese Daten in das Mehrzweckregister #3 geladen. Die Operation, die durch die Operationseinheit 16 auszufüh­ ren ist, unterscheidet sich somit von der Addition, die bei der Befehlsfolge von Fig. 3A ausgeführt wird. Wenn insbeson­ dere das Ladebit der 2-Byte-Daten gleich "0" ist, werden Bits mit dem Wert "0" in die beiden höherwertigen Bytes (Fig. 5A) gefüllt, während dann, wenn das Ladebit den Wert "1" hat, Bytes mit dem Wert "1" eingefüllt werden (Fig. 5B).
Für die Befehlsfolge von Fig. 3C erfolgen die Dekodierung des Ladehalbbefehls I 1, das Berechnen der Operandenadresse und das Abrufen des Operanden in der gleichen Weise wie für den Ladebefehl von Fig. 3A. Wenn der folgende Additionsbe­ fehl I 2 in das Befehlsregister 1 geladen wird, dann besteht ein Konflikt bezüglich des Indexeingangsregisters, wie es in Fig. 3A der Fall ist, und werden die Eingangsdaten zum Index­ eingangsregister 4 beim Berechnen der Operandenadresse des Additionsbefehles I 2 auf null gesetzt, wie es in Fig. 3A der Fall ist. Die unvollständige Adresse wird im Register 8 (Fig. 5) gehalten, bis das Abrufen des Operanden des Lade­ halbbefehls I 2 abgeschlossen ist. Wenn der Operand des Lade­ halbbefehls I 2 abgerufen ist, wird die Operandenadresse des Additionsbefehls I 2 durch die Hilfsoperationseinheit 100 be­ rechnet. In diesem Fall ist es notwendig, die 2-Byte-Ope­ randendaten in vier Bytes zu erweitern. Das erfolgt durch eine Vorzeichenerweiterungsschaltung 210. Der 2-Byte-Ope­ rand, der durch den Ladehalbbefehl abgerufen ist, wird durch den Ausrichter 14 an der 2-Byte-Position niedriger Wertigkeit eines 4-Byte-Datenweges 35 ausgerichtet. Die Vorzeichenerwei­ terungsschaltung 210 prüft das höchstwertige Bit und addiert sechzehn Bits, die den gleichen Wert wie das Vorzeichen-Bit haben, zur höherwertigen Position der ursprünglichen 2-Bit- Daten. Die erweiterten Daten werden vom Wähler 197 gewählt und über die Wähler 198 und 199 dem Addierer 10 geliefert. Wenn der vorhergehende Befehl ein Ladehalbbefehl ist, kann in dieser Weise die Adresse des folgenden Additionsbefehls fehlerfrei bestimmt werden. Der Wähler 197 wählt die erweiter­ ten Daten, wenn die Hilfsoperationssteuerung 3 b ein Signal 30 a mit dem logischen Wert "1" dem Wähler 197 liefert. Dieses Steuersignal wird in der folgenden Weise erzeugt. Wenn der vorhergehende Befehl ein Halbworthandhabungsbefehl ist, dann liefert gemäß Fig. 4 der Dekodierer 104 ein Signal H dem UND- Glied 111 über die Signalleitung 140. Da ein Signal mit dem logischen Wert "1" dem UND-Glied 111 vom ODER-Glied 199′ ge­ liefert wird, erzeugt das UND-Glied 111 ein Ausgangssignal mit dem logischen Wert "1", das über das Zeiteinstellregister 120 auf die Leitung 30 a gegeben wird.
Wenn der vorhergehende, das Mehrzweckregister ändernde Befehl ein Additionshalbbefehl ist, der es erforderlich macht, einen Halbwortoperanden zu addieren, werden sowohl die Operation des Addierers 7, die in Verbindung mit Fig. 3B beschrieben wurde, als auch die Operation der Vorzeichenerweiterungsschaltung aus­ geführt, die in Verbindung mit Fig. 3C beschrieben wurde.
Im folgenden wird der Arbeitsablauf für die in Fig. 3D darge­ stellte Befehlsfolge beschrieben. In diesem Fall ist der vorher­ gehende, das Mehrzweckregister ändernde Befehl I 1 ein Subtrak­ tionsbefehl. Die Mehrzweckregisternummer (3) die durch den Subtraktionsbefehl I 1 zu ändern ist, und die Indexregister­ nummer des folgenden Ladebefehls I 2 sind gleich, so daß ein Konflikt besteht. Die Operandenadresse, die durch den Lade­ befehl I 2 bestimmt ist, ist gleich (GPR 3)-(OP 2)+(GPR 1)+D, wobei die Symbole die gleichen sind, wie sie für Fig. 3A be­ nutzt wurden. Ähnlich wie im Fall von Fig. 3B werden drei Daten ausschließlich des zweiten Operanden (OP 2) des Subtrak­ tionsbefehls I 1 addiert, d.h. wird (GPR 3)+(GPR 1) +D ge­ bildet. Wenn der zweite Operand OP 2 des Subtraktionsbefehls I 2 abgerufen wird, wird er von dieser Summe subtrahiert, um die Operandenadresse des Ladebefehls I 2 zu berechnen. Ähnlich wie im Fall von Fig. 3B, in dem der vorhergehende Befehl der Additionsbefehl ist, werden somit der Inhalt (GPR 3) des Mehr­ zweckregisters #3 vor seiner Änderung durch den Subtraktions­ befehl, der Inhalt (GPR 1) des Mehrzweckregisters #1, das als Basisregister durch den Ladebefehl bezeichnet ist, und die Distanz oder der Versatz D durch den Adressenaddierer 7 addiert, um die unvollständige Adresse für den Ladebefehl I 2 zu berech­ nen, und wird diese im Adressenregister 8 gehalten, bis der Operand (OP 2) des Subtraktionsbefehls I 1 abgerufen wird. Für den Additionsbefehl werden die Operandendaten (OP 2), die vom Hauptspeicher 12 abgerufen werden, einfach durch den Addierer 10 addiert. Für den Subtraktionsbefehl I 1 müssen sie jedoch subtrahiert werden. Die Subtraktion erfolgt gewöhnlich durch eine Addition unter Verwendung eines Zweierkomplementes. Bei dem vorliegenden Ausführungsbeispiel wird statt der Sub­ traktion des zweiten Operanden (OP 2) des Subtraktionsbefehls, der auf die Signalleitung 35 abgerufen wird, von der Summe (GPR 3)+(GPR 1)+D, die im Register 8 gehalten ist, ein Zwei­ erkomplement der Daten auf der Signalleitung 35 über eine Kom­ plementschaltung 211 erzeugt und durch den Wähler 198 ausge­ wählt und dem Addierer 10 geliefert. Es wird dann zum Inhalt addiert, der im Register 8 gehalten ist, um dasselbe Ergebnis wie bei einer Subtraktion zu erhalten. Das Signal 30 b, das den Wähler 198 ansteuert, wird in der folgenden Weise erzeugt. Wenn der Dekodierer 104 den vorhergehenden Subtraktionsbefehl I 1 dekodiert, dann liefert er gemäß Fig. 4 ein Signal S dem UND-Glied 112 über die Leitung 141. Da ein Signal mit dem Wert "1" auch vom ODER-Glied 199 am UND-Glied 112 liegt, er­ zeugt das UND-Glied 112 ein Ausgangssignal mit dem logischen Wert "1", das über das Zeiteinstellregister 121 und die Lei­ tung 30 b dem Wähler 198 geliefert wird (Fig. 1).
Wenn der vorhergehende Befehl ein Subtraktionsbefehl ist, wird in dieser Weise der Zusatzbedarf auf einen Zyklus re­ duziert, wie es beim Ladebefehl oder Additionsbefehl der Fall ist und in Fig. 2C dargestellt ist. Wenn in Fig. 3D der Subtraktionsbefehl I 1 ein Subtraktionshalbbefehl ist, der einen Halbwortoperanden handhabt, dann werden die Wähler 197 und 198 so angesteuert, daß sowohl die Ausgangsdaten der Codeerweiterungsschaltung 210 als auch der Komplementschal­ tung 211 gewählt werden, wie es in Fig. 1 dargestellt ist. Das vorliegende Ausführungsbeispiel der Erfindung ist somit auch auf einen derartigen Befehl anwendbar.
Im folgenden wird der Arbeitsvorgang für die Befehlsfolge erläutert, die in Fig. 3E dargestellt ist. Die Kombination der Befehle ist die gleiche wie bei Fig. 3A, das Mehrzweck­ register, das durch den Ladebefehl I 1 geändert wird, wird je­ doch durch den folgenden Additionsbefehl I 2 im Gegensatz zu dem Fall von Fig. 3A sowohl als Indexregister als auch als Basisregister bezeichnet. Die bekannten Verfahren und Vorrich­ tungen sagen über die Hochgeschwindigkeitsausführung in einem derartigen Fall nichts aus. Gemäß der Erfindung wird die Aus­ führung in gleicher Weise wie bei den Befehlsfolgen von Fig. 3A bis 3D beschleunigt.
Die Operandenadresse des folgenden Additionsbefehls I 2 kann durch (OP 2)+(OP 2)+D auf der Grundlage der zweiten Operan­ dendaten (OP 2) des vorhergehenden Ladebefehls I 1 und der Distanz oder dem Versatz D bestimmt werden, der durch den Lade­ befehl I 2 bezeichnet ist. Der zweite Operand (OP 2) des Lade­ befehls I 1, der vom Hauptspeicher 12 abgerufen wird, wird nämlich verdoppelt und zur Distanz oder dem Versatz D zuaddiert. Die Wähler 50 und 52 werden so gesteuert, daß die Eingangsda­ ten zum Indexeingangsregister und die Eingangsdaten zum Basis­ eingangsregister des Adressenaddierers 7 gleich null gehalten werden. Die Signale 26 und 27, die die Wähler 50 und 52 an­ steuern, kommen von den UND-Gliedern 108 und 109 in Fig. 4. Wenn der zweite Operand (OP 2) des Ladebefehls I 2 anschließend abgerufen wird, wird der Operand durch einen Schieber 212 verdoppelt, dessen Ausgangsdaten vom Wähler 199 gewählt und zum Inhalt des Registers 8 durch den Addierer 10 addiert werden, so daß die richtige Operandenadresse des Additionsbefehls I 2 bestimmt werden kann. Der Schieber 212 kann ein einfacher 1- Bit-Linksschieber sein. Der Wähler 199 wird durch das Signal 30 c angesteuert, das vom UND-Glied 113 in Fig. 4 erzeugt wird. Die UND-Glieder 123 und 124 erzeugen Ausgangssignale mit dem logischen Wert "1", wenn ein Indexregisterkonflikt oder ein Basisregisterkonflikt jeweils besteht, wie es im vorhergehenden beschrieben wurde. Für die Befehlsfolge von Fig. 3E liegt das Ausgangssignal des UND-Gliedes 113, das den logischen Wert "1" hat, über das Zeiteinstellregister 122 an der Leitung 30 c.
Wenn das Register, das durch den vorhergehenden Ladebefehl geändert wurde, sowohl als Indexregister als auch als Basis­ register für den folgenden Befehl benutzt wird, wird in dieser Weise der Zusatzbedarf auf einen Zyklus reduziert, wie es in Fig. 2C dargestellt ist. Das ist nicht auf die vorhergehenden Ladebefehle beschränkt, das vorliegende Ausführungsbeispiel der Erfindung ist gleichfalls auf den Additionsbefehl und den Subtraktionsbefehl anwendbar.
Ein Verriegelungsglied 225 in Fig. 4 dient dazu, einen Adres­ senmodus zu bezeichnen, in dem die Bit-Breite der Operanden­ adresse zum Zugriff auf den Hauptspeicher 12 bestimmt wird, die vom Adressenaddierer 7 kommt. Wenn das Ausgangssignal 28 des Verriegelungsgliedes 225 den Wert "0" hat, dann hat die Adres­ se eine 24-Bit-Breite, und wenn das Ausgangssignal 28 den logi­ schen Wert "1" hat, hat die Adresse eine 31-Bit-Breite. Das hat zur Folge, daß auf den Hauptspeicher 12 entweder mit einer 24-Bit-Adresse oder mit einer 31-Bit-Adresse zugegriffen werden kann. Das Verriegelungsglied 225 wird gesetzt oder rück­ gesetzt, wenn der Dekodierer 103 einen Befehl dekodiert, der den Adressenmodus ändert. Die Fig. 6A und 6B zeigen Beispiele eines Befehls, der den Adressenmodus ändert. Mit "0B" und "0C" sind Operationscodes bezeichnet. Diese Befehle sind 2- Bit-Befehle und das Bit 0 des Mehrzweckregisters, das durch das Feld R 2 bezeichnet ist, gibt den Adressenmodus an. Wenn der Dekodierer 103 den Befehl von Fig. 6A oder 6B de­ kodiert, wird das Bit 0 des Mehrzweckregisters, das durch das Feld R 2 bezeichnet ist, auf der Signalleitung 24 in das Ver­ riegelungsglied 225 eingegeben. Sein Ausgangssignal 28 unter­ drückt die Ausgangsdaten des Dreieingangsadressenaddierers 7. Gemäß der Erfindung hinsichtlich des Adressenmodus steuert das Ausgangssignal 28 des Verriegelungsgliedes 225 zum Steuern des Adressenmodus nicht nur den Dreieingangsadressenaddierer 7 sondern auch die Ausgangsdaten des Addierers 10. Durch Reflek­ tieren des Adressenmodus zu den Ausgangsdaten des Addierers 10 durch das Ausgangssignal 28 des Verriegelungsgliedes 225 kann der Adressenkonflikt sogar sofort nach der Änderung des Adres­ senmodus schnell verarbeitet werden.
Wenn die Adressenmodussteuerung durch die Signalleitung 28 an den Ausgangsdaten des Addierers 10 nicht bewirkt wird, können Operandendaten des vorhergehenden Befehls, die vom Hauptspeicher 12 abgerufen wurden, dem Addierer 10 nicht ge­ liefert werden, sondern muß dieser über den Dreieingangsaddie­ rer 7 oder die Mehrzweckregister 2 versorgt werden. Das hat zur Folge, daß der Zusatzbedarf um einen oder zwei Zyklen zu­ nimmt.
Wenn ein Adressenkonflikt zu einem vorhergehenden Ladebefehl oder Additions/Subtraktionsbefehl besteht, kann gemäß der Er­ findung die Dekodierung des folgenden Befehls beschleunigt wer­ den, ohne daß Bedingungen für den folgenden Befehl aufgestellt werden. Wenn der vorhergehende Befehl einen Halbwortoperanden handhabt, oder wenn das Indexregister und das Basisregister des folgenden Befehls gleichzeitig durch den vorhergehenden Be­ fehl geändert werden, wird die Hochgeschwindigkeitsausführung dennoch erzielt.

Claims (12)

1. Informationsverarbeitungsvorrichtung, gekennzeichnet durch
eine Detektoreinrichtung (3 a), die feststellt, ob ein vorhergehender Befehl, der sich in der Ausführung befindet, die Anweisung gibt, einen ersten Operanden von einem Haupt­ speicher abzurufen, Ausführungsergebnisdaten für den vorher­ gehenden Befehl auf der Grundlage des ersten Operanden zu er­ zeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen folgenden auszuführenden Befehl, mit den Ausführungsergebnisdaten zu ändern;
eine Adreßaddiereinrichtung (7), die auf ein negatives Ergebnis der Detektoreinrichtung (3 a) anspricht und die Viel­ zahl der Adreßdaten addiert, um eine zweite Operandenadresse zu erzeugen, die vom folgenden Befehl benötigt wird;
eine Adreßdatenversorgungseinrichtung (2, 50, 52, 108, 109), die auf ein positives Ergebnis der Detektoreinrichtung (3 a) anspricht, um der Adreßaddiereinrichtung (7) zumindest einen Teil der Adreßdaten zu liefern, bestimmt durch die Art des vorhergehenden Befehls, und zwar parallel zur Ausführung des vorhergehenden Befehls; und
Operationseinrichtungen (100, 54, 110 bis 114), die auf das positive Feststellungsergebnis ansprechen, um dann, wenn der erste Operand für den vorhergehenden Befehl vom Haupt­ speicher abgerufen ist und vor einer Änderung der einen Adreß­ dateninformation durch den vorhergehenden Befehl, eine Opera­ tion durchzuführen, die durch den vorhergehenden Befehl oder eine Ausgabe der Adreßaddiereinrichtung (7) und den abgerufe­ nen ersten Operanden bestimmt ist, um als zweite Operanden­ adresse eine Adresse zu erzeugen, die gleich der Summe aus der Vielzahl der Adreßdaten ausschließlich der einen Adreßdatenin­ formation und dem Ausführungsergebnis für den vorhergehenden Befehl ist.
2. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adreßdatenversorgungseinrich­ tung mehrere Register (2) und Einrichtungen (50, 52, 108, 109) enthält, die auf das positive Ergebnis der Detektoreinrichtung (3 a) ansprechen, um der Adreßaddiereinrichtung (7), vorgegeben durch den vorhergehenden Befehl, die Adreßdaten, die in einem Indexregister und einem Basisregister aus der Vielzahl von Re­ gistern gehalten werden, die durch den folgenden Befehl be­ zeichnet werden, und zumindest einen Teil eines Versatzes zu liefern, der durch den folgenden Befehl bezeichnet wird.
3. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an­ sprechen, daß der vorhergehende Befehl ein Befehl eines ersten Typs ist, der die Verwendung des ersten Operanden unverändert als Ausführungsergebnisdaten für den vorhergehenden Befehl verlangt, um die Adreßdaten bis auf die eine Adreßdateninfor­ mation der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (10) enthalten, die auf die Feststellung anspricht, daß der vor­ hergehende Befehl ein Befehl des ersten Typs ist, um die Summe aus dem abgerufenen ersten Operanden und der Ausgabe der Adreßaddiereinrichtung (7) zu berechnen.
4. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet
daß die Adreßdatenversorgungseinrichtung Einrichtungen (50, 52, 104, 108, 109) enthält, die auf die Feststellung an­ sprechen, daß der vorhergehende Befehl ein Befehl eines zwei­ ten Typs ist, der die Erweiterung eines Vorzeichen-Bit des zweiten Operanden und die Verwendung des Ergebnisses als die Ausführungsergebnisdaten für den vorhergehenden Befehl ver­ langt, um die Adreßdaten bis auf die eine Adreßdateninforma­ tion der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Vorzeichen-Erweite­ rungseinrichtung (210), die auf die Feststellung anspricht, daß der vorhergehende Befehl ein Befehl des zweiten Typs ist, um das Vorzeichen-Bit des abgerufenen ersten Operanden zu er­ weitern, und eine Einrichtung enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) berechnet.
5. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adreßdatenversorgungseinrich­ tung Einrichtungen enthält, die auf die Feststellung anspre­ chen, daß der vorhergehende Befehl ein bestimmter Befehl ist, um alle Adreßdaten der Adreßaddiereinrichtung (7) parallel zur Ausführung des vorhergehenden Befehls zu liefern.
6. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, die Summe aus der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation durch dieses Ergebnis fortzuschrei­ ben; und
daß die Operationseinrichtungen Einrichtungen enthalten, die die Summe aus der Ausgabe der Adreßaddiereinrichtung (7) und dem ersten Operanden, der vom Hauptspeicher abgerufen wird, als Adresse des zweiten Operanden bilden.
7. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, die Sum­ me aus dem erweiterten ersten Operanden und der einen Adreß­ dateninformation als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausführungsergeb­ nisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei­ terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden, der vom Hauptspeicher abgerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Vorzeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operan­ den bildet.
8. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, den Unterschied zwischen der einen Adreßdateninformation und dem ersten Operanden als die Ausführungsergebnisdaten zu er­ zeugen und die eine Adreßdateninformation mit den Ausführungs­ ergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreß­ addiereinrichtung (7) und dem ersten Operanden, der vom Haupt­ speicher abgerufen wird, als Adresse des zweiten Operanden bilden.
9. Informationsverarbeitungsvorrichtung nach Anspruch 5, dadurch gekennzeichnet,
daß der bestimmte Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern, den Un­ terschied zwischen der einen Adreßdateninformation und dem er­ weiterten ersten Operanden als die Ausführungsergebnisdaten zu erzeugen und die eine Adreßdateninformation mit den Ausfüh­ rungsergebnisdaten fortzuschreiben; und
daß die Operationseinrichtungen eine Vorzeichen-Erwei­ terungseinrichtung (210) zum Erweitern des Vorzeichen-Bit des ersten Operanden und Einrichtungen (10, 211) enthalten, die den Unterschied zwischen der Ausgabe der Adreßaddiereinrich­ tung (7) und der Ausgabe der Vorzeichen-Erweiterungseinrich­ tung (210) als Adresse des zweiten Operanden bilden.
10. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Operationseinrichtungen eine Vorzeichen-Erweiterungseinrichtung (210), die auf die Fest­ stellung anspricht, daß der vorhergehende Befehl ein Befehl ist, der verlangt, das Vorzeichen-Bit des ersten Operanden zu erweitern und die Ausführungsergebnisdaten für den vorherge­ henden Befehl auf der Grundlage des erweiterten ersten Operan­ den zu erzeugen, um das Vorzeichen-Bit des ersten Operanden zu erweitern, der vom Hauptspeicher abgerufen wird, und Einrich­ tungen (10, 211) enthalten, die eine Operation, die durch den vorhergehenden Befehl bestimmt ist, an der Ausgabe der Vor­ zeichen-Erweiterungseinrichtung (210) und der Ausgabe der Adreßaddiereinrichtung (7) ausführen, um die Adresse des zwei­ ten Operanden zu bilden.
11. Informationsverarbeitungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß die Adreßdatenversorgungseinrichtung eine Einrichtung enthält, die auf die Feststellung anspricht, daß der vorher­ gehende Befehl ein Befehl ist, der verlangt, den ersten Ope­ randen unverändert als die Ausführungsergebnisdaten für den vorhergehenden Befehl zu verwenden, und weiterhin auf die Feststellung durch die Detektoreinrichtung (3 a) anspricht, daß zwei Adreßdateninformationen der Adreßdaten durch die Ausfüh­ rungsergebnisdaten für den vorhergehenden Befehl fortzu­ schreiben sind, um die Adreßdaten bis auf diese beiden Adreß­ dateninformationen der Adreßaddiereinrichtung (7) zu liefern; und
daß die Operationseinrichtungen eine Einrichtung (212) zum Verdoppeln des ersten Operanden, der vom Hauptspeicher ab­ gerufen wird, und eine Einrichtung (10) enthalten, die die Summe aus der Ausgabe der Verdopplungseinrichtung (212) und der Ausgabe der Adreßaddiereinrichtung (7) als Adresse des zweiten Operanden bildet.
12. Befehlsausführungsverfahren in einer Informationsverar­ beitungsvorrichtung zum Ausführen von Befehlen jeweils in mehreren Stufen, wobei verschiedene Stufen verschiedener Befehle parallel ausgeführt werden, gekennzeichnet durch folgende Schritte:
Feststellen, ob ein vorhergehender Befehl, der sich in Ausführung befindet, die Anweisung gibt, einen ersten Operan­ den von einem Hauptspeicher abzurufen, Ausführungsergebnis­ daten auf der Grundlage des ersten Operanden zu erzeugen und eine Adreßdateninformation aus einer Vielzahl von Adreßdaten, bezeichnet durch einen auszuführenden folgenden Befehl, mit den Ausführungsergebnisdaten fortzuschreiben;
auf ein positives Feststellungsergebnis ansprechend, Ver­ sorgen eines Adreßaddierers mit zumindest einigen der Adreß­ daten, die durch die Art des vorhergehenden Befehls bestimmt werden, um eine Operandenadreß-Berechnungsstufe für den fol­ genden Befehl abzuschließen; und
vor dem Fortschreiben der einen Adreßdateninformation durch den vorhergehenden Befehl, nachdem der erste Operand vom Hauptspeicher in einer Operanden-Abrufstufe für den vor­ hergehenden Befehl abgerufen wurde, Durchführen einer Opera­ tion, die durch den vorhergehenden Befehl bestimmt ist, an der Ausgabe des Adreßaddierers und dem abgerufenen ersten Operan­ den, um eine Adresse als Adresse des zweiten Operanden zu er­ zeugen, die gleich der Summe aus den Adreßdaten ausschließlich der einen Adreßinformation und den Ausführungsergebnisdaten für den vorhergehenden Befehl ist.
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 true DE3900246A1 (de) 1989-07-20
DE3900246C2 DE3900246C2 (de) 1992-01-23

Family

ID=11471415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3900246A Granted DE3900246A1 (de) 1988-01-06 1989-01-05 Informationsverarbeitungsvorrichtung

Country Status (3)

Country Link
US (1) US5075849A (de)
JP (1) JP2667849B2 (de)
DE (1) DE3900246A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2668438B2 (ja) * 1989-04-21 1997-10-27 三菱電機株式会社 データ検索装置
JP2542120B2 (ja) * 1989-11-15 1996-10-09 松下電器産業株式会社 情報処理装置
US5276822A (en) * 1989-11-15 1994-01-04 Matsushita Electric Industrial Co., Ltd. System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
JPH04275628A (ja) * 1991-03-01 1992-10-01 Mitsubishi Electric Corp 演算処理装置
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
JP3499135B2 (ja) * 1998-06-29 2004-02-23 富士通株式会社 情報処理装置
US6453424B1 (en) * 1999-03-31 2002-09-17 International Business Machines Corporation System and method for temporally controlling instruction execution
US7185182B2 (en) * 2003-02-04 2007-02-27 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early instruction results
US7100024B2 (en) 2003-02-04 2006-08-29 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for generating early status flags
US7107438B2 (en) 2003-02-04 2006-09-12 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions
US20050216713A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Instruction text controlled selectively stated branches for prediction via a branch target buffer
US7694286B2 (en) * 2005-02-10 2010-04-06 International Business Machines Corporation Apparatus and method for detecting base-register usage conflicts in computer code
US8966230B2 (en) * 2009-09-30 2015-02-24 Intel Corporation Dynamic selection of execution stage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5646170A (en) * 1979-09-06 1981-04-27 Ross Operating Valve Co Multiple safety valve
US4670836A (en) * 1983-06-13 1987-06-02 Hitachi, Ltd. Device for detecting an overlap of operands to be accessed
JPS6347834A (ja) * 1986-08-15 1988-02-29 Hitachi Ltd 先行制御方式

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CS164932B2 (de) * 1971-09-07 1975-11-28
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
JPS61109145A (ja) * 1984-11-01 1986-05-27 Fujitsu Ltd メモリアドレス算出方式
JPS61133440A (ja) * 1984-11-30 1986-06-20 Nec Corp デ−タ処理装置
JPS61267135A (ja) * 1985-05-21 1986-11-26 Nec Corp デ−タ処理装置
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5646170A (en) * 1979-09-06 1981-04-27 Ross Operating Valve Co Multiple safety valve
US4670836A (en) * 1983-06-13 1987-06-02 Hitachi, Ltd. Device for detecting an overlap of operands to be accessed
JPS6347834A (ja) * 1986-08-15 1988-02-29 Hitachi Ltd 先行制御方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Buch: K. Hwang, F.A. Briggs "Computer Architecture and parallel Processing", McGraw Hill Book Company, 1984, S. 200-208 *

Also Published As

Publication number Publication date
JPH01177127A (ja) 1989-07-13
US5075849A (en) 1991-12-24
JP2667849B2 (ja) 1997-10-27
DE3900246C2 (de) 1992-01-23

Similar Documents

Publication Publication Date Title
DE3424962C2 (de)
DE3900246C2 (de)
DE68928677T2 (de) Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle
DE69730276T2 (de) Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes
DE2846495A1 (de) Digitales datenverarbeitungssystem
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE69129565T2 (de) Hochleistungsfähiger Emulator mit Pipelining
DE2903349C2 (de) Prozessor und Verfahren zur Datenverarbeitung
DE2317870C2 (de) Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE2755273C2 (de)
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE68927029T2 (de) Pipelineprozessor
DE69414592T2 (de) Ausführung von datenverarbeitungsbefehlen
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE2421130C2 (de)
DE69227348T2 (de) DIVIDIERSCHALTUNG FüR GLEITKOMMAZAHLEN
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE2332971A1 (de) Mikroprogrammsteuersystem
DE68927398T2 (de) Digitale Divisionsschaltung mit einem N/2-Bit-Subtrahierer für N-Subtraktionen
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE69131954T2 (de) Zeichenfolgensuchgerät und -system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: STREHL, P., DIPL.-ING. DIPL.-WIRTSCH.-ING. SCHUEBE

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee