DE10006430A1 - Verbessertes Kohärenzprotokoll für einen Computer-Cache - Google Patents

Verbessertes Kohärenzprotokoll für einen Computer-Cache

Info

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
Application number
DE10006430A
Other languages
English (en)
Other versions
DE10006430B4 (de
Inventor
Blaine D Gaither
Eric M Rentschler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10006430A1 publication Critical patent/DE10006430A1/de
Application granted granted Critical
Publication of DE10006430B4 publication Critical patent/DE10006430B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, 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ß.
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.
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.
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).
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.
DE10006430A 1999-04-13 2000-02-14 Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System Expired - Fee Related DE10006430B4 (de)

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)

* Cited by examiner, † Cited by third party
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
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
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
DE10006430B4 (de) 2004-11-18
JP2000322318A (ja) 2000-11-24
US6360301B1 (en) 2002-03-19

Similar Documents

Publication Publication Date Title
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
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
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE102007048507B4 (de) Cache-Speichersystem und Verfahren zum Bereitstellen eines Transaktionsspeichers
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE102007052853B4 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE10316725B4 (de) Datenverwaltungsverfahren für ein Distributed Shared Memory-System
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
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
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE10219621A1 (de) Schnelle Prioritätsbestimmungsschaltung mit rotierender Priorität
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE69724879T2 (de) Verfahren und Vorrichtung für einen Kohärenzumwandler zur Verbindung von Rechnersystemkohärenzdomänen
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE69737116T2 (de) Mehrstufiger Cachespeicher

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