2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52
2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle Speicher Möglich durch Eigenschaft der zeitlichen und räumlichen Lokalität von Referenzen auf Daten und Befehle Dadurch: Speicher mit Zugriffszeit im Bereich der mittleren Cachezugriffszeit, jedoch weitaus höhere Kapazität Zugriffswahrscheinlichkeit über Zeit 0 2 n - 1 Adressraum 22.4.-27.5.2013, Folie 53
2.3.3 Grundlagen Cache-Techniken (1) Cache (wörtlich Depot, Versteck) Kleiner schneller Pufferspeicher zwischen Register und Hauptspeicher Funktion von Caches Überbrückung der Prozessor-Speicher-Lücke bzgl. der Leistung Cache-Aufbau wie Hauptspeicher in Blöcken organisiert Cache-Blöcke oder Cache-Zeilen (cache blocks oder cache lines) 22.4.-27.5.2013, Folie 54
2.3.3 Grundlagen Cache-Techniken (2) Cache-Typen und Anordnung Primär-Cache Bestandteil eines jeden Mikroprozessors Split-cache: getrennte Speicherung von Daten und Befehle Größe: 8-16 KByte (Pentium 4 Northwood / Prescott Kern) Kurze Blöcke (bis 32-64 Bytes) Sekundär-Cache Unified-cache: Daten und Befehle gemeinsam Größe: 512 KByte 2 MByte (P4 Northwood / Prescott Kern) Längere Blöcke (bis zu 256 Bytes) Mittlerweile teilweise Einsatz von Tertiär-(L3)-Caches Intel Xeon SMP Prozessoren (4-64 MBytes) 22.4.-27.5.2013, Folie 55
2.3.3 Grundlagen Cache-Techniken (3) Zugriff Steuerwerk überprüft anhand Adresse ob Datum im Cache- Speicher vorhanden Falls Datum vorhanden (Treffer, HIT): Datum aus Cache lesen Falls Datum nicht vorhanden (Fehlzugriff, MISS): Block von Worten aus Hauptspeicher in Cache kopieren und angefordertes Datum lesen Organisation: legt zwei Dinge fest Platzierungsproblem: in welchem Cache-Block wird Hauptspeicher-Block abgelegt Identifikationsproblem: gewünschtes Datum bzw. Block im Cache wieder auffinden 22.4.-27.5.2013, Folie 56
2.3.3 Grundlagen Cache-Techniken (4) drei Organisationsformen gebräuchlich Direkte Abbildung (direct mapping) Voll-assoziative Abbildung (full asociative) N-fach oder Mengen-fach assoziative Abbildung: (n-way associative oder set-associative) Platzierung direkte Abbildung Jeder Adresse B eines Hauptspeicher-Blocks wird direkt ein Block m von insgesamt N Cache-Blöcken zugewiesen, z.b. über eine Modulo- Operation m = B mod N Beispiel: Cache-Kapazität N = 8 000 001 010 011 100 101 110 111 00001 00101 01001 01101 10001 10101 11001 11101 Cache Hauptspeicher 22.4.-27.5.2013, Folie 57
2.3.3 Grundlagen Cache-Techniken (5) Platzierung voll-assoziative Abbildung Jede Adresse eines Hauptspeicher-Blocks kann in jeden beliebigen Cache-Block abgebildet werden 000 001 010 011 100 101 110 111... Cache Hauptspeicher Platzierung n-fach assoziative Abbildung Cache-Blöcke werden in s Mengen mit jeweils n Blöcken unterteilt; s = N / n Hauptspeicher-Block nach Methode direkter Abbildung in Cache- Blockmenge; innerhalb der Menge an jeden beliebigen Platz Allgemeiner Fall: für n = N voll-assoziativ und für n = 1 direkte Abbildung 22.4.-27.5.2013, Folie 58
2.3.3 Grundlagen Cache-Techniken (6) Menge 0 Menge 1 Menge 2 Menge 3 000 001 010 011 100 101 110 111 Cache 00010 00110 01010 01110 10010 10110 11010 11110 Hauptspeicher Abbildung Hauptspeicher-Block Cache-Block ist surjektiv Folge: zusätzlich zu den Datenwerten Kennung notwendig, die Hauptspeicher-Block eindeutig identifiziert sog. Tag-Feld Identifikationsproblem im Folgenden anhand des allgemeinen Beispiels der n-fachen Assoziierung 22.4.-27.5.2013, Folie 59
2.3.3 Grundlagen Cache-Techniken (7) Tag-Feld Hauptspeicher-Adresse oder Teile davon im Cache abspeichern zur eindeutigen Identifizierung Ein Teil der Adresse ergibt sich aus der Adresse des Cache-Blockes Als Kennung oder Tag-Information wird gewöhnlich der restliche Teil der Hauptspeicher-Adresse verwendet Genau die Bits, die nicht als Index für die Identifikation des zugehörigen Cache-Blockes benutzt werden Cache-Adresse Beispiel: 32 Bit Hauptspeicher-Adresse, 64 Cache-Mengen (6 Bit Index), die jeweils 4 Byte aufnehmen 31 8 7 3 2 1 0 24 Bit Tag-Feld 22.4.-27.5.2013, Folie 60 6 Bit Indexfeld 2-Bit Byte- Adresse
2.3.3 Grundlagen Cache-Techniken (8) Zusätzlich wird im Cache noch ein Gültigkeitsbit (valid) verwendet Zeigt an, ob Eintrag überhaupt gültig ist Zugriffslogik 2-fach assoziativer Cache 24 Bit Satz 0 63 Kennung (tag) 24 Bits Kennung (tag) 6 Bit Index......... Kennung (tag) V = = V Daten 1 2 Bit Hauptspeicher -adresse Daten Treffer 22.4.-27.5.2013, Folie 61
2.3.3 Grundlagen Cache-Techniken (9) N-fach assoziativer Cache erfordert n Komparatoren Direkt abbildender Cache nur 1 Komparator, da Cache-Zeile eindeutig feststeht jedoch: Wirksamkeit des Cache sinkt: mehrere Adressen auf gleichen Cache-Block abbilden häufiges Umladen Bei assoziativen Caches Wahrscheinlichkeit für Konfliktsituation geringer Am besten bei voll-assoziativem Cache, aber langsam und teuer In heutigen Prozessoren: Caches vom Grad 2, 4 oder 8 Wirtschaftlicher und technischer Kompromiss 22.4.-27.5.2013, Folie 62
2.3.3 Grundlagen Cache-Techniken (10) Aktualisierungsstrategie (Zurückschreiben Cache-Werte) Problem: Inkonsistenz zwischen Hauptspeicher und Cache (consistency problem) Wann und wie wird Hauptspeicher aktualisiert? Zwei grundsätzliche Strategien Durchschreiben (write through) Jede Änderung wird sofort im übergeordneten Speicher aktualisiert Konsistenz stets gegeben, aber hohe Belastung Prozessor-/Speicherbus Primär-Caches arbeiten nach diesem Prinzip Zurückschreiben (write back, copy back) Aktualisierung erst bei Verdrängung Bei Ausgabeoperation oder Beim Zugriff eines anderen Prozessors (Mehrprozessorsysteme) o Modifikationsbit (dirty bit), um Rückschreiben nicht modifizierter Blöcke zu vermeiden Sekundär-Caches arbeiten nach diesem Prinzip 22.4.-27.5.2013, Folie 63
2.3.3 Grundlagen Cache-Techniken (11) Ersetzungsstrategie Welcher Block wird ersetzt? Verschiedene Strategien LSF: Least Frequently Used LRU: Least Recently Used FIFO: First-In First-Out Random: zufällige Auswahl Details: Modul Rechnerarchitektur im Bachelor ab 5. Semester 22.4.-27.5.2013, Folie 64
2.3.3 Grundlagen Cache-Techniken (12) Klassifikation von Fehlzugriffen: 3 Cs Compulsory - Der erste Zugriff auf einen Block trifft nicht den Cache, Block muss erstmals geladen werden Auch Kaltstart-Miss or First-Reference-Miss genannt (tritt in beliebig großen Caches auf) Capacity - Der Cache hat nicht genug Platz, um alle Blöcke der aktuell zu bearbeitenden Befehlsfolge zu enthalten Kapazitäts-Miss durch Entfernen und späteres Zurückladen von Blöcken (neben Compulsory einzige Quelle von Fehlzugriffen in voll assoziativen Caches) Conflict - In nicht voll-assoziativen Caches werden Blöcke aufgrund von Adresskonflikten überschrieben und ggf. später zurückgeladen Auch Kollisions-Misses or Interferenz-Misses genannt (treten in Mengen-assoziativen und direkt abbildenden Caches auf) 22.4.-27.5.2013, Folie 65
2.3.3 Grundlagen Cache-Techniken (13) Absolute Fehlzugriffraten durch 3Cs 22.4.-27.5.2013, Folie 66