Technische Informatik II (TI II) (9) Speicherverwaltung II. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Ähnliche Dokumente
Tutorium Rechnerorganisation

Technische Realisierung (1)

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

RO-Tutorien 15 und 16

Technische Informatik 1 - HS 2017

Speicherverwaltung (Swapping und Paging)

Virtueller Speicher und Memory Management

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

Teil 2: Speicherstrukturen

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Übung Praktische Informatik II

Cache Blöcke und Offsets

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

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

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

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

Wie groß ist die Page Table?

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Grundlagen der Rechnerarchitektur. Speicher

5.5 Virtueller Speicher

Zwei Möglichkeiten die TLB zu aktualisieren

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

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

Betriebssysteme I WS 2016/2017. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

(Cache-Schreibstrategien)

Wunschvorstellung der Entwickler vom Speicher

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Echtzeitbetriebssysteme

Leichtgewichtsprozesse

Leichtgewichtsprozesse

Betriebssysteme Kap J, Teil C: Paging, Pagereplacement

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

Grundlagen der Informatik III Wintersemester 2010/2011

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Übung zu Einführung in die Informatik # 10

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2

Grob-Struktur des Prozessor-Speichersystems

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Übung zu Grundlagen der Betriebssysteme. 14. Übung

Adreßräume. Motivation. Seitenersetzung (Paging) Systemsoftware. = Referenzlokalität. Seite 2.1. Instruktionen werden wiederholt ausgeführt

Betriebssysteme (BS)

Hauptspeicherverwaltung - Memory Management

RO-Tutorien 17 und 18

7. Speicherverwaltung

Linux Paging, Caching und Swapping

Grundlagen der Informatik III Wintersemester 2010/2011

2.3 Prozessverwaltung

Grundlagen der Rechnerarchitektur

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Rechnergrundlagen SS Vorlesung

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

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

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

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Lösungsvorschlag zur 6. Übung

Grundlagen der Rechnerarchitektur. Speicher

Memory Management. Peter Puschner Institut für Technische Informatik

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Speicherorganisation

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Lösung von Übungsblatt 5

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

5. Aufgabenblatt Speicherverwaltung

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

Einführung in die technische Informatik

Sharing und invertierte Seitentabellen

RO-Tutorien 15 und 16

Freispeicherverwaltung Martin Wahl,

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

Betriebssysteme. Speicherverwaltung - Grundlegende Konzepte. Sommersemester 2014 Prof. Dr. Peter Mandl. Prof. Dr. Peter Mandl Seite 1.

Speicherarchitektur (1)

Abbilden von virtuellen auf physikalische Adressen

8. Swapping und Virtueller Speicher

Konzepte von Betriebssystem- Komponenten Olessia Usik 20. Juni 2005

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Technische Informatik II (TI II) (8) Speicherverwaltung. Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

Grundlagen der Informationsverarbeitung:

(Prüfungs-)Aufgaben zum Thema Speicherverwaltung

Inhaltsübersicht. Speicherverwaltung Teil I. Motivation. Prinzipielle Arten der Speicherverwaltung

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Speicherhierarchie, Caches, Consistency Models

5 Kernaufgaben eines Betriebssystems (BS)

Betriebssysteme 1. Thomas Kolarz. Folie 1

Fachbericht Thema: Virtuelle Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

Betriebssysteme Sommersemester Betriebssysteme. 5. Kapitel. Adressumsetzung. Dr. Peter Tröger / Prof. M. Werner. Professur Betriebssysteme

Besprechung der Probeklausur Übungsscheine, inoffizielle Evaluation Übungsaufgaben Noch Fragen?

9) Speicherverwaltung

Tutorium Rechnerorganisation

Transkript:

1 (TI II) (9) Speicherverwaltung II Sebastian Zug Arbeitsgruppe: Embedded Smart Systems

