Inhalt Teil 10 (Caches) aus 6. Speicherorganisation

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

Grob-Struktur des Prozessor-Speichersystems

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

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

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

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

Rechnerarchitektur SS 2012

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.

Rechnerarchitektur SS 2012

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

Einfaches MSI-Writeback-Inval-Protokoll

Tutorium Rechnerorganisation

Weitere Verbesserungen

Grundlagen der Rechnerarchitektur

Wie groß ist die Page Table?

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

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

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

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Cache Blöcke und Offsets

ccnuma Unterstützung Zustandsübergangsdiagramm MESIF

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

Gregor Michalicek, Marcus Schüler. Multiprozessoren

Tutorium Rechnerorganisation

Virtueller Speicher und Memory Management

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

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins

Technische Informatik 1 - HS 2017

6 Exkurs: Assoziativspeicher (2) 6 Exkurs: Assoziativspeicher. 7.1 Speicherhierarchie. 7 Caches

Memory. Jian-Jia Chen (Slides are based on Peter Marwedel) Informatik 12 TU Dortmund Germany 2014 年 11 月 12 日. technische universität dortmund

GLEICHES BEISPIEL, write-back STRATEGIE

Rechnerorganisation. 1. Juni 201 KC Posch

Einführung in die technische Informatik

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

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Das Konzept der Speicherhierarchie

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Raytracing auf Desktop PCs Optimizing Cache Usage (Intel Corp.)

Ein- Ausgabeeinheiten

RO-Tutorien 15 und 16

Datenpfad einer einfachen MIPS CPU

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

Linux Paging, Caching und Swapping

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Datenpfad einer einfachen MIPS CPU

Speicherorganisation

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Mikroprozessortechnik Grundlagen 1

Rechnernetze und Organisation

Technische Informatik 2 Speichersysteme, Teil 3

Datenpfad einer einfachen MIPS CPU

11. Die PC-Schnittstelle

Modul InfB-RS: Rechnerstrukturen

Zwei Möglichkeiten die TLB zu aktualisieren

Speicher Typen. TI-Übung 5. Speicher SRAM. Speicher DRAM. SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Speicher, Caches

Modul InfB-RS: Rechnerstrukturen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Johann Wolfgang Goethe-Universität

2. Ansatzpunkt: Reduktion der Penalty Early Restart und critical word first

technische universität dortmund fakultät für informatik informatik 12 Speicherhierarchie Peter Marwedel Informatik /05/18

Name : Klasse : Punkte : Note :

, WS2012 Übungsgruppen: Mo., Do.,

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

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

Mehrprozessorarchitekturen

Arithmetische und Logische Einheit (ALU)

Grundlagen der Rechnerarchitektur

Rechnerstrukturen Winter SPEICHER UND CACHE. (c) Peter Sturm, University of Trier 1

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Rechnergrundlagen SS Vorlesung

Wozu dient ein Logikanalysator?

Systeme 1: Architektur

Technische Informatik 1

Abstrakte Interpretation (AbsInt)

Klausur zur Mikroprozessortechnik

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 6 und Präsenzaufgaben Übung 7

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

DALI 4Net. Datenblatt. Central Control Device. Zentrale Steuereinheit. für 4 DALI Linien. Art

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Rechner Architektur. Martin Gülck

Aufgabe 4 : Virtueller Speicher

Neues vom STRIP Forth-Prozessor

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Betriebssystemtechnik

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

Beispielhafte Prüfungsaufgaben zur Vorlesung Technische Informatik I Gestellt im Frühjahr 2012

Ein- und Ausgabegeräte

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Grundlagen der Rechnerarchitektur

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

SMP Übung 2 1. Aufgabe

CPU-Caches. Christian Duße. Seminar Effiziente Programmierung in C

Use of the LPM (Load Program Memory)

Teil VIII Von Neumann Rechner 1

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Fachbereich Medienproduktion

High-level software transformations

Transkript:

Inhalt Teil 10 (Caches) aus 6. Speicherorganisation 1 6.2 Caches 6.2.1 Systemstrukturen 6.2.2 Laden des Cache 6.2.3 Cache-Strukturen Vollassoziativer Cache Direkt zuordnender Cache N-fach assoziativer Cache 6.2.4 Aktualisierungsstrategien und Datenkohärenz Write-Through Copy-Back Datenkonsistenz und Datenkohärenz Cache-Kohärenzprotokoll MESI

