Cache Blöcke und Offsets

Ähnliche Dokumente
Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Technische Informatik 2 Speichersysteme, Teil 3

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d Technische Informatik I Übung 3. Technische Informatik I Übung 3

Grundlagen der Rechnerarchitektur

Einführung in die technische Informatik

Grundlagen der Rechnerarchitektur

Technische Informatik 2 Speichersysteme, Teil 2

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

Grundlagen der Rechnerarchitektur. Einführung

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Memory Management. Peter Puschner Institut für Technische Informatik

Vorlesung 14 Speichersysteme (2)

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Memory Management Units in High-Performance Processors

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Rechner Architektur. Martin Gülck

Grundlagen der Rechnerarchitektur

CA Übung Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Lerndokumentation. Arbeitsspeicher. Lerndokumentation Arbeitsspeicher. Ausbildung Vorlehre Informatik. Autor: Ramon Schenk

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Tutorium Rechnerorganisation

Computer-Architektur Ein Überblick

Vorlesung: Technische Informatik 3

4.3 Hintergrundspeicher

Die Mikroprogrammebene eines Rechners

IO Performance in virtualisierten Umgebungen

OPERATIONEN AUF EINER DATENBANK

Instruktionssatz-Architektur

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme. Vorlesung 4: Memory. Wintersemester 2001/2002. Peter B.

8. Swapping und Virtueller Speicher

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Prozesse und Scheduling

Rechnerstrukturen: VO, WS 2012/13 Teil 2 Kapitel 5 Kapitel 7

Grundlagen der Informatik III

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Kapitel 9 Hauptspeicherverwaltung

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

Einführung in die Systemprogrammierung

Klausur zur Mikroprozessortechnik

Firebird Database Cache Buffer

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Multicore Programming: Transactional Memory

ggf. page fault virtuelle Adresse physikalische Adresse Hauptspeicher Seitenrahmen Register Seitentabelle logical address page number frame number

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Vorlesung "Struktur von Mikrorechnern" (CBS)

Teil VIII Von Neumann Rechner 1

Betriebssysteme Kap A: Grundlagen

Technische Informatik 2 Software

Computational Biology: Bioelektromagnetismus und Biomechanik

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

N Bit binäre Zahlen (signed)

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

1 Einleitung zum RISC Prozessor

Rechnerarchitektur und Betriebssysteme (CS201): Virtual Memory

Kapitel 8: Physischer Datenbankentwurf

Technische Informatik 1

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Kompetitive Analysen von Online-Algorithmen

Rechnernutzung in der Physik. Betriebssysteme

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Design and Implementation of a Soft-error Resilient OSEK Real-time Operating System

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

1 Aufgaben zu Wie funktioniert ein Computer?

Leistungsanalyse von Rechnersystemen

IBM Informix Tuning und Monitoring

B1 Stapelspeicher (stack)

5 Speicherverwaltung. bs-5.1 1

Elster Software System Installation und Betrieb Rechte / Einstellungen

Optimierte Indexstruktur für Flashspeicher: Lazy-Adaptive Tree

Wie profitiert SAP MaxDB von SSD Technologie?

Hyper-V Grundlagen der Virtualisierung

Ein Scan basierter Seitenangriff auf DES

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Monitoring Microsoft SQL Server

Programmierung Paralleler Prozesse

Betriebssystemschichten ( )

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Prozessarchitektur einer Oracle-Instanz

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS Teil 4/ProtectionI

Projekt für Systemprogrammierung WS 06/07

Zyklus: FETCH, DECODE, FETCH OPERANDS, UPDATE INSTRUCTION POINTER, EXECUTE

Hard & Software Raid

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

Aufbau und Funktionsweise eines Computers

Proseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme

Technische Informatik I

PostgreSQL Hardware und RAM Tuning

Kap 4. 4 Die Mikroprogrammebene eines Rechners

J.5 Die Java Virtual Machine

Adressauflösung. IP Adresse Physikalische Adresse :FF:AA:36:AB: :48:A4:28:AA:18

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

PVFS (Parallel Virtual File System)

Transkript:

Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich mehrere Bytes laden Anschließende Zugriffe auf benachbarte Bytes sind dann ein Hit Konsequenz auf die Aufteilung der Adresse der Form Tag Index? Tag Index Offset Beispiel: Cache mit einem Word pro Eintrag (auf nächster Folie) SS 2012 Grundlagen der Rechnerarchitektur Speicher 16

Beispielimplementierung eines 4KB Cache Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 17

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 32 Bit Adresse 31 30 29... 2 1 0 SS 2012 Grundlagen der Rechnerarchitektur Speicher 18