2 Auswertung Evaluation Gut fand ich: Videoaufzeichung praktische Aufgaben umfassende Unterstützung bei den praktischen Aufgaben Das Debugging mit der Konsole Aufgreifen von Stoff aus TI I Herr Haft bitte??? Nicht gut fand ich: Probleme mit der Homepage, Übungsaufgaben, Zeitmangement Man könnte mehr in der Vorlesung auf die Übungen eingehen 100 Prozent praktische Votierungen dass die praktische Übungen nahezu ohne Hilfestellung bewältigt werden muss, absolute Hölle Schwer zu verstehende Implementierungsaufgaben Keine konkrete Vorbereitung auf die Klausur Superspäter Video Upload Probleme beim Patchen

3 Auswertung Evaluation An der Verstaltung könnte verbessert werden: praktische Aufgaben mehr erklärt werden vorher Aufgaben selber durchprobieren mehr Theorie Praxis und Theorie nicht am gleichen Tag Paralleles Seminar / Gleichzeitiges Tutorium Empfehlung: Viel Zeit mitbringen solide C++ Kenntnisse vorher aneigen TI I besuchen sich die Programmierlösungen aus dem Vorjahr besorgen Zeitaufwand (ohne Übung, Vorlesung)

4 Fragen an die Veranstaltung Welche Aspekte sind bei der Auswahl einer Seitenersetzungsstrategie zu hinterfragen? Warum ist die optimale Seitenersetzung praktisch nicht umsetzbar? In welchem Punkt verbessert der Second Chance Algorithmus den FIFO Ansatz? Warum unterscheidet man zwischen globalem und lokalen Scheduling? Welche Funktion übernimmt der Cache-Speicher? Welche Bedeutung haben den drei C im Hinblick auf die Cache-Missrate? Wie werden diese durch die Parameter des Caches bestimmt? Benennen Sie unterschiedliche Einlagerungsstratgien für die Cache. Worun unterscheiden sich diese?

5 Literatur Bücher Operating System Concepts, Abraham Silberschatz Computer-Arcrhitecture. A Quantitative Approach, John L. Hennessy, David A. Patterson: Webseiten Grundlagen der Informatik III Wintersemester 2010/2011 15. Vorlesung Dr.-Ing. Wolfgang Heenes Prof. Christoph Reichenbach, Uni Frankfurt, Youtube-Channel https://www.youtube.com/channel/ucpsogwyh5yhhvqut3x6c_2g

6 Adressumsetzung mit Seiten 01010110 0 1 0 1 logische (virtuelle) Adresse (20 Bit) Seiten tabellen Index Versatz (offset) 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 0 Real Speicher 64 K = 16 x 4K Kacheln + 1 1 0 1 Kachel# (realer Seitenrahmen) 1 1 0 1 reale Adresse (16 Bit) 0 0 0 1 1 1 0 1 0 1 1 0 1101 0001 1101 0110 offset Seitentabelle (256 Einträge) 1101 0000 0000 0000 Seitentabellenbasisregister virtueller Adressraum: 2 20 = 1 M max. Anzahl der Seiten: 256 max. Größe der Seiten: 4 k

7 Verwaltung des virtuellen Speichers Woher weiß man, wie viele Seiten benötigt werden? Einlagern von Seiten auf Anforderung Was tun, wenn mehr Seiten benötigt werden als Seitenrahmen zur Verfügung stehen? Seitenersetzungsmechanismen Kann man den Speicherzugriff noch weiter Beschleunigen? Caches

8 Virtual Memory und Demand Paging virt. Adr. Raum Seitentabelle 0 1 2 3 4 5 6 7 A B C D 5 10 14 2 10 79 10 100 10 D B F A C 0 1 2 3 4 5 6 7 Rahmen im Realspeicher 8 9 10 11 12 E F 3 0 12 3 10 A E Hintergrundspeicher 13 14 15 F C D B Present Bit (Seite im Hauptspeicher)

9 Die MMU: Speicherverwaltungseinheit MMU Memory Management Unit Adressübersetzung benötigt mehrere Ebenen der Indirektion negative Auswirkung auf Leistung! benötigt Hardwareunterstützung zur Beschleunigung. CPU Memory logische Adresse MMU reale, physische Adresse Seiten- oder Segmenttabelle Hintergrundspeicher Translation Lookaside Buffer (TLB) oder Address Translation Cache (ATC) Bus

