DE4034009C2 - Verfahren zur Befehlsabrufsteuerung - Google Patents
Verfahren zur BefehlsabrufsteuerungInfo
- Publication number
- DE4034009C2 DE4034009C2 DE4034009A DE4034009A DE4034009C2 DE 4034009 C2 DE4034009 C2 DE 4034009C2 DE 4034009 A DE4034009 A DE 4034009A DE 4034009 A DE4034009 A DE 4034009A DE 4034009 C2 DE4034009 C2 DE 4034009C2
- Authority
- DE
- Germany
- Prior art keywords
- command
- instruction
- memory
- buffer
- read request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 9
- 239000000872 buffer Substances 0.000 claims description 86
- 101100232404 Arabidopsis thaliana IBR3 gene Proteins 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012432 intermediate storage Methods 0.000 claims 1
- 101100232405 Arabidopsis thaliana IBR5 gene Proteins 0.000 description 3
- 230000002411 adverse Effects 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 nach dem Oberbegriff des Patentanspruchs 1.
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 Befehlsverarbeitung wird im
folgenden manchmal als zweiter Befehlsabruf bezeichnet und entspricht dem Begriffpipelining;
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.
Um eine angemessene Anzahl von Be
fehlen in den Befehlspuffern bereitzuhalten, ist es notwendig, 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 Anzahl 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 Aufgabe der vorliegenden Erfindung, ein
Verfahren zur Befehlsabrufsteuerung zu schaffen, mit dem
die Anzahl der Befehlsleseanforderungen verringert
sowie Kollisionen zwischen Befehlslesean
forderungen, d. h. das gleichzeitige Auftreten mehrerer Befehls
leseanforderungen, verhindert werden kann.
Diese Aufgabe wird erfindungsgemäß gelöst durch ein Ver
fahren nach Anspruch 1.
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.
Ausführungsformen der Erfindung sind in den
Unteransprüchen angegeben.
Die Erfindung wird im folgenden anhand eines bevorzugten
Ausführungsbeispiels mit Bezug auf die Zeichnungen näher
erläutert; es zeigt
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. Das heißt, 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 der Ausgang 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ß
der Ausgang des NOR-Gatters 26 auf hohem Pegel liegt und somit
auch der Ausgang des UND-Gatters 27 auf hohem Pegel liegt
und die Befehlsleseanforderung 1b an den Speicher 1 über
trägt. Die Daten vom Befehlsabrufzeiger 10
liegen an den Eingängen der Verzögerungs-Auffangflipflops 13 bis 16
an. Wenn in dieser Ausführungsform die Daten des Be
fehlsabrufzeigers 10 auf das Befehlspufferregister IBR3
zeigen, wird nur der Ausgang des Verzögerungs-Auffang
flipflops 13 auf hohen Pegel gesetzt, während die Ausgänge
der restlichen Verzögerungs-Auffangflipflops auf
niedrigem Pegel bleiben. Dadurch werden nur die Ausgänge
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 der Ausgang des Verzögerungs-Auffangflipflops
14 durch ein Signal vom Befehlsabrufzeiger 10 auf hohen
Pegel gesetzt, so daß der Ausgang des UND-Gatters 19 auf ho
hem Pegel liegt, 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ß der Ausgang des NOR-Gatters 26
und damit der Ausgang des UND-Gatters 27 auf niedrigem Pegel
liegen.
Wenn anschließend vom Speicher 1 das Antwortsignal 1c vor
dem Dekodieren des Befehls im Befehlspufferregister IBR5
zurückgegeben wird, wird der Ausgang 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, liegen die Ausgänge der
UND-Gatter 28 und 29 jeweils auf hohem 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.
Claims (3)
1. Verfahren zur Steuerung des Befehlsabrufs in einer Daten
verarbeitungsanlage, bei dem unter Steuerung durch
eine Befehlsabrufsteuerung (9) Befehle aus einem Speicher
(1) ausgelesen und Befehlspuffern (IBR3 bis IBR6) zur
Zwischenspeicherung zugeführt werden und aus diesen
jeweils ein ausgewählter Befehl an einen Befehlsdekoder
(8) zur Befehlsdekodierung abgegeben wird,
wobei die Befehlsabrufsabrufsteuerung eine Befehlsleseanfor derung an den Speicher ausgibt, wenn der Inhalt eines Befehlspuffers an den Befehlsdekoder abgegeben wurde, dadurch gekennzeichnet,
daß in der Befehlsabrufsteuerung jedem Befehlspuffer ein Zustandsbit-Auffangflipflop (22 bis 25) zugeordnet ist, das gesetzt wird, wenn ein Befehl aus dem zugeordneten Befehlspuffer an den Befehlsdekoder abgegeben wurde,
und daß dann, wenn im Zuge der Befehlsbearbeitung mehrere Befehle aus den Befehlspuffern an den Befehlsdekoder ab gegeben wurden, mehrere Befehle aus dem Speicher in die durch die mehreren gesetzten Zustandsbit-Auffangflipflops bestimmten Befehlspuffer geladen werden.
wobei die Befehlsabrufsabrufsteuerung eine Befehlsleseanfor derung an den Speicher ausgibt, wenn der Inhalt eines Befehlspuffers an den Befehlsdekoder abgegeben wurde, dadurch gekennzeichnet,
daß in der Befehlsabrufsteuerung jedem Befehlspuffer ein Zustandsbit-Auffangflipflop (22 bis 25) zugeordnet ist, das gesetzt wird, wenn ein Befehl aus dem zugeordneten Befehlspuffer an den Befehlsdekoder abgegeben wurde,
und daß dann, wenn im Zuge der Befehlsbearbeitung mehrere Befehle aus den Befehlspuffern an den Befehlsdekoder ab gegeben wurden, mehrere Befehle aus dem Speicher in die durch die mehreren gesetzten Zustandsbit-Auffangflipflops bestimmten Befehlspuffer geladen werden.
2. Verfahren zur Befehlsabrufsteuerung gemäß Anspruch 1,
dadurch gekennzeichnet, daß das Zustandsbit-Auffang
flipflop (22 bis 25) 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 Be
fehl eines Antwortsignals (1c), das aufgrund des Abrufs
des Befehls vom Speicher (1) ausgegeben wird, zurückge
setzt wird.
3. Verfahren zur Befehlsabrufsteuerung gemäß Anspruch 1,
dadurch gekennzeichnet,
daß während der Bearbeitung des Befehlsanforderungssignals eines ersten Befehlspuffers (IBR) ein im nachfolgenden Befehlspuffer gespeicherter nächster Befehl abgerufen werden kann, und
daß die Übertragung einer nächsten Befehlsleseanforderung (1b) solange unterdrückt wird, bis ein Antwortsignal (1c) auf die Befehlsleseanforderung (1b) des vorhergehenden Befehls vom Speicher (1) zurückgegeben wird und der vom Speicher (1) abgerufene Befehl in dem als ersten frei gewordenen Befehlspuffer gespeichert worden ist.
daß während der Bearbeitung des Befehlsanforderungssignals eines ersten Befehlspuffers (IBR) ein im nachfolgenden Befehlspuffer gespeicherter nächster Befehl abgerufen werden kann, und
daß die Übertragung einer nächsten Befehlsleseanforderung (1b) solange unterdrückt wird, bis ein Antwortsignal (1c) auf die Befehlsleseanforderung (1b) des vorhergehenden Befehls vom Speicher (1) zurückgegeben wird und der vom Speicher (1) abgerufene Befehl in dem als ersten frei gewordenen Befehlspuffer gespeichert worden 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 DE4034009A1 (de) | 1991-05-02 |
DE4034009C2 true 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 | 情報処理装置 |
BR9509845A (pt) | 1994-12-02 | 1997-12-30 | Intel Corp | Microprocessador com operação de compactação de elementos de operação compósitos |
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 |
US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
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 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS51111026A (en) * | 1975-03-26 | 1976-10-01 | Hitachi Ltd | Information management equipment |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
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 |
JPS5991552A (ja) * | 1982-11-17 | 1984-05-26 | Nec Corp | セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 |
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 |
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 | 命令読出し制御方法 |
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
Also Published As
Publication number | Publication date |
---|---|
US5267350A (en) | 1993-11-30 |
DE4034009A1 (de) | 1991-05-02 |
JPH03139726A (ja) | 1991-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE4034009C2 (de) | Verfahren zur Befehlsabrufsteuerung | |
DE10084556B4 (de) | Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE2839726C2 (de) | Multiprozessoranlage mit verteilter Steuerarchitektur | |
DE2855106C2 (de) | Einrichtung zur Durchführung von bedingten Verzweigungen | |
DE2231146C3 (de) | Datenverarbeitungsanlage mit virtueller Adressierung | |
DE60131864T2 (de) | Speichern von stapeloperanden in registern | |
DE60204687T2 (de) | Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE2630323A1 (de) | Datenspeichereinrichtung | |
DE2346525B2 (de) | Virtuelle Speichereinrichtung | |
DE1815234A1 (de) | Adressiereinrichtung fuer ein Speichersystem mit einem Grossraumspeicher und einem schnellen Arbeitsspeicher | |
DE1524166B1 (de) | Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage | |
DE4222776A1 (de) | Verfahren und anordnung fuer eine verzweigungsbefehlsverarbeitung in einer parallelverarbeitungseinheit | |
DE1299146B (de) | Befehlssteuereinheit | |
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
DE3302922A1 (de) | Verfahren und vorrichtung fuer speichersteuerungen | |
DE3106881C2 (de) | Datenverarbeitungseinrichtung | |
DE4216905C2 (de) | Superskalarprozessor | |
DE4345028A1 (de) | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen | |
DE1499206C3 (de) | Rechenanlage | |
DE2360303A1 (de) | Datenverarbeitungssystem mit dynamischer adressuebersetzung | |
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage |
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 |