Speicherhierarchie, Caches, Consistency Models Maximilian Langknecht Lehrstuhl für Rechnerarchitektur Betreuer: Prof. Dr. Ulrich Brüning 1
Inhaltsverzeichnis Speicherhierarchie Warum gibt es Speicherhierarchie? Speicherpyramide Caches Ziele und Nutzen Beispiel der Arbeitsweise Konstruktion Einträge im Cache Consistency Models 2
Speicherhierachie Wozu benötigt man eine Speicherhierarchie? Ziel: Idealer Speicher extem kostengünstig, unendlich groß, keine Zugriffszeit, nicht volatil Realitätsumsetzung Kompromiss zwischen Zugriffszeit, Speicherkapazität, Kosten und Persistenz 3
Speicherhierachie Pyramide L=Level 4
Was ist ein Cache? Naive Definition: Sehr schneller, sehr teurer Speicher, der benutzt wird um die Speicherabfrage zu beschleunigen Cache schneller Datenaustausch Main Memory CPU langsamer Datenaustausch 5
Ziele und Nutzen von Caches Verringerung der: Zugriffszeit Anzahl der Zugriffe auf das langsame Hintergrundmedium Bandbreitenanforderung an die Anbindung des Hintergrundmediums 6
Arbeitsweise eines Caches
CPU verlangt nach Inhalten eines Speicherplatzes Überprüfen des Caches auf angeforderte Daten Löschen eines Eintrags im Cache zur Platzfreigabe CPU Daten werden direkt an die CPU geleitet Cache Daten werden vom Hauptspeicher in den Cache geladen Main memory falls Inhalt in Cache gespeichert (Cache-hit) falls Inhalt nicht in Cache gespeichert (Cache-miss) 8
Konstruktion Cache-Line Adress-Tags Blocknummer-Tags Block/Satz-Aufteilung der Tags direct mapped fully associative set associative Zugriffs-/Verwaltungsinformationen 9
Organisatio n DM FA SA Assoziativit ät 1 m(=n) n Anzahl der Sätze m 1 m/n m= Gesamtanzahl der Blöcke(Cache-lines) n= Anzahl der Blöcke pro Satz 10
Einträge im Cache Neben den eigentlichen Daten und dem Tag werden für jeden Cacheblock mehrere Statusbits im Cache gespeichert: modified/dirty owner shared exclusive invalid 11
Cachehierarchie inklusiver Cache exklusiver Cache Cache-Line x L1 Cache-Line y L2 Cache-Line z L3 Summe Cache-lines inklusiv = Größe L3 Summe Cache-lines exklusiv = Größe(L1+L2+L3) 12
Cache-hit/Cache-miss Hit-ratio = #Cache-hits/#(Cache-hits+Cache-misses) Miss-ratio = 1-Hit-ratio Dabei gibt es 3 Arten von Cache-misses: Capacity Conflict Compulsory 13
Lokalitätseigenschaft zeitliche/temporäre Lokalität Daten, auf die bereits zugegriffen wurde, werden wahrscheinlich noch einmal abgerufen räumliche/spatiale Lokalität Zunutzemachen der Speicherstruktur, die Programmcode und -daten hintereinander im Speicher ablegt 14
Verwaltung Verdrängungsalgorithmen: Optimal First-In-First-Out(FIFO) Least Recently Used(LRU) Least Frequently Used(LFU) Clock Random 15
First-In-First-Out Input x y w z x u y w x z z z y y ache-lines y y x x x w w w w u u u 16
Least Frequently Used Input x y w z x u y w x z z z y y ache-lines y y x x x x w w w u u w 17
Schreibstrategien Block, der im Cache vorhanden ist Block, der nicht im Cache vorhanden ist write-back Ablage zunächst im Cache Inkonsistenz zwischen Cache und Speicher MESI write-through Ablage in nächsthöherer Speichereben Konsistenz gesichert Pufferspeicher write-allocate Block wird aus der nächsthöheren Speicherebene geholt veränderte Bytes werden danach überschrieben non-writeallocate Schreiben in nächsthöhere Ebene ohne Laden des Blocks in Cache Reduktion der Miss-Rate 18
Consistency Models...gewährleisten in distributed shared memorysystemen(dsm-systeme), dass Zugriffe auf den Speicher korrekt verarbeitet werden und den erwarteten Rückgabewert liefern. 19
Quellen: http://de.wikipedia.org/wiki/lokalit%c3%a4tseigenschaft https://de.wikipedia.org/wiki/cache http://www-vs.informatik.uniulm.de/teach/ss05/dsm/arizona.pdf Vorlesung Rechnerarchitektur Prof. D. Ulrich Brüning 20
Vielen Dank für Ihre Aufmerksamkeit!