10 Demand Paging reference to a memory location Hardware Mechanismus page is mapped in TLB? yes no exception: trap to OS check present bit in page descriptor Betriebssystem page is in physical memory? no yes check for free TLB entry load TLB with transl. info check for free frame load page from disk update page table access phys. mem. Page fault!

11 Demand Paging: Abschätzung Normaler Zugriff, kein Seitenfehler: Zugriffszeit ~ 5-200 ns Wie hoch ist die Zugriffszeit bei einem Seitenfehler? p: Wahrscheinlichkeit für einen Seitenfehler Annahmen Normale effektive Zugriffszeit: 100 ns Laden einer Seite von der Platte: ~ 20 ms Effektive Zugriffszeit für p=0,01: (1-p) 100ns + p 20.000.000ns = 0,99 100 + 0,01 20.000.000ns = 99 + 200.000 ns 200 µs Um im Bereich der normalen Zugriffszeit zum Realspeicher zu bleiben muss die Wahrscheinlichkeit eines Seitenfehlers in der Größenordnung von 0,000005 liegen! -> 1 Seite pro 200000 Zugriffe darf zu einem Seitenfehler führen!

12 Seitenersetzungsverfahren Das Betriebssystem muss zukünftige Anforderungen vorhersagen. Dazu kann es nur die Analyse der Gegenwart und Vergangenheit ausnutzen: Wann wurde die Seite eingelagert? Wurde auf die Seite zugegriffen? Wurde die Seite modifiziert? Welche Prozesse sind zur Zeit aktiv? ersetze 42 Seiten- Deskriptor C R D P protect. frame number C: Caching, R: Referenced, D: Dirty (modified), P: Present

13 SES - FIFO FIFO: Ersetzt die Seite, die am längsten im Speicher ist. Ref. Folge Kachelzuordnung im Realspeicher Kontrollstatus: Alter der Seite frame 1 frame 2 frame 3 frame 1 frame 2 frame 3 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 4 4 4 5 5 5 5 5 5 2 2 2 1 1 1 1 1 3 3 3 3 3 3 2 2 2 2 2 4 4 0 1 2 0 1 2 0 1 2 3 4 5-0 1 2 0 1 2 3 4 0 1 2 - - 0 1 2 0 1 2 3 4 0 1 P P P P P P P P P 9 Seitenfehler Zeit der Aktivierung Ende d. Liste älteste Seite 0 1 7 F1 A F3 F2 Liste zur Verwaltung der Kachelzuordnung

P P P P - - P - - - P - 14 Optimale Seitenersetzungsstrategien ref. sequence frame assignment in phys. memory control state: distance to next reference ref. sequence frame assignment in phys. memory control state: distance to next reference frame 1 frame 2 frame 3 frame 1 frame 2 frame 3 frame 1 frame 2 frame 3 frame 4 frame 1 frame 2 frame 3 frame 4 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 1 1 1 1 1 1 3 4 4 2 2 2 2 2 2 2 2 2 2 2 3 4 4 4 5 5 5 5 5 5 4 3 2 1 3 2 1 4 3 2 1 3 2 1 7 7 6 5 5 4 3 2 2 P P P P P P P 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 1 1 1 1 1 1 1 4 4 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 5 5 5 5 5 5 4 3 2 1 3 2 1 4 3 2 1 3 2 1 7 6 5 4 3 2 1 7 6 5 5 4 3 2 1 3 Kacheln 7 Seitenfehler Ersetze die Seite, die erst nach der größten Zahl von Zyklen wieder abgerufen wird! 4 Kacheln 6 Seitenfehler

15 SES Not Recently Used NRU unterscheidet 4 Seitenklassen: Klasse 0: R=0, D=0 - nicht referenziert, nicht modifiziert Klasse 1: R=0, D=1 nicht referenziert, modifiziert Klasse 2: R=1, D=0 referenziert, nicht modifiziert Klasse 3: R=1, D=1 referenziert und modifiziert NRU ersetzt eine beliebige Seite aus der niedrigsten nichtleeren Klasse! sweep sweep Ref. Folge Kachelzuordnung im Realspeicher Kontrollstatus: Seitenklasse frame 1 frame 2 frame 3 frame 1 frame 2 frame 3 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 1 1 1 5 1 1 3 3 5 2 2 2 2 2 2 2 2 2 2 5 3 4 4 4 4 4 4 4 4 4 2 3 3 3 3 2 2 2 0 2 2 2-2 2 2 0 2 3 3 1 1 1 3 - - 2 2 0 2 3 3 1 3 3 3 P P P P P P P P 8 page faults

