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

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

Grob-Struktur des Prozessor-Speichersystems

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

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

(Cache-Schreibstrategien)

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

Grundlagen der Rechnerarchitektur. Speicher

Speicherverwaltung (Swapping und Paging)

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

Lösung von Übungsblatt 2

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Informationsverarbeitung:

Teil 2: Speicherstrukturen

Cache Blöcke und Offsets

Grundlagen der Rechnerarchitektur

Lösung von Übungsblatt 2

Wie groß ist die Page Table?

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

6 Exkurs: Assoziativspeicher

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

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

Speicherorganisation

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

4.3 Hintergrundspeicher

Speicherhierarchie, Caches, Consistency Models

Virtueller Speicher und Memory Management

Betriebssysteme (BTS)

Übung Praktische Informatik II

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Übung zu Einführung in die Informatik # 10

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

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

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Einführung in die Programmiersprache C

Einführung in die technische Informatik

Rechnerorganisation. 1. Juni 201 KC Posch

RAM - Random Access Memory

1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden?

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

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

RO-Tutorien 3 / 6 / 12

Tutorium Rechnerorganisation

Technische Realisierung (1)

Quantitative Prinzipien im Hardwareentwurf. 1. Small is fast

2.3 Prozessverwaltung

Physische Datenorganisation

Fachbericht Thema: Virtuelle Speicherverwaltung

Rechnernetze und Organisation

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

Ram/Rom/EPRom WIRTSCHAFTSINGENIEURSWESEN. Ausbildungsschwerpunkte: BETRIEBSMANAGEMENT LOGISTIK. Xaver Schweitzer. Jahr: 2011/12

Besprechung des 7. Übungsblattes Speicheraufbau Speichertypen DRAM Speicherbelegung

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

Theorie der Programmiersprachen

4. Übung - Rechnerarchitektur/Betriebssysteme

Notizen-Neuerungen PC- HAUPTSPEICHER

4. Übung - Rechnerarchitektur/Betriebssysteme

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

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

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

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

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Lösungsvorschlag zur 6. Übung

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

Rückblick: Architektur und Hintergrundspeicher

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Das Konzept der Speicherhierarchie

Lösung von Übungsblatt 5

Tutorium Rechnerorganisation

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

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

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

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

Grundlagen der Informatik III Wintersemester 2010/2011

Grundlagen der Informatik III Wintersemester 2010/2011

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

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

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

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

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

Freispeicherverwaltung Martin Wahl,

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

Algorithmen II Vorlesung am

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

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

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Fachbereich Medienproduktion

Leichtgewichtsprozesse

Leichtgewichtsprozesse

Neue Speichermedien für Datenbanken

, SS2012 Übungsgruppen: Do., Mi.,

Transkript:

Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher zur Ausnutzung von zeitlicher und räumlicher Lokalität der Speicherzugriffe Cache-Hierarchien (L1-, L2-Cache) Hauptspeicher Festplattenspeicher Warum mehrere Speicherarten in einem Rechner? Wie greifen die verschiedenen Speicher ineinander?

Speicherhierarchie Steuerung, typische Datenmenge Technologie Kürzere Zugriffszeit Programm, 1-8 Byte SRAM Cache-Controller, 8-128 Byte DRAM Betriebssystem, 512 Byte 16 KByte Magnetisch Optisch Geringere Kosten, größere Kapazität

Speicherhierarchie http://www.it-infothek.de/fhtw/ra_bs_02.html

Technologie RAM bezeichnet einen Speichertyp dessen Speicherzellen über ihre Speicheradressen direkt, einzeln und "wahlfrei" angesprochen werden können (Random Access Memory) SRAM ist statisch, d.h. dass der Speicherinhalt bei anliegender Spannung erhalten bleibt DRAM ist dynamisch, d.h. dass der Speicherzustand immer wieder neu (periodisch) aktualisiert werden muss (Refresh) Festplatten bestehen aus beweglichen Schreib/Lese-Köpfen, die über die Magnetplatten gleiten (Positionierung) und das Magnetfeld ändern bzw. lesen

Technologische Trends Entwicklung der Performance von CPUs und DRAM relativ zur Performance von DRAM 1980

Technologische Trends Fazit: Speicherzugriff ist und wird zunehmend der limitierende Faktor bzgl. der Performanz eines Programmes Datenintensive Anwendungen benötigen spezielle Datenstrukturen, Datenkompressionsverfahren und Datenzugriffsmechanismen zur Steigerung der Performanz

Beispiel Photorealistische Bildsynthese in Echtzeit Speichervolumen: ca. 860 GByte Bildauflösung: 1K x 1K Pixel 30 M pro Bild Darstellungsrate: 13 Bilder/Sek.

