Speicherorganisation

Ähnliche Dokumente
Speicherorganisation

Grundlagen der Rechnerarchitektur

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

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

Grundlagen der Rechnerarchitektur. Speicher

RO-Tutorien 15 und 16

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.

Grundlagen der Rechnerarchitektur. Speicher

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

Grob-Struktur des Prozessor-Speichersystems

Virtueller Speicher und Memory Management

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

Lösung von Übungsblatt 2

Tutorium Rechnerorganisation

Wie groß ist die Page Table?

Lösung von Übungsblatt 2

Cache Blöcke und Offsets

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

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

Speicherarchitektur (23) Suchen einer Seite:

Teil 2: Speicherstrukturen

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Grundlagen der Informationsverarbeitung:

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

Rechnergrundlagen SS Vorlesung

(Cache-Schreibstrategien)

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

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

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

RO-Tutorien 17 und 18

Wunschvorstellung der Entwickler vom Speicher

5 Kernaufgaben eines Betriebssystems (BS)

6 Exkurs: Assoziativspeicher

Betriebssysteme Teil 10 B: Fragen rund um Seitenfehler

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

Mikroprozessortechnik Grundlagen 1

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

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

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

Zwei Möglichkeiten die TLB zu aktualisieren

Abbilden von virtuellen auf physikalische Adressen

Technische Realisierung (1)

Speicherhierarchie, Caches, Consistency Models

Die Sicht eines Sysadmins auf DB systeme

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

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

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

Ein- Ausgabeeinheiten

3 Schnittstelle zum Betriebssystem 3.1 Einleitung

Übung Praktische Informatik II

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Physische Datenorganisation

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

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

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

RO-Tutorien 15 und 16

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Tutorium Rechnerorganisation

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

Betriebssysteme (BTS)

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

Teil VIII Von Neumann Rechner 1

Der von Neumann Computer

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

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

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

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

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

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

Fachbericht Thema: Virtuelle Speicherverwaltung

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

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

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

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

Übung zu Einführung in die Informatik # 10

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Pru fungsprotokoll. Prüfer: Dr. Lenhardt Beisitzer:? Datum der Prüfung: Dauer: 25 Minuten

Linux Paging, Caching und Swapping

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

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

Aufgabe 4 : Virtueller Speicher

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

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

Fachbereich Medienproduktion

Einführung in die technische Informatik

5.5 Virtueller Speicher

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Leichtgewichtsprozesse

Leichtgewichtsprozesse

5. Aufgabenblatt Speicherverwaltung

Transkript:

Speicherorganisation John von Neumann 1946 Ideal wäre ein unendlich großer, unendlich schneller und unendlich billiger Speicher, so dass jedes Wort unmittelbar, d.h. ohne Zeitverlust, zur Verfügung steht ohne dass es etwas kostet. Bisher: Vorlesung 4: Adressierungsmodi Register sind schneller als Speicher Systematisierung

v.-neumann-architektur Eingabewerk Speicher Ausgabewerk Rechenwerk Steuerwerk Steuerbefehle Daten (Daten, Befehle, Adressen,...)

Speicherorganisation (2) Klassifikation Flüchtig RAM Nicht flüchtig ROM Zugriffsart: Wahlfrei (Random Access) Festplatte Zugriffsart: sequentiell Magnetband

Speicherorganisation (3) Klassifikationsparameter: Zugriffszeit (access time): Zeit zwischen der Anforderung eines Lesezugriffs und dem Eintreffen des Inhaltes der adressierten Speicherzelle am Speicherausgang Kosten (pro Bit)

Speicherorganisation (4) Kosten / Bit Register Halbleiterspeicher (RAM) Festplatte Magnetband flüchtig nicht flüchtig wahlfrei sequentiell Zugriffszeit

Speicherorganisation (5) Kosten / Bit sowie Zugriffszeit sind gegenläufig. dies führt in der Regel zu einem Optimierungsproblem Randbedingung: Man muss den Speicher gerade noch bezahlen können Anderer Weg: Verwendung von Registern wie ein Assemblerprogrammierer.

Beispiel Berechnung der Quadratwurzel aus a durch Anwendung der Näherung: x m 1 = 1 2 x m a x m x konvergiert gegen die Quadratwurzel Abbruchkriterium ist: x m x m+1 < epsilon

Beispiel (2) a steht im Speicher, Quadratwurzel aus a soll im Speicher stehen. Wo stehen x m und x m+1? ===> Register, außerdem holt sich der Assemblerprogrammierer am Anfang den Wert a sowie den Abbruchwert epsilon in ein Register.