16 SES Second Chance Variation von FIFO: Der "Second Chance" Algorithmus Die Seiten sind in einer Liste nach FIFO geordnet check page at the tail of the list Bit R=0? yes replace page no 1. Move page to the head of the list 2. clear R (R=0) Das Verfahren ersetzt Seiten, die am frühsten eingelagert wurden UND die seit dem letzten Markierungsdurchlauf (sweep) nicht mehr referenziert wurden.

17 Zeit der Second Chance Algorithmus Aktivierung Ende d. Liste älteste Seite K Wohin? 0 3 7 8 12 14 15 18 A B C D E F G H R=1 R=1 R=0 R=0 R=1 R=1 R=0 R=1 3 7 8 12 14 15 18 20 B C D E F G H Seiten sind nach FIFO geordnet R=1 R=0 R=0 R=1 R=1 R=0 R=1 R=0 7 8 12 14 15 18 20 21 C D E F G H A R=0 R=0 R=1 R=1 R=0 R=1 R=0 R=0 8 12 14 15 18 20 21 22 D E F G H A B K R=0 R=1 R=1 R=0 R=1 R=0 R=0 R=0

18 SES Least Recently Used Verdränge die Seite, die am längsten nicht referenziert wurde. Kette der Referenzen Rückwärtsabstand Vorwärtsabstand Vergangenheit "least recently used" nutzt die Referenzen der Vergangenheit Jetzt optimale Ersetzung nutzt die zukünftigen Referenzen Zukunft Problem: Least Recently Used ist schwer zu implementieren!

19 SES Least-Recently-Used ref. sequence frame assignment in phys. memory control state: backward distance frame 1 frame 2 frame 3 frame 4 frame 1 frame 2 frame 3 frame 4 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 1 1 1 1 1 1 1 1 5 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 5 5 5 5 4 4 4 4 4 4 4 4 3 3 3 0 1 2 3 0 1 2 0 1 2 3 0-0 1 2 3 0 1 2 0 1 2 3 - - 0 1 2 3 0 1 2 3 0 1 - - - 0 1 2 3 4 5 0 1 2 P P P P P P P 7 page faults

20 Working Set Algorithm w(k,t) Größe des WS wie viele Speicherreferenzen fallen in ein bestimmtes Fenster? k: Anzahl der letzten Speicherreferenzen Die Menge der Seiten, die von einem Prozess in einem bestimmten Zeitfenster benutzt werden, wird als Working Set (WS) bezeichnet.

Source: M. Esponda-Argüero, Freie Universität Berlin 21 Working Set Algorithm Wenn Δ zu klein ist, können viele Prozesse im Speicher arbeiten, aber die Lokalitäten werden nicht komplett Thrashing (Seitenflattern) Wenn Δ zu groß ist, werden mehrere Lokalitäten gleichzeitig umfasst. Wenn Δ ohne Grenzen wächst, ist irgendwann das ganze Programm da. - niedrige CPU Auslastung - zu wenig Programme können gleichzeitig arbeiten. - sehr großer Zeitaufwand beim swapping Δ

22 WS Algorithmus Seitendeskriptor for all descriptors: if R=1: Seitentabelle... 2083 2003 1 1 R-Bit virtual time: vt Das Feld enthält die Zeit des letzten Zugriffs auf die Seite. set vt to cvt and set R=0; 1981 1 if R=0 && (cvt - vt) > t: replace; if R=0 && (cvt - vt) < t: no change; if no change: replace oldest frame with R=0 && (cvt - vt) > t; if all descriptors R==1 replace arbitary one 1620 2014 2020 2032 1160... 0 1 1 1 0 "virtual time" ist eine Prozesslokale Repräsentation der Zeit, die mit Prozessbeginn startet. current virtual time: cvt 2204 t = 800 : Schwelle für die Zeitdifferenz cvt - vt