The Memory Wall 2 100,000 10,000 1,000 100 10 Processor Mem ory Processor-Memory Performance Gap Growing 1 1980 1985 1990 1995 2000 2005 2010 Year http://www.cs.virginia.edu/~mc2zk/cs451/191202.pdf

Caches 3 Caches exploit two types of predictability: Exploit temporal locality by remembering the contents of recently accessed locations. Exploit spatial locality by fetching blocks of data around recently accessed locations.

6.2 Caches 6.2.1 Systemstrukturen 4 Look-Aside-Cache Cache und Hauptspeicher werden parallel über den Bus angesprochen Look-Through-Cache (Inline) Bus wird erst nach einem Miss belastet, wichtig für SMP-Systeme Schneller separater Backside-Bus auch mit Look-Through Zugriffsreihenfolge Bild 6-18. Caches als Pufferspeicher zwischen Mikroprozessor und Hauptspeicher. a Look-aside- Cache, b Look-through-Cache (hier z. B. als L2-Cache), c Look-through-Cache am Backside-Bus (grundsätzlich als L2-Cache). Anordnung entweder als On-chip-Cache (Schnittstelle 1) oder als Off-chip-Cache (Schnittstelle 2). Der Hauptspeicher ist ggf. mittels einer Bridge oder eines Hub mit dem Prozessor- bzw. Frontside-Bus verbunden

Speicherhierarchie 5 on chip Bild 6-20. Speicherhierarchie mit den Übertragungsmodi Einzel-, Block- und Seitenzugriff für die verschiedenen Übertragungswege (der Befehls-Cache ist hier nicht gezeigt)

Pentium 4 Cache-Struktur 6 Pentium 4 Cache-Struktur Level Kapazität assoziativ Cacheline Verfahren L1 8 KByte 4fach 64 Byte write through Trace 12K µops -- -- -- L2 256-1024 KByte 8fach 128 Byte write back http://www.elektronik-kompendium.de/sites/com/0511201.htm

Caches in Multicore-Prozessoren 7 Gemeinsame Caches http://www.cs.virginia.edu/~mc2zk/cs451/191202.pdf

6.2.2 Laden des Cache 8 (1.) Währender der Initialiserungsphase des Mikroprozessorsystems ist der Cache abgeschaltet. Durch das Laden von Daten in eine Cache-Line wird das zugehörige Valid-Bit auf valid gesetzt. Das Laden eine Cache- Line erfolgt blockweise. (cache fill) (2.) Durch den Cache-Clear-Befehl werden die Valid-Bits der Cache-Zeilen auf invalid gesetzt. (Cache leer) Die Blockgrenzen im Speicher sind meist Vielfache der Übertragungsblocklänge. (block alignment, ausgerichtet) (3.) Einschalten des Cache per Software Der zu übertragende Block kann mit einer beliebigen Adresse innerhalb des Blocks zuerst adressiert werden, die Folgeadressen ergeben sich durch wraparound.

Cache Algorithm (Read) 9 Look at Processor Address, search cache tags to find match. Then either HIT - Found in Cache Return copy of data from cache MISS - Not in cache Read block of data from Main Memory Hit Rate = fraction of accesses found in cache Miss Rate = 1 Hit rate Hit Time = RAM access time + time to determine HIT/MISS Miss Time = time to replace block in cache + time to deliver block to processor Wait Return data to processor and update cache

Where can a block be placed? 10 Block Number 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 2 2 2 2 2 2 2 2 2 2 0 1 2 3 4 5 6 7 8 9 3 3 0 1 Memory Set Number 0 1 2 TAG=3 4 5 6 7 0 Index 0 1 2 3 0 1 2 3 4 5 6 7 Cache Block 12 can be placed Fully (2-way) Set Direct Associative Associative Mapped anywhere anywhere in only into set 0 block 4 (12 mod 4 = 0) (12 mod 8 = 4)

How is a block found? 11 Memory Address Block Address Tag Index Block Offset Tag on each block No need to check index or block offset Index selects which set to look in Increasing associativity shrinks index, expands tag. Fully Associative caches have no index field.

6.2.3 Cache-Strukturen Vollassoziativer Cache 12 Bild 6-21. Adressierung eines vollassoziativen Cache mit 2048 Zeilen (Lines) zu je vier 32-Bit- Wörtern. Paralleler Tag-Vergleich für alle 2048 Zeilen durch 2048 Vergleicher. Cache-Hit bei Tag- Gleichheit (tag-hit) und gültigem Valid-Bit (valid-hit) für eine der 2048 Zeilen

Direkt zuordnender Cache (Direct Mapped Cache) 13 Bild 6-22. Adressierung eines direkt zuordnenden Cache mit 2048 Zeilen (Lines) zu je vier 32-Bit-Wörtern. Anwahl einer Zeile durch einen 11-Bit-Zeilenindex mittels eines Decodierers; Tag-Vergleich für diese Zeile durch einen einzigen Vergleicher. Cache-Hit bei Tag-Gleichheit (tag-hit) und gültigem Valid-Bit (valid-hit) für diese Zeile

N-fach assoziativer Cache (N-Way Set Associative Cache) 14 Bild 6-23. Adressierung eines 2-Wege-assoziativen Cache mit 1024 Sätzen (Sets) zu je zwei Zeilen (Lines) zu je vier 32-Bit-Wörtern. Anwahl eines Satzes durch einen 10-Bit-Satzindex mittels Decodierung; paralleler Tag-Vergleich für die beiden Zeilen des Satzes durch zwei Vergleicher. Cache-Hit bei Tag-Gleichheit (tag-hit) und gültigem Valid-Bit (valid-hit) für eine dieser beiden Zeilen

Access time (ns) Access time relative to direct-mapped cache 15 Small cache can help hit time since smaller memory takes less time to index Simple direct mapping : Can overlap tag check with data transmission since no choice 2.50 2.00 1.50 1.00 0.50-1-way 2-way 4-way 8-way 16 KB 32 KB 64 KB 128 KB 256 KB 512 KB 1 MB Cache size http://inst.eecs.berkeley.edu/~cs252/fa07/lectures/l08-memory.ppt

Performance Improvement Performance Improvement by Data Prefetching 16 CPU RF L1 Instruction L1 Data Unified L2 Cache Prefetched data Reduced Misses 2.20 2.00 1.80 1.60 1.40 1.20 1.00 1.16 gap SPECint2000 1.45 mcf fam3d 1.18 1.20 1.21 1.26 1.29 1.32 wupwise galgel facerec swim SPECfp2000 applu lucas 1.97 1.49 1.40 mgrid equake http://inst.eecs.berkeley.edu/~cs252/fa07/lectures/l08-memory.ppt

6.2.4 Aktualisierungsstrategien und Datenkohärenz Write-Through 17 Die von der CPU geänderten Daten werden direkt in den Hauptspeicher "durch" geschrieben. Im Hauptspeicher befinden sich dadurch immer die aktuellen Daten. Read-Hit Write-Hit Read-Hit: Cache-Datum CPU Write-Hit: CPU-Datum Cache CPU-Datum Speicher (dauert länger) write-through Write-Miss Read-Miss Load-Line nur in den Speicher schreiben CPU-Datum Speicher (Speicherblock, Tag) Cache; 1 Valid und Speicherdatum CPU alternativ mit Write-Allocation: 1. Load Line 2. CPU-Datum Cache Speicher Neues Datum wird dabei auch in den Cache geschrieben

Copy-Back / Write-Back 18 Die von der CPU geänderten Daten werden zunächst nur im Cache aktualisiert und durch eine Dirty-Bit gekennzeichnet. Bevor die Cache-Zeile durch einen neuen Block überschrieben wird, wird sie in den Hauptspeicher zurückkopiert. Vorteil: Write-Hits sind schneller. Nachteil: Daten im Speicher sind nicht immer aktuell. Read-Hit, Write-Hit Read-Hit: Cache-Datum CPU Write-Hit: CPU-Datum Cache, 1 Dirty Write-Miss Read-Miss Copy-Back Load-Line CPU-Datum Cache 1 Dirty Copy-Back only if (Valid and Dirty and NoFreeLine) then Cache-Zeile Speicher Load-Line (Speicherblock, Tag) Cache; 1 Valid, 0 Dirty Speicherdatum CPU nur in den Cache schreiben (Write-Allocation)

Datenkonsistenz und Datenkohärenz 19 In Mehrprozessorsystemen werden oft gemeinsame Variablen (shared variables) verwendet. Wir betrachten den Fall, dass sich diese Variablen in einem Shared Memory befinden. In der Regel besitzen die Prozessoren lokale Caches. Damit entsteht das Problem, das möglicherweise auf veraltete Daten zugegriffen wird. Die Datenspeicher (Hauptspeicher und Caches) sind konsistent, wenn die Daten überall gleich und aktuell sind. Ein Kohärenzprotokoll stellt sicher, dass die Zugriffe immer auf die aktuellen Daten erfolgen, selbst wenn die Datenspeicher nicht in allen Prozessoren aktuell sind. (Sie müssen dann vor dem Zugriff aktualisiert werden oder der Zugriff muss auf aktuelle Daten umgeleitet werden) Inkonsistenz kann bis zu einem gewissen Grade zugelassen werden, wenn durch das Kohärenz-Protokoll die Kohärenz sichergestellt wird Kohärenz bedeutet das korrekte Voranschreiten des Systemzustands durch ein abgestimmtes Zusammenwirken der Einzelzustände.

Kohärenzprobleme: Betrachtung eines zusätzlichen Masters (DMAC) ohne Cache 20 DMA-Controller schreibt in gemeinsamen Speicherbereich 1. Xmem Xcache 2. DMA-Controller verändert Speicherinhalt Xdma Xmem 3. CPU liest veraltetes Xcache Xcache Xmem Xdma Bild 6-23. Mikroprozessorsystem: Master1=CPU mit Cache Master2=DMAC ohne Cache; Zugriff auf gemeinsame Daten im Hauptspeicher

Kohärenzprobleme: Betrachtung eines zusätzlichen Masters (DMAC) ohne Cache (2) 21 1. Xmem Xcache CPU schreibt nur in den Cache beim Copy-Back-Verfahren 2. Xcpu Xcache Xcpu 3. DMA-Controller liest veraltetes Xmem aus dem Hauptspeicher Xcache Xmem Bild 6-23. Mikroprozessorsystem: Master1=CPU mit Cache Master2=DMAC ohne Cache; Zugriff auf gemeinsame Daten im Hauptspeicher

Lösungen des Kohärenzproblems 22 1. Non-cacheable Data Ein bestimmter Shared- Adressbereich wird als Noncacheable markiert, der Cache wird für diesen Bereich deaktiviert. Solche Markierungen werden in den Seitendeskriptoren (in der Speicherverwaltungseinheit) oder in speziellen Registern des Cache- Controllers durchgeführt. Die von den Interface-Einheiten belegten Adressbereiche für Steuerregister, Statusregister, Datenpuffer werden als Noncacheable markiert. 2. Cache-Clear, Cache-Flush Zugriffe auf gemeinsamen Datenbereich werden durch verschiedene Tasks ausgeführt. Beim Taskwechsel wird der Cache gelöscht. Verwendung des Cache-Clear- Befehls beim Write-Through- Verfahren: Alle Cache-Lines werden auf Invalid gesetzt. Verwendung des Cache-Flush- Befehls beim Copy-Back-Verfahren: Dirty Lines werden zuerst zurückkopiert, danach werden alle Cache-Lines auf Invalid gesetzt.

Lösungen des Kohärenzproblems (2) 23 3. Bus-Snooping (Bus-Schnüffeln) in System (CPU/Cache Mem Master2) Master2 Der Cache (mit Snoop-Logik) beobachtet die Aktivitäten auf dem Bus Xcache Xmem Xdma Eine Variable Xcache befindet sich im Cache. Der Master2 (ohne Cache) ändert Xmem, die für ihn im Speicher liegt: Cache erkennt Snoop-Hit on a Write bei einem Write-through-Cache: snooping (FALL 1) Variable Xcache wird als ungültig gekennzeichnet (entry clear)