Beispiel (3) PASCAL: var a,epsilon,x,x_neu, qwurzel:real;... readln(a); x_neu := 1; repeat x := x_neu; x_neu :=.5 * (x + a/x); until abs(x-x_neu) < epsilon; qwurzel := x_neu;

Beispiel (4) PASCAL-Programmierer hat keinen direkten Zugriff auf Register (zumindest im Normalfall ). Deshalb stehen x, x_neu, a und epsilon im Speicher PASCAL-Programm ist langsamer als Assemblerprogramm

Beispiel (5) Verknüpfungsoperationen mit Speicheroperanden (langsam) Rechenwerk Register (Halbleiter)Speicher Verknüpfungsoperationen mit Registeroperanden (schnell) Transportoperationen

Beispiel (6) wenn der Befehlssatz des Rechners es dem Programmierer erlaubt zwischen Verknüpfungsoperationen mit Registeroperanden und Verknüpfungsoperationen mit Speicheroperanden zu wechseln, macht die im Beispiel gezeigte Vorgehensweise Sinn, wenn die Anzahl der Verknüpfungsoperationen sehr viel größer ist als die Anzahl der Transportoperationen.

Lokalitätsprinzip wiederholtes Nutzen der selben Daten und Befehle komplexe Berechnungen über gewisse Datenstrukturen erfordern mehrfachen Zugriff auf diese Datenstrukturen Programmschleifen werden mehrfach durchlaufen. Dadurch werden Befehle innerhalb der Schleifenkörper mehrfach zugegriffen. Faustregel: Ein Programm verbringt 9 % seiner Abarbeitungszeit in 1 % des gesamten Codes.

Lokalitätsprinzip (2) Bereits bekannt: komplexe Datenstrukturen (Felder, Arrays) werden im Speicher dicht hintereinander abgespeichert. sequentiell aufeinanderfolgende Befehle stehen ebenfalls dicht sequentiell im Speicher daraus folgt: mit einiger Wahrscheinlichkeit lässt sich aus dem abgelaufenen Programmteil auf den (in Zukunft) folgenden sowie die folgenden Daten schließen.

Lokalitätsprinzip (3) Dieses heuristische Prinzip heißt Prinzip der Lokalität oder Lokalitätsprinzip. 2 Arten von Lokalität: Zeitliche Lokalität: der Zugriff auf eine Speicherzelle lässt es erwarten, dass in naher Zukunft wieder auf sie zugegriffen wird. Räumliche Lokalität Wenn auf eine Speicherzelle zugegriffen wird, erfolgt mit hoher Wahrscheinlichkeit ein Zugriff auf eine benachbarte Speicherzelle.

Speicherhierarchien Die Optimierungskriterien Minimale Zugriffszeit Minimale Kosten pro gespeichertes Bit führen zum Prinzip des hierarchischen Speichers Je teurer der Speicher, umso weniger ist davon im Rechner vorhanden

Speicherhierarchien Preis pro Bit nimmt zu Zugriffszeit nimmt zu Kapazität nimmt zu, die unterste Ebene realisiert den gesamten Adressraum Prozessor Register obere Ebene untere Ebene Halbleiterspeicher

Speicherhierarchien (2) Konkrete Realisierung Block CPU Block A Block B obere Ebene Block 1 Block 2 Block 3 Block 4 Block 5 untere Ebene Block 6

Speicherhierarchien (2) Konkrete Realisierung Block CPU Block A Block B obere Ebene Cache Block 1 Block 2 Block 3 Block 4 Block 5 untere Ebene Block 6

Speicherhierarchien (3) Offlinespeicher (streamer, DVD,...) Massenspeicher (mass memory) Seitenwechselverfahren Hauptspeicher (main memory) Pufferspeicher (cache memory) Adresstransformation Register CPU Daten

Speicherhierarchien (4) CPU-Register CPU-Chip Level-1 (L1) Cache Level-2 (L2) Cache Hauptspeicher MS 2..3 Byte bis ca. 128 kb bis ca. 2 MB Zugriff Zugriff Zugriff in: in <.5 ns in.5 ns Backside 1ns Frontside 2,5 ns 1..16 GB Zugriff in 6 ns (burst)

Cachespeicher Weitere Verwendung des Cache-Prinzips: Hardware: Pufferspeicher der MMU (Translation Lookaside Buffer) Lokale Pufferspeicher bei periphären Geräten (Netzwerkschnittstelle, Festplatte) Branch prediction cache, branch target cache in der Pipelinesteuerlogik der CPU) Software Pufferspeicher des Betriebssystems (disk cache, buffer cache, file cache) Pufferspeicher für Datenbanken

