Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle

Ähnliche Dokumente
Einfaches MSI-Writeback-Inval-Protokoll

Variante des MSI-Protokolls

Liefert das Protokoll Kohärenz?

Weitere Verbesserungen

ccnuma Unterstützung Zustandsübergangsdiagramm MESIF

Liefert das Protokoll Kohärenz?

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg

GLEICHES BEISPIEL, write-back STRATEGIE

Rechnerarchitektur SS 2012

Rechnerarchitektur SS 2012

1 Organisationsaspekte RISC- und CISC-Prozessoren Ausnutzen von Cache-Effekten

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

RAM. Konsistenzprobleme entstehen => CPU - durch Verzögerung in Warteschlange, Umfangreiche Pufferung in den PCI Brücken. lesen. EOP-Signal.

Cache II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Wie groß ist die Page Table?

Gregor Michalicek, Marcus Schüler. Multiprozessoren

11. Caches Pufferspeicher

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Grundlagen der Rechnerarchitektur

5.1 Verteilung von Aktualisierungshinweisen

Transiente Zustände. Nicht-Atomarität: Transiente Zustände

(Allgemeine) Gesetz von Amdahl

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

Grob-Struktur des Prozessor-Speichersystems

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Directory-Ansatz bietet

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Grundlagen der Rechnerarchitektur. Speicher

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

Writebacks. Nicht-Atomare Zustandsübergänge

Parallelrechner: Klassifikation. Parallelrechner: Motivation. Parallelrechner: Literatur. Parallelrechner: PC-Technologie SMP-Multiprozessorsysteme 69

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Inhalt Teil 10 (Caches) aus 6. Speicherorganisation

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Mehrprozessorarchitekturen

Mar&n Hoffmann HARDWAREUNTERSTÜTZUNG FÜR NICHT BLOCKIERENDE SYNCHRONISATION

Speicherhierarchie, Caches, Consistency Models

Cache Blöcke und Offsets

Virtueller Speicher und Memory Management

Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause

Speicherarchitektur (23) Suchen einer Seite:

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

2 Rechnerarchitekturen

, 2014W Übungsgruppen: Mo., Mi.,

Universität Karlsruhe (TH)

Linux Paging, Caching und Swapping

Sichere Zukunftsvorhersagen durch Modellierung und Approximation

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

Hardware und Gerätetreiber

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

HORUS. Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS Martin Scherer

Klausur Mikroprozessortechnik

Rechnerarchitektur SS 2012

Vorlesung "Systemsoftware II" Wintersemester 2002/03

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. 14. Transaktionen

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Grundlagen der Rechnerarchitektur. Speicher

Problem: Write-Atomarität

Memory Models Frederik Zipp

Systeme 1: Architektur

Adressierung von Speichern und Eingabe- Ausgabegeräten

Tutorium Rechnerorganisation

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Brewer s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Sigact News, 33(2), June 2002

Vorstellung der SUN Rock-Architektur

Algorithmen II Vorlesung am

Klausur zur Vorlesung

Verteilte Systeme. Diffusionsalgorithmen. Secure Identity Research Group

Sommersemester Analyse II: Verhalten (Zustandsautomaten)

Algorithmen II Vorlesung am

Datenpfad einer einfachen MIPS CPU

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Mikroprozessortechnik Grundlagen 1

Datenpfad einer einfachen MIPS CPU

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.

Architektur von Parallelrechnern 50

Rechnernetze und Organisation

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Physische Datenorganisation

Eigenschaften von TAs: ACID-Prinzip

Datenpfad einer einfachen MIPS CPU

Lösung von Übungsblatt 2

Einführung in die Programmiersprache C

Rechnerarchitektur SS 2013

Example Ptolemy Model of Comp.: Synchronous Reactive