Lösungen des Kohärenzproblems 24 bei einem Copy-back-Cache, alternativ: Master2 (FALL 2) Cache-Line Xcache wird zuerst noch zurückkopiert (entry flush), bevor der Master2 die Speichervariable ändert. (Der Schreibvorgang des Masters2 wird unterbrochen.) Die Cache-Line wird als Invalid gekennzeichnet. Xcache Xmem Xdma (FALL 3) Der Master2 schreibt gleich in die Cache-Line, die als Dirty gekennzeichnet wird. Die Speichervariable wird dabei nicht verändert. snooping ALLGEMEINER FALL: Systeme mit mehreren Mastern mit Caches In Mehrprozessorsystemen mit lokalen Caches wird die Datenkohärenz durch ein Kohärenzprotokoll (z. B. MESI) sichergestellt

FALL 2 25 CPU mit Cache Memory Master2 (3) set line invalid (modified) adr Xcache Xmem adr Xmaster2 (4) copy back entry flush (2) Schreibvorgang wird unterbrochen (5) Schreibvorgang fortsetzen (1) write will schreiben write (3) Snoop-Hit on a write and = (2) Snoop-Hit (FALL 2) Cache-Line wird zuerst noch zurückkopiert (entry flush), bevor der Master2 die Speichervariable ändert. (Der Schreibvorgang des Masters2 wird unterbrochen.) Die Cache-Line wird als Invalid gekennzeichnet

Cache-Kohärenz-Protokoll allgemein 26 Directory-based: In einem zentralen Verzeichnis stehen alle Informationen Nachteil: schlecht skalierbar Standard: Verteiltes Protokoll Snooping: Einflussgrößen auf das Protokoll Aktiver Prozessor read/write Cache-Line Hit/Miss Zustand der Cache-Line Cache hört den gemeinsamen Speicherbus ab Snooping Cache Snoop-Hit/Miss Zustand der Cache-Line Cache-Controller überprüft, ob ein anderer Prozessor auf Adressen, die sich im Cache befinden. Wenn das der Fall ist, gibt es einen Snoop-Hit.

Cache-Kohärenz-Protokoll MESI 27 Eine Cache-Line kann 4 Zustände annehmen: I: INVALID Die Daten in der Cache-Line sind ungültig E: EXCLUSIV-UNMODIFIED M: EXCLUSIV-MODIFIED Nur ein Prozessor besitzt die aktuelle Line im Cache, weil er sie verändert hat (Dirty). Nur ein Prozessor besitzt die Line im Cache, die er nicht verändert hat. S: SHARED-UNMODIFIED Mehrere Caches haben ein Datum aus dem Hauptspeicher geladen, das nicht verändert wurde. z.b. vom Pentium4 für Daten unterstützt

Memory Prozessor 1 Prozessor 2 MESI Beispiel 28 read-miss (wie nächste Folie) E I snoop-hit on read read-miss S S write-hit snoop-hit on write M invalidate I 3. copy back 2. snoop-hit on read 1. read miss Laden unterbrechen 4. retry S S

29 MESI Beispiel

BEISPIELE : ReadHit 30 Für die folgenden Beispiele wird ein Direct-Mapping- Cache mit 4 Worten/Line angenommen Line i: MESI TAG Wort i-a Wort i-b Wort i-c Wort i-d Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 Zustände der Line i S,1 S,1 I,1 Rea d Keine Zustandsänderung bei einem Read-Hit auf ein Wort in der Line i Rea d E,5 Rea d M,7 Rea d

Read-Miss und Line Invalid (I) 31 SnoopMiss (Exclusive Read-Miss) S,4 S,4 E,4 M,4 I,4 read miss 4-b E,4 Load Line 4,ReadData -b Cache 4 hat die Daten exklusiv geladen SnoopHit(S) read miss 1-a S,1 S,1 E,1 M,1 I,1 (Shared Read-Miss) read snooped shared Load Line 1,ReadData -a Cache 0,1,4 haben die Daten shared geladen S,1

Read-Miss und Line Invalid (I) 32 Line im Snooping-Cache ist Modified: Zuerst Copy Back Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 S,3 S,3 E,3 M,3 I,3 read snooped copy back shared wait read miss 3-c retry Load Line3,ReadData-c S,3 S,3 Danach hat Cache 4 die Daten geladen, die Cache 3 vorher zurückkopiert hat

Read-Miss und Line Valid (ESM); sie wird ersetzt 33 exclusive read miss with replacement (Line nicht in anderen Caches) read miss 4-b S,4 S,4 E,4 M,4 I Load Line 4,ReadData -b E,4 Line wurde überschrieben S,4 S,4 E,4 M,4 I,4 copy back LoadLine 4,ReadData -b E,4 nach dem Zurückkopieren wurde Line überschrieben