Cacheleistung In Abhängigkeit davon, ob ein Speicherinhalt sich im Cache oder im Hauptspeicher befindet, gelten die entsprechenden Zugriffszeiten Als Trefferrate (hit rate) bezeichnet man den Anteil aller Speicherzugriffe, bei denen die gewünschte Information aus dem Cache verfügbar ist. Wenn man die Information im Cache nicht gefunden hat, spricht man von einer Niete (miss).

Cacheleistung (2) T =ht 1 h T eff C M mit T :effektive Zugriffszeit mittel eff T : Zugriffszeit descache Speichers C T : Zugriffsteit des Hauptspeichers M h:trefferrate

Beispiel Virtueller Speicher Zusammenhang Hardware Betriebssystem anhand von Pagingverfahren

Probleme Probleme entstehen durch folgende Umstände: Steuerwerk kennt nur die Adressen der unteren Ebene, während tatsächlich mit Speicherzellen der oberen (und nur mit diesen!) gearbeitet wird. Die obere und die untere Ebene haben nur mittelbar miteinander zu tun. Das führt bei Schreibzugriffen zu Inkonsistenzen zwischen der oberen und der unteren Ebene, die (zumindest langfristig) aufgehoben werden müssen.

Probleme (2) Lesen: Steuerwerk gibt zu lesende Adresse bekannt, gemeint ist Adresse in der unteren Ebene liegt Block mit Adresse in der oberen Ebene? n Holen des Blockes mit der genannten Adresse aus der unteren in die obere Ebene Ermittlung der Adresse im Block

Probleme (3) Beim Verzweigen in den nein -Zweig muss der entsprechende Block aus der unteren Ebene in die obere Ebene transportiert werden. Die obere Ebene ist voll, deshalb muss ein Block aus der oberen Ebene entfernt werden. Aber welcher? Blockersetzungsstrategien FIFO, Not recently used, Second chance...