Transkript:

Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Architecture of Parallel Computer Systems WS15/16 J.Simon 1 SC mit Write-Back Caches Beweisidee: Behandlung von Reads wie beim Write-Through Read-Miss ist in Bus-Ordnung serialisiert Read-Hit liest den zuletzt geschriebenen Wert Write-Miss eines Prozessors Cache muss gesamten Block aus dem Speicher lesen Bus-Transaktion erforderlich => Serialisierung in Bus- Ordnung Write-Hit eines Prozessors Verändert Wert im Cache Falls notwendig, führe Bus-Transaktion aus Kritische Aktion Unterschiedliche Ansätze, abhängig vom konkreten Protokoll Architecture of Parallel Computer Systems WS15/16 J.Simon 2 1

Einfaches Writeback-Invalidierungsprotokoll Write-Back Cache typischerweise Write-allocate bei einem Write-Miss Zustände Invalid (I): Shared (S): Kopien in einem oder mehreren Caches Dirty or Modified (M): in genau einem Cache valider Wert Prozessor-Transaktionen: PrRd (Read) PrWr (Write) Bus-Transaktionen BusRd: fragt nach Kopie ohne Intention zur Modifikation BusRdX: fragt nach Kopie mit Intention zur Modifikation BusWB: Write-Back (Block verdrängt), Update des Speichers Aktionen Falls notwendig: Zustand ändern, Bus-Transaktion ausführen, Daten auf Bus legen Architecture of Parallel Computer Systems WS15/16 J.Simon 3 MSI Zustandsübergangsdiagramm PrRd / -- -- : Daten werden auf den Bus gelegt und daraufhin in den Hauptspeicher geschrieben BusRd, BusRdX: Speichersystem antwortet mit Daten falls kein BusRdX M BusRd / BusWB wird bei jeder Verdrängung einer Cache- Line angestoßen "A / B Ereignis A / Transaktion oder Aktion B BusRdX PrRd / BusRd S PrRd / -- BusRd / -- I -- Architecture of Parallel Computer Systems WS15/16 J.Simon 4 2

Snoop H/W tags P 1 u:5/ 7 u:7 Snoop H/W tags Beispiel: MSI.. =u.. =u P 2.. =u P 3.. =u u=7 5 1 3 Snoop H/W tags u:5/ 7 Bus u:5/ 7 I/O-Geräte Speicher 4 2 3 (1) P 1 liest u vom Hauptspeicher (2) P 3 liest u vom Hauptspeicher (3) P 3 beschreibt u mit 7 (Cache) (4) P 1 liest u aus P 3 Cache (5) P 2 liest u aus Hauptspeicher Aktion Pr-Aktion Bus Aktion Quelle Zustand in P 1 Zustand in P 2 Zustand in P 3 1 PrRd (1) BusRd Memory S - - 2 PrRd (3) BusRd Memory S - S 3 PrWr (3) BusRdX Memory I - M 4a PrRd (1) BusRd S - S 4b Cache P 3 5 PrRd (2) BusRd Memory S S S Architecture of Parallel Computer Systems WS15/16 J.Simon 5 MSI Zustandsübergangsdiagramm (2) PrRd / -- -- BusUpgrd: Speichersystem antwortet nicht mit dem Block M BusUpgrd BusRdX BusRd / S BusRdX PrRd / BusRd PrRd / -- BusRd / -- -- BusUpgrd / -- I Architecture of Parallel Computer Systems WS15/16 J.Simon 6 3

Beispiel: MSI mit BusUpgrd P.. =u.. =u 1 P 2.. =u P 3.. =u u=7 u:5/ 7 u:7 5 1 3 4 u:5/ 7 u:5/ 7 I/O-Geräte Speicher 2 3 (1) P 1 liest u vom Hauptspeicher (2) P 3 liest u vom Hauptspeicher (3) P 3 beschreibt u mit 7 (Cache) (4) P 1 liest u aus P 3 Cache (5) P 2 liest u aus Hauptspeicher Aktion Pr-Aktion Bus Aktion Quelle Zustand in P 1 Zustand in P 2 Zustand in P 3 1 PrRd (1) BusRd Memory S - - 2 PrRd (3) BusRd Memory S - S 3 PrWr (3) BusUpgrd - I - M 4a PrRd (1) BusRd S - S 4b Cache P 3 5 PrRd (2) BusRd Memory S S S Architecture of Parallel Computer Systems WS15/16 J.Simon 7 Beweis: Kohärenz + Konsistenz Für das MSI-Protokoll werden betrachtet: Notwendige Bedingungen der Speicherkohärenz Write-Propagierung Write-Serialisierung Hinreichende Bedingungen der sequenziellen Konsistenz Programmordnung Write-Atomarität Write-Completion Architecture of Parallel Computer Systems WS15/16 J.Simon 8 4

