DE4034009A1 - Verfahren zur befehlsabrufsteuerung - Google Patents

Verfahren zur befehlsabrufsteuerung

Info

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
Application number
DE4034009A
Other languages
English (en)
Other versions
DE4034009C2 (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 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.
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.
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.
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 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)

* 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 情報処理装置
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)

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

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

Patent Citations (4)

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