Blockersetzungsstrategien Optimaler Algorithmus Leicht zu beschreiben, aber unmöglich zu implementieren ;-( Wenn ein Block ersetzt werden muss, sind eine Menge von Blöcken in der oberen Ebene. Jeder dieser Blöcke erhält eine Markierung, die darüber Auskunft gibt, wann in der Zukunft auf diesen Block zugegriffen wird. Der optimale Algorithmus sagt einfach, dass der Block mit der höchsten Markierungsnummer entfernt werden sollte (ein unangenehmes Ereignis wird soweit wie möglich weggeschoben). Diese Information ist aber unbekannt.

Blockersetzungsstrategien (2) Not Recently Used (NRU) Einteilung der Blöcke in Klassen: Klasse : nicht referenziert, nicht modifiziert Klasse 1: nicht referenziert, modifiziert Klasse 2: referenziert, nicht modifiziert Klasse 3: referenziert, modifiziert R-Bit wird periodisch (z.b. bei einem Uhrinterrupt) zurückgesetzt, M-Bit bleibt unverändert (wegen Konsistenzproblemen zwischen oberer und unterer Ebene (siehe später)). Dadurch entsteht auch Klasse 1. Bei Notwendigkeit einer Blockersetzung wird zufällig ein Block aus der kleinsten nichtleeren Klasse entfernt.

Blockersetzungsstrategien (3) First-In-First-Out (FIFO) Der am längsten in der oberen Ebene befindliche Block wird entfernt Analogie: Supermarkt

Blockersetzungsstrategien (4) Second Chance Modifikation FIFO 3 7 8 12 14 15 18 Zeitpunkt Eintritt ob. Ebene A B C D E F G H Blockfehler zum Zeitpunkt 2. Wenn R-Bit nicht gesetzt ist, wird der Block A entfernt. Wenn R-Bit gestzt ist, wird A an das Ende der Liste gesetzt, das R-Bit wird zurückgesetzt. Die Suche nach einem Auslagerungskandidaten wird mit B fortgesetzt.

Blockersetzungsstrategien (4) Second Chance Modifikation FIFO 3 7 8 12 14 15 18 Zeitpunkt Eintritt ob. Ebene A B C D E F G H Blockfehler zum Zeitpunkt 2. Wenn R-Bit nicht gesetzt ist, wird der Block A entfernt. Wenn R-Bit gestzt ist, wird A an das Ende der Liste gesetzt, das R-Bit wird zurückgesetzt. Die Suche nach einem Auslagerungskandidaten wird mit B fortgesetzt. 3 7 8 12 14 15 18 2 Zeitpunkt Eintritt ob. Ebene B C D E F G H A

Blockersetzungsstrategien (5) Uhr-Algorithmus Modifikation Second Chance: aus linearen Listen werden Ringlisten

Blockersetzungsstrategien (6) Least-Recently-Used 1 2 3 1 2 3 1 2 3 1 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Blockersetzungsstrategien (6) Least-Recently-Used 1 2 3 1 2 3 1 2 3 1 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Frage: Wie geht es weiter bei Blockzugriffsreihenfolge: 1 2 3 2 1 3 2 3

Probleme (4) Schreiben: Steuerwerk gibt zu schreibende Adresse bekannt, gemeint ist Adresse in der unteren Ebene liegt Block mit Adresse in der oberen Ebene? Kopieren des Blockes mit der genannten Adresse aus der unteren in die obere Ebene Ermittlung der Adresse im Block Schreibzugriff auf die Adresse in der oberen Ebene

Probleme (5) Beim Schreiben treten folgende Probleme auf: es wird immer versucht, in einem Block der oberen Ebene zu schreiben. wenn dieser nicht da ist, so kann man entweder diesen Block holen (fetch on write), oder man verzichtet darauf und schreibt direkt in die untere Ebene (work around). Da Statistiken sagen, dass Schreibzugriffe wesentlich seltener auftreten als Lesezugriffe, ist der Zeitverlust verschmerzbar.

Probleme (6) Wenn aber der Block in der oberen Ebene präsent war, wird immer dorthin geschrieben. weitere Probleme: es gibt nun eine Inkonsistenz zwischen oberer und unterer Ebene: Write through Write back

Speicherhierarchien Weitere Behandlung: Kapitel 8 (Parallele Rechnerarchitekturen)

Adressierungsverfahren, Speicherorganisation Behandlung anhand i8x86 (bzw. Pentium) Kapitel 4: Realmode

Adressierungsverfahren i886 Real-Mode Adressraum: 1 Mbyte (2 2 ) Adressregister: 64 kbyte (2 16 ) Wie wird dieser Wiederspruch gelöst? <Adressregister> * 16 + Offset Segmentierung: CS DS SS ES Adressregister (oder besser Segmentregister)

Adressierungsverfahren i886 (2) Segmentadr. *16 + Offsetadr. phys. Adr.

Protected Mode Logisches Verfahren zum Zugriff auf Arbeitsspeicher In Zusammenhang mit einem geeigneten Betriebssystem können so (quasi)parallele Anweisungen realisiert werden (im Realmode kann von jedem Programm der gesamte Speicher adressiert werden)

Protected Mode (2) Schutzkonzept: höchste Priorität (meist BS) 1 BS-Dienste (Dateiverwaltung, Geräteverw.,...) 3 2 1 2 BS-Erweiterungen 3 - Anwendungen

Protected Mode (2) Schutzkonzept: 3 2 1

Virtuelle Adressierung Wie auch im Realmode exisitieren Segmentadressen Speicher wird als virtuell interpretiert, d.h. Prinzipiell spielt pysische Größe des Speichers keine Rolle Adresse wird aus 2 Teilen gebildet: Selektor Offset

Protected Mode Selektor 2h Offset 1234h

Protected Mode Selektor 2h Offset 1234h Selektor: Index auf eine Tabelle von Segmentbeschreibern. (Deskriptoren)

Deskriptoreintrag i8386 Deskriptoren

Deskriptoren (2) Zusatzinformationen, Byte 6

Deskriptoren (3) Zusatzinformationen, Byte 7, Bit 4..7

Deskriptoren-Beispiel Maximale Größe: 8192 Einträge (64k / 8Byte) 3 Typen Globale Deskriptortabelle (GDT) Interruptdeskriptortabelle Lokale Deskriptortabelle

Deskriptoren-Beispiel Segmentstart an der pysischen Adresse 1F2E3Dh Länge 2 MB (2h) Datensegment (r/w) DPL von 2 Assemblerquelltext: mein_deskritor: dw 2 ; Segmentgröße, Bit..15 dw 2E3Dh ; Segmentbasisadresse, Bit..15 db 1Fh ; Segmentbasisadresse, Bit 16..23 db 1111b ; Zugriffsberechtigung und Typ db 11b ; Zusatzinformation und Segmentgröße Bit 16..19 db ; Segmentbasisadresse, Bit 24..31

Selektoren

Paging