DE10006430A1 - Verbessertes Kohärenzprotokoll für einen Computer-Cache - Google Patents
Verbessertes Kohärenzprotokoll für einen Computer-CacheInfo
- Publication number
- DE10006430A1 DE10006430A1 DE10006430A DE10006430A DE10006430A1 DE 10006430 A1 DE10006430 A1 DE 10006430A1 DE 10006430 A DE10006430 A DE 10006430A DE 10006430 A DE10006430 A DE 10006430A DE 10006430 A1 DE10006430 A1 DE 10006430A1
- Authority
- DE
- Germany
- Prior art keywords
- cache
- line
- entry
- state
- status
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
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)
- Multi Processors (AREA)
Abstract
Ein Cache einer unteren Ebene erfaßt, wenn eine Speicherzelle von einem Cache einer höheren Ebene geräumt wurde. Das Cache-Kohärenzprotokoll für den Cache einer unteren Ebene setzt die Zeile in einen besonderen Zustand. Wird eine Zeile in dem besonderen Zustand von dem Cache einer unteren Ebene geräumt, weiß der Cache einer unteren Ebene, daß die Zeile nicht in einem Cache einer höheren Ebene gespeichert ist, weshalb keine Zurückungültigmachungs-Transaktion benötigt wird. Ein Reduzieren der Anzahl von Zurückungültigmachungs-Transaktionen verbessert das Verhalten des Systems.
Description
Diese Erfindung bezieht sich im allgemeinen auf Computersy
steme und im besonderen auf Kohärenzprotokolle und eine
Implikation (bzw. Inklusion) in Cache-Speichersystemen. Die
meisten Computersysteme verwenden eine Mehrebenenhierarchie
von Speichersystemen mit relativ schnellen, teueren, Spei
chern mit begrenzter Kapazität auf der höchsten Ebene der
Hierarchie fortschreitend zu relativ langsamen, kostengün
stigen Speichern höherer Kapazität auf der untersten Ebene
der Hierarchie. Typischerweise umfaßt die Hierarchie einen
kleinen, schnellen Speicher, der als ein Cache bezeichnet
wird, und der entweder physisch in einer integrierten Schal
tung eines Prozessors integriert ist oder für eine Schnel
ligkeit physisch nahe an dem Prozessor befestigt ist. Es
können getrennte Befehls-Caches und Daten-Caches existieren.
Ebenso können mehrere Ebenen von Caches existieren.
Die minimale Speichermenge, die zwischen einem Cache und
einer nächsttieferen Ebene der Speicherhierarchie trans
feriert werden kann, wird als Zeile, Block oder Seite
bezeichnet. In dem vorliegenden Patentdokument wird der
Begriff "Zeile" verwendet, die Erfindung ist jedoch genauso
auf Systeme, die Blöcke oder Seiten verwenden, anwendbar.
Bei den meisten Mehrebenen-Caches besitzt jede Cache-Ebene
eine Kopie einer jeder Speicherzeile, die sich in jeder, in
der Hierarchie höheren Cache-Ebene befindet, eine Eigen
schaft, die als Implikation (bzw. Inklusion) bezeichnet
wird. Beispielsweise befindet sich in einem Implikation-
Zwei-Ebenen-Cache-System jeder Eintrag in dem Primär-Cache
auch in dem Sekundär-Cache. Wird eine Zeile von einem Cache
einer oberen Ebene geräumt, so ist es erlaubt, daß die Zeile
in Caches unterer Ebenen verbleibt. Wird eine Zeile von
einem Cache einer unteren Ebene geräumt, so muß umgekehrt,
um eine Kohärenz aufrecht zu erhalten, der Cache einer
unteren Ebene eine Bus-Transaktion ausgeben, die als Zurück
ungültigmachungs-Transaktion bezeichnet wird, um sämtliche
Kopien der geräumten Zeile aus oberen Ebenen der Cache-Hie
rarchie zu räumen. Zurückungültigmachungs-Transaktionen
treten häufig auf und haben aufgrund eines erhöhten Bus-Ge
brauchs zwischen den Caches und einem erhöhten Bus-Überwach
ungs-Verkehr (Abhör-Verkehr) einen wesentlichen Einfluß auf
das Gesamtverhalten. Es besteht ein Bedarf, die Anzahl der
Zurückungültigmachungs-Transaktionen zu reduzieren, um das
Verhalten zu verbessern.
Viele Computersysteme verwenden mehrere Prozessoren, von
denen jeder mehrere Ebenen von Caches besitzen kann. Alle
Prozessoren und Caches können einen gemeinsamen Hauptspei
cher verwenden. Eine bestimmte Zeile kann gleichzeitig in
einem gemeinsam verwendeten Speicher und in den Cache-
Hierarchien für mehrere Prozessoren existieren. Alle Kopien
einer Zeile in den Caches müssen identisch sein, eine
Eigenschaft, die als eine Kohärenz bezeichnet wird. Die
Kopie einer Zeile in einem gemeinsam verwendeten Speicher
kann "abgestanden" (nicht aktualisiert) sein. Ändert ein be
liebiger Prozessor den Inhalt einer Zeile, dann ist nur die
eine geänderte Kopie gültig, während alle anderen Kopien
müssen daraufhin aktualisiert oder ungültig gemacht werden
müssen. Die Protokolle zum Aufrechterhalten einer Kohärenz
für mehrere Prozessoren werden als Cache-Kohärenzprotokolle
bezeichnet. Bei einigen Protokollen wird der Status einer
Zeile eines physischen Speichers an einem Ort gehalten, der
als das Verzeichnis bezeichnet wird. Bei anderen Protokollen
besitzt jeder Cache, der eine Kopie einer Zeile eines phy
sischen Speichers besitzt, ferner eine Kopie des Gemeinsam
verwendungsstatus der Zeile. Wenn kein zentralisierter
Zustand gehalten wird, überwachen alle Cache-Überwachungs
einheiten einen gemeinsam verwendeten Bus oder hören den
selben ab, um zu bestimmen, ob sie im Besitz einer Kopie
einer Zeile sind, die auf dem Bus angefordert wird, oder
nicht. Das vorliegende Patentdokument ist für jedes Mehr
ebenen-Cache-System relevant, jedoch ist es im besonderen
für Mehrprozessorsysteme in einem auf Abhören basierenden
System, bei denen jeder Prozessor eine Hierarchie von
Caches, die alle einen Hauptspeicher gemeinsam verwenden,
relevant. Fig. 1 zeigt ein Zustandsdiagramm als ein Beispiel
eines bekannten Mehrprozessor-Cache-Kohärenzprotokolls bei
einem auf Abhören basierenden System. Fig. 1 zeigt vier
mögliche Zustände für jede Zeile in einem Cache. Bevor
Zeilen in dem Cache plaziert werden, sind alle Einträge in
einem Vorgabezustand, der als "ungültig" (100) bezeichnet
wird. Wird eine Nicht-Cache-gespeicherte physische Zeile in
dem Cache plaziert, ändert sich der Eintragungszustand in
dem Cache von ungültig zu "exklusiv" (102). Das Wort "exklu
siv" bedeutet, daß exakt eine Cache-Hierarchie eine Kopie
der Zeile besitzt. Ist eine Zeile in einem Exklusiv-Zustand
in einer Cache-Hierarchie für einen ersten Prozessor und
fordert ein zweiter Prozessor die gleiche Zeile an, wird
die Zeile in zwei Cache-Hierarchien kopiert, und der Ein
tragungszustand in jedem Cache wird auf "gemeinsam verwen
det" ("shared") (104) eingestellt. Wird eine Zeile in einem
Cache modifiziert, kann dieselbe ferner sofort in einem
gemeinsam verwendeten Speicher modifiziert werden (was als
Durchschreiben bezeichnet wird). Alternativ kann ein Cache
eine modifizierte Zeile in einen gemeinsam verwendeten
Speicher nur schreiben, wenn die modifizierte Zeile in dem
Cache ungültig gemacht oder ersetzt wird (was als Zurück
schreiben bezeichnet wird). In Fig. 1 sei angenommen, daß
der Cache ein Zurückschreibe-Cache ist, weshalb folglich der
Eintragungszustand in dem Cache auf "modifiziert" (106)
geändert wird, wenn eine Zeile in dem Cache modifiziert
wird. Das Protokoll von Fig. 1 wird manchmal als ein MESI-
Protokoll bezeichnet, was sich auf die ersten vier Buch
staben des englischsprachigen Ausdrucks für jeden der vier
Zustände (modified, exclusive, shared, invalid) bezieht.
Bei dem Protokoll von Fig. 1 ist der modifizierte Zustand
(106) tatsächlich ein exklusiv-modifizierter Zustand, was
bedeutet, daß nur eine Cache-Hierarchie in dem System eine
Kopie der modifizierten Zeile besitzt. Manche Systeme fügen
einen zusätzlichen modifizierten Zustand hinzu, um zu er
möglichen, daß mehrere Caches eine Kopie der modifizierten
Daten besitzen. Fig. 2 zeigt ein bekanntes Protokoll, bei
dem ein zusätzlicher Zustand hinzugefügt wurde, der als
"zugehörig" (208) bezeichnet ist. Zustände 200, 202 und 206
in Fig. 2 haben die gleiche Funktion wie die identisch be
nannten Zustände von Fig. 1. Im Gegensatz dazu können bei
dem Protokoll von Fig. 2 andere Cache-Hierarchien Kopien
einer modifizierten Zeile in dem Gemeinsam-Verwendet-Zustand
(204) besitzen, jedoch nur eine Cache-Hierarchie kann eine
modifizierte Zeile in einem Zugehörig-Zustand (208) be
sitzen. Nur der eine Cache, der eine modifizierte Zeile in
dem Zugehörig-Zustand besitzt, kann die modifizierte Zeile
zurück in einen gemeinsam verwendeten Speicher schreiben.
Es ist die Aufgabe der folgenden Erfindung, ein Verfahren
zum Beibehalten einer Kohärenz für Computersysteme, die
Cache-Speicher verwenden, zu schaffen, um ein verbessertes
Verhalten derselben zu ermöglichen.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 ge
löst.
Neue zusätzliche Cache-Kohärenzzustände, die anzeigen, daß
eine Zeile nicht in höheren Ebenen der Cache-Hierarchie
Cache-gespeichert ist, sind vorgesehen, weshalb keine Zu
rückungültigmachungs-Transaktion benötigt wird, wenn die
Zeile geräumt wird. Ein neuer Zustand wird als Mu, was für
modifiziert und Nicht-Cache-gespeichert (uncached) steht,
bezeichnet, was bedeutet, daß die modifizierte Zeile nicht
in einer höheren Ebene der Cache-Hierarchie cache-gespei
chert ist. Gleichartig dazu können Zustände mit Su (ge
meinsam verwendet und nicht-cache-gespeichert) und Eu
(exklusiv und Nicht-Cache-gespeichert) vorgesehen sein.
Den Mu-Zustand betreffend horcht das System Räumungen von
oberen Ebenen der Cache-Hierarchie ab. Spezifischer wird
jedes Zurückschreiben von einem Cache einer oberen Ebene
durch einen Cache einer unteren Ebene geschrieben. Beim
Empfangen eines Zurückschreibens von einer unteren Ebene
ändert der Cache einer oberen Ebene den Zustand der rele
vanten Eintragung in Mu um. Wird eine Zeile, die einen
Zustand mit Mu besitzt, geräumt, so wird keine Zurück
ungültigmachungs-Transaktion erzeugt. Wird eine Zeile in dem
Mu-Zustand nachfolgend gelesen, so wird der Zustand auf M
(modifiziert) geschaltet.
Su- und Eu-Zustände können immer dann vorgesehen sein, wenn
ein System einen Hinweis liefert, daß eine Zeile nicht in
höheren Ebenen der Cache-Hierarchie Cache-gespeichert ist.
Beispielsweise können Su- und Eu-Zustände vorgesehen sein,
wenn ein System eine Transaktion liefert, um einen Cache
einer unteren Ebene oder ein Verzeichnis zu informieren,
wenn eine saubere Zeile von einem Cache einer oberen Ebene
verschoben wurde.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend unter Bezugnahme auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Zustandsdiagramm eines bekannten Cache-
Kohärenzprotokolls;
Fig. 2 ein Zustandsdiagramm einer bekannten Variation des
Protokolls von Fig. 1;
Fig. 3 ein Blockdiagramm eines Beispiel-Computersystems,
das zur Verwendung mit der Erfindung geeignet ist;
Fig. 4 ein Zustandsdiagramm eines Cache-Kohärenzprotokolls
gemäß einem beispielhaften Ausführungsbeispiel der
Erfindung;
Fig. 5 ein Zustandsdiagramm eines Cache-Kohärenzprotokolls
gemäß einem alternativen Ausführungsbeispiels der
Erfindung; und
Fig. 6 ein Zustandsdiagramm eines Cache-Kohärenzprotokolls
in Übereinstimmung mit einem alternativen Ausfüh
rungsbeispiel der Erfindung;
Die Erfindung ist bezüglich jedes Mehrebenen-Cache-Systems
anwendbar, sie ist jedoch besonders vorteilhaft bei großen
Mehrprozessorsystemen. Fig. 3 zeigt ein Beispiel eines Com
putersystems, bei dem die vorliegenden Erfindung besonders
anwendbar ist. In Fig. 3 besitzt ein Computersystem N Pro
zessoren, von denen zwei gezeigt sind (300, 302). Jeder Pro
zessor besitzt drei Ebenen von internen Caches (304, 306,
308 und 310, 312, 314) und einen vierten externen Cache
(316, 318). Alle Prozessoren und deren zugeordnete Cache-
Hierarchien verwenden gemeinsam einen Systembus 320 und
einen Systemspeicher 322. Ein Bus 324 veranschaulicht, daß
mehrere Prozessoren einen externen Cache, beispielsweise den
Cache 316, gemeinsam verwenden können. Die Erfindung befaßt
sich mit einem Cache-Kohärenz-Protokoll, das für jeden Cache
einer unteren Ebene, beispielsweise für die zwei L3-Caches
(316 und 318) in Fig. 3, verwendet werden kann. Bei einem
System gemäß der Erfindung erfaßt ein Cache einer unteren
Ebene, beispielsweise der Cache 316, wenn eine Zeile von ei
nem Cache einer höheren Ebene geräumt wird. Wurde eine Zeile
von einem Cache einer höheren Ebene geräumt, so besteht da
raufhin kein Bedarf nach einer Zurückungültigmachungs-Trans
aktion, wenn die Zeile von dem Cache einer unteren Ebene
geräumt wird. Folglich umfaßt das Kohärenzprotokoll eines
Caches einer unteren Ebene einen zusätzlichen Zustand, der
anzeigt, daß eine Zeile nicht in höheren Ebenen Cache-ge
speichert ist, weshalb eine Zurückungültigmachungs-Trans
aktion nicht benötigt wird, wenn dieselbe geräumt wird. Eine
Verringerung der Zurückungültigmachungs-Transaktionen ver
bessert das Verhalten.
Einige Computersysteme können ein Verzeichnis anstelle eines
Caches einer unteren Ebene verwenden. Ein Verzeichnis ist
ein Satz von Etiketten (tags) für alle der gemeinsam ver
wendeten Systemspeicher. Die Etiketten umfassen Zustands-
Bits, um Zustände, wie z. B. "modifiziert", "exklusiv",
"gemeinsam-verwendet" und "ungültig", anzuzeigen. Die
Etiketten können auch anzeigen, welche Cachespeicher Kopien
einer Zeile besitzen. Für die Zwecke der Erfindung stellt
ein Verzeichnis einen Cache dar (der sehr groß sein kann),
und die Erfindung ist genauso auf Zustände innerhalb eines
Verzeichnisses anwendbar.
Fig. 4 zeigt ein beispielhaftes Ausführungsbeispiel eines
Cache-Kohärenzprotokolls gemäß der Erfindung. Fig. 4 zeigt
einen zusätzlichen Zustand (Modifiziert Nicht-Cache-ge
speichert), Mu (408), der zu dem bekannten Protokoll von
Fig. 1 hinzugefügt wurde. Der zusätzliche Zustand kann auch
zu dem bekannten Protokoll von Fig. 2 hinzugefügt werden,
oder allgemein zu jedem Protokoll, das einen M-Zustand (Mo
difiziert-Zustand) besitzt. Ist eine Zeile in einem Mu-Zu
stand und wird die Zeile geräumt, so wird keine Zurückun
gültigmachungs-Transaktion erzeugt. Ist beispielsweise bei
dem System von Fig. 3 eine Zeile in einem Cache 316 in einem
Mu-Zustand und wird die Zeile von dem Cache 316 geräumt, so
braucht der Cache 316 keine Transaktion auszugeben, um die
Zeile von den Caches 304, 306, oder 308 zu räumen.
Erfaßt bei dem Protokoll, das in Fig. 4 gezeigt ist, ein
Cache einer unteren Ebene eine Zurückschreib-Transaktion von
einem Cache einer höheren Ebene in der gleichen Hierarchie,
so wird der Zustand der Zeile, die von dem Cache einer hö
heren Ebene geräumt wurde, in dem Cache einer unteren Ebene
von M (406) auf Mu (408) geändert. Es sei für einen Prozes
sor 0 (300) in Fig. 3 beispielsweise angenommen, daß der
Cache L2 (308) eine Zeile räumt. L2 schreibt daraufhin in
einen Cache einer unteren Ebene (L3) oder in den gemeinsam
verwendeten Speicher (322) zurück. Der Cache L3 (316) erfaßt
die Zurückschreib-Transaktion und das entsprechende Etikett
oder Adresse, und der Zustand des entsprechenden Eintrags in
L3 (316) wird auf Mu (Fig. 4, 408) geschaltet. Wird eine
Zeile, die einen Zustand Mu besitzt, gelesen, so wird der
Zustand auf M (406) geschaltet. Ist beispielsweise in Fig. 3
eine Zeile in dem Cache 316 in einem Zustand Mu und wird die
Zeile durch den Prozessor 0 (300) gelesen, so wird der
Zustand der Zeile in dem Cache 316 auf M (406) geschaltet.
Bei dem System von Fig. 4 verwendet der Cache einer unteren
Ebene eine Zurückschreib-Transaktion, um zu erfahren, wenn
eine modifizierte Zeile von einem Cache einer höheren Ebene
geräumt wird. Liefert das System eine Transaktion oder einen
anderen Hinweis zum Anzeigen, daß eine saubere Zeile von
einem Cache einer oberen Ebene geräumt wurde, beispielsweise
eine explizite Zurückschreib/Aktualisierungs-Transaktion,
dann können zusätzliche Zustände für "gemeinsam verwendet
und Nicht-Cache-gespeichert" und für "exklusiv und Nicht-
Cache-gespeichert" hinzugefügt werden. Fig. 5 zeigt einen
zusätzlichen Zustand (gemeinsam verwendet nicht-Cache-
gespeichert), Su (508), der zu dem bekannten Protokoll von
Fig. 1 hinzugefügt wurde. Fig. 6 zeigt einen zusätzlichen
Zustand (exklusiv nicht-cache-gespeichert), Eu (608), der
dem Protokoll nach Stand der Technik von Fig. 1 hinzugefügt
wurde. Gemäß Fig. 5 und Fig. 6 bewirkt eine Erfassung einer
spezifischen Transaktion oder eines Hinweises, der eine
Räumung einer sauberen Zeile anzeigt, einen Übergang von dem
Gemeinsam-Verwendet-Zustand 504 in den Su-Zustand 508 oder
einen Übergang von dem Exklusiv-Zustand 602 in den Eu-Zu
stand 608.
Ist eine Zeile in dem Cache 316 (Fig. 3) in den Zustänen Su
(Fig. 5, 508) oder Eu (Fig. 6, 608), so bewirkt ein nachfol
gendes Lesen der Zeile durch den Prozessor 300, daß die
Zeile auf "Gemeinsam-verwendet" bzw. "Exklusiv" übergeht.
Ist eine Zeile in dem Su- oder Eu-Zustand in dem Cache 316,
so bewirkt ein Beschreiben der Zeile durch den Prozessor
300, daß die Zeile in den Modifiziert-Zustand (406, 606) in
dem Cache 316 übergeht. Wenn eine Zeile in dem Cache 316 in
dem Su- oder dem Eu-Zustand ist und der Prozessor 302 ein
Lesen für die Zeile ausgibt, wird das Lesen auf dem Bus 320
gesendet. Die Abhöroperation, die durch den Cache 316 aus
geführt wird, bewirkt, daß die Zeile einen Übergang zu "Ge
meinsam-verwendet" (504, 604) durchführt. Es besteht kein
Bedarf danach, daß eine Ungültigmachungs-Transaktion zu den
Caches 304, 306 und 308 gesendet wird. Ist eine Zeile in dem
Cache 316 in dem Su- oder dem Eu-Zustand und wird eine Un
gültigmachung für die Zeile oder ein Schreiben in die Zeile
auf dem Bus 320 abgehört, so wird die Zeile in den "Ungül
tig"-Zustand (500, 600) in dem Cache 316 übergehen, und es
besteht kein Bedarf danach, daß eine Ungültigmachungs-Trans
aktion zu den Caches 304, 306 und 308 gesendet wird.
Die zusätzlichen Zustände Mu, Su und Eu, die in den Fig. 4,
5 bzw. 6 gezeigt sind, schließen sich nicht gegenseitig aus.
Jede Kombination der zusätzlichen Zustände kann nach Eignung
innerhalb einem Systems implementiert werden.
Claims (6)
1. Verfahren zur Aufrechterhaltung einer Kohärenz für ein
Datenspeichersystem, mit folgenden Schritten:
Erfassen durch einen ersten Cache (316), daß ein Ein trag durch einen Cache einer höheren Ebene (304-308) geräumt wurde;
Schalten eines ersten Zustands (406, 504, 602) des Ein trags in dem ersten Cache durch den ersten Cache in ei nen zweiten Zustand (408, 508, 608), von dem der Ein trag von dem ersten Cache geräumt werden kann, ohne daß er in dem Cache einer höheren Ebene ungültig gemacht werden muß.
Erfassen durch einen ersten Cache (316), daß ein Ein trag durch einen Cache einer höheren Ebene (304-308) geräumt wurde;
Schalten eines ersten Zustands (406, 504, 602) des Ein trags in dem ersten Cache durch den ersten Cache in ei nen zweiten Zustand (408, 508, 608), von dem der Ein trag von dem ersten Cache geräumt werden kann, ohne daß er in dem Cache einer höheren Ebene ungültig gemacht werden muß.
2. Verfahren nach Anspruch 1, bei dem der erste Cache ein
Verzeichnis ist.
3. Verfahren nach den Ansprüchen 1 oder 2, wobei der
Schritt des Erfassens ferner folgenden Schritt
aufweist:
Erfassen, daß ein Cache höherer Ebene eine Zurück schreib-Transaktion ausgeführt hat.
Erfassen, daß ein Cache höherer Ebene eine Zurück schreib-Transaktion ausgeführt hat.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der
Schritt des Erfassens das ferner folgendes Merkmal
aufweist:
Erfassen, daß ein Cache einer höheren Ebene eine saubere Zeile geräumt hat.
Erfassen, daß ein Cache einer höheren Ebene eine saubere Zeile geräumt hat.
5. Verfahren nach einem der Ansprüche 1 bis 4, das ferner
folgende Schritte aufweist:
Erfassen einer Lese-Transaktion für den Eintrag durch den ersten Cache; und
Schalten des Eintrages, ansprechend auf die Lese- Transaktion, von dem zweiten Zustand (408) in einen modifizierten Zustand (406).
Erfassen einer Lese-Transaktion für den Eintrag durch den ersten Cache; und
Schalten des Eintrages, ansprechend auf die Lese- Transaktion, von dem zweiten Zustand (408) in einen modifizierten Zustand (406).
6. Verfahren nach einem der Ansprüche 1 bis 5, das ferner
folgende Schritte aufweist:
Erfassen einer Lese-Transaktion für den Eintrag durch den ersten Cache; und
Schalten des Eintrags, ansprechend auf die Lese-Trans aktion, von dem zweiten Zustand in den ersten Zustand.
Erfassen einer Lese-Transaktion für den Eintrag durch den ersten Cache; und
Schalten des Eintrags, ansprechend auf die Lese-Trans aktion, von dem zweiten Zustand in den ersten Zustand.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US290430 | 1994-08-15 | ||
US09/290,430 US6360301B1 (en) | 1999-04-13 | 1999-04-13 | Coherency protocol for computer cache |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10006430A1 true DE10006430A1 (de) | 2000-10-26 |
DE10006430B4 DE10006430B4 (de) | 2004-11-18 |
Family
ID=23115960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10006430A Expired - Fee Related DE10006430B4 (de) | 1999-04-13 | 2000-02-14 | Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System |
Country Status (3)
Country | Link |
---|---|
US (1) | US6360301B1 (de) |
JP (1) | JP2000322318A (de) |
DE (1) | DE10006430B4 (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748490B1 (en) * | 2000-03-29 | 2004-06-08 | Ati International Srl | Method and apparatus for maintaining data coherency in a shared memory system |
US6574710B1 (en) * | 2000-07-31 | 2003-06-03 | Hewlett-Packard Development Company, L.P. | Computer cache system with deferred invalidation |
US6751705B1 (en) * | 2000-08-25 | 2004-06-15 | Silicon Graphics, Inc. | Cache line converter |
US6681293B1 (en) * | 2000-08-25 | 2004-01-20 | Silicon Graphics, Inc. | Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries |
US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
US6662275B2 (en) * | 2001-02-12 | 2003-12-09 | International Business Machines Corporation | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache |
US6983348B2 (en) | 2002-01-24 | 2006-01-03 | Intel Corporation | Methods and apparatus for cache intervention |
US7100001B2 (en) * | 2002-01-24 | 2006-08-29 | Intel Corporation | Methods and apparatus for cache intervention |
US7783842B2 (en) * | 2003-01-09 | 2010-08-24 | International Business Machines Corporation | Cache coherent I/O communication |
US7133975B1 (en) | 2003-01-21 | 2006-11-07 | Advanced Micro Devices, Inc. | Cache memory system including a cache memory employing a tag including associated touch bits |
US20040153611A1 (en) * | 2003-02-04 | 2004-08-05 | Sujat Jamil | Methods and apparatus for detecting an address conflict |
US7287126B2 (en) * | 2003-07-30 | 2007-10-23 | Intel Corporation | Methods and apparatus for maintaining cache coherency |
US7484044B2 (en) * | 2003-09-12 | 2009-01-27 | Intel Corporation | Method and apparatus for joint cache coherency states in multi-interface caches |
US7577795B2 (en) * | 2006-01-25 | 2009-08-18 | International Business Machines Corporation | Disowning cache entries on aging out of the entry |
US7689771B2 (en) * | 2006-09-19 | 2010-03-30 | International Business Machines Corporation | Coherency management of castouts |
US8200903B2 (en) | 2008-02-14 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Computer cache system with stratified replacement |
US8015365B2 (en) * | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
GB2592919B (en) * | 2020-03-09 | 2022-04-20 | Advanced Risc Mach Ltd | An apparatus and method for providing coherence data for use when implementing a cache coherency protocol |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
US5671391A (en) | 1994-01-10 | 1997-09-23 | Ncr Corporation | Coherent copyback protocol for multi-level cache memory systems |
US5732244A (en) * | 1995-07-24 | 1998-03-24 | Unisys Corp. | Multiprocessor with split transaction bus architecture for sending retry direction to other bus module upon a match of subsequent address bus cycles to content of cache tag |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
-
1999
- 1999-04-13 US US09/290,430 patent/US6360301B1/en not_active Expired - Fee Related
-
2000
- 2000-02-14 DE DE10006430A patent/DE10006430B4/de not_active Expired - Fee Related
- 2000-04-13 JP JP2000112465A patent/JP2000322318A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US6360301B1 (en) | 2002-03-19 |
DE10006430B4 (de) | 2004-11-18 |
JP2000322318A (ja) | 2000-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69629140T2 (de) | Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index | |
DE10262164B4 (de) | Computersystem mit einer hierarchischen Cacheanordnung | |
DE69518676T2 (de) | Cache-Speicheranordnung für einen Speicher | |
DE102009022151B4 (de) | Verringern von Invalidierungstransaktionen aus einem Snoop-Filter | |
DE69514165T2 (de) | Mehrstufige Cache-Speicheranordnung | |
DE69127111T2 (de) | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher | |
DE69130086T2 (de) | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE69424767T2 (de) | Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers | |
DE69327387T2 (de) | An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung | |
DE68902193T2 (de) | Datenspeicheranordnung. | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE69900797T2 (de) | Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen | |
DE10006430B4 (de) | Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System | |
DE112008002018B4 (de) | Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern | |
DE10085373B4 (de) | Verfahren zum Flushen von Cache-Zeilen | |
DE102008062044B4 (de) | 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration | |
DE102006030879B4 (de) | System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem | |
DE10316725B4 (de) | Datenverwaltungsverfahren für ein Distributed Shared Memory-System | |
DE69615758T2 (de) | Rechnersystem mit Speicherzustandsrückgewinnung | |
DE69706934T2 (de) | Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte | |
DE69222060T2 (de) | Semaphore umgehung. | |
DE112005002180T5 (de) | Lösen von Cachekonflikten | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8127 | New person/name/address of the applicant |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |