[go: up one dir, main page]

DE102007030116A1 - Snoop-Filter mit ausschließlicher Inhaberschaft - Google Patents

Snoop-Filter mit ausschließlicher Inhaberschaft Download PDF

Info

Publication number
DE102007030116A1
DE102007030116A1 DE102007030116A DE102007030116A DE102007030116A1 DE 102007030116 A1 DE102007030116 A1 DE 102007030116A1 DE 102007030116 A DE102007030116 A DE 102007030116A DE 102007030116 A DE102007030116 A DE 102007030116A DE 102007030116 A1 DE102007030116 A1 DE 102007030116A1
Authority
DE
Germany
Prior art keywords
snoop filter
entry
line
snoop
request
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
DE102007030116A
Other languages
English (en)
Other versions
DE102007030116B4 (de
Inventor
Jeffrey D. Portland Gilbert
Kai Portland Cheng
Liqun Salt Lake City Cheng
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102007030116A1 publication Critical patent/DE102007030116A1/de
Application granted granted Critical
Publication of DE102007030116B4 publication Critical patent/DE102007030116B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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)

Abstract

Ein Snoop-Filter gewährleistet Daten-Kohärenzinformation für eine Mehrzahl von Caches in einem Multiprozessorsystem. Der Snoop-Filter mit exklusivem Besitz speichert nur Einträge, die exklusiv von einem Prozessor besessen werden. Eine Kohärenz-Engine aktualisiert die Einträge in dem Snoop-Filter derart, daß ein Eintrag aus einem Snoop-Filter entfernt wird, wenn der Eintrag den exklusiven Zustand verläßt. Um Datenkohärenz sicherzustellen, implementiert die Kohärenz-Engine eine Ablaufsteuerungsregel, die eine Leseanforderung von einer Schreibanforderung abkoppelt.

