-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft eine Cachespeichervorrichtung zum
Lesen von Daten mit hoher Geschwindigkeit zur Verwendung bei einer
Informationsverarbeitungseinheit, wie beispielsweise einem Mikroprozessor
(der hierin nachfolgend MPU genannt wird).
-
Zugehöriger Stand
der Technik
-
Cachespeichervorrichtungen
sind weit verbreitet verwendet worden, um die Verarbeitungsgeschwindigkeiten
von Informationsverarbeitungseinheiten zu verbessern. Die Technologien
der Cachespeichervorrichtungen sind beispielsweise beschrieben in:
- (1) Harold S. Stone, "High Performance Computer Architecture
(übersetzter
Titel)", 30. März 1989, Maruzen,
S. 23-42.
- (2) Nikkei Electronics [434], 16. November 1987, Nikkei BP Company,
S. 159-174.
-
In
den Dokumenten 1 und 2 sind die Grundaufbauten der herkömmlichen
Cachespeichervorrichtungen beschrieben. Die herkömmlichen Cachespeichervorrichtungen
enthalten einen Speicher mit einer geringeren Speichermenge als
ein externer Speicher, um die Verarbeitungsgeschwindigkeiten zu erhöhen. Dieser
Speicher wird Cachespeicher genannt. Wenn Daten, die oft gelesen
werden, im Cachespeicher gespeichert sind, können diese Daten schnell gelesen
werden. Wenn erforderliche Daten nicht im Cachespeicher gespeichert
sind, werden sie von einem externen Speicher der Cachespeichervorrichtung
gelesen. In diesem Fall werden die erforderlichen Daten mit normaler
Geschwindigkeit gelesen. Als nächstes
wird ein praktischer Aufbau der Cachespeichervorrichtung und ihres
Betriebs beschrieben werden.
-
2 ist
ein schematisches Diagramm, das eine Grundschaltung einer herkömmlichen
Cachespeichervorrichtung zeigt.
-
In 2 ist
ein Bezugszeichen 50 eine Cachespeichervorrichtung. Die
Cachespeichervorrichtung 50 gibt Cache-Daten CD zu einem
Datenlese-Requester 1 (hierin nachfolgend wird der Datenlese-Requester
Daten-Requester genannt), wie beispielsweise einer zentralen Verarbeitungseinheit,
gemäß einer
durch ihn angeforderten Cacheadresse CA aus.
-
Die
Cachespeichervorrichtung 50 weist eine Steuerschaltung 10,
einen Cache-Tagspeicher
bzw. Cache-Kennungsspeicher 11 und einen Cache-Datenspeicher 12 und
eine Übereinstimmungs-Bestimmungsschaltung 13 auf.
Die Steuerschaltung 10 steuert interne Schaltungen der
Cachespeichervorrichtung 50. Der Cache-Tagspeicher 11 ist aus einem Direktzugriffspeicher
kleiner Kapazität
hoher Geschwindigkeit (der hierin nachfolgend RAM genannt wird)
oder ähnlichem
aufgebaut. Der Cache-Datenspeicher 12 ist auch aus einem
RAM oder ähnlichem aufgebaut.
Der Cache-Tagspeicher 11 speichert einen Teil von Adressen
von in dem Cache-Datenspeicher 12 gespeicherten Daten.
Der Cache-Tagspeicher 11 hat einen Adressenanschluss A,
einen Daten-Eingabe/Ausgabe-Anschluss (der hierin nachfolgend I/O-Anschluss
genannt wird), einen Schreibfreigabeanschluss WE und Anschlüsse VAi
und VAe. Der Schreibfreigabeanschluss WE wird durch die Steuerschaltung 10 aktiviert.
Gleichermaßen
werden die Anschlüsse
VAi und VAe durch die Steuerschaltung 10 aktiviert. Der
Cache-Datenspeicher 12 speichert Daten, die oft gelesen
werden. Der Cache-Datenspeicher 12 hat einen Adressenanschluss
A, einen I/O-Anschluss D und einen Schreibfreigabeanschluss WE.
Der Schreibfreigabeanschluss WE wird durch die Steuerschaltung 10 aktiviert.
Die Übereinstimmungs-Bestimmungsschaltung 10 hat
einen Freigabeanschluss E. Wenn der Freigabeanschluss E aktiviert
wird, erfasst die Übereinstimmungs-Bestimmungsschaltung 13,
ob zwei Informationen miteinander übereinstimmen oder nicht. Wenn
die zwei Informationen miteinander übereinstimmen, gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein Treffersignal
HIT aus.
-
Die
Cachespeichervorrichtung 50 weit auch Register 14 und 15,
ein externes Register 16, Puffer 17, 18, 20 und 21 mit
drei Zuständen,
ein UND-Gatter 19 und einen IA-Bus 22 auf. Das
Register 14 hat einen Freigabeanschluss E. Wenn der Freigabeanschluss
E mit einem Treffersignal HIT aktiviert wird, speichert das Register 14 eine
Cacheadresse CA. Das Register 15 hat auch einen Freigabeanschluss E.
Wenn der Freigabeanschluss E mit einem Treffersignal HIT aktiviert
wird, speichert das Register 15 Cache-Daten CD, die über einen
ID-Bus 23 empfangen werden. Das externe Register 16 hat
einen Zählfreigabeanschluss
CE. Wenn der Zählfrei gabeanschluss
CE durch die Steuerschaltung 10 aktiviert wird, speichert
das externe Register 16 eine Adresse EA. Die Puffer 17, 18, 20 und 21 mit
drei Zuständen werden
durch die Steuerschaltung 10 gesteuert.
-
Adressenanschlüsse A des
Cache-Tagspeichers 11 und des Cache-Datenspeichers 12 sind an die
Ausgangsseite des Registers 14, das eine Cacheadresse CA
speichert, über
den Puffer 17 mit drei Zuständen und den IA-Bus 22 angeschlossen.
Das Register 14 gibt die Anzahl von Bits a einer Cacheadresse
CA zum IA-Bus 22 aus. Log2 (die
Anzahl von Tags bzw. Kennungen) = b der Anzahl von Bits a wird zu
dem Adressenanschluss A des Cache-Tagspeichers 11 zugeführt. Der
Teil niedriger Ordnung (b + 1) {wobei 1 = Log2 (die
Anzahl von Leitungen)} der Cacheadresse CA wird zum Adressenanschluss
A des Cache-Datenspeichers 12 zugeführt. Der
Teil hoher Ordnung (a – b – 1) der
Cacheadresse CA wird zur Übereinstimmungs-Bestimmungsschaltung 13 zugeführt. Der
Teil hoher Ordnung (a – b – 1) der
Cacheadresse CA wird zu sowohl dem I/O-Anschluss D des Cache-Tagspeichers 11 als
auch der Übereinstimmungs-Bestimmungsschaltung 13 zugeführt. Der
Anschluss VAo des Cache-Tagspeichers 11 ist über das UND-Gatter 19 an
den Freigabeanschluss E der Übereinstimmungs-Bestimmungsschaltung 13 angeschlossen,
die durch die Steuerschaltung 10 gesteuert wird.
-
Der
I/O-Anschluss D des Cache-Datenspeichers 12 ist an den
ID-Bus 23 angeschlossen. Der ID-Bus 23 ist an
die Eingangsseite des Registers 15 angeschlossen. Das externe
Register 16 ist an die Ausgangsseite des Registers 14 angeschlossen.
Der Zählerfreigabeanschluss
CE der Steuerschaltung 10 wird durch die Steuerschaltung 10 aktiviert.
Wenn der Anschluss CE aktiviert wird, speichert das externe Register 16 die
Anzahl von Bits a (= Adresse EA) der vom Register 14 zugeführten Cacheadresse
CA. Die Ausgangsseite des externen Registers 16 ist an
sowohl den IA-Bus 22 über
den Puffer 20 mit drei Zuständen als auch an einen Adressenanschluss 30 des
externen Speichers 30, der aus einem RAM großer Kapazität und niedriger
Geschwindigkeit oder ähnlichem
aufgebaut ist, angeschlossen. Der externe Speicher 30 hat
auch einen Datenausgabeanschluss D, einen Anschluss D-WAIT bzw.
D-WARTEN und so weiter, so wie den Adressenanschluss A. Der Anschluss
D-WAIT gibt ein Signal aus, das veranlasst, dass die Cachespeichervorrichtung 50 in
einen Wartezustand gelangt. Der Datenausgabeanschluss D ist über den
Puffer 21 mit drei Zuständen
an den ID-Bus 23 angeschlossen. Der Anschluss D-WAIT ist
an die Eingangsseite der Steuerschaltung 10 angeschlossen.
-
3 ist
ein schematisches Diagramm zum Erklären von im Cache-Tagspeicher 11 gespeicherten
Daten. Der Cache-Tagspeicher 11 ist aus Adressen (Tags
bzw. Kennungen), gültigen
Bits und so weiter aufgebaut. Die Adressen (Tags) sind derart gruppiert,
dass der Hardwareaufwand reduziert wird. Die Anzahl von Gruppen
wird die Anzahl von Zeilennummern (oder die Anzahl von Blöcken) genannt.
Die benachbarten Adressen sind normalerweise gruppiert. In 3 hat
eine Gruppe vier Daten. Beispielsweise sind Daten mit denselben
Bits außer
den zwei Bits niedriger Ordnung als eine Gruppe definiert.
-
Als
nächstes
wird der Betrieb der in 2 gezeigten Cachespeichervorrichtung 50 beschrieben werden.
-
Wenn
der Cache-Requester 1 eine Cacheadresse CA zur Cachespeichervorrichtung 50 zuführt, wird
die Cacheadresse CA temporär
im Register 14 gespeichert. Darauf folgend wird die Cacheadresse CA
gelesen und dann wird bestimmt, ob Daten entsprechend der Cacheadresse
CA im Cachespeicher 12 gespeichert sind oder nicht (nämlich ob
ein Treffer stattfindet oder nicht). Anders ausgedrückt bestimmt die Übereinstimmungs-Bestimmungsschaltung 13, ob
die Cacheadresse CA, die vom Register 14 über den
Puffer 17 mit drei zuständen
zum IA-Bus 22 ausgegeben worden ist, mit dem Inhalt des
Cache-Tagspeichers 11 übereinstimmt.
Wenn sie miteinander übereinstimmen
(hierin nachfolgend wird dieser Zustand Treffer genannt), gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein
Treffersignal HIT zur Steuerschaltung 10 und zu den Freigabeanschlüssen E der
Register 14 und 15 aus. Wenn das Treffersignal
HIT zur Steuerschaltung 10 eingegeben wird, aktiviert ein
Ausgangssignal der Steuerschaltung 10 die Schreibfreigabeanschlüsse WE des
Cache-Tagspeichers 11 und des Cache-Datenspeichers 12.
Somit werden Daten, die mit dem Teil niedriger Ordnung (b + 1) der
Cacheadresse CA bestimmt sind, vom Cache-Datenspeicher 12 zum
ID-Bus 23 zugeführt.
Die zum ID-Bus 23 zugeführten
Daten sind Cachedaten CD und werden über das Register 15 zum
Cache-Requester 1 ausgegeben.
-
Wenn
andererseits die Daten entsprechend der durch den Cache-Requester 1 angeforderten
Cacheadresse CA sind (dieser Zustand wird hierin nachfolgend Nichttreffer
genannt), führt
das Cacheregister 16, das durch das Ausgangssignal der Steuerschaltung 10 aktiviert
wird, die Anzahl von Bits a (EA) der Cacheadresse CA zum Adressenanschluss A
des Speichers 30 zu. Somit werden Aufzeichnungsdaten entsprechend
der Anzahl von Bits a vom Ausgangsanschluss D des Speichers 30 zugeführt. Die
Lesedaten werden über
den Puffer 21 mit drei Zuständen zum Cache-Datenspeicher 12 zugeführt. Somit
wird der Inhalt des Cache-Datenspeichers 12 aktualisiert
bzw. einem Updaten unterzogen. Darauf folgend sind die Lesedaten
Cachedaten CD und werden über
den ID-Bus 23 und das Register 15 zum Cache-Requester 1 zugeführt. In
diesem Fall sind die Lesedaten Cachedaten CD.
-
Somit
werden dann, wenn ein Nichttreffer stattfindet, Daten für eine Zeile,
die eine Adresse enthält,
wo der Nichttreffer stattfand, aus dem externen Speicher 30 gelesen.
Folglich wird der Inhalt des Cache-Datenspeichers 12 aktualisiert.
Es gibt zwei Verfahren zum Aktualisieren bzw. Updaten des Inhalts des
Cache-Datenspeichers 12 entsprechend dem Auftreten eines
Nichttreffers und zum Zuführen
von realen Cachedaten CD zum Cache-Requester 1.
-
Erstes Verfahren
-
4 ist
ein Zeitdiagramm, dass den Betrieb der in 2 gezeigten
Cachespeichervorrichtung 50 zeigt. In der Zeichnung stellen
m, n + 1, ... Adressen dar. Eine Zeit für einen Mehraufwand für einen
Nichttreffer ist eine Zeitperiode, für welche Cachedaten gültig werden,
nachdem ein Nichttreffer stattfand.
-
In 4 gilt
n + 1 = "x ... x01" (in binärer Notation).
Wie es in 3 gezeigt ist, hat eine Zeile
vier Adressen. Auf den externen Speicher kann in zwei Zyklen zugegriffen
werden. Ein Tag bzw. eine Kennung enthält ein gültiges Bit. In jeder von vier
Schreiboperationen werden Tagdaten (= "x ... x") geschrieben. Jedoch wird in der letzten
Schreiboperation eine gültige
Information zu dem gültigen
Bit geschrieben. Die zwei Bits niedriger Ordnung des externen Registers 16,
das in 2 gezeigt ist, arbeiten als ein Zähler. Wann
immer ein Nichttreffer stattfindet, wird der Wert der Cacheadresse
CA geladen und werden die zwei Bits niedriger Ordnung auf "00" gelöscht.
-
Als
das einfachste Verfahren zum Aktualisieren bzw. Updaten des Cache-Datenspeichers 12 nach
dem Auftreten eines Nichttreffers und zum Zuführen der realen Cachedaten
CD zum Cache-Requester 1 werden, wie es in 4 gezeigt ist,
wenn ein Nichttreffer stattfindet, Daten von einer vorbestimmten
Adresse von einer Zeile gelesen, die sie enthält. Wenn beispielsweise, wie
es in 4 gezeigt ist, eine Zeile vier Adressen hat, werden
Daten in der Reihenfolge von "xx
... x00", "x ... x01", "x ... x10" und "x ... x11" gelesen. Während die
Daten gelesen werden, wird der Cache-Datenspeicher 12 zum
Updaten der Daten verwendet. Somit werden die Cachedaten CD selbst
dann, wen sie gelesen werden, nicht gültig.
-
Zweites Verfahren
-
Durch
ein Speicherverschachtelungsverfahren oder ein Zugriffsverfahren,
das die Charakteristiken eines dynamischen RAM (der hierin nachfolgend DRAM
genannt wird) mit beispielsweise einem Seitenmode oder einer statischen
Spalte, kann eine Burstübertragung
unterstützt
werden, um die Zeit für
einen Mehraufwand für
einen Nichttreffer zu verkürzen. 5 zeigt
einen Aufbau des zweiten Verfahrens.
-
6 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung 51 gemäß dem zweiten
Verfahren zeigt. Die mit 2 gemeinsamen Teile des Aufbaus
sind mit denselben Bezugszeichen bezeichnet.
-
Die
Cachespeichervorrichtung 51 verwendet einen DRAM-Seitenmode.
Der Unterschied zwischen der in 6 gezeigten
Cachespeichervorrichtung und derjenigen, die in 2 gezeigt
ist, besteht darin, dass eine Zählerausgabe
des externen Registers 16 durch einen Addierer 35 inkrementiert
wird. Die Ausgabe des Addierers 35 wird zu einem Selektor 36 zugeführt. Die
Ausgabe des Selektors 36 wird zum Zähler zugeführt. In 5 stellt
ein Bezugszeichen 40 eine angeschlossene Leitung dar.
-
Eine
durch einen Cache-Requester 1 angeforderte Cacheadresse
CA ist aus einem Tag bzw. einer Kennung TAG, einer Zeilenadresse
LA und einer Innenzeilenadresse IA aufgebaut, die in der Reihenfolge
zum signifikantesten Bit (MSB) zum am wenigsten signifikanten Bit
(LSB) des Registers 14 gespeichert sind. Eine der Ausgaben
der Innenzeilenadresse 1A und des Addierers 35 wird
durch den Selektor 36 ausgewählt. Die Ausgabe des Selektors 36 wird zu
einem Zähler
eines externen Registers 16 zugeführt. Der externe Speicher 30 ist
aus einem DRAM aufgebaut. Zum Betreiben des DRAM im Seitenmode werden
ein niedriges Adressenabtastsignal {das hierin nachfolgend RASN (N stellt eine
negative Logik dar) genannt wird}, ein Spaltenadressenabtastsignal
(das hierin nachfolgend CASN ge nannt wird)
und ein Speichersteuersignal S10, das ein Wartesignalverhältnis darstellt,
zwischen dem externen Speicher 30 und der Steuerschaltung 10 ausgetauscht.
-
Im
DRAM-Seitenmode werden, während RASN auf dem L-Pegel ist, CASN-Pulse
aufeinander folgend zugeführt,
um Lese-/Schreib-Operationen mit hoher Geschwindigkeit durchzuführen. In
diesem Mode wird, während
RASN auf dem "L"-Pegel ist und der
Bitleitungspegel auf dem "L"-Pegel oder dem "H"-Pegel gehalten wird, die CAS-Operation
wiederholt durchgeführt,
um Daten zu einer erwünschten Bitleitung
zu schreiben oder von dieser zu lesen.
-
6 ist
ein Zeitdiagramm, das den Betrieb der 5 zeigt.
In diesem Zeitdiagramm hat eine Leitung bzw. Zeile vier Daten. CK
stellt einen Takt dar. n stellt dar, dass die zwei Bits niedriger
Ordnung "0" sind.
-
In
der in 5 gezeigten Cachespeichervorrichtung 51 bestimmt
die Übereinstimmungs-Bestimmungsschaltung 13 dann,
wenn eine erforderliche Cacheadresse CA im Register 14 gespeichert
ist, ob ein Tag TAG, das im Register 14 gespeichert ist,
mit Daten übereinstimmt
oder nicht, die über
den Datenausgangsanschluss Do aus dem Cache-Tagspeicher 11 gelesen
sind. Wenn diese Daten nicht miteinander übereinstimmen, findet ein Nichttreffer
statt. Somit wird das im Register 14 gespeicherte Tag TAG
zum externen Register 16 über eine Leitung 40 zugeführt. Die
Ausgabe des externen Registers 16 wird zum Adressenanschluss
A des externen Speichers 30 zugeführt. Mit dem Speichersignal
S10 werden Daten vom Datenanschluss D des externen Speichers 30 mit
hoher Geschwindigkeit im Seitenmode gelesen und als Cachedaten CD
zum Eingangsanschluss Di des Cache-Datenspeichers 12 zugeführt. Die
Cachedaten CD werden vom Ausgangsanschluss Do des Cache-Datenspeichers 12 gelesen.
Somit kann eine Zeit für
einen Mehraufwand für
einen Nichttreffer verkürzt
werden.
-
Jedoch
haben die oben beschriebenen Cachespeichervorrichtungen 50 und 51 die
folgenden Nachteile.
-
Bei
den Cachespeichervorrichtungen 50 und 51 ist,
wie es in 2 gezeigt ist, wenn ein Nichttreffer
auftritt, da es eine lange Zeit dauert, die Nichttrefferdaten zum
Cache-Datenspeicher 12 zu schreiben, eine Zeit für einen
Mehraufwand für
einen Nichttreffer, für
welche Daten gelesen werden, lang.
-
Bei
der in 5 gezeigten Cachespeichervorrichtung 51 sind
deshalb, weil die Bearbeitungszeit des DRAM, der den externen Speicher 30 und
so weiter bildet, kürzer
als die Burstübertragungsrate
ist, um die Nichttrefferdaten zu lesen, mehrere Taktperioden erforderlich.
Zuerst folgen einem Nichttrefferdatum vier Daten, wie es in 6 gezeigt
ist.
-
Bei
der Cachespeichervorrichtung 51 tritt selbst dann, wenn
die nächste
Zeile einer Zeile, die eine Adresse enthält, bei welcher ein Nichttreffer stattfand,
erforderlich ist, die Cachespeichervorrichtung 51 aus dem
Burstübertragungsmode
aus. Somit sollte die Cachespeichervorrichtung 51 warten,
bis die ersten Daten der Zeile empfangen werden, nachdem ein weiterer
Nichttreffer stattfand. Anders ausgedrückt werden dann, wenn Daten
einer Zeile, die einen Nichttreffer enthält, aktualisiert werden, obwohl es
geschätzt
werden kann, dass ein weiterer Nichttreffer bei Daten der darauf
folgenden Adressen stattfinden wird, Daten von nur einer vorbestimmten
Zeile aktualisiert. Somit ist die Trefferrate gering. Folglich war
es schwierig, Cachespeicher mit technischer Zufriedenheit zu erreichen.
-
In
GB-A-2 056 135 ist ein Datenverarbeitungssystem mit einem Cachespeicher
vorgesehen. Eine Vorrichtung im Cachespeicher liest die gesamte Information
auf dem Systembus in einen First-in-First-out-Puffer mit einer Vielzahl
von Registern, einem Schreibadressenzähler, einem Leseadressenzähler und
einer Einrichtung zum selektiven Verarbeiten der Information. Der
Cachespeicher ist Wortorientiert und weist weiterhin ein Directory,
einen Datenpuffer und eine zugehörige
Steuerlogik auf. Der Cachespeicher weist weiterhin eine Vergleichsschaltung
und ein Register zum Speichern der Adresseneingangsinformation und
zum Erzeugen einer Vielzahl von Adresseninformation niedriger Ordnung,
die aufeinander folgend höhere
Adressen hervorholt, auf.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, einen Cachespeicher
zur Verfügung
zu stellen, der eine lange Zeit für einen Mehraufwand für einen
Nichttreffer und eine niedrige Trefferrate ohne eine Erhöhung eines
Hardwareaufwands hat.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird eine Cachespeichervorrichtung
zur Verfügung
gestellt, wie sie im Anspruch 1 definiert ist.
-
Gemäß einem
weiteren Aspekt wird eine Cachespeichervorrichtung zur Verfügung gestellt,
die folgendes aufweist: Einen ersten Cachespeicher zum Speichern
Adresseninformation hoher Ordnung einer Adresseninformation entsprechend
erwünschter
Daten, einen zweiten Cachespeicher zum Speichern einer Vielzahl
Adresseninformation niedriger Ordnung und der Adresseninformation
hoher Ordnung und einer Vielzahl von Daten entsprechend der Vielzahl von
Adresseninformation niedriger Ordnung, eine erste Übereinstimmungs-Bestimmungsschaltung zum
Vergleichen Adresseninformation hoher Ordnung der Adresseninformation,
die mit der Adresseninformation hoher Ordnung eingegeben wird, die
im ersten Cachespeicher gespeichert ist, um zu bestimmen, ob sie
miteinander übereinstimmen
oder nicht, ein Register zum Speichern einer Vielzahl von Eingangsadresseninformationen
und zum Erzeugen einer Vielzahl von Adresseninformationen, die in
der Adresseninformation hoher Ordnung der Eingangsadresseninformation
enthalten sind, nur dann, wenn die erste Erfassungsschaltung einen
Zustand keiner Übereinstimmung
bestimmt hat, eine Steuerschaltung zum Lesen von Daten entsprechend
der Eingangsadresseninformation aus dem zweiten Cachespeicher, wenn
die erste Übereinstimmungs-Bestimmungsschaltung
einen Übereinstimmungszustand bestimmt
hat, zum Schreiben der Adresseninformation hoher Ordnung der Adresseninformation
entsprechend der Vielzahl von Adresseninformationen, die in der
Adresseninformation hoher Ordnung der Adresseninformation enthalten
sind, die durch das Register erzeugt ist, zum ersten Cachespeicher,
wenn die erste Übereinstimmungs-Bestimmungsschaltung
einen Zustand keiner Übereinstimmung
bestimmt hat, und zum Schreiben der Adresseninformation niedriger Ordnung
der Adresseninformation und der Vielzahl von Daten entsprechend
der Adresseninformation, die in einem externen Speicher gespeichert
ist, zum zweiten Cachespeicher, eine zweite Übereinstimmungs-Bestimmungsschaltung
zum Bestimmen, ob die durch das Register erzeugte Adresseninformation
mit der Eingangsadresseninformation übereinstimmt oder nicht, und
eine Ausgabeschaltung zum Ausgeben von Daten entsprechend der von
dem zweiten Cachespeicher zugeführten
Eingangsadresseninformation, wenn die erste Übereinstimmungs-Bestimmungsschaltung
einen Übereinstimmungszustand
bestimmt hat, zum Ausgeben von Daten entsprechend der von dem externen
Speicher zugeführten
Eingangsadresseninformation, wenn die zweite Übereinstimmungs-Bestimmungsschaltung einen Übereinstimmungszustand
bestimmt hat, und zum Ausgeben keiner Daten entsprechen der Eingangsadresseninformation,
wenn sowohl die erste als auch die zweite Übereinstimmungs-Bestimmungsschaltung
einen Zustand keiner Übereinstimmung
bestimmt haben.
-
Kurze Beschreibung der
Zeichnungen
-
1 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einem
ersten Ausführungsbeispiel
zeigt;
-
2 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einer
ersten zugehörigen
Referenz nach dem Stand der Technik zeigt;
-
3 ist
ein schematisches Diagramm zum Erklären des in einem Cache-Tagspeicher gespeicherten
Inhalts;
-
4 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 2 zeigt.
-
5 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einer
zweiten zugehörigen
Referenz nach dem Stand der Technik zeigt;
-
6 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 5 zeigt;
-
7 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 1 zeigt:
-
8 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einem
zweiten Ausführungsbeispiel
zeigt;
-
9 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 8 zeigt;
-
10 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
dritten Ausführungsbeispiel
zeigt;
-
11 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 10 zeigt;
-
12 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
vierten Ausführungsbeispiel
zeigt;
-
13 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 12 zeigt;
-
14 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
fünften
Ausführungsbeispiel
zeigt;
-
15 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 14 zeigt;
-
16 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
sechsten Ausführungsbeispiel
zeigt; und
-
17 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 16 zeigt.
-
Beste Arten
zum Erreichen der Erfindung
-
1 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einem
ersten Ausführungsbeispiel
zeigt, das nützlich
zum Verstehen der Erfindung ist.
-
In 1 ist
ein Bezugszeichen 100 eine Cachespeichervorrichtung gemäß dem ersten
Ausführungsbeispiel.
Der Unterschied zwischen der in 1 gezeigten
Cachespeichervorrichtung 100 und der in 2 gezeigten
Cachespeichervorrichtung 50 besteht darin, dass die erstere
eine Übereinstimmungs-Bestimmungsschaltung 150 und
ein ODER-Gatter 151 enthält. Wann immer ein Cache-Datenspeicher
aufgrund des Auftretens eines Nichttreffers aktualisiert wird, wird
ein Freigabeanschluss E der Übereinstimmungs-Bestimmungsschaltung 150 durch
ein Ausgangssignal einer Steuerschaltung 110 aktiviert.
Somit arbeitet die Übereinstimmungs-Bestimmungsschaltung 150.
Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt,
ob die Anzahl von Bits a einer von einem Register 114 empfangenen
Cacheadresse CA mit Adressen von Daten über einstimmt oder nicht, die von
einem externen Speicher 130 zu einem Cachespeicher 112 geschrieben
sind. Das ODER-Gatter 151 führt eine ODER-Verknüpfung der
Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und eines
Tag-Treffersignals
TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 empfangen
ist, durch. Wenn sie miteinander übereinstimmen, wird ein Freigabeanschluss
E eines Registers 115 aktiviert.
-
Wenn
eine Steuerschaltung 110 das Tag-Treffersignal TAG.HIT
von der Übereinstimmungs-Bestimmungsschaltung 113 empfängt, gibt die
Steuerschaltung 110 ein Cache-Aktualisierungssignal bzw.
Cache-Updatesignal S10a aus, um Puffer 120 und 121 mit
drei Zuständen
einzuschalten und von einem Datenausgangsanschluss D des externen Speichers 130 gelesene
Daten zu einem ID-Bus 123 auszugeben. Die gelesenen Daten,
die zum ED-Bus 123 ausgegeben werden, werden zum Register 115 zugeführt, das
durch das ODER-Gatter 151 freigegeben wird. Die Ausgabe
des Registers 115 sind Cachedaten und wird zu dem Cache-Requester 1 zugeführt. Anders
ausgedrückt
werden dann, wenn der Cachespeicher aufgrund des Auftretens eines
Nichttreffers aktualisiert wird, wenn die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt
hat, dass zwei Daten miteinander übereinstimmen, Daten, die vom
externen Speicher 130 gelesen werden, umgangen. Stattdessen
werden die Daten als Cachedaten CD zum Cache-Requester 1 zugeführt.
-
Als
nächstes
wird unter Bezugnahme auf 6 der Betrieb
der in 1 gezeigten Cachespeichervorrichtung 100 beschrieben
werden.
-
6 ist
ein Zeitdiagramm, das den Betrieb der in 1 gezeigten
Cachespeichervorrichtung 200 zeigt. In 6 wird
angenommen, dass n + 1 = "x
... x01" gilt und
dass n + 4 = "Y
...Y00" gilt. Zusätzlich wird
angenommen, dass eine Zeile vier Adressen hat. Der externe Speicher 130 kann
anfangs aufeinander folgende Adressen mit einem Wartezyklus durch
eine Burstübertragung
lesen. Wenn die letzte Schreiboperation durchgeführt wird, wird "1" zu einem gültigen Bit geschrie ben. Die
zwei Bits niedriger Ordnung des externen Registers 116 sind
ein Zähler, der
dann arbeitet, wenn ein Zählfreigabeanschluss CE
aktiviert wird.
-
In 1 wird
dann, wenn der Cache-Requester 101 eine Cacheadresse CA
von erwünschten
Daten zur Cachespeichervorrichtung 100 zuführt, die
Cacheadresse CA zum Register 114 geschrieben. Solange der
Cache-Datenspeicher 112 nicht aktualisiert wird, wird der
Puffer 117 mit drei Zuständen mit einem Cache-Aktualisierungssignal
S10a eingeschaltet, das von der Steuerschaltung 110 zugeführt wird.
Somit wird die in Register 114 gespeicherte Cacheadresse
CA zu einem IA-Bus 122 zugeführt. Der Cache-Datenspeicher 112 empfängt Adressen
eines vorbestimmten Tags und einer Leitung bzw. Zeile vom IA-Bus 122 (beispielsweise
einen Teil niedriger Ordnung (b + 1) über den Adressenanschluss A).
Gespeicherte Daten entsprechen der Adresse werden über den
I/O-Anschluss D zum ID-Bus zugeführt.
-
Zusätzlich werden,
um zu bestimmen, ob in dem Cache-Datenspeicher 112 gespeicherte
Daten der angeforderten Cacheadresse CA entsprechen oder nicht,
die im Cache-Tagspeicher 111 gespeicherten Daten entsprechen
der vorbestimmten Tagadresse Log2 (die Anzahl
von Tags) = b von dem I/O-Anschluss D gelesen. Die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt,
ob die gelesenen Daten mit dem vorbestimmten Tag übereinstimmen
oder nicht. Wenn der Cache-Datenspeicher 112 im
Lesezustand ist (das heißt
nicht im Cache-Aktualisierungszustand)
und der Inhalt des Cache-Tagspeichers 111, der durch den
Anschluss VAo des Cache-Datenspeichers 111 dargestellt
ist, gültig ist,
ist das Ergebnis der Bestimmung durch die Übereinstimmungs-Bestimmungsschaltung 113,
die durch das UND-Gatter 124 freigegeben ist, gültig. Somit führt die Übereinstimmungs-Bestimmungsschaltung 113 ein
Tag-Treffersignal TAG.HIT zur Steuerschaltung 110 zu.
-
An
dieser Stelle wird dann, wenn die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt hat,
dass beide Daten einander übereinstimmen,
ein Treffersignal HIT, das von dem ODER-Gatter 151 des Tag-Treffersignals
TAG.HIT ausgegeben wird, zu dem Cache-Requester 1 zugeführt, um
ihn darüber zu
informieren, dass der Inhalt des ID-Busses 123 gültig ist.
Das Treffersignal HIT lässt
zu, dass zum Register 115 geschrieben wird. Zusätzlich lässt das Treffersignal
HIT zu, dass Daten zum Register 114 geschrieben werden,
um eine nächste
Cacheadresse vom Cache-Requester 1 zu empfangen. Andererseits
findet dann, wenn das Tag- Treffersignal TAG.HIT,
das von der Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben
wird, darstellt, dass beide Daten nicht miteinander übereinstimmen, ein
Nichttreffer statt. In diesem Fall wird beim nächsten Zyklus der Cache-Datenspeicher 112 aktualisiert.
-
Wenn
der Cache-Datenspeicher 114 im Aktualisierungszustand ist,
gibt die Steuerschaltung 110 ein Cache-Aktualisierungssignal
SIOa zu den Puffern 120 und 121 mit drei Zuständen aus,
so dass sie eingeschaltet werden. Somit können Daten von dem externen
Speicher 112 empfangen werden. Zusätzlich aktiviert die Steuerschaltung 110 den
Zähl-Freigabeanschluss
CE des externen Registers 116, das eine Adressenzufuhrquelle
zum IA-Bus 122 ist, um die Lesedaten-Zufuhrquelle des ID-Busses 123 zum
externen Speicher 130 zu ändern. Wann immer ein Nichttreffer
stattfindet, wird der Inhalt des externen Registers 116 immer
aktualisiert.
-
An
dieser Stelle gelangt der Signalpegel eines Anschlusses D-WARTEN
des externen Speichers 130, was darstellt, dass die externen
Lesedaten in einer gültigen
Zeitgabe sind, zu einem "L"-Pegel. Zusätzlich ist
der Signalpegel des Cache-Aktualisierungssignals
SIOa, das von der Steuerschaltung 110 ausgegeben wird,
auf einem "H"-Pegel. Somit aktiviert
die Steuerschaltung 110 Schreibfreigabeanschlüsse WE des
Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 in
vorbestimmten Intervallen. Da die zwei Bits niedriger Ordnung des
externen Registers 116 als Zähler wirken, wird dann, wenn die
Schreibfreigabeanschlüsse
WE des Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 aktiviert
werden, ein Zähl-Freigabeanschluss
CE des externen Registers 116 aktiviert, um dadurch den Zähler aufwärts zu zählen.
-
Diese
Operation wird n Mal (beispielsweise vier Mal) wiederholt. Somit
werden alle Daten von Leitungsadressen bzw. Zeilenadressen, wo ein Nichttreffer
stattfindet, aktualisiert. Daten werden von dem Datenausgangsanschluss
D des externen Speichers 130 gelesen. Die gelesenen Daten
werden zu einem I/O-Anschluss D des Cache-Datenspeichers 112 über den
Puffer 121 mit drei Zuständen zugeführt. Somit wird der Cache-Datenspeicher 112 aktualisiert.
Die Steuerschaltung 110 gibt ein Signal aus, das darstellt,
dass nur die vierte Operation gültig
ist, und führt
dieses Signal zu einem Anschluss VAi des Cache-Tagspeichers 111 zu.
Die Cache-Aktualisierungsoperation
bei diesem Ausführungsbeispiel
ist dieselbe wie diejenige der Cachespeichervorrichtung 50 gemäß der ersten
zugehörigen
Referenz nach dem Stand der Technik, die in 2 gezeigt
ist.
-
Bei
diesem Ausführungsbeispiel
werden zusätzlich
zu der unbeschriebenen Cache-Aktualisierungsoperation
bzw. Updateoperation, während
welcher Cachedaten aktualisiert werden, dann, wenn zum Cache-Datenspeicher 112 zu
schreibende Schreibdaten durch den Cache-Requester 1 angefordert
werden, die Schreibdaten zum Cache-Requester 1 umgeleitet.
Anders ausgedrückt
veranlasst, während
Cachedaten aktualisiert werden, die Ausgabe der Steuerschaltung 110,
dass die Übereinstimmungs-Bestimmungsschaltung 150 freigegeben wird.
Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt,
ob der Inhalt des Registers 114 mit dem Inhalt des externen
Registers 116 übereinstimmt
oder nicht. Die Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und
das Tag-Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 150 zugeführt wird, werden
zu dem ODER-Gatter 151 zugeführt. Die Ausgabe des ODER-Gatters 151 ist
ein Treffersignal HIT. Das Treffersignal HIT wird zu dem Cache-Requester 1 zugeführt. Zusätzlich wird
das Register 115 freigegeben. Somit werden aus dem externen
Speicher 130 zum ID-Bus 123 gelesene Daten zum
Cache-Requester 1 zugeführt.
-
Diese
Operation wird unter Bezugnahme auf 7 beschrieben.
Wenn ein Nichttreffer bei n + 1 einer Cacheadresse CA bei einer
Taktperiode 2 stattfindet, aktualisiert die Cachespeichervorrichtung 100 den
Cache-Tagspeicher 111 und den Cache-Datenspeicher 112.
An dieser Stelle wird das Signal TAG.HIT ein "L"-Zustand, der darstellt,
dass die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt
hat, dass die im Register 114 gespeicherten Daten nicht
mit den im Cache-Datenspeicher 112 gespeicherten
Daten übereinstimmen.
Bei einer Taktperiode 3 gibt die Steuerschaltung 110 die Übereinstimmungs-Bestimmungsschaltung 150 und
das externe Register 116 entsprechend dem Signalzustand
von TAG.HIT frei. Zusätzlich
veranlasst die Steuerschaltung 150, dass der Cache-Tagspeicher 111 und
der Cache-Datenspeicher 112 einen Freigabezustand schreiben.
Die Cacheadresse CA ("x
... x01") wird direkt
in das externe Register 116 zugeführt. Adressendaten 9EA werden
zu der Übereinstimmungs-Bestimmungsschaltung 150 entsprechend
der Cacheadresse CA und der zum externen Register 116 zugeführten Cacheadresse
eingegeben. An dieser Stelle arbeiten die zwei Bits niedriger Ordnung
des externen Registers 116 als ein Zähler. Zusätzlich zählt der Zähler dann, wann immer eine
Zeile zu den Cachespeichern 111 und 112 geschrieben
wird, um 1 aufwärts.
Somit sind die Adressendaten EA bei einer Taktperiode 4 "x ... x01 ". Bei Taktperioden 5, 6 und 7 sind
die Adressendaten EA jeweils "x
... x10", "x ... x11" und "x ... x00". Somit bestimmt
die Übereinstimmungs-Bestimmungsschaltung 150 bei
der Taktperiode 4, dass die Cacheadresse CA mit den Adressendaten
EA übereinstimmt.
Folglich gibt die Übereinstimmungs-Bestimmungsschaltung 150 die
Register 114 und 115 frei. Der externe Speicher 130 gibt
Daten entsprechend den Adressendaten EA "x ... x01", die durch den externen Speicher 116 erzeugt
sind, aus. Die Ausgabe des externen Speichers 130 sind Cachedaten
CD und werden über
das Register 115 zum Cache-Requester 101 zugeführ. Zusätzlich werden
die Cache-Daten CD zum Cache-Datenspeicher 112 geschrieben.
Da das Register 114 freigegeben ist, führt der Cache-Requester 101 n
+ 2 ("x ... x10") als die nächste Cacheadresse
CA zum Register 114 zu. Bei einer Taktperiode 5 aktualisiert
die Cachespeichervorrichtung 100 Cachedaten der Zeile einschließlich n
+ 1. Anders ausgedrückt
aktualisiert die Cachespeichervorrichtung 100 Daten entsprechend den
Adressendaten "x
... x10", die durch
das externe Register 116 erzeugt werden, und schreibt sie
zum Cache-Datenspeicher 112. Da das Register 114 n
+ 2 gespeichert hat und der Cache-Tagspeicher 111 das Tag "x ... x" nicht gespeichert
hat, bestimmt die Übereinstimmungs-Bestimmungsschaltung 113 nicht,
dass sie miteinander übereinstimmen.
Jedoch deshalb, weil die Übereinstimmungs-Bestimmungsschaltung 150 und
das externe Register 116 in einem Freigabezustand gehalten
sind, wird n + 2 der Cacheadresse CA zur Übereinstimmungs-Bestimmungsschaltung 150 zugeführt. An
dieser Stelle bestimmt die Übereinstimmungs-Bestimmungsschaltung 150 deshalb,
weil sie dieselben Adressendaten wie n + 2 von der anderen Eingabe
empfangen hat, dass zwei Daten miteinander übereinstimmen, um dadurch zu
veranlassen, dass die Register 114 und 115 im
Freigabezustand gehalten werden. Die Daten entsprechend n + 2 der
durch den Cache-Requester 101 angeforderten Cacheadresse
CA werden zu sowohl dem Cache-Datenspeicher 112 als auch
dem Cache-Requester 101 über das Register 115 zugeführt. Da
das Register 114 in einem Freigabezustand ist, führt der
Cache-Requester 1 n
+ 3 ("x ... x11") als die nächsten Cachedaten
CA zu. Da n + 3 Adressendaten sind, denen n + 2 vorangeht, wird
bei einer Taktperiode 6 dieselbe Operation wie diejenige
bei der Taktperiode 5 durchgeführt. Jedoch wird bei einer Taktperiode 7 n
+ 4 (Y ... Y00'") der Cacheadresse CA
eingegeben. n + 4 stimmt mit dem im Cache-Tagspeicher 111 gespeicherten
Tag überein.
Jedoch stimmt n + 4 nicht mit den Adressendaten "x ... x00" überein,
für welche
die vierte Schreiboperation durchgeführt wird. Somit werden die
Freigabezustände
der Register 114 und 115 gelöscht. An dieser Stelle wird "x ... X00" als die Adressendaten
EA zum externen Speicher 130 zugeführt. Zusätzlich sind Daten entsprechen
den Adressendaten "X
... X00" zum Cache-Datenspeicher 112 und
zum Register 115 zugeführt worden,
und werden Daten entsprechend "x
... x00" als die
Cachedaten CD über
das Register 115 zum Cache-Requester 101 zugeführt. Bei
der Taktperiode 7 wird "x
... x" zum Cache-Tagspeicher 111 geschrieben.
Bei einer Taktperiode 8 wird dieselbe Operation wie diejenige
bei der Taktperiode 2 durchgeführt. Wenn zwei Tags nicht miteinander übereinstimmen,
wird bei einer Taktperiode 9 oder später die oben beschriebene Aktualisierungsoperation
durchgeführt.
-
Zweites Ausführungsbeispiel
-
8 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung
gemäß einem
zweiten Ausführungsbeispiel
zeigt, das nützlich
zum Verstehen der Erfindung ist. In 8 ist ein
Bezugszeichen 200 die Cachespeichervorrichtung. Die Cachespeichervorrichtung 200 gemäß dem zweiten
Ausführungsbeispiel
unterscheidet sich von der Cachespeichervorrichtung 100 gemäß dem ersten
Ausführungsbeispiel
darin, dass eine Cachedaten-Aktualisierungsoperation entsprechend
einer durch einen Cache-Requester 1 ausgegebenen Warteanforderung
kurzzeitig unterbrochen werden kann. Ungleich der Cachespeichervorrichtung 100 gemäß dem ersten
Ausführungsbeispiel
enthält
die Cachespeichervorrichtung 200 drei UND-Gatter 201, 202 und 203.
Das UND-Gatter 201 führt
eine UND-Verknüpfung eines
Signals, das einen Warteanforderungszustand darstellt, der durch
den Cache-Requester 1 ausgegeben ist, und eines Ausgangssignals
der Steuerschaltung 110 durch und gibt Schreibfreigabeanschlüsse WE eines
Cache-Tagspeichers 111 und
eines Cache-Datenspeichers 112 aus. Anders ausgedrückt aktiviert
das UND-Gatter 201 dann, wenn der Cache-Requester 1 keine
Warteanforderung ausgegeben hat und Schreibanforderungen zu dem
Cache-Tagspeicher 111 und dem Cache-Datenspeicher 112 ausgegeben
werden, die Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 111 und des
Cache-Datenspeichers 112. Andererseits führt das
UND-Gatter 202 eine UND-Verknüpfung des Signals, das den
durch den Cache-Requester 1 ausgegebenen Warteanforderungszustand
darstellt, und des Ausgangssignals der Steuerschaltung 110 und gibt
das resultierende Signal zu einem Zähl-Freigabeanschluss CE eines
externen Registers 116 ein. Anders ausgedrückt aktiviert
das UND-Gatter 201 dann, wenn der Cache-Requester 1 keine
Warteanforderung ausgegeben hat und eine Anforderung zum Inkrementieren
der Zahl des externen Registers 116 um 1 ausgegeben
ist, den Zähl-Freigabeanschluss
CE des externen Registers 116. Das UND-Gatter 203 führt eine
UND-Verknüpfung
des Signals, das die durch den Cache-Requester 1 ausgegebenen
Warteanforderung darstellt, und eines Ausgangssignals eines ODER-Gatters 151 (nämlich eines
Signals, das einen TREFFER-Zustand von Cachedaten darstellt) durch
und gibt das resultierende Signal zu Freigabeanschlüssen E der
Register 114 und 115 ein. Anders ausgedrückt aktiviert
das UND-Gatter 203 dann, wen der Cache-Requester 1 keine
Warteanforderung ausgegeben hat und eine Cacheadresse CA mit einem
im Cache-Tagspeicher 111 gespeicherten Tag übereinstimmt
oder die Cacheadresse CA mit im externen Register 116 gespeicherten
Daten übereinstimmt,
die Freigabeanschlüsse
E der Register 114 und 115. Wenn der Cache-Requester 1 eine
Warteanforderung ausgibt, wird ein Schreiben von Daten zu dem Cache-Tagspeicher 111 und
dem Cache-Datenspeicher 112, ein Ausgeben einer Datenadresse
zum externen Register 116 entsprechend einer Leseanforderung
durch das externe Register 116 und eine Speicherung der
Cachedaten CD im Register 115 verhindert. Somit wird die
gesamte Aktualisierungsoperation von Cachedaten in der Cachespeichervorrichtung 200 kurzzeitig
unterbrochen (im Wartezustand).
-
Als
nächstes
wird unter Bezugnahme auf 9 der Betrieb
der in 8 gezeigten Cachespeichervorrichtung 200 beschrieben
werden. 9 ein Zeitdiagramm, das den
Betrieb der Cachespeichervorrichtung 200 der 8 zeigt.
-
In 9 sind
in Taktperioden 2 bis 4, in welchen der Cache-Requester 1 eine
Warteanforderung ausgegeben hat, die Register 114 und 115 nicht
aktiviert. In diesen Perioden speichern die Register 114 und 115 Cacheadressen
CA = n + 1 bzw. Cachedaten DC = m. Zusätzlich speichert das externe
Register 116 n + 1. Da die Signalpegel der Schreibfreigabeanschlüsse WE des
Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 auf
dem "L"-Pegel sind, sind
sie nicht aktiviert.
-
Drittes Ausführungsbeispiel
-
10 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
dritten Ausführungsbeispiel
zeigt, das nützlich
zum Verstehen der Erfindung ist. In 10 ist
ein Bezugszeichen 300 eine Cachespeichervorrichtung gemäß dem dritten
Ausführungsbeispiel. Der
Unterschied zwischen der Cachespeichervorrichtung gemäß dem dritten
Ausführungsbeispiel
und der Cachespeichervorrichtung 100 gemäß dem ersten
Ausführungsbeispiel
besteht darin, dass, obwohl Cachedaten entsprechend einer durch
einen Cache-Requester 1 ausgegebenen Warteanforderung aktualisiert
werden, auf in einem Wartezustand aktualisierte Daten auf einfache
Weise zugegriffen werden kann. Die Cachespeichervorrichtung 300 weist eine
Vielzahl von Puffern 301, eine Vielzahl von Übereinstimmungs-Bestimmungsschaltungen 301, eine
Vielzahl von Puffern 304 mit drei Zuständen, einen Puffer 321 mit
drei Zuständen,
ein UND-Gatter 303 und ODER-Gatter 305 und 306 auf.
Die Übereinstimmungs-Bestimmungsschaltungen 302 entsprechen
den Puffern 301. Die Puffer 304 mit drei Zuständen entsprechen
den Puffern 301. Die Register 301 speichern jeweils
eine Gruppe aus einer Adresse und aus Daten, die von einem externen
Speicher 130 gelesen sind, und ein gül tiges Flag, das ein von einer Steuerschaltung 110 ausgegebenes
Signal ist. Ein Ausgangssignal der Steuerschaltung 110 wird
zu einem Freigabeanschluss E des Puffers 301 eingegeben.
Somit wird der Puffer 301 aktiviert. Bei diesem Ausführungsbeispiel
sind drei Puffer 301 (Puffer 301-1, 301-2 und 301-3)
vorgesehen. Da eine Zeile vier Adressen hat und Cachedaten Zeile
für Zeile
mit drei Puffern 301 aktualisiert werden, können Daten richtig
aktualisiert werden. Jedoch sollte es beachtet werden, dass die
Anzahl der Puffer 301 nicht auf 3 beschränkt ist.
Die Anzahl der Übereinstimmungs-Bestimmungsschaltungen 302 ist
entsprechend den drei Puffern 301 drei. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 wird
mit einem Gültigkeitsflagsignal
V aktiviert, das vom entsprechenden Puffer 301 empfangen
wird. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 bestimmt,
ob eine vom Register 114 empfangene Cacheadresse CA mit
einer im entsprechenden Puffer 301 gespeicherten Adresse übereinstimmt
oder nicht. Das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung 302 steuert
den entsprechenden Puffer 304 mit drei Zuständen. Zusätzlich wird
das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung
302 zum ODER-Gatter 305 zugeführt. Das ODER-Gatter 305 führt eine ODER-Verknüpfung der
Ausgangssignale der Übereinstimmungs-Bestimmungsschaltungen 302 durch und
gibt das resultierende Signal zum ODER-Gatter 351 ein.
Zusätzlich
wird mit einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 der
Betrieb des Puffers 321 mit drei Zuständen gesteuert. Die Anzahl
der Puffer 304 mit drei Zuständen ist entsprechend den drei Übereinstimmungs-Bestimmungsschaltungen 302 drei.
Jeder der Puffer 304 mit drei Zuständen wird durch das Ausgangssignal
der entsprechenden Übereinstimmungs-Bestimmungsschaltungen 302 gesteuert.
-
In
einem jeweiligen der Puffer 301 gespeicherte Daten werden
zu einem ID-Bus 123 ausgegeben. Jeder der Puffer 321 mit
drei Zuständen
gibt in externen Speicher 130 gespeicherte Daten zum ID-Bus 123 entsprechend
einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 aus. Das
ODER-Gatter 351 ist ein ODER-Gatter vom Typ mit drei Eingängen, wobei
die Ausgabe des ODER-Gatters 305 und
die Ergebnisse der Übereinstimmungs-Bestimmungsschaltung 113 und 150 eingegeben
werden. Das Ausgangssignal des ODER-Gatters 351 wird zum
UND-Gatter 303 zugeführt.
Zusätzlich
wird ein vom Cache-Requester 1 empfangenes Wartesignal
WAIT zum UND-Gatter 303 zugeführt. Das UND-Gatter 303 führt eine UND-Verknüpfung des
Ausgangssignals des ODER-Gatters 351 und des Wartesignals
WAIT durch und gibt das resultierende Signal zu Freigabeanschlüssen E der
Register 114 und 115 ein.
-
Als
nächstes
wird unter Bezugnahme auf 11 der
Betrieb der in 10 gezeigten Cachespeichervorrichtung 300 beschrieben
werden. 11 ist ein Zeitdiagramm, das
den Betrieb der Cachespeichervorrichtung 300 der 10 zeigt.
-
In 11 findet
bei einer Taktperiode 2 ein Nichttreffer (das Tag HIT ist "0") statt. Somit beginnt die Cachespeichervorrichtung 300 den
Aktualisierungsbetrieb von Cachedaten. Jedoch ist der Cache-Requester 1 bei
der Taktperiode 2 in einem Wartezustand. Beim zweiten Ausführungsbeispiel
wird, während
der Cache-Requester 1 im
Wartezustand ist, der Cachedaten-Aktualisierungsbetrieb nicht durchgeführt. Jedoch
werden beim dritten Ausführungsbeispiel
bei einer Taktperiode 4, während der Cache-Requester 1 im
Wartezustand ist, wenn Daten des externen Speichers 130 ausgegeben
werden, die Daten zu einem Cache-Datenspeicher 112 geschrieben.
Zusätzlich
werden die Daten über
den Puffer 321 mit drei Zuständen zum Register 115 zugeführt. Bei
der Taktperiode 4 empfängt
der Cache-Requester 101 deshalb, weil er noch im Wartezustand
ist, nicht die im Register 115 gespeicherten Cachedaten.
Jedoch wird bei der Taktperiode 4 mit einem Ausgangssignal
der Steuerschaltung 110 einer der Puffer 301 (beispielsweise
der Puffer 301-0) aktiviert, um eine Adresse und entsprechende
Daten zu speichern, die vom externen Speicher 130 ausgegeben
werden. Zusätzlich
zu der Adresse und den Daten veranlasst das Ausgangssignal der Steuerschaltung 110,
dass ein Gültigkeitsflag
gültig
wird. Bei einer Taktperiode 5 fordert der Cache-Requester dieselbe
Adresse an, wie er es bei der Taktperiode 4 tat. An dieser
Stelle bestimmt deshalb, weil die erforderliche Adresse und die
erforderlichen Daten bei der Taktperiode 4 in das Register 301 gespeichert
worden sind, eine der Übereinstimmungs-Bestimmungsschaltungen 302,
dass zwei Daten miteinander übereinstimmen.
Somit deaktiviert die Übereinstimmungs-Bestimmungsschaltung 302 den
Puffer 321 mit drei Zuständen über das ODER-Gatter 305.
Folglich werden Daten der erforderlichen Adresse vom Register 301 (Puffer 301-0)
zum ID-Bus 123 ausgegeben. An dieser Stelle werden Daten
entsprechend der nächsten
Adresse zum Cache-Datenspeicher 112 geschrieben. Zusätzlich werden
dieselbe Adresse und die Daten zu dem Puffer 301 (beispielsweise dem
Puffer 301-1) geschrieben. Somit werden, obwohl eine durch
den Cache-Requester 1 ausgegebene Adresse unterschiedlich
von einer Schreibzeitgabe zu dem Cache-Datenspeicher 112 ist,
Cachedaten CD von den Puffern 301 (beispielsweise den Puffern 301-1 und 301-22)
zum Cache-Requester 1 zugeführt.
-
Viertes Ausführungsbeispiel
-
12 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem
vierten Ausführungsbeispiel
zeigt, die nützlich
zum Verstehen der Erfindung ist. In 12 ist
ein Bezugszeichen 400 die Cachespeichervorrichtung gemäß dem vierten
Ausführungsbeispiel.
Der Unterschied zwischen der Cachespeichervorrichtung 400 gemäß dem vierten
Ausführungsbeispiel
und der Cachespeichervorrichtung 300 gemäß dem dritten Ausführungsbeispiel
besteht darin, dass eine Adresse und Daten zu einem Puffer 301 geschrieben
werden, wenn es nötig
ist. Ungleich der Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel enthält die Cachespeichervorrichtung 400 eine
Pufferungs-Überwachungsschaltung 401.
Die Pufferungs-Überwachungsschaltung 401 bestimmt,
ob zu aktualisierende Cachedaten im Puffer 301 gespeichert
werden sollten oder nicht, während
ein Cache-Requester 1 im Wartezustand ist. Die Pufferungs-Überwachungsschaltung 401 speichert
die resultierenden Daten in vorbestimmten Puffern 301 (bei diesem
Beispiel in den Puftern 301-1 und 301-2, wie es
in 12 gezeigt ist). Zusätzlich erklärt die Pufferungs-Überwachungsschaltung 401 Daten
für ungültig, die
nicht nötig
sind. Die Pufferungs-Überwachungsschaltung 401 empfängt ein
Wartesignal WAIT, Ausgangssignale (bestimmte Ergebnisse) von Übereinstimmungs-Bestimmungsschaltungen 150 und 302,
eine Ausgabe eines externen Registers 116 und ein Ausgangssignal
einer Steuerschaltung 110. Das Ausgangssignal der Steuerschaltung 110 aktiviert
Schreibfreigabeanschlüsse
eines Cache-Tagspeichers 111 und eines Cache-Datenspeichers 112. Die
Pufferungs-Steuerschaltung 110 gibt ein Signal aus, das
den Puffer 301 aktiviert, und ein Gültigkeitsflag, das die Gültigkeit
von im Puffer 301 gespeicherten Daten darstellt.
-
Als
nächstes
wird unter Bezugnahme auf 13 der
Betrieb der in 12 gezeigten Cachespeichervorrichtung 400 beschrieben
werden. 13 ist ein Zeitdiagramm, das
den Betrieb der Cachespeichervorrichtung 400 der 12 zeigt.
-
In
der Pufferungs-Überwachungsschaltung 401 gibt
es Bedingungen bzw. Zustände
zum Speichern von Daten zu den Puffern 301 (den Puffern 301-0 und 301-1)
und zum Erklären
von Daten für
ungültig,
die in den Puffern 301 gespeichert sind.
- (1)
Bedingungen zum Speichern von Daten zum Puffer 301-0
das
eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben
sind, ist 0;
im Puffer 301-0 gespeicherte Daten sind
ungültig; und
der
Cache-Requester 1 ist in einem Wartezustand, während ein
Umgehungstreffer stattfindet; oder
der Cache-Requester 1 ist
in einem Wartezustand, während
ein Treffer im Puffer 301-1 stattfindet.
- (2) Bedingungen zum Speichern von Daten zum Puffer 301-1
das
eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben
sind, ist 0;
im Puffer 301-1 gespeicherte Daten sind
ungültig; und
der
Cache-Requester 1 ist in einem Wartezustand, während ein
Umgehungstreffer stattfindet; oder
der Cache-Requester 1 ist
in einem Wartezustand, während
ein Treffer im Puffer 301-0 stattfindet.
- (3) Bedingungen zum Erklären
von Daten für
ungültig,
die im Puffer 301-0 gespeichert sind
das eine Bit
niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben
sind, ist 0; und
der Cache-Requester 1 ist nicht in
einem Wartezustand, während
im Puffer 301-0 ein Umgehungstreffer stattfindet oder ein
Treffer stattfindet.
- (4) Bedingungen zum Erklären
von Daten für
ungültig,
die im Puffer 301-1 gespeichert sind
das eine Bit
niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben
sind, ist 1; und
der Cache-Requester 1 ist nicht in
einem Wartezustand, während
im Puffer 301-1 ein Umgehungstreffer stattfindet oder ein
Treffer stattfindet.
-
Bei
einer Taktperiode 2 findet ein Nichttreffer statt und wird
dadurch der Cache-Datenspeicher 112 aktualisiert.
Bei einer Taktperiode 4 finden Daten n + 1 auf einem ID-Bus 123 statt,
wo Daten von einem externen Speicher 130 gelesen werden
(d.h., dass ein Umgehungstreffer stattfindet). Bei der Taktperiode 4 ist
der Cache-Requester 1 in
einem Wartezustand. Wenn das eine Bit niedriger Ordnung der Adressendaten
n + 1 beispielsweise "0" ist, ist die oben
beschriebene Bedingung (1) erfüllt.
Somit werden die Daten n + 1 zum Puffer 301-0 geschrieben. Bei
einer Taktperiode 5 findet ein Treffer im Puffer 301-0 statt,
während
der Cache-Requester 1 in
einem Wartezustand ist. Somit werden die im Puffer 301-0 gespeicherten
Daten nicht für
ungültig
erklärt. Jedoch
deshalb, weil die Bedingungen (2) erfüllt sind (d.h. deshalb, weil
das eine Bit niedriger Ordnung der Daten n + 1 "0" ist,
das eine Bit niedriger Ordnung der nächsten Daten n + 2 "1" ist), werden Daten n + 2 zum Puffer 301-1 geschrieben.
Wenn die oben beschriebenen Bedingungen (1) bis (4) erfüllt sind,
werden neue Daten geschrieben oder für ungültig erklärt.
-
Fünftes Ausführungsbeispiel
-
14 ist
ein schematisches Diagramm, das ein Schaltungsdiagramm einer Cachespeichervorrichtung
gemäß einem
fünften
Ausführungsbeispiel
zeigt, das durch die vorliegende Erfindung beansprucht ist. Der
Einfachheit halber sind dieselben Teile des Aufbaus wie bei der
in 1 gezeigten Cachespeichervorrichtung 100 mit
denselben Bezugszeichen bezeichnet.
-
Wie
bei der in 5 gezeigten Cachespeichervorrichtung
arbeitet die Cachespeichervorrichtung 500 gemäß dem fünften Ausführungsbeispiel als
Befehls-Cachespeicher,
der in einem Befehlserzeugungsteil einer MPU oder von ähnlichem
angeordnet ist. Die Cachespeichervorrichtung 500 enthält eine
Nichttreffer-Bestimmungseinrichtung 560,
eine Notwendigkeits-Bestimmungseinrichtung 570, eine Aktualisierungseinrichtung 580 und
ein UND-Gatter 574. Die Nichttreffer-Bestimmungseinrichtung 560 bestimmt,
ob ein Nichttreffer in der nächsten
Zeilenadresse einer Zeilenadresse mit einem Nichttreffer stattfindet
oder nicht, wenn der Cachespeicher in einem Wartezustand ist, während der
Cachespeicher gerade aktualisiert wird. Die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt,
ob Daten (ein Befehl), die in dem Cachespeicher-Aktualisierungszustand
gelesen worden sind, nötig
sind oder nicht (nämlich,
ob ein Verzweigungsbefehl vorhanden ist oder nicht). Die Aktualisierungseinrichtung 580 aktualisiert
die nächste
Zeilenadresse, wenn ein Nichttreffer in der nächsten Zeilenadresse stattfindet
und der In halt davon nötig
ist (nämlich
dann, wenn ein Verzweigungsbefehl nicht vorhanden ist).
-
Die
Nichttreffer-Bestimmungseinrichtung 560 weist einen Selektor 561,
einen Addierer 562 und ein Register 563 auf. Der
Selektor 561 ist mit der Ausgangsseite eines Registers 114 verbunden.
Der Addierer 562 inkrementiert die Ausgabe des Selektors 561 um
+1. Das Register 563 führt
die Ausgabe des Addierers 562 zum Selektor 561 zu.
Die Notwendigkeits-Bestimmungseinrichtung 570 weist einen Decodierer 571,
ein ODER-Gatter 572 und ein Flag 573 auf. Der
Decodierer 571 decodiert von einem Ausgangsanschluss D
eines externen Speichers 130 gelesene Daten. Das ODER-Gatter 572 führt eine ODER-Verknüpfung der
Ausgabe des Decodierers 571 durch. Das Flag 573 ist
aus einem Flip-Flop vom Verzögerungstyp
aufgebaut, das die Ausgabe des ODER-Gatters 572 temporär speichert.
Das UND-Gatter 574 führt eine
UND-Verknüpfung
eines Tag-Treffersignals TAG.HIT, eines Signals HIT.E und eines
Schreibfreigabesignals S10b durch. Das Tag-Treffersignal TAG.HIT
wird von einer Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben.
Das Signal HIT.E wird von einer Steuerschaltung 110 ausgegeben.
Das Schreibfreigabesignal S10b wird von der Steuerschaltung 110 ausgegeben. Das
Schreibfreigabesignal S10b aktiviert invertierte Schreibfreigabeanschlüsse WEN eines Cache-Tagsspeichers 111 und
eines Cache-Datenspeichers 112. Die Aktualisierungseinrichtung 580 weist
einen Selektor 581 und einen Addierer 582 auf.
Der Selektor 581 wählt
die Ausgabe des Registers 114, um den Inhalt eines externen
Registers 116 zu aktualisieren. Der Addierer 582 inkrementiert
die Ausgabe des externen Registers 116 um +1 und führt die
resultierenden Daten zurück
zum Selektor 581. In 14 ist
ein Bezugszeichen 540 ein Verbindungszustand.
-
Als
nächstes
wird unter Bezugnahme auf 15 der
Betrieb der in 14 gezeigten Cachespeichervorrichtung 500 beschrieben
werden.
-
15 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 500 zeigt.
In 15 stellt n dar, dass die zwei Bits niedriger
Ordnung "00" sind. Im Zeitdiagramm
wird angenommen, dass Befehle bei Adressen n bis n + 5 und bei einer
Adresse n + 7 keine Verzweigungsbefehle sind, aber ein Befehl bei
einer Adresse n + 6 ein Verzweigungsbefehl ist. Der Verzweigungstyp
auf der Seite der Cacheadressenanforderung, die den Cachespeicher
(beispielsweise eine CPU) verwendet, ist von einem Verzögerungs-Verzweigungstyp.
Ein Verzweigungsbefehl bei der Adresse n + 6 wird zu m verzeigt.
Somit werden Befehle in der Reihenfolge von Adressen n, n + 1 ...,
n + 6, n + 7 und m ausgeführt.
Nichttreffer finden bei Adressen n bis n + i 0 und m bis m + 3 des Cachespeichers
statt. Andererseits finden Treffer bei Adressen m + 4 bis m + 10
des Cachespeichers statt. Auf den externen Speicher 130 wird
im Seitenmode des DRAM zugegriffen. Bis zum ersten mal Daten empfangen
werden, dauert es zwei Taktperioden CK. Somit können bis zu zwei Zeilenadressen
im Voraus verifiziert werden.
-
In 15 wird
zu einer Zeit t1 dann, wenn der Cache-Requester 1 n – 1 einer
Cacheadresse CA zur Cachespeichervorrichtung 500 zuführt, dies
im Register 114 gespeichert. Die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt,
ob der im Register 114 gespeicherte Inhalt mit einer in
Cache-Tagspeicher 111 gespeicherten Adresse übereinstimmt
oder nicht. In diesem Fall werden deshalb, weil sie miteinander übereinstimmen,
Daten entsprechend der Adresse n – 1 aus dem Cache-Datenspeicher 112 über den
Datenausgangsanschluss Do gelesen. Die Ausgangsdaten des Ausgangsanschlusses
Do sind Cachedaten DC und werden zum Cache-Requester 1 zugeführt.
-
Zu
einer Zeit t2 tritt dann, wenn der Cache-Requester 1 n
als Cacheadresse CA zuführt,
da das bestimmte Ergebnis der Übereinstimmungs-Bestimmungsschaltung 113 ein
Nichttreffer ist, die Cachespeichervorrichtung 500 in einen
Aktualisierungsmode ein. Die Adresse n wird dort, wo ein Nichttreffer stattfindet, über den
Selektor 581 zum Register 116 geschrieben. Der
Selektor 581 wählt
normalerweise das Register 114 aus.
-
Zu
einer Zeit t3 ist der Cachespeicher in einem leeren Zustand (Wartezustand).
Aufgrund der Spezifikation des externen Speichers 130 dauert
es zwei Taktperioden CK, bis Daten im Cachespeicher gespeichert
sind. Zu einer Zeit t4 wird dieselbe Operation durchgeführt. Während Daten
nicht im Cachespeicher gespeichert sind, bestimmt die Nichttreffer-Bestimmungseinrichtung 160,
ob ein Nichttreffer in der Adresse der nächsten Zeile stattfindet oder nicht.
-
Anders
ausgedrückt
ist im Wartezustand zu den Zeiten t3 und t4 der Signalpegel des
von der Steuerschaltung empfangenen Signals HIT bzw. TREFFER "L". Obwohl der Selektor 561 normalerweise
das Register 563 auswählt,
während
das Signal HIT auf den "L"-Pegel ist, wählt der
Selektor 561 das Register 563 aus. Da das Register 563 die
Ausgabe des Addierers 562 empfängt, der die Ausgabe des Selektors 561 um
1 inkrementiert, kann bestimmt werden, ob ein Nichttreffer bei der
Adresse der nächsten
Zeile im Wartezustand stattfindet oder nicht. Während diese Operation gerade
durchgeführt wird,
ist ein Tag-Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben
wird, gegenüber
einer erforderlichen Cacheadresse CA ungültig. Somit wird das Tag-Treffersignal TAG.HIT
durch das UND-Gatter 574 mit dem Signal HIT.E maskiert.
Somit finden zu den Zeiten t3 und t4 Nichttreffer statt. Folglich
werden die Zeilenadresse, wo ein Nichttreffer stattfand, und die
darauf folgenden zwei Zeilenadressen zur selben Zeit aktualisiert.
-
Zu
einer Zeit t5 gelangen deshalb, weil Daten der Cacheadresse dort,
wo der Nichttreffer stattfand, empfangen werden, der Cache-Datenspeicher 112 und
der Cache-Tagspeicher 111 in einen Streitzustand. Obwohl
der Cache-Datenspeicher 112 eine Cacheadresse CA hat, wird
eine Adresse EA vom externen Register 116 zum externen
Speicher 130 im Schreibmode zugeführt. Daten werden von dem Ausgangsanschluss
D des externen Speichers 130 gelesen. Die Daten und das
Tag TAG, die im Tag-Speicher 111 und im Datenspeicher 112 gespeichert
sind, werden aktualisiert. An dieser Stelle wird ein Zählerteil,
der mit der Innenzeilenadresse IA des externen Registers 116 übereinstimmt,
durch den Addierer 535 inkrementiert, um die nächsten Daten
zu aktualisieren. Während
die Zeilenadresse gerade aktualisiert wird, wählt der Selektor 536 den
Addierer 535 aus.
-
Zu
einer Zeit t6 findet deshalb, weil die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt, ob
zwei Daten miteinander übereinstimmen
oder nicht, ein Treffer im Cache-Datenspeicher 112 statt. Somit
werden Cachedaten CD entsprechend einer Cacheadresse n, die von
dem Datenausgangsanschluss Do des Cache-Datenspeichers 112 gelesen wird,
zu dem Cache-Requester 1 zugeführt. Zusätzlich wird n + 1 einer Cacheadresse
CA, die neu erforderlich ist, zum Register 114 geschrieben.
Zu Zeiten t7 bis t10 werden dieselben Operationen wie diejenigen
zu den Zeiten t5 und t6 durchgeführt.
-
Zu
einer Zeit t11 wird die letzte Adresse der Zeile, wo der Nichttreffer
stattfand, aktualisiert. Diese Operation ist grundsätzlich dieselbe
wie die Operation zur Zeit t5. Zusätzlich bestimmt die Notwendigkeits-Bestimmungseinrichtung 570,
ob die nächste Zeile
zu aktualisieren ist.
-
Anders
ausgedrückt
ist es zur Zeit t3 klar, dass ein Nichttreffer in der Adresse der
nächsten
Zeile stattfindet. Das decodierte Ergebnis, das darstellt, ob ein
Verzwei gungsbefehl in der Zeilenadresse vorhanden ist, wird im Flag 573 gespeichert.
Das Flag 573 wird rückgesetzt,
wenn das Signal HIT.E, das von der Steuerschaltung 110 ausgegeben
wird, auf dem "L"-Pegel ist. Das Signal
HIT.E wird ausgegeben, wenn der Cache-Datenspeicher 112 im
Schreibzustand ist (zu den Zeiten t5, t7, t9 und t11). Somit werden
zur Zeit t11 der Wert des Flags 573 und das decodierte
Ergebnis einer ODER-Verknüpfung
durch das ODER-Gatter 572 unterzogen, um zu bestimmen,
ob ein Verzweigungsbefehl bei einer Zeilenadresse vorhanden ist
oder nicht, wo ein Nichttreffer stattfindet. In diesem Fall wird
deshalb, weil es keinen Verzweigungsbefehl bei der Zeilenadresse
gibt, wo ein solcher Nichttreffer stattfand, die Ausgabe (ein inkrementierter
Wert) des Addierers 582 zum externen Register 116 geladen,
um die nächste
Zeilenadresse zu aktualisieren.
-
Zu
einer Zeit t12 wird dieselbe Operation wie diejenige zur Zeit t6
durchgeführt.
Zusätzlich
werden zu Zeiten t13 bis t19 dieselben Operationen wie diejenigen
zu den Zeiten t5 bis t11 durchgeführt. Zur Zeit t4 ist es bekannt,
dass ein Nichttreffer in der nächsten Zeilenadresse
stattfindet. Jedoch ist zur Zeit t17 deshalb, weil die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt
hat, dass ein Verzweigungsbefehl vorhanden ist, der Inhalt des Flags 573 "1". Somit wird deshalb, weil die nächste Aktualisierungsoperation
nicht durchgeführt
wird, der Zugriff zu dem externen Speicher 130 gestoppt.
-
Die
zu einer Zeit t20 durchgeführte
Operation ist dieselbe wie die zur Zeit t12 durchgeführte Operation.
Zur Zeit t20 ist eine im Register 114 gespeicherte Cacheadresse
CA eine Adresse m, die durch einen Verzweigungsbefehl bei einer
Adresse n + 6 stattfand. Die Operationen zu einer Zeit t21 oder
später
sind dieselben wie die Operationen zur Zeit t2 oder später für einen
Cache-Aktualisierungszyklus, der
durch eine Anforderung des Cache-Requesters 1 stattfindet.
-
Ein
Vorteil des fünften
Ausführungsbeispiels ist
folgender.
-
Beim
fünften
Ausführungsbeispiel
bestimmt, während
der Cachespeicher nicht in Betrieb ist (nämlich im Wartezustand ist),
bis Daten empfangen werden, nachdem ein Nichttreffer stattfindet,
die Nichttreffer-Bestimmungseinrichtung 560, ob ein Nichttreffer
bei der nächsten
Zeilenadresse davon stattfindet oder nicht. Die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt,
ob nachfolgende Adressen erforderlich sind oder nicht (beispielsweise
gibt es keinen Verzweigungsbefehl).
-
Wenn
die nachfolgenden Adressen erforderlich sind, aktualisiert die Aktualisierungseinrichtung 580 die
nächste
Zeilenadresse. Somit kann die Trefferrate verbessert werden.
-
Sechstes Ausführungsbeispiel
-
16 ist
ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß eines
sechsten Ausführungsbeispiels
zeigt, das durch die vorliegende Erfindung beansprucht ist. In 16 ist
ein Bezugszeichen 600 eine Cachespeichervorrichtung gemäß dem sechsten
Ausführungsbeispiel.
Der Unterschied zwischen der Cachespeichervorrichtung 600 gemäß dem sechsten
Ausführungsbeispiel
und der Cachespeichervorrichtung 500 gemäß dem fünften Ausführungsbeispiel
besteht darin, dass Schreiboperationen für einen Cache-Datenspeicher 112 und
einen Cache-Tagspeicher 111 unabhängig durchgeführt werden.
Somit kann es bei dem sechsten Ausführungsbeispiel, während Daten zu
dem Cache-Datenspeicher 112 aufgrund eines Auftretens eines
Nichttreffers geschrieben werden, und zwar bei dem Cache-Tagspeicher 111 bestimmt werden,
ob ein Treffer oder ein Nichttreffer bei der darauf folgenden Zeilenadresse
stattfindet.
-
In 16 ist
ein Bezugszeichen 110 eine Steuerschaltung 110.
Die Steuerschaltung 110 gibt Schreibfreigabesignale TWE
und DWE aus, die Schreiboperationen für den Cache-Tagspeicher 111 und
den Cache-Datenspeicher 112 jeweils entsprechend erfasster
Ergebnisse von Übereinstimmungs-Bestimmungsschaltungen 113 und 601 freigeben.
Zusätzlich
enthält
die Cachespeichervorrichtung 600 ein ODER-Gatter 602.
Die Übereinstimmungs-Bestimmungsschaltung 601 bestimmt,
ob ein Tag TAG einer Cacheadresse CA mit einer Zeilenadresse übereinstimmt
oder nicht und ob ein Tag TAG einer in einem externen Register 116 gespeicherten Cacheadresse
mit einer Zeilenadresse LA übereinstimmt
oder nicht. Wenn sie miteinander übereinstimmen, gibt die Übereinstimmungs-Bestimmungsschaltung 601 ein
Schreibanpassungssignal WA-MAT zur Steuerschaltung 110 aus.
Anders ausgedrückt
bestimmt die Übereinstimmungs-Bestimmungsschaltung 601,
ob der externe Speicher eine erforderliche Adresse ausgegeben hat
oder nicht. Die Steuerschaltung 110 gibt das Schreibfreigabesignal
DWE zum Cache-Datenspeicher 112 entsprechend dem Schreibanpassungssignal
WA-MAT aus. Zusätzlich gibt
die Steuerschaltung 110 das Schreibfreigabesignal TWE zum
Cache-Tagspeicher 111 für
jeweilige Zeilendaten aus. Das ODER-Gatter 602 führt eine ODER-Verknüpfung eines
Signals HIT-V, das darstellt, dass Daten eines externen Speichers 130 gültig sind,
und der Ausgabe von der Steuerschaltung 110 durch und gibt
die resultierenden Daten, die ein Treffersignal sind, zum Cache-Requester
aus.
-
Als
nächstes
wird unter Bezugnahme auf 17 der
Betrieb der Cachespeichervorrichtung 600 beschrieben werden,
wie sie in 16 gezeigt ist. 17 ist
ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 600 zeigt.
In 17 hat eine Zeile vier Adressen. Auf den externen
Speicher 130 wird anfangs in zwei Taktperioden zugegriffen. Nachfolgende
Adressen sind bei einer Taktperiode gültig. Nichttreffer finden bei
n bis n + 7 der Cacheadressen CA statt. Ein Verzweigungsbefehl ist
bei einer Cacheadresse n + 6 vorhanden.
-
Zu
einer Zeit t1 wird deshalb, weil ein Nichttreffer bei einer erforderlichen
Adresse n – 1
stattfindet, die Adressen – 1
direkt zum Cache-Tagspeicher 111 zugeführt. Zu einer Zeit t2 findet
ein Nichttreffer bei einer Adresse n statt. Da auf dem externen
Speicher 130 nach einer Zeit t4 zugegriffen wird, wird
die Adresse n über
die Aktualisierungseinrichtung 580 zu einem externen Register 116 zugeführt. Somit
werden Cachedaten bei der Adresse n aktualisiert. Zu Zeiten t7 bis
t12 werden Trefferzustände
bei den Adressen n + 1, n + 2 und n + 3, die in derselben Zeile wie
die Adresse n sind, bestimmt. Da Nichttreffer bei allen der Adressen
n + 1, n + 2 und n + 3 stattfinden, werden Daten bei den Adressen
n + 1, n + 2 und n + 3 vom externen Speicher zugeführt. Die
Adressen n + 1, n + 2 und n + 3 werden zum Cache-Datenspeicher 112 entsprechend
dem Schreibfreigabesignal DWE geschrieben. Zu dieser Zeit bestimmt
die Übereinstimmungs-Bestimmungsschaltung 601,
ob Daten bei der erforderlichen Adresse von dem externen Speicher 130 gelesen
worden sind oder nicht. Beispielsweise bestimmt zur Zeit t7 deshalb,
weil die erforderliche Cacheadresse CA n + 1 ist, wenn eine Addierschaltung 435 ein
Bit niedriger Ordnung (IA) der im externen Register 116 gespeicherten
Adresse n um 1 inkrementiert, die Übereinstimmungs-Bestimmungsschaltung 601,
dass die zwei Daten miteinander übereinstimmen,
und gibt das Signal WA-MAT zur Steuerschaltung 110 aus.
Zusätzlich
wird deshalb, weil der externe Speicher 130 im Lesezustand ist,
ein Signal D-WAIT zur Steuerschaltung 110 zugeführt. Die
Steuerschaltung 110 gibt das Signal HIT-V zum Cache-Requester
aus, um ihn darüber
zu informieren, dass die erforderliche Adresse richtig gelesen ist,
und zwar mit dem Signal WA-MAT und dem Signal D-WAIT. Zu einer Zeit
t6 wird der Cache-Datenspeicher 112 aktualisiert. An dieser
Stelle erzeugt die Aktualisierungseinrichtung 580 eine
Zeilenadresse, die der Adresse n genau folgt. Anders ausgedrückt erzeugt
die Aktualisierungseinrichtung 580 eine Adresse n + 4.
Somit wird der Trefferzustand des Cache- Tagspeichers 111 gegenüber der
Adresse n + 4 bestimmt. Bei diesem Ausführungsbeispiel findet ein Nichttreffer
bei der Adresse n + 4 statt. Das Ergebnis dieses Nichttreffers wird
im Register (nicht gezeigt) gespeichert. Zu einer Zeit t12 kann
das Ergebnis zur Steuerschaltung 110 zugeführt werden.
Somit ist zur Zeit t12 die Zeile der Adresse n aktualisiert worden.
Die Steuerschaltung gibt das Schreibfreigabesignal TWE zusammen
mit dem vierten Schreibfreigabesignal DWE aus. Da eine Notwendigkeits-Bestimmungseinrichtung 570 keinen
Verzweigungsbefehl bei den Adressen n bis n + 3 bestimmt, wird die
Aktualisierungsoperation fortgeführt.
Somit wird die Zeile von n + 4 aktualisiert. Zu einer Zeit t17 bestimmt
die Notwendigkeits-Bestimmungseinrichtung 570, dass n +
6 ein Verzweigungsbefehl ist. Das Ergebnis der Bestimmung wird zur
Steuerschaltung 110 zugeführt. Zu einer Zeit t21 ist
die Zeile von n + 4 aktualisiert worden. An dieser Stelle wird dieselbe Operation,
wie es oben beschrieben ist, für
eine Adresse m durchgeführt,
die zu verzweigen ist.
-
Bei
den oben beschriebenen sechs Ausführungsbeispielen wurde die
Cachespeichervorrichtung gemäß der vorliegenden
Erfindung beschrieben. Jedoch sollte es beachtet werden, dass die Schaltungen
und Zeitgaben der Operationen bei den oben beschriebenen Ausführungsbeispielen
auf verschiedene Weisen modifiziert werden können, so lange die oben beschriebenen
Operationen erreicht werden können.
-
Industrielle
Anwendbarkeit
-
Wie
es oben beschrieben ist, kann gemäß dem ersten Ausführungsbeispiel
deshalb, weil eine Einrichtung zum Zuführen von Daten, die während eines
Aktualisierens von Cachedaten aufgrund eines Auftretens eines Nichttreffers
zu einem Cache-Requester geschrieben werden, vorgesehen ist, die Trefferwarte
verbessert werden und kann die Zeit für einen Mehraufwand für einen
Nichttreffer reduziert werden.
-
Gemäß dem zweiten
Ausführungsbeispiel kann
deshalb, weil eine Einrichtung zum kurzzeitigen Unterbrechen der
Aktualisierung von Cachedaten entsprechend einer Warteanforderung
durch einen Cache-Requester in der Vorrichtung gemäß dem ersten
Ausführungsbeispiel
vorgesehen ist, die Bedienbarkeit des gesamten Systems mit einer
Cachespeichervorrichtung verbessert werden.
-
Gemäß dem dritten
Ausführungsbeispiel können deshalb,
weil eine Einrichtung zum vorzeitigen Unterbrechen der Ausgabe von
Cachedaten zu einem Cache-Requester
entsprechend einer dadurch ausgegebenen Warteanforderung und eine Einrichtung
für eine
Puffereinrichtung zum Speichern von Cachedaten, die im Wartezustand
der Cachedaten aktualisiert werden, in der Vorrichtung gemäß dem ersten
Ausführungsbeispiel
vorgesehen sind, Cachedaten aufeinander folgend aktualisiert werden, ungeachtet
eines Auftretens einer Warteanforderung. Zusätzlich kann auf Cachedaten,
die im Wartezustand aktualisiert worden sind, zugegriffen werden, um
dadurch die Betriebsmäßigkeit
mehr als bei der Vorrichtung des zweiten Ausführungsbeispiels zu verbessern.
-
Gemäß dem vierten
Ausführungsbeispiel
ist eine Einrichtung zum Bestimmen der Notwendigkeit zum Speichern
von Cachedaten, die in einer Puffereinrichtung zu speichern sind,
in der Vorrichtung gemäß dem dritten
Ausführungsbeispiel
vorgesehen, um nötige
Cachedaten in der Puffereinrichtung zu speichern. Somit kann derselbe
Effekt wie bei dem vierten Ausführungsbeispiel
durch einen geringeren Hardwareaufwand als beim vierten Ausführungsbeispiel
erreicht werden.
-
Gemäß dem fünften Ausführungsbeispiel sind
eine Einrichtung zum Bestimmen, ob ein Nichttreffer bei den Adressendaten
der nächsten
Zeile von Zeilenadressendaten von Cachedaten stattfindet oder nicht,
wo ein Nichttreffer während
eines Aktualisierens von Cachedaten stattfand, eine Einrichtung zum
Bestimmen, ob der Inhalt von Cachedaten, die gerade aktualisiert
werden, erforderlich ist oder nicht, und eine Einrichtung zum Aktualisieren
der Adressendaten der nächsten
Zeile in dem Zustand, dass der Inhalt der Daten, die aktualisiert
werden, durch die Bestimmungseinrichtung erforderlich ist und ein Nichttreffer
bei den Adressendaten der nächsten
Zeile stattfindet, vorgesehen sind, der Trefferzustand der Daten
der nächsten
Zeile bestimmt werden, bis Cachedaten aktualisiert werden. Zusätzlich können, solange
kein Verzweigungsbefehl oder ähnliches
bei einer Adresse vorhanden ist, die aktualisiert wird, die Adressendaten
der nächsten
Zeile aufeinander folgend aktualisiert werden. Somit können die
Betriebseffizienz und das Trefferverhältnis verbessert werden und
kann die Zeit für
einen Mehraufwand für
einen Nichttreffer reduziert werden.
-
Gemäß dem sechsten
Ausführungsbeispiel wird
deshalb, weil eine Übereinstimmungs-Bestimmungsschaltung
zum Steuern eines Cache-Datenspeichers und eines Cache-Tagspeichers
mit unterschiedlichen Schreibfreigabesignalen und zum Bestimmen,
ob erforderliche Cachespeicherdaten mit in einem externen Speicher
gespeicherten Daten übereinstimmen
oder nicht, in der Cachespeichervorrichtung gemäß dem fünften Ausführungsbeispiel vorgesehen ist,
selbst dann, wenn eine Steuerschaltung den Cache-Datenspeicher und
den Cache-Tagspeicher mit unterschiedlichen Schreibfreigabesignalen steuert,
ein TREFFER-Signal, das darstellt, dass Daten richtig geschrieben
werden, zum Cache-Requester ausgegeben. Somit kann, während der
Cache-Datenspeicher gerade aktualisiert wird, der Trefferzustand
der nächsten
Cacheadresse einer Cacheadresse, die aktualisiert wird, mit dem
Cache-Tagspeicher bestimmt werden. Folglich kann derselbe Effekt
wie beim fünften
Ausführungsbeispiel erreicht
werden.