Rechnerarchitektur (RA)

Ähnliche Dokumente
4.2 Verbesserung der Leistungsfähigkeit von Caches

Verbesserung der Leistungsfähigkeit von Caches

Rechnerarchitektur (RA)

Rechnerarchitektur (RA)

Verbesserung der Leistungsfähigkeit von Caches

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

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

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur. Speicher

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

Das Konzept der Speicherhierarchie

Cache Blöcke und Offsets

Grundlagen der Rechnerarchitektur. Speicher

Grob-Struktur des Prozessor-Speichersystems

Technische Informatik 1 - HS 2017

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

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

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

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

Wie groß ist die Page Table?

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

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

6 Exkurs: Assoziativspeicher

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

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Was ist die Performance Ratio?

Technische Informatik

Speicherarchitektur (1)

RO-Tutorien 15 und 16

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

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast

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

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

11. Caches Pufferspeicher

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

Virtueller Speicher und Memory Management

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Speicherarchitektur (16)

Speicherarchitektur (23) Suchen einer Seite:

Grundlagen von Caching-Mechanismen beim Zusammenspiel von Mikroprozessor und Betriebssystem. Klaus Kusche Dezember 2015

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

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

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

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Grundlagen der Informationsverarbeitung:

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Tutorium Rechnerorganisation

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Speicher. Rechnerarchitektur (RA) Sommersemester Prof. Dr. Jian-Jia Chen 2016/06/15. technische universität dortmund

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

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Rechnergrundlagen SS Vorlesung

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

Beispiele von Branch Delay Slot Schedules

Datenpfad einer einfachen MIPS CPU

Speicherhierarchie, Caches, Consistency Models

N Bit Binärzahlen. Stelle: Binär-Digit:

Multiple Issue. Peter Marwedel Informatik /05/15. technische universität dortmund. fakultät für informatik informatik 12

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

Rechnerarchitektur (RA)

Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer

Datenpfad einer einfachen MIPS CPU

CPU. Memory. Highest. Fastest. Smallest. Memory. Biggest. Lowest

Technische Informatik - Eine Einführung

Technische Informatik 2 Speichersysteme, Teil 3

Aufgabe 4 : Virtueller Speicher

RO-Tutorien 17 und 18

Rechnerarchitektur (RA)

Technische Realisierung (1)

Teil 1: Prozessorstrukturen

Linux Paging, Caching und Swapping

Freispeicherverwaltung

Just-In-Time-Compiler (2)

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

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Freispeicherverwaltung Martin Wahl,

Algorithmen II Vorlesung am

Technische Informatik 1 - Übung & 22. Dezember Philipp Miedl

Just-In-Time-Compiler (2)

, SS2012 Übungsgruppen: Do., Mi.,

Tutorium Rechnerorganisation

Rechnerorganisation. 1. Juni 201 KC Posch

Allgemeine Lösung mittels Hazard Detection Unit

RO-Tutorien 15 und 16

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

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

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009

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

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Memory Models Frederik Zipp

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Rechnerarchitektur SS 2012

Einfaches MSI-Writeback-Inval-Protokoll

Transkript:

12 Rechnerarchitektur (RA) Sommersemester 2016 Verbesserung der Leistungsfähigkeit von Caches Jian-Jia Chen Informatik 12 jian-jia.chen@tu-.. http://ls12-www.cs.tu-.de/daes/ Tel.: 0231 755 6078 2016/06/21

Cache-Performanz (1) CPU-Ausführungszeit = (# CPU-Takte + #Speicher-Wartezyklen) x Taktzeit Einbeziehung von Speicher-Wartezyklen (memory stall ( cycles = Takte, in denen CPU auf Speicher wartet Annahmen: CPU-Takte enthalten Zeit für erfolgreichen Cache- Zugriff Speicher-Wartezyklen treten nur bei Fehlzugriffen auf 12, 2016-2 -

Cache-Performanz (2) Speicher-Wartezyklen abhängig von: Anzahl der Fehlzugriffe (cache misses) und ( penalty Kosten pro cache miss (= miss Instruction count IC Speicher-Wartezyklen = = # Cache misses x miss penalty = IC x (misses / Befehl) x miss penalty = IC x (# Speicherzugriffe / Befehl) x x Fehlzugriffsrate x miss penalty # Speicherzugriffe / Befehl > 1, da immer 1x Befehlsholen miss penalty ist eigentlich Mittelwert ( Simulation Alle Größen messbar (ggf. durch 12, 2016-3 -

Cache-Performanz (3) Bewertungsmaß für die Leistungsfähigkeit einer Speicherhierarchie: Mittlere Zugriffszeit = Hit Time + Miss Rate x Miss penalty Hit Time Miss Rate Miss Penalty = Zeit für erfolgreichen Zugriff (in CPU- Leistungsgleichung Teil der normalen ( Ausführungszeit = Anteil der Fehlzugriffe = Wartezeit der CPU auf Speicher, die pro Fehlzugriff entsteht Maßeinheiten: physikalische Zeit oder Taktzyklen möglich 12, 2016-4 -

Verbesserung der Leistungsfähigkeit von Caches: Übersicht Beeinflussende Größen (Kapitel 5.2, Hennessy, 3./4. Aufl.): Hit Time Miss Rate Miss Penalty Cache Bandwidth Wir betrachten daher im folgenden Verfahren zur: Reduktion der Rate fehlgeschlagener Cache-Zugriffe, Reduktion der Zugriffszeit im Erfolgsfall, Erhöhung der Cache-Bandbreite, Reduktion der Wartezyklen, die ein fehlgeschlagener Zugriff erzeugt. 12, 2016-5 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Rate â : Klassische Methode zur Cache-Leistungssteigerung. Typen von Cache-Misses: Compulsory Erster Zugriff auf Speicherbereich kann nie im Cache sein. Conflict Bei direct mapped und n-wege assoziativem $ können Konflikte bzgl. des Ablegens eines Blocks auftreten ( abgebildet (d.h. zu viele Blöcke werden auf gleiches Set Capacity Misses, die bei unbegrenzter Assoziativität auftreten würden Bei Kapazitätsüberschreitung: Blöcke verwerfen, später wieder holen Worst Case: Cache viel zu klein 12, 2016-6 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Rate â : (2) Anteil der Fehlzugriffstypen (SPEC2000) Miss rate Extrem wenige zwangsweise misses (normal bei lang laufenden Programmen) 0.10 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 Capacity misses reduziert mit wachsender Cache-Größe 1-way 2-way 4-way 8-way Capacity Compulsory 0.00 4 8 16 32 64 128 256 512 Cache size (KB) 2006 Elsevier Science Weitere Fehlzugriffe durch fehlende Assoziativität ( Cache (Konflikte; bzgl. voll assoziativem 1024 12, 2016-7 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Rate â : Größere Cache-Blöcke Reduziert zwangsweise Fehlzugriffe wegen örtlicher Lokalität längere Ladezeiten # Blöcke reduziert, evtl. mehr Konfliktund Kapazitätsfehlzugriffe 2003 Elsevier Science Kosten des Fehlzugriffs dürfen Vorteile nicht überwiegen Abhängig von Latenz und Bandbreite des Speichers 12, 2016-8 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Uebung Cache Size Block Size 4K 16K 64K 256K 16 8.57% 3.94% 2.04% 1.09% 32 7.24% 2.87% 1.35% 0.70% 64 7.00% 2.64% 1.06% 0.51% 128 7.78% 2.77% 1.02% 0.49% 256 9.51% 3.29% 1.15% 0.49% Assume that the memory system takes 80 clock cycles of overhead and then delivers 16 bytes every 2 clock cycles. Thus, it can supply 16 bytes in 82 clock cycles and 32 bytes in 84 clock cycles. Which block size has the smallest average memory access time for each cache size above? 12, 2016-9 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Rate â : Größere Caches Nachteile: Höhere Kosten Längere Cache-Zugriffszeit Bei 2-stufigen Caches ist Zugriffszeit der 2. Ebene nicht primär ausschlaggebend F Hier größere Caches verwenden (ggf. langsamer) Verbreitete Lösung: Große Caches als 2nd- oder 3rd-level Caches haben heute Kapazitäten wie Hauptspeicher früher! 12, 2016-10 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Rate â : Höhere Assoziativität Assoziativität reduziert Fehlzugriffsrate In der Praxis 8-Wege assoziativ voll assoziativem Cache (aber: deutlich geringere!(! Komplexität 0.10 0.09 0.08 0.07 0.06 0.05 0.04 0.03 0.02 0.01 1-way 2-way 4-way 8-way Capacity Compulsory 0.00 4 8 16 32 64 128 256 512 2:1-Cache-Daumenregel Cache size (KB) direct mapped Cache der Größe N hat ca. Fehlzugriffsrate von 2-Wege assoziativem Cache halber Größe Hohe Assoziativität erhöht Zykluszeit, da Cache (1. Ebene) direkt mit CPU gekoppelt! 1024 12, 2016-11 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Hit Time â : Kleine und einfache Caches Zugriffszeit im Erfolgsfall (hit time) kritisch für Leistung von Caches, da sie CPU-Takt begrenzt Indizierung des Tag-Speichers (via Index) und Vergleich mit angefragter Adresse F schnell, wenn Cache klein Kleiner Cache kann on-chip (der CPU) realisiert werden F kürzere Signallaufzeiten, effizienterer Datentransfer Einfacher, d.h. direct mapped: F Überlappung von Datentransfer und Tag-Prüfung möglich F Größe des L1-Caches ggf. nicht erhöht, evtl. sogar ( 8KB reduziert (Pentium III: 16KB, Pentium 4: Schwerpunkt auf höherer Taktrate, Kombination mit L2 Cache 12, 2016-12 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Hit Time â : Kleine und einfache Caches 2.50 2.00 1-way 2-way 4-way 8-way Access time (ns) 1.50 1.00 0.50 0 16 KB 32 KB 64 KB 128 KB Cache size 256 KB 512 KB 1 MB Abb. 5.4. aus HP07, Elsevier 12, 2016-13 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Hit Time â : Keine Adressumrechnung bei Cache-Zugriff Aktuelle PCs verwenden virtuellen Speicher: Virtuelle oder reale Caches? Siehe Kurs Rechnerstrukturen Hier: Zusätzliche Betrachtung von Mischformen 12, 2016-14 -

Zur Erinnerung aus RS Virtuelle Caches (schnell) Prozessor virtuelle Adressen MMU reale Adressen Speicher Cache Daten Reale Caches (langsamer) Prozessor virtuelle Adressen MMU reale Adressen Speicher Daten Cache 12, 2016-15 -

Modell des Ablaufs bei realen Caches virtuelle Adresse bekannt reale Adresse bekannt Zeile bekannt Datum bekannt Bedingung Cachezeile lesen Ereignis Adressumsetzung Tag- Vergleich Adressumsetzung und Lesen des Caches nacheinander 12, 2016-16 -

Modell des Ablaufs bei virtuellen Caches virtuelle Adresse bekannt Adressumsetzung reale Adresse bekannt Speicher lesen Datum bekannt Treffer im Cache Cache lesen Lesen des Caches und Adressumsetzung parallel 12, 2016-17 -

Mischform virtually indexed, real tagged Indexwerte für virtuelle und reale Adressen identisch F Zugriff auf realen Cache kann bereits während der Umrechung auf reale Adressen erfolgen. virtuelle Adresse bekannt Adressumsetzung reale Adresse bekannt Speicher lesen (langsam) Datum bekannt Nebenläufig Oder Falls Treffer Cache-Zeile lesen Tag-Vergleich 12, 2016-18 -

Mischform virtually indexed, real tagged (2) Sei eine Meta-Page der Speicherbereich, der zu einem bestimmten Tag-Feld gehört (unsere Bezeichnung) Innerhalb jeder Meta- Page müssen virtueller und realer Index übereinstimmen. Meta-Page-Zuordnung beliebig Tag (Basis 4) virtuell 00. 01. 02. 03. 10. 11. 12. 13. 20. Cache-Index (Basis 4) Seite real 20. 21. 22. 23. 10. 11. 12. 13. 00. 12, 2016-19 -

Mischform virtually indexed, real tagged (3) Nachteil: De facto: statt Seiten Meta-Pages als Einheiten der Speicherzuteilung. Sehr grob-granulare Speicherzuteilung. Beispiel: direct mapped $, 256 kb=2 18 B, 64 Bytes /Eintrag F 12 Bits für den Index, Meta-Pages von 256 kb. Seitennummer Index 12, 2016-20 -

Virtually indexed, virtually tagged Fast, but there are some problems with this type Protection: page-level protection is checked as part of the virtual to physical address translation Process switches: the virtual addresses refer to different physical addresses, reqireing the cache to be flushed, or to tag with additional bits for the process-identifier tag Aliases in virtual memory systems: antialiasing from HW or SW has to be supported I/O: I/O typically uses physical addresses and thus would require mapping to virtual addresses to interact with a virtual cache. 12, 2016-21 -

Unterschiedliche Kombinationsmöglichkeiten Index/ Tag Virtuell Virtuell Virtually indexed, virtually tagged (VIVT) Schnell, Kohärenzprobleme Real Physically (real)-indexed, virtually tagged Theoretisch möglich, aber sinnlos Real Virtually indexed/ physically (real)- tagged (VIPT) Mittelschnell Physically (real)-indexed, physically (real)-tagged (PIPT) Langsam, keine Kohärenzprobleme 12, 2016-22 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Cache Bandwidth á : Multibanked Caches Blöcke werden über mehrere Speicherbänke verteilt Bank 0 Bank 1 Bank 2 Blockadresse 0 4 8 12 Blockadresse 1 5 9 13 Blockadresse 2 6 10 14 Blockadresse 3 7 9 15 Bank 3 12, 2016-23 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Cache Bandwidth á : Pipelined Cache Access Cache Zugriff über mehrere Stufen der Pipeline verteilen F Latenzzeiten des L1-Caches können größer sein ( Zyklen als bei Zugriff in einem Takt (Pentium 4: 4 Konsequenz mehrerer Pipelinestufen Größere Verzögerung für Sprungbefehle (branch penalty) bei falscher Sprungvorhersage Längere Verzögerung zwischen Laden und Verwenden von Operanden (load delay), siehe MIPS R4000! Cache-Latenz ändert sich nicht, aber sie wird versteckt. 12, 2016-24 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Penalty â : Nonblocking Caches Überlappen der Ausführung von Befehlen mit Operationen auf der Speicherhierarchie CPUs mit out-of-order completion/execution F Anhalten der CPU bei Fehlzugriff auf Cache nicht erforderlich (z.b. weiteren Befehl während Wartezeit holen) Notwendig: Cache kann trotz vorangegangenem (und ausstehenden) Fehlzugriffs nachfolgende erfolgreiche Zugriffe (hits) befriedigen F bezeichnet als hit under miss Auch: hit under multiple misses bzw. miss under miss 12, 2016-25 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Penalty â : Nonblocking Caches (2) Nicht-blockierende Caches hit under (multiple) misses : ( SPECINT/SPECFP ) Vorteil gegen blockierenden Cache hit under 64 Hit-under-1-miss 100% misses = 90% 1 miss pro 80% 64 Registern 70% Verbesserung 60% durch hit under 50% 40% multiple misses hauptsächlich bei FP-Benchmarks Cache acess latency bzip2 gcc mcf hmmer sjeng libquantum h264ref omnetpp astar Hit-under-2-misses gamess zeusmp milc gromacs cactusadm namd soplex Hit-under-64-misses povray calculix GemsFDTD tonto lbm wrf sphinx3 SPECINT SPECFP 2003 Elsevier Science 12, 2016-26 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Penalty â : Zusammenfassung von Schreibpuffern Betrachte write through Cache Schreibzugriffe in (kleinem) Puffer gespeichert und bei Verfügbarkeit des Speicherinterfaces ausgeführt Hier: Daten wortweise geschrieben! Annahme: Schreiben größerer Datenblöcke effizienter möglich (! zu (trifft auf heutige Speicher in der Regel F Schreibpuffer im Cache gruppieren, falls zusammenhängender Transferbereich entsteht 12, 2016-27 -

Miss Penalty â : Zusammenfassung von Schreibpuffern (2) Write buffer merging: Oben: ohne Unten: mit Beachte: Beispiel extrem optimistisch! Falls write buffer merging nicht vorgesehen, ist Schreibpuffer auch nicht mehrere Worte breit! 2003 Elsevier Science 12, 2016-28 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Penalty â : Einführung mehrerer Cache-Ebenen Unabhängig von der CPU Fokus auf Schnittstelle Cache/Hauptspeicher Dilemma: Leistungsfähigkeit des Caches steigern durch Beschleunigung des Caches (um mit CPU mitzuhalten ) [F Cache muss kleiner werden] oder Vergrößerung des Caches (um viele Anfragen an Speicher befriedigen zu können) [F Cache langsamer] F Eigentlich beide notwendig, aber unvereinbar! Lösung: 2 Cache-Ebenen 1 st -level Cache (L1): schnell, klein, angepasst an CPU-Takt 2 nd -level Cache (L2): groß genug, viele Zugriffe zu puffern, kann langsamer sein 12, 2016-29 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Miss Penalty â : Einführung mehrerer Cache-Ebenen (2) Leistungsbewertung jetzt komplexer: Interaktion von L1 und L2-Cache muss berücksichtigt werden! (1) Mittl. Zugriffszeit = Hit Time(L1) + Miss Rate(L1) x Miss Penalty (L1) mit Charakteristik des L2-Caches (2) Miss Penalty(L1) = Hit Time(L2) + Miss Rate(L2) x Miss Penalty(L2) (3) Mittl. Zugriffszeit = Hit Time(L1) + Miss Rate(L1) x (( Penalty(L2 (Hit Time(L2) + Miss Rate(L2) x Miss Beachte: Miss Rate(L2) gemessen auf von L1 übrigen Zugriffen Unterscheidung von lokaler und globaler Fehlzugriffsrate ( L1 (lokal groß für L2-Cache, da nur auf Fehlzugriffen von 12, 2016-30 -

Miss Penalty â : Einführung mehrerer Cache-Ebenen (3) Parameter von 2-Ebenen-Cache-Systemen: Geschwindigkeit von L1-Cache beeinflusst CPU-Takt Geschwindigkeit von L2-Cache beeinflusst nur Verzögerung bei Fehlzugriff auf Daten in L1-Cache F (relativ?) selten F Viele Alternativen für L2, die bei L1 nicht anwendbar sind Ziel: L2-Cache (wesentlich) größer als L1-Cache! 12, 2016-31 -

Miss Penalty â : Einführung mehrerer Cache-Ebenen (4) Verhältnis von L1- zu L2-Cache-Inhalten: Multilevel inclusion (Daten in L1 immer in L2 vorhanden) F Konsistenz(prüfung) einfach! Beachte: Setzt deutlich größeren L2-Cache voraus als s.u. Multilevel exclusion (Daten von L1 nie in L2 vorhanden) L1-Fehlzugriff bewirkt Vertauschung von Blöcken zw. L1 u. L2 F speicherökonomisch, falls L2 nur gering größer als L1 ( 256kB (z.b. AMD Athlon: L1 = 64kB, L2 = 12, 2016-32 -

Miss Penalty â : Critical Word First & Early Restart CPU benötigt häufig nur einen Wert aus dem Cache-Block F nicht warten, bis kompletter Block nachgeladen 2 Realisierungsmöglichkeiten: Critical Word First Zuerst angefragtes Datenwort aus Speicher holen CPU-Ausführung sofort fortsetzen lassen Weitere Inhalte dann parallel zur CPU holen Early Restart Daten in normaler Reihenfolge in Cache-Block laden CPU-Ausführung fortsetzen, sobald angefragtes Wort geladen Vorteile nur bei großen Cache-Blöcken Mit örtlicher Lokalität Wahrscheinlichkeit groß für Zugriff im aktuellen Block! 12, 2016-33 -

Miss Penalty â : Priorisierung von Lese- über Schreibzugriffen Idee: Lesezugriffe behandeln, bevor Schreiboperation abgeschlossen Problem bei write through: Wichtigste Optimierung: Schreibpuffer F kann Wert enthalten, der von Lesezugriff angefragt ist Lösungsmöglichkeiten: ( kontraproduktiv ) Warten bis Schreibpuffer leer Inhalte des Schreibpuffers prüfen und mit Lesezugriff fortfahren, ( Desktop/Server falls keine Konflikte (üblich in Vorgehen bei write back: dirty Block in (kleinen) Puffer übernehmen Zuerst neue Daten lesen, dann dirty Block schreiben 12, 2016-34 -

Miss Penalty â : ( SW Prefetching (durch HW oder ( abholen (deutsch etwa Vorabruf, vorher Elemente in Cache laden, bevor sie gebraucht werden Prefetching versucht Speicherbandbreite zu verwenden, die anderweitig ungenutzt bliebe Kann mit regulären Anfragen/Zugriffen interferieren! 12, 2016-35 -

Miss Penalty â : ( SW Prefetching (durch HW oder a) Hardware-Prefetching für Instruktionen/Daten Bei cache miss: angefragter Block Cache, sequentieller Nachfolger stream buffer Falls bei späterer Anfrage Block im stream buffer: ursprüngliche Cache-Anfrage verwerfen, aus stream buffer nachladen und neuen prefetch starten 12, 2016-36 -

Miss Penalty â : ( 2 ) SW) Prefetching (durch HW oder b) Prefetching kontrolliert durch Compiler Verwendet spezielle Befehle moderner Prozessoren Möglich für Register und Cache Prefetch-Instruktionen dürfen keine Ausnahmen (insbes. Seitenfehler) erzeugen F non-faulting instructions Cache darf nicht blockierend sein (damit Prefetch-Lade-vorgänge und ( möglich weitere Arbeit der CPU parallel Prefetching erzeugt Overhead F Kompromiss erforderlich (nur für die Daten prefetch Instruktionen erzeugen, die ( erzeugen mit großer Wahrscheinlichkeit Fehlzugriffe In Alpha 21264 auch prefetch für Schreibzugriffe (falls angeforderter Block komplett geschrieben wird: write hint Befehl alloziert diesen im (! gelesen Cache, aber Daten nicht 12, 2016-37 -

Miss Rate Hit Time Cache Bandwidth Miss Penalty Zusammenfassung Betrachten von Verfahren zur Reduktion der Rate fehlgeschlagener Cache-Zugriffe Reduktion der Zugriffszeit im Erfolgsfall Erhöhung der Speicherbandbreite Reduktion der Wartezyklen, die ein fehlgeschlagener Zugriff erzeugt 12, 2016-38 -