23 Seitenersetzungsstrategien Vergleich Algorithmus Eigenschft. impl. Kommentar optimal NRU: FIFO 2nd chance: Clock: LRU: WS: nur zum Vergleich, kann nicht realisiert werden einfach und einfach zu realisieren einfach; Problem: wichtige (alte) Seiten werden verdrängt substantielle Verbesserung von FIFO intelligente Implementierung von 2nd Chance exzellent, aber schwierig in der Implementierung gut, Implementierungsprobleme

24 Globale und Lokale Seitenersetzungsstrategien Seitenersetzungsalgorithmen wurden bisher nur für einzelne Prozesse betrachtet (lokale Strategien). In der Praxis laufen jedoch meist mehrere Programme (quasi-)parallel. -> zur Verfügung stehender physikalische Speicher muss unter den Prozessen aufgeteilt werden. Herausforderungen: + Fragmentierung - bekommt beispielsweise ein Prozess für die komplette Laufzeit eine festen Speichergröße zugeordnet, die kleine als die maximal benötigte ist, so erzeugt der Prozess ständig Seitenfehler obwohl u.u. noch freie Seitenrahmen auf dem System zur Verfügung stehen. + dynamische Aufteilung des Speichers

25 Gemeinsame Seiten Führen zwei Prozesse das selbe Programm aus, ist es effizienter Seiten gemeinsam zu nutzen, als mehrere Kopien der selben Seite im Speicher zu halten. Seiten auf die nur lesend zugegriffen wird, können gemeinsam genutzt werden. Seiten auf die auch schreibend zugegriffen wird ist eine gemeinsame Nutzung in der Regel nicht möglich. -> Einfache Lösung: Zwei getrennte Adressräume für Daten und Programmcode. alle Prozess nutzen die Pagetables für den Programmcode gemeinsam getrennte Seitentabellen für die Daten

26 Zusammenfassung Ziele: unendlich {groß, schnell, billig}, -->Zielkonflikte Verwaltung des physischen Speichers: Interne und externe Fragmentierung Lokale und globale Listenverwaltung Buddy System Virtueller Speicher: Segmentierung: Seitenorientierung: + private Adressräume - Segment muss in physischen Speicher passen + riesiger linearer Adressraum - Schutz, Problem der Seitentabellen Seitenersetzungsstrategien Global / Lokal

27 Speicherverwaltung Die Kosten-Leistungs-Perspektive sehr teuer sehr billig sehr schnell schnell langsam sehr langsam registers scratchpad caches RAM ROM Disk DVD-ROM CD-ROM Tape on-chip on-board Hintergrund einzelner CPU Zyklus einzelner in-/ externer Buszyklus ms-minutes 0,000000001 sec 0,0000001 sec 0,001 sec

28 Typische Cache Hierarchie Die von der CPU gelieferte Adresse wird mit den im Cache gespeicherten Adressen verglichen. Gleichzeitig wird der Hauptspeicher adressiert. Liegt das adressierte Speicherwort im Cache (Treffer, Hit) wird es in die CPU geladen. Der Hauptspeicherzugriff wird abgebrochen. Liegt das adressierte Speicherwort nicht im Cache (Nicht-Treffer, Miss) wird es (zusammen mit anderen Speicherworten) in den Cache und die CPU geladen. Ist der Cache vollständig belegt, müssen Speicherworte ausgelagert werden. CPU-Gehäuse CPU-Chip L1-I MMU L1-D Register 1 kb sofort L1 Cache 64 kb 4 Zyklen L2 Cache 256 kb 10 Zyklen.. Arbeitsspeicher 16 GB 200 Zyklen Festspeicher??? > 100000 Daten L3 Cache L2 Cache I+D Speicher Bus Hauptspeicher

29 Das Lokalitätsprinzip zeitliche Lokalität: wenn ein Speicherwort benutzt wurde wird es mit hoher Wahrscheinlichkeit nach einem "kurzen" Zeitintervall wieder benutzt. räumliche Lokalität: wenn ein Speicherwort benutzt wurde werden Speicherworte der (Adressen-) Umgebung mit hoher Wahrscheinlichkeit auch genutzt Grund: Sequentielle Programmausführung: Unterbrechung lediglich durch im Quelltext vorkommende Verzweigungen nachfolgende Befehle werden also sehr wahrscheinlich ebenfalls verarbeitet. Verzweigungen finden dabei zu großen Teilen nur in Schleifen und Prozeduren statt, welche häufig mehrmals wiederholt ausgeführt werden. Verzweigungen zu entfernten Adressen, welche die Lokalität verletzen, sind dabei relativ selten.