Erfüllung der Kohärenz (1) Write-Propagierung Write mit BusRdX oder Bus-Upgrd ist für die anderen Caches sichtbar (Invalidierung, danach Zugriff nur über ein BusRd) Write ohne Bus-Transaktion musste zuvor ein Write mit Bus- Transaktion erfordert haben, damit wird auch das letzte Write implizit erkannt Write-Serialisierung? alle Writes ( Bus-Upgrd) die auf dem Bus erscheinenden sind in Bus-Ordnung Schreiben in den Cache geschieht vor anderen Transaktionen des Caches, deshalb ebenso geordnet Durch Snooping führen alle betroffenen Caches die gleichen Aktionen aus Aber was ist mit Writes die nicht auf dem Bus sichtbar sind? Architecture of Parallel Computer Systems WS15/16 J.Simon 9 Erfüllung der Kohärenz (2) Annahme: Write nicht sichtbar auf dem Bus zuvor durchgeführte Write muss vom gleichen Prozessor (P) stammen vorheriges Write vom anderen Prozessor, dann wäre eine Bus-Transaktion notwendig geworden die nach der relevanten letzten Bus-Transaktionen liegende Sequenz an Writes muss vom Proz. P stammen ergibt sich aus der vorherigen Argumentation die letzte relevante Bus-Transaktion wurde durch ein Write von Proz. P verursacht diese Bus-Transaktion erschien in Bus-Ordnung jedes Read von P sieht die Writes in der richtigen Ordnung Reads anderer Prozessoren müssen entweder vor oder erst nach der Sequenz liegen ansonsten wäre eine zusätzliche Bus-Transaktion passiert zukünftige Reads erfordern eine Transaktion in Bus-Ordnung Architecture of Parallel Computer Systems WS15/16 J.Simon 10 5

Erfüllung der sequentiellen Konsistenz Definition fordert konsistente globale Verschachtelung: Bus legt totale Ordnung der Bus-Transaktionen fest Durch Snooping auch in allen Caches realisiert Zwischen zwei aufeinander folgenden Bus-Transaktionen führen Prozessoren lokale Reads/Writes in Programmordnung aus werden von P gesehene Writes folgendermaßen serialisiert: durch eigene Programmordnung bei einem Write von P oder durch eine diesbezüglich in Bus-Ordnung vorhergegangen Speicheroperation (mit für alle sichtbaren Bus-Transaktion) Damit führt jedes verschachteln von Operationen der Prozessoren zu einer konsistenten totalen Ordnung innerhalb und zwischen diesen Abschnitten Architecture of Parallel Computer Systems WS15/16 J.Simon 11 MSI: Sequentielle Konsistenz Beweis durch Erfüllung der hinreichenden Bedingungen Write-Completion a) Write wird mit Bus-Transaktion abgeschlossen (Prozessoren/Cache-Controller warten auf Ende der Bus-Trans.) b) Write wirkt nur auf eigenen Cache (Proz. wartet auf Cache) Write-Atomarität Write erzeugt eine Bus-Transaktion die bis zum Abschluss der Transaktion auf dem Bus sichtbar ist, erst danach ist eine weitere Bus-Transaktion möglich Ein Write ohne Bus-Transaktion ist nur für den ausführenden Prozessor relevant sobald ein Read einen Wert eines Writes zurück gibt, wurde das Write bereits für alle anderen Prozessoren sichtbar Architecture of Parallel Computer Systems WS15/16 J.Simon 12 6