Quiz Gegeben sei ein Cache mit 64 Blöcken mit Block Größe 16 Bytes. Was ist die Cache Größe in KB? SS 2012 Grundlagen der Rechnerarchitektur Speicher 19

Wie groß sollten Cache Blöcke sein? Je Länger die Blöcke desto größer die Konkurrenz. Je Länger die Blöcke desto teurer ein Miss. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 20

Ergänzung: Split Caches Split Cache: besteht aus zwei unabhängigen Caches Ein Cache für die Instruktionen Ein Cache für die Daten Vorteil: die Cache Bandbreite (d.h. wie viel Daten pro Zeiteinheit können ausgelesen/geschrieben werden) wird erhöht. Erinnerung: unsere MIPS CPU konnte auch gleichzeitig einen Instruction Fetch und einen Datenzugriff machen. Nachteil: die Miss Rate erhöht sich, da die Aufteilung in Bytes für Instruction und Daten Cache fest ist und ggf. nicht optimal für das aktuelle Programm ist. Beispiel: Miss Raten für einen Intrinsity FastMATH Prozessor Split Cache (32 KB aufgeteilt): 3,24% Miss Rate Combined Cache (32 KB für einen Cache): 3,18% Miss Rate SS 2012 Grundlagen der Rechnerarchitektur Speicher 21

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

Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent. Wie erreicht man Konsistenz? Write Through Schreibe immer sofort in den Speicher zurück Einfach aber schlechte Performance Beispiel: 10% Store Instruktionen, CPI ohne Miss = 1 und CPI bei Speicherzugriff = 100. Was ist der Gesamt CPI Wert? SS 2012 Grundlagen der Rechnerarchitektur Speicher 23

Write Buffer Verbesserungen Ergänzung zu Write Through Ausstehende Writes werden in einem kleinen Puffer zwischengespeichert CPU kann nach schreiben in den Puffer sofort weiter machen Parallel werden Daten aus dem Puffer in den Speicher geschrieben CPU muss nur stallen, wenn der Puffer voll ist. Write Back Alternative zu Write Through Speichere Änderungen zunächst nur im Cache Schreibe Änderung in Speicher nur dann, wenn der Cache Block ersetzt wird SS 2012 Grundlagen der Rechnerarchitektur Speicher 24

Behandlung von Cache Misses Was passiert beim Schreiben (sowohl bei Write Through als auch Write Back) eines Bytes bei einem Cache Miss? Eine naheliegende Lösung Lade den gesamten Block aus dem Speicher Überschreibe das Byte in dem Block Alternative: No Write Allocate Aktualisiere nur den darunter liegenden Speicher aber nicht den Cache Ist sinnvoll, wenn lesender Zugriff nicht zu erwarten ist SS 2012 Grundlagen der Rechnerarchitektur Speicher 25

Cache Grundlagen Speicherunterstützung für Caches SS 2012 Grundlagen der Rechnerarchitektur Speicher 26

Motivation Erinnerung: CPU und Speicher kommunizieren über einen Bus. Was beeinflusst die Miss Penalty? Geschwindigkeit des Busses. Speicherorganisation (siehe gleich). Ein angenommenes Beispiel von Speicherzugriffswerten: 1 Speicherbuszyklus die gewünschten Adressen zu senden 15 Speicherbuszyklen für jeden initiierten DRAM Zugriff 1 Speicherbuszyklus ein Datenwort zu senden Was ist die Miss Penalty bei einem Cache mit vier Word Breite und sequentiellem Zugriff auf ein DRAM mit einem Word Breite? Kann man das verbessern? SS 2012 Grundlagen der Rechnerarchitektur Speicher 27

Bessere Unterstützung durch das DRAM Bezeichnet man auch als Interleaving. Was ist die Miss Penalty für zweimal breiteren Bus und Speicher? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 28

Bessere Unterstützung durch das DRAM Bezeichnet man auch als Interleaving. Was ist die Miss Penalty für Speicherorganisation mit 4 parallelen Bänken aber unverändertem Bus? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 29

Entwicklungen der letzten Jahre Organisation des Speichers in Zeilen und Spalten. Vorhalten einer ganzen Zeile in einem schnelleren RAM internen SRAM. SDRAM (Synchronous DRAM) Eleminiere Zeit zur CPU RAM Synchronisation durch eigene Clock. DDR (Double Data Rate) Verdopplung des Datentransfers durch Verwendung sowohl steigender als auch fallender Flanke eines Clock Zyklus. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 30

Verbessern der Cache Performance SS 2012 Grundlagen der Rechnerarchitektur Speicher 31