Speicherhierarchie Daten werden in bestimmten Einheiten zwischen den Ebenen der Speicherhierarchie übertragen Daten werden nur zwischen benachbarten Ebenen übertragen Ist eine Dateneinheit auf einer Ebene vorhanden, muss sie auch auf den tieferen Ebenen vorhanden sein. Sind die angeforderten Daten auf einer Ebene verfügbar, dann ist der Zugriff erfolgreich und es kommt zu einem Hit (Treffer) Sind die Daten nicht verfügbar, dann kommt es zu einem Miss (Fehlzugriff) und die Daten müssen aus der nächsten Ebene geholt werden

Zugriffslokalität Beobachtung: Programme greifen in einem kleinen Zeitintervall auf einen relativ kleinen Teil des Adressraums zu. Das gilt sowohl für Instruktionen als auch für Daten Zeitliche Lokalität Wenn ein Zugriff auf eine Adresse erfolgt, wird auf diese Adresse mit großer Wahrscheinlichkeit bald wieder zugegriffen Räumliche Lokalität Wenn ein Zugriff auf eine Adresse erfolgt, werden mit großer Wahrscheinlichkeit auch Zugriffe auf in der Nähe liegende Adressen erfolgen

Zugriffslokalität Aufgrund der Lokalität kann man Speichersysteme aufbauen Wenig schnellen und teuren Speicher Viel langsamen und billigen Speicher Funktionsprinzip Versuche zu erraten, auf welche Speicherzellen des langsameren Speichers der Prozessor als nächstes zugreifen wird und diese Daten schon im Vorfeld im schnellere Speicher abzulegen (Prefetching) Arbeite möglichst lange auf diesen Daten und reduziere dadurch die langsamen Speicherzugriffsoperationen

Caching Der Cache ist ein schneller, aus SRAM-Zellen aufgebauter Zwischenspeicher, der helfen soll, Zugriffe auf den Hauptspeicher durch den Prozessor zu beschleunigen Können möglichst viele, in Zukunft zu verwendende Speicherzellen im Cache abgelegt werden, dann können zum Zeitpunkt der Anforderung die Hauptspeicherzugriffe umgangen bzw. durch sehr viel schnellere Zugriffe auf den Cache ersetzt werden! Der Cache ist software-transparent, d. h. der Benutzer kann den Cache nicht direkt adressieren, muss nicht mal etwas vom Cache wissen

Caching Speicherzugriffe stellen aus Sicht des Programms bzw. des Anwenders zunächst einen Hauptspeicherzugriff dar

Caching/Paging Tritt ein Miss auf, so wird das Datum aus der nächst tieferen Ebene geholt Damit sich das Holen lohnt (Lokalitätsprinzip), wird gleich ein ganzer Block geholt Eine ganze Cache-Line beim Holen aus dem Hauptspeicher Eine ganze Seite (Page) beim Holen von der Festplatte

Caching/Paging Was passiert bei einem Zugriff auf ein Datum? Überprüfe, ob das Datum in der aktuellen Ebene liegt if (Miss) { bestimme Block der nächsten Ebene, in dem das Datum liegt if (alle Blöcke in aktueller Ebene belegt) verdränge den Inhalt eines Blockes } hole Blockinhalt und schreibe in den freien Block

Verdrängungsstrategien Es gibt unter Anderem die folgenden Verfahren, um zu bestimmen, welcher Block verdrängt werden soll: LRU-Strategie (Least Recently Used): Es wird der Block ausgelagert, auf den am längsten nicht zugegriffen wurde FIFO-Strategie (First In First Out): Es wird der Block ausgelagert, der sich am längsten im realen Speicher befindet. Hierzu werden die einem Prozess zugeordneten Blöcke wie eine Queue behandelt LFU-Strategie (Least Frequently Used): Der am seltenste gelesene Eintrag wird verdrängt

Cache-Kohärenz Aussage: Felder haben bessere Cache-Kohärenz als Listen Beispiel: int[] feld; feld = new int[100]; // zusammenhängender Block // zur Aufnahme von 100 Integers List list = new List(0); for (int i = 1; i < 100; ++i) list.insert(i); // 100 im Speicher verteilte Elemente

Cache-Kohärenz Beispiel: String[] feld; feld = new String[100]; // zusammenhängender Block // zur Aufnahme von 100 String-Referenzen for (int i = 0; i < 100; ++i) feld[i] = new String( + i); // 100 im Speicher verteilte Elemente

Cache-Kohärenz Beispiel: int[][] feld; feld = new int[100][]; // zusammenhängender Block // zur Aufnahme von 100 int-feldern for (int i = 0; i < 100; ++i) feld[i] = new int[i+1]; // 100 im Speicher verteilte Felder

Cache-Kohärenz Beispiel: arr * * * * arr = new int[3][]; arr[0] = new int[3]; int[] x = {0, 2}; int[] y = {0, 1, 2, 3, 4}; arr[1] = x; arr[2] = y; 0 0 0 0 2 0 1 2 3 4