Variante des MSI-Protokolls Im Zustand M wird BusRd gesehen. Welche Transition ist durchzuführen? hängt vom Zugriffsmuster der Anwendung ab: S erwartet eher ein nachfolgendes Read und nicht unbedingt ein Write eines anderen Prozessors gut wenn hauptsächlich Daten nur gelesen werden aber was ist mit wandernden Daten? Read und Write von P 1, dann Read und Write von P 2 ) dann Read und Write von P x, ggf. besser in Zustand I wechseln und Cache-Line wird frühzeitig frei Maschine Synapse wechselt von Zustand M in Zustand I Maschine Sequent Symmetry und MIT Alewife benutzen adaptive Protokolle Wahl des Protokolls hat durchaus Einfluss auf die Performance des Speichersystems Architecture of Parallel Computer Systems WS15/16 J.Simon 13 Invalidierungsprotokoll mit 4 Zuständen Problem mit MSI Read & Modify von Daten erfordert zwei Bus-Transaktionen BusRd (I S) gefolgt von BusRdX oder BusUpgr (S M) Zwei Bus-Transaktionen notwendig, auch wenn der Block nicht geteilt wird Lösung: Erweiterung um Exclusive Zustand lokales Write ohne Transaktion Benötigte Zustände Invalid und Modified (wie bisher) Exclusive bzw. Exclusive-Clean (nur in diesem Cache, nicht modifiziert) Shared (zwei oder mehrere Caches können Kopien haben) Architecture of Parallel Computer Systems WS15/16 J.Simon 14 7

MESI Invalidierungsprotokoll Zustände Modified, Exclusive, Shared, Invalid Zusätzliches Signal auf dem Bus Shared-Line gesetzt durch Cache-Controller Controller setzt Signal als Reaktion auf BusRd, falls der Cache den angefragten Block als Valid vorliegen hat Neuer Zustandsübergang I E PrRd mit BusRd und kein anderer Cache hat eine Kopie bedeutet, shared Signal ist nicht gesetzt Zustandsübergang I S PrRd mit BusRd und Shared-Signal auf dem Bus ist gesetzt MESI Varianten eingesetzt in Intel x86-32, PowerPC, MIPS, Architecture of Parallel Computer Systems WS15/16 J.Simon 15 Zustandsübergangsdiagramm: MESI BusRd(S): Shared-Line wurde während BusRd-Transaktion gesetzt BusRd( S): Shared-Line wurde nicht gesetzt S-Signal setzten, falls BusRd / BusRdX auf Block im M,E oder S Zustand gesehen wird BusRd / BusRdX ohne, dann antwortet Hauptspeicher mit Daten, dann Block auch im Speicher ablegen, damit BusWB nur im Zustand M notwendig BusRdX PrRd / BusRd( S) PrWr/ -- M E PrRd / -- -- BusRd / -- PrRd/ -- S -- PrRd / -- BusRd / -- BusRd / -- Ohne Cache-to-Cache Sharing BusRdX PrRd / BusRd(S) I Architecture of Parallel Computer Systems WS15/16 J.Simon 16 8

Snoop H/W tags 1 P 1 2..=u u=7 P 2 u:5 / / 7 u:9 u:5/ 7/ 9 Snoop H/W Speicher tags Beispiel:MESI 5..=u Snoop H/W tags 3 P 3 u:7/ 9 I/O-Geräte 4..=u u=9 Shared- Line Bus (1) P 1 liest u Cache Miss (2) P 1 schreibt u (3) P 3 liest u Cache Miss (4) P 3 schreibt u (5) P 2 liest u Cache Miss Aktion Pr-Aktion Bus-Aktion Signal Quelle Zustand in P 1 Zustand in P 2 Zustand in P 3 1a PrRd (1) BusRd? - - - 1b - Memory E - - 2 PrWr (1) - - - M - - 3a PrRd (3) BusRd? 3b S Cache P 1 S - S 4 PrWr (3) BusRdX - Memory I - M 5a PrRd (2) BusRd? 5b S Cache P 3 I S S Architecture of Parallel Computer Systems WS15/16 J.Simon 17 MESI Protokoll-Varianten Falls nicht im Modified Zustand, wer liefert beim Miss die Daten: Speicher oder Cache? Original Illionois MESI (1984): Cache, der gegenüber Speicher als schneller angenommen wird Cache-to-Cache Sharing für manche Systeme ist diese Annahme nicht unbedingt gültig Stören anderer Caches ist ggf. teurer als ein Speicherzugriff Cache-to-Cache Sharing ist komplexer woher weiß Speicher, dass Daten ausgeliefert werden müssen muss Speicher erst auf Caches warten? Time-outs? Auswahlverfahren, wenn mehrere Caches validen Wert haben aber gut in Cache-kohärenten System mit verteiltem Speicher kann günstiger sein, wenn Daten im nahen Cache und nicht im entfernten Speicher liegen besonders dann, wenn SMP-Knoten eingesetzt werden (Stanford DASH) Architecture of Parallel Computer Systems WS15/16 J.Simon 18 9

