Mögliche Abläufe für Schreib- und Lesevorgänge bei einer CPU mit vier Kernen

Das gebräuchlichste Protokoll, das verwendet wird, um die Kohärenz zwischen Caches zu erzwingen, ist das MESI-Protokoll. Jeder Prozessor hat seine eigene Variante dieses Designs und die jeweiligen Varianten bringen ihre eigenen Vorteile, Kompromisse und ihr eigenes Potenzial für einzigartige Bugs mit sich.

Stellenmarkt
  1. Teamleader IT Network (m/w / divers)
    Eurowings Aviation GmbH, Dortmund
  2. IT-Systemadministrator (m/w/d)
    Sedus Stoll AG, Dogern
Detailsuche

Alle Varianten haben jedoch eine Gemeinsamkeit: Jede Datenzeile in einem Cache ist mit einem der folgenden Zustände versehen.

1. Modified (M)

  • Diese Daten wurden geändert und unterscheiden sich vom Hauptspeicher.
  • Diese Daten sind die Quelle der Wahrheit und alle anderen Daten sind veraltet.

2. Exklusive (E)

  • Diese Daten wurden nicht geändert und sind mit den Daten im Hauptspeicher synchronisiert.
  • Kein anderer Zwilling des Caches hat diese Daten.

Golem Akademie
  1. Cloud Transformation Roadmap: Strategien, Roadmap, Governance: virtueller Zwei-Tage-Workshop
    7.–8. März 2022, Virtuell
  2. C++ Programmierung Basics: virtueller Fünf-Tage-Workshop
    28. Februar–4. März 2022, virtuell
Weitere IT-Trainings

3. Shared (S)

  • Diese Daten wurden nicht geändert und sind mit den Daten an anderer Stelle synchronisiert.
  • Es gibt andere Zwillinge des Caches, die (möglicherweise) ebenfalls dieselben Daten haben.

4. Invalid (I)

  • Diese Daten sind veraltet und sollten niemals verwendet werden.

Die Cache-Kohärenz kann erreicht werden, wenn wir die oben genannten Zustände erzwingen und aktualisieren. Hier einige Beispiele für eine CPU mit 4 Kernen, von denen jeder einen eigenen L1-Cache hat und die zudem alle auf einen gemeinsamen (shared) L2-Cache zugreifen.

Schreiben

Angenommen, ein Thread auf Core 1 möchte auf die Adresse 0xabcd schreiben. Mögliche Abläufe sind:

Bei einem Cache-Hit

1. L1-1 hat die Daten im E- oder M-Zustand.
2. L1-1 führt den Schreibvorgang durch. Alles erledigt.

  • Kein anderer Cache hat die Daten; es ist sicher, sofort in ihn zu schreiben.
  • Der Zustand der Cache-Zeile wird auf M gesetzt, da sie nun modifiziert ist.

Bei einem lokalen Cache-Miss und einem Hit beim Zwilling des Caches

1. L1-1 hat die Daten im Zustand S

  • Das impliziert, dass ein Zwilling des Caches die Daten auch haben könnte.
  • Derselbe Ablauf wird auch verwendet, wenn L1-1 die Daten gar nicht hat.

2. L1-1 sendet einen Request-for-Ownership an den L2-Cache.
3. L2 sieht in seinem Verzeichnis nach und stellt fest, dass L1-2 die Daten aktuell im Zustand S hat.
4. L2 sendet ein Snoop-Invalidate an L1-2.
5. L1-2 markiert seine Daten als Invalid (I).
6. L1-2 sendet ein ACK an L2.
7. L2 sendet zusammen mit den neuesten Daten ein ACK an L1-1.
1. L2 merkt sich, dass L1-1 die Daten für diese Adresse im Zustand E hat.
8. L1-1 hat nun die neuesten Daten sowie die Erlaubnis, in den E-Zustand zu wechseln.
9. L1-1 führt den Schreibvorgang durch und ändert den Status dieser Daten auf M.

Eine große Auswahl an Prozessoren bei Alternate

Lesen

Nehmen wir nun an, ein Thread auf Core 2 möchte aus der Adresse 0xabcd lesen. Das sind mögliche Abläufe:

Bei einem Cache-Hit

1. L1-2 hat die Daten im Zustand S, E oder M.
2. L1-2 liest die Daten und gibt sie an den Thread zurück. Alles erledigt.

Bei einem lokalen Cache-Miss und einem Eltern-Cache-Miss

1. L1-2 hat die Daten im Zustand I, das heißt, er darf sie nicht verwenden.
2. L1-2 sendet einen Request-for-Share an den L2-Cache.
3. L2 hat die Daten auch nicht. Er liest die Daten aus dem Speicher.
4. L2 holt die Daten aus dem Speicher zurück.
5. L2 sendet die Daten an L1-2, zusammen mit der Erlaubnis, in den S-Zustand zu wechseln.

  • L2 merkt sich, dass L1-2 die Daten im S-Zustand hat.

6. L1-2 holt die Daten, speichert sie in seinem Cache und sendet sie an den Thread.

Bei einem lokalen Cache-Miss und einem Eltern-Cache-Hit

1. L1-2 hat die Daten im Zustand I.
2. L1-2 sendet einen Request-for-S an den L2-Cache.
3. L2 sieht, dass L1-1 die Daten im Zustand S hat.
4. L2 sendet ein ACK an L1-2, zusammen mit den Daten und der Erlaubnis, in den S-Zustand zu wechseln.
5. L1-2 holt die Daten, speichert sie in seinem Cache und sendet sie an den Thread.

