DE4034009C2 - Verfahren zur Befehlsabrufsteuerung - Google Patents

Verfahren zur Befehlsabrufsteuerung

Info

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
Application number
DE4034009A
Other languages
English (en)
Other versions
DE4034009A1 (de
Inventor
Kenji Matsubara
Seiji Nagai
Tohru Shonai
Akihiro Fuseda
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
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 Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Publication of DE4034009A1 publication Critical patent/DE4034009A1/de
Application granted granted Critical
Publication of DE4034009C2 publication Critical patent/DE4034009C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3802Instruction 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.
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.
DE4034009A 1989-10-26 1990-10-25 Verfahren zur Befehlsabrufsteuerung Expired - Fee Related DE4034009C2 (de)

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)

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

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 データ処理装置及びデータ処理方法

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