Verbesserte Cache Strategien Im Folgenden betrachten wir eine Verbesserung von Direct Mapped Caching. Zur Darstellung der Verbesserung verwenden wir folgende vereinfachte Cache Darstellung: Speicher Blöcke 0 :... 1 :... 2 :..... 8 :... 9 :... 10 :.... 0 1 2 3 4 5 6 7 Tag Data SS 2012 Grundlagen der Rechnerarchitektur Speicher 32

Fully Associative Cache Speicher Blöcke 0 :... 1 :... 2 :..... 8 :... 9 :... 10 :.... 0 1 2 3 4 5 6 7 Tag Data Beobachtung: bei Direct Mapped Cache kann ein Speicherblock nur an einer Stelle gespeichert werden. Konsequenz: wechselhafter Zugriff auf zwei Speicherblöcke die auf die selbe Stelle gemappt werden, führt permanent zu Cache Misses. Praktisch wäre doch folgender Cache: Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Ein Eintrag kann überall stehen. Nachteil: Durchsuchen des Cache dauert länger und mehr Hardware Aufwand! Wie wäre es mit einem Kompromiss:... SS 2012 Grundlagen der Rechnerarchitektur Speicher 33

(N Wege) Set Associative Cache Tag Data 0 1 2 3 4 5 6 7 Direct Mapped Speicher Blöcke 0 :... 1 :... 2 :..... 8 :... 9 :... 10 :.... Set Tag Data Tag Data 0 1 2 3 Two Way Set Associative Set Tag Data Tag Data Tag Data Tag Data 0 1 Four Way Set Associative Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Fully Associative SS 2012 Grundlagen der Rechnerarchitektur Speicher 34

Zwischenbilanz Finden der Cache Zeile c des Speicher Blocks n in einem Direct Mapped Cache der Größe k? (Vergleiche anschließend n mit dem in Zeile c gespeicherten Tag) Finden der Set s des Speicher Blocks n in einem N Way Set Associative Cache mit k Sets? (Durchlaufe dann die Set s und suche nach einem Tag der n entspricht) SS 2012 Grundlagen der Rechnerarchitektur Speicher 35

Eine Frage ist noch zu klären Annahme die Set eines N Way Set Associative Cache ist voll (bzw. der Fully Associative Cache ist voll). Wo kann ein neuer Speicherblock abgelegt werden? Tag Data 44...??? Tag Data Tag Data Tag Data Tag Data 24... 66... 20... 16... Häufig verwendete Strategie: Least Recently Used (LRU) Ersetze den Block, auf den schon am längsten nicht zugegriffen wurde. SS 2012 Grundlagen der Rechnerarchitektur Speicher 36

Mehr Wege resultieren in weniger Misses Beispiel: betrachte Cache Varianten mit vier Speicherblöcken Tag Data 0 1 Set Tag Data Tag Data 2 0 Tag Data Tag Data Tag Data Tag Data 3 1 Direct Mapped Set Associative Fully Associative Wie viele Cache Misses erzeugt die folgende Sequenz von Speicherblockzugriffen? 0, 8, 0, 6, 8 SS 2012 Grundlagen der Rechnerarchitektur Speicher 37

Mehr Wege resultieren in weniger Misses Beispiel: Direct Mapped Tag Data 0 1 2 3 Vorüberlegung: Auf welchen Cache Block werden die Block Adressen gemapped? Block Adresse Cache Block 0 6 8 Speicherblockzugriffe: 0, 8, 0, 6, 8 (Speicherblockinhalt = M[i]) Zugriff 0 8 0 6 8 Hit oder Miss Inhalt der Cache Blöcke nach der Referenz 0 1 2 3 SS 2012 Grundlagen der Rechnerarchitektur Speicher 38

Mehr Wege resultieren in weniger Misses Beispiel: Set Associative Set Tag Data Tag Data 0 1 Vorüberlegung: In welche Set werden die Block Adressen gemapped? Block Adresse Cache Set 0 6 8 Speicherblockzugriffe: 0, 8, 0, 6, 8 (Speicherblockinhalt = M[i]) Zugriff 0 8 0 6 8 Hit oder Miss Inhalt der Cache Blöcke nach der Referenz Set 0 Set 0 Set 1 Set1 SS 2012 Grundlagen der Rechnerarchitektur Speicher 39

Mehr Wege resultieren in weniger Misses Beispiel: Fully Associative Tag Data Tag Data Tag Data Tag Data Speicherblockzugriffe: 0, 8, 0, 6, 8 (Speicherblockinhalt = M[i]) Zugriff 0 8 0 6 8 Hit oder Miss Inhalt der Cache Blöcke nach der Referenz Block 0 Block 1 Block 2 Block 3 SS 2012 Grundlagen der Rechnerarchitektur Speicher 40

Wie Aufwendig sind mehr Wege? Offset 2 Bits Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 41

