DE69900611T2 - Cache-Speicherkohärenzprotokoll mit einem Schwebezustand (H) mit einem genauen und einem ungenauen Modus - Google Patents

Cache-Speicherkohärenzprotokoll mit einem Schwebezustand (H) mit einem genauen und einem ungenauen Modus

Info

Publication number
DE69900611T2
DE69900611T2 DE69900611T DE69900611T DE69900611T2 DE 69900611 T2 DE69900611 T2 DE 69900611T2 DE 69900611 T DE69900611 T DE 69900611T DE 69900611 T DE69900611 T DE 69900611T DE 69900611 T2 DE69900611 T2 DE 69900611T2
Authority
DE
Germany
Prior art keywords
cache
state
data
data item
caches
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.)
Expired - Lifetime
Application number
DE69900611T
Other languages
English (en)
Other versions
DE69900611D1 (de
Inventor
Ravi Kumar Arimilli
John Steven Dodson
Jerry Don Lewis
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69900611D1 publication Critical patent/DE69900611D1/de
Application granted granted Critical
Publication of DE69900611T2 publication Critical patent/DE69900611T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

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

    1. Technisches Gebiet:
  • Die vorliegende Erfindung betrifft im Allgemeinen ein Verfahren und System zur Datenverarbeitung und insbesondere ein Verfahren und System zum Aufrechterhalten einer Cachespeicher-Kohärenz in einem Multiprozessor- Datenverarbeitungssystem. Insbesondere betrifft die vorliegende Erfindung noch ein Cachespeicher-Kohärenzprotokoll für ein Multiprozessor-Datenverarbeitungssystem, das einen Schwebezustand (hovering state) (H) enthält, der es ermöglicht, dass ein erster Cachespeicher auf die unabhängige Übertragung der gültigen Daten durch einen zweiten Cachespeicher auf einer den ersten und zweiten Cachespeicher verbindenden Verbindung hin mit gültigen Daten aktualisiert wird.
  • 2. Beschreibung der technischen Zusammenhänge:
  • In einem herkömmlichen symmetrischen Multiprozessor- (SMP-) Datenverarbeitungssystem sind im Allgemeinen alle. Prozessoren identisch, das heißt, die Prozessoren verwenden alle gemeinsame Befehlssätze und Übertragungsprotokolle, weisen ähnliche Hardware-Architekturen auf und sind im Allgemeinen mit ähnlichen Speicherhierarchien ausgestattet. Ein herkömmliches SMP-Datenverarbeitungssystem kann beispielsweise einen Systemspeicher, eine Vielzahl von Verarbeitungselementen, die jeweils einen Prozessor und eine oder mehrere Stufen von Cachespeichern enthalten, und einen Systembus umfassen, der die Verarbeitungselemente miteinander und mit dem Systemspeicher verbindet. Um in einem SMP- Datenverarbeitungssystem gültige Ausführungsergebnisse zu erhalten, ist es wichtig, eine kohärente Speicherhierarchie aufrechtzuerhalten, das heißt, eine einzige Sicht des Speicherinhaltes für alle Prozessoren bereitzustellen.
  • Eine kohärente Speicherhierarchie wird durch die Verwendung eines ausgewählten Speicherkohärenzprotokolls aufrechterhalten, beispielsweise des MESI-Protokolls. Im MESI- Protokoll wird eine Meldung eines Kohärenzzustands in Verbindung mit jedem Kohärenzelement (coherency granule) (z. B. Cachespeicherzeile oder -sektor) von mindestens allen (Cache-) Speichern der oberen Stufe gespeichert. Jedes Kohärenzelement kann sich in einem von vier Zuständen befinden, geändert (M), ausschließend (exclusive) (E), gemeinsam genutzt (5) oder ungültig (I), der von zwei Bits im Cachespeicherverzeichnis angezeigt wird. Der geänderte Zustand zeigt an, dass ein Kohärenzelement nur in dem Cachespeicher gültig ist, der das geänderte Kohärenzelement speichert, und der Wert des geänderten Kohärenzelementes nicht in den Systemspeicher geschrieben wurde. Wenn ein Kohärenzelement als ausschließend angezeigt wird, befindet sich das Kohärenzelement von allen Cachespeichern auf dieser Stufe der Speicherhierarchie nur in dem Cachespeicher, der das Kohärenzelement im ausschließenden Zustand aufweist. Die Daten im ausschließenden Zustand stimmen jedoch mit dem Systemspeicher überein. Falls ein Kohärenzelement in einem Cachespeicherverzeichnis als gemeinsam genutzt markiert ist, befindet es sich im zugeordneten Cachespeicher und in mindestens einem anderen Cachespeicher auf derselben Stufe der Speicherhierarchie, wobei alle Kopien des Kohärenzelementes mit dem Systemspeicher übereinstimmen. Schließlich zeigt der ungültige Zustand an, dass die Daten und die Adressenkennzeichnung, die einem Kohärenzelement zugeordnet werden, ungültig sind.
  • Der Zustand, in den jedes Kohärenzelement (z. B. eine Cachespeicherzeile) gesetzt wird, hängt sowohl von einem vorhergehenden Zustand der Cachespeicherzeile als auch vom Typ des von einem anfordernden Prozessor gesuchten Speicherzugriff ab. Dementsprechend macht eine Aufrechterhaltung der Speicherkohärenz im Multiprozessor-Datenverarbeitungssystem es erforderlich, dass die Prozessoren Nachrichten über den Systembus übertragen, die ihre Absicht zum Lesen oder Schreiben von Speicherpositionen anzeigen. Wenn ein Prozessor beispielsweise Daten in eine Speicherposition schreiben möchte, muss er zuerst alle anderen Verarbeitungselemente über seine Absicht zum Schreiben von Daten in die Speicherposition informieren und von allen anderen Verarbeitungselementen eine Erlaubnis zum Ausführen des Schreibvorgangs empfangen. Die vom anfordernden Prozessor empfangenen Berechtigungsnachrichten (permission messages) zeigen an, dass alle anderen zwischengespeicherten (cached) Kopien des Inhaltes der Speicherposition ungültig gemacht wurden, wodurch gewährleistet wird, dass die anderen Prozessoren nicht auf veraltete lokale Daten zugreifen. Dieser Austausch von Nachrichten ist als Kreuz-Invalidierung (cross-invalidation) (XI) bekannt.
  • Die vorliegende Erfindung beinhaltet eine Erkennung, dass die Invalidierung von Cachespeichereinträgen durch ferne Prozessoren die Leistung des Datenverarbeitungssystems durch Verringern von Trefferquoten (hit ratlos) in lokalen Cachespeichern nachteilig beeinflusst, obwohl eine Kreuz- Invalidierung von Cachespeichereinträgen zur Aufrechterhaltung einer Speicherkohärenz in einem SMP-Datenverarbeitungssystem dient. Auch wenn ein Verarbeitungselement mit großen lokalen Cachespeichern ausgestattet ist, kann es folglich zu langen Zugriffslatenzzeiten kommen, wenn es Daten abruft, die sich einmal in einem lokalen Cachespeicher von einem fernen Cachespeicher in einem anderen Verarbeitungselement oder vom Systemspeicher befanden. Wie folglich ersichtlich sein sollte, wäre es wünschenswert, ein Verfahren und System zum Aufrechterhalten einer Speicherkohärenz in einem SMP- Datenverarbeitungssystem bereitzustellen, das die Leistungseinbuße infolge der Kreuz-Invalidierung von Cachespeichereinträgen verringert.
  • Ein Multiprozessor-Datenverarbeitungssystem mit Cachespeichern, in denen ein Cachespeicher-Datenelement ungültig gemacht wird, ist aus EP-A-0 378 399 bekannt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung ist daher die Bereitstellung eines verbesserten Verfahrens und Systems zur Datenverarbeitung.
  • Eine andere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines verbesserten Verfahrens und Systems zum Aufrechterhalten einer Cachespeicher-Kohärenz in einem Multiprozessor-Datenverarbeitungssystem.
  • Noch eine andere Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines Cachespeicher-Kohärenzprotokolls für ein Multiprozessor-Datenverarbeitungssystem, das einen Schwebezustand (H) enthält, der es ermöglicht, dass ein erster Cachespeicher auf die unabhängige Übertragung der gültigen Daten durch einen zweiten Cachespeicher auf einer den ersten und zweiten Cachespeicher verbindenden Verbindung hin mit gültigen Daten aktualisiert wird.
  • Die vorhergehenden Aufgaben werden durch ein Verfahren zum Aufrechterhalten einer Cachespeicher-Kohärenz, wie es in Anspruch 1 beschrieben wird, einen Cachespeicher zum Unterstützen einer Cachespeicher-Kohärenz, wie er in Anspruch 2 beschrieben wird, und ein Datenverarbeitungssystem zum Aufrechterhalten einer Cachespeicher-Kohärenz, wie es in Anspruch 3 beschrieben wird, erfüllt. In einer Ausführungsform enthalten die Betriebsarten des ersten Cachespeichers einen genauen Modus, in dem Cachespeicheraktualisierungen stets ausgeführt werden, und einen ungenauen Modus, in dem Cachespeicheraktualisierungen selektiv ausgeführt werden. Der Modus, in dem der erste Cachespeicher betrieben wird, kann durch Hardware oder Software eingestellt werden.
  • Die obigen sowie zusätzliche Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden ausführlich geschriebenen Beschreibung hervor.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die neuen Merkmale, die als kennzeichnend für die Erfindung angesehen werden, werden in den angehängten Ansprüchen beschrieben. Die Erfindung selbst sowie eine bevorzugte Art und Weise der Verwendung, weitere Aufgaben und Vorteile davon, werden jedoch am besten durch Bezugnahme auf die folgende ausführliche Beschreibung einer veranschaulichenden Ausführungsform verstanden, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • Fig. 1 eine veranschaulichende Ausführungsform eines Multiprozessor-Datenverarbeitungssystems gemäß der vorliegenden Erfindung darstellt;
  • Fig. 2 ein Blockschaltbild ist, das eine veranschaulichende Ausführungsform eines Cachespeichers gemäß der vorliegenden Erfindung darstellt;
  • Fig. 3 ein Zustandsdiagramm ist, das eine veranschaulichende Ausführungsform des H-MESI-Speicherkohärenzprotokolls (H-MESI memory coherency protocol) der vorliegenden Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG EINER VERANSCHAULICHENDEN AUSFÜHRUNGSFORM
  • Mit Bezugnahme auf die Figuren und insbesondere mit Bezugnahme auf Fig. 1 wird nun eine Übersichtsdarstellung eines Multiprozessor-Datenverarbeitungssystems gemäß der vorliegenden Erfindung gezeigt. Wie dargestellt wird, enthält das Datenverarbeitungssystem 8 eine Anzahl von Prozessoren 10a bis 10n, die jeweils vorzugsweise einen aus der von International Business Machines Corporation erhältlichen PowerPCTM-Reihe von Prozessoren umfassen. Außer den herkömmlichen zum Ausführen von Programmbefehlen verwendeten Registern, Befehlsflusslogik- und Ausführungseinheiten enthält jeder der Prozessoren 10a bis 10n außerdem einen zugeordneten von integrierten (on-board) Cachespeichern 12a bis 12n der Stufe eins (L1-Cachespeicher), der Befehle und Daten, auf die der zugeordnete Prozessor wahrscheinlich zugreift, zeitweilig speichert. Obwohl die L1-Cachespeicher 12a bis 12n in Fig. 1 als einheitliche (unified) Cachespeicher dargestellt werden, die sowohl Befehle als auch Daten speichern (beides im Folgenden einfach als Daten bezeichnet), werden Fachleute verstehen, dass jeder der L1-Cachespeicher 12a bis 12n alternativ als gegabelter (bifurcated) Befehls- und Datencachespeicher realisiert werden könnte.
  • Um die Zugriffslatenzzeit auf ein Minimum herabzusetzen, enthält das Datenverarbeitungssystem 8 außerdem eine oder mehrere zusätzliche Stufen von Cachespeichern, beispielsweise die Cachespeicher 14a bis 14n der Stufe zwei (L2- Cachespeicher), die zum Zwischenspeichern von Daten in die L1-Cachespeicher 12a bis 12n verwendet werden. Mit anderen Worten, die L2-Cachespeicher 14a bis 14n fungieren als Zwischenspeicher zwischen dem Systemspeicher 18 und den L1- Cachespeichern 12a bis 12n und können normalerweise eine viel größere Menge von Daten speichern als die L1-Gachespeicher 12a bis 12n, jedoch mit einer längeren Zugriffslatenzzeit. Die L2- Cachespeicher 14a bis 14n können beispielsweise eine Speicherkapazität von 256 oder 512 Kilobyte aufweisen, während die L1-Cachespeicher 12a bis 12n eine Speicherkapazität von 64 oder 128 Kilobyte aufweisen können. Obwohl Fig. 1 nur zwei Stufen von Cachespeichern darstellt, wie oben erwähnt wird, könnte die Speicherhierarchie des Datenverarbeitungssystems 8 erweitert werden, so dass sie zusätzliche Stufen (L3, L4 usw.) von seriell verbundenen Cachespeichern oder Umsetzcachespeichern (lookaside caches) enthält.
  • Wie dargestellt wird, enthält das Datenverarbeitungssystem 8 außerdem E/A-Einheiten 20, einen Systemspeicher 18 und einen nichtflüchtigen Speicher 22, die jeweils mit der Zwischenverbindung 16 verbunden sind. Die E/A-Einheiten 20 umfassen herkömmliche periphere Einheiten, beispielsweise eine Anzeigeeinheit, eine Tastatur und einen Grafikzeiger (graphical pointer), die über herkömmliche Adapter an die Zwischenverbindung 16 angeschlossen werden. Der nichtflüchtige Speicher 22 speichert ein Betriebssystem und andere Software, die auf das Einschalten des Datenverarbeitungssystems 8 hin in den flüchtigen Systemspeicher 18 geladen werden. Fachleute werden selbstverständlich verstehen, dass das Datenverarbeitungssystem 8 viele zusätzliche Komponenten enthalten kann, die in Fig. 1 nicht gezeigt werden, beispielsweise serielle und parallele Anschlüsse zur Verbindung mit Netzwerken oder angeschlossenen Einheiten, eine Speichersteuereinheit, die den Zugriff auf den Systemspeicher 18 regelt, usw.
  • Die Zwischenverbindung 16, die einen oder mehrere Busse oder einen Koppelpunktschalter (cross-point switch) umfassen kann, dient als Kanal (conduit) für Kommunikationstransaktionen zwischen den L2-Cachespeichern 14a bis 14n, dem Systemspeicher 18, den Ein-/Ausgabe- (E/A-) Einheiten 20 und dem nichtflüchtigen Speicher 22. Eine typische Kommunikationstransaktion auf der Zwischenverbindung 16 enthält eine Quellenkennzeichnung (source tag), die die Quelle der Transaktion anzeigt, eine Zielkennzeichnung, die den vorgesehenen Empfänger der Transaktion angibt, eine Adresse und/oder Daten. Jede mit der Zwischenverbindung 16 verbundene Einheit hört (snoops) alle Kommunikationstransaktionen auf der Zwischenverbindung 16 ab.
  • Mit Bezugnahme auf Fig. 2 wird dort eine ausführlichere Darstellung einer veranschaulichenden Ausführungsform eines L2-Cachespeichers 14 gemäß der vorliegenden Erfindung gezeigt. In der veranschaulichenden Ausführungsform ist der L2- Cachespeicher 14 ein auf 4-Wege-Betrieb gesetzter Assoziativ- Cachespeicher (four-way set associative cache), der 32-Bit- Adressen verwendet. Dementsprechend umfasst die Datenfeldgruppe (data array) 34 des L2-Cachespeichers 14 eine Anzahl von Kongruenzklassen (congruence classes), die jeweils vier Wege zum Speichern von Cachespeicherzeilen enthalten. Wie bei herkömmlich gesetzten Assoziativ-Cachespeichern werden Speicherpositionen im Systemspeicher 18 auf bestimmte Kongruenzklassen in der Datenfeldgruppe 34 abgebildet, wobei Indexbits in der Adresse der Speicherposition (z. B. die Bits 20 bis 26 einer 32-Bit-Adresse) verwendet werden.
  • Die in der Datenfeldgruppe 34 gespeicherten Cachespeicherzeilen werden im Cachespeicherverzeichnis 32 aufgezeichnet, das einen Verzeichniseintrag für jeden Weg in der Datenfeldgruppe 34 enthält. Jeder Verzeichniseintrag umfasst ein Kennzeichnungsfeld (tag field) 40, ein Kohärenzstatusfeld (coherency status field) 42, ein am längsten nicht benutztes (LRU-) Feld 44 und ein Aufnahmefeld (inclusion field) 46. Das Kennzeichnungsfeld 40 gibt an, welche Cachespeicherzeile im entsprechenden Weg der Datenfeldgruppe 34 gespeichert wird, indem die Kennzeichnungsbits (z. B. die Bits 0 bis 19) der Systemspeicheradresse der Cachespeicherzeile gespeichert werden. Wie unten mit Bezugnahme auf Fig. 3 ausführlich erläutert wird, zeigt das Kohärenzstatusfeld 42 den Kohärenzstatus der im entsprechenden Weg der Datenfeldgruppe 34 gespeicherten Daten an, wobei vordefinierte Bitkombinationen verwendet werden. Das LRU-Feld 44 zeigt an, wann auf den entsprechenden Weg der Datenfeldgruppe 34 im Vergleich zu den anderen Wegen seiner Kongruenzklasse zuletzt zugegriffen wurde, wodurch angezeigt wird, welche Cachespeicherzeile auf einen Cachespeicher-Fehlschlag (cache miss) hin aus der Kongruenzklasse ausgegeben (cast out) werden muss. Das Aufnahmefeld 46 zeigt schließlich an, ob die im entsprechenden Weg der Datenfeldgruppe 34 gespeicherte Cachespeicherzeile auch im zugeordneten L1-Cachespeicher 12 gespeichert ist.
  • Noch immer mit Bezugnahme auf Fig. 2 enthält der L2- Cachespeicher 14 außerdem eine Cachespeicher-Steuereinheit 36, die das Speichern und Abrufen von Daten in der Datenfeldgruppe 34 verwaltet und das Cachespeicherverzeichnis 32 auf vom zugeordneten L1-Cachespeicher 12 empfangene Signale und auf der Zwischenverbindung 16 abgehörte Transaktionen hin aktualisiert. Wie dargestellt wird, enthält die Cachespeicher- Steuereinheit 36 eine Lesewarteschlange 50 und eine Schreibwarteschlange 52, von denen aus die Cachespeicher- Steuereinheit 36 Aktualisierungen am Cachespeicherverzeichnis 32 ausführt und auf die Datenfeldgruppe 34 zugreift. Auf den Empfang einer Leseanforderung vom zugeordneten L1- Cachespeicher 12 hin platziert die Cachespeicher-Steuereinheit 36 beispielsweise die Leseanforderung in einem Eintrag in der Lesewarteschlange 50. Die Cachespeicher-Steuereinheit 36 bearbeitet die Leseanforderung, indem sie dem zugeordneten L1- Cachespeicher 12 die angeforderten Daten liefert und die Leseanforderung anschließend aus der Lesewarteschlange 50 entfernt. Als ein weiteres Beispiel kann die Cachespeicher- Steuereinheit 36 eine von einem anderen der L2-Cachespeicher 14a bis 14n eingeleitete Transaktion abhören, wobei angezeigt wird, dass ein ferner Prozessor 10 beabsichtigt, seine lokale Kopie einer angegebenen Cachespeicherzeile zu ändern. Auf das Abhören dieser Transaktion hin platziert die Cachespeicher- Steuereinheit 36 eine Anforderung zum Lesen des Cachespeicherverzeichnisses 32 in die Lesewarteschlange 50, um festzustellen, ob sich die angegebene Cachespeicherzeile in der Datenfeldgruppe 34 befindet. Ist dies der Fall, platziert die Cachespeicher-Steuereinheit 36 eine entsprechende Antwort auf die Zwischenverbindung 16 und fügt bei Bedarf eine Verzeichnis-Schreibanforderung in die Schreibwarteschlange 52, die bei Bearbeitung das der angegebenen Cachespeicherzeile zugeordnete Kohärenzstatusfeld aktualisiert. Obwohl Fig. 2 eine Ausführungsform darstellt, in der nur eine Lesewarteschlange und eine Schreibwarteschlange verwendet werden, muss es verstanden werden, dass die Anzahl der von der Cachespeicher-Steuereinheit 36 verwendeten Warteschlangen je nach Gestaltung gewählt werden kann und die Cachespeicher- Steuereinheit 36 gesonderte Warteschlangen für Zugriffe auf das Cachespeicherverzeichnis und Zugriffe auf die Datenfeldgruppe verwenden kann.
  • Die Cachespeicher-Steuereinheit 36 enthält außerdem ein Modusregister 60, das ein oder mehrere Bits umfasst, deren Einstellungen den Betrieb der Cachespeicher-Steuereinheit 36 steuern, wie unten ausführlicher beschrieben wird. Außerdem enthält die Cachespeicher-Steuereinheit 36 einen Leistungsmonitor (performance monitor) 70. Der Leistungsmonitor 70 ist mit einer Anzahl von Leistungsmonitorzählern (performance monitor counters) (PMCO bis PMCn) 72 ausgestattet, die, wenn sie aktiviert sind, auf jedes Auftreten eines Ereignisses oder einer Kombination von Ereignissen hin erhöht werden, die von einem oder mehreren Steuerregistern (CR0 bis CRm) 74 angegeben werden. Die Ereignisse, die auf die Einstellungen von CRs 74 hin von den PMCs 72 gezählt werden können, beinhalten Cachespeicher- Treffer, Cachespeicher-Fehlschläge, die Anzahl von Einträgen in einer angegebenen Warteschlange, die Zugriffslatenzzeit für L2-Cachespeicher-Treffer, die Zugriffslatenzzeit für L2-Cachespeicher-Fehlschläge usw. Alle PMCs 72 und CRs 74 sind vorzugsweise im Speicher abgebildete Register, die vom zugeordneten Prozessor 10 über Lade- und Speicherbefehle gelesen und geschrieben werden können.
  • Mit Bezugnahme auf Fig. 3 wird nun eine veranschaulichende Ausführungsform des H-MESI-Speicherkohärenzprotokolls der vorliegenden Erfindung dargestellt. Das H-MESI-Protokoll wird vorzugsweise nur von Cachespeichern der untersten Stufe in der Speicherhierarchie (z. B. den L2-Cachespeichern 14a bis 14n in der in Fig. 1 dargestellten Ausführungsform des Datenverarbeitungssystems 8) ausgeführt, während Cachespeicher der höheren Stufe vorzugsweise das herkömmliche MESI-Protokoll realisieren. In alternativen Ausführungsformen des Datenverarbeitungssystems 8 kann das H-MESI-Protokoll auf Kosten eines zusätzlichen Nachrichtenverkehrs zwischen Cachespeichern auf jeder Cachespeicher-Stufe in der Speicherhierarchie realisiert werden.
  • Wie in Fig. 3 gezeigt wird, enthält das H-MESI- Speicherkohärenzprotokoll die herkömmlichen geänderten (M), ausschließenden (E), gemeinsam genutzten (S) und ungültigen (I) Zustände des MESI-Protokolls, die durch die Bezugsziffern 80, 82, 84 bzw. 86 gekennzeichnet werden. Außerdem enthält das H-MESI-Speicherkohärenzprotokoll der vorliegenden Erfindung einen Schwebezustand (H) 90, der anzeigt, dass die im zugeordneten Kennzeichnungsfeld 40 gespeicherte Adressenkennzeichnung gültig ist, das im entsprechenden Weg der Datenfeldgruppe 34 gespeicherte Datenelement (z. B. eine Cachespeicherzeile oder ein Cachespeichersektor) jedoch ungültig ist.
  • In einer bevorzugten Ausführungsform wird das Kohärenzstatusfeld 42 von jedem Eintrag jedes L2- Cachespeicherverzeichnisses 32 beim Einschalten in den I- Zustand 86 initialisiert, um anzuzeigen, dass sowohl das Kennzeichnungsfeld 40 als auch die im entsprechenden Weg der Datenfeldgruppe 34 gespeicherten Daten ungültig sind. Einträge im L1-Cachespeicherverzeichnis werden gemäß dem herkömmlichen MESI-Protokoll auf ähnliche Weise in den ungültigen Zustand initialisiert. Anschließend wird der Kohärenzstatus einer in einem der L2-Cachespeicher 14a bis 14n gespeicherten Cachespeicherzeile (oder eines Cachespeichersektors) in Abhängigkeit von den Typen der von den Prozessoren 10a bis 10n gemachter. Speicheranforderungen und der Antwort der Speicherhierarchie auf diese Anforderungen in den M-Zustand 80, den E-Zustand 82 oder den S-Zustand 84 aktualisiert.
  • Falls der Prozessor 10a beispielsweise auf einen Ladebefehl hin eine Leseanforderung macht, stellt der L1-Cachespeicher 12a fest, ob sich die angeforderten Daten im L1-Cachespeicher 12a befinden: Auf einen Treffer im L1-Cachespeicher 12a hin sendet der L1-Cachespeicher 12a einfach die angeforderten Daten zum Prozessor 10a. Auf einen Fehlschlag im L1-Cachespeicher 12a hin leitet der L1-Cachespeicher 12a die Leseanforderung jedoch über Verbindungen zwischen Cachespeichern weiter zum L2-Cachespeicher 14a. Auf einen Treffer im L2-Cachespeicher 14a hin werden die angeforderten Daten vom L2-Cachespeicher 14a zum L1-Cachespeicher 12a gesendet, der die angeforderten Daten in Verbindung mit dem entsprechenden MESI-Kohärenzstatus speichert und die angeforderten Daten zum Prozessor 10a weiterleitet. Falls die Leseanforderung jedoch sowohl im L1-Cachespeicher 12a als auch im L2-Cachespeicher 14a fehlschlägt, stellt die Cachespeicher- Steuereinheit 36 des L2-Cachespeichers 14a die Leseanforderung als eine Transaktion auf die Zwischenverbindung 16, die von jedem der L2-Cachespeicher 14b bis 14n abgehört wird.
  • Auf das Abhören der Leseanforderung auf der Zwischenverbindung 16 hin stellt die Cachespeicher-Steuereinheit 36 in jedem der L2-Cachespeicher 14b bis 14n fest, ob sich die angeforderten Daten in seiner Datenfeldgruppe 34 oder in der zugeordneten der L1-Cachespeicher 12b bis 12n befinden. Falls weder einer der L2-Cachespeicher 14b bis 14n noch einer der L1- Cachespeicher 12b bis 12n die angeforderten Daten speichert, gibt jeder der L2-Cachespeicher 14b bis 14n eine Nullantwort (null response) zum L2-Cachespeicher 14a zurück, der sodann die Daten vom Systemspeicher 18 anfordert. Wenn die angeforderten Daten vom Systemspeicher 18 zum L2-Cachespeicher 14a zurückgegeben werden, leitet die Cachespeicher- Steuereinheit 36 die angeforderten Daten weiter zum L1- Cachespeicher 12a, speichert die angeforderten Daten in seiner Datenfeldgruppe 34 und aktualisiert das Kohärenzstatusfeld 42, das dem die angeforderten Daten speichernden Weg zugeordnet ist, vom I-Zustand 86 in den E-Zustand 82, wie durch die Bezugsziffer 100 angezeigt wird. Wie beim herkömmlichen MESI- Protokoll zeigt der E-Zustand 82 an, dass die zugeordnete Cachespeicherzeile gültig ist und sich nicht in irgendeinem anderen Cachespeicher auf der zweiten Stufe der Speicherhierarchie befindet.
  • Falls irgendeiner der L1-Cachespeicher 12b bis 12n oder der L2-Cachespeicher 14b bis 14n die angeforderten Daten im E- Zustand 82 oder im S-Zustand 84 speichert und dies in einer "gemeinsam genutzten" Antwort an die Lesewarteschlange anzeigt, die vom L2-Cachespeicher 14a auf die Zwischenverbindung 16 gestellt wird, ruft der L2-Cachespeicher 14a die angeforderten Daten auf ähnliche Weise aus dem Systemspeicher 18 ab. In diesem Fall geht der Kohärenzstatus des Weges im L2-Cachespeicher 14a, der die angeforderten Daten speichert, aus dem I-Zustand 86 in den S-Zustand 84 über, wie durch die Bezugsziffer 102 angezeigt wird. Andere der L2-Cachespeicher 14, die die angeforderten Daten im E-Zustand 82 speichern, werden ebenfalls in den S-Zustand 84 aktualisiert, wie durch die Bezugsziffer 104 angezeigt wird.
  • Falls sich die vom Prozessor 10a angeforderten Daten nicht im L1-Cachespeicher 12a und im L2-Cachespeicher 14a befinden, sondern beispielsweise im L1-Cachespeicher 12n im M-Zustand 80 gespeichert sind, antwortet die Cachespeicher-Steuereinheit 36 des L2-Cachespeichers 14n auf die Leseanforderung mit einer Wiederholung (retry) und signalisiert dem L1-Cachespeicher 12n, die angeforderten Daten in den Speicher einzugeben. Der Kohärenzstatus der angeforderten Daten im L1-Cachespeicher 12n und im L2-Cachespeicher 14n wird sodann in den 5-Zustand 84 aktualisiert, wie durch die Bezugsziffer 106 angezeigt wird. Wenn der L2-Cachespeicher 14a anschließend die Leseanforderung auf der Zwischenverbindung 16 wiederholt, antwortet der L2- Cachespeicher 14n mit einer gemeinsam genutzten Antwort, und der L2-Cachespeicher 14a erhält die angeforderten Daten aus dem Systemspeicher 18, wie oben erläutert wird. In einer alternativen Ausführungsform, die einen sogenannten geänderten Eingriff (modified intervention) unterstützt, werden die angeforderten Daten von der Cachespeicher-Steuereinheit 36 des L2-Cachespeichers 14n anstatt vom Systemspeicher 18 geliefert, wodurch die Zugriffslatenzzeit verringert wird.
  • Falls der L1-Cachespeicher 12a anstelle einer Leseanforderung eine Anforderung "Lesen mit der Absicht zum Ändern" ausgibt, die anzeigt, dass der Prozessor 10a eine exklusive Verwendung einer Speicherposition anfordern möchte, um sie zu ändern, wird der oben beschriebene Prozess zum Erhalten der die angegebene Speicherposition enthaltenden Cachespeicherzeile verfolgt. Wenn die angeforderte Cachespeicherzeile erhalten wird, speichert der L1-Cachespeicher 12a die angeforderte Cachespeicherzeile im geänderten Zustand. Da die Transaktion "Lesen mit der Absicht zum Ändern" anzeigt, dass andere Kopien der angeforderten Cachespeicherzeile veraltet werden, müssen die anderen L1- und L2-Cachespeicher außerdem anzeigen, dass ihre Kopien der angeforderten Cachespeicherzeile ungültig sind. In den L1-Cachespeichern 12b bis 12n werden alle Kopien der angeforderten Cachespeicherzeile einfach als ungültig markiert. Der Kohärenzstatus von Kopien der angeforderten Cachespeicherzeile, die in den L2-Cachespeichern 14b bis 14n gespeichert sind, werden nicht wie bei herkömmlichen Multiprozessor-Datenverarbeitungssystemen, die Kreuz- Invalidierung (XI) verwenden, in den I-Zustand 86 aktualisiert. Stattdessen aktualisiert jeder der L2- Cachespeicher 14b bis 14n, der eine Kopie der angeforderten Cachespeicherzeile speichert, das seiner Kopie zugeordnete Kohärenzstatusfeld 42 gemäß einem wichtigen Aspekt der vorliegenden Erfindung aus dem S-Zustand 84, dem M-Zustand 80 oder dem E-Zustand 82 in den H-Zustand 90, wie durch die Bezugsziffern 110, 112 bzw. 114 angezeigt wird. Wie oben erwähnt wird, zeigt der H-Zustand 90 an, dass die im Kennzeichnungsfeld 40 gespeicherte Kennzeichnung gültig bleibt, die zugeordnete Cachespeicherzeile in der Datenfeldgruppe 34 jedoch ungültig ist. Einträge in einem Cachespeicherverzeichnis 32 werden auf andere abgehörte Transaktionen hin, die das Ungültigmachen von Daten erforderlich machen, auf ähnliche Weise in den H-Zustand 90 aktualisiert, darunter Abbrüche (kills) (d. h. Transaktionen, die einen angegebenen Datenblock ausdrücklich ungültig machen), "Flush"-Aktivitäten (flushes) (d. h. Transaktionen, die einen angegebenen Datenblock ungültig machen und alle: geänderten Daten in den Systemspeicher kopieren), "dclaim"- Aktivitäten (dclaims) (d. h. Transaktionen, die Kopien einer Cachespeicherzeile ungültig machen, die auf eine Änderung einer lokalen Kopie der Cachespeicherzeile nach einer Speicherung hin in fernen Cachespeichern als gemeinsam genutzt markiert wird) usw.
  • Wie durch die Bezugsziffern 116, 118 und 120 angezeigt wird, kann ein Cachespeicher-Verzeichniseintrag in Abhängigkeit davon, welcher Typ von Transaktionen vom Cachespeicher empfangen wird, aus dem H-Zustand 90 in den E-Zustand 82, den M-Zustand 80 oder den S-Zustand 84 übergehen. Ein Verzeichniseintrag des L2-Cachespeichers 14a, der sich im H- Zustand 90 befindet, geht beispielsweise auf eine Leseanforderung von einem Prozessor 10a hin, der (nach Fehlschlägen sowohl im L1-Cachespeicher 12a als auch im L2- Cachespeicher 14a) eine Nullantwort von den L2-Cachespeichern 14b bis 14n empfängt, da die aus dem Systemspeicher 18 abgerufenen Daten von allen L2-Cachespeichern 14a bis 14n nur im L2-Cachespeicher 14a gespeichert werden, in den E-Zustand 82 über (wie durch die Bezugsziffer 86 angezeigt wird) Falls der Prozessor 10a andererseits eine Absicht zum Speichern von Daten in einen Weg des L1-Cachespeichers 12a anzeigt, der sich im H-Zustand 90 befindet, zeigt der L1-Cachespeicher 12a diese Absicht dem L2-Cachespeicher 14a an, der sodann eine Transaktion "Lesen mit Absicht zum Ändern" auf die Zwischenverbindung 16 ausgibt. Wie oben erläutert wird, werden Kopien der angeforderten Cachespeicherzeile, die in den L2- Cachespeichern 14b bis 14n gespeichert ist, auf das Abhören der Transaktion "Lesen mit der Absicht zum Ändern" hin in den H-Zustand 90 aktualisiert, und Kopien der angeforderten Cachespeicherzeile, die in den L1-Cachespeichern 12b bis 12n gespeichert ist, werden als ungültig markiert. Sobald die angeforderte Cachespeicherzeile in den L1-Cachespeicher 12a ausgegeben wird und der Prozessor 10a die Cachespeicherzeile aktualisiert, wird die Cachespeicherzeile im L1-Cachespeicher 12a als geändert markiert, um zu kennzeichnen, dass die Cachespeicherzeile gültig, jedoch nicht mit dem Systemspeicher 18 kohärent ist. In Abhängigkeit von der Realisierung kann die geänderte Cachespeicherzeile anschließend im L2-Cachespeicher 14a gespeichert werden (z. B. auf eine L1-Ausgabe hin), ohne dass die geänderte Cachespeicherzeile zurück in den Systemspeicher 18 geschrieben wird. Ist dies der Fall, wird das der geänderten Cachespeicherzeile zugeordnete Kohärenzstatusfeld 42 im L2-Cachespeicher 14a in den M-Zustand 80 aktualisiert, wie durch die Bezugsziffer 118 angezeigt wird. Schließlich wird ein L2-Cachespeicher-Verzeichniseintrag im H-Zustand 90 auf eine Anzahl verschiedener Anforderungs- /Antwortszenarien hin in den S-Zustand 84 aktualisiert.
  • Als Erstes geht ein L2-Verzeichniseintrag im H-Zustand 90 in den S-Zustand 84 über, wenn der zugeordnete Prozessor 10 eine Leseanforderung an die durch die (gültige) Adressenkennzeichnung im Kennzeichnungsfeld 40 angezeigte Adresse aus, und mindestens ein L2-Cachespeicher 14 antwortet mit einer gemeinsam genutzten Antwort. Wichtiger ist, dass ein L2-Verzeichniseintrag im H-Zustand 90 in den S-Zustand 84 aktualisiert werden kann, ohne dass der zugeordnete Prozessor 10 eine Datenanforderung ausgibt oder der L2-Cachespeicher 14 eine Transaktion auf der Zwischenverbindung 16 einleitet. Wie oben beschrieben wird, hört jeder der L2-Cachespeicher 14a bis 14n alle auf die Zwischenverbindung 16 ausgegebenen Transaktionen ab. Falls einer der L2-Cachespeicher 14a bis 14n, beispielsweise der L2-Cachespeicher 14a, eine von einem anderen der L2-Cachespeicher 14b bis 14n ausgegebene Transaktion abhört, die eine aktualisierte (d. h. gültige) Kopie von Daten enthält, die im L2-Cachespeicher 14a im H- Zustand 90 gespeichert ist, tastet die Cachespeicher- Steuereinheit 36 des L2-Cachespeichers 14a die Daten von der Zwischenverbindung 16 ab, speichert die abgehörten Daten in der Datenfeldgruppe 34 und aktualisiert das zugeordnete Kohärenzstatusfeld 42 vom H-Zustand 90 in den S-Zustand 84. Selbstverständlich stellt der L2-Cachespeicher 14a außerdem eine Antwort auf die abgehörte Transaktion bereit, falls zum Aufrechterhalten der Kohärenz eine Antwort benötigt wird. Falls die abgehörte Transaktion beispielsweise eine Leseanforderung ist, muss der L2-Cachespeicher 14a eine gemeinsam genutzte Antwort bereitstellen, die seine Absicht zum Abtasten der angeforderten Daten anzeigt, so dass der anfordernde L2-Cachespeicher die angeforderten Daten im S- Zustand 84 anstatt im E-Zustand 82 speichert. Transaktionen auf der Zwischenverbindung 16, die auf diese Weise abgehört werden können, um ungültige Daten zu aktualisieren, die einer gültigen Adressenkennzeichnung zugeordnet werden, beinhalten Lesetransaktionen, Schreibtransaktionen, Datenrückschreibungen in den Systemspeicher 18 aufgrund von Ausgaben von Cachespeicherzeilen usw.
  • Zustandsübergänge, die in der veranschaulichenden Ausführungsform des in Fig. 3 dargestellten H-MESI- Kohärenzprotokolls ausgeführt werden können, werden unten in Tabelle I zusammengefasst. TABELLE I
  • Gemäß einem wichtigen Aspekt der vorliegenden Erfindung kann das H-MESI-Protokoll genau oder ungenau realisiert werden. Eine genaue Realisierung des H-MESI-Protokolls macht es erforderlich, dass die L2-Cachespeicher 14a bis 14n stets Daten abtasten, die auf der Zwischenverbindung 16 verfügbar sind, um ungültige Cachespeicherzeilen im H-Zustand 90 zu aktualisieren. Im Gegensatz dazu ermöglicht eine ungenaue Realisierung den L2-Cachespeichern 14a bis 14n ein selektives Abtasten von Daten auf der Zwischenverbindung 16, um Cachespeicherzeilen im H-Zustand 90 zu aktualisieren. In der in Fig. 2 dargestellten veranschaulichenden Ausführungsform kann jeder L2-Cachespeicher 14 unabhängig von den anderen L2- Cachespeichern in einem genauen oder einem ungenauen Modus betrieben werden, je nach dem Zustand des Modulbits 62 in seinem Modusregister 60.
  • Der Betrieb der L2-Cachespeicher 14a bis 14n im genauen Modus ist besonders vorteilhaft beim Austesten oder der Leistungsoptimierung (performance-tuning) von Software, da der genaue Betriebsmodus ein vorhersehbareres Softwareverhalten und eine konsequente Softwareablaufsteuerung (sofware timing) fördert. Außerdem sind Datenanforderungen, die auf beiden Cachespeicherstufen fehlschlagen (und es erforderlich machen, dass der lokale L2-Cachespeicher 14 eine Transaktion auf der Zwischenverbindung 16 ausgibt), im genauen Modus normalerweise selten und können daher als Hinweise für mögliche "Fehler" ("bugs") in der Software dienen. In Ausführungsformen der vorliegenden Erfindung, die einen geänderten Eingriff unterstützen, garantiert das genaue H-MESI-Protokoll außerdem, dass Daten, die von einem Prozessor 10 angefordert und im lokalen L2-Cachespeicher 14 im H-Zustand 90 gespeichert werden, stets durch den geänderten Eingriff geliefert werden (d. h. schnell). Ein Hauptnachteil des Betriebs eines L2- Cachespeichers 14 im genauen Modus besteht darin, dass abgehörte Transaktionen, die eine L2-Cachespeicherzeile im H- Zustand 90 aktualisieren können, wiederholt werden müssen, falls die Aktualisierung nicht ausgeführt werden kann, beispielsweise aufgrund der Tatsache, dass die Schreibwarteschlange 52 des L2-Cachespeichers 14 voll (d. h. belegt) ist.
  • Da es wünschenswert ist, notwendige Arbeitsgänge, beispielsweise Leseanforderungen, nicht zu wiederholen, um optionale Aktualisierungen von Cachespeicherzeilen im H- Zustand 90 auszuführen, ist es normalerweise vorzuziehen, dass sich L2-Cachespeicher 14a bis 14n während des normalen Betriebs im ungenauen Modus befinden. Wie oben erwähnt wird, ermöglicht der ungenaue Betriebsmodus das selektive Ausführen von Aktualisierungen an Cachespeicherzeilen im H-Zustand 90. Wenn sich ein L2-Cachespeicher 14 im ungenauen Modus befindet, werden Aktualisierungen an Cachespeicherzeilen im H-Zustand 90 in einer bevorzugten Ausführungsform nur ausgeführt, falls die Schreibwarteschlange 52 (oder die Schreibwarteschlange eines zugeordneten Verzeichnisses, falls eine solche realisiert ist) weniger als eine Schwellenanzahl von Einträgen aufweist. Folglich kann Hardware im L2-Cachespeicher 14 oder vom zugeordneten Prozessor 10 ausgeführte Software verwendet werden, um das Modusbit 62 in den dem ungenauen Modus entsprechenden Zustand zu setzen, wenn die Anzahl von Einträgen in der Schreibwarteschlange 52 einen festgelegten Schwellenwert überschreitet. Andere Ausführungsformen der vorliegenden Erfindung können jedoch aufgrund von anderen Kriterien selektiv Aktualisierungen an L2-Cachespeicherzeilen im H-Zustand 90 ausführen, wie unten ausführlich beschrieben wird.
  • In der in Fig. 2 gezeigten veranschaulichenden Ausführungsform des Datenverarbeitungssystems 8 kann jeder der L2-Cachespeicher 14a bis 14n unabhängig durch Software oder Hardware oder beides in den genauen Modus oder den ungenauen Modus gesetzt werden. Falls beispielsweise eine Softwaresteuerung des Modus gewünscht wird, in dem der L2- Cachespeicher 14a betrieben wird, kann der Prozessor 10a einfach das Modusbit 62 setzen, indem er einen Speicherbefehl ausführt, dessen Ziel das Modusregister 60 ist. Alternativ kann Software Werte in die CRs 74 speichern, die bewirken, dass die PMCs 72 das Auftreten von Ereignissen von Interesse zählen, zum Beispiel die Einfügung und Entfernung von Einträgen in die bzw. aus der Schreibwarteschlange 52, L2- Zugriffe, L2-Cachespeicher-Fehlschläge, die Zugriffslatenzzeit bei L2-Cachespeicher-Fehlschlägen usw. Die Software kann sodann auf die Werte in den PMCs 72 von Interesse zugreifen, indem Ladebefehle ausgeführt werden. Wenn einer oder eine Kombination der Werte der PMCs 72 von der Software festgelegte Schwellenwerte überschreitet, kann die Software das Modusbit 62 setzen, um den geeigneten genauen oder ungenauen Modus auszuwählen. Falls der L2-Cachespeicher 14a beispielsweise im ungenauen Modus betrieben wird und die Anzahl von L2- Cachespeicher-Fehlschlägen größer als ein festgelegter Prozentsatz der Gesamtanzahl von L2-Zugriffen ist, kann dze Software das Modusbit 62 in den dem genauen Modus entsprechenden Zustand setzen.
  • Eine Hardwaresteuerung der Betriebsart der L2-Cachespeicher 14a bis 14n kann ähnlich durch die Leistungsüberwachungseinrichtung (performance monitor) 70 realisiert werden. In einer veranschaulichenden Ausführungsform enthält jede Leistungsüberwachungseinrichtung 70 eine Logik zum Erzeugen eines Signals, das das Modusbit 62 in einen angegebenen Zustand setzt, wenn die Anzahl von Vorkommen eines ausgewählten Ereignisses oder einer Kombination von Ereignissen, die in einem oder mehreren PMCs 72 summiert wurden, einen festgelegten Schwellenwert überschreiten. Die Auswahl des Ereignisses oder der Ereignisse von Interesse und die Aktivierung von PMCs 72 kann durch Standardeinstellungen der Leistungsüberwachungseinrichtung 70 oder durch Software festgelegt werden, die vom zugeordneten Prozessor 10 ausgeführt wird. In noch einer anderen Ausführungsform kann die Leistungsüberwachungseinrichtung 70 so eingestellt werden, dass sie eine Leistungsüberwachungseinheit-Unterbrechung (performance monitor interrupt) (PMI) erzeugt, wenn die Anzahl von Vorkommen eines ausgewählten Ereignisses oder einer Kombination von Ereignissen einen festgelegte Schwellenwert überschreitet. Die PMI wird vom zugeordneten Prozessor 10 bearbeitet, der eine Unterbrechungsroutine (interrupt handler) ausführt, die den Zustand des Modusbits 62 ändert.
  • Wie beschrieben wurde, stellt die vorliegende Erfindung ein verbessertes System und Verfahren zum Aufrechterhalten der Speicherkohärenz in einem Multiprozessor- Datenverarbeitungssystem bereit. Das von der vorliegenden Erfindung bereitgestellte verbesserte Speicherkohärenzprotokoll ermöglicht es, dass ein ungültiges Datenelement, das in Verbindung mit der gültigen Adressenkennzeichnung in einem Cachespeicher gespeichert ist, automatisch mit gültigen Daten aktualisiert wird, ohne dass der zugeordnete Prozessor eine ausdrückliche Lese- oder Schreibanforderung ausgibt. Auf diese Weise können Daten, die durch die Aktivität von fernen Prozessoren ungültig gemacht wurden, aktualisiert werden, bevor der lokale Prozessor darauf zugreift, wodurch die Zugriffslatenzzeit erheblich verringert wird, indem die Notwendigkeit zum Abrufen der Daten aus einem fernen Cachespeicher oder Systemspeicher beseitigt wird. Der Konflikt zwischen einem Speicherzugriff und systemweiten Sperren (locks) wird ebenfalls erheblich verringert, da Cachespeicherzeilen ohne Speicherzugriff oder Anfordern einer Sperre aktualisiert werden.
  • Die in Fig. 3 dargestellte veranschaulichende Ausführungsform eines Speicherkohärenzprotokolls könnte durch Entfernen des I- Zustands 86 geändert werden, da dieser Zustand nur verwendet wird, um Verzeichniseinträge beim Einschalten zu initialisieren, und nie aus einem anderen Zustand erneut in diesen Zustand eingetreten wird. Falls der I-Zustand 86 entfernt würde, würde das Kohärenzstatusfeld von jedem L2- Verzeichniseintrag in den H-Zustand 90 initialisiert, und das Kennzeichnungsfeld von jedem L2-Verzeichniseintrag würde auf einen Kennzeichnungswert initialisiert, der zumindest innerhalb derselben Kongruenzklasse eindeutig ist. Außerdem muss verstanden werden, dass die Leistungsüberwachungseinrichtung 70 von Fig. 2 anstelle von mehreren gesonderten, in jedem L2-Cachespeicher 14 befindlichen Leistungsüberwachungseinrichtungen alternativ als eine einzelne systemweite, mit der Zwischenverbindung 16 verbundene Leistungsüberwachungseinrichtung realisiert werden könnte.

Claims (15)

1. Verfahren zum Aufrechterhalten einer Cachespeicher- Kohärenz in einem Datenverarbeitungssystem mit einer Vielzahl von Prozessoren (10a bis 10n), die mit einer Zwischenverbindung (16) verbunden sind, wobei jeder einem entsprechenden aus der Vielzahl von Cachespeichern (14a bis 14n) zugeordnet wird, wobei das Verfahren die folgenden Schritte umfasst:
Speichern eines ersten Datenelementes in Verbindung mit einer Adressenkennzeichnung (40), die eine Adresse des ersten Datenelementes anzeigt, in einem ersten Cachespeicher (14a) der Vielzahl von Cachespeichern;
Setzen eines Kohärenzanzeigers (42) im ersten Cachespeicher in einen ersten Zustand (82), der anzeigt, dass das erste Datenelement gültig ist;
Aktualisieren des Kohärenzanzeigers im ersten Cachespeicher in einen zweiten Zustand (90), der anzeigt, dass die Adressenkennzeichnung gültig und das Datenelement im ersten Cachespeicher ungültig ist, wenn ein anderer aus der Vielzahl von Cachespeichern eine Absicht zum Speichern bei der durch die Adressenkennzeichnung angezeigten Adresse anzeigt, während der Kohärenzanzeiger in den ersten Zustand gesetzt ist,
wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist
Feststellen auf eine Betriebsart des ersten Cachespeichers hin, ob der erste Cachespeicher auf die Erkennung einer Datenübertragung auf der Zwischenverbindung hin aktualisiert werden muss, die der durch die Adressenkennzeichnung angezeigten Adresse zugeordnet ist, während der Kohärenzanzeiger in den zweiten Zustand gesetzt ist, wobei die Datenübertragung durch einen anderen aus der Vielzahl von Cachespeichern eingeleitet wurde und ein zweites Datenelement enthält; und
Ersetzen des ersten Datenelementes durch das Speichern des zweiten Datenelementes im ersten Cachespeicher in Verbindung mit der Adressenkennzeichnung und durch das Aktualisieren des Kohärenzanzeigers in einen dritten Zustand (84), der anzeigt, dass das zweite Datenelement gültig ist, auf eine Feststellung zum Durchführen einer Aktualisierung im ersten Cachespeicher hin.
2. Cachespeicher zum Unterstützen einer Cachespeicher- Kohärenz in einem Datenverarbeitungssystem mit einer Vielzahl von Prozessoren (10a bis 10n), die mit einer Zwischenverbindung (16) verbunden sind und jeweils einem entsprechenden aus einer Vielzahl von Cachespeichern (14a bis 14n) zugeordnet werden, wobei der Cachespeicher Folgendes umfasst:
einen Datenspeicher (34) zum Speichern eines Datenelementes;
einen Kennzeichnungsspeicher (40) zum Speichern einer Adressenkennzeichnung, die eine Adresse des im Datenspeicher enthaltenen Datenelementes anzeigt;
Mittel zum Setzen eines Kohärenzanzeigers (42) in einen ersten Zustand (82), der auf die Speicherung des Datenelementes im Datenspeicher hin anzeigt, dass das im Datenspeicher gespeicherte Datenelement gültig ist, und Mittel zum Setzen des Kohärenzanzeigers in einen zweiten Zustand (90), wenn ein anderer aus der Vielzahl von Cachespeichern eine Absicht zum Speichern bei der durch die Adressenkennzeichnung angezeigten Adresse anzeigt, während der Kohärenzanzeiger in einen ersten Zustand gesetzt ist, wobei der zweite Zustand des Kohärenzanzeigers anzeigt, dass die Adressenkennzeichnung gültig und das Datenelement im Datenspeicher ungültig ist;
wobei der Cachespeicher dadurch gekennzeichnet ist, dass er außerdem Folgendes umfasst:
Mittel, die auf die Erkennung einer Datenübertragung auf der Zwischenverbindung ansprechen, die der durch die Adressenkennzeichnung angezeigten Adresse zugeordnet ist, während der Kohärenzanzeiger in den zweiten Zustand (90) gesetzt ist, wobei die Datenübertragung durch einen anderen aus der Vielzahl von Cachespeichern eingeleitet wurde und ein zweites Datenelement enthält, um auf eine Betriebsart des ersten Cachespeichers hin festzustellen, ob der erste Cachespeicher aktualisiert werden muss, und
Mittel, die auf eine Feststellung zum Durchführen einer Aktualisierung im ersten Cachespeicher ansprechen, um das erste Datenelement zu ersetzen, indem das zweite Datenelement im ersten Cachespeicher in Verbindung mit der Adressenkennzeichnung gespeichert wird, und um den Kohärenzanzeiger in einen dritten Zustand (84) zu aktualisieren, der anzeigt, dass das zweite Datenelement gültig ist.
3. Datenverarbeitungssystem zum Aufrechterhalten einer Cachespeicher-Kohärenz, das Folgendes umfasst: eine Zwischenverbindung (16); eine Vielzahl von Prozessoren (10a bis 10n), die mit der Zwischenverbindung (16) verbunden sind; eine Vielzahl von Cachespeichern (14a bis 14n), die jeweils einem entsprechenden aus der Vielzahl von Prozessoren zugeordnet werden, wobei ein erster Cachespeicher aus der Vielzahl von Cachespeichern einen Datenspeicher (34) zum Speichern eines Datenelementes enthält; einen Kennzeichnungsspeicher (40) zum Speichern einer Adressenkennzeichnung, die eine Adresse des im Datenspeicher enthaltenen Datenelementes anzeigt; Mittel zum Setzen eines Kohärenzanzeigers (42) in einen ersten Zustand (82), der auf die Speicherung des Datenelementes im Datenspeicher hin anzeigt, dass das Datenelement gültig ist, und Mittel zum Setzen des Kohärenzanzeigers in einen zweiten Zustand (90), wenn ein anderer aus der Vielzahl von Cachespeichern eine Absicht zum Speichern bei der von der Adressenkennzeichnung angezeigten Adresse anzeigt, während der Kohärenzanzeiger in einen ersten Zustand gesetzt ist, wobei der zweite Zustand des Kohärenzanzeigers anzeigt, dass die Adressenkennzeichnung gültig und das Datenelement im Datenspeicher ungültig ist; wobei das Datenverarbeitungssystem dadurch gekennzeichnet ist, dass der erste Cachespeicher außerdem Folgendes umfasst: Mittel, die auf die Erkennung einer Datenübertragung auf der Zwischenverbindung ansprechen, die der von der Adressenkennzeichnung angezeigten Adresse zugeordnet ist, während der Kohärenzanzeiger in einen zweiten Zustand gesetzt ist, wobei die Datenübertragung von einem anderen aus der Vielzahl von Cachespeichern eingeleitet wird und ein zweites Datenelement enthält, um auf eine Betriebsart des ersten Cachespeichers hin festzustellen, ob der erste Cachespeicher aktualisiert werden muss; und Mittel, die auf eine Feststellung zum Durchführen einer Aktualisierung im ersten Cachespeicher ansprechen, um das erste Datenelement zu ersetzen, in dem das zweite Datenelement im ersten Cachespeicher in Verbindung mit der Adressenkennzeichnung gespeichert wird, und um den Kohärenzanzeiger in einen dritten Zustand (84) zu aktualisieren, der anzeigt, dass das zweite Datenelement gültig ist.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt des Feststellens auf eine Betriebsart des ersten Cachespeichers hin, ob der erste Cachespeicher aktualisiert werden muss, die folgenden Schritte umfasst:
falls der erste Cachespeicher in einem ersten Modus betrieben wird, stets Entscheiden, den ersten Cachespeicher zu aktualisieren; und falls der erste Cachespeicher in einem zweiten Modus betrieben wird, Entscheiden, den ersten Cachespeicher nur auf das Fehlen einer ausgewählten Bedingung im ersten Cachespeicher hin zu aktualisieren.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass der erste Cachespeicher eine Warteschlange enthält, von der aus Aktualisierungsvorgänge im ersten Cachespeicher ausgeführt werden, wobei der Schritt des Entscheidens, den ersten Cachespeicher nur auf das Fehlen einer ausgewählten Bedingung im ersten Cachespeicher hin zu aktualisieren, einen Schritt des Entscheidens umfasst, den ersten Cachespeicher nur zu aktualisieren, falls die Warteschlange weniger als eine Schwellenanzahl von Einträgen enthält.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es einen Schritt des Setzens der Betriebsart des ersten Cachespeichers in einen von einem ersten Modus und einem zweiten Modus auf einen Befehl hin umfasst, der von einem ersten Prozessor aus der Vielzahl von Prozessoren ausgeführt wird.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es einen Schritt des Überwachens von einem oder mehreren ausgewählten Ereignissen durch Leistungsüberwachungs- Hardware und des Setzens der Betriebsart des ersten Cachespeichers auf das Auftreten von mindestens einem des einen oder der mehreren ausgewählten Ereignisse hin umfasst, wobei der Schritt des Setzens der Betriebsart des ersten Cachespeichers die Leistungsüberwachungs-Hardware verwendet.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt des Aktualisierens des Kohärenzanzeigers in einen dritten Zustand, der anzeigt, dass das zweite Datenelement gültig ist, den Schritt des Aktualisierens des Kohärenzanzeigers in einen gemeinsam genutzten Zustand umfasst, der anzeigt, dass das zweite Datenelement sowohl im ersten Cachespeicher als auch in einem anderen aus der Vielzahl von Cachespeichern gespeichert ist.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt des Setzens eines Kohärenzanzeigers im ersten Cachespeicher in einen ersten Zustand, der anzeigt, dass das Datenelement gültig ist, den Schritt des Setzens des Kohärenzanzeigers im ersten Cachespeicher in einen der folgenden Zustände umfasst: geänderter Zustand, gemeinsam genutzter Zustand und ausschließender Zustand.
10. Cachespeicher nach Anspruch 2 oder System nach Anspruch 3, dadurch gekennzeichnet, dass das Mittel zum Feststellen, ob der erste Cachespeicher auf eine Betriebsart des ersten Cachespeichers hin aktualisiert werden muss, ein Mittel umfasst, um stets zu entscheiden, den ersten Cachespeicher zu aktualisieren, falls der erste Cachespeicher in einem ersten Modus betrieben wird, und ein Mittel zum Entscheiden, den ersten Cachespeicher nur auf das Feilen einer ausgewählten Bedingung im ersten Cachespeicher hin zu aktualisieren, falls der erste Cachespeicher in einem zweiten Modus betrieben wird.
11. Cachespeicher oder System nach Anspruch 10, dadurch gekennzeichnet, dass der erste Cachespeicher eine Warteschlange enthält, von der aus Aktualisierungsvorgänge im ersten Cachespeicher ausgeführt werden, und das Mittel zum Entscheiden, den ersten Cachespeicher nur auf das Fehlen einer ausgewählten Bedingung im ersten Cachespeicher hin zu aktualisieren, Mittel zum Entscheiden umfasst, den ersten Cachespeicher nur zu aktualisieren, falls die Warteschlange weniger als eine Schwellenanzahl von Einträgen enthält.
12. Cachespeicher nach Anspruch 2 oder System nach Anspruch 3, dadurch gekennzeichnet, dass es Mittel umfasst, um die Betriebsart des ersten Cachespeichers auf einen Befehl hin, der von einem ersten Prozessor aus der Vielzahl von Prozessoren ausgeführt wird, in einen von einem ersten und einem zweiten Modus zu setzen.
13. Cachespeicher nach Anspruch 2 oder System nach Anspruch 3, dadurch gekennzeichnet, dass es Leistungsüberwachungs- Hardware zum Überwachen von einem oder mehreren ausgewählten Ereignissen und zum Setzen der Betriebsart des ersten Cachespeichers auf das Auftreten von mindestens einem des einen oder der mehreren ausgewählten Ereignisse hin umfasst.
14. Cachespeicher nach Anspruch 2 oder System nach Anspruch 3, dadurch gekennzeichnet, dass das Mittel zum Aktualisieren des Kohärenzanzeigers in einen dritten Zustand, der anzeigt, dass das zweite Datenelement gültig ist, ein Mittel zum Aktualisieren des Kohärenzanzeigers in einen gemeinsam genutzten Zustand umfasst, der anzeigt, dass das zweite Datenelement sowohl im ersten Cachespeicher als auch in einem anderen aus der Vielzahl von Cachespeichern gespeichert ist.
15. Cachespeicher nach Anspruch 2 oder System nach Anspruch 3, dadurch gekennzeichnet, dass das Mittel zum Setzen eines Kohärenzanzeigers im ersten Cachespeicher in einen ersten Zustand, der anzeigt, dass das Datenelement gültig ist, ein Mittel zum Setzen des Kohärenzanzeigers im ersten Cachespeicher in einen der folgenden Zustände umfasst:
geänderter Zustand, gemeinsam genutzter Zustand und ausschließender Zustand.
DE69900611T 1998-02-17 1999-02-15 Cache-Speicherkohärenzprotokoll mit einem Schwebezustand (H) mit einem genauen und einem ungenauen Modus Expired - Lifetime DE69900611T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/024,612 US6263407B1 (en) 1998-02-17 1998-02-17 Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode

Publications (2)

Publication Number Publication Date
DE69900611D1 DE69900611D1 (de) 2002-01-31
DE69900611T2 true DE69900611T2 (de) 2002-08-22

Family

ID=21821494

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69900611T Expired - Lifetime DE69900611T2 (de) 1998-02-17 1999-02-15 Cache-Speicherkohärenzprotokoll mit einem Schwebezustand (H) mit einem genauen und einem ungenauen Modus

Country Status (9)

Country Link
US (1) US6263407B1 (de)
EP (1) EP0936554B1 (de)
JP (1) JP3277171B2 (de)
KR (1) KR100330934B1 (de)
CN (1) CN1131481C (de)
DE (1) DE69900611T2 (de)
ID (1) ID22046A (de)
MY (1) MY122483A (de)
TW (1) TW426824B (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000330965A (ja) * 1999-03-17 2000-11-30 Hitachi Ltd マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法
US6345342B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache coherency protocol employing a read operation including a programmable flag to indicate deallocation of an intervened cache line
US6345344B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Cache allocation mechanism for modified-unsolicited cache state that modifies victimization priority bits
US6374333B1 (en) * 1999-11-09 2002-04-16 International Business Machines Corporation Cache coherency protocol in which a load instruction hint bit is employed to indicate deallocation of a modified cache line supplied by intervention
US6345343B1 (en) * 1999-11-09 2002-02-05 International Business Machines Corporation Multiprocessor system bus protocol with command and snoop responses for modified-unsolicited cache state
US6349369B1 (en) * 1999-11-09 2002-02-19 International Business Machines Corporation Protocol for transferring modified-unsolicited state during data intervention
US6925634B2 (en) * 2001-01-24 2005-08-02 Texas Instruments Incorporated Method for maintaining cache coherency in software in a shared memory system
US7194586B2 (en) * 2002-09-20 2007-03-20 International Business Machines Corporation Method and apparatus for implementing cache state as history of read/write shared data
US7496715B1 (en) * 2003-07-16 2009-02-24 Unisys Corporation Programmable cache management system and method
US7225299B1 (en) 2003-07-16 2007-05-29 Transmeta Corporation Supporting speculative modification in a data cache
KR100515059B1 (ko) * 2003-07-22 2005-09-14 삼성전자주식회사 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7376798B1 (en) 2005-04-07 2008-05-20 Transmeta Corporation Memory management methods and systems that support cache consistency
JP4784928B2 (ja) * 2005-08-24 2011-10-05 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及び、情報処理プログラムとその記録媒体
US8327075B2 (en) * 2005-12-08 2012-12-04 International Business Machines Corporation Methods and apparatus for handling a cache miss
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
US8874855B2 (en) 2009-12-28 2014-10-28 Empire Technology Development Llc Directory-based coherence caching
CN102122256B (zh) * 2011-03-28 2013-01-09 中国人民解放军国防科学技术大学 一种用于进程间通信的管道式通信方法及系统
US20170255569A1 (en) * 2016-03-01 2017-09-07 Qualcomm Incorporated Write-allocation for a cache based on execute permissions
CN110443360B (zh) * 2017-06-16 2021-08-06 上海兆芯集成电路有限公司 用于操作处理器的方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
ATE109910T1 (de) 1988-01-20 1994-08-15 Advanced Micro Devices Inc Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen.
JPH0680499B2 (ja) 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5287484A (en) 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH061463B2 (ja) 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JP2820752B2 (ja) 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH0625984B2 (ja) 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
CA2051209C (en) 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5282272A (en) 1990-12-21 1994-01-25 Intel Corporation Interrupt distribution scheme for a computer bus
EP0553743A1 (de) 1992-01-31 1993-08-04 Motorola, Inc. Cachespeichersteuerungseinrichtung
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
JPH06110844A (ja) 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
JP3013631B2 (ja) 1992-09-28 2000-02-28 日本電気株式会社 キャッシュメモリ同期方法
US5522057A (en) 1993-10-25 1996-05-28 Intel Corporation Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems
US5671391A (en) 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
US5588131A (en) 1994-03-09 1996-12-24 Sun Microsystems, Inc. System and method for a snooping and snarfing cache in a multiprocessor computer system
US5666509A (en) 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
EP0681240B1 (de) 1994-05-03 2001-01-10 Hewlett-Packard Company Anordnung mit Duplikat des Cache-Etikettenspeichers
CA2148186A1 (en) 1994-05-04 1995-11-05 Michael T. Jackson Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories
US6038644A (en) 1996-03-19 2000-03-14 Hitachi, Ltd. Multiprocessor system with partial broadcast capability of a cache coherent processing request
US5900016A (en) 1997-04-02 1999-05-04 Opti Inc. System for using a cache memory with a write-back architecture
US6049849A (en) * 1997-04-14 2000-04-11 International Business Machines Corporation Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests

Also Published As

Publication number Publication date
DE69900611D1 (de) 2002-01-31
TW426824B (en) 2001-03-21
JPH11328025A (ja) 1999-11-30
EP0936554B1 (de) 2001-12-19
EP0936554A2 (de) 1999-08-18
KR19990072595A (ko) 1999-09-27
HK1022970A1 (en) 2000-08-25
CN1231444A (zh) 1999-10-13
EP0936554A3 (de) 2000-01-26
US6263407B1 (en) 2001-07-17
ID22046A (id) 1999-08-26
JP3277171B2 (ja) 2002-04-22
MY122483A (en) 2006-04-29
KR100330934B1 (ko) 2002-04-01
CN1131481C (zh) 2003-12-17

Similar Documents

Publication Publication Date Title
DE69900611T2 (de) Cache-Speicherkohärenzprotokoll mit einem Schwebezustand (H) mit einem genauen und einem ungenauen Modus
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE69514165T2 (de) Mehrstufige Cache-Speicheranordnung
DE10085373B4 (de) Verfahren zum Flushen von Cache-Zeilen
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE3439302C2 (de)
DE68902193T2 (de) Datenspeicheranordnung.
DE69317729T2 (de) Cache-Etikettenspeicher
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69331039T2 (de) Rechnersystem mit einem Vorausholungscachespeicher
DE69421058T2 (de) Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69616223T2 (de) Datenstromvorausladepufferspeicher mit Datenstromfilters
DE3856552T2 (de) Multiprozessor-Digitaldatenverarbeitungssystem und Verfahren zum Betreiben dieses Systems
DE102007048507B4 (de) Cache-Speichersystem und Verfahren zum Bereitstellen eines Transaktionsspeichers
DE69706934T2 (de) Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte
DE102008048627A1 (de) Zuteilen von Platz in dedizierten Cache-Wegen
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)