DE4034009A1 - Verfahren zur befehlsabrufsteuerung - Google Patents
Verfahren zur befehlsabrufsteuerungInfo
- Publication number
- DE4034009A1 DE4034009A1 DE4034009A DE4034009A DE4034009A1 DE 4034009 A1 DE4034009 A1 DE 4034009A1 DE 4034009 A DE4034009 A DE 4034009A DE 4034009 A DE4034009 A DE 4034009A DE 4034009 A1 DE4034009 A1 DE 4034009A1
- Authority
- DE
- Germany
- Prior art keywords
- command
- instruction
- ibr
- buffer
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 14
- 239000000872 buffer Substances 0.000 claims description 107
- 230000004044 response Effects 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000002411 adverse Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
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)
- Executing Machine-Instructions (AREA)
Description
Die vorliegende Erfindung betrifft ein Verfahren zur Be
fehlsabrufsteuerung und insbesondere ein solches Be
fehlsabrufverfahren, mit dem Befehle effizient aus einem
Speicher abgerufen werden und einem Befehlsprozessor, der
zur Ausführung einer Datenverarbeitung eine Befehlsab
folge verarbeitet, zugeführt werden.
Bisher wurde für Datenverarbeitungs-Befehlsprozessoren
eine Befehlsabrufsteuerung verwendet, in der aus einer
Mehrzahl von Befehlspuffern im voraus Befehle abgerufen
werden, um eine Befehlsverarbeitung mit hoher Geschwin
digkeit auszuführen. Bei einer derartigen Steuerung für
den Vorabruf von Befehlen wird an den Speicher eine Be
fehlsleseanforderung ausgegeben (was im folgenden manch
mal als erster Befehlsabruf bezeichnet wird), sobald ein
Teil der Befehlspuffer bei fortschreitender Befehls
verarbeitung in einen leeren Zustand gelangt, um zu ver
hindern, daß sämtliche Befehlspuffer leer sind. Um die
Verarbeitungsleistung zu erhöhen, wird bei der Verarbei
tung eines Sprungbefehls an die Mehrzahl der Befehlspuf
fer eine Sprungzielbefehl-Leseanforderung ausgegeben,
wenn der Sprungbefehl dekodiert wird oder wenn aus der
vergangenen Verarbeitung das Auftreten eines Sprungbe
fehls vorhergesagt wird (diese Befehlsabfrage wird im
folgenden manchmal als zweiter Befehlsabruf bezeichnet;
sie ist beispielsweise aus JP 59-91 552-A (1984) bekannt).
Beispielsweise wird in JP 62-77 648-A (1987) für die Be
fehlsvorabrufsteuerung dieses Typs ein Verfahren vorge
schlagen, in dem unabhängig davon, ob der Befehlspuffer
sich in einem leeren Zustand befindet, eine Befehlsle
seanforderung an den Speicher ausgegeben wird und in dem
die Befehlsleseanforderung, mit der ein Befehl abgerufen
und dem Befehlspuffer zugeführt wird, akzeptiert wird,
wenn der Befehlspuffer leer ist, während die Befehlsle
seanforderung nicht akzeptiert wird, wenn der Befehlspuf
fer nicht leer ist.
Es ist festzustellen, daß es zur kontinuierlichen Sicher
stellung des Vorliegens einer angemessenen Anzahl von Be
fehlen in den Befehlspuffern notwendig ist, daß eine Be
fehlsleseanforderung ausgegeben wird, sobald die Leerka
pazität beispielsweise 8 Bytes erreicht, sofern der Be
fehlspuffer eine Kapazität von 32 Bytes besitzt. In die
sem Fall wird die Menge der Befehle, die aufgrund einer
Befehlsleseanforderung abgerufen werden müssen, verhält
nismäßig klein.
Da bei der zweiten Befehlsabfrage sämtliche Befehlspuffer
geleert werden, ist es notwendig, die abgerufenen Befehle
unverzüglich in den Befehlspuffern zu speichern. In die
sem Fall ist es daher wünschenswert, aufgrund einer Be
fehlsleseanforderung soviel Befehle wie möglich abzuru
fen.
Aus diesen Gründen wird in einer herkömmlichen Vorabruf
steuerung die Menge der bei einer Befehlsleseanforderung
abzurufenden Befehle so gesteuert, daß sie an die für den
zweiten Befehlsabruf erforderliche Menge angepaßt wird,
was den hiervon betroffenen Hardware-Umfang und die Ver
arbeitungsleistung nachteilig beeinflußt. Bei der Imple
mentierung des ersten Befehlsabrufs wird daher nur eine
feste Länge, beginnend am Anfang des abgerufenen Befehls,
im Befehlspuffer gespeichert, während der Rest unbearbei
tet bleibt. Wenn beispielsweise angenommen wird, daß der
Befehlspuffer wie im obigen Fall eine Kapazität von 32
Bytes besitzt, werden durch eine Anforderung nur 16 Bytes
des Befehls der 32 Bytes abgerufen. In diesem Fall werden
bei der zweiten Befehlsabfrage die Befehlsleseanforderun
gen zweifach ausgegeben, um so den 32-Byte-Befehlspuffer
mit den abgerufenen Befehlen zu füllen, während bei der
ersten Befehlsabfrage die ersten 8 Bytes der 16 abgerufe
nen Bytes im Befehlspuffer gespeichert werden und die
letzten 8 Bytes unbearbeitet bleiben.
Wenn ein Sprungzielbefehl abgerufen wird, steigt die Häu
figkeit der Befehlsleseanforderungen mit steigender An
zahl der Befehlspuffer. In den Fällen, in denen ein
Sprungzielbefehl aufgrund der auf den vergangenen Ablauf
gestützten Vorhersage des Auftretens eines Sprungbefehls
abgerufen wird, findet der Abruf im Vergleich zu einem
Abruf der Sprungzielbefehle, bei dem der Sprungbefehl de
kodiert wird, früher statt, wodurch die Häufigkeit der
Befehlsleseanforderungen weiter erhöht wird.
Wie oben beschrieben, steigt in der Befehlsabrufsteuerung
des Standes der Technik die Häufigkeit der zweiten Be
fehlsleseanforderung an, wenn der erste Befehl mit kon
stanter Frequenz abgerufen wird, was zu Kollisionen zwi
schen den Befehlsleseanforderungen führt. Dies hat zur
Folge, daß der zusätzliche Speicherplatzbedarf ansteigt,
was zu einer Verringerung der Gesamtverarbeitungsleistung
führt.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein
Verfahren zur Befehlsabrufsteuerung zu schaffen, mit dem
die Anzahl der ersten Befehlsleseanforderungen verringert
werden kann, um eine Abnahme der Verarbeitungsleistung,
die aufgrund von Kollisionen zwischen den Befehlslesean
forderungen verursacht wird, zu verhindern und so die
Verarbeitungsleistung zu verbessern.
Diese Aufgabe wird erfindungsgemäß gelöst durch ein Ver
fahren zur Befehlsabrufsteuerung für eine Mehrzahl von
Befehlspuffern, das eine Befehlsleseanforderung an einen
Speicher ausgibt, wenn ein Teil der Befehlspuffer in
einen leeren Zustand gelangt und ein abgerufener Befehl
in dem in einem leeren Zustand sich befindenden Befehls
puffer gespeichert wird. Für das erfindungsgemäße Verfah
ren wird ein Zustandsbit-Auffangflipflop vorgesehen, mit
dem ein weiterer Befehlspuffer spezifiziert wird, der in
einen leeren Zustand gelangt, wenn der in ihm gespei
cherte Befehl an einen Dekoder übertragen wird; weiterhin
wird in dem erfindungsgemäßen Verfahren die Menge der im
Befehlspuffer zu speichernden Befehle entsprechend der
Ausgabe des Zustandsbit-Auffangflipflops variiert,
schließlich wird der abgerufene Befehl erfindungsgemäß in
dem in einem leeren Zustand sich befindenden Befehlspuf
fer gespeichert.
In dem erfindungsgemäßen Verfahren zur Befehlsabrufsteue
rung läuft die Befehlsverarbeitung in einem Befehlspro
zessor ab, gefolgt vom Abruf des Befehls aus dem Befehls
puffer. Wenn der Befehl abgerufen und dekodiert wird und
der dekodierte Befehl an den Befehlsprozessor geliefert
wird, wird ein Zustandsbit-Auffangflipflop so gesetzt,
daß es den Zustand des abgefragten Befehlspuffers an
zeigt, so daß mitgeteilt wird, daß sich der entsprechende
Befehlspuffer in einem leeren Zustand befindet.
Wenn das Zustandsbit-Auffangflipflop gesetzt wird und der
leere Befehlspuffer ermittelt wird, wird an den Speicher
eine Befehlsleseanforderung übertragen, um den Befehl im
leeren Befehlspuffer zu speichern. Selbst wenn in einem
Zeitintervall, in dem vom Speicher eine Antwort auf die
Befehlsleseanforderung ausgegeben wird, vom Befehlspuffer
ein weiterer Befehl abgefragt wird und wenn festgestellt
wird, daß der folgende Bereich des Befehlspuffers leer
geworden ist, wird die Befehlsleseanforderung für den be
treffenden leeren Befehlspuffer solange unterdrückt, bis
vom Speicher aufgrund der vorhergehenden Befehlslesean
forderung ein Signal zurückgegeben worden ist und der ab
gefragte Befehl im vorhergehenden, in einem leeren Zu
stand sich befindenden Befehlspuffer gespeichert worden
ist. Die Antwort vom Speicher wird unverzüglich zurückge
geben, wenn der abzufragende Befehl im Speicher vorhanden
ist. Wenn jedoch ein Bereich des Speichers, in dem sich
der abzufragende Befehl befindet, ausgelagert ist und da
her nicht im Speicher vorhanden ist, wird keine Antwort
zurückgegeben, bis die Blockübertragung beendet ist und
der Befehl im Speicher gespeichert ist. Wenn daher der
nächste Befehl vom Befehlspuffer abgerufen wird und der
folgende Befehlspuffer während des Zeitintervalls, in dem
die Antwort vom Speicher zurückgegeben wird, in einen
leeren Zustand gelangt, wird der abgefragte Befehl im
vorgehenden leeren Befehlspuffer und im folgenden leeren
Befehlspuffer gespeichert, sobald die Antwort vom Spei
cher zurückgegeben wird. Wenn der nächste Befehl nicht
vom Befehlspuffer abgefragt wird und der folgende
Befehlspuffer während des Zeitintervalls, in dem eine
Antwort vom Speicher zurückgegeben wird, nicht in einen
leeren Zustand gelangt, wird der vom Speicher abgefragte
Befehl im vorhergehenden leeren Befehlspuffer gespei
chert, während im nachfolgenden Befehlspuffer kein näch
ster Befehl gespeichert wird.
Weitere Merkmale und Vorteile der Erfindung sind in den
Unteransprüchen und im Nebenanspruch angegeben.
Die Erfindung wird im folgenden anhand eines bevorzugten
Ausführungsbeispiels mit Bezug auf die Zeichnungen näher
erläutert; es zeigen:
Fig. 1 ein Blockschaltbild des Aufbaus eines wesentli
chen Teils eines Befehlsabrufsteuerabschnitts ei
nes Datenverarbeitungsprozessors gemäß einer Aus
führungsform der vorliegenden Erfindung; und
Fig. 2 eine schematische Darstellung des Aufbaus einer
Befehlsabrufsteuerung.
In Fig. 1 ist der Aufbau des wesentlichen Teils des Be
fehlsabrufsteuerabschnitts eines Befehlsprozessors ge
zeigt. Dieser Bereich umfaßt einen Speicher 1, einen
Schieber 2, Befehlspufferregister IBR3 bis IBR6, einen
Selektor 7, einen Befehlsdekoder 8, eine Befehlsabruf
steuerung 9, einen Befehlsabrufzeiger 10 und ein Be
fehlsabruf-Adressenregister 11. Im Speicher 1 wird eine
zu verarbeitende Befehlsfolge (wobei ein Befehl die Länge
von 4 Bytes besitzt) gespeichert. Die Befehle (4 Befehle)
müssen vom Speicher 1 durch eine Befehlsleseanforderung
abgerufen werden. Die Befehle, die vom Speicher 1 abgeru
fen werden und eine Länge bis zu 16 Bytes besitzen, wer
den durch den Schieber 2 entsprechend einer Abrufadresse
verschoben und dann jedem der Befehlspufferregister IBR3
bis IBR6 zugeführt. Jedes der Befehlspufferregister IBR3
bis IBR6 ist ein Befehlspufferregister, das einen Befehl
mit einer Länge von 4 Bytes speichert; in jedem dieser
Register wird ein Befehl gespeichert. Daher bilden die
Befehlspufferregister IBR3 bis IBR6 ein Befehle spei
cherndes Befehlspufferregister, das eine Kapazität von
insgesamt 16 Bytes besitzt. Es ist festzustellen, daß
aufgrund der Dekodierung eines Befehls ein diesem deko
dierten Befehl entsprechendes Befehlspufferregister ge
leert wird, weil die Befehlslänge eines Befehls 4 Bytes
beträgt.
Nun wird die Operation des Befehlsabrufs beschrieben. Es
wird angenommen, daß die Befehlspufferregister IBR3 bis
IBR6 Befehle speichern und daß der Befehlsabrufzeiger 10
auf das Befehlspufferregister IBR3 zeigt. Der im Befehls
pufferregister IBR3 gespeicherte Befehl wird durch den
Selektor 7 aufgrund des Wählbefehls vom Befehlsabrufzei
ger 10 gewählt und anschließend in den Dekoder 8 eingege
ben. Wenn der in den Dekoder 8 eingegebene Befehl deko
diert wird und ein Dekodiersignal 1d auf hohen Pegel ge
setzt wird, ist das Befehlspufferregister IBR3 aufgrund
der Dekodierung in einen leeren Zustand gelangt, so daß
die Befehlsabrufsteuerung 9 eine Befehlsleseanforderung
1b an den Speicher 1 überträgt, um die Speicherung eines
nächsten Befehls im leeren Befehlspufferregister IBR3 zu
ermöglichen. Zu diesem Zeitpunkt wird der Befehlsabruf
zeiger 10 durch das Dekodiersignal 1d so erhöht, daß er
auf das Befehlspufferregister IBR4 zeigt, in dem der
nächste Befehl gespeichert ist. Ferner wird im Befehlsab
ruf-Adressenregister 11 eine Befehlsabrufadresse ange
zeigt, unter der ein Befehl mit einer Länge von 4 Bytes
vorliegt, der im Befehlspufferregister IBR4 gespeichert
werden soll, um als nächster in den Dekoder 8 eingegeben
zu werden.
Wenn der Befehl im Speicher 1 vorhanden ist, muß ein Ant
wortsignal 1c auf die Befehlsleseanforderung 1b unverzüg
lich vom Speicher 1 zurückgegeben werden. Wenn jedoch im
Speicher 1 der Befehl nicht vorhanden ist, wird eine
Blockübertragung ausgeführt, um dadurch die notwendigen
Daten im Speicher 1 zu speichern; danach muß die Antwort
zurückgegeben werden. Folglich wird in Fällen, in denen
im Speicher 1 der Befehl nicht vorhanden ist, solange
keine Antwort zurückgegeben, bis die Blockübertragung ab
geschlossen ist.
Solange daher nach der Übertragung der Befehlsleseanfor
derung 1b das Antwortsignal 1c vom Speicher 1 noch nicht
zurückgegeben worden ist, wird der Befehlsabrufzeiger
dann, wenn die Befehlsverarbeitung fortschreitet, wenn
der Befehl im nächsten Befehlspufferregister IBR4 deko
diert wird und wenn das Dekodiersignal 1d erneut einen
hohen Pegel besitzt, so erhöht, daß der Inhalt des Be
fehlsabruf-Adressenregisters 11 ähnlich wie im obigen
Fall, in dem der Befehlsabrufzeiger 10 so erhöht worden
ist, daß er auf das Befehlspufferregister IBR4 zeigt, auf
eine als nächste abzurufende Befehlsabrufadresse aktuali
siert. Zu diesem Zeitpunkt überträgt die Befehlsabruf
steuerung 9 keine Befehlsleseanforderung für den im Be
fehlspufferregister IBR4 zu speichernden Befehl, weil das
Antwortsignal 1c auf die Befehlsleseanforderung für den
im Befehlspufferregister IBR3 zu speichernden Befehl vom
Speicher 1 bisher nicht zurückgegeben worden ist.
Wenn das Antwortsignal 1c vom Speicher 1 schließlich zu
rückgegeben wird, überträgt die Befehlsabrufsteuerung 9
vor dem Dekodieren des Befehls, der im den nächsten Be
fehl speichernden Befehlspufferregister IBR5 enthalten
ist, ein Befehlsspeichersignal 1a, um dadurch den abgeru
fenen Befehl im Befehlspufferregister IBR3, das vorher in
einen leeren Zustand gelangt ist, zu speichern. Dann
überträgt die Befehlsabrufsteuerung 9 das Befehlsspei
chersignal 1a auch an das Befehlspufferregister IBR4, das
im Anschluß an die Leerung des Befehlspufferregisters
IBR3 geleert worden ist.
Wie oben beschrieben, wird der Befehl, der nach der Rück
gabe des Antwortsignals 1c durch den Speicher 1 vom Spei
cher 1 abgerufen wird, vom Schieber 2 entsprechend der
Abrufadresse verschoben und in Abhängigkeit davon, wel
ches der Befehlspufferregister sich in einem leeren Zu
stand befindet, in eines der Befehlspufferregister IBR3
bis IBR6 eingegeben. Genauer wird der Befehl durch das an
das Befehlspufferregister IBR3 gerichtete Befehlsspei
chersignal 1a im Befehlspufferregister IBR3 gespeichert,
während der Befehl durch das auf das Befehlspufferregi
ster IBR4 gerichtete Befehlsspeichersignal 1a im Befehls
pufferregister IBR4 gespeichert wird. D. h., daß die abge
rufenen Befehle in den Befehlspufferregistern IBR3 und
IBR4, die vorher geleert worden sind, gespeichert werden.
Wenn der im Befehlspufferregister IBR4 befindliche Befehl
während eines Zeitintervalls zwischen der Übertragung der
Befehlsleseanforderung an den Speicher 1 und der Rückgabe
des Antwortsignals vom Speicher 1 nicht dekodiert worden
ist, befindet sich nur das Befehlspufferregister IBR3 in
einem leeren Zustand, so daß nach Rückgabe der Antwort
der vom Speicher 1 abgerufene Befehl nur im Befehlspuf
ferregister IBR3 gespeichert wird. Wenn der im Befehls
pufferregister IBR4 gespeicherte Befehl dekodiert wird
und folglich das Befehlspufferregister IBR4 geleert wird,
wird eine neue Befehlsleseanforderung übertragen, um den
Befehl im Befehlspufferregister IBR4 zu speichern.
In Fig. 2 ist eine Logikschaltung zur Erläuterung von
Einzelheiten des Aufbaus der Befehlsabrufsteuerung 9 ge
zeigt. In Fig. 2 bezeichnen die Bezugszeichen 12 bis 17
Verzögerungs-Auffangflipflops, die Bezugszeichen 18 bis
21 UND-Gatter, die Bezugszeichen 22 bis 25 Zustandsbit-
Auffangflipflops, die den leeren Zustand eines jeden der
Befehlspufferregister anzeigen und so angeordnet sind,
daß sie den jeweiligen Befehlspufferregistern IBR3 bis
IBR6 entsprechen, das Bezugszeichen 26 ein NOR-Gatter und
die Bezugszeichen 27 bis 31 UND-Gatter. Es wird festge
stellt, daß das Dekodiersignal 1d so beschaffen ist, daß
es sich vom Antwortsignal 1c vom Speicher 1 in bezug auf
seine Phase unterscheidet und nicht gleichzeitig mit dem
Antwortsignal 1c einen hohen Pegel besitzt.
Wenn sämtliche Befehlspufferregister IBR3 bis IBR6 Be
fehle speichern, werden die Werte der Zustandsbit-Auf
fangflipflops 22 bis 25 auf "0" gesetzt. Wenn der im Be
fehlspufferregister IBR3 vorhandene Befehl durch den Se
lektor 7 mittels des Befehls vom Befehlsabrufzeiger 10 an
den Dekoder 8 übertragen wird und dekodiert wird, wird
das Dekodiersignal 1d erzeugt, wodurch die Ausgabe des
Verzögerungs-Auffangflipflops 12 auf hohen Pegel gesetzt
wird. Zu diesem Zeitpunkt werden sämtliche Zustandsbit-
Auffangflipflops 22 bis 25 auf "0" gesetzt, so daß die
Ausgabe des NOR-Gatters 26 hohen Pegel besitzt und somit
auch die Ausgabe des UND-Gatters 27 hohen Pegel besitzt
und die Befehlsleseanforderung 1b an den Speicher 1 über
trägt. Die Daten vom Befehlsabrufzeiger 10 stellen die
Eingabe an die Verzögerungs-Auffangflipflops 13 bis 16
dar. Wenn in dieser Ausführungsform die Daten des Be
fehlsabrufzeigers 10 auf das Befehlspufferregister IBR3
zeigen, wird nur die Ausgabe des Verzögerungs-Auffang
flipflops 13 auf hohen Pegel gesetzt, während die Ausga
ben der restlichen Verzögerungs-Auffangflipflops auf
niedrigem Pegel bleiben. Dadurch werden nur die Ausgabe
des UND-Gatters 18 und des Zustands-Auffangflipflops 22
auf hohen Pegel ("1") gesetzt, während die anderen Zu
standsbit-Auffangflipflops 23 bis 25 ungeändert auf nied
rigem Pegel bleiben.
Wenn die Befehlsverarbeitung während eines Zeitintervalls
bis zur Rückgabe der Antwort vom Speicher 1 und der Deko
dierung des im Befehlspufferregister IBR4 gespeicherten,
nächsten Befehls fortschreitet, wird wie in den oben be
schriebenen Fällen das Verzögerungs-Auffangflipflop 12
durch das Dekodiersignal 1d auf hohen Pegel gesetzt. Au
ßerdem wird die Ausgabe des Verzögerungs-Auffangflipflops
14 durch ein Signal vom Befehlsabrufzeiger 10 auf hohen
Pegel gesetzt, so daß die Ausgabe des UND-Gatters 19 ho
hen Pegel besitzt, so daß das Zustandsbit-Aufffang
flipflop 23 den Wert "1" ausgibt. Es wird jedoch festge
stellt, daß zu diesem Zeitpunkt keine Befehlsleseanforde
rung 1b an den Speicher 1 übertragen wird, weil das Zu
standsbit-Auffangflipflop 22 bereits auf den Wert "1" ge
setzt worden ist, so daß die Ausgabe des NOR-Gatters 26
und damit die Ausgabe des UND-Gatters 27 niedrigen Pegel
besitzen.
Wenn anschließend vom Speicher 1 das Antwortsignal 1c vor
dem Dekodieren des Befehls im Befehlspufferregister IBR5
zurückgegeben wird, wird die Ausgabe des Verzögerungs-
Auffangflipflops 17 auf hohen Pegel gesetzt. Da in diesem
Fall beide Zustandsbit-Auffangflipflops 22 und 23 auf den
Wert "1" gesetzt worden sind, besitzen die Ausgaben der
UND-Gatter 28 und 29 jeweils hohen Pegel, so daß das Be
fehlsspeichersignal 1a an die Befehlspufferregister IBR3
bzw. IBR4 übertragen werden. Wenn das Befehlsspeichersi
gnal 1a über die UND-Gatter 28 bzw. 29 aufgrund der Aus
gabe des Verzögerungs-Auffangflipflops 17 an die Befehls
pufferregister IBR3 und IBR4 übertragen worden ist, wer
den die Zustandsbit-Auffangflipflops 22 und 23 auf den
Wert "0" zurückgesetzt. Ebenso wird bei fortschreitender
Befehlsverarbeitung, nach dem Dekodieren des im Befehls
pufferregister IBR5 gespeicherten Befehls und nach der
Erzeugung des Dekodiersignals 1d das Verzögerungs-Auf
fangflipflop 12 ebenso wie das NOR-Gatter 26 auf hohen
Pegel gesetzt, so daß die Befehlsleseanforderung 1b vom
UND-Gatter 27 an den Speicher 1 übertragen wird.
Wie oben beschrieben worden ist, wird erfindungsgemäß die
Menge der im Befehlspuffer zu speichernden Befehle ent
sprechend der leeren Zustände im Befehlspuffer variiert,
so daß im Befehlspuffer eine Mehrzahl von aufgrund einer
Befehlsleseanforderung abgerufenen Befehlen in den leeren
Befehlspuffern gespeichert werden können. Dadurch ist es
möglich, die Anzahl der Ausgaben von Befehlsleseanforde
rungen zu verringern, wodurch eine Absenkung der Verar
beitungsleistung, die durch Kollisionen zwischen Befehls
leseanforderungen verursacht wird verhindert werden kann.
Claims (5)
1. Verfahren zur Befehlsabrufsteuerung für die
Steuerung einer Mehrzahl von Befehlsregistern (IBR3 bis
IBR6), das an einen Speicher (1) eine Befehlsleseanforde
rung (1b) ausgibt, wenn sich ein Teil der Befehlspuffer
(IBR3 bis IBR6) in einem leeren Zustand befindet, und das
einen abgerufenen Befehl in einem der in einem leeren Zu
stand befindlichen Befehlspuffer (IBR3 bis IBR6) spei
chert,
gekennzeichnet durch die Schritte
des Bestimmens eines weiteren Befehlspuffers, der nach dem Übertragen eines in ihm gespeicherten Befehls an einen Dekoder (8) als nächster in einen leeren Zustand gelangt, mittels eines Zustandsbit-Auffangflipflops (22 bis 25), so daß die Menge der im Befehlspuffer zu spei chernden Befehle entsprechend der Ausgabe des Zustands bit-Auffangflipflops (22 bis 25) variiert werden kann; und
des Speicherns des abgerufenen Befehls in demje nigen Befehlspuffer, der als nächster in einen leeren Zu stand gelangt ist.
des Bestimmens eines weiteren Befehlspuffers, der nach dem Übertragen eines in ihm gespeicherten Befehls an einen Dekoder (8) als nächster in einen leeren Zustand gelangt, mittels eines Zustandsbit-Auffangflipflops (22 bis 25), so daß die Menge der im Befehlspuffer zu spei chernden Befehle entsprechend der Ausgabe des Zustands bit-Auffangflipflops (22 bis 25) variiert werden kann; und
des Speicherns des abgerufenen Befehls in demje nigen Befehlspuffer, der als nächster in einen leeren Zu stand gelangt ist.
2. Verfahren zur Befehlsabrufsteuerung gemäß An
spruch 1, dadurch gekennzeichnet, daß das Zustandsbit-
Auffangflipflop (22 bis 25) zum Bestimmen desjenigen Be
fehlspuffers, der nach der Übertragung des in ihm gespei
cherten Befehls an den Dekoder (8) als nächster in einen
leeren Zustand gelangt, durch die logische Verknüpfung
der abgerufenen Daten eines Befehlsabrufzeigers (10) zum
Bestimmen des Befehlspuffers mit einem den Abschluß der
Dekodierung des Befehls anzeigenden Dekodiersignal (1d)
gesetzt und gemäß seiner eigenen Ausgabe durch den Befehl
eines Antwortsignals (1c), das aufgrund des Abrufs des
Befehls vom Speicher (1) ausgegeben wird, zurückgesetzt
wird.
3. Verfahren zur Befehlsabrufsteuerung gemäß An
spruch 1, dadurch gekennzeichnet, daß die an den Speicher
(1) zu übertragende Befehlsleseanforderung (1b) an den
Speicher (1) übertragen wird, wenn der im Befehlspuffer
gespeicherte Befehl abgerufen wird, wenn der Befehl dem
Dekoder (8) zugeführt wird und wenn ein den Abschluß der
Dekodierung des Befehls angebendes Dekodiersignal (1d)
vom Dekoder (8) erzeugt wird.
4. Verfahren zur Befehlsabrufsteuerung gemäß An
spruch 1, dadurch gekennzeichnet, daß
ein im nachfolgenden Befehlspuffer gespeicherter nächster Befehl abgerufen wird, nachdem ein im vorherge henden Befehlspuffer gespeicherter vorhergehender Befehl abgerufen worden ist und das dem vorher abgerufenen Be fehlspuffer entsprechende Zustandsbit-Auffangflipflop (22 bis 25) mittels eines den Abschluß der Dekodierung anzei genden Dekodiersignals (1d) vom Dekoder (8) so instruiert worden ist, daß es den leeren Zustand des ihm zugeordne ten Befehlspuffers anzeigt; und
die Übertragung einer nächsten Befehlsleseanfor derung (1b) selbst dann, wenn das Zustandsbit-Auffang flipflop (22 bis 25) des abgerufenen Befehlspuffers so instruiert ist, daß es einen leeren Zustand anzeigt, so lange unterdrückt wird, bis ein Antwortsignal (1c) auf die Befehlsleseanforderung (1b) des vorhergehenden Be fehls vom Speicher (1) zurückgegeben wird und der vom Speicher (1) abgerufene Befehl in demjenigen Befehlspuf fer gespeichert worden ist, der so angeordnet ist, daß er aufgrund eines Befehlsspeichersignals (1a) als erster in einen leeren Zustand gelangt.
ein im nachfolgenden Befehlspuffer gespeicherter nächster Befehl abgerufen wird, nachdem ein im vorherge henden Befehlspuffer gespeicherter vorhergehender Befehl abgerufen worden ist und das dem vorher abgerufenen Be fehlspuffer entsprechende Zustandsbit-Auffangflipflop (22 bis 25) mittels eines den Abschluß der Dekodierung anzei genden Dekodiersignals (1d) vom Dekoder (8) so instruiert worden ist, daß es den leeren Zustand des ihm zugeordne ten Befehlspuffers anzeigt; und
die Übertragung einer nächsten Befehlsleseanfor derung (1b) selbst dann, wenn das Zustandsbit-Auffang flipflop (22 bis 25) des abgerufenen Befehlspuffers so instruiert ist, daß es einen leeren Zustand anzeigt, so lange unterdrückt wird, bis ein Antwortsignal (1c) auf die Befehlsleseanforderung (1b) des vorhergehenden Be fehls vom Speicher (1) zurückgegeben wird und der vom Speicher (1) abgerufene Befehl in demjenigen Befehlspuf fer gespeichert worden ist, der so angeordnet ist, daß er aufgrund eines Befehlsspeichersignals (1a) als erster in einen leeren Zustand gelangt.
5. Verfahren zur Befehlsabrufsteuerung für die
Steuerung einer Mehrzahl von Befehlspuffern (IBR3 bis
IBR6), das an einen Speicher (1) eine Befehlsleseanforde
rung (1b) ausgibt, wenn ein Teil der Befehlspuffer (IBR3
bis IBR6) in einen leeren Zustand gelangt, und das einen
abgerufenen Befehl in einem der in einem leeren Zustand
befindlichen Befehlspuffer (IBR3 bis IBR6) speichert,
gekennzeichnet durch die Schritte
des Abrufens und Dekodierens eines in einem Be fehlspuffer gespeicherten Befehls;
des Zuführens des dekodierten Befehls an einen Befehlsprozessor;
des Ausgebens einer Befehlsleseanforderung (1b) an den Speicher (1), wenn ein leerer Befehlspuffer ermit telt wird;
des Fortschreitens der Befehlsverarbeitung im Be fehlsprozessor und des Abrufens und Dekodierens eines Be fehls von einem Befehlspuffer, bis eine Antwort (1c) auf diese Befehlsleseanforderung (1b) vom Speicher (1) zu rückgegeben wird;
des Unterdrückens des Ausgebens einer Befehlsle seanforderung (1b) zum Speichern des vom Speicher (1) ab gerufenen Befehls im nachfolgenden Befehlspuffer selbst dann, wenn festgestellt wird, daß der nachfolgende Be fehlspuffer in einen leeren Zustand gelangt, solange vom Speicher (1) kein Antwortsignal (1c) auf die Befehlsle seanforderung (1b) zurückgegeben worden ist;
des Speicherns des Befehls in demjenigen Befehls puffer, der früher in einen leeren Zustand gelangt ist, wenn vom Speicher (1) ein Antwortsignal (1c) zurückgege ben wird; und
des Speicherns des Befehls in demjenigen Befehls puffer, der später in einen leeren Zustand gelangt ist.
des Abrufens und Dekodierens eines in einem Be fehlspuffer gespeicherten Befehls;
des Zuführens des dekodierten Befehls an einen Befehlsprozessor;
des Ausgebens einer Befehlsleseanforderung (1b) an den Speicher (1), wenn ein leerer Befehlspuffer ermit telt wird;
des Fortschreitens der Befehlsverarbeitung im Be fehlsprozessor und des Abrufens und Dekodierens eines Be fehls von einem Befehlspuffer, bis eine Antwort (1c) auf diese Befehlsleseanforderung (1b) vom Speicher (1) zu rückgegeben wird;
des Unterdrückens des Ausgebens einer Befehlsle seanforderung (1b) zum Speichern des vom Speicher (1) ab gerufenen Befehls im nachfolgenden Befehlspuffer selbst dann, wenn festgestellt wird, daß der nachfolgende Be fehlspuffer in einen leeren Zustand gelangt, solange vom Speicher (1) kein Antwortsignal (1c) auf die Befehlsle seanforderung (1b) zurückgegeben worden ist;
des Speicherns des Befehls in demjenigen Befehls puffer, der früher in einen leeren Zustand gelangt ist, wenn vom Speicher (1) ein Antwortsignal (1c) zurückgege ben wird; und
des Speicherns des Befehls in demjenigen Befehls puffer, der später in einen leeren Zustand gelangt ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1278983A JPH03139726A (ja) | 1989-10-26 | 1989-10-26 | 命令読出し制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4034009A1 true DE4034009A1 (de) | 1991-05-02 |
DE4034009C2 DE4034009C2 (de) | 1995-02-02 |
Family
ID=17604791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4034009A Expired - Fee Related DE4034009C2 (de) | 1989-10-26 | 1990-10-25 | Verfahren zur Befehlsabrufsteuerung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5267350A (de) |
JP (1) | JPH03139726A (de) |
DE (1) | DE4034009C2 (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH052484A (ja) * | 1991-06-24 | 1993-01-08 | Mitsubishi Electric Corp | スーパースカラプロセツサ |
US6453388B1 (en) | 1992-06-17 | 2002-09-17 | Intel Corporation | Computer system having a bus interface unit for prefetching data from system memory |
US5604909A (en) | 1993-12-15 | 1997-02-18 | Silicon Graphics Computer Systems, Inc. | Apparatus for processing instructions in a computing system |
JPH07200289A (ja) * | 1993-12-28 | 1995-08-04 | Fujitsu Ltd | 情報処理装置 |
WO1996017291A1 (en) * | 1994-12-02 | 1996-06-06 | Intel Corporation | Microprocessor with packing operation of composite operands |
US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US5701508A (en) | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US6792523B1 (en) | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
US5857096A (en) * | 1995-12-19 | 1999-01-05 | Intel Corporation | Microarchitecture for implementing an instruction to clear the tags of a stack reference register file |
US5964863A (en) * | 1996-04-15 | 1999-10-12 | Motorola, Inc. | Method and apparatus for providing pipe fullness information external to a data processing system |
KR100492985B1 (ko) * | 1997-08-27 | 2005-08-25 | 삼성전자주식회사 | 마이크로콘트롤러또는마이크로프로세서의워킹레지스터블락및워킹레지스터블락제어방법 |
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
US7082516B1 (en) * | 2000-09-28 | 2006-07-25 | Intel Corporation | Aligning instructions using a variable width alignment engine having an intelligent buffer refill mechanism |
GB2393270B (en) * | 2002-09-19 | 2005-07-27 | Advanced Risc Mach Ltd | Executing variable length instructions stored within a plurality of discrete memory address regions |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
JPS5991552A (ja) * | 1982-11-17 | 1984-05-26 | Nec Corp | セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 |
JPS6277648A (ja) * | 1985-09-30 | 1987-04-09 | Hitachi Ltd | 命令読出し制御方法 |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51111026A (en) * | 1975-03-26 | 1976-10-01 | Hitachi Ltd | Information management equipment |
JPS54122043A (en) * | 1978-03-15 | 1979-09-21 | Toshiba Corp | Electronic computer |
US4415969A (en) * | 1980-02-07 | 1983-11-15 | Intel Corporation | Macroinstruction translator unit for use in a microprocessor |
JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
US4757445A (en) * | 1983-09-12 | 1988-07-12 | Motorola, Inc. | Method and apparatus for validating prefetched instruction |
US4691279A (en) * | 1984-03-02 | 1987-09-01 | Unisys Corporation | Instruction buffer for a digital data processing system |
US4691277A (en) * | 1984-10-24 | 1987-09-01 | International Business Machines Corp. | Small instruction cache using branch target table to effect instruction prefetch |
JPH0827716B2 (ja) * | 1985-10-25 | 1996-03-21 | 株式会社日立製作所 | データ処理装置及びデータ処理方法 |
-
1989
- 1989-10-26 JP JP1278983A patent/JPH03139726A/ja active Pending
-
1990
- 1990-10-25 DE DE4034009A patent/DE4034009C2/de not_active Expired - Fee Related
- 1990-10-25 US US07/603,998 patent/US5267350A/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
JPS5991552A (ja) * | 1982-11-17 | 1984-05-26 | Nec Corp | セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
JPS6277648A (ja) * | 1985-09-30 | 1987-04-09 | Hitachi Ltd | 命令読出し制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JPH03139726A (ja) | 1991-06-13 |
US5267350A (en) | 1993-11-30 |
DE4034009C2 (de) | 1995-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE69030648T2 (de) | Verfahren zum sequentiellen Vorabruf von 1-Wort-, 2-Wort oder 3-Wort-Befehlen | |
DE10084556B4 (de) | Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen | |
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE3785897T2 (de) | Steuervorrichtung zum vorabruf von befehlen. | |
DE60204687T2 (de) | Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird | |
DE2630323C3 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik | |
DE3689112T2 (de) | Zugriffssteuerungssystem für den Befehlskode. | |
DE19983589B4 (de) | Hochfrequenz-Pipeline-Entkopplungswarteschlangengestaltung | |
DE69031658T2 (de) | Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz | |
DE4034009C2 (de) | Verfahren zur Befehlsabrufsteuerung | |
DE60131864T2 (de) | Speichern von stapeloperanden in registern | |
DE3587167T2 (de) | Geraet zur vektorverarbeitung. | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE69625486T2 (de) | Speichersteuerung zur nicht sequentiellen ausführung von schreibbefehlen | |
DE60008148T2 (de) | System und verfahren zum abrollen von schleifen in einem trace-cache | |
DE3106881A1 (de) | Informationsverarbeitungssystem | |
DE1524166B1 (de) | Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
DE4216905C2 (de) | Superskalarprozessor | |
DE3852562T2 (de) | Datenschreibverfahren für EEPROM. | |
DE4213073A1 (de) | Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus | |
DE69027919T2 (de) | Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher | |
DE68927292T2 (de) | Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |