DE4213073A1 - Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus - Google Patents
Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklusInfo
- Publication number
- DE4213073A1 DE4213073A1 DE4213073A DE4213073A DE4213073A1 DE 4213073 A1 DE4213073 A1 DE 4213073A1 DE 4213073 A DE4213073 A DE 4213073A DE 4213073 A DE4213073 A DE 4213073A DE 4213073 A1 DE4213073 A1 DE 4213073A1
- Authority
- DE
- Germany
- Prior art keywords
- path
- line
- tag
- pointer
- unused
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
Die Erfindung bezieht sich allgemein auf Datenverarbei
tungssysteme und insbesondere auf eine Einrichtung und ein Ver
fahren zum Aktualisieren eines Zeigers für am weitesten zurück
liegend benutzte Daten (LRU) in einem Steuergerät für einen Da
ten-Cache.
Ein Cache ist ein kleiner örtlicher Speicher relativ hoher
Geschwindigkeit, der zur Bildung eines örtlichen Speichers
(eines Pufferspeichers) für häufig zugegriffene Speicherplätze
eines größeren, relativ langsamen Hauptspeichers
(Reservespeichers) dient. Durch örtliches Speichern der Infor
mationen oder einer Kopie der Informationen kann der Cache
Speicherzugriffe mithören und sie direkt und ohne Übertragung
der Anforderung über den Systembus zum Hauptspeicher verarbei
ten. Das Ergebnis ist geringerer Verkehr auf dem Speicherbus
und verringerte Wartezeit auf dem CPU-Bus für den anfordernden
Prozessor.
Gemäß einem älteren Vorschlag der Anmelderin (U.S.-Patent
anmeldung Nr. 07/6 18 708 vom 28.11.1990) ist ein Cache-Steuer
gerät mit einem Kennungs- oder Tag-RAM beschrieben, der in zwei
Pfade bzw. Bänke organisiert ist. Jeder Pfad enthält einen Ken
nungs- (Tag-) und Gültigkeitsbit-Speicher zum assoziativen Su
chen des Verzeichnisses für Cache-Datenfeldadressen. Der ex
terne Cache-Speicher ist derart organisiert, daß beide Pfade
gleichzeitig für eine Anzahl von verfügbaren Speichermodulen im
System zur Verfügung stehen, um dadurch zu ermöglichen, daß die
Pfade-Zugriffszeit parallel zur Kennungs-Nachschlageoperation
(tag lookup) abläuft.
In einer Puffer-Reservespeicher-Hierarchie kann der Fall
eintreten, daß angeforderte Daten nicht zum aktuellen Zeitpunkt
im Hochgeschwindigkeits-Pufferspeicher sind, so daß die Daten
nur durch Zugriff auf den Reservespeicher gewonnen werden kön
nen. Da es notwendig ist, für die neuen Daten im Puffer Platz
zu schaffen, müssen Daten an einigen Plätzen im Puffer durch
die neuen Daten ersetzt werden. Die neuen Daten ersetzen dann
die Daten an einem ausgewählten Platz im Pufferspeicher, und
die diesen Platz zuvor besetzenden Daten werden ersetzt, wobei
von der Annahme ausgegangen wird, daß die gerade geholten Daten
wahrscheinlich erneut gebraucht werden. Bei der Auswahl des zu
ersetzenden Speicherplatzes wird von der Annahme ausgegangen,
daß die jüngst verwendeten Daten (MRU), d. h. die zuletzt dem
Puffer zugeführten Daten, erhalten bleiben sollten, da sie
wahrscheinlich erneut benötigt werden. Im Gegensatz dazu wird
der Inhalt desjenigen Datenplatzes, der am längsten ungebraucht
(LRU) ist, wahrscheinlich nicht länger benötigt und kann sicher
aus dem Puffer entfernt werden. Wenn diese Daten wieder benö
tigt werden, kann das Duplikat einer Sicherungskopie aus dem
Reservespeicher geholt werden. Ein als LRU-Zeiger ("am-läng
sten-unbenutzt"-Zeiger) bezeichneter Zeiger wird aufrechterhal
ten, der auf den nächsten von der Logik zum Ersatz vorgesehenen
Speicherplatz hinweist. Die Auswahl dieses LRU-Zeigers beein
flußt stark die Systemeffizienz, da von ihr die Zunahme oder
Abnahme der Zugriffsanzahl zum Reservespeicher über eine vorge
gebene Zeitspanne abhängig ist.
In konventionellen Puffer/Reservespeichersystemen weist ein
LRU ("am längsten-unbenutzt")-Zeiger auf die Daten im Puffer
hin, die am längsten unbenutzt sind, und diese Daten werden
durch neue Daten aus dem Reservespeicher ersetzt. In dem in der
o.g. älteren Anmeldung beschriebenen Steuergerät gibt es zwei
Sektoren für jeden Pfad, was bedeutet, daß es zwei Zeilen von
Daten an einer vorgegebenen, von der Zeilenauswahl (LS) ange
steuerten Adresse gibt; jedoch wird dann nur eine Zeile (line)
jeweils gefüllt. Daher könnte eine Zeile gültige Daten und die
andere Zeile nicht-gültige Daten haben. Da gültige Daten je
weils nur in eine Zeile eingesetzt werden können, wenn die Da
ten in eine Zeile gebracht werden, so enthält diese Zeile die
jüngst benutzten Daten, und ein konventioneller LRU-Algorithmus
würde stets bestimmen, daß der LRU-Zeiger auf diese Zeile nicht
hinweist. Dadurch wäre jedoch keine effiziente Benutzung des
bei der oben beschriebenen Zwei-Sektor-Anordnung verfügbaren
Raums erreicht.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Ein
richtung und ein Verfahren zur Aktualisierung eines LRU-Zeigers
in einem Steuergerät für einen Daten-Cache zur Verfügung zu
stellen, in welchem es zwei Sektoren pro Pfad gibt.
Diese Aufgabe wird erfindungsgemäß durch die Merkmale der
Patentansprüche gelöst. Die Erfindung verwendet einen Cache-
Steuergerät-Kennungs-RAM, der in zwei Pfade konfiguriert ist,
wobei jeder Pfad einen Kennungs- und Gültigkeitsbit-Speicher
zum assoziativen Suchen des Verzeichnisses für Cache-Daten-Zu
griffsadressen aufweist. Die beiden Pfade, ein rechter Pfad
und ein linker Pfad speichern jeweils Kennungs-Adressen. Wäh
rend einer Zeilenfüllung zu einem der Pfade werden zwei Zeilen
ausgewählt bzw. angesteuert. Ein LRU-Zeiger wählt den in einem
Zeilen-Füllzyklus zu füllenden Pfad aus. Der rechte Pfad wird
für eine Zeilenfüllung in Antwort auf ein rechtes Treffersignal
ausgewählt, wenn der LRU-Zeiger auf den rechten Pfad hinweist.
Der LRU-Zeiger springt auf den linken Pfad um, wenn die rechte
Zeile des rechten Pfades gefüllt ist. Der linke Pfad wird für
eine Zeilenfüllung in Abhängigkeit von einem linken Treffersi
gnal angesteuert, wenn der LRU-Zeiger auf den linken Pfad hin
weist. Der LRU-Zeiger wird auf den rechten Pfad umgeschaltet,
wenn die linke Zeile des linken Pfades gefüllt ist.
Gemäß einer Weiterbildung wird der LRU-Zeiger nur bei einem
Lese-Fehlversuchzyklus und einem Schreib-Trefferzyklus aktuali
siert und wird bei einem Lese-Trefferzyklus ungeändert gelas
sen.
Ein wesentlicher Vorteil der Erfindung liegt darin, daß
durch Fortlassen der Aktualisierung des LRU-Zeigers bei einem
Lese-Treffer der Algorithmus ein Puffer/Reservespeichersystem
favorisiert, bei dem der Verkehr auf dem Bus vorwiegend aus
Schreibzyklen besteht.
Im folgenden wird die Erfindung anhand eines in der Zeich
nung dargestellten bevorzugten Ausführungsbeispiels näher er
läutert. In der Zeichnung zeigen.
Fig. 1 ein Blockschaltbild eines Zwei-Pfade-Satz-Assozia
tiv-Cache, in welchem die Erfindung realisiert ist;
Fig. 2 ein Diagramm der Bit-Felder innerhalb jedes Ken
nungs(Tag)-RAM der Fig. 1;
Fig. 3 eine die Kennungs-Auswahl für Zeilenfüllungen dar
stellende Tabelle; und
Fig. 4 ein Ablaufdiagramm des LRU-Zeiger-Aktualisierungs
verfahrens.
In Fig. 1 ist ein Blockschaltbild des Zweipfade-Satz-Asso
ziativ-Cache aus der genannten älteren Anmeldung gezeigt. Eine
RLS-Logik 10 treibt eine TAGACC-Logik 14. Die TAGACC-Logik 14
treibt einen linken Tag-RAM-Assoziativspeicher 16 und einen
linken Daten-Cache 18, die gemeinsam einen Pfad 0 (bzw. eine
Bank 0) bilden, sowie rechten Tag-RAM 20 und rechten Daten-
Cache 22, die gemeinsam Pfad 1 (bzw. Bank 1) bilden.
Wie in Fig. 2 gezeigt, hat jeder Tag-RAM oder Pfad 34-Tag-
Bits, zwei Schreibschutzbits und vier Gültigkeitsbits. Außerdem
hat der linke Tag-RAM zwei LRU-Bits, welche einen LRU-Zeiger
enthalten.
Eine linke Treffer-Logik 26 und eine rechte Treffer-Logik
28 sind Vergleichsschaltungen, die ein Ausgangssignal an eine
TAGIFC-Interface-Steuerlogik 30 anlegen, wenn das Tag-Suchargu
ment 12 und eine Tag-Adresse im Assoziativ-Speicher überstim
men. Der TAGIFC 30 treibt ADS-Latch-Schaltungen 32, welche auf
den Speicher-Adressen/Daten-Bus 34 zu gebende Informationen
zwischenspeichern.
Die Steuerlogik 24 ist mit jedem der logischen Blöcke ver
bunden und liefert die notwendigen Steuerfunktionen, wie
Schreibfreigabe (WE0), Ausgabefreigabe (OE), Start usw. an die
oben beschriebenen logischen Blöcke.
Traditionell weist ein LRU-Zeiger auf die Daten hin, die am
längsten unbenutzt waren; dies sind diejenigen Daten, welche
ersetzt werden sollen. In dem in der älteren Anmeldung be
schriebenen Steuergerät gibt es zwei Sektoren für jeden Pfad,
das bedeutet, daß es zwei Zeilen von Daten gibt. Eine Zeile
könnte gültige Daten und die andere Zeile kann ungültige Daten
enthalten. Gültige Daten können jeweils nur in eine Zeile ein
gesetzt werden. Wenn die Daten in die Zeile eingesetzt sind, so
sind sie die zuletzt benutzten Daten und daher darf der LRU-
Zeiger nicht auf sie hinweisen. Daher schaltet die PTRDAT-Lei
tung den LRU-Zeiger auf die entgegengesetzte Richtung um. Bei
einem Zugriff auf den Tag-RAM entscheidet das Signal zWAYSEL,
ob er auf der linken oder rechten Seite erfolgen soll. Während
normaler Zyklen hat zWAYSEL nur eine Bedeutung bei einer Zei
lenfüllung, wo eine Zeile zum Füllen auszuwählen ist. Die Tag-
Treffersignale werden in Verbindung mit dem LRU-Bit zur Ent
scheidung über den Wert für das Signal zWAYSEL entsprechend der
in Fig. 3 gezeigten Information verwendet.
Der LRU-Zeiger wird bei einem Lese-Fehlversuch, einem
Schreib-Treffer und bei einem Snoop-Treffer aktualisiert. Wenn
bei einem Snoop-Zyklus der Treffer auf dem linken Pfade auf
tritt, so wird der LRU zum Hinweis auf den linken Pfad veran
laßt. Wenn der Treffer auf dem rechten Pfad auftritt, so wird
der LRU zum Hinweis auf den rechten Pfad veranlaßt. Bei einer
Zeilenfüllung geschieht genau das Gegenteil. Wenn eine Zeilen
füllung auf der linken Seite auftritt, so wird der LRU zum Hin
weis auf die rechte Seite veranlaßt. Dies liegt daran, daß de
finitionsgemäß die am längsten unbenutzten Daten auf der entge
gengesetzten Seite sind, wenn der Treffer neue Daten eingibt.
Das LRU-Bit muß auf den anderen Pfad umgeschaltet werden,
wenn die aktuelle Zeile gültig gemacht werden soll. Dies ge
schieht automatisch in der TAGIFC-Logik 30. Wenn die Zeile je
doch ungültig gemacht werden soll, beispielsweise aufgrund ei
nes Umschalten ("ping-ponging") des SKEN#-Signals, so hat das
LRU-Bit wieder umgeschaltet zu werden, um auf den alten Pfad
hinzuweisen. Das Signal rLRUFLP liefert die Daten zum Umschal
ten des LRU-Bits. Wenn es gleich Null ist, so wird das LRU-Bit
so eingestellt, daß es auf denselben Pfad, wie zPTRDAT während
einer Tag-Aktualisierung hinweist. Wenn es gleich Eins ist, so
wird das LRU-Bit auf den ursprünglichen Wert während der Tag-
Aktualisierung eingestellt.
Die Signale WRLRU, rWRSTS, rWRTAG aus dem RLS 10 zum TAGACC
14 sind Tag-Schreib-Befehle, welche entscheiden, wann der Tag-
RAM zu aktualisieren ist. Die Status-Schreib-Befehle sind wäh
rend der folgenden Zeit aktiv:
- 1. Die Logik ist in TO21 in einem begangenen Zeilen- Füll-Zyklus;
- 2. die Logik ist in TO24 in einem begangenen Zeilen Füll-Zyklus, und der Zeilenstatus muß geändert werden;
- 3. der externe Zyklus ist beendet, jedoch hat die Lo gik noch keine Bestätigung für eine frühere Schreibanfor derung festgestellt;
- 4. der externe Zyklus ist noch nicht beendet, und die Logik wartet noch auf eine Bestätigung für eine frühere Schreibanforderung;
- 5. BOFF# findet vor Abschluß eines Lese-Zyklus′ statt, und die Zeile ist gültig;
- 6. der Zyklus ist ein Selbst-Test-Schreib-Zyklus;
- 7. Die Logik befindet sich in einem Lese-Treffer-Zy klus und BOFF# findet statt.
Das LRU-Bit muß in den folgenden Situationen geschrieben
werden:
- 1. Die Logik befindet sich in TO24 eines begangenen Zeilen-Füll-Zyklus′, und der Zeilenzustand muß geändert werden;
- 2. der externe Zyklus wurde beendet, jedoch hat die Logik keine Bestätigung einer früheren Schreibanforderung erkannt;
- 3. der externe Zyklus ist noch nicht beendet, und die Logik wartet noch auf eine Bestätigung auf einer früheren Schreibanforderung;
- 4. die Zeile ist gültig, jedoch hat BOFF# stattgefun den. Die Logik kann auch das LRU-Bit bei Schreib-Treffern aktualisieren.
Die Tag-Bits werden immer dann geschrieben, wenn die Sta
tus-Bits geschrieben werden. Die Bestätigung für ein Schreibbe
fehl kommt von der TAGACC-Logik 14, die das Signal zSTSACK er
zeugt, wenn der Tag-RAM zum Honorieren des Schreibbefehls vom
RLS 10 bereit ist. Die Schreibbefehle bestehen so lange, wie
keine Bestätigung erkannt wird. zSTSACK wird an einem SACLK er
zeugt, wenn eine Schreibanforderungen vom RLS
(rWR{STS, TAG, LRU}) in einen Tag-Zugriff an diesem SACLK trans
formiert werden kann. zSTSACK wird nicht erzeugt, wenn der Tag-
RAM an diesem Taktimpuls mit einem Snoop-Zugriff befaßt ist.
Die Funktion des Verzeichnisses besteht in der Speicherung
von Adressen, welche im linken Daten-Cache 18 und rechten Da
ten-Cache 22 des Cache-Speichers gespeichert sind. Das Ver
zeichnis ist in zwei Pfade konfiguriert (Pfad 0, Pfad 1). Eine
Zeile ist die Basiseinheit der zwischen dem Cache und dem
Hauptspeicher übertragenen Daten. Sie bestehen aus 16 Daten-By
tes. Eine Zeile ist auch als Übertragungsblock bekannt. Wenn
die einer speziellen Adresse entsprechenden Daten im Cache ge
speichert sind, kann der Cache die Daten liefern, wodurch ein
Zugriff auf den Hauptspeicher vermieden wird. Dies wird als ein
Cache-Treffer entweder über den linken Pfad (LH) oder den rech
ten Pfad (RH) bezeichnet. Die Entscheidung, ob Treffer oder
Fehlversuch, wird auf der Basis einer Zeile bestimmt. Ein
Adreßblock ist die Basiseinheit der Cache-Adressierung. Jeder
Adreßblock beschreibt die physikalische Adresse einer von zwei
benachbarten Datenzeilen.
Ein Gültigkeitsbit ist jeder Zeile innerhalb eines
Adreßblocks zugeordnet. Wenn die Zeile im Cache vorhanden ist,
so wird das Gültigkeitsbit eingeschaltet. Die Adresseninforma
tionen, die im linken Tag-RAM 16 und rechten Tag-RAM 20 des Ca
che-Verzeichnisses enthalten sind, werden als Tag (Kennung) be
zeichnet. Da viele Adressen in einen einzigen Adreßblock abge
bildet werden, dient die Tag-Information zur Identifizierung
der exakten Speicherplätze, welche gerade einem Adreßblock zu
geordnet sind. Ein Treffer tritt auf, wenn das Tag eines
Adreßblocks im Assoziativspeicher mit der Busadresse überein
stimmt, welche dem Assoziativspeicher als Suchargument 12 prä
sentiert wird, und das gewünschte Zeilen-Gültigkeitsbit einge
schaltet ist.
Jeder Pfad (16, 20) bietet Speicherplatz für die Tag- und
die Gültigkeitsbits. Mehrere Vergleiche werden gleichzeitig in
den Vergleichsschaltungen zwischen der Busadresse 12 und den
Tag-Feldern in den Pfaden ausgeführt, um festzustellen, ob die
Daten im Cache-Datenfeld sind. Ein Satz ist eine Gruppierung
von Adreßblöcken, die aus je einem Adreßblock aus jedem Pfad
bestehen. Alle Adreßblöcke in einem Satz werden gleichzeitig
ausgewählt, wenn der Satzabschnitt der CPU-Busadresse von einem
Decodierer in der RLS-Logik 10 in eine Satzadresse 12 decodiert
wird.
Wenn eine Schreib-Transaktion auf dem CPU-Bus eine Adresse
betrifft, die nicht im Cache enthalten ist (Cache-Fehlversuch),
so wird kein Versuch unternommen, um die entsprechenden Daten
im Cache zu speichern. Wenn jedoch eine Schreib-Transaktion auf
dem CPU-Bus eine im Cache befindliche Adresse involviert
(Cache-Treffer), so benutzt das Verzeichnis eine Durchschreib
politik. Dies bedeutet, daß die CPU-Bus-Schreiboperationen,
welche zu einem Cache-Treffer führen, in den Cache sowie in den
Hauptspeicher geschrieben werden. Dies stellt sicher, daß der
Hauptspeicher immer eine gültige Kopie aller Datenplätze des
Cache-Speichers hält.
Es gibt fünf Arten von Zyklen, vier normale Zyklen und
einen Snoop-Zyklus:
- 1. Lese-Fehlversuch (Zeile füllen).
- 2. Lese-Treffer.
- 3. Schreib-Fehlversuch.
- 4. Schreib-Treffer.
- 5. Snoop.
Ein Lese-Fehlversuchs-Zyklus beginnt mit zADSCYC und zRD-
SCYC. Das Tag-Suchen führt am ersten SHCLK zu einem Fehlver
such. START# wird aktiv und zeigt einen Fehlversuch an. Von da
an wartet die Logik, bis SKEN# aktiv wird. Wenn SKEN# vor dem
ersten Transfer aktiv wird, so wird die Zeile als gebunden be
zeichnet. Eine Zeile im Tag-RAM wird unter Verwendung der
zADSLRU-, zADSHL- und zADSHR-Signale entsprechend der Darstel
lung in Fig. 3 ausgewählt (zWAYSEL). Tag-Schreibbefehle werden
ausgegeben, um die Zeile ungültig zu machen. Auch wird die ent
sprechende erste Schreibfreigabe ausgegeben.
Ein aktives SKEN# führt zu einer Anforderung an den Tag-RAM
und macht die Zeile gültig, wenn die Zeile nicht bereits gültig
ist. Ein inaktives SKEN# führt zu einer Anforderung zum Ungül
tigmachen der Zeile, wenn die Zeile nicht bereits ungültig ist.
Der Schreibschutz-Pin (WP) wird bei jeder derartigen Anforde
rung geschrieben. Das LRU-Bit weist auf den anderen Pfad hin,
wenn die Zeile in einem gültigen Zustand bleibt. Wird die Zeile
gültig und der Zyklus mit einem BOFF# abgebrochen ist, so wird
eine Anforderung an den Tag-RAM gerichtet, um die Zeile ungül
tig zu machen.
Ein Lese-Treffer-Zyklus beginnt mit zADSCYC and zRDSCYC.
Die Tag-Nachschlageoperation (tag lookup) führt zu einem Tref
fer am ersten SHCLK. BRDYO# wird aktiv und zeigt einen Treffer
an. Auch das erste Ausgabe-Freigabesignal (OE1) wird aktiv. Das
erste Freigabesignal wird von den vier Möglichkeiten aufgegrif
fen, welche die Burst-Adressenfolge verwenden. Da das Cache-
Steuergerät die Transfers bei jedem Takt mit BRDYO# signali
siert, rückt die Logik bei jedem Takt durch TO22, TO23 und TO24
vor. Die geeignete Freigabe wird für jeden Transfer erzeugt.
Wenn ein BOFF# den Transfer unterbricht, so wird eine Anforde
rung an den Tag-RAM gerichtet, um die Zeile ungültig zu machen.
Das LRU-Bit wird bei einem Lese-Treffer nicht aktualisiert.
Ein direkter Prozessor-Schreibzyklus beginnt mit zADSCYC
und zWRSCYC. START# geht beim ersten SHCLK aus. Wenn es ein
Fehlversuch am ersten SHCLK ist, so wird keine Freigabe ausge
sendet. Bei einem Fehlversuch geschieht nichts mit dem LRU-Bit,
und nur START# kann aktiv gesehen werden.
Ein direkter Prozessor-Schreibzyklus beginnt mit zADSCYC
und zWRSCYC. START# geht beim ersten SHCLK aus. Wenn es ein
Treffer am ersten SHCLK ist, so wird die geeignete Freigabe
ausgesendet. Das LRU-Bit wird veranlaßt, bei einem Schreibtref
fer auf den anderen Pfad zu zeigen.
In einem Multiprozessor-Umfeld teilen sich mehrere Prozes
soren denselben Speicherraum. Es sei angenommen, daß die Daten
im Cache eines Prozessors gespeichert sind, und der andere Pro
zessor auf dieselben Daten im externen Speicher zugreift. Wenn
der zweite Prozessor die Daten ändert, so sind die Daten im
Cache des ersten Prozessors verdorben. Ein Snoop-Signal wird an
jeden Prozessor gesendet und von jedem Prozessor überwacht.
Wenn ein Prozessor eine private Kopie der Daten an der Adresse
der vom Snoop-Signal bezeichneten Zeile hat, so muß er in sei
nen Cache gehen und diese Zeile ungültig machen. Es gibt eine
Adresse auf dem Bus, die dem Snoop-Signal zugeordnet ist. Wenn
daher eine Adresse auf dem Bus ist und das Snoop-Signal auf
tritt, so muß der Prozessor in die örtliche private Datenkopie
gehen und diese ungültig machen. Die Snoop-Zyklen werden unab
hängig verarbeitet und können mit den anderen vier Zyklen, den
normalen Zyklen, überlagert werden.
Ein Snoop-Treffer zwingt das LRU-Bit automatisch zum Hin
weis auf den ausgewählten Pfad. Der Pfad wird mit zWAYSEL aus
gewählt.
In der o.g. älteren Anmeldung sind interne Signale angege
ben, wobei erläutert ist, daß jeder interne Signalname mit ei
nem charakteristischen Buchstaben beginnt, welcher seine erzeu
gende Quelle identifiziert. Der erste Buchstabe kann einer der
Buchstaben (r, t, x, y, z) sein. Der restliche Teil des Signal
namens erscheint in Großbuchstaben. Ein "nn" am Ende eines Si
gnals bedeutet, daß dieses Signal low-aktiv ist. Die entspre
chende Notation für ein externes Signal hat ein "#". Auch wer
den die Klammern "{}" zur Beschreibung von Signalnamen verwen
det, wobei die Unterzeichenketten (substrings) in den Klammern
enthalten sind. So steht beispielsweise rWR {STS, TAG, LRU} für
rWRSTS, rWRTAG bzw. rWRLRU. Wenn die Unterzeichenketten eine
Länge von einem Zeichen haben, so wird ein Klammerpaar ohne
Trennung der Zeichen durch ein Komma verwendet. Beispielsweise
steht [yz]ADSnn für yADSnn und zADSnn. Klammern dienen auch zur
Bezeichnung von Bereichen. Beispielsweise steht zSAI{0-10} für
zSAI0, zSAI1, . . ., zSAI10. Wenn derartige Mehrfach-Bit-Signale
angegeben werden, so wird die Bereichsangabe fortgelassen. Bei
spielsweise werden die elf Signale zSAI{0-10} als zSAI bezeich
net.
Die TAGIFC-Logik 30 erfaßt das Ausgangssignal des Tag-RAM
am ersten SHCLK nach dem ersten ADS#, welches einen Zyklus be
ginnt. Die erfaßten und aufgenommenen Ausgangssignale werden in
ADS-Latch-Schaltungen 32 gehalten, bis der Zyklus endet. Bei
einer Zeilenfüllung wird die gültige Information für die aktu
elle Zeile als Funktion von SKEN# erzeugt. Die gültige Informa
tion für die andere Zeile innerhalb des Satzes wird aus den
ADS-Latch-Schaltungen 32 gewonnen. Danach werden die Informa
tionen für beide Leitungen in den Tag-RAM geschrieben. Die
rCLRV[LR]-Signale (rCLRVL und rCLRVR) aus dem RLS 10 dienen zum
Löschen dieser "anderen" Zeileninformation, wenn diese Zeile
während des Zyklus′ entweder durch einen expliziten Snoop oder
unter Verwendung eines Flush ungültig gemacht worden ist.
Die Signale tHL, tHR, tLRU, tVL0, tVL1, tVR0, rVR1, tLWP
und tRWP sind die Ausgangssignale vom Tag-RAM, die zu den Logi
ken BRDYO, MUXCON, OE, START, TAGIFC und WE gehen, um anzuzei
gen, ob der aktuelle Zugriff ein Treffer oder ein Fehlversuch
war. Bei einem Treffer müssen sowohl die Tag-Bits (tHL oder
tHR) als auch die entsprechenden Gültigkeitsbits (tVL[01] oder
tVR[01]) gleichzeitig Treffer anzeigen. tLWP und tRWP sind
Schreib-Schutzbits der linken bzw. rechten Seite. Die OE-, WE-,
BRDYO- und START-Schaltungen benutzen diese Signale direkt, um
zu entscheiden, ob es sich um einen Treffer-Zyklus oder um
einen Fehlversuchs-Zyklus handelt. MUXCON verwendet sie während
Snoop-Zyklen, um festzustellen, ob der Snoop ein Treffer war.
Bei einem normalen Zyklus nimmt TAGIFC 30 diese Signale in den
ADS-Latch-Schaltungen 32 auf, um zADS{HL, HR, VL0, VL1, VR0, VR1}
und zRLS[LR]WP-Signale zu erzeugen. Während eines Snoop werden
diese Signale in den Snoop-Latch-Schaltungen aufgefangen. Die
Ausgangssignale aus den Snoop-Latch-Schaltungen bleiben für
TAGIFC 30 lokal.
Das zADSLRU-Signal vom TAGIFC 30 zu den Logik-Schaltungen
RLS und WAYCON ist das tLRU-Signal, das nach zADSCYC am ersten
SHCLK aufgenommen worden ist. Der Wert wird bis zum Zyklusende
gehalten. Das Latch wird vom SHCLK getaktet und von zADSCYC und
zADSCS freigegeben. Im RLS wird zADSLRU vom PCLK getaktet und
danach zur Erzeugung von rLRUFLP verwendet. Im WAYCON wird es
zur Erzeugung von zWESEL, zWAYSEL und zIWAYSEL verwendet.
Die zADSV[LR] [01]-, und zADSH[LR]-Signale vom TAGIFC 30 zur
RLS-Logik, WAYCON-Logik und TAGACC-Logik 14 sind tV[LR] [01]
bzw. tH(lr)-Signale, die am ersten SHCLK nach zADSCYC aufgenom
men worden sind. Die Latch-Schaltungen werden von zADSCS und
zADSCYC freigegeben. Die RLS-Logik 10 verwendet sie zur Erzeu
gung lokaler Treffer/Fehlversuch-Informationen. WAYCON benutzt
zADSHR zur Erzeugung von zWESEL, zWAYSEL und zIWAYSEL. Im
TAGACC 14 erzeugen diese Signale zWRLRU während eines Direkt
prozessor-Schreib-Treffer-Zyklus.
Das zPTRDAT-Signal vom TAGIFC 30 zum Tag-RAM ist das LRU-
Bit, welches in den Tag-RAM geschrieben werden soll. Für alle
Tag-RAM-Aktualisierungen während normaler Zyklen ist zPTRDAT
der Umkehrwert von zADSLRU. Wenn jedoch rLRUFLP aktiv ist, so
nimmt zPTRDAT den gleichen Wert wie zADSLRU an. Während Snoop-
Treffern wird zPTRDAT auf denjenigen Pfad gesetzt, der entge
gengesetzt ist demjenigen, wo die Snoop-Invalidisierung ge
schieht.
Das zPTROVR-Signal aus der WAYCON-Logik zur TAGIFC-Logik 30
ermöglicht ein Unterdrücken des LRU-Zeigers während Snoop-Ope
rationen. Wenn es aktiv ist, veranlaßt es den LRU zum Hinweis
auf denjenigen Pfad, der demjenigen entgegengesetzt ist, in
welchem die Snoop-Invalidisierung stattfindet. Es ist zSNPWAIT,
aufgenommen von einem SACLK-Latch.
Das sSNPHR-Signal aus der TAGIFC-Logik 30 zur WAYCON-Logik
ist ein Tag-Treffer-Signal von der rechten Seite des Tag-RAM,
das bei dem ersten SHCLK nach zSNPCYC aufgenommen wird. In Ver
bindung mit zSNPWAIT wählt es den Pfad für die Snoop-Invalidi
sierung.
Die zVL0, zVL1, zVR0 und zVR1-Signale aus der TAGIFC-Logik
30 zum Tag-RAM sind Status-Bits, welche bei jeder Schreibanfor
derung in den Tag-RAM geschrieben werden. Die Schreibschutz-
und LRU-Bit-Werte werden in zWPO bzw. zPTRDAT geführt. Alle
vier Werte werden jeweils berechnet. Es kann jeweils nur eine
Zeile in einem Pfad aktualisiert werden. Der Tag-RAM verwendet
zWAYSEL, um zu entscheiden, welche beiden der vier einlaufenden
gültigen Signale zur Aktualisierung verwendet werden sollten.
Die Steuer-Logik ist jedoch zur korrekten Erzeugung der Sta
tusinformationen für zwei von zWAYSEL gewählte Signale verant
wortlich. Für die aktuelle Zeile kann das Gültigkeitsbit be
rechnet werden (rV). Die gültige Information für die andere
Zeile wird aus den ADS-Latch-Schaltungen gewonnen
(zADSV[LR] [01]). Wenn die andere Zeile durch Snoop-Operation
ausgeblendet wird (snooped out), so würden die geeigneten ADS-
Latch-Schaltungen 32 von den rCLRV[LR]-Signalen rückgesetzt
worden sein.
Das zWAYSEL-Signal von der WAYCON-Logik zum TAGIFC 30 und
Tag-RAM wählt den Pfad. Für irgendeinen Zugriff auf den Tag-RAM
entscheidet zWAYSEL, ob es auf der linken oder rechten Seite
sein soll. Während normaler Zyklen hat zWAYSEL nur bei einer
Zeilenfüllung eine Bedeutung, wo eine Zeile zum Füllen ausge
wählt werden soll. Die Tag-Treffer-Signale werden in Verbindung
mit dem LRU-Bit verwendet, um den Wert für zWAYSEL entsprechend
der Darstellung in Fig. 3 zu entscheiden.
Wenn es bei einem Snoop einen Treffer gibt (zADSHL oder
zADSHR ist Eins), so wird zWAYSEL entsprechend während der
Dauer des Snoop gesetzt. Es wird auf den vom Zyklus gesetzten
Wert zurückgesetzt, wenn ein Zyklus während des Snoop-Treffers
gerade ablief. Beim TAGIFC entscheidet zWAYSEL, ob die Status-
Bits für einen bestimmten Pfad neu berechnet oder rezirkuliert
werden sollen. Im Tag-RAM wird es verwendet, um einen Pfad für
Aktualisierungen auszuwählen.
Das zWESEL-Signal aus der WAYCON-Logik zum RLS 10 und zur
Schreib-Freigabe-Logik (WE) ist identisch dem zWAYSEL, mit der
Ausnahme, daß die Snoops keine Auswahl über einen Pfad treffen,
nachdem die Pfadwahl bereits bei Beginn eines Zyklus′ durch die
Treffer-Fehlversuch-Information getroffen worden ist. Nur der
Tag-RAM muß wissen, welcher Pfad durch die Snoop-Operation be
troffen ist. Für WE und RLS sollte die Pfadinformation über den
Zyklus konstant bleiben.
Die zWRSTS-, zWRLRU- und zWRTAG-Signale aus der TAGACC-Lo
gik 14 und der Tag-RAM-Logik sind Schreibbefehle. Die Status-
Bits (gültig und Schreibschutz), LRU und die Tag-Bits werden an
den ausgewählten Satzadressen geschrieben, wenn der entspre
chende Schreibbefehl aktiv ist. Die Befehle werden von zFLUSHnn
unbeachtet gelassen.
Claims (3)
1. Cache-Steuergerät mit einem Tag-RAM (Kennungs-RAM), der
in zwei Pfaden, einem rechten (20) und einem linken Pfad (16),
konfiguriert ist, wobei jeder Pfad Tag- und Gültigkeitsbit-
Speicher zum assoziativen Suchen eines Verzeichnisses für
Cache-Datenfeldadressen aufweist,
gekennzeichnet durch:
erste Mittel zur Auswahl von zwei Zeilen während eines Zei len-Füllzyklus an einem der Pfade;
einen "am-längsten-unbenutzt"-Zeiger (LRU) zur Auswahl des während des Zeilen-Füll-Zyklus zu füllenden Pfades derart, daß der rechte Pfad (20) für eine Zeilenfüllung in Abhängigkeit von einem rechten Treffersignal ausgewählt wird, wenn der "am-läng sten-unbenutzt"-Zeiger auf den rechten Pfad hinweist;
zweite Mittel zur Auswahl des linken Pfades (16) für eine Zeilenfüllung in Abhängigkeit von einem linken Treffersignal, wenn der "am-längsten-unbenutzt"-Zeiger auf den linken Pfad hinweist; und
dritte Mittel, welche den "am-längsten-unbenutzt"-Zeiger zum Hinweis auf den rechten Pfad nach Füllen der linken Zeile des linken Pfades und zum Hinweis auf den linken Pfad bei Fül len der rechten Zeile des rechten Pfades veranlaßt.
erste Mittel zur Auswahl von zwei Zeilen während eines Zei len-Füllzyklus an einem der Pfade;
einen "am-längsten-unbenutzt"-Zeiger (LRU) zur Auswahl des während des Zeilen-Füll-Zyklus zu füllenden Pfades derart, daß der rechte Pfad (20) für eine Zeilenfüllung in Abhängigkeit von einem rechten Treffersignal ausgewählt wird, wenn der "am-läng sten-unbenutzt"-Zeiger auf den rechten Pfad hinweist;
zweite Mittel zur Auswahl des linken Pfades (16) für eine Zeilenfüllung in Abhängigkeit von einem linken Treffersignal, wenn der "am-längsten-unbenutzt"-Zeiger auf den linken Pfad hinweist; und
dritte Mittel, welche den "am-längsten-unbenutzt"-Zeiger zum Hinweis auf den rechten Pfad nach Füllen der linken Zeile des linken Pfades und zum Hinweis auf den linken Pfad bei Fül len der rechten Zeile des rechten Pfades veranlaßt.
2. Cache-Steuergerät mit einem Cache-Verzeichnis, das in
zwei Pfade, einen rechten (20) und einen linken (16) Pfad, un
terteilt ist, wobei jeder Pfad Tag-Adressen speichert und wobei
zwei Zeilen während einer Zeilenfüllung in einem der Pfade aus
gewählt sind, und mit einer Einrichtung zur Auswahl des bei ei
nem Zeilen-Füllzyklus zu füllenden Pfades unter Verwendung ei
nes "am-längsten-unbenutzt"-Zeigers (LRU),
dadurch gekennzeichnet,
daß erste Mittel mit dem rechten Pfad (20) des Verzeichnis ses und dem linken Pfad (16) des Verzeichnisses verbunden sind und eine Tag (Kennung) mit den in den rechten und linken Pfaden des Verzeichnisses gespeicherten Tag-Adressen vergleichen;
daß zweite Mittel mit den ersten Mitteln verbunden sind und ein rechtes Treffersignal unter der Bedingung erzeugen, daß zwischen dem Tag und einer der im rechten Pfad gespeicherten Tag-Adressen Übereinstimmung besteht;
daß dritte Mittel mit den ersten Mitteln verbunden sind und ein linkes Treffersignal unter der Bedingung erzeugen, daß zwi schen dem Tag und einer der im linken Pfad gespeicherten Tag- Adressen Übereinstimmung besteht;
daß vierte Mittel mit den zweiten Mitteln gekoppelt sind und den rechten Pfad für eine Zeilenfüllung in Abhängigkeit von dem rechten Treffersignal unter der Bedingung auswählen, daß der "am-längsten-unbenutzt"-Zeiger auf den rechten Pfad hin weist;
daß fünfte Mittel vorgesehen sind, welche den "am-längsten- unbenutzt"-Zeiger zum Hinweis auf den linken Pfad bei Füllung der rechten Zeile des rechten Pfades veranlassen;
daß sechste Mittel vorgesehen sind, welche den linken Pfad für eine Zeilenfüllung in Abhängigkeit von dem linken Treffer signal unter der Bedingung auswählen, daß der "am-längsten-un benutzt"-Zeiger auf den linken Pfad hinweist; und
daß siebte Mittel vorgesehen sind, welche den "am-längsten- unbenutzt"-Zeiger zum Hinweis auf den rechten Pfad bei Füllung der linken Zeile des linken Pfades veranlassen.
daß erste Mittel mit dem rechten Pfad (20) des Verzeichnis ses und dem linken Pfad (16) des Verzeichnisses verbunden sind und eine Tag (Kennung) mit den in den rechten und linken Pfaden des Verzeichnisses gespeicherten Tag-Adressen vergleichen;
daß zweite Mittel mit den ersten Mitteln verbunden sind und ein rechtes Treffersignal unter der Bedingung erzeugen, daß zwischen dem Tag und einer der im rechten Pfad gespeicherten Tag-Adressen Übereinstimmung besteht;
daß dritte Mittel mit den ersten Mitteln verbunden sind und ein linkes Treffersignal unter der Bedingung erzeugen, daß zwi schen dem Tag und einer der im linken Pfad gespeicherten Tag- Adressen Übereinstimmung besteht;
daß vierte Mittel mit den zweiten Mitteln gekoppelt sind und den rechten Pfad für eine Zeilenfüllung in Abhängigkeit von dem rechten Treffersignal unter der Bedingung auswählen, daß der "am-längsten-unbenutzt"-Zeiger auf den rechten Pfad hin weist;
daß fünfte Mittel vorgesehen sind, welche den "am-längsten- unbenutzt"-Zeiger zum Hinweis auf den linken Pfad bei Füllung der rechten Zeile des rechten Pfades veranlassen;
daß sechste Mittel vorgesehen sind, welche den linken Pfad für eine Zeilenfüllung in Abhängigkeit von dem linken Treffer signal unter der Bedingung auswählen, daß der "am-längsten-un benutzt"-Zeiger auf den linken Pfad hinweist; und
daß siebte Mittel vorgesehen sind, welche den "am-längsten- unbenutzt"-Zeiger zum Hinweis auf den rechten Pfad bei Füllung der linken Zeile des linken Pfades veranlassen.
3. Verfahren zur Auswahl eines bei einem Zeilen-Füll-Zyklus
zu füllenden Pfades in einem Cache-Verzeichnis, das in zwei
Pfade, nämlich einen rechten Pfad und einen linken Pfad, unter
teilt ist, wobei jeder Pfad Tag-Adressen speichert und wobei
zwei Zeilen während einer Zeilenfüllung in einem der beiden
Pfade ausgewählt werden,
dadurch gekennzeichnet,
- A. daß ein Tag mit den in den rechten und linken Pfa den des Verzeichnisses gespeicherten Tag-Adressen vergli chen wird;
- B. daß ein rechtes Treffersignal unter der Bedingung erzeugt wird, daß eine Übereinstimmung zwischen dem Tag und einer der im rechten Pfad gespeicherten Tag-Adressen existiert;
- C. daß ein linkes Treffersignal unter der Bedingung erzeugt wird, daß eine Übereinstimmung zwischen dem Tag und einer der im linken Pfad gespeicherten Tag-Adressen existiert;
- D. daß der rechte Pfad für eine Zeilenfüllung in Ab hängigkeit von dem rechten Treffersignal unter der Bedin gung ausgewählt wird, daß ein "am-längsten-unbenutzt"-Zei ger auf den rechten Pfad hinweist;
- E. daß der "am-längsten-unbenutzt"-Zeiger auf den lin ken Pfad umgeschaltet wird, wenn die rechte Zeile des rechten Pfades gefüllt ist;
- F. daß der linke Pfad für eine Zeilenfüllung in Abhän gigkeit von dem linken Treffersignal unter der Bedingung ausgewählt wird, daß der "am-längsten-unbenutzt"-Zeiger auf den linken Pfad hinweist; und
- G. daß der "am-längsten-unbenutzt"-Zeiger auf den rechten Pfad umgeschaltet wird, wenn die linke Zeile des linken Pfades gefüllt ist (Fig. 4).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69124091A | 1991-04-25 | 1991-04-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4213073A1 true DE4213073A1 (de) | 1992-10-29 |
Family
ID=24775711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4213073A Withdrawn DE4213073A1 (de) | 1991-04-25 | 1992-04-21 | Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus |
Country Status (4)
Country | Link |
---|---|
US (2) | US5530833A (de) |
JP (1) | JPH0628263A (de) |
DE (1) | DE4213073A1 (de) |
GB (1) | GB2255211B (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
US5813030A (en) * | 1991-12-31 | 1998-09-22 | Compaq Computer Corp. | Cache memory system with simultaneous access of cache and main memories |
GB2293668B (en) * | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
US5689255A (en) * | 1995-08-22 | 1997-11-18 | Hewlett-Packard Company | Method and apparatus for compressing and decompressing image data |
US6098150A (en) * | 1995-11-17 | 2000-08-01 | Sun Microsystems, Inc. | Method and apparatus for fetching information from a cache memory |
US5809228A (en) * | 1995-12-27 | 1998-09-15 | Intel Corporaiton | Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer |
US5845106A (en) * | 1996-01-26 | 1998-12-01 | Advanced Micro Devices, Inc. | Method for simulating cache operation |
US5983313A (en) * | 1996-04-10 | 1999-11-09 | Ramtron International Corporation | EDRAM having a dynamically-sized cache memory and associated method |
US5765192A (en) * | 1996-05-01 | 1998-06-09 | Sun Microsystems, Inc. | Method and computer program product to reuse directory search handles |
US6202125B1 (en) * | 1996-11-25 | 2001-03-13 | Intel Corporation | Processor-cache protocol using simple commands to implement a range of cache configurations |
US6078995A (en) * | 1996-12-26 | 2000-06-20 | Micro Magic, Inc. | Methods and apparatus for true least recently used (LRU) bit encoding for multi-way associative caches |
US6138213A (en) * | 1997-06-27 | 2000-10-24 | Advanced Micro Devices, Inc. | Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line |
US6434671B2 (en) * | 1997-09-30 | 2002-08-13 | Intel Corporation | Software-controlled cache memory compartmentalization |
US6023747A (en) * | 1997-12-17 | 2000-02-08 | International Business Machines Corporation | Method and system for handling conflicts between cache operation requests in a data processing system |
US6202129B1 (en) * | 1998-03-31 | 2001-03-13 | Intel Corporation | Shared cache structure for temporal and non-temporal information using indicative bits |
JP2001209579A (ja) * | 2000-01-28 | 2001-08-03 | Fujitsu Ltd | キャッシュメモリ装置 |
US6446171B1 (en) * | 2000-03-02 | 2002-09-03 | Mips Technologies, Inc. | Method and apparatus for tracking and update of LRU algorithm using vectors |
US6408364B1 (en) * | 2000-03-17 | 2002-06-18 | Advanced Micro Devices, Inc. | Apparatus and method for implementing a least recently used cache replacement algorithm |
US6823427B1 (en) * | 2001-05-16 | 2004-11-23 | Advanced Micro Devices, Inc. | Sectored least-recently-used cache replacement |
GB2458295B (en) * | 2008-03-12 | 2012-01-11 | Advanced Risc Mach Ltd | Cache accessing using a micro tag |
US20130103903A1 (en) * | 2011-10-20 | 2013-04-25 | Vidyalakshmi Rajagopalan | Methods And Apparatus For Reusing Prior Tag Search Results In A Cache Controller |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4363095A (en) * | 1980-12-31 | 1982-12-07 | Honeywell Information Systems Inc. | Hit/miss logic for a cache memory |
JP2822588B2 (ja) * | 1990-04-30 | 1998-11-11 | 日本電気株式会社 | キャッシュメモリ装置 |
US5210845A (en) * | 1990-11-28 | 1993-05-11 | Intel Corporation | Controller for two-way set associative cache |
US5339399A (en) * | 1991-04-12 | 1994-08-16 | Intel Corporation | Cache controller that alternately selects for presentation to a tag RAM a current address latch and a next address latch which hold addresses captured on an input bus |
GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
-
1992
- 1992-04-08 GB GB9207704A patent/GB2255211B/en not_active Expired - Fee Related
- 1992-04-21 DE DE4213073A patent/DE4213073A1/de not_active Withdrawn
- 1992-04-27 JP JP4131375A patent/JPH0628263A/ja active Pending
-
1995
- 1995-06-06 US US08/486,132 patent/US5530833A/en not_active Expired - Lifetime
-
1996
- 1996-06-27 US US08/671,446 patent/US5724547A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5530833A (en) | 1996-06-25 |
GB2255211A (en) | 1992-10-28 |
US5724547A (en) | 1998-03-03 |
GB2255211B (en) | 1995-05-17 |
GB9207704D0 (en) | 1992-05-27 |
JPH0628263A (ja) | 1994-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4213073A1 (de) | Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus | |
DE68927172T2 (de) | Multiprozessorsystem mit cache-speichern | |
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE68924206T2 (de) | Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. | |
DE69906006T2 (de) | Datenverarbeitungs-schaltung mit pufferspeicher | |
DE69421379T2 (de) | Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE69527383T2 (de) | Virtuelle Speicheranordnung | |
DE69228679T2 (de) | Speicher, speichersteuerungsvorrichtung und speichersteuerungsverfahren zur anwendung mit einem copy-back-cachespeichersystem | |
DE102006030879B4 (de) | System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem | |
DE4022885C2 (de) | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem | |
DE2241257B2 (de) | Datenverarbeitende Anlage | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE10316725A1 (de) | Datenverwaltungsverfahren für ein Distributed Shared Memory-System | |
DE69031696T2 (de) | Cache-Speicher mit der Möglichkeit im Fehlgriffsfall gleichzeitig zu aktualisieren und eine Entscheidung über die nächste Adresse zu treffen | |
DE2422732C2 (de) | Hierarchische Speicheranordnung | |
DE3588061T2 (de) | Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät. | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE69030072T2 (de) | Schneller Durchschreib-Cache-Speicher | |
DE69618783T2 (de) | Schreibcachespeicher zur verbesserung der schreibleistung | |
DE69227267T2 (de) | Datencache-Speicher und Verfahren zur Speicherfehlerbehandlung während Zurückschreiben |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 12/08 |
|
8139 | Disposal/non-payment of the annual fee |