Wie viele Wege sind sinnvoll? Feste Zahl kann hier nicht genannt werden. Tradeoff: Zeit/Hardware Aufwand versus Miss Raten. Beobachtung: (64KB Cache, 16 Word Blöcke) Miss Raten lassen sich in dem Beispiel mit mehr Assoziativität nicht besonders weiter reduzieren. Zeit/Hardware Aufwand durch mehr Assoziativität würde sich hier nicht weiter lohnen. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 42

Multi Level Caches CPU First Level Cache Second Level Cache Optimiert auf geringe Hit Time (und damit recht klein) Optimiert auf geringe Miss Ratio (also mehr und größere Blöcke und damit höhere Hit Time) Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 43

Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6 Speicherblock 7... Address Translation Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5... Speicherblock m Physikalischer Speicher Address Translation Prozess 2 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6 Speicherblock 7... Virtuelle Adressen Speicherblock n Virtueller Speicher Sekundärer Speicher (Festplatte oder SSD) Speicherblock n Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 45

Abbilden von virtuellen auf physikalische Adressen Virtuelle Adresse 31 30 29 28 27... 15 14 13 12 11 10 9 8... 3 2 1 0 Virtuelle Seitennummer Seiten Offset Translation Physikalische Adresse 29 28 27... 15 14 13 12 11 10 9 8... 3 2 1 0 Physikalische Seitennummer Seiten Offset Quiz: Größe x des virtuellen Adressraumes, Größe y des physikalischen Adressraumes und Größe z der Speicherblöcke? SS 2012 Grundlagen der Rechnerarchitektur Speicher 46

Weitere Details zur Address Translation Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 SS 2012 Grundlagen der Rechnerarchitektur Speicher 47

Page Faults Page Fault: die Page muss in eine freie Page im Speicher geladen werden. Was, wenn keine Page mehr frei ist? Andere Page im Speicher muss ausgelagert werden. Mögliche Ersetzungsstrategie: LRU (siehe voriges Thema Caching). Woher weiß man eigentlich, welche Page schon lange nicht mehr adressiert wurde? Manche Prozessoren können die Page Table mit einem Reference/Use Bit taggen. Den Rest muss das Betriebssystem übernehmen (mehr dazu in der Vorlesung Betriebssysteme) SS 2012 Grundlagen der Rechnerarchitektur Speicher 48

Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten wir mindestens 18 Bits). Damit benötigen wir insgesamt: Anzahl Page Table Einträge: Größe der Page Table: Wir benötigen so eine Page Table pro Prozess! Noch gravierender ist es natürlich für 64 Bit Adressen! Größe der Page Table: SS 2012 Grundlagen der Rechnerarchitektur Speicher 49

Techniken zur Reduktion der Page Table Größe Page Table Größe ist limitiert durch ein spezielles Limit Register: Adressen erst mal nur bis maximal dem Inhalt des Limit Registers erlaubt. Limit Register wird nur bei Bedarf (also überschreiten) erhöht. Sinnvoll, wenn Speicher nur in eine Richtung wächst. Page Table ist in zwei Segmenten organisiert: Beide Segmente wachsen wie vorhin beschrieben mittels eines Limit Registers nur bei Bedarf. Ein Segment wird für den Stack verwendet und wächst von oben nach unten. Das andere Segment wird für den Heap verwendet und wächst von unten nach oben. Höchstes Adress Bit bestimmt welches der beiden Segmente verwendet wird. (Also: Speicher in zwei gleich große Teile unterteilt) SS 2012 Grundlagen der Rechnerarchitektur Speicher 50

Techniken zur Reduktion der Page Table Größe Invertierte Page Tables: Es wird eine Hash Funktion auf die virtuelle Adresse angewendet. Die Größe der Page Table entspricht der Anzahl Seiten im physikalischen Speicher. Jeder Eintrag speichert die aktuellen High Order Bits der Adressen zu den die aktuelle Page gehört. Mehrere Level von Page Tables: Oberster Level zeigt zunächst auf sehr große Blöcke (auch als Segmente bezeichnet). Innerhalb eines Segments wird wiederum mittels Page Table feiner (dann als Pages bezeichnet) unterteilt. Referenzieren einer Page: High Order Bits bestimmen das Segment (wenn vorhanden); die nächsten Bits dann die richtige Page in diesem Segment. Nachteil dieses Verfahrens: Adress Translation ist aufwendiger. SS 2012 Grundlagen der Rechnerarchitektur Speicher 51

Techniken zur Reduktion der Page Table Größe Paged Page Tables: Page Table befindet sich selber im virtuellen Speicher. Mögliche rekursive Page Faults müssen durch geeignete Betriebssystem Mechanismen verhindert werden. (Keine weiteren Details hier) SS 2012 Grundlagen der Rechnerarchitektur Speicher 52