Read-Miss und Line Valid (ESM); sie wird ersetzt 34 shared read miss with replacement: Line in anderen Caches read miss 1-d S,1 S,1 S,1 S,1 I,1 Load Line1,Read Wort -d shared read snooped S,1 alte shared-line wurde überschrieben S,2 S,2 E,2 M,2 I,2 Load Line2,ReadData-d shared read snooped alte shared-line wurde überschrieben S,2 S,2

Read-Miss und Line Valid (ESM); sie wird ersetzt 35 shared read miss with replacement: Line in anderen Caches read miss 1-d S,1 S,1 E,1 M,1 I,1 read snooped shared copy back Load Line1,ReadData -d S,1 nach dem Zurückkopieren wurde Line überschrieben read miss 2-a S,2 S,2 E,2 M,2 I,2 read snooped shared copy back Load Line2,Read Wort -a S,2 S,2 nach dem Zurückkopieren wurde Line überschrieben

Write-Hit 36 WriteHit(S), SnoopHit(S) Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 write hit 1-c S,1 S,1 E,1 M,1 I,1 ModifyLine 1-c invalidate M,1 I,1 write snooped Line 1, aber anderes Tag als Cache 0,1, gestrichelt Bei einem Write-Hit auf die Line 1 im Cache 0 wechselt der Zustand von SM und er sendet ein Invalidate-Signal. Die Line 1 im Cache 1 hat das gleiche Tag (snoop-hit), erkennt den Schreibzugriff und invalidiert die Line (rot markierte Lines: Tag und Index gleich)

Write-Miss 37 Snoop-Hit Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 write miss S,1 S,1 E,1 M,1 I,1 write snooped invalidate Load Line,ModifyLine Cache 0 erkennt den Schreibzugriff auf Line 1 und invalidiert diese I,1 Cache 1,2,3 erkennt keinen Schreibzugriff auf Line 1 weil TAG ungleich High- Address M,1 aus dem Speicher geladen und modifiziert Bei einem Write-Miss in der Line 1 im Cache 4 wechselt der Zustand von IM und er sendet ein Invalidate-Signal.

Write-Miss with Replacement 38 Snoop-Hit Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 write miss S,2 S,2 E,2 M,2 I,2 LoadLine, ModifyLine invalidate write snooped aus dem Speicher geladen und modifiziert M,2 I,2 Cache 0 ersetzt die alte shared-line 2 durch die neue Line 2* aus dem Speicher und ändert diese in 2** Cache 2 invalidiert die Line 2*

Write-Miss 39 Snoop-Hit Bei einem Write-Miss in der Line 3 im Cache 4 soll die Line neu geladen und modifiziert werden. Weil Cache 3 ein Wartesignal sendet, wird der Ladevorgang unterbrochen Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 write miss S,3 S,3 E,3 M,3 I,3 Cache 3 erkennt den Schreibzugriff in der Line 3 Da Line Modified, muss sie zuerst zurück kopiert werden. Deshalb sendet Cache 3 an den Cache 4 zuerst ein Wartesignal, nach dem copy back ein retry Signal write snooped copy back I,3 invalidate wait Laden unterbrechen warten retry LoadLine, ModifyLine 3-c M,3 Cache 4 hat die Line geladen, die Cache 3 vorher zurückkopiert hat

Write-Miss with Replacement 40 Snoop-Hit Cache 0 Cache 1 Cache 2 Cache 3 Cache 4 write miss S,3 S,3 E,3 M,3 I,3 Laden unterbrechen warten LoadLine, ModifyLine invalidate wait retry write snooped copy back M,3 I,3 Cache 0 hat die Line geladen und modifiziert, die Cache 3 vorher zurückkopiert hat (alte shared-line wurde überschrieben)

Write-Miss with Replacement 41 Snoop-Hit im Vergleich zu vorigen Folie: write miss auf E statt S write miss S,1 S,1 E,2 M,3 I invalidate Laden unterbrechen warten LoadLine, ModifyLine wait retry copy back M,3 I,3 Cache 2 hat die Line geladen und modifiziert, die Cache 3 vorher zurückkopiert hat (alte exclusive-line wurde überschrieben)