DE19526008C2 - Befehlsvorholeinheit für einen Computer - Google Patents

Befehlsvorholeinheit für einen Computer

Info

Publication number
DE19526008C2
DE19526008C2 DE19526008A DE19526008A DE19526008C2 DE 19526008 C2 DE19526008 C2 DE 19526008C2 DE 19526008 A DE19526008 A DE 19526008A DE 19526008 A DE19526008 A DE 19526008A DE 19526008 C2 DE19526008 C2 DE 19526008C2
Authority
DE
Germany
Prior art keywords
instruction
address
command
storing
instructions
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
DE19526008A
Other languages
English (en)
Other versions
DE19526008A1 (de
Inventor
Rajendra Kumar
Rajiv Gupta
Jun William S Worley
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE19526008A1 publication Critical patent/DE19526008A1/de
Application granted granted Critical
Publication of DE19526008C2 publication Critical patent/DE19526008C2/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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Description

Die vorliegende Erfindung bezieht sich auf eine Befehlsvor­ holeinheit für einen Computer, der Befehle in einer Pipe­ lineverarbeitung ausführt.
Hochleistungscomputer verwenden typischerweise ein Befehls- Layout, das codiert ist. Bei Computern mit sehr großem Be­ fehlswort (VLIW = Very-Large-Instruction-Word) sind zum Bei­ spiel mehrere Befehle innerhalb eines Befehlswortes codiert. Wenn ein Befehlswort decodiert wird, werden unterschiedliche Befehle, die gleichzeitig in einer Pipeline ausgeführt wer­ den, erhalten. Für den Fall, daß das Befehls-Layout eines Hochleistungscomputers lang ist, wird Speicherplatz für die Befehle eingespart, wenn die Befehle nicht decodiert werden, bis die Befehle ausgegeben werden. Dieser Ansatz erfordert jedoch einen zusätzlichen Taktzyklus oder eine zusätzliche Pipelinestufe, um die Befehle zu decodieren, nachdem sie aus dem Befehls-Cache-Speicher ausgegeben wurden. Ein weiterer Ansatz besteht darin, die Befehle nur für die späteren Stu­ fen in der Speicherhierarchie zu decodieren. Befehle, die in einem sekundären Cache-Speicher gespeichert sind, liegen nämlich in codierter Form vor, würden aber decodiert, bevor sie in einem primären Cache-Speicher gespeichert werden.
Das Problem ist bei Computern größer, die einen Befehl mit variabler Länge verwenden, jedoch gleichzeitig mehrere Ope­ rationen ausgeben. In diesem Fall erfordert, sogar wenn ein zusätzlicher Taktzyklus oder eine zusätzliche Pipelinestufe zum Decodieren vermieden wird, die Bestimmung des nächsten auszugebenden Befehls einen zusätzlichen Zyklus oder eine zusätzliche Stufe in der Pipeline. Der nächste Befehl könnte ein Zielbefehl eines Verzweigungsbefehls oder eine sequen­ tielle Adresse sein. Die sequentielle Adresse kann sich sel­ bst verändern, abhängig davon, wieviele Operationen durch den vorhergehenden Befehl ausgegeben sind.
Die US-A-4,853,889 betrifft eine Anordnung und ein Verfahren zum Beschleunigen der Verarbeitung von Verzweigungsbefehlen in einem Computer, bei der eine Befehlshohleinheit jedem Be­ fehl ein Adreßfeld für den nächsten Befehl (Nächster-Be­ fehl-Adreßfeld) hinzufügt und dieses über einen Befehls- Cache-Speicher an eine Befehlsausführungseinheit ausgibt. Ein Befehl wird an den Cache-Speicher weitergeleitet, nach­ dem das Nächste-Adresse-Feld durch die Befehlshohleinheit bestimmt wurde. Der Befehl und das Nächste-Adresse-Feld werden gleichzeitig an den Befehls-Cache-Speicher und an einer Adresse gespeichert. Das Nächste-Adresse-Feld wird durch die Ausführungseinheit verwendet, um den nächsten in dem Cache-Speicher bereitstehenden Befehl auf der Grundlage des Nächste-Adresse-Feldes zu adressieren. Das Nächste- Adresse-Feld wird gleichzeitig mit dem Befehl ausgelesen.
Ausgehend von diesem Stand der Technik liegt der vorliegen­ den Erfindung die Aufgabe zugrunde, eine Befehlsvorholein­ heit zu schaffen, die die Adresse für einen nächsten Befehl bestimmt, ohne einen zusätzlichen Taktzyklus beim Pipeline- Betrieb verwenden zu müssen.
Diese Aufgabe wird durch eine Befehlsvorholeinheit für einen Computer gemäß Anspruch 1 gelöst.
Allgemein gesprochen bezieht sich die Erfindung auf eine Be­ fehlsvorholeinheit mit einem Befehls-Cache-Speicher, der Speicherzellen für Befehlsdaten von Speicherzellen für eine Sequenzsteuerung trennt, um es zu ermöglichen, daß eine nä­ chste Befehlsadresse in einer Holstufe eines derzeitigen Be­ fehls erzeugt wird. Die Erfindung vermeidet die Notwendig­ keit einer zusätzlichen Stufe in der Pipeline, um die näch­ ste Befehlsadresse zu bestimmen.
Gemäß einem Ausführungsbeispiel schließt die Befehlsvorhol­ einheit einen Vorhol-Puffer zum vorübergehenden Speichern eines codierten Befehls, einen Befehlsdecodierer zum Deco­ dieren des codierten Befehls, der in dem Vorhol-Puffer ge­ speichert ist, um zumindest einen decodierten Befehl und zugehörige Flußsteuerungsdaten zu erzeugen, einen Tag-Puffer zum vorübergehenden Speichern einer Befehlsadresse, die dem codierten Befehl entspricht, und einen Befehls-Cache-Spei­ cher ein.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer Befehlsvorholeinheit gemäß der Erfindung;
Fig. 2 ein Blockdiagramm eines Ausführungsbeispiels des Befehls-Cache-Speichers gemäß der Erfindung;
Fig. 3 ein Zeitverlaufsdiagramm für die vorliegende Erfin­ dung;
Fig. 4 ein Blockdiagramm eines Ausführungsbeispiels einer Einheit zum Bestimmen des nächsten Programmzähl­ werts gemäß der Erfindung; und
Fig. 5 ein weiteres Ausführungsbeispiel der Einheit zur Bestimmung des nächsten Programmzählwerts gemäß der Erfindung.
Fig. 1 ist ein Blockdiagramm einer Befehlsvorholeinheit 2 gemäß der Erfindung. Der Gesamtbetrieb der Befehlsvorholein­ heit 2 besteht darin, einen Befehl zusammen mit seinem zuge­ ordneten Tag zu empfangen und die Befehle (Operationen) einer oder mehreren Funktionaleinheiten eines Verarbeitungs­ systems zuzuführen. Die Funktionaleinheiten führen dann die Befehle aus.
Die Befehlsvorholeinheit 2 schließt einen Vorhol-Puffer 4 ein, der einen Befehl aus einem Befehlsstrom empfängt und den Befehl in dem Vorhol-Puffer 4 speichert. Die empfangenen Befehle sind codiert, weil sie tatsächlich Befehlswörter sind, die (auf eine codierte Art) eine variable Anzahl von Befehlen darstellen. Jeder codierte Befehl könnte zum Bei­ spiel in zwei bis vier Befehle decodiert werden. Die Be­ fehlsvorholeinheit 2 schließt ebenfalls einen Tag-Puffer 6 ein, der ein Tag speichert, das dem Befehl entspricht, der in dem Vorhol-Puffer 4 gespeichert ist. Der Befehl und das Tag, das durch die Befehlsvorholeinheit 2 empfangen wurden, können zum Beispiel von einem Cache-Speicher niedrigerer Ordnung oder von einem Haupt-Speicher kommen. In jedem Fall führt der Tag-Puffer 6 ein gespeichertes Tag einem Multi­ plexer 7 zu, und der Vorhol-Puffer 7 führt den Befehl oder die Befehle, die in dem Vorhol-Puffer 4 gespeichert sind, einem Befehlsdecodierer 8 zu. Der Befehlsdecodierer 8 ist wirksam, um die Befehle zu decodieren, bevor sie in einen primären Befehls-Cache-Speicher 10 geladen werden. Die de­ codierten Befehle werden dann von dem Befehls-Cache-Speicher 10 einem Befehls-Puffer 12 und weiter den verschiedenen Funktionaleinheiten des Verarbeitungssystems zugeführt.
Der Ausgang des Multiplexers 7 führt dem Befehls-Cache-Spei­ cher 10 ebenfalls eine Adresse zu. Die an den Befehls- Cache-Speicher 10 zugeführte Adresse ist entweder ein Tag, das in dem Tag-Puffer 6 gespeichert ist, oder eine nächste Adresse, die durch eine Schaltung 13 zum Bestimmen einer nächsten Adresse bestimmt wurde. Die Schaltung 13 zum Be­ stimmen der nächsten Adresse empfängt Sequenzsteuerungsin­ formationen von dem Befehls-Cache-Speicher 10 und verwendet diese Informationen in Verbindung mit einer derzeitigen Ad­ resse, um die nächste Adresse zu bestimmen. Die Sequenz­ steuerungsinformationen können zum Beispiel anzeigen, daß der derzeitige Befehl eine Verzweigungsoperation, von der vorhergesagt ist, daß sie durchgeführt wird oder nicht durchgeführt wird, ein Wortbefehl, durch den zwei Befehle gleichzeitig ausgegeben werden, oder ein Wortbefehl ist, durch den drei Befehle gleichzeitig ausgegeben werden.
Obwohl die Erfindung codierte Befehle verwendet, um die Codedichte zu erhöhen, werden die Befehle decodiert, bevor sie in den primären Befehls-Cache-Speicher 10 geschrieben werden. Da die Befehle vor ihrer Speicherung in den Be­ fehls-Cache-Speicher 10 decodiert werden, ist ein extra Taktzyklus oder eine zusätzliche Pipelinestufe nicht erfor­ derlich, um die Befehle vor ihrer Ausführung zu decodieren. Dies ist vorteilhaft, da der zusätzliche Taktzyklus oder die zusätzliche Pipelinestufe den Mehraufwand bei Verzweigungs­ befehlen im Falle einer fehlerhaften Voraussage erhöhen würde. Durch Speichern der Befehle in einem komprimierten oder codierten Format, während diese auf einer Diskette, in einem Haupt-Speicher oder in einem Cache-Speicher niedri­ gerer Ordnung sind, wird der Speicherplatz in den Speichern auf den niedrigeren Ebenen (zum Beispiel Cache-Speicher der zweiten Ebene, Haupt-Speicher) reduziert, wohingegen jedoch der primäre Befehls-Cache-Speicher 10 relativ klein gehalten wird. Dieser Ansatz reduziert ebenfalls die Länge der Aus­ führungspipeline, da die Befehlsdecodierung nicht benötigt wird, wenn die Befehle ausgegeben werden.
Ferner ermöglicht es die Erfindung, wie es nachfolgend be­ schrieben wird, daß eine nächste Adresse in einer Hol-Stufe eines derzeitigen Befehls erzeugt wird. Dieses Merkmal ist sehr vorteilhaft, da es die Notwendigkeit einer zusätzlichen Stufe in der Pipeline des Computersystems, das die Befehle ausführt, ausschließt, die ansonsten erforderlich wäre, um die nächste Befehlsadresse zu bestimmen.
Fig. 2 ist ein Blockdiagramm eines Ausführungsbeispiels des Befehls-Cache-Speichers 10. Der Befehls-Cache-Speicher 10 ist vollständig assoziativ und schließt eine erste Spei­ cherregion 14, eine zweite Speicherregion 16 und eine dritte Speicherregion 18 ein. Diese drei Speicherregionen sind ge­ trennte Speicherregionen auf einem einzelnen Chip, die durch eine vertikale Partitionierung eines Halbleiterspeichers ge­ bildet sein können.
Die zweite Speicherregion 16 ist genauer gesagt eine Spei­ cher- und Vergleiche-Region. Alternativ kann die zweite Speicherregion 16 an eine Vergleicherschaltung (nicht dar­ gestellt) gekoppelt sein. Die erste Speicherregion 14 spei­ chert die Befehle selbst in ihrer decodierten Form. Die zweite Speicherregion 16 speichert ein Adresstag, das dem entsprechenden decodierten Befehl, der in der ersten Spei­ cherregion 14 gespeichert ist, zugeordnet ist. Die dritte Speicherregion 18 speichert Sequenzsteuerungsdaten, die sich auf den zugeordneten Adresstag und Befehl beziehen. Das heißt, daß jeder Eintrag in der ersten Speicherregion 14 einen entsprechenden Eintrag in der zweiten Speicherregion 16 und in der dritten Speicherregion 18 hat. Bevorzugter­ weise sind die erste und die dritte Speicherregion 14 und 18 Speicher mit wahlfreiem Zugriff (RAM), und die zweite Spei­ cherregion 16 (einschließlich der Vergleicherschaltung) ist ein inhaltsadressierbarer Speicher (CAM = Content-Addres­ sable-Memory).
Der Betrieb des Befehls-Cache-Speichers, der in Fig. 2 dar­ gestellt ist, ist wie folgt. Die zweite Speicherregion 16 empfängt die Adresse für den nächsten Befehl. Diese Adresse wird mit den gespeicherten Adresstags für jeden der Einträge innerhalb der zweiten Speicherregion 16 verglichen. Wenn eine Übereinstimmung gefunden wird, wird die zugeordnete Übereinstimmungsleitung (ML) 20 für den bestimmten Eintrag auf einen hohen Zustand getrieben und in dem Latch 21 zwi­ schengespeichert. Die Latch 21 treiben dann ihrerseits ge­ trennt Wortleitungen (WL) 22 und 22' über Puffer 23. Obwohl die Wortleitungen 22 und 22' beide durch dieselbe Überein­ stimmungsleitung 20 getrieben sind, sind sie voneinander ge­ trennt. Dementsprechend werden sich die kapazitive und die resistive Last, die auf der Wortleitung 22 auftritt, von der kapazitiven und resistiven Last, die auf der Wortleitung 22' auftritt, unterscheiden. Durch den Entwurf ist die kapaziti­ ve und die resistive Last, die auf der Wortleitung 22' auf­ tritt, erheblich kleiner als diejenige, die auf der Wortlei­ tung 22 auftritt, da die dritte Speicherstufe 18 lediglich einige wenige Bits speichert, wohingegen die erste Speicher­ region 14 einen gesamten Befehl speichert, der typischer­ weise zumindest 32 Bit lang ist. Beispielsweise kann jeder Eintrag in der dritten Speicherregion 18 acht Bits spei­ chern, während jeder Eintrag in der ersten Speicherregion 14 256 Bits speichern kann.
In jedem Fall werden, sobald die Wortleitungen 22 und 22' auf ihren hohen Zustand getrieben sind, bestimmte Bitlei­ tungen ihrerseits in einen hohen Zustand getrieben, abhängig von den gespeicherten Bits an dem bestimmten zu lesenden Eintrag. Insbesondere die erste Speicherregion 14 schließt Bitleitungen 24 (BL1, BL2,..., BLn) ein, und die dritte Speicherregion 18 schließt Bitleitungen 28 (BL1,..., BLi, wobei i kleiner ist als n) ein. Die Daten, die aus der er­ sten Speicherregion 14 über die Bitleitungen 24 gelesen wer­ den, sind ein decodierter Befehl, der in einem Befehlspuffer 26 gespeichert ist. Der decodierte Befehl wird danach von dem Befehls-Puffer 26 einer Ausführungspipeline zugeführt, wo der Befehl ausgeführt wird.
Beim nächsten Taktzyklus muß die Befehlsvorholeinheit 2 den nächsten durch die Ausführungspipeline auszuführenden Befehl dem Befehls-Puffer 26 bereitstellen. Wird dem Decodieren eine eigene Stufe in der Ausführungspipeline zugeordnet, kann der nächste Befehl leicht bestimmt werden, wird aber um einen Zyklus zu spät sein. Wenn die Pipeline jedoch keine Decodierungsstufe verwendet, kann die Bestimmung des näch­ sten auszuführenden Befehls schwierig sein. Die normaler­ weise sequentielle Ausgabe von Befehlen kann sich zum Bei­ spiel in einer Sequenz aus zahlreichen Gründen ändern, näm­ lich aufgrund von Verzweigungen oder aufgrund von Befehlen mit variabler Länge. Um die nächste Befehlsadresse rechtzei­ tig für den nächsten Taktzyklus bereitzustellen, muß die nächste Befehlsadresse der zweiten Speicherregion 16 unmit­ telbar vor dem Beginn dieses nachfolgenden Zyklus zugeführt werden.
Herkömmlicherweise würden die Sequenzsteuerungsdaten in der ersten Speicherregion 14 zusammen mit den Befehlsdaten ge­ speichert. Dies verhindert jedoch, daß die nächste Adresse mit dem Beginn des nächsten Zyklus bestimmt wird. Als ein Ergebnis würde es herkömmlicherweise einen vollständigen zu­ sätzlichen Zyklus dauern, um die nächste Adresse zu berech­ nen. Die Verbesserung, die durch die vorliegende Erfindung geschaffen wird, besteht darin, daß die Sequenzsteuerungs­ daten nun von den Befehlsdaten getrennt sind und in einer getrennten Speicherregion derart enthalten sind, daß die Se­ quenzsteuerungsdaten schneller als die Befehlsdaten gelesen werden können. Folglich berechnet eine Einheit 30 zum Be­ stimmen des nächsten Programmzählwertes (PC = Programm Counter) die nächste Befehlsadresse und führt diese der zweiten Speicherregion 16 über Datenleitungen 32 innerhalb des derzeitigen Zyklus zu. Daher ist die Erfindung wirksam, um eine nächste Befehlsadresse während der Holstufe der Pipelineverarbeitung eines derzeitigen Befehls zu bestimmen.
Fig. 3 ist ein Zeitverlaufsdiagramm der Operationen des Be­ fehls-Cache-Speichers 10, das in Fig. 2 gezeigt ist. Das Verarbeitungssystem führt die Operationen oder Befehle in Übereinstimmung mit einem Zeitverlaufstakt (CLK) aus. Wie es dargestellt ist, hat der Zeitverlaufstakt eine Periode P. Bei Hochleistungscomputern, wie zum Beispiel Workstations, ist die Periode P derzeitig zum Beispiel etwa 4 Nanosekunden lang. Während einer ersten Hälfte des Zeitverlaufstaktzyklus erfolgt die Adressbeurteilung in der zweiten Speicherregion 16 (CAM), und der RAM-Speicher in der ersten und der dritten Speicherregion 14 und 18 wird vorgeladen. Während der zwei­ ten Hälfte des Zeitverlauftaktzyklus wird das RAM der ersten und der dritten Speicherregion 14 und 18 gelesen, und die zweite Speicherregion 16 wird vorgeladen.
Die zweite Hälfte des Zeitverlauftaktzyklus wird nun detail­ lierter beschrieben, um den Betrieb und die Vorteile der vorliegenden Erfindung darzustellen. Die Wortleitung (WL-Da­ ten) für die erste Speicherregion 14 wird aktiv oder hoch während der zweiten Hälfte des Zeitverlauftaktzyklus, wie dies dargestellt ist. Im Gegensatz dazu wird die Wortleitung (WL-Br, Sz) für die dritte Speicherregion 18 in der zweiten Hälfte des Zeitverlauftaktzyklus, jedoch vor dem Übergang der Wortleitung (WL-Daten) für die erste Speicherregion 14 (in dem Beispielsfall etwa eine Nanosekunde früher) hoch oder aktiv, wie dies dargestellt ist. Die Bitleitungen 24 und 28 der ersten und der dritten Speicherregion 14, 18, ob­ wohl sie in Fig. 3 nicht dargestellt sind, stabilisieren sich etwa 0,5 Nanosekunden nachdem die entsprechende Wort­ leitung einen hohen Zustand angenommen hat oder aktiv wurde. Danach erfassen die Erfassungsverstärker (S/A) für die erste und die dritte Speicherregion 14, 18 die Datenwerte der Bit­ leitungen 24 und erfassen die Sequenzsteuerungsdaten auf den Bitleitungen 28. Wie es jedoch in Fig. 3 gezeigt ist, haben sich die Sequenzsteuerungsdaten, die aus der dritten Spei­ cherregion 18 ausgelesen wurden, stabilisiert und sind be­ reit, um unmittelbar vor denjenigen aus der ersten Speicher­ region 14 (etwa eine Nanosekunde früher) ausgelesen zu wer­ den. Innerhalb dieses Fensters mit einer Nanosekunde Breite ist die schnelle Hardwareschaltung innerhalb der Einheit 30 zum Bestimmen des nächsten PC (PC = Programm Counter, Pro­ grammzählwert) fähig, die nächste Adresse derart zu berech­ nen, daß bei der ansteigenden Flanke des nächsten Halbtakt­ zyklus nicht nur die Befehlsdaten, die von den Bitleitungen 24 gelesen wurden, in dem Befehls-Puffer 26 gespeichert wer­ den, sondern daß ebenfalls die nächste Adresse in einem Puf­ fer für die nächste Adresse gespeichert werden. Folglich ist zu Beginn des nächsten Taktzyklus die Adresse für den näch­ sten Befehl verfügbar und wird dem Befehls-Cache-Speicher 10 zur Adressbeurteilung zugeführt.
Fig. 4 ist ein Blockdiagramm eines ersten Ausführungsbei­ spiels der Einheit 30 zur Bestimmung des nächsten PC. Die Einheit 30 zur Bestimmung des nächsten PC schließt bei die­ sem Ausführungsbeispiel einen Auswähler 34 und einen Puffer 36 für den nächsten PC ein. Der Auswähler 34 empfängt ver­ schiedene vorbestimmte Adressen an seinen Dateneingängen. Diese Adressen schließen sequentielle Adressen (C + 1, C + 2, und C + 4), eine Unterbrechungsadresse (INT), eine Zieladresse (TGT) und eine Fehlvoraussageadresse ein. Die sequentiellen Adressen C + 1, C + 2, und C + 4 entsprechen jeweils der derzei­ tigen Adresse (C), die um Eins erhöht wurde, der derzeitigen Adresse (C), die um Zwei erhöht wurde und der derzeitigen Adresse (C), die um Vier erhöht wurde.
Bei diesem Ausführungsbeispiel sind mehrere sequentielle Adressen dargestellt, da Hochleistungscomputersysteme im allgemeinen einzelne Befehle oder mehrere Befehle in einem Taktzyklus ausgeben können. Hier ist angenommen, daß das Computersystem entweder einen einzelnen Befehl oder zwei oder vier Befehle gleichzeitig ausgeben kann. Die Unterbre­ chungsadresse (INT) wird zugeführt, so daß im Fall einer Un­ terbrechung die Steuerung zu der Unterbrechungsadresse wei­ terlaufen würde. Die Zieladresse (TGT) ist einer Verzwei­ gungsoperation zugeordnet, und die Fehlvoraussageadresse ist einem vorhergehenden Verzweigungsbefehl zugeordnet, von dem angenommen wurde, daß er durchgeführt oder nicht durchge­ führt wird, wenn tatsächlich das Gegenteil benötigt wurde.
Der Auswähler 34 wählt eine dieser Adressen auf der Grund­ lage von zahlreichen Steuerungsleitungen aus. Die Steuer­ ungsleitungen, die bei diesem Ausführungsbeispiel gezeigt sind, sind ein Vorhersagebit (P), ein Unterbrechungsbit (I), ein oder mehrere Größenbits (Sz) und eins oder mehrere Ver­ zweigungsbits (Br). Wenn das Verzweigungsbit (Br) nicht ge­ setzt ist, wird der Auswähler 34 eine der sequentiellen Adressen auf der Grundlage des einen oder der mehreren Größenbits (Sz) auswählen. Wenn das Unterbrechungsbit ge­ setzt ist, wird der Auswähler 34 die Unterbrechungsadresse (INT) auswählen. Wenn das Verzweigungsbit (Br) gesetzt ist, wird der Auswähler 34 die Zieladresse (TGT) auswählen, wenn das Vorhersagebit (P) ebenfalls gesetzt ist; ansonsten wählt er eine der sequentiellen Adressen aus. Das Vorhersagebit (P) kann statisch durch einen Compiler oder dynamisch durch eine Verzweigungsvorhersageschaltung bestimmt werden. Wenn eine statische Vorhersage verwendet wird, kann das Vorher­ sagebit (P) innerhalb der Sequenzsteuerungsdaten einge­ schlossen sein. Die Fehlvorhersageadresse wird durch den Auswähler 34 ausgewählt, wenn ein Befehl, der immer noch in der Pipeline ist, als die vorhergesagte Verzweigungsadresse ausgewählt wurde und später als fehlerhaft bestimmt wurde. In jedem Fall wird, welche Auswahl durch den Auswähler 34 auch immer getroffen wurde, die ausgewählte Adresse für die nächste Befehlsadresse in dem Puffer 36 für den nächsten PC gespeichert.
Fig. 5 ist ein zweites Ausführungsbeispiel der Einheit 30 zur Bestimmung des nächsten PC. Bei diesem Ausführungsbei­ spiel empfängt ein Multiplexer 38 eine sequentielle Adresse 40 (SEQ), eine Zieladresse 42 (TGT), eine Unterbrechungsad­ resse 44 (INT) und eine Fehlvorhersageadresse 46 (MIS). Der Multiplexer 38 wählt eine dieser Eingangsadressen auf der Grundlage der Steuerungssignale aus. Die Steuerungssignale sind ein Unterbrechungssignal (I) und eine Verzweigung mit Vorhersagesignal (Br & P). Bei dem beispielhaften Fall schließt die Verzweigung mit Vorhersagesignal ein Verzwei­ gungsbit und ein Vorhersagebit ein. Das Verzweigungsbit (Br) gibt an, ob der derzeitige Befehl ein Verzweigungsbefehl ist. Das Vorhersagebit (P) zeigt an, ob vorausgesagt wurde oder nicht, daß die Verzweigung durchgeführt wird. Die se­ quentielle Adresse 40 wird dem Multiplexer 38 über eine Ad­ ditionsschaltung 48 zugeführt, die zu der derzeitigen Ad­ resse einen inkrementalen Wert hinzufügt, der durch einen Multiplexer 50 zugeführt wird. Der Multiplexer 50 wählt den inkrementalen Wert auf der Grundlage der Größe (Sz) des der­ zeitigen Befehls (wenn er decodiert ist) aus. Der inkremen­ tale Betrag kann zum Beispiel 1, 2 oder 4 sein.
Die Fehlvorhersageadresse 46 wird durch eine andere Adress­ pipeline 52 zugeführt, die einen Programmzählwert (PC) für jede der Pipelinestufen (zum Beispiel FDREW) in einer First-In-First-Out Art speichert (First-In-First-Out = der zuerst gespeicherte Wert wird als erster wieder ausgelesen). Die Adressen werden in die alternative Befehlsadresspipeline 52 über einen Multiplexer 54 eingegeben, der die sequentiel­ le Adresse 40 oder die Zieladresse 42 auf der Grundlage der­ selben Steuerungssignale (I, Br & P), wie sie durch den Multi­ plexer 38 verwendet wird, auswählt. Der Ausgang des Multi­ plexers 38 ist die Adresse für den nächsten Befehl, die als nächster PC bekannt ist. Diese Adresse wird ebenfalls der Befehlsadresspipeline 56 zugeführt, die die derzeitige Adresse für jede der Stufen der Ausführungspipeline spei­ chert.
Obwohl die Erfindung anhand eines Computersystems beschrie­ ben wurde, das Befehle mit variabler Länge verwendet, ist die Erfindung gleichermaßen auf den vereinfachten Fall an­ wendbar, bei dem die Befehle eine feste Länge aufweisen, so daß die nächste sequentielle Adresse statisch bekannt ist, oder auf den vereinfachten Fall, in dem keine Vordecodierung notwendig ist. In beiden Fällen würde die Einheit 30 zur Be­ stimmung des nächsten PC, die in Fig. 4 gezeigt ist, ledig­ lich eine einzelne sequentielle Adresse (anstelle von unter­ schiedlichen sequentiellen Adressen) enthalten, und das eine oder die mehreren Größenbits (Sz) wären nicht länger notwen­ dig.
Es kann ebenfalls bevorzugt sein, zwei oder mehr Befehls- Cache-Speicher-Einheiten bereitzustellen. Das Verhalten würde verbessert werden, weil die Cache-Speicher einzeln kleiner sind und daher schneller. Ferner kann in dem Fall von zwei Befehls-Cache-Speichern der andere Cache-Speicher früher ausgelesen werden, während ein Befehl von einem der Befehls-Cache-Speicher ausgegeben wird. Mit zwei Befehls- Cache-Speichern und decodierten Befehlen werden für ein ge­ gebenes Befehlswort einige der decodierten Befehle in dem ersten Cache-Speicher und die restlichen decodierten Befehle in dem zweiten Cache-Speicher gespeichert. In dem Fall, in dem die zwei Befehls-Cache-Speicher codierte Befehle oder Befehle mit fester Länge speichern, könnte ein Cache-Spei­ cher gerade Adressen speichern, und der andere Cache-Spei­ cher könnte ungerade Adressen speichern.

Claims (4)

1. Befehlsvorholeinheit (2) für einen Computer, der Befehle in einer Pipelineverarbeitung ausführt, mit
einem Befehls-Cache-Speicher (10), der einen ersten Ab­ schnitt (14) zum Speichern von Befehlen, einen zweiten Abschnitt (16) zum Speichern von Adresstags, und einen dritten Abschnitt (18), um Sequenzsteuerungsdaten ge­ trennt von den Befehlen in dem ersten Abschnitt (14) zu speichern, wobei der zweite Abschnitt (16) zum Speichern der Adresstags zwei getrennte Schnittstellen (21, 23) zum Treiben von ersten Wortleitungen (22) in dem ersten Abschnitt (14) zum Speichern der Befehle und zum Treiben von zweiten Wortleitungen (22') in dem dritten Abschnitt (18) zum Speichern der Sequenzsteuerungsdaten aufweist, wobei die zweiten Wortleitungen (22') kürzer sind, als die ersten Wortleitungen (22); und
einer Schaltung (30) zum Bestimmen der nächsten Befehls­ adresse abhängig von den Sequenzsteuerungsdaten;
wobei in einem ersten Taktteilzyklus eine Adreßbeurtei­ lung in dem zweiten Abschnitt (16) des Befehls-Cache- Speichers (10) erfolgt;
wobei in einem zweiten Taktteilzyklus der erste und der dritte Abschnitt (14, 18) des Befehls-Cache-Speichers (10) ausgelesen werden (Fig. 3).
2. Befehlsvorholeinheit nach Anspruch 1, mit
einem Vorhol-Puffer (4) zum vorübergehenden Speichern eines Befehls;
einem Befehlsdecodierer (8) zum Decodieren der Befehle, die in dem Vorhol-Puffer (4) gespeichert sind, um zu­ mindest einen decodierten Befehl und zugeordnete Se­ quenzsteuerungsdaten zu erzeugen; und
einem Tag-Puffer (6) zum vorübergehenden Speichern einer Befehlsadresse, die dem Befehl entspricht;
wobei der Vorhol-Puffer (4), der Befehlsdecodierer (8) und der Tag-Puffer (6) dem Befehls-Cache-Speicher (10) vorgeschaltet sind.
3. Befehlsvorholeinheit nach Anspruch 1 oder 2, bei der die Schaltung (30) zum Bestimmen der nächsten Befehlsadresse eine Auswahleinrichtung (34) zum Auswählen entweder einer sequenziellen Adresse (C + 1, C + 2, C + 4) oder einer Zieladresse (INT, TGT) umfaßt.
4. Befehlsvorholeinheit nach einem der Ansprüche 1 bis 3, bei der der Befehls-Cache-Speicher in mehrere Befehls- Cache-Speicher-Einheiten aufgeteilt ist, die im Inter­ leaving-Modus betrieben werden.
DE19526008A 1994-08-31 1995-07-17 Befehlsvorholeinheit für einen Computer Expired - Fee Related DE19526008C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US29917494A 1994-08-31 1994-08-31

Publications (2)

Publication Number Publication Date
DE19526008A1 DE19526008A1 (de) 1996-03-07
DE19526008C2 true DE19526008C2 (de) 1998-09-10

Family

ID=23153614

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19526008A Expired - Fee Related DE19526008C2 (de) 1994-08-31 1995-07-17 Befehlsvorholeinheit für einen Computer

Country Status (4)

Country Link
US (1) US5933850A (de)
JP (1) JP3641031B2 (de)
DE (1) DE19526008C2 (de)
GB (1) GB2293670A (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69424370T2 (de) * 1993-11-05 2001-02-15 Intergraph Corp Befehlscachespeicher mit Kreuzschienenschalter
US6286081B1 (en) * 1998-05-19 2001-09-04 Advanced Micro Devices, Inc. Mechanism for ensuring data coherency during sequential readings of portions of data that changes with time
US6460116B1 (en) * 1998-09-21 2002-10-01 Advanced Micro Devices, Inc. Using separate caches for variable and generated fixed-length instructions
US6223254B1 (en) 1998-12-04 2001-04-24 Stmicroelectronics, Inc. Parcel cache
US6351802B1 (en) 1999-12-03 2002-02-26 Intel Corporation Method and apparatus for constructing a pre-scheduled instruction cache
US6745322B1 (en) * 2000-02-18 2004-06-01 Hewlett-Packard Development Company, Lp. Apparatus and method for conditionally flushing a pipeline upon a failure of a test condition
DE10120522A1 (de) * 2001-04-26 2002-11-07 Infineon Technologies Ag Verfahren zum Erkennen einer korrekten Befehls-Einsprung-Adresse bei Verwendung unterschiedlich langer Befehlsworte
US6976156B1 (en) * 2001-10-26 2005-12-13 Lsi Logic Corporation Pipeline stall reduction in wide issue processor by providing mispredict PC queue and staging registers to track branch instructions in pipeline
US6920550B2 (en) * 2001-11-15 2005-07-19 Hewlett-Packard Development Company, L.P. System and method for decoding and executing program binaries
KR101076815B1 (ko) 2004-05-29 2011-10-25 삼성전자주식회사 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템
US7434000B1 (en) 2004-06-30 2008-10-07 Sun Microsystems, Inc. Handling duplicate cache misses in a multithreaded/multi-core processor
US7383403B1 (en) 2004-06-30 2008-06-03 Sun Microsystems, Inc. Concurrent bypass to instruction buffers in a fine grain multithreaded processor
US7827355B1 (en) * 2004-07-08 2010-11-02 Globalfoundries Inc. Data processor having a cache with efficient storage of predecode information, cache, and method
US8037250B1 (en) 2004-12-09 2011-10-11 Oracle America, Inc. Arbitrating cache misses in a multithreaded/multi-core processor
US20070083711A1 (en) * 2005-10-07 2007-04-12 International Business Machines Corporation Reconfiguring caches to support metadata for polymorphism
US7840786B2 (en) * 2007-04-16 2010-11-23 Advanced Micro Devices, Inc. Techniques for storing instructions and related information in a memory hierarchy
JP2011181000A (ja) * 2010-03-03 2011-09-15 Toshiba Corp コントローラ、半導体記憶装置および半導体記憶装置の制御方法
CN103513957B (zh) * 2012-06-27 2017-07-11 上海芯豪微电子有限公司 高性能缓存方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853889A (en) * 1986-09-03 1989-08-01 American Telephone And Telegraph Company, At&T Bell Laboratories Arrangement and method for speeding the operation of branch instructions
EP0375864A2 (de) * 1988-12-29 1990-07-04 International Business Machines Corporation Cache-Speicherumgehung

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938097A (en) * 1974-04-01 1976-02-10 Xerox Corporation Memory and buffer arrangement for digital computers
DE3068498D1 (en) * 1979-05-09 1984-08-16 Int Computers Ltd Hierarchical data storage system
US4506322A (en) * 1982-02-22 1985-03-19 Texas Instruments Incorporated Read/write memory cell for microcomputer
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
ZA856662B (en) * 1984-08-31 1987-05-27 Raychem Corp Heat stable polymeric gelloids
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
GB2210479B (en) * 1987-10-02 1992-06-17 Sun Microsystems Inc Alias address support.
US5027270A (en) * 1988-10-11 1991-06-25 Mips Computer Systems, Inc. Processor controlled interface with instruction streaming
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5293592A (en) * 1989-04-07 1994-03-08 Intel Corporatino Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
JPH0314025A (ja) * 1989-06-13 1991-01-22 Nec Corp 命令実行制御方式
JPH0740247B2 (ja) * 1989-06-20 1995-05-01 松下電器産業株式会社 キャッシュメモリ装置
JP2505887B2 (ja) * 1989-07-14 1996-06-12 富士通株式会社 命令処理システム
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
JP2879607B2 (ja) * 1990-03-15 1999-04-05 サン・マイクロシステムズ・インコーポレーテッド 機能停止キャッシュを提供する装置と方法
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
DE69231011T2 (de) * 1991-02-08 2000-09-28 Fujitsu Ltd Cachespeicher zur Verarbeitung von Befehlsdaten und Datenprozessor mit demselben
US5479641A (en) * 1993-03-24 1995-12-26 Intel Corporation Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
GB2285154B (en) * 1993-12-24 1998-04-01 Advanced Risc Mach Ltd Branch cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853889A (en) * 1986-09-03 1989-08-01 American Telephone And Telegraph Company, At&T Bell Laboratories Arrangement and method for speeding the operation of branch instructions
EP0375864A2 (de) * 1988-12-29 1990-07-04 International Business Machines Corporation Cache-Speicherumgehung

Also Published As

Publication number Publication date
JP3641031B2 (ja) 2005-04-20
GB9513273D0 (en) 1995-09-06
JPH08320786A (ja) 1996-12-03
GB2293670A (en) 1996-04-03
US5933850A (en) 1999-08-03
DE19526008A1 (de) 1996-03-07

Similar Documents

Publication Publication Date Title
DE19526008C2 (de) Befehlsvorholeinheit für einen Computer
DE4222776C2 (de) Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
DE19983330B4 (de) Computerprozessor mit einem Wiederholsystem mit einem Stufungsabschnitt zum getakteten Verzögern und Verfahren zum Verarbeiten eines Befehls in einem solchen Prozessor
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE69727773T2 (de) Verbesserte Verzweigungsvorhersage in einem Pipelinemikroprozessor
DE4237417C2 (de) Datenverarbeitungssystem
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2555963A1 (de) Einrichtung zur funktionsmodifizierung
DE60006021T2 (de) VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren
DE2364408B2 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE102004013676A1 (de) Schleifenbetrieb mit null Overhead in einem Mikroprozessor mit Anweisungspuffer
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE19824289C2 (de) Pipelineverarbeitungsmaschine
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE10306051A1 (de) Kernparallele Ausführung mit unterschiedlichen Optimierungscharakteristika, um den dynamischen Ausführungsweg zu verringern
DE3307194C2 (de)
EP1079307B1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
DE2617485A1 (de) Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen
DE2906685A1 (de) Instruktionsdecodierer
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
DE4222275A1 (de) Parallelprozessor und betriebsverfahren eines solchen

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