Zustandsübergangsdiagramm: Extended MESI BusUpgrd (S M): ohne Datentransfer (S S oder S I): ggf. mehr als ein Cache versucht Daten auf den Bus zu schreiben BusRd / BusRdX, Hauptspeicher antwortet nur mit Daten, falls kein S-Signal gesetzt im M-Zustand, dann Block auch im Speicher ablegen Write-Back: BusWB nur im M-Zustand notwendig Mit Cache-to-Cache Sharing BusRdX PrRd/ BusRd( S) BusUpgrd PrWr/ -- PrRd/ BusRd(S) M E PrRd/ -- S PrRd / -- BusRd / PrRd/ -- PrWr/ -- BusRd / BusRd/ BusUpgrd/-- BusRdX/ I Architecture of Parallel Computer Systems WS15/16 J.Simon 19 P 1 Beispiel:MESI mit C2C-Sharing P 2 u:5 / / 7 u:9 1 2..=u u=7 5..=u 3 P 3 u:7/ 9..=u 4 u=9 (1) P 1 liest u Cache Miss (2) P 1 schreibt u (3) P 3 liest u Cache Miss (4) P 3 schreibt u u:5 / 7/ 9 Speicher I/O-Geräte (5) P 2 liest u Cache Miss Aktion Pr-Aktion Bus-Aktion Signal Quelle Zustand in P 1 Zustand in P 2 Zustand in P 3 1a PrRd (1) BusRd? - - - 1b - Memory E - - 2 PrWr (1) - - - M - - 3a PrRd (3) BusRd? 3b S Cache P 1 S - S 4 PrWr (3) BusUpgrd - - I - M 5a PrRd (2) BusRd? 5b S Cache P 3 I S S Architecture of Parallel Computer Systems WS15/16 J.Simon 20 10

MESI State Table Cache Controller (1) State Event Action Set Bus Signal Invalid* Read miss (S-Sig is set) Read miss (S-Sig is not set) Write miss Broadcast Rd Get cache line Broadcast Rd Get cache line Broadcast RdX Get and modify cache line - S - E - M Shared Read hit - - S Write hit Broadcast Upgrade - M Snoop hit on Rd Reply with cache line S-Sig S ( ) Snoop hit on RdX Reply with cache line S-Sig I ( ) Snoop hit on Upgrade Invalidate cache line S-Sig I * Implicit Invalid state with replacement of a cache line Next State Architecture of Parallel Computer Systems WS15/16 J.Simon 21 MESI State Table Cache Controller (2) State Event Action Set Bus Signal Exclusive Read hit - - E Write hit - - M Snoop hit on read - S-Sig S Snoop hit on RdX Invalidate cache line - I Modified Read hit - - M Write hit - - M Snoop hit on Rd cache line S-Sig S Snoop hit on RdX cache line - I LRU Replacement Write back - - Next State Architecture of Parallel Computer Systems WS15/16 J.Simon 22 11

MESI Memory Controller Actions Memory Controller: Bus Command Bus Signal Action Rd - Reply with block Rd S-Sig - RdX - Reply with block RdX S-Sig - Upgrade - Write back Store block Store block - Architecture of Parallel Computer Systems WS15/16 J.Simon 23 12