Bei einem lokalen Cache-Miss und einem Hit beim Zwilling des Caches

1. L1-2 hat die Daten im Zustand I.
2. L1-2 sendet einen Request-for-S an den L2-Cache.
3. L2 sieht, dass L1-1 die Daten im Zustand E (oder M) hat.
4. L2 sendet einen Snoop-Share an L1-1.
5. L1-1 ändert seinen Zustand zu S.
6. L1-1 sendet ein ACK an L2, gegebenenfalls zusammen mit den geänderten Daten.
7. L2 sendet ein ACK an L1-2, zusammen mit den Daten und der Erlaubnis, in den S-Zustand zu wechseln.
8. L1-2 holt die Daten, speichert sie in seinem Cache und sendet sie an den Thread.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Hardware: Gängige Mythen über CPU-CachesWarum Synchronisation trotzdem wichtig ist 
  1.  
  2. 1
  3. 2
  4. 3
  5.  
Anzeige - Ein Vergleichsservice der Golem Media GmbH

CPU Top 10 nach dem Leistungsindex 2022 - von PCGH getestet

ProduktnameCore i7-12700KCore i9-12900KCore i5-12600KCore i7-11700KCore i9-11900KRyzen 9 5900XCore i5-11600KRyzen 9 5950XCore i9-10900KRyzen 7 5800XRyzen 5 5600X
HerstellerIntelIntelIntelIntelIntelAMDIntelAMDIntelAMDAMD
Weitere Daten anzeigen ...
Leistung96,6%/75,5%100%/84,4%88,5%/62,1%81%/61,6%86,6%/66,4%86,9%/83,3%74,7%/51,1%90,6 %/100 %78,9%/65,3%82,4%/64,0%79,6%/54,4%
Leistungsaufnahme Ø288 Watt319 Watt196 Watt273 Watt398 Watt267 Watt222 Watt317 Watt270 Watt194 Watt168 Watt
Kerne12c/20t16c/24t10c/16t8c/16t8c/16t12c/24t6c/12t16c/32t10c/20t8c/16t6c/12t
GrafikeinheitJaJaJaJaJaJaJaJaJaJaJa
Basis-Takt3,6 GHz3,2 GHz3,7 GHz3,6 GHz3,5 GHz3,7 GHz3,9 GHz3,4 GHz3,7 GHz3,8 GHz3,7 GHz
Prozess10 nm10 nm10 nm14 nm14 nm7 nm14 nm7 nm14 nm7 nm7 nm
RAM2× DDR5-4800 (G2) / DDR4-3200 (G1)2× DDR5-4800 (G2) / DDR4-3200 (G1)2× DDR5-4800 (G2) / DDR4-3200 (G1)DDR4-2933 (G1) / DDR4-3200 (G2)DDR4-3200DDR4-3200DDR4-2933 (G1) / DDR4-3200 (G2)DDR4-3200DDR4-2933DDR4-3200DDR4-3200
Sockel17001700170012001200AM41200AM41200AM4AM4
Features
  • Bestes Gesamtpaket
  • Effizienter als 12900K
  • Höchste Leistung
  • Perfekt für Spieler
  • Sehr gutes Pires-Leistungs-Verhältnis
  • Gute Spieleleistung
  • Immer noch sehr schnell
  • Gute Leistung in Spielen & Anwendungen
  • Gute Leistung in Spielen
  • Leistungs-Monster
  • Allrounder
  • Sehr flott in Spielen
  • Sehr effizient
Angebote


Aktuell auf der Startseite von Golem.de
Gesichtsbilder
Polizei-Behörden erhalten europaweit mehr Datenzugriff

Über 60 Millionen biometrische Fotos sollen Polizei-Behörden im Schengen-Raum zugänglich gemacht werden. Auch ein zentraler Datenspeicher ist geplant - und mehr.
Ein Bericht von Matthias Monroy

Gesichtsbilder: Polizei-Behörden erhalten europaweit mehr Datenzugriff
Artikel
  1. Rauchgranate: Tesla zeigt Versuch mit Biowaffen-Abwehrmodus des Model Y
    Rauchgranate
    Tesla zeigt Versuch mit Biowaffen-Abwehrmodus des Model Y

    Mit einer Rauchgranate hat Tesla den Effekt des Biowaffen-Abwehrmodus im Model Y auf die Insassen veranschaulicht.

  2. Coronapandemie: Baden-Württemberg und Hessen steigen aus Luca aus
    Coronapandemie
    Baden-Württemberg und Hessen steigen aus Luca aus

    Die Verträge mit den Betreibern der Luca-App laufen Ende März aus. Immer mehr Bundesländer wollen diese nicht verlängern.

  3. Raumfahrt: SpaceX-Rakete stürzt voraussichtlich im März auf den Mond
    Raumfahrt
    SpaceX-Rakete stürzt voraussichtlich im März auf den Mond

    Ob sich Elon Musk so die erste Ankunft einer SpaceX-Rakete auf dem Mond vorgestellt hat?

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • RX 6900 XTU 16GB 1.449€ • Intel i7 3,6Ghz 399€ • Alternate: u.a. Acer Gaming-Monitor 119,90€ • Logitech Gaming-Headset 75€ • iRobot Saugroboter ab 289,99€ • 1TB SSD PCIe 4.0 128,07€ • Razer Gaming-Tastatur 155€ • GOG New Year Sale: bis zu 90% Rabatt • LG OLED 65 Zoll 1.599€ [Werbung]
    •  /