Speicherhierarchie, Caches, Consistency Models · Cache CPU Main memory . Überprüfen des Caches...
Transcript of Speicherhierarchie, Caches, Consistency Models · Cache CPU Main memory . Überprüfen des Caches...
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
• Ziel: Idealer Speicher
• extem kostengünstig, unendlich groß, keine Zugriffszeit, nicht volatil
• Realitätsumsetzung
• Kompromiss zwischen Zugriffszeit, Speicherkapazität, Kosten und Persistenz
Wozu benötigt man eine Speicherhierarchie?
3
Was ist ein Cache? Naive Definition:
Sehr schneller, sehr teurer Speicher, der benutzt wird um die Speicherabfrage zu
beschleunigen
Main Memory
Cache
CPU langsamer Datenaustausch
schneller Datenaustausch
5
Ziele und Nutzen von Caches
• Verringerung der:
• Zugriffszeit
• Anzahl der Zugriffe
• Bandbreitenanforderung an die Anbindung des Hintergrundmediums
auf das langsame Hintergrundmedium
6
Cache
CPU
Main memory
Überprüfen des Caches auf
angeforderte Daten falls Inhalt
nicht in Cache gespeichert
(Cache-miss)
Daten werden direkt an die CPU geleitet
Daten werden vom Hauptspeicher in
den Cache geladen
falls Inhalt in Cache
gespeichert (Cache-hit)
CPU verlangt nach Inhalten
eines Speicherplatzes
Löschen eines Eintrags im Cache zur Platzfreigabe
8
Konstruktion • Cache-Line
• Adress-Tags
• Blocknummer-Tags
• Block/Satz-Aufteilung der Tags
• direct mapped
• fully associative
• set associative
• Zugriffs-/Verwaltungsinformationen 9
Organisation DM FA SA
Assoziativität 1 m(=n) n
Anzahl der Sätze m 1 m/n
10
m= Gesamtanzahl der Blöcke(Cache-lines)
n= Anzahl der Blöcke pro Satz
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
L1
L2
L3
Cache-Line x
Cache-Line y
Cache-Line z
• exklusiver Cache
12
Summe Cache-lines inklusiv = Größe L3 Summe Cache-lines exklusiv = Größe(L1+L2+L3)
Cache-hit/Cache-miss • Hit-ratio =
#Cache-hits/#(Cache-hits+Cache-misses)
• Miss-ratio = 1-Hit-ratio
Capacity Conflict Compulsory
Dabei gibt es 3 Arten von Cache-misses:
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
Schreibstrategien
18
Block, der im Cache vorhanden ist
Block, der nicht im Cache vorhanden ist
write-back write-through
Ablage zunächst im
Cache
Ablage in nächsthöherer Speichereben
Inkonsistenz zwischen
Cache und Speicher
Konsistenz gesichert
MESI Pufferspeicher
write-allocate non-write-allocate
Block wird aus der
nächsthöheren Speicherebene
geholt
Schreiben in nächsthöhere Ebene ohne Laden des
Blocks in Cache
veränderte Bytes werden danach überschrieben
Reduktion der Miss-Rate
Consistency Models
...gewährleisten in distributed shared memory-systemen(DSM-systeme), dass Zugriffe auf den
Speicher korrekt verarbeitet werden und den erwarteten Rückgabewert liefern.
19
• http://de.wikipedia.org/wiki/Lokalit%C3%A4tseigenschaft
• https://de.wikipedia.org/wiki/Cache
• http://www-vs.informatik.uni-ulm.de/teach/ss05/dsm/arizona.pdf
• Vorlesung Rechnerarchitektur Prof. D. Ulrich Brüning
Quellen:
20