30 Quantifizierung der Lokalität die Trefferrate Trefferrate: h = Anzahl der Treffer Anzahl der Gesamtzugriffe 100% Fehl-Rate: m = oder Miss-Rate Anzahl der Nicht-Treffer Anzahl der Gesamtzugriffe 100% Durchschnittliche Zugriffszeit : T AV = (h T cache ) + (m T HS ) h = 90, T cache = 1 ns, T HS = 50 ns h = 99, T cache = 1 ns, T HS = 50 ns T AV = (0,9 1) + (0,1 50 ) = 5,9 ns T AV = (0,99 1) + (0,01 50 ) = 1,49 ns

31 Typen von Fehlraten Compulsory The very first access to a block cannot be in the cache, so the block must be brought into the cache. Compulsory misses are those that occur even if you had an infinite cache. Capacity If the cache cannot contain all the blocks needed during execution of a program, capacity misses (in addition to compulsory misses) will occur because of blocks being discarded and later retrieved. Conflict If the block placement strategy is not fully associative, conflict misses (in addition to compulsory and capacity misses) will occur because a block may be discarded and later retrieved if conflicting blocks map to its set. Computer Architecture A Quantitative Approach, Hennessy, Patterson

32 4 Fragen zum Cache 1. Wie kann der sehr große Adressraum des Hauptspeichers auf die wenigen Einträge im Cache abgebildet werden? oder: wohin wird ein Datenblock im Cache eingelagert? 2. Wie wird ein Datenblock im Cache gefunden? oder ist der adressierte Block auch der gesuchte Block? 3. Wann und wie werden Dateblöcke im Cache ersetzt? 4. Was passiert bei Schreibzugriffen? oder: wie wird die Übereinstimmung zwischen Cache und Hauptspeicher sichergestellt?

(FFFFFF...) FF 33 Abbildungsproblem Physische Adresse von CPU?? 60 ns Adresse Cache 2Bit Daten 1 ns Cache Hauptspeicher 1. alle Bits der Adresse werden genutzt (assoziativer Cache (Hardware)) 2. Teile der Adresse werden genutzt (Hashing) (000000...) 00

34 (Voll-)assoziativer Cache Adresse (Suchschlüssel) 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 0 Ein beliebiger Eintrag kann von jeder Adresse belegt werden. Bei jedem Speicherbefehl werden alle Einträge parallel auf einen Treffer durchsucht Treffer

35 Suche im vollassoziativen Cache Suchschlüssel (Adresse) Eintrag Hardware n-mal vorhanden Treffer + sehr schnell + wenig Verwaltungsaufwand, alle Einträge können universell verwendet werden - sehr aufwändig durch den Komparator für jeden Eintrag - wurde/wird für sehr kleine Caches genutzt, z.b. zur Adressübersetzung

36 Einfach direkt abbildender Cache (direct mapped) Hash- Tag Hash- Index 1 0 1 1 1 1 0 1 0 1 0 1 least significant bits! Adresse miss 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 tag 1 0 1 1 1 1 1 1 Daten Probleme: Schlechte Ausnutzung des Cache Adressraums Viele Kollisionen

37 Hash- Tag Hash- Index 1 0 1 1 1 1 0 1 0 1 0 1 Offset Adresse Direkt abbildender Cache mit Blöcken Tag Daten = hit 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 1 0 1 1 1 1 11 10 01 00 Die Unterteilung in die 3 wesentlichen Felder einer Adresse für direkt abbildende Caches Tag Block Adresse Index Block Offset

38 1 0 1 1 1 1 0 1 0 1 0 1 Adresse 4-Wege Mengen-assoziativer Cache tag data tag data tag data tag data set n 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 x x x x x x x x x x x x x x x x set 0 = = = = hit 4:1 Multiplexer 0 0 0 0 1 1 0 1

