DE10026017A1 - Vorabruf-Puffer - Google Patents
Vorabruf-PufferInfo
- Publication number
- DE10026017A1 DE10026017A1 DE10026017A DE10026017A DE10026017A1 DE 10026017 A1 DE10026017 A1 DE 10026017A1 DE 10026017 A DE10026017 A DE 10026017A DE 10026017 A DE10026017 A DE 10026017A DE 10026017 A1 DE10026017 A1 DE 10026017A1
- Authority
- DE
- Germany
- Prior art keywords
- prefetch buffer
- commands
- prefetch
- data
- command sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 claims abstract description 17
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 4
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Es wird ein Verfahren und eine Vorrichtung zum Erzeugen einer Mehrzahl von ausgerichteten Befehlen aus einer durch eine Speichereinheit zur Verfügung gestellten Befehlsfolge zur Ausführung in einem Pipeline-Mikroprozessor beschrieben. Der Mikroprozessor umfasst einen Vorabruf-Puffer, wobei der Vorabruf-Puffer vorabgerufene Befehle und zusätzliche Informationen über die Gültigkeit und Größe des Vorabruf-Puffers speichert. Der Voraubruf-Puffer dient bei dem Verfahren beziehungsweise in der Vorrichtung zum Puffern eines Teils einer Befehlsfolge. Die aktuell ausgerichtete Befehlsfolge wird durch den Vorabruf-Puffer oder direkt durch aus dem Speicher abgerufene Befehle oder durch eine Kombination von vorabgerufenen Befehlen und aktuell abgerufenen Befehlen ausgegeben.
Description
Die Erfindung betrifft ein Verfahren und eine Anordnung zum
Vor-Abrufen und zum Abgleichen einer Befehlsfolge
(Befehlsstrom), die durch eine Speichereinheit zur Verfügung
gestellt wird. Moderne Mikroprozessoren können mehrere
Befehle parallel ausführen. Solche Mikroprozessoren haben in
allgemeine eine Pipeline-Struktur und umfassen mehrere
Ausführungseinheiten, um Befehle parallel auszuführen. Ein
Mikroprozessor kann zum Beispiel eine Lade- und Speicher-
Ausführungseinheit zum Durchführen von Lade- und Speicher-
Befehlen sowie eine arithmetische logische Einheit zum
Ausführen von Daten beeinflussenden Befehlen umfassen.
Ferner ist es möglich, dass ein 32 Bit Mikroprozessor
Befehle mit variabler Länge, zum Beispiel 16 Bit Befehle und
32 Bit Befehle ausführt.
Um eine solche Pipeline-Struktur mit den entsprechenden
Befehlen aus dem Speicher zu versorgen, wird üblicherweise
eine Anfrage an die Speichereinheit gerichtet. Die
Speichereinheit muss die entsprechende Anzahl von Befehlen
aus dem Speicher laden und der Abruf-Einheit diese Befehle
zuführen. Da Speichersysteme im Vergleich zu
Ausführungseinheiten im allgemeinen langsamer sind, bildet
eine solche Anordnung einen Flaschenhals bei der Ausführung
von Befehlen. Insbesondere dann, wenn es zu einer
sogenannten Grenzüberschreitung kommt, können die
Speichersysteme die angeforderten Daten und Befehle nicht
mit einem einzigen Zugriff abrufen. Ein Speichersystem ist
im allgemeinen in Zeilen und Spalten organisiert. Zu einem
Zeitpunkt kann nur auf eine einzige Zeile zugegriffen
werden. Wenn die Start- und End-Adressen einer angeforderten
Befehlsfolge nicht innerhalb einer einzigen Zeile liegen,
muss das Speichersystem somit die angeforderten Befehle
teilweise aus einer Speicherzeile und teilweise aus der
folgenden Speicherzeile abrufen. Folglich benötigt das
Speichersystem zusätzliche Zyklen, bis alle Informationen
abgerufen worden sind.
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein
Verfahren und eine Vorrichtung zum Erzeugen einer Mehrzahl
von abgeglichenen Befehlen aus einer Befehlsfolge zu
schaffen.
Diese Aufgabe wird mit einem Verfahren und einer Vorrichtung
zum Erzeugen einer Mehrzahl von abgeglichenen Befehlen aus
einer Befehlsfolge, die durch eine Speichereinheit zur
Ausführung in einem Pipeline-Mikroprozessor zur Verfügung
gestellt wird, gelöst. Der Mikroprozessor umfasst einen oder
mehrere Vorabruf-Puffer, wobei die Vorabruf-Puffer
vorabgerufene Befehle und zusätzliche Informationen über die
Gültigkeit und die Größe des Vorabruf-Puffers speichern. Das
Verfahren und die Vorrichtung benutzen die Vorabruf-Puffer
zum Puffern eines Teils einer Befehlsfolge eines Programms.
Die ausgerichtete Befehlsfolge wird entweder aus den
Vorabruf-Puffern oder direkt aus dem Speicher
abgerufenen Befehlen oder aus einer Kombination von
vorabgerufenen Befehlen und tatsächlich abgerufenen Befehlen
zusammengesetzt.
Bei einem Verfahren zum Erzeugen einer Mehrzahl von
ausgerichteten Befehlen aus einer durch eine Speichereinheit
zur Verfügung gestellten Befehlsfolge zur Ausführung in
einem Pipeline-Mikroprozessor gemäß der Erfindung umfasst
der Mikroprozessor einen Vorabruf-Puffer, wobei der
Vorabruf-Puffer vorabgerufene Befehle und zusätzliche
Informationen über die Menge von gültigen Daten in dem
Vorabruf-Puffer speichert. Das Verfahren umfasst folgende
Schritte:
- - in dem Fall, in dem der Vorabruf-Puffer ungültige Daten
enthält:
- 1. a) Anfordern einer Befehlsfolge und Speichern der Befehlsfolge in dem Vorabruf-Puffer;
- 2. b) Setzen der Daten für Gültigkeit in dem Vorabruf-Puffer;
- 3. c) Herausgeben einer angeforderten Anzahl von Befehlen aus der angeforderten Befehlsfolge;
- 4. d) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem Vorabruf-Puffer;
- 5. e) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem Vorabruf-Puffer herausgegeben worden sind;
- 6. in dem Fall, in dem der Vorabruf-Puffer gültige Daten enthält:
- 7. f) Herausgeben einer angeforderten Anzahl von Befehlen aus dem Vorabruf-Puffer;
- 8. g) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem Vorabruf-Puffer;
- 9. h) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem Vorabruf-Puffer herausgegeben worden sind.
Ein zweites erfindungsgemäßes Verfahren zum Erzeugen einer
Mehrzahl von ausgerichteten Befehlen aus einer durch eine
Speichereinheit zur Verfügung gestellten Befehlsfolge zur
Ausführung in einem Pipeline-Mikroprozessor umfasst einen
ersten und einen zweiten Vorabruf-Puffer, wobei die
Vorabruf-Puffer vorabgerufene Befehle und zusätzliche
Informationen über die Menge von gültigen Daten der
Vorabruf-Puffer speichern. Das Verfahren umfasst folgende
Schritte:
- - in dem Fall, in dem beide Vorabruf-Puffer ungültige Daten
umfassen:
- 1. a) Anfordern einer Befehlsfolge und Speichern der Befehlsfolge in dem ersten Vorabruf-Puffer;
- 2. b) Setzen der Daten für Gültigkeit in dem ersten Vorabruf- Puffer;
- 3. c) Herausgeben einer angeforderten Anzahl von Befehlen aus der angeforderten Befehlsfolge;
- 4. d) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem ersten Vorabruf- Puffer;
- 5. e) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem ersten Vorabruf-Puffer herausgegeben worden sind;
- 6. in dem Fall, in dem einer oder beide Vorabruf-Puffer gültige Daten enthalten:
- 7. f) Herausgeben einer angeforderten Anzahl von Befehlen aus einem Vorabruf-Puffer;
- 8. g) In Abhängigkeit davon, wie viele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem einen Vorabruf- Puffer;
- 9. h) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem einen Vorabruf-Puffer herausgegeben worden sind.
Eine erfindungsgemäße Vorrichtung zum Erzeugen einer
Mehrzahl von ausgerichteten Befehlen aus einer durch eine
Speichereinheit zur Verfügung gestellten Befehlsfolge zur
Ausführung in einem Pipeline-Mikroprozessor umfasst:
- - einen ersten, mit der Speichereinheit verbundenen Vorabruf-Puffer, wobei der erste Vorabruf-Puffer vorabgerufene Befehle und zusätzliche Informationen über die Gültigkeit und Größe des ersten Vorabruf-Puffers speichert;
- - eine erste Mehrzahl von Multiplexern mit Eingängen, die mit dem ersten Vorabruf-Puffer und der Speichereinheit zur Auswahl einer bestimmten Anzahl von Befehlen verbunden sind, sowie mit Ausgängen,
- - eine zweite Mehrzahl von Multiplexern mit Eingängen, die mit den Ausgängen der ersten Multiplexer zum Ausrichten der gewählten Befehle verbunden sind.
Diese Vorrichtung kann in einfacher Weise so erweitert
werden, dass sie einen zweiten oder mehr Vorabruf-Puffer
umfasst, um einen Teil der Befehlsfolge eines Programms
zwischenzuspeichern. Die Länge der vorabgerufenen
Befehlsfolge ist von der Größe der Vorabruf-Puffer abhängig.
Die Vorabruf-Puffer umfassen vorzugsweise ein Datenfeld zum
Speichern von zusätzlichen Steuerdaten wie zum Beispiel der
Gültigkeit, der Größe von nicht-herausgegebenen Befehlen der
gespeicherten Befehlsfolge und des Alters, das anzeigt,
welcher Vorabruf-Puffer ältere Daten enthält.
Eine Ausrichteinheit kann in einfacher Weise entweder durch
Multiplexer, Verschieber oder Ringverschieber gebildet
werden. Da bei den bevorzugten Ausführungsformen nur eine
Verschiebung nach rechts auftritt, können anstelle eines
Verschiebers Multiplexer verwendet werden. Natürlich kann
der Verschieber in beiden Richtungen, das heißt in Form
einer Verschiebung nach links und rechts, zum Beispiel in
Abhängigkeit von dem Alter der Daten arbeiten.
Fig. 1 zeigt ein Blockschaltbild einer ersten
Ausführungsform der Erfindung.
Fig. 2 zeigt die Struktur eines Vorabruf-Puffers gemäß der
Erfindung.
Fig. 3 zeigt ein erstes Beispiel für die Verteilung von
Befehlen.
Fig. 4 zeigt ein zweites Beispiel für die Verteilung von
Befehlen.
Fig. 5 zeigt ein drittes Beispiel für die Verteilung von
Befehlen.
Fig. 6 zeigt in Form einer Tabelle, wie die Multiplexer
gemäß Fig. 1 geschaltet werden.
Fig. 7 zeigt eine zweite Ausführungsform der Erfindung.
Gemäß Fig. 1 speichert eine Speichereinheit 1 ein Programm,
das mit einer Mehrzahl von sequentiell gespeicherten
Befehlen auszuführen ist. Die Speichereinheit 1 hat einen
Ausgang, der aus 64 Bit Leitungen besteht. Der Speicher ist
in Form von Zeilen und Spalten organisiert, wobei die Größe
(Länge) einer Zeile die maximale Größe von Daten definiert,
auf die parallel zugegriffen werden kann. Bei dieser
Ausführungsform beträgt die Zeilengröße 256 Bit und die
Ausgangsgröße des Speichersystems 64 Bit, wodurch die
Wahrscheinlichkeit einer Grenzüberschreitung reduziert wird.
Immer dann, wenn eine Anforderung zur Bereitstellung
weiterer Befehle zu der Speichereinheit 1 übertragen wird,
stellt diese eine ausgerichtete Befehlsfolge, die aus 8 Byte
oder 64 Bit besteht, zur Verfügung. In Abhängigkeit von der
Busbreite der Speichereinheit kann eine Anordnung mit mehr
oder weniger Bit implementiert werden. Die Zugriffszeit wird
im allgemeinen durch die Geschwindigkeit des Speichers,
durch die Tatsache, ob gespeicherte Befehle auszurichten
sind sowie durch jede Grenzüberschreitung bestimmt und kann
so kurz wie ein Zyklus sein. Somit wird bei dieser
Ausführungsform jede Anforderung für weitere Befehle immer
zur Erzeugung einer 64 Bit Befehlsfolge führen, die im Falle
einer linearen Programmsequenz ausgerichtet oder im Falle
von Sprüngen zu einer Adresse, die sich von einem Vielfachen
von 64 unterscheidet, nichtausgerichtet sein kann. Wenn eine
Grenzüberschreitung auftritt, wird eine zusätzliche
Verzögerung eingebaut, bis alle angeforderten Befehle durch
das Speichersystem abgerufen worden sind. Neben der
Zugriffsgeschwindigkeit des Speichers kann somit eine
notwendige Ausrichtung oder eine Anforderung im Falle einer
Grenzüberschreitung zusätzliche Zeit in Anspruch nehmen und
den Abruf von Befehlen verlangsamen.
Mit der Erfindung wird eine besondere Vorabruf-Puffer-
Anordnung geschaffen. Eine Vorabruf-Puffer-Steuereinheit 3
führt der Speichereinheit 1 entsprechende Startbefehl-
Adressen zu. Ein erster Vorabruf-Puffer 4 ist vorgesehen,
der durch die Vorabruf-Puffer-Steuereinheit 3 gesteuert
wird. Weiterhin ist ein zweiter Vorabruf-Puffer 5
vorgesehen, der ebenfalls durch die Vorabruf-Puffer-
Steuereinheit 3 gesteuert wird. Beide Vorabruf-Puffer 4 und
5 weisen einen ersten Abschnitt 4a, 5a zum Speichern von 64
Bit einer Befehlsfolge und einen zweiten Abschnitt 4b, 5b
für Steuerinformationen auf. Der erste Abschnitt 4a, 5a ist
mit dem Ausgang 2 der Speichereinheit 1 verbunden. Der
zweite Abschnitt 4b, 5b ist entsprechend mit der Vorabruf-
Puffer-Steuereinheit 3 verbunden. Außerdem sind vier
Multiplexer 6, 7, 8 und 9 mit drei 16 Bit Eingängen und
einem 16 Bit Ausgang vorgesehen. Der Ausgang 2 der
Speichereinheit 1 wird in vier 16 Bit Unterbusse aufgeteilt.
Jeder 16 Bit Unterbus ist mit einem ersten Eingang der
Multiplexer 6, 7, 8 beziehungsweise 9 verbunden. In
ähnlicher Weise sind die Inhalte des Vorabruf-Puffers 4 und
des Vorabruf-Puffers 5 in vier 16 Bit Abschnitte aufgeteilt.
Jeder 16 Bit Abschnitt des Vorabruf-Puffers 4 ist mit den
zweiten Eingängen der Multiplexer 6, 7, 8 beziehungsweise 9
verbunden. Jeder 16 Bit Abschnitt des Vorabruf-Puffers 5 ist
in ähnlicher Weise mit den dritten Eingängen jedes
Multiplexers 6, 7, 8 beziehungsweise 9 verbunden. Ferner ist
ein zweiter Satz von vier Multiplexern 10, 11, 12 und 13 mit
drei 16 Bit Eingängen und einem 16 Bit Ausgang vorgesehen.
Der erste Eingang jedes Multiplexers 10, 11, 12 und 13 ist
mit dem Ausgang des Multiplexers 6 verbunden. Der zweite
Eingang jedes Multiplexers 10, 11, 12 und 13 ist mit dem
Ausgang des Multiplexers 7 verbunden. In gleicher Weise sind
die dritten und vierten Eingänge der Multiplexer 10, 11, 12
und 13 mit den Ausgängen der Multiplexer 8 beziehungsweise 9
verbunden. An den Ausgängen der Multiplexer 10, 11, 12 und
13 liegt die ausgerichtete Befehlsfolge an, die den
entsprechenden Decodier-Einheiten der Pipeline-Struktur
zugeführt wird. Zur Steuerung der Multiplexer 6, 7, 8, 9,
10, 11, 12 und 13 ist eine Multiplexer-Steuereinheit 14
vorgesehen. Die Multiplexer-Steuereinheit 14 ist weiterhin
mit Steuerbits des zweiten Abschnittes 4b, 5b der Vorabruf-
Puffer 4 und 5 verbunden.
Fig. 2 zeigt, wie jeder Vorabruf-Puffer 4, 5 strukturiert
ist. Der erste Abschnitt der Vorabruf-Puffer 4, 5 besteht
aus 64 Bit von Befehlsdaten, die in vier Gruppen nämlich
Bits 0 bis 15, Bits 16 bis 31, Bits 32 bis 47 und Bits 48
bis 63 unterteilt sind. Der zweite Abschnitt 4b, 5b der
Vorabruf-Puffer 4, 5 stellt ein Gültigkeits-Bit dar, das die
Gültigkeit eines Dateneintrags in den ersten Abschnitt 4a,
5a anzeigt. Ein zweites Bit, das sogenannte Alters-Bit zeigt
an, welcher Vorabruf-Puffer 4 oder 5 ältere Daten enthält.
Außerdem sind zwei weitere Bits vorgesehen, um anzuzeigen,
wieviele 16 Bit Worte von gespeicherten Befehlen in dem
ersten Abschnitt 4a, 5a zuvor herausgegeben worden sind.
Die Funktion der in Fig. 1 gezeigten Ausführungsform soll
nun im Detail anhand der Fig. 3, 4 und 5 beschrieben
werden. Es sei angenommen, dass ein Mikroprozessor mit der
in Fig. 1 gezeigten Anordnung entweder einen 16 Bit Befehl
oder zwei 16 Bit Befehle oder einen 16 Bit Befehl und einen
32 Bit Befehl oder zwei 32 Bit Befehle erzeugen kann.
Demgemäß können in Abhängigkeit davon, wie viele Byte einer
Befehlsfolge erzeugt worden sind, die folgenden Fälle
auftreten. Zu Beginn der Ausführung eines Programms
enthalten beide Vorabruf-Puffer gemäß Fig. 3 ungültige
Daten, was durch eine 0 an der Gültigkeits-Bit-Stelle jedes
Vorabruf-Puffers 4, 5 angezeigt wird. Folglich wird eine
Anforderung zum Erzeugen von 64 Bit Befehlen zu der
Speichereinheit 1 übermittelt. Die Speichereinheit 1 erzeugt
die erste Befehlsfolge an ihrem Ausgang 2. Die Vorabruf-
Puffer-Steuereinheit 3 steuert den Vorabruf-Puffer 4, um die
erzeugte Befehlsfolge in dem ersten Abschnitt 4a des
Vorabruf-Puffers 4 zu speichern. Die Multiplexer 6, 7, 8 und
9 sind alle zu dem Eingang 1 geschaltet, um die durch die
Speichereinheit 1 erzeugte Befehlsfolge an ihre
entsprechenden Ausgänge zu führen. Der Multiplexer 10 ist zu
dem Eingang 1, der Multiplexer 11 ist zu dem Eingang 2, der
Multiplexer 12 ist zu dem Eingang 3 und der Multiplexer 13
ist zu dem Eingang 4 geschaltet. Somit liegen an den
Ausgängen 10a, 11a, 12a und 13a der Multiplexer 10, 11, 12
und 13 die gleichen Ausgangssignale wie am Ausgang 2 der
Speichereinheit 1 an.
Es soll nun angenommen werden, dass nur ein 16 Bit Befehl
der erzeugten Befehlsfolge ausgeführt werden kann. Die
Vorabruf-Puffer-Steuereinheit 3 schreibt somit eine "1" in
das Gültigkeits-Bit des Vorabruf-Puffers 4, eine "0" in das
Alters-Bit des zweiten Abschnitts 4b des Vorabruf-Puffers 4
und eine "01" in das Größenfeld des zweiten Abschnitts 4b
des Vorabruf-Puffers 4. Der zweite Abschnitt 4b des
Vorabruf-Puffers 4 zeigt nun an, dass gültige Daten in dem
ersten Abschnitt 4a des Vorabruf-Puffers gespeichert sind
und dass das erste 16 Bit Wort der gespeicherten
Befehlsfolge herausgegeben worden ist.
Ferner sei angenommen, dass in dem folgenden Zyklus nur ein
weiterer 16 Bit Befehl herausgegeben werden kann. Die
folgenden, in Fig. 4 gezeigten Zustände würden sich
ergeben. Da der Vorabruf-Puffer 5 leer ist, wird wieder eine
Anforderung zur Erzeugung einer weiteren 64 Bit Befehlsfolge
zu der Speichereinheit 1 übertragen. Die Speichereinheit 1
erzeugt am Ausgang 2 eine neue Befehlsfolge, die sequentiell
zu der ersten Befehlsfolge ist und in dem zweiten Vorabruf-
Puffer 5 gespeichert wird. Das Gültigkeitsbit des zweiten
Abschnitts 5b des Vorabruf-Puffers 5 wird auf "1" gesetzt,
das Altersbit erhält den Wert "1", der jüngere Daten als in
dem Vorabruf-Puffer 4 anzeigt, und das Größenbit wird auf
den Wert "0" gesetzt, der anzeigt, dass keine Befehle durch
den zweiten Vorabruf-Puffer 5 herausgegeben worden sind. Da
der Vorabruf-Puffer 4 anzeigt, dass nur ein 16 Bit Wort der
gespeicherten Befehlsfolge herausgegeben worden ist, wird
der Multiplexer 8 zu dem Eingang 2 geschaltet, um an seinem
Ausgang die Bits 16 bis 31 des Vorabruf-Puffers 4 zur
Verfügung zu stellen. In gleicher Weise werden die
Multiplexer 7 und 6 zu dem Eingang 2 geschaltet, um die Bits
32 bis 47 und 48 bis 63 an ihre entsprechenden Ausgänge zu
führen. Der Multiplexer 9 wird zu dem Eingang 1 geschaltet,
um die ersten 16 Bit der durch die Speichereinheit 1
erzeugten Befehlsfolge zur Verfügung zu stellen. Um diese
Befehlsfolge auszurichten, wird der Multiplexer 13 zu dem
Eingang 3, der Multiplexer 12 zu dem Eingang 2, der
Multiplexer 11 zu dem Eingang 1 und der Multiplexers 10 zu
dem Eingang 4 geschaltet. Somit steht an den Ausgängen 10a,
11a, 12a und 13a eine ausgerichtete Befehlsfolge zur
Verfügung, die mit dem Bit 16 des Vorabruf-Puffers 4
beginnt.
Wie bereits erwähnt wurde, wird in dem Fall, in dem in
diesem Zyklus nur ein 16 Bit Befehl herausgegeben wird, das
Größenbit des zweiten Abschnitts 4b des Vorabruf-Puffers 4
auf den Wert "10" gesetzt, der anzeigt, dass insgesamt zwei
16 Bit Worte der gespeicherten Befehlsfolge herausgegeben
worden sind. In dem Abschnitt 5b des Vorabruf-Puffers 5
bleibt das Gültigkeitsbit auf dem Wert "1", das Altersbit
auf dem Wert "1", der jüngere Daten als in dem Vorabruf-
Puffer 4 anzeigt, und das Größenfeld behält den Wert "0",
der anzeigt, dass bis jetzt kein Befehl aus der in dem
ersten Abschnitt 5a des Vorabruf-Puffers 5 gespeicherten
Befehlsfolge herausgegeben worden ist.
In dem folgenden Zyklus wird keine Anforderung an die
Speichereinheit 1 gerichtet, da beide Vorabruf-Puffer
gültige Daten enthalten und somit mehr als 64 Bits der
Befehle verfügbar sind. Fig. 5 zeigt, wie die Multiplexer
in dem folgenden Zyklus geschaltet werden. Die Multiplexer 6
und 7 werden auf den Eingang 2 geschaltet, während die
Multiplexer 8 und 9 auf den Eingang 3 geschaltet werden. Der
Multiplexer 10 wird auf den Eingang 3, der Multiplexer 11
auf den Eingang 4, der Multiplexer 12 auf den Eingang 1 und
der Multiplexer 13 auf den Eingang 2 geschaltet. An den
Ausgängen 10a, 11a, 12a und 13a steht wiederum ein Maximum
von 64 Bits einer ausgerichteten Befehlsfolge zur Verfügung.
In Abhängigkeit davon, wieviele 16 Bit Worte herausgegeben
werden, werden die entsprechenden Steuerbits in dem zweiten
Abschnitt der Vorabruf-Puffer 4 und 5 gesetzt. Wenn zum
Beispiel, wie es in Fig. 5 gezeigt ist, in dem folgenden
Zyklus ein 16 Bit Befehl und ein 32 Bit Befehl herausgegeben
wird, wird das Gültigkeitsbit des Vorabruf-Puffers 4 auf den
Wert "0" gesetzt, da alle in dem ersten Abschnitt 4a des
Vorabruf-Puffers 4 gespeicherten Befehle herausgegeben
worden sind. Weiterhin wird das Feld des Größenbits des
zweiten Abschnitts 5b des Vorabruf-Puffers 5 auf den Wert
"01" gesetzt, der anzeigt, dass ein 16 Bit Wort der in dem
ersten Abschnitt 5a des Vorabruf-Puffers 5 gespeicherten
Befehlsfolge herausgegeben worden ist. Schließlich wird das
Altersbit auf den Wert "0" gesetzt, da der Vorabruf-Puffer 5
nun die ältesten Daten speichert.
Solange ein Sprungbefehl nicht eine nichtsequentielle
Befehlsadresse anfordert, wird eine 64 Bit Befehlsfolge
immer entweder direkt aus der Speichereinheit 1 oder von
einem oder beiden Vorabruf-Puffern 4, 5 vorhanden sein. Wenn
ein Minimum von einem Befehl herausgegeben wird, werden
mindestens 16 Bit der gespeicherten Befehlsfolge von einem
Vorabruf-Puffer herausgegeben. Somit kann der Fall, in dem
beide Vorabruf-Puffer voll besetzt sind, nur auftreten, wenn
die Pipelines blockiert sind und keine neuen Befehle
aufnehmen können. Wenn ein Minimum von einem herausgegebenen
Befehl garantiert wird, ist das Altersbit im allgemeinen
redundant und kann aus den zwei Größenbit-Feldern extrahiert
werden. Derjenige Vorabruf-Puffer, dessen Größenbit sich von
dem Wert "00" unterscheidet, ist der Vorabruf-Puffer mit der
älteren Befehlsfolge.
Fig. 6 zeigt eine Tabelle mit allen möglichen Fällen, in
denen die Multiplexer zu schalten sind. Fig. 6 zeigt auch
die Fälle, in denen beide Vorabruf-Puffer 4 und 5 gültige
Daten enthalten und beide Größenfelder auf den Wert "0"
gesetzt sind, der anzeigt, dass kein Befehl aus einem der
Vorabruf-Puffer herausgegeben worden ist. Ein solcher Fall
ist nur möglich, wenn unmittelbar nachdem Befehle
herausgegeben wurden, eine weitere Anforderung zur Erzeugung
einer neuen Befehlsfolge an die Speichereinheit 1 gerichtet
wird, oder wenn aufgrund blockierter Pipelines kein Befehl
herausgegeben werden kann. Eine zusätzliche Anforderung kann
insbesondere dann ausgeführt werden, wenn zusätzliche Zeit
zwischen dem Herausgeben von Befehlen und dem nächsten Abruf
von Befehlen irgendwann nach dem Herausgegeben übrig ist.
Dies wird vorzugsweise nach dem Setzen der zusätzlichen
Informationen in einem oder beiden Vorabruf-Puffern 4, 5
durchgeführt. Zu dieser Zeit ist genau bekannt, ob einer
oder beide Vorabruf-Puffer 4, 5 leer sind. Somit würde
jedesmal dann, wenn Befehle herausgegeben werden und einer
oder beide Vorabruf-Puffer leer sind, was durch das
Gültigkeitsbit angezeigt wird, durch eine Anforderung an die
Speichereinheit 1 eine weitere 64 Bit Befehlsfolge erzeugt
werden, die in einem oder beiden Vorabruf-Puffern 4 oder 5
gespeichert werden würde. Mit dieser Ausführungsform wird
sichergestellt, dass zu dem Zeitpunkt der nächsten
Anforderung in den meisten Fällen abgesehen von
Sprungbefehlen beide Vorabruf-Puffer 4 und 5 gültige Daten
enthalten.
Wie bereits erwähnt wurde, kann die in Fig. 1 gezeigte
Anordnung Befehle nur während der sequentiellen Ausführung
einer Befehlsfolge erzeugen. Im Falle eines Sprungbefehls
muss das Gültigkeitsbit von beiden Vorabruf-Puffern 4 und 5
auf den Wert "0" gesetzt werden, der ungültige Daten
anzeigt. Eine Sprung-Vorhersageeinheit kann die
entsprechende Adresse der Vorabruf-Puffer-Steuereinheit 3
zuführen, um eine neue Befehlsfolge zu erzeugen. Im Falle
einer sequentiellen Befehlsausführung wird mit der an Hand
von Fig. 1 beschriebenen Ausführungsform ein wirksames
Mittel zum Zuführen einer ausgerichteten Befehlsfolge zu
Decodereinheiten von entsprechenden Pipelines in einem
Multi-Pipeline-System geschaffen, mit dem
Geschwindigkeitsverluste auf Grund von Grenzüberschreitungen
oder langsamen Speichersystemen kompensiert werden können.
Fig. 7 zeigt eine zweite Ausführungsform der Erfindung.
Diese Ausführungsform stellt eine vereinfachte Version der
in Fig. 1 gezeigten Anordnung dar. Bei dieser
Ausführungsform ist nur ein Vorabruf-Puffer 20 vorgesehen.
Der zweite Abschnitt des Vorabruf-Puffers 20 enthält nur ein
Gültigkeitsbit und ein Größenbit-Feld. Der Speicher 1 weist
einen Ausgang 2 mit 64 Bit Leitungen auf, die in vier 16 Bit
Unter-Busse aufgeteilt sind. Weiterhin sind vier Multiplexer
mit zwei 16 Bit Eingängen und einem 16 Bit Ausgang
vorgesehen. Die ersten Eingänge der Multiplexer 21, 22, 23
und 24 sind mit einer der 16 Bit Leitungen des Speicher-
Ausgangs 2 verbunden. Die zweiten Eingänge der Multiplexer
21, 22, 23 und 24 sind mit einem entsprechenden 16 Bit Feld
des Vorabruf-Puffers 20 verbunden. Die Ausgänge der
Multiplexer 21, 22, 23 und 24 sind mit dem Eingang eines 64
Bit Ring-Verschiebers 25 verbunden. Anstelle des Ring-
Verschiebers 25 kann auch eine Anordnung mit Multiplexern
10, 11, 12 und 13 gemäß Fig. 1 verwendet werden.
Wenn der Speicher 1 schnell genug ist und die
Grenzüberschreitung nur einen geringen Einfluss hat, ist nur
ein Vorabruf-Puffer 20 erforderlich, um die Befehlsfolge
auszurichten. Wenn der Vorabruf-Puffer 20 leer ist, wird
durch eine Anforderung an den Speicher 1 für eine folgende
64 Bit Befehlsfolge eine Befehlsfolge am Ausgang 2 erzeugt,
die ausgerichtet ist und über die Multiplexer 21, 22, 23, 24
und den Ring-Verschieber 25 zu den Ausgängen 25a, 25b, 25c
und 25d übertragen werden kann. Die Befehlsfolge wird
parallel in dem Vorabruf-Puffer 20 gespeichert. In
Abhängigkeit davon, wieviele 16 Bit Worte der Befehlsfolge
herausgegeben werden, muss die Befehlsfolge in einem
folgenden Zyklus ausgerichtet werden. In dem folgenden
Zyklus erzeugt die Speichereinheit 1 eine weitere 64 Bit
Befehlsfolge, die mit dem in dem Vorabruf-Puffer 20
gespeicherten nicht-herausgegebenen Abschnitt der
Befehlsfolge kombiniert wird. Solange der Vorabruf-Puffer 20
gültige Daten enthält, was durch das Gültigkeitsbit
angezeigt wird, bleibt die Adresse der aus der
Speichereinheit 1 angeforderten Befehlsfolge unverändert.
Wenn das Gültigkeitsbit des Vorabruf-Puffers 20 auf den Wert
"0" gesetzt wird, der anzeigt, dass alle gespeicherten
Befehle ausgegeben worden sind, wird eine durch die
Speichereinheit 1 zugeführte sequentielle Befehlsfolge in
dem Vorabruf-Puffer 20 gespeichert. Das Größenbit-Feld in
dem Vorabruf-Puffer 20 wird entsprechend der Anzahl von 16
Bit Worten der durch den Speicher 1 zugeführten Befehlsfolge
gesetzt, die ausgegeben worden sind.
Claims (13)
1. Verfahren zum Erzeugen einer Mehrzahl von ausgerichteten
Befehlen aus einer durch eine Speichereinheit zur Verfügung
gestellten Befehlsfolge zur Ausführung in einem Pipeline-
Mikroprozessor mit einem Vorabruf-Puffer, wobei der
Vorabruf-Puffer vorabgerufene Befehle und zusätzliche
Informationen über die Gültigkeit und Größe des Vorabruf-
Puffers speichert, mit folgenden Schritten:
- - in dem Fall, in dem der Vorabruf-Puffer ungültige Daten
enthält:
- 1. a) Anfordern einer Befehlsfolge und Speichern der Befehlsfolge in dem Vorabruf-Puffer;
- 2. b) Setzen der Daten für Gültigkeit in dem Vorabruf-Puffer;
- 3. c) Herausgeben einer angeforderten Anzahl von Befehlen aus der angeforderten Befehlsfolge;
- 4. d) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem Vorabruf-Puffer;
- 5. e) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem Vorabruf-Puffer herausgegeben worden sind;
- - in dem Fall, in dem der Vorabruf-Puffer gültige Daten
enthält:
- 1. f) Herausgeben einer angeforderten Anzahl von Befehlen aus dem Vorabruf-Puffer;
- 2. g) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Daten für die Anzahl von in dem Vorabruf-Puffer gespeicherten Befehlen;
- 3. h) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem Vorabruf-Puffer herausgegeben worden sind.
2. Verfahren nach Anspruch 1,
bei dem in dem Fall, in dem in Schritt f.) die Anzahl von
gespeicherten Befehlen geringer ist, als die Anzahl von
angeforderten Befehlen, eine weitere Befehlsfolge aus der
Speichereinheit angefordert wird und die notwendigen Befehle
aus der weiteren Befehlsfolge mit den vorabgerufenen
Befehlen kombiniert werden.
3. Verfahren zum Erzeugen einer Mehrzahl von ausgerichteten
Befehlen aus einer durch eine Speichereinheit zur Verfügung
gestellten Befehlsfolge zur Ausführung in einem Pipeline-
Mikroprozessor mit einem ersten und einem zweiten Vorabruf-
Puffer, wobei die Vorabruf-Puffer vorabgerufene Befehle und
zusätzliche Informationen über die Gültigkeit und Größe der
Vorabruf-Puffer speichern, mit folgenden Schritten:
- - in dem Fall, in dem beide Vorabruf-Puffer ungültige Daten
umfassen:
- 1. a) Anfordern einer Befehlsfolge und Speichern der Befehlsfolge in dem ersten Vorabruf-Puffer;
- 2. b) Setzen der Daten für Gültigkeit in dem ersten Vorabruf- Puffer;
- 3. c) Herausgeben einer angeforderten Anzahl von Befehlen aus der angeforderten Befehlsfolge;
- 4. d) In Abhängigkeit davon, wieviele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem ersten Vorabruf- Puffer;
- 5. e) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem ersten Vorabruf-Puffer herausgegeben worden sind;
- - in dem Fall, in dem einer oder beide Vorabruf-Puffer
gültige Daten enthalten:
- 1. f) Herausgeben einer angeforderten Anzahl von Befehlen aus dem einen Vorabruf-Puffer;
- 2. g) In Abhängigkeit davon, wie viele Befehle herausgegeben wurden, Reduzieren der Größen-Daten in dem einen Vorabruf- Puffer;
- 3. h) Ungültigmachen der Gültigkeitsdaten, nachdem alle Befehle aus dem einen Vorabruf-Puffer herausgegeben worden sind.
4. Verfahren nach Anspruch 3,
bei dem in dem Fall, in dem in Schritt f.) die Anzahl von
gespeicherten Befehlen geringer ist, als die Anzahl von
angeforderten Befehlen, die notwendigen Befehle aus dem
anderen Vorabruf-Puffer mit den vorabgerufenen Befehlen aus
dem anderen Vorabruf-Puffer kombiniert werden.
5. Verfahren nach Anspruch 3,
bei dem vor dem Schritt f.) folgende Schritte eingefügt
werden:
- 1. e1) Anfordern einer Befehlsfolge und Speichern der Befehlsfolge in dem entsprechend anderen Vorabruf-Puffer;
- 2. e2) Setzen der Daten für Gültigkeit in dem anderen Vorabruf-Puffer.
6. Verfahren nach Anspruch 3,
bei dem in Schritt g.) zusätzliche Informationen in beiden
Vorabruf-Puffern gesetzt werden, die anzeigen, welcher
Vorabruf-Puffer in Bezug auf eine Befehlssequenz ältere
Befehle enthält.
7. Verfahren nach Anspruch 3,
bei dem nach dem Schritt f.) in dem Fall, in dem ein
Vorabruf-Puffer ungültige Daten enthält, ein Schritt des
Anforderns einer Befehlsfolge und des Speicherns der
Befehlsfolge in dem entsprechend anderen Vorabruf-Puffer
eingefügt wird.
8. Verfahren nach Anspruch 3,
bei dem nach dem Schritt c.) ein Schritt des Anforderns
einer Befehlsfolge und des Speicherns der Befehlsfolge in
dem entsprechend anderen Vorabruf-Puffer eingefügt wird.
9. Vorrichtung zum Erzeugen einer Mehrzahl von
ausgerichteten Befehlen aus einer durch eine Speichereinheit
zur Verfügung gestellten Befehlsfolge zur Ausführung in
einem Pipeline-Mikroprozessor mit:
- - einem ersten, mit der Speichereinheit verbundenen Vorabruf-Puffer, wobei der erste Vorabruf-Puffer vorabgerufene Befehle und zusätzliche Informationen über die Gültigkeit und Größe des ersten Vorabruf-Puffers speichert;
- - einer ersten Mehrzahl von Multiplexern mit Eingängen, die mit dem ersten Vorabruf-Puffer und der Speichereinheit zur Auswahl einer bestimmten Anzahl von Befehlen verbunden sind, sowie mit Ausgängen,
- - einer zweiten Mehrzahl von Multiplexern mit Eingängen, die mit den Ausgängen der ersten Multiplexer zum Ausrichten der gewählten Befehle verbunden sind.
10. Vorrichtung nach Anspruch 9,
bei der mindestens ein zweiter Vorabruf-Puffer vorgesehen
ist, der mit der Speichereinheit und mit Eingängen der
ersten Multiplexer verbunden ist.
11. Vorrichtung nach Anspruch 10,
bei der der erste und zweite Vorabruf-Puffer Informationen
darüber enthält, welcher der Vorabruf-Puffer ältere Befehle
enthält.
12. Vorrichtung nach Anspruch 10,
mit einer Vorabruf-Puffer-Steuereinheit zur Auswahl und zur
Lese-/Schreib-Steuerung der ersten und zweiten Vorabruf-
Puffer und zum Aktualisieren der zusätzlichen Informationen
in den ersten und zweiten Vorabruf-Puffern.
13. Vorrichtung nach Anspruch 10,
bei der jede durch die Speichereinheit zur Verfügung
gestellte Befehlsfolge mindestens vier Worte umfasst, die
eine Mehrzahl von Befehlen beinhalten und jeder Vorabruf-
Puffer mindestens vier Worte speichert, die eine Mehrzahl
von Befehlen beinhalten, und wobei die ersten Multiplexer
aus mindestens vier Multiplexern mit drei Eingängen bzw.
einem Ausgang bestehen, zur Auswahl von einem der Worte aus
einer der Befehlsfolgen oder Vorabruf-Puffer, und wobei die
zweiten Multiplexer aus mindestens vier Multiplexern
bestehen, die vier Eingänge bzw. einen Ausgang aufweisen,
zum Ausrichten der gewählten Worte aus den ersten
Multiplexern.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/320,833 | 1999-05-26 | ||
US09/320,833 US6981127B1 (en) | 1999-05-26 | 1999-05-26 | Apparatus and method for aligning variable-width instructions with a prefetch buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10026017A1 true DE10026017A1 (de) | 2000-12-28 |
DE10026017B4 DE10026017B4 (de) | 2007-02-08 |
Family
ID=23248048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10026017A Expired - Fee Related DE10026017B4 (de) | 1999-05-26 | 2000-05-25 | Vorabruf-Puffer mit Gültigkeitswerten zur Bereitstellung von abgeglichenen Befehlen |
Country Status (2)
Country | Link |
---|---|
US (1) | US6981127B1 (de) |
DE (1) | DE10026017B4 (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7584234B2 (en) * | 2002-05-23 | 2009-09-01 | Qsigma, Inc. | Method and apparatus for narrow to very wide instruction generation for arithmetic circuitry |
US7082516B1 (en) * | 2000-09-28 | 2006-07-25 | Intel Corporation | Aligning instructions using a variable width alignment engine having an intelligent buffer refill mechanism |
US20080162879A1 (en) * | 2006-12-29 | 2008-07-03 | Hong Jiang | Methods and apparatuses for aligning and/or executing instructions |
US20080162522A1 (en) * | 2006-12-29 | 2008-07-03 | Guei-Yuan Lueh | Methods and apparatuses for compaction and/or decompaction |
CN111258654B (zh) * | 2019-12-20 | 2022-04-29 | 宁波轸谷科技有限公司 | 指令分支预测方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811284A (en) * | 1984-03-08 | 1989-03-07 | International Business Machines Corporation | Computer terminal system with memory shared between remote devices |
GB2263985B (en) * | 1992-02-06 | 1995-06-14 | Intel Corp | Two stage window multiplexors for deriving variable length instructions from a stream of instructions |
US5835967A (en) * | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
US5640526A (en) | 1994-12-21 | 1997-06-17 | International Business Machines Corporation | Superscaler instruction pipeline having boundary indentification logic for variable length instructions |
US5680564A (en) * | 1995-05-26 | 1997-10-21 | National Semiconductor Corporation | Pipelined processor with two tier prefetch buffer structure and method with bypass |
US5822559A (en) | 1996-01-02 | 1998-10-13 | Advanced Micro Devices, Inc. | Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions |
US5854911A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
US5909566A (en) * | 1996-12-31 | 1999-06-01 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods for speculatively executing an instruction using its most recently used data while concurrently prefetching data for the instruction |
US5968163A (en) * | 1997-03-10 | 1999-10-19 | Advanced Micro Devices, Inc. | Microcode scan unit for scanning microcode instructions using predecode data |
US6122729A (en) * | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
-
1999
- 1999-05-26 US US09/320,833 patent/US6981127B1/en not_active Expired - Fee Related
-
2000
- 2000-05-25 DE DE10026017A patent/DE10026017B4/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE10026017B4 (de) | 2007-02-08 |
US6981127B1 (en) | 2005-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
DE69929936T2 (de) | Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE60036016T2 (de) | Schnell multithreading für eng gekoppelte multiprozessoren | |
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE4211222A1 (de) | Verfahren und vorrichtung zur abzweigungs-vorhersage unter verwendung einer abzweigungs-vorhersagetabelle | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE102004013676A1 (de) | Schleifenbetrieb mit null Overhead in einem Mikroprozessor mit Anweisungspuffer | |
DE2415900A1 (de) | Rechenautomat mit mehreren mit je einem vorratsspeicher versehenen rechenanlagen | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE2117936A1 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
WO2007017373A1 (de) | Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle | |
DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2906685C2 (de) | ||
DE19533962A1 (de) | Verfahren und Schaltung zum vorauseilenden Holen von Befehlen/Daten mit einem Prefetch-Cache für Befehle/Daten, auf die nicht zugegriffen worden ist | |
DE10026017B4 (de) | Vorabruf-Puffer mit Gültigkeitswerten zur Bereitstellung von abgeglichenen Befehlen | |
DE112004001248B4 (de) | Mikroprozessor und Verfahren zum Ausführen einer index-behafteten Speicher-zu-Lade-Weiterleitung | |
DE10025952B4 (de) | Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen | |
DE60216016T2 (de) | Mikroprozessor mit Aufrechterhaltung der Speicherübereinstimmung | |
DE102005037234A1 (de) | Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Ausführungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle | |
DE2949571A1 (de) | Cachespeichereinheit fuer die verwendung in verbindung mit einer datenverarbeitungseinheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8125 | Change of the main classification |
Ipc: G06F 9/38 |
|
8364 | No opposition during term of opposition | ||
R082 | Change of representative | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |