G. Caches. G.1.1 Kontext & Orientierung



Ähnliche Dokumente
G. Caches. G.1.1 Kontext & Orientierung

11. Caches Pufferspeicher

6 Exkurs: Assoziativspeicher

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

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

Grob-Struktur des Prozessor-Speichersystems

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

Tutorium Rechnerorganisation

Grundlagen der Rechnerarchitektur

Grundlagen der Informationsverarbeitung:

Grundlagen der Rechnerarchitektur. Speicher

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

Lösungsvorschlag zur 5. Übung

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

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

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

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Grundlagen der Rechnerarchitektur. Speicher

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.

RO-Tutorien 15 und 16

Vorlesung Rechnerarchitektur. Speicher V 1.2

Rechnerorganisation. 1. Juni 201 KC Posch

Verbesserung der Leistungsfähigkeit von Caches

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Technische Informatik 1 - HS 2017

Grundlagen der Informatik III Wintersemester 2010/2011

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

4 DRAM-Varianten (2) 4 DRAM-Varianten. 4 DRAM-Varianten (4) 4 DRAM-Varianten (3)

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

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Cache Blöcke und Offsets

Einführung in die technische Informatik

Speicherhierarchie, Caches, Consistency Models

, Franz J. Hauck, Verteilte Systeme, Univ. Ulm, [2005w-TI2-E-Mem.fm, ]

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

Das Konzept der Speicherhierarchie

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

Virtueller Speicher und Cache. VL5 GRT, SS 2004, Kneisel

Grundlagen der Informatik III Wintersemester 2010/2011

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.

Ein konfigurierbarer, visueller Cache-Simulator unter spezieller Berücksichtigung komponenten- basierter Modellierung mit Java Beans

Speicherorganisation

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

4.2 Verbesserung der Leistungsfähigkeit von Caches

Speicherarchitektur (1)

Virtueller Speicher und Memory Management

Tutorium Rechnerorganisation

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

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

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

Tutorium Rechnerorganisation

Teil 2: Speicherstrukturen

Speicherhierarchie. [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor

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

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

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

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

Freispeicherverwaltung Martin Wahl,

Rechnergrundlagen SS Vorlesung

Lösung von Übungsblatt 2

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

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Übung Praktische Informatik II

Grundlagen der Informatik III Wintersemester 2010/2011

RO-Tutorien 17 und 18

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

Lehrveranstaltung: PR Rechnerorganisation Blatt 10. Thomas Aichholzer

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Rechnernetze und Organisation

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

Lösungsvorschlag zur 6. Übung

Lösung von Übungsblatt 2

Schriftliche Prüfung. Aufgaben OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK. Technische Informatik II. am:

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

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

Aufgabe 4 : Virtueller Speicher

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

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

Grundlagen der Informatik III

Inhalt Teil 10 (Caches) aus 6. Speicherorganisation

Teil VIII Von Neumann Rechner 1

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

Wie groß ist die Page Table?

Einführung in die Systemprogrammierung

8 Cache. 8.1 Motivation. 8.1 Motivation 335

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

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

Leichtgewichtsprozesse

Leichtgewichtsprozesse

Technische Informatik 1

Speicherarchitektur (16)

Einführung in die Programmiersprache C

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

Transkript:

G.1.1 Kontext & Orientierung G. Caches Caches sind kleine, aber schnelle Zwischen- bzw. Pufferspeicher. Assoziative Adressierung anstelle von direkter Adressierung. Für Code, Daten & virtuelle Adressen. Verschiedene Ersetzungsstratgien. Höhere Informatik Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe K J Caches G Architektur: - Modellrechner, Pipelining, Out-Of-Order Technik Digitaltechnik: - Logikbausteine, Schaltnetze & -werke, Zahlen E F H C I D Elektronik B Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-1

G.2. Assoziatives Adressierungsverfahren G.2.1 Inhaltsadressierter Speicher, CAM (Content-Adressed Memory) Adressierung herkömmlichen Speichers: die Adresse adr liefert Speicherwort[ adr ], genau ein Ergebnisdatum, ähnlich wie ein Array. Inhaltsadressierter Speicher (Assoziativspeicher): die einzelnen Speicherwörter haben keine Adresse, werden anhand eines Schlüssels ausgewählt, oder anhand des Inhaltes, 0, 1 oder n Ergebnisse.? Bereits 1943 durch Konrad Zuse vorgeschlagen, erst mit Halbleitertechnik in Hardware implementiert. Schneller Zugriff auf Dateninhalte, die teilweise bekannt, deren Speicherzelle jedoch unbekannt sind. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-2

G.2.2 Möglicher Hardware-Aufbau eines Assoziativspeichers Zeile besteht aus k Bit Schlüssel (Key) und n Bit Daten. binäre Codierung der Daten, des Schlüssels und einer Suchmaske. Suche wird durch Maske auf bestimmte Bits des Schlüssels eingeschränkt. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-3

G.2.3 Suchen und Abfragen im Assoziativspeicher Suchen: Eingabe des Suchschlüssels und einer Suchmaske z.b. in besonderen Steuerregistern, parallele oder teilparallele Suche in allen Zeilen nach passendem Muster, Trefferregister hat jeweils 1 Bit gesetzt für alle gefundenen Zeilen. Abfragen der Ergebnisse: gesteuert durch spezielle Steuerlogik, sequentiell anhand des Trefferregisters, jeweils ein Wert in speziellem Ausgaberegister. Ursprüngliche Hoffnungen: massiv parallele Verarbeitung, spezielle Datenbankmaschinen & -speicher, Nachbildung der Arbeitsweise des menschlichen Gehirns (Assoziativ), Heute weitgehend ersetzt durch Hash-Algorithmen und konventionelle Speicher. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-4

G.3. Puffer zum Hauptspeicher G.3.1 RAM-Caches Pufferspeicher bzw. Caches gibt es nicht nur zwischen RAM und CPU. Hier ist aber vorerst RAM-Cache gemeint. Geschwindigkeitsgefälle zwischen Hauptspeicher und Prozessorregistern: Hauptspeicherzugriffe gehen "off-chip" und sind vergleichsweise langsam, obschon CPU und RAM dieselbe Halbleitertechnologie verwenden, superskalare Prozessoren benötigen mehr Befehle pro Zeiteinheit, kürzere Zugriffszeit, höhere Transferrate erforderlich. Lösungsansatz: Speicherhierarchie mit gestaffelt schnellen Speichertechnologien. kein Multiplexverfahren für Zeilen- und Spaltenadresse, schneller Pufferspeicher "on-chip" (Cache). Typische Arbeitsparameter: L1 Cache: SRAM (8 64 kbyte, 1 3 Takte Zugriffszeit) L2 Cache: SRAM (256 16386 kbyte, 3 15 Takte) L3 Cache (selten): SRAM (4 64 MByte, 12 15 Takte) Hauptspeicher: DRAM (64 MByte 8 GByte, 25 40 Takte) Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-5

G.3.2 Analyse der Cache-Organisation mit RMMA RMMA Right Mark Memory Analyzer: hier verwendet für die Beurteilung der Cache-Organisation eines Notebooks, Open Source Programm zur Analyse von Leistungsparametern, Level 1 Daten, Level 1 Code, Level 2 Cache: Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-6

G.3.3 Speichern von Teilbereichen des Adressraumes Hierarchische Strukturen: Transport zwischen Festplatte und Hauptspeicher mithilfe des Dateisystems, Transport zwischen Hauptspeicher und RAM-Cache durch die Hardware, Evtl. getrennte Caches für Code und Daten, Evtl. mehrstufige Caches (L1, L2, L3). Dateisystem Hauptspeicher MCH Daten-Cache Code-Cache Execution Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-7

G.3.4 Cache-Aufbau Cache ist ein Assoziativspeicher für Speichereinträge des Hauptspeichers Schlüssel (Key, Tag) entspricht der gepufferten Hauptspeicheradresse, übrige Daten entsprechen dem Speicherinhalt. Aufbau im Detail: üblicherweise ganze Zeilen, Cache-Lines, Cache-Blocks, mit 8, 16, 32, 64 Bytes, d.h. 64, 128, 256, 512 Bits, "Valid"-Bit für gültige Cache-Zeilen. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-8

G.4. Assoziativität von Caches G.4.1 Direct Mapped Cache - Direkt abgebildet: Pro Hauptspeicheradresse ist immer nur eine Zeile möglich. Unterschiedliche Hauptspeicheradressen in einer Cachezeile möglich. Leistungseinbussen bei ungünstigen Zugriffmustern. Byteadressierung innerhalb einer Cachezeile. Tag-RAM speichert die restlichen Adressteile. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-9

G.4.2 Voll assoziative Cacheorganisation: Sehr viele Komparatorschaltkreise erforderlich. Pro Zeile und Zugriff ein Vergleich, Jede Adresse in jeder Zeile möglich. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-10

G.4.3 z.b. 4-Wege Assoziativspeicher: Eine Adresse kann sich in genau 4 Zeilen befinden. Pro Zugriff 4 simultane Vergleiche. Nur 4 Komparatoren. Typisch in 2006: Plattform Cache Cache Size Line Size # of Lines Mapping Pentium 4 L1 Daten 32 KByte 64 Byte 512 Zeilen 8 way set-assoziativ Pentium 4 L2 2-4 MByte 64 Byte 32-64 kzeilen 8-16 way set-assoziativ G5 L1 Daten 32 KByte 64 Byte 512 Zeilen 2 way set-assoziativ G5 L2 512 KByte 128 Byte 4096 Zeilen 8 way set-assoziativ Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-11

G.5. Verhalten von Caches G.5.1 Durchschreibe-Strategien Wird Cachezeile überschrieben, muß sie evtl. vorher zurückgeschr. werden. Ganze Cache-Zeilen (z.b. 64 Bytes) werden als Burst-Zugriffe transportiert. Write-Through (Leicht implementierbar): Cache-Inhalt sofort im Hauptspeicher nachführen, Erhebliche Verzögerungen über den Speicherbus. Write-Back: Modifikationen im Cache durchführen, Cache-Inhalt erst beim Ersetzen zurückschreiben, Ersatz einer Zeile dauert länger als Write-Through, Trotzdem weniger Speicherbuszyklen erforderlich, Konsistenzproblem zwischen Cache & Hauptspeicher. Write-Allocate: Neue Zeile anlegen, wenn bisher nicht im Cache, Evtl. modifizierte alte Zeile zurückschreiben, Rest der neuen Zeile später nachladen, Schwierige Implementierung. Hauptspeicher Cache CPU Cache t t Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-12

G.5.2 Lese- und Schreibzugriffe Read Hit - Übereinstimmung des Tagsfeldes: Daten werden sofort zur CPU-transportiert. Read Miss - kein passender Tagwert im Cache: die betroffene Cache-Zeile wird im Burst-Mode aus dem Hauptspeicher geladen, die gewünschten Datenbytes kommen zuerst an, weitere Bytes der Zeile später, bei Platzmangel muss eine passende Cache-Zeile ersetzt werden, ersetzen z.b. nach LRU-Verfahren (Least-Recently-Used) Write Hit - Übereinstimmung des Tagfeldes: Daten werden im Cache aktualisiert, entweder Write Back: als "Dirty" markieren, bei Verdrängung Zeile zurückschreiben, oder Write Through: unmittelbar in den Hauptspeicher zurückschreiben. Write Miss - kein passender Tagwert im Cache: entweder Fetch on Write: Cache-Eintrag aus Speicher holen und wie bei Write Hit () oder Write Around: Zugriff direkt im Hauptspeicher ohne Cache-Aktualisierung, oder Write Allocate: Neue Zeile vorsorglich bereitstellen, später komplettieren. Statt auf Hauptspeicher evtl. Zugriff auf Cache der nächsten Ebene. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-13

Faustregeln zur Cache-Dimensionierung: Ein 2-Wege teilassoziativer Cache hat typischerweise eine Miss Rate wie ein doppelt großer direkt abgebildeteter Cache. Ein 8-Wege teilassoziativer Cache hat für die meisten Anwendungen eine Hit Rate wie ein vollassoziativer Cache. Die Zugriffszeiten akkumulieren sich: mittlere Speicherzugriffszeit auf L1-Cache: taccess = tl1 + mrl1 tmem mit Miss Rate des L1-Cache mittlere Speicherzugriffszeit auf L2-Cache: taccess = tl1 + mrl1 ( tl2 + mrl2 tmem ) Drei Arten von Fehlzugriffen/"Cache Misses" (3 C s) mit mrl2 als L2- Miss Rate Erstbelegung (Compulsory): erste Einlagerung in Cache nach Programmstart Kapazität (Capacity): zu wenig Cachezeilen, Verdrängung ohne Adresskonflikt, Konflikte (Conflict): Verdrängung notwendiger Cache-Zeilen durch Konflikte Fehlzugriffe durch Erstbelegung im Allgemeinen vernachlässigbar, Vergrößerung des Caches reduziert Fehlzugriffe erheblich. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-14

G.5.3 Fehlzugriffsverhalten von Caches Die drei Fehlzugriffs-Ursachen in Abhängigkeit von Cachegröße und -typ: Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-15

G.5.4 Cache-Implementierung Internes Pipelining beim Cache-Zugriff Dauer eines Zugriffs ingesamt mehrere Takte, pro Takt wird aber ein Zugriff fertig. Speicheradressen im Cache entweder logisch/virtuell oder physikalisch: logische Adressierung oft im L1-Cache: Vorteil: keine Speicherabbildung (Memory Map) notwendig, Nachteil: Prozessumschaltung muss evtl. L1-Cache löschen, NB: Oft hat jeder Prozess seine eigene Memory Map. physikalische Adressierung in L2/L3-Caches. Vorteil: Die Prozessumschaltung verlangt kein Löschen des Caches, Nachteil: bei jedem Zugriff vorherige Speicherabbildung notwendig Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-16

G.6. Optimierungen im Programm Prefetch-Instruktionen holen benötigte Daten schon vorab in den Cache. Erhöhung der Lokalität: Wiederbenutzung der schon gefüllten Cachezeile, mehr Zugriffe auf weniger Adressen Je nach Compiler horizontal oder vertikal dominierte Arrayindizierung: entweder: horiz = 1024; vertik = 1024; long matrix[ horiz ][ vertik ]; for( ve = 0; ve < vertik; ve ++ ) for( ho = 0; ho < horiz; ho ++ ) matrix[ ho ][ ve ]= 1; oder: long matrix[ vertik ][ horiz ]; for( ve = 0; ve < vertik; ve ++ ) for( ho = 0; ho < horiz; ho ++ ) matrix[ ve ][ ho ]= 1; Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-17

G.6.1 Zugriffsmuster der Programmschleifen Beispielsweise: Angenommen matrix[1024][1024], Elemente à 4 Byte integer, Cachezeile 64 Bytes, Die Elemente matrix[ ho ][0..N-1] konkurrieren evtl. um dieselben Cachezeilen, die Cachezeilen werden evtl. wiederholt ein- und ausgelagert. ungünstig besser Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-18

G.6.2 Erhöhung der Lokalität mit Datenstrukturen Zusammenfassung von gemeinsam genutzten Dreiecks-Koordinaten: als Pascal-Record: point3d = record x, y, z: real end; triangle = record a, b, c: point3d end; und nicht als: koord: array[1..4096, 1..9] of real;... Empfehlung: keine 2er Potenzen als Dimension eines Feldes (niedrigere Assoziativität genügt), sequentiell durch den Speicher laufen (Cachekapazität schonen), Speicherlayout des Compilers untersuchen, Operanden auf Cachezeilen ausrichten. Technische Informatik 2, Wintersemester 2007/08, P. Schulthess & F. Hauck, VS Informatik, Ulm E-19