39 Voll-assoziativer Cache: Block 12 kann überall eingelagert werden direkt abbildender Cache: Block 12 kann nur in Eintrag 4 eingelagert werden. (12 mod 8) 2fach-Mengen-assoziativer Cache: Block 12 kann überall in Set 0 eingelagert werden. (12 mod 4) Block # 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Cache 00001100 00001100 set 0 set 1 set 2 set 3 00001100 Block # 0 5 10 15 20 25 30 35 40 Hauptspeicher Block #12 00001100

40 Organisationsalternativen für Caches direkt tag data 2-Wege Mengen assoziativ 4-Wege Mengen assoziativ vollassoziativ

Hennessy, Patterson: Computer Architecture, Morgan-Kaufmann,2003 trägt..% zu totalen Fehl-Rate bei Cache Degree Total (KB) assoc. missrate Compulsory Capacity Conflict 41 4 1-way 0.098 0.0001 0.1% 0.070 72% 0.027 28% 4 2-way 0.076 0.0001 0.1% 0.070 93% 0.005 7% 4 4-way 0.071 0.0001 0.1% 0.070 99% 0.001 1% 4 8-way 0.071 0.0001 0.1% 0.070 100% 0.000 0% 8 1-way 0.068 0.0001 0.1% 0.044 65% 0.024 35% 8 2-way 0.049 0.0001 0.1% 0.044 90% 0.005 10% 8 4-way 0.044 0.0001 0.1% 0.044 99% 0.000 1 % 8 8-way 0.044 0.0001 0.1% 0.044 100% 0.000 0% 16 1-way 0.049 0.0001 0.1% 0.040 82% 0.009 17% 16 2-way 0.041 0.0001 0.2% 0.040 98% 0.001 2% 16 4-way 0.041 0.0001 0.2% 0.040 99% 0.000 0% 16 8-way 0.041 0.0001 0.2% 0.040 100% 0.000 0% 32 1-way 0.042 0.0001 0.2% 0.037 89% 0.005 11% 32 2-way 0.038 0.0001 0.2% 0.037 99% 0.000 0% 32 4-way 0.037 0.0001 0.2% 0.037 100% 0.000 0% 32 8-way 0.037 0.0001 0.2% 0.037 100% 0.000 0% 64 1-way 0.037 0.0001 0.2% 0.028 77% 0.008 23% 64 2-way 0.031 0.0001 0.2% 0.028 91% 0.003 9% 64 4-way 0.030 0.0001 0.2% 0.028 95% 0.001 4% 64 8-way 0.029 0.0001 0.2% 0.028 97% 0.001 2% 128 1-way 0.021 0.0001 0.3% 0.019 91% 0.002 8% 128 2-way 0.019 0.0001 0.3% 0.019 100% 0.000 0% 128 4-way 0.019 0.0001 0.3% 0.019 100% 0.000 0% 128 8-way 0.019 0.0001 0.3% 0.019 100% 0.000 0% 256 1-way 0.013 0.0001 0.5% 0.012 94% 0.001 6% 256 2-way 0.012 0.0001. 0.5% 0.012 99% 0.000 0% 256 4-way 0.012 0.0001 0.5% 0.012 99% 0.000 0% 256 8-way 0.012 0.0001 0.5% 0.012 99% 0.000 0% 512 1-way 0.008 0.0001 0.8% 0.005 66% 0.003 33% 512 2-way 0.007 0.0001 0.9% 0.005 71% 0.002 28% ' 512 4-way 0.006 0.0001 1.1% 0.005 91% 0.000 8% 512 8-way 0.006 0.0001 1.1% 0.005 95% 0.000 4%

42 Implementierungsbeispiel

43 Verbesserung der Cache-Leistung Verminderung der Fehlrate Mehr Einträge, höherer Grad der Assoziativität, größere Cache- Blocks, getrennter Befehls- und Datencache, Compiler Unterstützung Verminderung des Fehlaufwands Prefetching, Victim Buffer Verminderung des Trefferaufwands Kleine und einfache Caches, Beschleunigung der Adreßumsetzung, Trace Cache

44 Bis zur nächsten Woche