Description

  • Beschreibung des Stands der Technik
  • In einem Multiprozessorsystem mit mehreren Caches kann jeder Cache eine Kopie von Daten aufweisen, die im Speicher gespeichert sind. Probleme erwachsen dann, wenn mehrere Kopien der Daten in den Caches nicht kohärent sind. Verschiedene Techniken sind entwickelt worden, um Datenkohärenz zu gewährleisten. Wenn zum Beispiel die Daten in einem Cache verändert wurden, werden andere Daten als ungültig gekennzeichnet, damit sie nicht verwendet werden.
  • Eine Kopie der Daten in dem Cache wird oft als eine Cachezeile, eine Speicherzeile oder eine Zeile bezeichnet. Als eine Snoop-Operation wird ein Vorgang bezeichnet, bei dem ein Agent eines Busses den Bus nach Speichertransaktionen überwacht, z. B. einen Lese/Schreib-Vorgang auf einen Hauptspeicher-Ort, der sich auch in einem Cache befindet. Der Agent kann die Zustände der Cachezeilen, die an den Speichertransaktionen beteiligt sind, in einem Verzeichnis, z. B. einem Snoop-Filter, aufzeichnen. Der Zustand der Cachezeile kann anzeigen, ob die Zeile nur eine gültige Kopie außerhalb des Hauptspeichers aufweist, mehrere gültige Kopien, die sich mehrere Caches teilen, aufweist oder invalidiert wurde. Ein Dateneintrag in dem Snoop-Filter wird oft durch seine Adresse im Hauptspeicher indiziert.
  • Es ist im allgemeinen erstrebenswert, einen großen Snoop-Filter vorzusehen, der eine Abdeckung bereitstellt, die mehrmals die gesamte Größe der Prozessorcaches beträgt (z. B. 8×-Abdeckung, was ein Fachbegriff ist, der anzeigt, daß der Snoop-Filter Informationen enthalten kann, die ungefähr acht mal so viele Cachezeilen beschreiben, wie die Caches, auf die sich der Snoop-Filter bezieht, enthalten können). Ein großer Snoop-Filter kann die Trefferrate der Prozessorcaches erhöhen und die Systemleistung verbessern. Weil die Größe der Prozessorcaches jedoch mit der Zeit ansteigt, ist es für Schaltugsdesigner jedoch aufgrund von Beschränkungen der Die-Größe schwierig, auch nur eine 1×-Abdeckung bereitzustellen. Daher wird für den Snoop-Filter manchmal der Raum knapp, um den Zustand einer Zeile für eine neue Speichertransaktion aufzuzeichnen, und sie müssen möglicherweise einen Eintrag aus dem Snoop-Filter entfernen, um die neue Transaktion unterzubringen. Sobald eine Eintrag aus dem Snoop-Filter entfernt ist, wird eine Invalidierungs-Rücknachricht an alle Prozessorcaches gesendet, die möglicherweise eine gültige Kopie der Zeile, die mit dem entfernten Eintrag verknüpft ist, enthalten. Experimente zeigen, daß eine bedeutende Anzahl von Cache-Fehlzugriffen (z. B. 20%) von Rück-Invalidierungen einer Cachezeile herrühren, die gerade verwendet werden sollte.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungen werden als Beispiel und nicht als Beschränkung in den Figuren dargestellt, bei denen gleiche Bezugszeichen ähnliche Elemente darstellen. Man beachte, daß Bezugnahme auf „eine" oder „die eine" Ausführung in dieser Offenbarung nicht notwendigerweise stets dieselbe Ausführung bezeichnen, und solche Bezeichnungen bedeuten mindestens eine.
  • 1 ist ein Blockdiagramm einer Ausführung eines Multiprozessorsystems, welches eine Mehrzahl von Caches umfaßt.
  • 2 ist ein Blockdiagramm einer Ausführung eines Kohärenzcontrollers des Multiprozessorsystems von 1, bei welcher der Kohärenzcontroller einen Snoop-Filter und eine Kohärenz-Engine umfaßt.
  • 3 ist ein Beispiel eines Flußdiagramms, das ein Verfahren für eine Ablaufsteuerungsregel zeigt, die von der Kohärenz-Engine von 2 implementiert wird.
  • DETAILLIERTE BESCHREIBUNG
  • Mit Bezug auf 1 kann eine Ausführung eines Multiprozessorsystems 10 eine Mehrzahl von Verarbeitungsknoten 17 umfassen, die mit einem Chipsatz 13 zusammengeschaltet sind. Jeder der Verarbeitungsknoten 17 kann einen oder mehrere Prozessoren 11 (zwei Prozessoren pro Verarbeitungsknoten sind gezeigt) und einen Cache 12 umfassen. Auf jeden der Caches 12 kann lokal von den Prozessoren 11 eines „Heimatknotens" (des Verarbeitungsknotens, in dem dieser Cache liegt) und entfernt von Prozessoren 11 von „Fremdknoten" (die Verarbeitungsknoten abgesehen von dem Heimatknoten) zugegriffen werden. Der Cache 12 wird als ein „lokaler Cache" mit Bezug auf die Prozessoren 11 des Heimatknotens bezeichnet. Die Verarbeitungsknoten 17 können mit dem Chipsatz 13 über einen oder mehrere Frontside-Busse (FSBs) 14 (nur zwei FSBs sind gezeigt) oder andere Arten von Datenwegen (z. B. Punkt-Zu-Punkt-Verbindungen) gekoppelt sein. Ein oder mehrere Verarbeitungsknoten 17 können auf einem einzigen Chip implementiert sein. das System 10 kann aufgrund der hohen gemeinsamen Prozessorleistung, die es besitzt, auch als ein Server-System verwendet werden. Das System 10 kann jedoch auch als Desktopcomputer oder irgend ein anderes Rechnersystem verwendet werden.
  • Der Chipsatz 13 kann einen Kohärenzcontroller 132 zur Verarbeitung von Anforderungen, die von den FSBs empfangen werden, und zur Aufrechterhaltung von Datenkohärenz zwischen den Caches 12 umfassen. Die Funktionen des Kohärenzcontrollers 132 werden unten im Detail mit Bezug auf 2 erörtert. Der Chipsatz 13 kann einen Speichercontroller 134 umfassen, um eine Schnittstelle für die Verarbeitungsknoten 17 und andere Komponenten des Systems 10 bereitzustellen, um auf Speicherplätze eines Speichers 15 zuzugreifen. Der Speicher 15 kann eine oder mehrere Arten von Speichervorrichtungen umfassen, wie beispielsweise Vorrichtungen mit dynamischem RAM (DRAM), Vorrichtungen mit synchronem dynamischem RAM (SDRAM), SDRAM-Vorrichtungen mit doppelter Datenrate (DDR) oder andere flüchtige oder nichtflüchtige Speichervorrichtungen, die für Server- und allgemeine Anwendungen geeignet sind. Bei manchen Serveranwendungen können Datenbits, die in dem Speicher 15 gespeichert sind, durch einen Fehlerkorrekturcode (ECC) vor Fehlern geschützt sein.
  • Der Chipsatz 13 kann auch einen E/A-Controller 136 umfassen, um eine Schnittstelle für die Verarbeitungsknoten 11 und andere Komponenten des Systems 10 bereitzustellen, um auf eine oder mehrere E/A-Vorrichtungen 16 zuzugreifen. Die E/A-Vorrichtungen 16 können ISA-Vorrichtungen (Industry Standard Architecture), PCI-Vorrichtungen (Peripheral Component Interconnect), PCI-Express-Vorrichtungen, USB-Vorrichtungen (Universal Serial Bus), SCSI-Vorrichtungen (Small Computer System Interface) oder andere standardisierte oder proprietäre E/A-Vorrichtungen, die für Server oder allgemeine Anwendungen geeignet sind, umfassen. In manchen Ausführungen kann der Chipsatz 13 als ein einzelner Chip implementiert sein. In manchen Ausführungen kann der Chipsatz 13 als zwei oder mehrere Chips implementiert sein. Der Chipsatz 13 kann manchmal als Speicher-Steuerungshub (MCH) oder als eine Northbridge (NB) bezeichnet werden. Bei Multi-Chip-Implementierungen können die sekundären Chips des Chipsatzes 13 als ein Eingang/Ausgang-Hub (IOH), ein Eingang/Ausgang-Steuerungshub (ICH) und/oder als eine Southbridge (SB) bezeichnet werden.
  • Die Prozessoren 11 können Speicherzeilen in ihren jeweiligen lokalen Caches 12 speichern, um einen schnellen Zugriff zu erleichtern. Die Caches 12 können Daten, Befehle oder eine Kombination der beiden speichern. Für jede der Cachezeilen können die Caches 12 eine Markierung (z. B. einen Abschnitt einer Speicheradresse) speichern, um die Cachezeile mit einer zugehörigen Zeile im Speicher 15 zu verknüpfen oder auf sie abzubilden. Die Caches 12 können auch einen Kohärenzzustand für jede der Cachezeilen speichern und aktualisieren. Beispielsweise können die Caches 12 MESI-Kohärenzzustände unterstützen, bei denen eine Cachezeile sich in einem modifizierten Zustand (M), einem exklusiven Zustand (E), einem geteilten Zustand (S) oder einem ungültigen Zustand (I) befindet.
  • Gemäß einem Beispiel eines Cache-Kohärenzprotokolls, das MESI-Zustände verwendet, zeigt der ungültige Zustand (I) an, daß die verknüpfte Cachezeile keine aktuelle Kopie der Zeile ist. Die aktuelle Kopie der Zeile kann sich im Speicher 15 und/oder in einem der anderen Caches 12 in den Fremdknoten befinden. Der geteilte Zustand (S) zeigt an, daß die verknüpfte Cachezeile eine aktuelle Kopie der Zeile ist, und daß Null oder mehr andere Caches 12 auch eine aktuelle Kopie der Zeile in dem geteilten Zustand aufweisen können. Der exklusive Zustand (E) zeigt an, daß der Cache 12, in dem sich die verknüpfte Cachezeile befindet, den Besitz der Zeile erhalten hat und eine aktuelle Kopie der Zeile aufweist. Weiter zeigt der E-Zustand an, daß kein anderer Cache 12 eine Kopie der Zeile in dem M-, E- oder S-Zustand aufweist. Der modifizierte Zustand (M) zeigt an, daß der Cache 12, in dem sich die verknüpfte Cachezeile befindet, eine aktuelle Kopie der Zeile, die modifiziert wurde, aufweist. Wie bei dem E-Zustand zeigt der M-Zustand an, daß kein anderer Cache 12 eine Kopie der Zeile in dem M-, E- oder S-Zustand aufweist. Weiter zeigt der M-Zustand an, daß die verknüpfte Zeile möglicherweise aktueller ist, als die zugehörige Datenzeile im Speicher 15. Weil eine Zeile mit entweder dem M-Zustand oder dem E-Zustand exklusiv mit einem der Caches 12 verknüpft ist (z. B. vom ihm besessen oder modifiziert wird), können der M-Zustand und der E-Zustand in einen E/M-Zustand kombiniert werden, der manchmal ebenfalls als ein exklusiver Zustand bezeichnet wird.
  • Die Zustande der Cachezeilen können von einem zentralisierten Verzeichnis, z. B. einem Snoop-Filter oder irgend einer anderen Speicherkomponente in einem zentralisierten Ort des Systems 10, verfolgt werden. Mit Bezug auf die 2 kann in einer Ausführung der Kohärenzcontroller 132 einen Snoop-Filter 24 aufweisen, um Kohärenzinformation über die Cachezeilen bereitzustellen. Wie in 2 gezeigt ist, kann eine Ausführung des Kohärenzcontrollers 132 mehrere FSB-Ports (FSB_Port_0 21 und FSB_Port_1 22), eine Kohärenz- Engine 23 und einen Snoop-Filter 24 umfassen.
  • Der Snoop-Filter 24 kann eine oder mehrere Speicherarrays, wie beispielsweise einen vollassoziativen Array, einen teilassoziativen Array oder einen direkt abgebildeten Array umfassen, der Wege oder Zeilen aufweist, um Kohärenzinformationen zu speichern. In einer Ausführung umfaßt der Snoop-Filter 24 einen teilassoziativen 96-Wege-Array, bei dem jeder der 4K Sätze 96 Slots (oder Wege) 225 umfaßt (nur einer ist gezeigt), um Kohärenzinformation von 96 Cachezeilen zu speichern. Eine Cachezeile kann beispielsweise mittels der letzten zwölf Bits der Speicheradresse auf einen der 4K Sätze abgebildet werden. Jeder der Wege 225 kann Informationen für eine Zeile speichern. Die Informationen können eine Adreßmarkierung und einen Präsenz-Vektor umfassen. Die Adreßmarkierung kann die gesamte Speicheradresse der Zeile oder einen Teil von ihr umfassen. In dem obigen Beispiel, bei dem die zwölf letzten Speicheradressenbits verwendet werden, um einen Satz zu finden, kann die Adreßmarkierung der Rest der Speicheradressenbits sein, die diesen zwölf Adressenbits vorangehen. Der Präsenz-Vektor kann anzeigen, welcher FSB 14 mit dem Cache 12 verbunden ist, der die Cachezeile aufweisen könnte.
  • In einer Ausführung kann der Snoop-Filter 24 nur diejenigen Einträge speichern, die mit Zeilen verknüpft sind, die den E/M-Zustand aufweisen. Solche Snoop-Filter-Einträge werden manchmal als E/M-Einträge bezeichnet. Das bedeutet, daß der Snoop-Filter 24 einen E/M-Eintrag für eine Zeile speichern kann, wenn irgend ein Cache 12 eine exklusive Kopie der Zeile außerhalb des Hauptspeichers 15 enthält oder enthalten kann. Das Speichern von ausschließlich den E/M-Einträgen kann die gesamte Anzahl von Einträgen, die im Snoop-Filter 24 gespeichert sind, verringern und kann im Ergebnis die Größe des Snoop-Filters vergrößern. Dafür kann das ausschließliche Speichern der E/M-Einträge die Anzahl von Snoop-Vorgängen vergrößern, die durch den Snoop-Filter 24 erzeugt werden. Speziell für leseintensive Anwendungen verbessert sich jedoch im allgemeinen die Systemleistung.
  • In einer Ausführung kann, wenn eine Anforderung nach einer Speichertransaktion an dem Kohärenzcontroller 132 eingeht, die Kohärenz-Engine 23 ermitteln, wohin die Anforderung weitergeleitet wird. Als eine Speichertransaktion wird eine Transaktion bezeichnet, die Zugriff auf den Speicher 15 oder irgendwelche Caches 12 erfordert. Die Kohärenz-Engine 23 kann im Snoop-Filter 24 suchen, um zu ermitteln, ob der Snoop-Filter Informationen zu der angeforderten Zeile aufweist. Wenn der Snoop-Filter 24 die Informationen aufweist, leitet die Kohärenz-Engine 23 die Anforderung an den FSB-Port (21 oder 22) weiter, wobei sie mit dem Cache 12 eine Verbindung herstellt, der eine aktuelle Kopie der Zeile aufweist, basierend auf dem Präsenz-Vektor der Zeile.
  • Wenn die Transaktion gegebenenfalls den Zustand der ageforderten Zeile ändern kann, aktualisiert die Kohärenz-Engine 23 die Information im Snoop-Filter 24, um die Änderungen wiederzugeben. Wenn der Snoop-Filter 24 keine Informationen für diese Zeile aufweist, kann die Kohärenz-Engine dem Snoop-Filter einen Eintrag hinzufügen, um Kohärenz-Informationen der angeforderten Zeile zu speichern.
  • Um ausschließliche E/M-Speicherung im Snoop-Filter 24 zu unterstützen, implementiert die Kohärenz-Engine 23 eine Ablaufsteuerungsregel, um Datenkohärenz zu gewährleisten. Die Ablaufsteuerungsregel teilt die Speicheranforderungsarten in Leseanforderungen und Schreibanforderungen. Die Leseanforderungen werden von den Schreibanforderungen abgekoppelt. Sowohl die Prozessoren 11 als auch die E/A-Vorrichtungen 16 (1) können die Leseanforderungen und die Schreibanforderungen ausgeben. Für Prozessor-Anforderungen können die Schreibanforderungen „Write" (auch bekannt als „Write-for-Ownership") und „Write-Invalidate" umfassen. Für jede Anforderungsart werden im Fall eines Snoop-Filter-Treffers und eines Snoop-Filter-Fehlzugriffs unterschiedliche Kohärenzmaßnahmen getroffen. Die Kohärenz-Engine 23 kann die Ablaufsteuerungsregel durch Hardware oder eingebettete Firmware implementieren.
    Anforderungsart Snoop-Filter-Ergebnis Snoop-Filter-Maßnahme Kohärenzmaßnahme
    Prozessor-Read Treffer Eintrag entfernen „Goto_S"-Snoop des aktuellen Besitzers
    Fehlzugriff Keine Keine
    Prozessor-Write (Read-for-Ownership Treffer Besitzer aktualisieren Invalidierender Snoop auf gegenwärtigen Besitzer
    Fehlzugriff Eintrag zuteilen Invalidierender Snoop auf alle Agenten
    Prozessor-Write-Invalidate Treffer Eintrag entfernen Invalidierender Snoop auf gegenwärtigen Besitzer
    Fehlzugriff Keine Invalidierender Snoop auf alle Agenten
    E/A-DMA-Read Treffer Eintrag entfernen „Goto_S"-Snoop des aktuellen Besitzers
    Fehlzugriff Keine Keinen
    E/A-DMA-Write Treffer Eintrag entfernen Invalidierender Snoop auf gegenwärtigen Besitzer
    Fehlzugriff Keine Invalidierender Snoop auf alle Agenten
    Tabelle 1. Ablaufsteuerungsregel des Snoop-Filters nur E/M
  • Ein Beispiel der Ablaufsteuerungsregel wird mit Bezug auf die Tabelle 1 beschrieben. Für jede Anforderungsart (z. B. Lese- oder Schreibanforderung) und für jedes Snoop-Filter-Ergebnis (z. B. Treffer oder Fehlzugriff) trifft die Kohärenz-Engine 23 eine Snoop-Filter-Maßnahme und eine Kohärenzmaßnahme, um die Datenkohärenz beizubehalten. Als eine Snoop-Filter-Maßnahme wird eine Maßnahme zur Aktualisierung der Snoop-Filter-Einträge bezeichnet. Als eine Kohärenzmaßnahme wird eine Maßnahme bezeichnet, die eine Snoop-Nachricht an einen oder mehrere Prozessoren sendet, um die Kohärenzzustände der Cachezeilen zu aktualisieren. In einer Ausführung kann die Kohärenz-Engine 23 Schaltungen aufweisen, die eine Snoop-Filter-Aktualisierungseinheit 25, eine Invalidierungseinheit 26 und eine Goto_S-Einheit 27 zur Implementierung der Snoop-Filter-Maßnahmen und der Kohärenzmaßnahmen umfaßt.
  • Es wird beispielsweise angenommen, daß ein Prozessor anfordert, eine Zeile aus dem Hauptspeicher zu lesen, und die Anforderung zu einem Treffer im Snoop-Filter 24 führt. Ein Treffer im Snoop-Filter 24 bedeutet, daß sich der Eintrag in einem exklusiven Zustand (E/M) befindet und die verknüpfte Zeile gegenwärtig von einem Prozessorcache besessen wird. Daher bewirkt die neue Leseanforderung von einem anderen Prozessor, daß die Zeile den E/M-Zustand verläßt und in den S-Zustand eintritt. Weil der Snoop-Filter 24 nur E/M-Einträge speichert, sollte der gerade angeforderte Eintrag, der sich nun im S-Zustand befindet, aus dem Snoop-Filter entfernt werden. Daher weist die Snoop-Filter-Aktualisierungseinheit 25 den Snoop-Filter 24 an, diesen Eintrag aus dem Snoop-Filter zu entfernen. Weiter sendet die Goto_S-Einheit 27 eine „Goto_S"-Snoop-Nachricht, um den gegenwärtigen Besitzer der Zeile zu informieren, daß die Zeile nun geteilt ist. So kann der gegenwärtige Besitzer den Status der Zeile von E/M auf S ändern.
  • Wenn die Leseanforderung zu einem Fehlzugriff bei dem Snoop-Filter 24 führt, kann der angeforderte Eintrag gegenwärtig von Null oder mehr Caches besessen werden. Die aktuelle Kopie im Hauptspeicher ist auf dem neuesten Stand und die neue Leseanforderung ändert diesen aktuellen Zustand nicht. Daher wird der Snoop-Filter 24 nicht aktualisiert und es wird keine Kohärenzmaßnahme getroffen.
  • Wenn der Prozessor anfordert, eine Zeile in den Hauptspeicher zu schreiben, und die Anforderung zu einem Treffer im Snoop-Filter 24 führt, aktualisiert die Snoop-Filter-Aktualisierungseinheit 25 den Snoop-Filter-Eintrag, um anzuzeigen, daß der anfragende Prozessor der neue Besitzer der Zeile ist. Der Snoop-Filter 24 behält den Eintrag, weil der Eintrag sich immer noch in dem E/M-Zustand befindet, obwohl das exklusive Eigentumsrecht sich geändert hat. Die Invalidierungseinheit 26 sendet eine Invalidierungsnachricht an den gegenwärtigen Besitzer der Zeile, um anzuzeigen, daß die aktuelle lokale Kopie nicht mehr auf dem neuesten Stand ist. Dadurch wird das exklusive Zugriffsrecht dem anfordernden Prozessor gewährt, und die Kopie, die vom gegenwärtigen Besitzer besessen wird, wird invalidiert.
  • Angenommen, der Prozessor fordert an, eine Zeile in den Hauptspeicher zu schreiben, und die Anforderung führt zu einem Fehlzugriff beim Snoop-Filter 24. Ein Fehlzugriff zeigt an, daß die Zeile nicht von irgendeinem Prozessor exklusiv besessen wird. Da die Schreibanforderung dazu führen wird, daß die Zeile exklusiv von dem anfordernden Prozessor besessen wird, teilt die Snoop-Filter-Aktualisierungseinheit 25 der angeforderten Zeile einen Snoop-Filter-Eintrag zu. Die Kopien der Zeile, die möglicherweise außerhalb des Hauptspeichers gecachet sind, werden invalidiert. Daher gibt die Invalidierungseinheit 26 eine Invalidierungsnachricht an alle der Prozessoren aus, um anzuzeigen, daß die aktuellen lokalen Kopien nicht mehr auf dem neuesten Stand sind. Als Ergebnis werden dem anfordernden Prozessor exklusive Zugriffsrechte gewährt.
  • In einem anderen Szenario kann der Prozessor anfordern, ein Write-Invalidate auf eine Zeile auszuführen. Eine Write-Invalidate-Operation besteht aus einer Schreiboperation auf den Hauptspeicher zusammen mit einer Invalidierung aller Kopien im lokalen Cache des Prozessors. Nach dem Write-Invalidate enthält der Hauptspeicher die einzige aktuelle Kopie in dem System. Daher wird, wenn überhaupt, der verknüpfte Snoop-Filter-Eintrag gelöscht, um anzuzeigen, daß der Eintrag nicht mehr exklusiv von dem gegenwärtigen Besitzer besessen wird. Wenn daher die Write-Invalidate-Anforderung zu einem Fehlzugriff führt, sendet die Invalidierungseinheit 26 eine Invalidierungsnachricht an alle Prozessoren, um anzuzeigen, daß die Kopien außerhalb des Hauptspeichers nicht mehr auf dem neuesten Stand sind. Das Ergebnis der Write-Invalidate-Anforderung besteht darin, daß kein Cache 12 eine Kopie der Zeile aufweist.
  • Eine E/A-Vorrichtung kann manchmal eine direkte Speicherzugriff(DMA)-Leseanforderung veranlassen. Eine E/A-DMA-Leseanforderung wird in der selben Weise gehandhabt wie eine Prozessor-Leseanforderung. Wenn daher einen Treffer beim Snoop-Filter 24 auftritt, wird der verknüpfte Snoop-Filter-Eintrag entfernt und die Kopie, die vom gegenwärtigen Besitzer besessen wird, wird in den S-Zustand versetzt. Wenn einen Fehlzugriff auftritt, wird keine Snoop-Filter-Maßnahme oder Kohärenzmaßnahme ausgeführt.
  • Wenn die E/A-Vorrichtung eine DMA-Schreibanforderung veranlaßt, und die Anforderung zu einem Treffer führt, entfernt die Snoop-Filter-Aktualisierungseinheit den Eintrag, um anzuzeigen, daß die verknüpfte Zeile sich nicht mehr in dem E/M-Zustand befindet. Eine Invalidierungsnachricht wird an den Prozessor gesendet, der gegenwärtig die Zeile besitzt. Wenn die Anforderung zu einem Fehlzugriff führt, wird eine Invalidierungsnachricht an alle Prozessoren gesendet, weil ein jeder von ihnen möglicherweise eine Kopie der Zeile besitzt. Der E/A-Transfer geschieht, nachdem die Kohärenzmaßnahme ausgeführt ist.
  • Ein Beispielvorgang, der von der Kohärenz-Engine 23 ausgeführt wird, ist in 3 gezeigt. Mit Bezug auch auf 1, empfangt bei Block 310 die Kohärenz-Engine 23 eine Anforderung von einem der Prozessoren oder der E/A-Vorrichtungen nach einer Speichertransaktion. Bei Block 320 sucht die Kohärenz-Engine 23 im Snoop-Filter 24, um zu ermitteln, ob die angeforderte Zeile einen Eintrag in dem Snoop-Filter aufweist. Wenn es einen Eintrag für die angeforderte Zeile im Snoop-Filter 24 gibt, ermittelt die Kohärenz-Engine 23 bei Block 330, ob die Anforderung den exklusiven Besitz des Eintrags ändern kann. Bei Block 340 aktualisiert die Kohärenz-Engine 23 den Snoop-Filter, wenn eine Änderung des exklusiven Besitzes vorliegt. Die Kohärenz-Engine 23 aktualisiert den Snoop-Filter 24 nicht, wenn keine Änderung des exklusiven Besitzes vorliegt. Kehrt man zu Block 320 zurück, so ermittelt die Kohärenz-Engine 23, wenn die angeforderte Zeile keinen Eintrag im Snoop-Filter 24 aufweist, bei Block 350, ob die Anforderung dazu führen kann, daß die Zeile exklusiv von einem Prozessor besessen wird. Wenn die Zeile exklusiv von einem Prozessor besessen wird, so teilt die Kohärenz-Engine 23 bei Block 360 einen Eintrag für die angeforderte Zeile zu. Die Kohärenz-Engine 23 aktualisiert den Snoop-Filter 24 nicht, wenn die Zeile nicht von einem Prozessor exklusiv besessen wird.
  • Bei Block 370 gibt, abgesehen von der Situation, bei der die angeforderte Transaktion eine Lesevorgang ist, der zu einem Fehlzugriff führt, die Kohärenz-Engine 23 eine Snoop-Nachricht an einen oder mehrere Prozessoren aus. Die Snoop-Nachricht kann aus einer „Goto_S"-Nachricht bestehen, die einen gegenwärtigen Besitzer einer Zeile darüber informiert, daß die Zeile in den S-Zustand gewechselt ist. Die Snoop-Nachricht kann aus einer Invalidierungsnachricht bestehen, die einen gegenwärtigen Besitzer einer Zeile darüber informiert, daß die Zeile nicht mehr gültig ist. Die Snoop-Nachricht kann zu einem gegenwärtigen Besitzer einer Zeile gesendet werden, oder kann in manchen Szenarios an alle der Prozessoren gesendet werden, wenn manche von ihnen eine Kopie der Zeile besitzen können. Die Art der Snoop-Nachricht und das Ziel der Snoop-Nachricht können von der Art der Anforderung und dem Ergebnis des Snoop-Filters (z. B. einem Treffer oder einem Fehlzugriff) abhängen. Bei Block 380 kann, nachdem die Snoop-Nachricht gesendet wurde, der anfordernde Agent fortfahren, um die angeforderte Transaktion durchzuführen.
  • In der vorangegangenen Patentschrift wurden spezifische Ausführungen beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen und Änderungen darauf angewendet werden können, ohne von dem generellen Geist und Schutzumfang der angefügten Ansprüche abzuweichen. Die Patentschrift und die Zeichnungen sollen demnach in einem erläuternden anstatt einem einschränkenden Sinn angesehen werden.

Claims (20)

  1. Verfahren, welches folgendes umfaßt: Speichern nur derjenigen Einträge in einem Snoop-Filter, die einen exklusiven Zustand aufweisen; und Aktualisieren eines Eintrags in dem Snoop-Filter, wenn eine Anforderung einen exklusiven Besitz einer Zeile, die mit dem Eintrag verknüpft ist, ändert.
  2. Verfahren nach Anspruch 1, welches weiter folgendes umfaßt: Abkoppeln einer Leseanforderung von einer Schreibanforderung bei dem Aktualisieren des Snoop-Filters.
  3. Verfahren nach Anspruch 1, bei dem das Aktualisieren eines Eintrags folgendes umfaßt: Entfernen des Eintrags in dem Snoop-Filter, wenn eine Leseanforderung empfangen wird.
  4. Verfahren nach Anspruch 1, bei dem das Aktualisieren eines Eintrags weiter folgendes umfaßt: Ändern eines Besitzers von der Zeile, wenn eine Prozessor-Schreibanforderung zu einem Treffer führt.
  5. Verfahren nach Anspruch 1, bei dem das Aktualisieren eines Eintrags weiter folgendes umfaßt: Zuteilen eines neuen Eintrags in dem Snoop-Filter an einen Prozessor, wenn der Prozessor eine Schreibanforderung ausgibt, welche zu einem Fehlzugriff führt.
  6. Verfahren nach Anspruch 1, bei dem das Aktualisieren eines Eintrags weiter folgendes umfaßt: Entfernen des Eintrags in dem Snoop-Filter, wenn eine direkte Speicherzugriff(DMA)-Anforderung zu einem Treffer in dem Snoop-Filter führt.
  7. Verfahren nach Anspruch 1, welches weiter folgendes umfaßt: Senden einer Invalidierungsnachricht an alle Prozessoren, deren Cachezeilen von dem Snoop-Filter verfolgt werden, wenn eine Schreibanforderung zu einem Fehlzugriff führt.
  8. Verfahren nach Anspruch 1, welches weiter folgendes umfaßt: Senden einer Invalidierungsnachricht an einen gegenwärtigen Besitzer der Zeile, wenn eine Schreibanforderung zu einem Treffer führt.
  9. Vorrichtung, welche folgendes umfaßt: eine Mehrzahl von Prozessoren; einen Snoop-Filter, welcher mit dem Prozessor gekoppelt ist, wobei der Snoop-Filter nur Einträge, welche einen exklusiven Zustand aufweisen, speichert; und eine Kohärenz-Engine, um die Einträge in dem Snoop-Filter zu aktualisieren.
  10. Vorrichtung nach Anspruch 9, bei der die Kohärenz-Engine folgendes umfaßt: Schaltungen zum Implementieren einer Ablaufsteuerungsregel, welche eine Leseanforderung von einer Schreibanforderung entkoppelt.
  11. Vorrichtung nach Anspruch 9, bei der die Kohärenz-Engine weiter folgendes umfaßt: eine Snoop-Filter-Aktualisierungseinheit, um einen Eintrag aus dem Snoop-Filter zu entfernen, wenn eine Leseanforderung von der Kohärenz-Engine empfangen wird.
  12. Vorrichtung nach Anspruch 11, bei der die Kohärenz-Engine weiter folgendes umfaßt: eine Goto_S-Einheit, um einen exklusiven Zustand von einer Zeile in einen geteilten Zustand zu ändern.
  13. Vorrichtung nach Anspruch 9, bei der die Kohärenz-Engine weiter folgendes umfaßt: eine Invalidierungseinheit, um eine Invalidierungsnachricht an mindestens einen Prozessor zu senden, wenn eine Schreibanforderung von der Kohärenz-Engine empfangen wird.
  14. Vorrichtung nach Anspruch 9, bei der die Mehrzahl von Prozessoren folgendes umfaßt: eine Mehrzahl von Caches, welche ein Cache-Kohärenzprotokoll unter Verwendung von MESI(modifiziert, exklusiv, geteilt oder ungültig)-Zuständen unterstützen.
  15. Vorrichtung nach Anspruch 9, welche weiter folgendes umfaßt: eine Mehrzahl von Eingang/Ausgang(E/A)-Vorrichtungen, welche mit dem Snoop-Filter gekoppelt sind, um direkte Speicherzugriff(DMA)-Anforderungen auszugeben.
  16. System, welches folgendes umfaßt: eine Mehrzahl von Prozessoren; einen Server-Speicher, bei dem ein Abschnitt des Server-Speichers von der Mehrzahl von Prozessoren gecachet wird; mindesten eine Server-Eingang/Ausgang(E/A)-Vorrichtung, um externe Anforderungen zu empfangen und auf sie zu antworten; und einen Chipsatz, welcher folgendes umfaßt: einen Snoop-Filter, um nur Einträge, die einen exklusiven Zustand aufweisen, zu speichern; und eine Kohärenz-Engine, um die Einträge in dem Snoop-Filter zu aktualisieren.
  17. System nach Anspruch 16, bei dem die Kohärenz-Engine folgendes umfaßt: Schaltungen zum Implementieren einer Ablaufsteuerungsregel, welche eine Leseanforderung von einer Schreibanforderung abkoppelt.
  18. System nach Anspruch 16, bei dem die Kohärenz-Engine weiter folgendes umfaßt: eine Snoop-Filter-Aktualisierungseinheit, um einen Eintrag von dem Snoop-Filter zu entfernen, wenn eine Leseanforderung von der Kohärenz-Engine empfangen wird.
  19. System nach Anspruch 18, bei dem die Kohärenz-Engine weiter folgendes umfaßt: eine Goto_S-Einheit, welche einen exklusiven Zustand einer Zeile in einen geteilten Zustand ändert.
  20. System nach Anspruch 16, bei dem die Kohärenz-Engine weiter folgendes umfaßt: eine Invalidierungseinheit, um eine Invalidierungsnachricht an mindestens einen Prozessor zu senden, wenn eine Schreibanforderung von der Kohärenz-Engine empfangen wird.
DE102007030116.4A 2006-06-29 2007-06-29 Snoop-Filter mit ausschließlicher Inhaberschaft Expired - Fee Related DE102007030116B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/479,327 US7581068B2 (en) 2006-06-29 2006-06-29 Exclusive ownership snoop filter
US11/479,327 2006-06-29

Publications (2)

Publication Number Publication Date
DE102007030116A1 true DE102007030116A1 (de) 2008-02-14
DE102007030116B4 DE102007030116B4 (de) 2014-11-13

Family

ID=38420925

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007030116.4A Expired - Fee Related DE102007030116B4 (de) 2006-06-29 2007-06-29 Snoop-Filter mit ausschließlicher Inhaberschaft

Country Status (6)

Country Link
US (1) US7581068B2 (de)
JP (1) JP4737691B2 (de)
CN (1) CN101097545B (de)
DE (1) DE102007030116B4 (de)
GB (1) GB2439650B (de)
TW (1) TWI336846B (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US7657710B2 (en) * 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
US7996626B2 (en) * 2007-12-13 2011-08-09 Dell Products L.P. Snoop filter optimization
US9058272B1 (en) 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US8041898B2 (en) * 2008-05-01 2011-10-18 Intel Corporation Method, system and apparatus for reducing memory traffic in a distributed memory system
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US8489822B2 (en) 2010-11-23 2013-07-16 Intel Corporation Providing a directory cache for peripheral devices
US9477600B2 (en) * 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
WO2013188460A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A virtual load store queue having a dynamic dispatch window with a distributed structure
EP2862084A4 (de) 2012-06-15 2016-11-30 Soft Machines Inc Verfahren und system zur implementierung einer wiederherstellung aus einer spekulativen weiterleitung von fehlvorhersagen/fehlern aufgrund der umordnung und optimierung von speicherlasten
CN104583975B (zh) 2012-06-15 2017-07-14 英特尔公司 无消歧乱序加载存储队列
WO2013188705A2 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A virtual load store queue having a dynamic dispatch window with a unified structure
KR101832574B1 (ko) * 2012-06-15 2018-02-26 인텔 코포레이션 모든 store들이 캐시의 모든 워드들에 대한 검사를 스누핑해야만 하는 것을 방지하기 위해 store들을 필터링하는 방법 및 시스템
KR101825585B1 (ko) 2012-06-15 2018-02-05 인텔 코포레이션 명확화 없는 비순차 load store 큐를 갖는 재정렬된 투기적 명령어 시퀀스들
CN104583956B (zh) 2012-06-15 2019-01-04 英特尔公司 用于实现加载存储重新排序和优化的指令定义
US20140095801A1 (en) * 2012-09-28 2014-04-03 Devadatta V. Bodas System and method for retaining coherent cache contents during deep power-down operations
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
US9639470B2 (en) * 2014-08-26 2017-05-02 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US9507716B2 (en) * 2014-08-26 2016-11-29 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US9727466B2 (en) * 2014-08-26 2017-08-08 Arm Limited Interconnect and method of managing a snoop filter for an interconnect
US9748788B2 (en) * 2015-09-17 2017-08-29 Qualcomm Incorporated Systems and methods for charging a battery
KR102428563B1 (ko) * 2015-09-30 2022-08-03 삼성전자주식회사 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들
US9900260B2 (en) 2015-12-10 2018-02-20 Arm Limited Efficient support for variable width data channels in an interconnect network
US10157133B2 (en) * 2015-12-10 2018-12-18 Arm Limited Snoop filter for cache coherency in a data processing system
US9990292B2 (en) * 2016-06-29 2018-06-05 Arm Limited Progressive fine to coarse grain snoop filter
US10346307B2 (en) 2016-09-28 2019-07-09 Samsung Electronics Co., Ltd. Power efficient snoop filter design for mobile platform
US10339060B2 (en) * 2016-12-30 2019-07-02 Intel Corporation Optimized caching agent with integrated directory cache
US10042766B1 (en) 2017-02-02 2018-08-07 Arm Limited Data processing apparatus with snoop request address alignment and snoop response time alignment
US10360158B2 (en) * 2017-03-27 2019-07-23 Samsung Electronics Co., Ltd. Snoop filter with stored replacement information, method for same, and system including victim exclusive cache and snoop filter shared replacement policies
US10621103B2 (en) * 2017-12-05 2020-04-14 Arm Limited Apparatus and method for handling write operations
US10915445B2 (en) 2018-09-18 2021-02-09 Nvidia Corporation Coherent caching of data for high bandwidth scaling
US11550720B2 (en) 2020-11-24 2023-01-10 Arm Limited Configurable cache coherency controller
US12475049B2 (en) 2022-03-25 2025-11-18 Intel Corporation Device, system and method for providing a high affinity snoop filter
US12050535B2 (en) 2022-10-31 2024-07-30 Google Llc Dynamic migration of point-of-coherency and point-of-serialization in NUMA coherent interconnects
CN116107771B (zh) * 2022-12-13 2024-09-20 成都海光集成电路设计有限公司 缓存状态记录方法、数据访问方法及相关装置、设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809536A (en) * 1996-12-09 1998-09-15 Intel Corporation, Inc. Method for reducing the number of coherency cycles within a directory-based cache coherency memory system uitilizing a memory state cache
US5848434A (en) * 1996-12-09 1998-12-08 Intel Corporation Method and apparatus for caching state information within a directory-based coherency memory system
US6598123B1 (en) * 2000-06-28 2003-07-22 Intel Corporation Snoop filter line replacement for reduction of back invalidates in multi-node architectures
US6810467B1 (en) * 2000-08-21 2004-10-26 Intel Corporation Method and apparatus for centralized snoop filtering
US6868481B1 (en) * 2000-10-31 2005-03-15 Hewlett-Packard Development Company, L.P. Cache coherence protocol for a multiple bus multiprocessor system
US6662277B2 (en) * 2001-07-31 2003-12-09 Hewlett-Packard Development Company, L.P. Cache system with groups of lines and with coherency for both single lines and groups of lines
US6868485B1 (en) * 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US6950906B2 (en) * 2002-12-13 2005-09-27 Hewlett-Packard Development Company, L.P. System for and method of operating a cache
US7093079B2 (en) * 2002-12-17 2006-08-15 Intel Corporation Snoop filter bypass
US7107410B2 (en) * 2003-01-07 2006-09-12 Hewlett-Packard Development Company, L.P. Exclusive status tags
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US7386685B2 (en) * 2005-03-29 2008-06-10 International Busniess Machines Corporation Method and apparatus for filtering snoop requests using multiple snoop caches

Also Published As

Publication number Publication date
JP4737691B2 (ja) 2011-08-03
GB0712625D0 (en) 2007-08-08
CN101097545B (zh) 2012-05-30
TW200815992A (en) 2008-04-01
GB2439650B (en) 2011-09-28
CN101097545A (zh) 2008-01-02
DE102007030116B4 (de) 2014-11-13
TWI336846B (en) 2011-02-01
JP2008027435A (ja) 2008-02-07
US20080005485A1 (en) 2008-01-03
GB2439650A (en) 2008-01-02
US7581068B2 (en) 2009-08-25

Similar Documents

Publication Publication Date Title
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE69616402T2 (de) Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
DE112013000889B4 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69621311T2 (de) Cachespeicherkohärenzverfahren und-system
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69706934T2 (de) Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte
DE60222402T2 (de) Verfahren und system zur spekulativen ungültigkeitserklärung von zeilen in einem cachespeicher
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE112011103433B4 (de) Verfahren, System und Programm zum Steuern von Cache-Kohärenz
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69736544T2 (de) Verfahren zur Verminderung der Anzahl von Kohärenz-Zyklen in einem verzeichnisbasierten Cachekohärenz-Speichersystem unter Verwendung eines Speicherzustands-Cachespeichers
DE112019000629B4 (de) Koordination von cacheoperationen
DE68902193T2 (de) Datenspeicheranordnung.
DE69029173T2 (de) Mikroprozessor
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE202017104841U1 (de) Hybriddatenspeichermanagement
DE112013000891T5 (de) Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten
DE112009000836T5 (de) Adaptive Cache-Organisation für Chip-Multiprozessoren
DE69616226T2 (de) Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten Kohärenzprotokollen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee