-
Die
vorliegende Erfindung betrifft allgemein einen Datenprozessor und
betrifft insbesondere einen Datenprozessor, wie etwa einen Mikroprozessor und
einen Bildprozessor, die einen Befehls-Cache enthalten.
-
Herkömmlicherweise
empfangen verschiedene Prozessoren einen Befehl von einem externen Speicher
(RAM) und führen
den Befehl durch eine Ausführungseinheit
aus.
-
1 ist
ein Blockschaltbild, das diese Art von Mikroprozessoren darstellt.
Ein Mikroprozessor 10 hat eine Ausführungseinheit 11.
Die Ausführungseinheit 11 führt einen
in einem als externer Speicher dienenden externen RAM 12 gespeicherten
Befehl aus (Schritt 1) und empfängt
einen entsprechenden Befehl (Schritt 2). Dann analysiert die Ausführungseinheit 11 den
Befehl und führt
diesen aus (Schritt 3). In diesem Fall gibt die Ausführungseinheit 11 die
Datenadresse an den externen RAM 12 aus (Schritt 4), um
Daten zu lesen und zu schreiben, und liest und schreibt die Daten
(Schritt 5). Hier kann in Abhängigkeit
von Befehlen auf die Operationen in Schritt 4 und 5 verzichtet werden.
-
Mit
der Konfiguration aus 1 ist es erforderlich, jedes
Mal dann, wenn ein Befehl ausgeführt wird,
auf den externen RAM 12 zu zugreifen, was das Problem verursacht,
dass die Ausführung
des Befehls Zeit erfordert.
-
Um
dieses Problem zu lösen,
wurde in der Praxis ein Befehls-Cache 13 in einem Mikroprozessor 10A vorgesehen,
wie in 2 gezeigt. Wenn der Befehls-Cache 13 keinen
erforderlichen Befehl enthält,
wird der Befehl aus dem externen RAM 12 in Übereinstimmung
mit der Vorgehensweise von Schritt 1 und 2 ausgelesen und der Ausführungseinheit 11 zugeführt, und
der Befehl wird in dem Befehls-Cache 13 gespeichert. Wenn
die Ausführungseinheit 11 den
gleichen Befehl später
benötigt,
wird der entsprechende Befehl aus dem Befehls-Cache 13, der die Befehlsadresse
empfing, ausgelesen, und der Befehl wird der Ausführungseinheit 11 zugeliefert.
Da die Zeit für
den Zugriff auf den Befehls-Cache 13 allgemein kürzer ist
als die Zeit für
den Zugriff auf den externen RAM 12, kann die Zeit bis
zum Lesen und Ausführen
eines Befehls verkürzt
werden.
-
3 ist
ein Blockschaltbild, das die Konfiguration des in 2 gezeigten
Befehls-Cache 13 zeigt. Der Befehls-Cache 13 hat
ein Befehlsadressregister 14, zwei Etiketten-RAM-Einheiten 15 und 16, zwei
Cache-RAM-Einheiten 17 und 18, zwei Komparatoren 19 und 20,
eine Hit/Miss-Prüflogikschaltung 21 und
einen Selektor 22. Der Etiketten-RAM 15 und der Cache-RAM 17 sind
zusammengeschlossen (System #0), und der Etiketten-RAM 16 und
der Cache-RAM 18 sind zusammengeschlossen (System #1).
-
Der
Befehls-Cache 13 empfängt
eine Befehlsadresse von der in 2 gezeigten
Ausführungseinheit 11 und
gibt durch den Selektor 22 einen entsprechenden Befehl
aus. Die Befehlsadresse wird zu dem externen RAM 12 gesendet
und ein entsprechender Block wird von dem externen RAM empfangen.
Ein Block ist eine Gruppe einer Vielzahl von Befehlen, die durch
zusammenhängende
Adressen bezeichnet sind.
-
4 zeigt
Befehle, die sequenziell ausgeführt
werden. In 4 sind die Befehle mit der Ausnahme
des Verzweigungsbefehls (Branch) durch zusammenhängende Befehlsadressen bezeichnet.
Die Befehle werden in der durch den Pfeil auf der rechten Seite
von 4 angegebenen Reihenfolge ausgeführt. Die
vier Befehle, die beispielsweise durch die zusammenhängenden
Adressen bezeichnet sind, werden als ein Block betrachtet.
-
Das
Befehlsadressregister 14 aus 3 ist in
Bereiche eines Blockversatzes, einer Zeilenadresse und einer Etikettenadresse
unterteilt. Auf zwei Cache-RAMs 17 und 18 wird
durch die Zeilenadresse und die Blockadresse zugegriffen und sie
geben einen festgelegten Befehl aus. Die Zeilenadresse wird verwendet,
um einen Bereich in den Cache-RAMs 17 und 18 zu
begrenzen, in dem Befehle von dem externen RAM 12 zu speichern
sind. Beispielsweise wird ein in den Adressen xxxx und yyyy des
externen RAM 12 gespeicherter Befehl in zzz in dem Cache-RAM 17 oder 18 gespeichert.
Wenn zugelassen wird, dass der Befehl in einem beliebigen Speicherbereich
des Cache-RAM 17 oder 18 gespeichert wird, wird
der Zugriff auf den Cache-RAM 17 und 18 länger dauern.
-
Hier
kann der aus dem externen RAM 12 gelesene Befehl in den
beiden Cache-RAMs 17 und 18 gespeichert werden.
In diesem Fall sagt man, dass der Assoziationsgrad 2 ist.
Die Cache-RAMs 17 und 18 können durch diskrete Speicherchips
konfiguriert sein oder durch Aufteilen eines Speicherbereichs eines
Speicherchips.
-
Der
Blockversatz bezeichnet einen Befehl innerhalb eines Blocks von
einer Zeilenadresse. Beispielsweise wird ein "add"-Befehl
zu addieren in der ersten Zeile von 4 durch
die Zeilenadresse bezeichnet und die Befehle "add", "subcc", "or" und "set" werden durch die
Veränderung
des Blockversatzes von "00" zu "01", "10" und "11" bezeichnet.
-
Die
Etiketten-RAMs 15 und 16 geben eine Etikettenadresse
in Übereinstimmung
mit der Zeilenadresse aus. Komparatoren 19 und 20 vergleichen die
aus den Etiketten-RAMs 15 und 16 jeweils ausgelesenen
Etikettenadressen mit den aus dem Befehlsadressregister 14 ausgelesenen
Etikettenadressen, um eine Übereinstimmung
festzustellen. Wenn ein von der Zeilenadresse bezeichneter Befehl
in dem Cache-RAM 17 gespeichert ist, ist das Vergleichsergebnis
des Komparators 19 eine Übereinstimmung (Cache-Hit).
Wenn im Gegensatz dazu der in der Zeilenadresse bezeichnete Befehl
in dem Cache-RAM 18 gespeichert ist, ist das Vergleichsergebnis
des Komparators 20 eine Übereinstimmung (Cache-Hit).
-
Die
Hit/Miss-Prüflogikschaltung 21 steuert den
Selektor 22 gemäß einer
Ausgabe der Komparatoren 19 und 20. Wenn der Komparator 19 ein Übereinstimmungssignal
ausgibt, wählt
der Selektor 22 den Cache-RAM 17, und wenn der
Komparator 20 ein Übereinstimmungssignal
ausgibt, wählt
der Selektor 22 den Cache-RAM 18. Der gewählte Befehl wird
der Ausführungseinheit 11 zugeliefert.
-
5 zeigt
den vorstehend beschriebenen Prozess, wobei die aus dem Etiketten-RAM 15 ausgelesene
Etikettenadresse und die aus dem Befehlsadressregister 14 ausgelesene
Etikettenadresse übereinstimmen.
In der Zeichnung bezeichnen dicke Linien den Fluss der Adresse,
des Befehls und eines Signals und dergleichen, die bei der Ausleseoperation
verwendet werden.
-
6 zeigt
einen Fall, in dem Vergleichsresultate der beiden Komparatoren 19 und 20 negativ waren
(Cache-Miss). In der Zeichnung bezeichnen dicke Linien den Fluss
der Adresse, des Befehls und des Signals, die bei dem Schreibvorgang
verwendet werden. In diesem Fall wird der Befehl aus dem externen
RAM 12 ausgelesen und in den Cache-RAM 17 oder
den Cache-RAM 18 geschrieben. 6 zeigt ein
Beispiel, bei dem der gelesene Befehl in den Cache-RAM 17 geschrieben
wird. Ferner wird die Etikettenadresse der Befehlsadresse, die verfehlt
wurde, in den Etiketten-RAM 15 geschrieben, der dem Cache-RAM 17 entspricht.
Ferner wird der in dem Cache-RAM 17 gespeicherte
Befehl gelesen und durch den Selektor 22 der Ausführungseinheit 11 zugeführt.
-
Bei
dem vorstehend beschriebenen Befehls-Cache liegt jedoch ein Problem
vor.
-
7 zeigt
eine Befehlsauslesesequenz aus dem wie in 3 dargestellt
konfigurierten Befehls-Cache 13. Um die Flüsse einer
Adresse und dergleichen deutlich zu veranschaulichen, werden einige
der den in 3 dargestellten Bau elementen zugewiesenen
Bezugszeichen weggelassen. In 7 ist ein
Befehl aus 4 Bytes aufgebaut und ein Block ist aus 4 Befehlen aufgebaut
(das heißt
1 Block umfasst 16 Bytes).
-
Ferner
ist die Anzahl der Zeilen 128. Die Auslesesequenz beginnt
mit einem Schritt (a) und endet mit einem Schritt (e). Es sei angenommen, dass
eine Befehlsadresse "0x00000000" von der Ausführungseinheit 11 zugeliefert
wird und in dem Befehlsadressregister 14 gespeichert wird.
In diesem Fall ist die Zeilenadresse "0000000" und der Blockversatz ist "00". In Schritt (a)
wird angenommen, dass die Etikettenadresse der Befehlsadresse gleich
der aus dem Etiketten-RAM 15 ausgelesenen Etikettenadresse
ist. Daher wählt
die Hit/Miss-Prüflogikschaltung 21 durch
Steuern des Selektors 22 den Cache-RAM 17 aus.
Beispielsweise wird der Additionsbefehl "add" aus 4 aus
dem Cache-RAM 17 ausgelesen.
-
Anschließend wird
die Befehlsadresse "0x00000004" in Schritt (b) in
dem Befehlsadressregister 14 gespeichert. In diesem Fall
ist der Blockversatz von "00" um eins erhöht und wird
auf "01" gesetzt. Da sich
die Zeilenadresse nicht verändert, bleibt
der Cache-RAM 17 ausgewählt
und eine dem Blockversatz "01" entsprechende Adresse
wird ausgewählt
(Subtraktionsbefehl "subcc" in 4).
-
Ferner
wird in Übereinstimmung
mit der Befehlsadresse "0x0000008" bzw. "0x0000000c" der Blockversatz
auf "10" und "11" gesetzt, und ein "Oder"-Befehl "OR" und Setz-Befehl "SET" werden jeweils aus
dem Cache-RAM 17 ausgelesen (Schritte (c) und (d)). Die
Zeilenadresse verändert
sich jedoch in der Zwischenzeit nicht.
-
Wenn
sich anschließend
in Schritt (e) die Befehlsadresse auf "0x00000010" ändert,
wird die Zeilenadresse um eins erhöht und wird "0000001". In Schritt (e)
wird angenommen, dass die Etikettenadresse der Befehlsadresse gleich
der aus dem Etiketten-RAM 16 ausgelesenen Etikettenadresse
ist. Da her wählt
die Hit/Miss-Prüflogikschaltung 21 durch Steuern
des Selektors 22 den Cache-RAM 18 aus.
-
Im
Verlauf der Schritte von (a) bis (e), die durch die die kontinuierlichen
Befehle angebende Adresse festgelegt sind, führte der Cache-RAM 18 eine
Ausleseoperation durch, obgleich er nicht ausgewählt war. Wo ein oder mehrere
Cache-RAMs mit einem
Kreis mit dicken Linien in der Zeichnung markiert sind, zeigt dies
an, dass der Cache-RAM in einem freigegebenen Zustand ist (auch
als aktiver Zustand bezeichnet). Das Problem ist daher, dass nutzlos
Leistung verbraucht wird.
-
Die
US 6,138,208 zeigt ein Verfahren
auf, das gleichzeitigen oder überlappten
Zugriff auf mehrere Cache-Level bietet, um den Latenz-Mehraufwand
für einen
Cache-Miss eines höheren
Levels zu reduzieren. Eine Anforderung eines Wertes (Daten oder
Befehl) wird von dem Prozessor abgegeben und wird zu dem niedrigeren
Level des Cache weitergeleitet, bevor bestimmt wird, ob ein Cache-Miss
des Wertes in einem höheren
Level des Cache aufgetreten ist.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Datenprozessor
geschaffen, enthaltend einen Befehls-Cache, der in eine Vielzahl von
Cache-Speichereinheiten
unterteilt ist, dadurch gekennzeichnet, dass der Datenprozessor
dafür ausgelegt
ist, nur eine Cache-Speichereinheit
freizugeben, die die angeforderten Befehle speichert, während andere
Cache-Speichereinheiten gesperrt sind, wodurch der Leistungsverbrauch
des Befehls-Cache reduziert wird.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird ein System geschaffen,
enthaltend: einen Prozessor; und einen mit dem Prozessor verbundenen
externen Speicher, der einen Befehls-Cache enthält, welcher Befehls-Cache in
eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet,
dass der Prozessor dafür ausgelegt
ist, nur eine Cache-Speichereinheit freizugeben, die die angeforderten
Befehle speichert, während
andere Cache-Speichereinheiten
gesperrt sind.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Steuern eines Befehls-Cache geschaffen, der in eine Vielzahl von Cache-Speichereinheiten
unterteilt ist, dadurch gekennzeichnet, dass eine Cache-Speichereinheit,
die die angeforderten Befehle speichert, freigegeben wird, während andere
Cache-Speichereinheiten gesperrt sind.
-
Bevorzugte
Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden
Beschreibung dargelegt und werden zum Teil aus der Beschreibung
und den beiliegenden Zeichnungen deutlich, oder können durch
die praktische Umsetzung der Erfindung gemäß der in der Beschreibung dargelegten
Lehre erkannt werden. Gegenstände
sowie weitere Merkmale und Vorteile der vorliegenden Erfindung werden
durch eine Vorrichtung verwirklicht und erzielt, die in der Beschreibung
in dergestalt umfassenden, deutlichen, präzisen und exakten Begriffen
besonders hervorgehoben ist, dass der Durchschnittsfachmann in der
Lage ist, die Erfindung praktisch umzusetzen.
-
Der
Prozessor gemäß vorliegender
Erfindung kann mit niedrigem Leistungsverbrauch arbeiten und löst damit
das Problem der vorstehend beschriebenen herkömmlichen Technik und vermeidet einen
nutzlosen Leistungsverbrauch.
-
In
dem erfindungsgemäßen Prozessor
wird nur ein Cache-Speicher
freigegeben, der angeforderte Befehle speichert, während andere
Cache-Speichereinheiten gesperrt sind (dies wird auch als in einem
inaktiven Zustand befindlich bezeichnet). Da ein Cache-Speicher,
der die angeforderten Befehle nicht speichert, gesperrt ist, wird
keine Leistung ver braucht. Das heißt, dass nur der Cache-Speicher,
der die angeforderten Befehle speichert, Leistung verbraucht. Daher
wird nutzloser Leistungsverbrauch durch andere Speichereinheiten
vermieden und der Befehls-Cache mit niedrigem Leistungsverbrauch kann
verwirklicht werden.
-
1 zeigt
eine Konfiguration eines herkömmlichen
Mikroprozessors.
-
2 zeigt
eine weitere Konfiguration des herkömmlichen Mikroprozessors.
-
3 ist
ein Blockschaltbild, das eine Konfiguration eines in 2 gezeigten
Befehls-Cache 13 zeigt.
-
4 zeigt
ein Beispiel von sequenziell ausgeführten Befehlen.
-
5 zeigt
die Operation des in 3 gezeigten Befehls-Cache.
-
6 zeigt
eine weitere Operation des in 3 gezeigten
Befehls-Cache.
-
7 zeigt
eine detaillierte Ausleseoperation des in 3 gezeigten
Befehls-Cache für
jeden Schritt.
-
8 zeigt
das Prinzip dieser Erfindung in Bezug auf die Ausleseoperation aus 7.
-
9 zeigt
eine Konfiguration des Befehls-Cache gemäß der ersten Ausführungsform
dieser Erfindung.
-
10 ist
ein Schaltbild, das ein Beispiel einer in 9 gezeigten
Hit/Miss-Prüflogikschaltung zeigt.
-
11 zeigt
die Operation des in 8 gezeigten Befehls-Cache.
-
12 zeigt
eine weitere Operation des in 8 gezeigten
Befehls-Cache.
-
Nachfolgend
werden Ausführungsformen der
vorliegenden Erfindung unter Bezug auf die beiliegenden Zeichnungen
beschrieben.
-
8 ist
eine Zeichnung, die das Prinzip dieser Erfindung beschreibt. Um
die Unterschiede gegenüber
der in 7 gezeigten Auslesesequenz zu verdeutlichen, ist
die Auslesesequenz gemäß dieser Erfindung,
auf die Konfiguration von 7 angewandt,
in 8 dargestellt. Daher ist der Einfachheit halber
die Konfiguration des in 8 gezeigten Befehls-Cache gleich
der Konfiguration des in 3 oder 7 gezeigten
herkömmlichen
Befehls-Cache.
-
Gemäß dieser
Erfindung ist der Cache-RAM 18, der keine von den Schritten
(b), (c) und (d) angeforderten Befehle speichert, gesperrt (der
Cache-RAM 18 im gesperrten Zustand ist nicht durch den
Kreis mit dicker Linie markiert). Mit anderen Worten ist nur der
Cache-RAM 17 freigegeben, der die von den Schritten (b),
(c) und (d) angeforderten Befehle speichert (der Cache-RAM 17 im
freigegebenen Zustand ist durch den Kreis mit dicker Linie markiert).
Dadurch kann der Leistungsverbrauch durch die Befehls-Cache-Speichereinheiten
reduziert werden.
-
Was
erforderlich ist, ist nur, das Zuliefern der Adresse zu Speichereinheiten
zu stoppen, die den von den Schritten angeforderten Befehl nicht
speichern, um Cache-RAM(s) zu sperren.
-
Wie
beschrieben basiert der Mechanismus zum Sperren der Speichereinheiten,
die nicht die von den Schritten angeforderten Befehle speichern,
auf der Tatsache, dass die Befehle in demselben Block dieselbe Zeilenadresse
haben und dass die Befehle in demselben Block in demselben Cache-RAM
gespeichert sind. In Schritt (a) wird der erste Befehl des Blocks
gelesen. In diesem Fall werden beide Cache-Speichereinheiten aktiviert,
und der Cache-RAM 17 weist einen Hit auf. Während es
theoretisch möglich
ist, den Cache-RAM 18 zu sperren, ist erhebliche Zeit erforderlich,
was die Zugriffszeit verlän gert.
Daher werden in Schritt (a) zur Verkürzung der Zugriffszeit beide
Cache-RAMs freigegeben.
-
In
Schritt (b) bleibt die Zeilenadresse gleich. Das heißt, dass
in Schritt (b) derselbe Cache-RAM 17 wie in Schritt (a)
sicher einen Hit aufweist. Daher wird der Cache-RAM 18, der nicht die in Schritt
(a) angeforderten Befehle speichert, gesperrt. Da die Zeilenadresse
auch in Schritt (c) wiederum gleich bleibt, bleibt der Cache-RAM 18 gesperrt.
Da die Zeilenadresse auch in Schritt (d) gleich bleibt, bleibt der Cache-RAM 18 gesperrt.
-
In
Schritt (e), wenn sich die Zeilenadresse ändert, werden beide Cache-RAMs 17 und 18 wie
in Schritt (a) freigegeben.
-
Somit
wird es möglich,
den Leistungsverbrauch zu reduzieren, indem die Cache-RAMs gesperrt
werden, die die Befehle nicht speichern, wenn die verbleibenden
Befehle in demselben Block gelesen werden, obgleich alle Cache-RAMs
freigegeben sind, wenn der erste Befehl in dem Block gelesen wird.
-
9 ist
ein Blockschaltbild, das die Konfiguration des Befehls-Cache der
Ausführungsform dieser
Erfindung zeigt. In der Zeichnung haben die gleichen Bauelemente,
die in 3 gezeigt sind, die gleichen Bezugszeichen. Die
Konfiguration aus 9 ist in dem in 2 gezeigten
Befehls-Cache 13 enthalten und ein System wird durch einen
Datenprozessor aufgebaut, wie zum Beispiel einen Mikroprozessor
und dergleichen, der diesen Befehls-Cache und den externen RAM 12 enthält.
-
Der
in 9 gezeigte Befehls-Cache enthält eine Hit/Miss-Prüflogikschaltung 21A an
Stelle der in 3 gezeigten Hit/Miss-Prüflogikschaltung 21.
Die Hit/Miss-Prüflogikschaltung 21A steuert
zusätzlich
zu der Steuerung des Selektors 22 den gesperrten Zustand
des Cache-RAM, der nicht die angeforderten Befehle speichert, indem
geprüft
wird, ob sich die Zeilenadresse geändert hat, und behält den gesperrten
Zustand bei, wenn sich die Zeilenadresse nicht geändert hat,
wie unter Bezug auf 8 beschrieben wurde. Ferner
werden gemäß diesem
Prüfergebnis Cache-RAM-Auslese-Bewirkungssignale 23 und 24 an
die Cache-RAMs 17 beziehungsweise 18 ausgegeben,
um die Cache-RAMs entsprechend in einen freigegebenen Zustand und
einen gesperrten Zustand zu versetzen.
-
Die
Cache-RAM-Auslese-Bewirkungssignale 23 und 24 werden
Logik-Gates 17a und 18a zugeliefert. Wenn die
Cache-RAM-Auslese-Bewirkungssignale 23 und 24 FREIGEBEN
(EIN) sind, wird die Adresse an die Cache-RAMs 17 und 18 gegeben, und
die Adresse wird den Cache-RAMs 17 und 18 nicht
zugeliefert, wenn die Signale SPERREN (AUS) sind. Wenn hier die
Cache-RAMs 17 und 18 durch einzelne
Chips aufgebaut sind, werden die Cache-RAM-Auslese-Bewirkungssignale 23 und 24 an den
Chip-Auswahlanschluss oder dergleichen jedes Chips angelegt.
-
10 ist
ein Schaltbild, das ein Beispiel einer Konfiguration der Hit/Miss-Prüflogikschaltung 21A zeigt.
Die Hit/Miss-Prüflogikschaltung 21A hat AND-Gates 25 und 26,
einen Flipflop 27 und OR-Gates 28, 30 und 31 und
ein NOR-Gate 29. In die Hit/Miss-Prüflogikschaltung 21A eingehende
Signale sind Vergleichsresultate von Komparatoren 19 und 20,
Eingabebewirkungssignale 32 und 33, die angeben,
ob wirksame Befehle in der aus den Etiketten-RAMs 15 und 16 ausgelesenen
Adresse gespeichert sind, ein Signal 34, das den ersten
Befehl in dem Block in derselben Zeilenadresse angibt, und ein Verzweigungserfassungssignal 35,
das eine neue Adresse durch einen Verzweigungsbefehl angibt. Ferner
sind die Ausgänge
der Hit/Miss-Prüflogikschaltung 21A ein
Cache-Miss-Signal 36, Cache-RAM-Auslese-Bewirkungssignale 23 und 24 und ein
Selektor-Steuersignal 37.
-
Die
Prüflogik
in 10 wird unter Bezug auf 8 und 9 erläutert.
-
Wenn
eine Befehlsadresse den Kopf eines Blocks bezeichnet oder wenn sie
durch einen Verzweigungsbefehl eine neue Adresse wird, werden zunächst das
Signal 34 oder das Signal 35 auf EIN (HOCH) gesetzt
und durch das OR-Gate 28 an die OR-Gates 30 und 31 angelegt.
Anschließend
setzen die OR-Gates 30 und 31 die
Cache-RAM-Auslese-Bewirkungssignale 23 und 24 auf
EIN (HOCH). Dadurch werden die Cache-RAMs 17 und 18 freigegeben.
Wenn die Eingabebewirkungssignale 32 und 33 zu
diesem Zeitpunkt AUS (NIEDRIG) sind, sind die Ausgänge der
AND-Gates 25 und 26 NIEDRIG und das Cache-Miss-Signal 36 wird
mit NIEDRIG durch das OR-Gate ausgegeben. Wenn dies ausgegeben wird,
wird auf den in 2 gezeigten externen RAM 12 zugegriffen
und eine Schreiboperation eines Befehls wird ausgeführt (die
Operation aus 12 wird weiter unten beschrieben).
-
Wenn
im Gegensatz dazu der Ausgang des Komparators 19 oder 20 eine Übereinstimmung
der Etikettenadresse angibt und das entsprechende Eingabebewirkungssignal 32 oder 33 HOCH
(EIN) ist, was eine Effektivität
anzeigt, wird ein Cache-Miss-Signal
auf HOCH gesetzt, was einen Cache-Hit anzeigt. Wenn beispielsweise
der Ausgang des Komparators 19 eine Übereinstimmung der Etikettenadresse
zeigt, während
der Ausgang des AND-Gates 25 HOCH wird und das Steuersignal 37 an
den Selektor 22 angelegt wird und der Cache-RAM 17 ausgewählt wird,
wird der Flipflop 27 auf 1 gesetzt. Dadurch wird durch
den Flipflop 27 gespeichert, dass der Cache-Hit durch das
System #0 (Cache-RAM 17) erfasst wurde. Wenn im Gegensatz
dazu der Ausgang des Komparators 20 die Übereinstimmung
der Etikettenadresse zeigt, wird der Ausgang des AND-Gates 26 HOCH.
Dabei ist das Steuersignal 37 noch NIEDRIG und der Selektor 22 wählt den
Cache-RAM 18 aus. Zusätzlich
wird der Flipflop 27 auf 0 zurückgesetzt. Das heißt, dass
der Flipflop 27 als eine Speichereinrichtung zum Speichern
der Daten wirkt, die angeben, welcher Cache-Speicher einen Hit aufwies. Die
vorstehend beschriebene Operation wird in dem Schritt (a) aus 8 ausgeführt.
-
Wenn
ferner die Befehlsadresse nicht der Kopf eines Blocks ist oder wenn
kein Verzweigungsbefehl vorliegt, ist der Ausgang des OR-Gates NIEDRIG.
Dann wird einer der Cache-RAMs
unter Verwendung des in dem Flipflop 27 gespeicherten Wertes
freigegeben. Wenn 1 in dem Flipflop 27 gesetzt ist,
ist der Ausgang des OR-Gates 30 HOCH, der Ausgang des OR-Gates 31 ist
NIEDRIG, das Cache-RAM-Auslese-Bewirkungssignal 23 ist
AUS und das Cache-RAM-Auslese-Bewirkungssignal 24 ist EIN.
Wenn andererseits 0 in dem Flipflop 27 gesetzt ist, ist
der Ausgang des OR-Gates 30 NIEDRIG, der Ausgang des OR-Gates 31 ist
HOCH, das Cache-RAM-Auslese-Bewirkungssignal 23 ist AUS
und das Cache-RAM-Auslese-Bewirkungssignal 24 ist EIN.
Der Selektor 22 wählt
gemäß dem Steuersignal 37 einen
der Cache-RAMs aus. In den Schritten (b) bis (d) in 8 ist
der Ausgang des AND-Gates 25, das heißt das Steuersignal 37 HOCH,
da die Operation für
dieselbe Zeilenadresse ist. Daher wählt der Selektor 22 den
Cache-RAM 17 aus. Da darüberhinaus in den Schritten
(b) bis (d) 1 in dem Flipflop 27 gesetzt ist, bleibt das
Cache-RAM-Auslesesignal 23 eingeschaltet.
-
Auf
diese Weise bietet die Hit/Miss-Prüflogikschaltung 21A ein
Steuerverfahren eines Befehls-Cache, der eine Vielzahl von Cache-Speichereinheiten
hat, und verwirklicht das Steuerverfahren, das einen Cache-Speicher
freigibt, der angeforderte Befehle speichert, und andere Cache-Speichereinheiten
sperrt.
-
11 ist
eine Zeichnung, die zeigt, wie ein Befehl gemäß der vorstehend beschriebenen
Prüflogik
aus einem Be fehls-Cache ausgelesen wird, und entspricht der vorstehend
beschriebenen 5. Ferner zeigt 12 die
Operation gemäß der vorstehend
beschriebenen Prüflogik,
wenn ein Cache-Miss-Signal 36 eingeschaltet ist, und entspricht der
vorstehend beschriebenen 6. Ein Befehl wird aus dem in 2 gezeigten
externen RAM 12 ausgelesen und in einen der Cache-RAMs
(in dem Beispiel aus 12 den Cache-RAM 17)
wie bei der unter Bezug auf 6 beschriebenen
Operation geschrieben.
-
Vorstehend
wurde die Ausführungsform
dieser Erfindung beschrieben. Diese Erfindung ist nicht auf die
vorstehend beschriebenen Ausführungsformen
beschränkt.
Beispielsweise kann die Anzahl der Cache-RAMs drei oder mehr sein.
Mit anderen Worten kann der Assoziationsgrad drei oder mehr sein.
-
Da
ein Cache-Speicher, der keine von einer Ausführungseinheit eines Prozessors
angeforderten Befehle speichert, gemäß dieser Erfindung wie vorstehend
erläutert
gesperrt wird, kann der nutzlose Leistungsverbrauch vermieden werden
und ein Datenprozessor mit einem Befehls-Cache mit einer niedrigen
Betriebsleistung kann angeboten werden.
-
Ferner
ist die vorliegende Erfindung nicht auf diese Ausführungsformen
beschränkt,
sondern es sind verschiedene Variationen und Modifikationen möglich, ohne
den Schutzumfang der vorliegenden Erfindung zu verlassen.