2.4 Speicherarchitektur 2013/07/03.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
2.3 Register-Transfer-Strukturen
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
Telefonnummer.
Lehrmaterial Grundlagen EDV
2.4 Speicherarchitektur 2012/01/18.
Die Speicherhierarchie
Fakultät für informatik informatik 12 technische universität dortmund Die Speicherhierarchie - Hauptspeicher - Peter Marwedel Informatik 12 TU Dortmund.
der Universität Oldenburg
= = = = 47 = 47 = 48 = =
Algorithmentheorie 04 –Hashing
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vorlesung 4: Memory Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
Zusatzfolien zu B-Bäumen
Performance-Steigerung durch schnelle Festplatten Ulrich Dinger.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Eine Einführung in die CD-ROM
SSDs im SAN – Praxisbericht Teil3
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
Der Ablauf eines Clear Rex Klärzyklus
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Aufgabe 1 In einem Mikroprozessorsystem mit 32-bit-Datenzugriff auf den Hauptspeicher ist ein Daten-Cache vorhanden. Das Laden des Caches erfolgt in Blöcken.
Eine lllustration der Herausforderungen des Stromsystems der Zukunft
Symmetrische Blockchiffren DES – der Data Encryption Standard
Bs Gemeinsame Datensegmente am Beispiel Solaris [Beachte: Unix/Linux setzen keine Hardware-Segmentierung voraus und sprechen daher statt von.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Interne Speicher © Christian Barby FIN
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Parkplatz-Orga Diese Version ist vom finale Version!
Studiengang Informatik FHDW
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Neue Speichermedien für Datenbanken
Folie Einzelauswertung der Gemeindedaten
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
LVM - Logical Volume Management unter Linux
4.4 Speicherarchitektur E/AGeräte E/A-Einheiten Leitwerk Prozessor
Prof. Dr. T. Kudraß1 Speicherverwaltung: Flash-Laufwerke.
RAID-Systeme - Standards - Leistungsmerkmal - Redundanz - Datensicherheit eine Präsentation von Jochen Throm an der Berufsakademie Mosbach.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
 Präsentation transkript:

2.4 Speicherarchitektur 2013/07/03

Kontext Externe Speicher-architektur Leitwerk Prozessor Kommunikation Rechenwerk Interne Kommunikation

Entwurfsziele Möglichst großer Speicher Möglichst große Geschwindigkeit Geringe Zeit bis zur Verfügbarkeit eines Speicherinhalts (kleine latency) Hoher Durchsatz (großer throughput) Persistente (nicht-flüchtige) Speicherung Geringe Energieaufnahme Hohe Datensicherheit Geringer Preis Klein

Die Realität: Kosten/Mbyte und Zugriffszeiten für verschiedene Speichermedien Hennessy/Patterson, Computer architecture, 4. Auflage, 2007, © MKP [Hennessy/Patterson, Computer Architecture, 3. Aufl.] © Elsevier Science (USA), 2003, All rights reserved

Trend der Leistungen von DRAM Die Leistungsslücke zwischen Prozessoren und DRAM wächst Ähnliche Probleme auch für Eingebettete Systeme  In Zukunft: Speicherzugriffszeiten >> Prozessorzykluszeiten  „Memory wall” Problem Leistung 8 CPU Leistung (1.5-2 p.a.) 4  2x alle 2 Jahre 2 DRAM (1.07 p.a.) 1 Jahre 1 2 3 4 5 [P. Machanik: Approaches to Addressing the Memory Wall, TR Nov. 2002, U. Brisbane] 5

Abhängigkeit von der Speichergröße Energie Zugriffszeiten Sub-banking Anwendungen werden größer und größer … Quelle: CACTI 6

„Alles“ ist groß für große Speicher Zykluszeit (ns)* Fläche (l2x106) El. Leistung (W) We have used the Rixner model to evaluate cycle time, area and power for these register files. These graphs show the figures for the 0.18 mm technology as the register file size is increased. Blue lines are for 2 memory ports, the others are for 3 memory poerts. On a VLIW processor, the cycle time can be bounded by the register file, since in these processors the register file is the main central structure. From now on, we will assume that the access time to register file determines the processor cycle time. * Monolithic register file; Rixner’s et al. model [HPCA’00], Technology of 0.18 mm; VLIW configurations for a certain number of ports („GPxMyREGz where: x={6}, y={2, 3} and z={16, 32, 64, 128“}; Based on slide by and ©: Harry Valero, U. Barcelona, 2001 7

Speicherhierarchie Große Speicher sind langsam Anwendungen verhalten sich üblicherweise lokal Wir versuchen, häufig benötigte Speicherinhalte in kleinen Speichern, seltener benötigte Inhalte in großen Speichern abzulegen Einführung einer „Speicherhierarchie“ Man möchte durch diese Kombination die Illusion eines großen Speichers mit kleinen Zugriffszeiten erzielen, zumindest im Mittel Eine enge Grenze für die Zugriffszeit ist vielfach kaum zu garantieren Bei Realzeitsystemen ergeben sich spezielle Überlegungen

Mögliche Stufen der Speicherhierarchie und derzeit eingesetzte Technologien Tertiärspeicher (Optische Speicher, Bänder) Sekundärspeicher (Platten, Flash) Plattencaches (DRAM) Haupt- bzw. Primärspeicher (DRAM) Caches (SRAM) Register (SRAM)

2.4.2 Mehrprozess-System (Multitasking, Multiprocessing) In realen Rechnern meist mehrere „Programme“ gespeichert. Ausführbare Programme heißen Prozesse oder tasks. Prozessen wird durch einen dispatcher (z.TL. scheduler genannt) Rechenzeit auf dem Prozessor zugeteilt.

Dispatcher Dispatcher schaltet zwischen Ausführung von Prozessen um (context switch). Bei context switch werden alle Registerinhalte des anzuhaltenden Prozesses in einen ihm zugeordneten Datenblock (process control block, PCB) gerettet & die des zu fortzuführenden Prozesses aus seinem PCB geladen. Prozessen wird suggeriert, der Prozessor gehöre ihnen allein (bis auf Zeitverhalten).

Context switch Speicher Prozessor A B PCB A A B PCB B Ausführung A B Register A B PCB B Ausführung A B A B

Speicherverwaltung Unterscheidung zwischen den Adressen, welche der Prozessor generiert und jenen, mit denen der physikalische Speicher adressiert wird. Pro-zessor Spei-cher Def.: Prozessadressen bzw. virtuelle Adressen sind die effektiven Adressen nach Ausführung aller dem Assemblerprogrammierer sichtbaren Adressmodifikationen, d.h. die von einem Prozess dem Rechner angebotenen Adressen. * Def.: Maschinenadressen, reale Adressen bzw. physikalische Adressen sind die zur Adressierung der realen Speicher verwendeten Adressen.

Memory Management Unit (MMU) MMU ist für das Umrechnen der Adressen verantwortlich. Beispiel Motorola Daten/Befehle Prozessor MC 68020 Kontrolle Speicher MMU 68851 virtuelle Adressen reale Adressen Adressbits (7:0) © Photo: M. Engel, 2012

Identität Bei einfachen Systemen sind reale und virtuelle Adressen identisch („memory management without swapping or paging“). Adressraum durch real vorhandenen Speicher beschränkt. Kommt v.a. bei eingebetteten Systemen (Fahrzeugelektronik, Handys usw.) vor, weniger bei PCs und Workstations. Sehr einfache Systeme: - Aufteilung in Systembereich und Benutzerprogramm ( SPIM/MARS) Pro-zessor Spei-cher © P. Marwedel user system SPIM/MARS Lücken?

Einteilung in Laufbereiche (core partitions) Aus Aufwandsgründen statt flexibler Speicherzuteilung an Prozesse feste Partitionierung des Speichers. Jeweils ein Prozess im Speicher, die übrigen auf der Platte. Prozesse 1,2 4,5 3 6,7,8 Adressbereich der Prozesse zusammen-hängend im virtuellen und im realen Adressraum. Betriebssystem Partition 1 Compiler adressieren Befehle ab Adresse 0. Beim Laden muss auf alle Adressen Anfangsadresse der Partition addiert werden.  Identifikation von Adressen im übersetzten Programm! 4 Partition 2 5 Partition 3 Partition 4

Speicherschutz durch Grenzregister möglich Betriebssystem Prozesse Partition 1 1,2 Z.Tl. nur Zugriff auf durch Grenzregister begrenzten Speicherbereich erlaubt ( Speicherschutz); Grenzregister werden bei context switch umgeladen. Partition 2 4,5 Partition 3 3 Partition 4 6,7,8

Was tun, wenn Prozesse mehr Speicher benötigen? (1) Man könnte Partitionen verschmelzen, wenn Prozesse mit dem Speicher der zugeteilten Partition nicht auskommen. Aus Aufwandsgründen selten realisiert. Betriebssystem Prozesse Partition 1 1,2 Partition 2 4,5 Platte Partition 3 3 Partition 4

Was tun, wenn Prozesse mehr Speicher benötigen? (2) Verschieben von Prozessen im Speicher nicht möglich, da Adressen angepasst werden müssten, andere Informationen nicht. Im Speicher sind Adressen und andere Informationen ununterscheidbar Betriebssystem Aus demselben Grund kann nur der gesamte Inhalt einer Partition auf die Platte aus-gelagert werden (swapping) und an dieselbe Stelle zurückgeschrieben werden. Partition 1 f Partition 2 Partition 3 0x010101FF 0x23040501 pointer (Adresse) integer Partition 4

Einsatzbereiche Sehr einfache Rechner, eingebettete Systeme (Handys, Fahrzeugelektronik). Systeme, bei denen die Programme von vornherein alle bekannt sind.

Beurteilung Nachteile: Sehr starke „externe Fragmentierung“ (Speicherbereiche bleiben ungenutzt). Adressraum durch real vorhandenen Speicher beschränkt. Man muss den Speicherbedarf von Applikationen recht genau kennen, um eine möglichst passende Speichergröße zuzuweisen. Risiko des Prozessabbruchs, wenn Speicher nicht ausreicht.  Gründe für bessere Verfahren.

Seiten-Adressierung (paging) Einteilung der realen Adressen in Bereiche gleicher Länge (Seitenrahmen, Kacheln, page frames). Kacheln 0 1 2 3 4 5 6 7 8 .. Jede Seite kann auf jeder Kachel gespei-chert werden. 0 1 2 3 Seiten Prozess 1 0 1 2 3 Seiten Prozess 2 Einteilung der virtuellen Adressen in Bereiche konstanter Länge (Seiten, pages)

Seiten-Adressierung (paging) Kacheln 0 1 2 3 4 5 6 7 8 .. 0 1 2 3 Seiten Prozess 1 0 1 2 3 Seiten Prozess 2 virtuelle Adresse Seitennr. Offset Zu jedem Prozess existiert eine Tabelle, die Seitentabelle. 6 3 7 2 5 1 Kachel P1:Seite reale Adresse = Anfangsadresse der Kachel + Offset

Vorteile Man muss sich nicht vorab überlegen, welchem Speicherbereich (text, stack ,heap) man wie viel Speicher zuweist. Jede Kachel des Speichers kann genutzt werden (keine „externe Fragmentierung“). Lücken im virtuellen Adressraum (wie beim MARS/SPIM) sind kein Problem. Virtuelle Adressräume aller Prozesse können bei 0 beginnen, nur bei getrennt übersetzten Prozeduren sind Adressanpassungen erforderlich. Nachteil (): „interne Fragmentierung“ (Seiten nicht unbedingt gefüllt)

Organisation der Adressabbildung Schnelle Umrechnung von virtuellen auf reale Adressen! Bei zusammenhängenden Adressen und Seitenadressierung: virtuelle Adresse Nummer des Worts in der Seite („Offset“) Seitennummer Speicher .... Zugriffs-rechte, im Spei-cher? Seiten-tafel -basis -länge Anfangs-adressen der Kacheln Seitentabelle + Längenüberprüfung zufügen! Reale Adresse .... > & Überprüfung Weil Seitengröße immer eine 2er Potenz ist.

Lücken im virtuellen Adressraum Bei MIPS-Konvention: Adressbereiche zwischen Stack, Befehls- und Datenadressen werden meist nicht benutzt. virtueller Adressraum Befehle Daten Stack Seitentabelle Ungenutzte Seiten- bzw. Segmentnummern: bei der bisherigen Methode werden Tafeleinträge nicht benutzt! unbenutzt Seitentafel benötigt großen zusammenhäng. Speicherbereich. Berücksichtigung von Lücken im virtuellen Adressraum: nicht für jede mögliche Seite auch Einträge in der Seitentafel!

Hierarchische Seitentabellen Mehrfache Verzweigung anhand einzelner Adressbits. Erspart Speicherung von Seitentabellen in manchen Teilen von Adressbereichen

Invertierte Seitentabelle Selbst bei hierarchischen Seitentabellen kann ein großer Speicherbedarf entstehen, v.a. bei großen Adressräumen  „invertierte Seitentabellen“ virtuelle Adresse Kachel i zuge-ordnete Seite Seitennummer # der Einträge = # der Kacheln i ?? Suche durch die gesamte Kacheltabelle wäre zu langsam

Beschleunigung mittels Hashtabellen virtuelle Adresse Seitennummer Index Tag Lineare Ketten von Zeigern auf Einträge in der invertierten Seitentabelle, die zu einem bestimmten Seitenindex gehören Hash- tabelle Kachel i zuge-ordnete Seite # der Einträge = # der Kacheln Sequentielle Suche nach passendem Tag in der invertierten Seitentabelle; kein Treffer, falls Seite nicht im Speicher. i Tradeoff: Laufzeit  Speicherplatz

Zusammenfassung Viele Rechensysteme unterstützen Multitasking Reale und virtuelle Adressen, memory management Formen der Speicherverwaltung Identität Seitenadressierung Sharing Segmentadressierung Segmentadressierung mit Seitenadressierung

Sharing (shared libraries) Einfache Idee: Seiten-Abbildungen mehrerer Prozesse führen zur selben Kachel virt. Adressen Prozess A Seitentabelle Prozess A 1 2 3 4 5 6 7 . realer Speicher 1 2 3 4 Xlib j ? & … Xlib Seitentabelle Prozess B virt. Adressen 1 2 3 4 Xlib

Idee ist so nicht realisierbar Im gemeinsam genutzten Code kommen (virtuelle) Befehlsadressen vor, die sich z.B. auf Adressen in diesem Code beziehen. Adressen müssen Seitennummern verwenden, die nach Abbildung auf die realen Adressen über die jeweiligen Seitentafeln wieder auf den gemeinsam genutzten Bereich verweisen. Wenn diese Seitennummern  sind:  nicht im Code eintragbar (in 1 Speicherzelle nur 1 Seitennummer). Nutzen Prozesse gemeinsamen Code, so muss dieser bei der Seitenadressierung bei allen beteiligten Prozessen auf dieselben virtuellen Adressen abgebildet werden.

Idee ist so nicht realisierbar (2) Nutzen Prozesse gemeinsamen Code, so muss dieser bei der Seitenadressierung bei allen beteiligten Prozessen auf dieselben virtuellen Adressen abgebildet werden. Windows nutzt für gemeinsamen Code die obere Hälfte des Adressbereichs und benutzt Absprachen zur Adressvergabe. ?

Realisierbares Sharing Shared libraries befinden sich an derselben Stelle des virtuellen Adressraums virt. Adressen Prozess A 1 2 3 4 Seitentabelle Prozess A 1 2 3 4 5 6 7 . realer Speicher Xlib j 1 & … Xlib virt. Adressen Prozess B 1 2 3 4 Seitentabelle Prozess B Xlib

Beobachtungen Paging in der beschriebenen Form funktioniert ohne größeren Speicher (Plattenlaufwerk, hard disc (HD)) als weiteren Speicher. Wird bei Systemen ohne HD eingesetzt (in vielen eingebetteten Systemen). Paging bietet Form des Speicherschutzes: Prozesse können unterschiedliche Rechte zur Nutzung von Speicherbereichen haben. Speicherschutz mittels paging ist grob: Wunsch, durch verschiedene Prozesse auf Speicheradressen abgebildete Peripheriegräte mit unterschiedlichen Rechten zu nutzen. Häufig werden viele Peripheriegeräte auf dieselbe Seite abgebildet.

Demand paging Kacheln 0 1 2 3 0 1 2 3 Platte Wenn größerer und langsamerer Speicher (HD) verfügbar: Einteilung des Speichers in Bereiche konstanter Länge + automatisches Auslagern selten benutzter Seiten sowie Einlagern von ausgelagerten Seiten, wenn auf die entsprechenden Adressen zugegriffen wird. Kacheln 0 1 2 3 4 5 6 7 8 .. 0 1 2 3 Seiten Prozess 1 0 1 2 3 Seiten Prozess 2 Besseren Ablauf! Platte 3 Seiten Prozess 3 Auslagern einzelner Seiten auf die Platte und Rückschreiben auf beliebige Kachel möglich.

Paging Paging ist mehrdeutig: 1. Einteilung des Speichers in Bereiche konstanter Länge, evtl. ohne Ein- und Auslagern (z.B., weil man Realzeit-Verhalten erzielen will). 2. Benutzung im Sinne von demand paging. Definition 2 ist die Gebräuchlichere. Speicher 4 5

Segmentadressierung (1) Beispiel: Segment 1 (Befehle Prozess 1, schreibgeschützt) Segment 2 (Stack Prozess 2) frei Segment 4 (Befehle Prozess 2) Segment 3 (Daten Prozess 1) S. 5, Stack Proz.1 S. 6, Daten Proz.2 Zusammenhängenden Speicherbereichen (für Befehle, Daten, und den stack) im Prozessadressenraum werden zusammenhängende Bereiche im realen Adressraum zugeordnet.

Segmentadressierung (2) Prozesse adressieren in jedem Segment ab Adresse 0; Zu jedem Prozess gehört eine Tabelle der für ihre Segmente zu addierenden Adressen (verdeckte Basen). Beispiel: virtuell real Segment 1 (Befehle Prozess 1, schreibgeschützt) Segment 2 (Stack Prozess 2) frei Segment 4 (Befehle Prozess 2) Segment 3 (Daten Prozess 1) S. 5, Stack Proz.1 S. 6, Daten Proz.2 0100 0230 Erfordert Befehlssatz mit sepa-raten Befeh-len für stack-Zugriffe Prozess 2 Befehle 0390 Daten 0830 Stack 0230 Prozess 1 Befehle 0100 Daten 0520 Stack 0720 0304 0390 0520 Länge Bei jedem Speicherzugriff wird die verdeckte Basis des jeweiligen Segments zur virtuellen Adresse addiert. 0720 0830

Eigenschaften der Segmentadressierung (1) Speicherschutz: Abfrage der Segmentlänge, R/W/E-Modi Beim Laden müssen keine Adressen angepasst werden, dies passiert stets zur Laufzeit. Verschieben von Segmenten ist möglich, da alle Adressen mittels Änderung der verdeckten Basis automatisch angepasst werden. Auslagern ganzer Segmente und Rückschreiben an beliebige, ausreichend große Lücke ist möglich. Strategien zur Suche einer ausreichend großen, freien Lücke: frei ? first fit best fit

Eigenschaften der Segmentadressierung (2) Segmente können sich ausdehnen. Ist der anschließende Speicher belegt, so müssen sie umkopiert werden. Ein Teil des Speichers außerhalb der Segmente bleibt unbenutzt (externe Fragmentierung). Ggf. müssen Segmente verschoben werden, um ausreichend große freie Bereiche herzustellen. frei ? frei

Adressabbildung bei Segmentadressierung virtuelle Adresse Nummer des Worts im Segment („Offset“) Segmentnummer Speicher .... Segment-tabelle Zugriffs-rechte, im Spei-cher? Seg-ment-längen Segment-tafel-basis -länge + Verdeckte Basen Reale Adresse .... > + Längentest zufügen Überprüfung Fehler? > Bei zusammenhängenden Segmentnummern effizient.

2 Formen der Segmentadressierung Segmentnummern in separaten Registern Beispiel: Intel Pentium Kein Problem mit dem sharing: Segmentregister müssen nur auf den gemeinsam genutzten Speicher „zeigen“. Wird von Microsoft nicht genutzt. Segmentnummern sind Teil der Adressen im Speicher Beispiel: PowerPC, IBM-Großrechner Beim sharing dasselbe Problem wie bei Seitenadressierung

Kombination von Segment- und Seitenadressierung Segmentadressierung besitzt: Vorteile beim Sharing, wenn Segmentnummern in Registern gespeichert werden. Nachteile durch externe Fragmentierung Kombination von Segment- und Seitenadressierung: Jedes Segment enthält Seiten, diese wiederum Worte Fragmentierung reduziert sich auf interne Fragmentierung Jede Kachel kann jede Seite aufnehmen (kein Kopieren) Vorteile bei shared libraries Segmentnr. Seitennr. Offset virtuelle Adressen

Segmentadressierung mit Seitenadressierung virtuelle Adresse Nummer des Worts in der Seite („Offset“) Segmentnummer Seitennummer .... Seite im Speicher? Benutzt? Beschrie-ben? Anfangs-adres-sen der Kacheln Überprüfung Seitentafeln .... Speicher (derselbe) Reale Adresse & Zugriffs-rechte, im Spei-cher? Seg-ment-län- gen Basen der Seiten- tabellen + ....  + Überprüfung Platz hinter der Segmenttabelle vorsehen > Länge | Basis der Segment-tafel Segmenttafel Fehler?

Adressabbildung beim Intel 386 Segmentnummer virtuelle Adresse reale Adresse 12 Seitentabellen-verzeichnis + 16 Seitentabelle LDT & 10 10 20 & & LDTR, Register für LDT-Basisadresse Controlregister CR3 Die Local Descriptor Table LDT benötigt Einträge für den Bereich möglicher Segmentnummern; Tabellen für unbenutzte Seiten sind nicht erforderlich. Diese haben selbst wieder die Größe einer Seite. Adressübersetzungstabellen können teilweise auf die Platte ausgelagert werden

Zusammenfassung Viele Rechensysteme unterstützen Multitasking Reale und virtuelle Adressen, memory management Formen der Speicherverwaltung Identität Seitenadressierung Sharing Segmentadressierung Segmentadressierung mit Seitenadressierung

2.4.3 Translation Look-Aside Buffer (TLBs) Seitentabellen und Segmenttabellen im Hauptspeicher: Jeder einzelne Zugriff auf einen Befehl oder ein Datum erfordert zusätzliche Speicherzugriffe zur Umrechnung von virtuellen in reale Adressen. Unakzeptable Verlangsamung der Ausführung. Einführung zusätzlicher, kleiner, schneller Hardware-speicher, welche häufig die benötigten Tabelleneinträge enthalten. Diese heißen translation look aside buffer (TLB) oder auch address translation memory (ATM).

Die 3 Organisationsformen von TLBs In jedem Fall enthalten die TLBs nur Auszüge aus den vollständigen Tabellen, die weiterhin im Speicher sind. Ist die gesuchte Seiten- bzw. Segmentnummer nicht im TLB enthalten, so muss in der vollständigen Tabelle nachgesehen werden. Der Eintrag aus der vollständigen Tabelle verdrängt dann einen Eintrag aus dem TLB nach einem noch zu bestimmenden Algorithmus. Drei Organisationsformen von TLBs: 1. direct mapping, 2. Mengen-assoziative Abbildung (set associative mapping), 3. und Assoziativspeicher (associative mapping).

Direct Mapping Die Seitennummer oder ein Teil davon adressiert den TLB. virtuelle Adresse Seitennummer Nummer des Worts in der Seite („Offset“) Tag Index TLB Zugriffs-rechte, im Spei-cher? Anfangs-adressen der Kacheln Tags Reale Adresse = & Tags gleich? wave

Aliasing bei direct mapping virtueller Adressraum 0000 4 0100 0200 TLB 0300 1000 Alle Seiten, deren Adressen im Indexteil übereinstimmen, werden derselben TLB-Zelle (demselben Namen (Alias)) zugeordnet.  Teilweise starkes Anwachsen der Laufzeit.

Mengen-assoziative Abbildung - Prinzip - virtueller Adressraum Zu jedem Index-Wert gibt es n zugeordnete Plätze, mit n>1. TLB oder Sofern über die vollständigen Tabellen im Hauptspeicher abgebildet werden muss, wird ein Platz im TLB überschrieben, z.B. der am Längsten nicht benutzte (least recently used (LRU)-Strategie)

Mengen-assoziative Abbildung - Realisierung - Beispiel: Setgrösse n=2 virtuelle Adresse Seitennummer Nummer des Worts in der Seite („Offset“) Tag Index TLB Zugriffs-rechte, im Spei-cher? Anfangs-adressen der Kacheln Zugriffs-rechte, im Spei-cher? Anfangs-adressen der Kacheln Tags Tags = = & Treffer? 1 Alles ok ? Reale Adresse

Assoziativspeicher, associative mapping - Prinzip - virtueller Adressraum Der Fall associative mapping entsteht aus dem set associative mapping für „Anzahl der Bits für den Index-Teil  0“. Jeder Platz des TLB kann die Verwaltungs-Information für jede beliebe Seite enthalten (kein aliasing). oder oder oder TLB

Assoziativspeicher, associative mapping - Beispiel: 4 Einträge im CAM - Hardware-mäßige Realisierung mit content-adressable memory (CAM). Ein CAM vergleicht die Seitennummern aller Zellen gleichzeitig mit dem angelegten Suchwert und liefert im Fall eines Treffers die übrigen Informationen der betreffenden Zelle. virtuelle Adresse Nummer des Worts in der Seite („Offset“) Seitennummer TLB = CAM Zugriffs-rechte, im Spei-cher? Anfangs-adresse der Kachel Sei-tennr. Sei-tennr = = = = & 1 Treffer? Alles ok ? Reale Adresse

Anwendung: Memory Management Unit (MMU) Motorola MC 68851 Daten/Befehle Prozessor MC 68020 Kontrolle Speicher MMU 68851 virtuelle Adressen reale Adressen Adressbits (7:0) Maximal erhältlich Zahl von Vergleichern? Voll-assoziativer TLB mit 64 Einträgen

Zusammenfassung Translation look aside buffer (TLBs) dienen dem raschen Zugriff auf häufig benutzte Adressumrechnungs-Informationen. Fehlende Treffer  Umrechnung über den Hauptspeicher. 3 Organisationsformen: Direct mapping Mengen-assoziative Abbildung (set associative mapping), und Assoziativspeicher (associative mapping). TLBs können Teil der Memory Management Unit (MMU) sein.

2.4.4 Caches Cache = Speicher, der vor einen größeren, langsamen Speicher geschaltet wird. Im weiteren Sinn: Puffer zur Aufnahme häufig benötigter Daten. Im engeren Sinn: Puffer zwischen Hauptspeicher und Prozessor. Prozessor Cache (Haupt-/Arbeits-) Speicher Ursprung: cacher (frz.): verstecken („versteckter Speicher“).

Ablauf Organisation von Caches (im engeren Sinn): Prüfung anhand der (virtuellen oder realen) Adresse, ob benötigte Daten im Cache vorhanden sind („Treffer“; cache hit). Falls nicht (cache miss): Zugriff auf den (Haupt-) Speicher, Eintrag in den Cache. (Haupt-/Arbeits-) Speicher Prozessor Cache lese 0x600  Adresse Daten lese 0x400  lese 0x600  0x400 9999 5555 9999 0x600 5555 0x600 5555 5555

Prüfung auf cache hit: Cache-Zeilen (cache lines). Such-Einheit im Cache: Cache-Zeile (cache line). Für line size =4. Adresse tag Index tags Cache-Zeile = Weniger tag bits, als wenn man jedem Wort tag bits zuordnen würde.

Cache-Blöcke (cache blocks) - 1 - Die Blockgröße ist die Anzahl der Worte, die im Fall eines cache misses aus dem Speicher nachgeladen werden. Beispiel: (Blockgröße = line size): tags 0x88C0 0xC 0x22 4444 5555 7777 9999 0x88 0x88 miss = Speicher 4444 5555 7777 9999

Cache-Blöcke (cache blocks) - 2 - Wenn block size < line size, dann sind zusätzliche Gültigkeitsbits erforderlich. Beispiel: Blockgröße = line size / 2. Gültigkeitsbits Block tags 0x88C0 0xC 0x22 1 1 7777 9999 0x88 1 0x88 miss = Speicher 4444 5555 7777 9999

Cache-Blöcke (cache blocks) - 3 - Wenn block size > line size, dann werden bei jedem miss mehrere Zeilen nachgeladen. Stets wird zuerst das gesuchte Wort, dann der Rest des Blocks geladen. Verbindung Speicher/Cache so entworfen, dass der Speicher durch das zusätzliche Lesen nicht langsamer wird: Methoden dazu: 1. Schnelles Lesen aufeinanderfolgender Speicherzellen (nibble mode, block/page mode der Speicher) 2. Interleaving (mehrere Speicher-ICs mit überlappenden Zugriffen) 3. Block-Mode beim Buszugriff, Page-Mode beim Speicherzugriff 4. Fließbandzugriff auf den Speicher (EDO-RAM, SDRAM) 5. breite Speicher, die mehrere Worte parallel übertragen können.

Organisationsformen von Caches Direct mapping Für caching von Befehlen besonders sinnvoll, weil bei Befehlen aliasing sehr unwahrscheinlich ist. Set associative mapping Sehr häufige Organisationsform, mit Set-Größe=2 oder 4, selten 8. Associative mapping Wegen der Größe eines Caches kommt diese Organisationsform kaum in Frage.

Schreibverfahren Strategien zum Rückschreiben Cache -> (Haupt-) Speicher 1. Write-Through (durchschreiben) Jeder Schreibvorgang in den Cache führt zu einer unmittelbaren Aktualisierung des (Haupt-) Speichers Prozessor Cache Speicher [0x88C0] := 5555  [0x88C0] := 5555  0x88C0 5555 0x88C0 5555 4444 Index Speicher wird Engpass, es sei denn, der Anteil an Schreiboperationen ist klein oder der (Haupt-) Speicher ist nur wenig langsamer als der Cache.

Schreibverfahren 2. Copy-Back, conflicting use write back: Rückschreiben erfolgt erst, wenn die Cache-Zeile überschrieben wird. Prozessor Cache Speicher [0x88C0] := 9999  [0x88C0] := 9999  [0x55C0] := 3333  [0x88C0] := 5555  [0x88C0] 0x88C0 5555 0x88C0 9999 0x55C0 3333 0x88C0 9999 4444 Man könnte die Animation durch mehrere Folien ersetzen Index Funktioniert auch bei großen Geschwindigkeitsunterschieden zwischen Cache und Speicher. Vorkehrungen erforderlich, damit keine veralteten Werte aus dem Speicher kopiert werden.

Virtuelle und reale Caches Virtuelle Caches (schnell) virtuelle Adressen reale Adressen Prozessor Speicher MMU Cache Daten Reale Caches (langsamer): virtuelle Adressen reale Adressen MMU Prozessor Speicher Cache Daten

Realer Cache bei Prozesswechsel (context switch) Zu einer bestimmten Adresse im Cache gehört vor und nach dem Prozesswechsel dieselbe Zelle im Speicher. Prozessor MMU Cache Speicher lese 0x88D0  lese 0x22B0  lese 0x22B0  lese 0x88D0  lese 0x11C0  lese 0x11C0   3333  3333  3333  4444  4444  4444 0x11C0 3333 P2 P1 0x22B0 4444 0x22B0 4444 0x11C0 3333  Bei Prozesswechsel bleiben Informationen im Cache korrekt. Keine Aktionen erforderlich. Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x22B. Eintrag 0x11C0 ist nach Rückschalten auf P1 immer noch korrekt. Einträge überleben evtl. mehrere Prozesswechsel!  Gut für große Caches!

Realer Cache bei Seitenfehler (Seite muss per demand paging eingelagert werden) Zu einer bestimmten Adresse im Cache gehört vor und nach dem Aus- & Einlagern von Seiten eine andere Information. Prozessor MMU Cache Speicher lese 0x77F0  lese 0x11C0  lese 0x11C0  lese 0x88D0  lese 0x11C0  lese 0x11C0   3333  3333  3333  5555  5555  5555 0x11C0 3333 5555 0x11C0 3333 0x11C0 5555 P1 Vor Aus/Einlagern Seite Kachel 0x88D. 0x11C. Nach Aus/Einlagern Seite Kachel 0x77F. 0x11C. 0x88D.  Platte  Bei Seitenfehlern müssen alle Cache-Zeilen, die Kopien der verdrängten Seite enthalten, ungültig erklärt werden.

Bus snooping (Bus-Lauschen)  Bei Seitenfehlern müssen alle Cache-Zeilen, die Kopien der verdrängten Seite enthalten, ungültig erklärt werden. Prozessor MMU Cache Speicher 0x11C0 5555 3333 0x11C0 3333 P1 Cache „lauscht“, ob ein Schreibvorgang in den Speicher eine Zelle betrifft, von der er eine Kopie hat. Wenn ja, dann erklärt er diese für ungültig. © Photo: Microsoft

Gemeinsam genutzte Seiten (sharing) Kacheln 0 1 2 3 4 5 6 7 8 .. 0 1 2 3 Seiten Prozess 1 0 1 2 3 Seiten Prozess 2 Für gemeinsame Daten oder gemeinsame Befehle: Eintrag derselben Kachel in mehrere Seitentabellen.

Realer Cache bei gemeinsam genutzter Seite Annahme *: Beide Prozesse benutzen dieselbe virtuelle Adresse für den gemeinsamen Speicherbereich Prozessor MMU Cache Speicher lese 0x88D0  lese 0x11C0  lese 0x88D0  lese 0x11C0  lese 0x11C0   3333  3333  3333  3333  3333 0x11C0 3333 P1 P2 0x11C0 3333 Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x11C.  Nach Prozesswechsel erhält P2 aus dem Cache die richtigen Informationen (unabhängig von *).

Virtueller Cache bei Prozesswechsel (context switch) Zu einer bestimmten Adresse im Cache gehört vor und nach dem Prozesswechsel eine andere Zelle im Speicher. Prozessor Cache MMU Speicher lese 0x88D0  lese 0x88D0  lese 0x22B0  lese 0x88D0  lese 0x88D0  lese 0x11C0   3333  3333  3333  4444  4444  4444 0x11C0 3333 P2 P1 0x88D0 4444 0x22B0 4444 0x88D0 3333  Bei Prozesswechsel muss der Cache ungültig erklärt werden. Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x22B. Bei jedem Prozesswechsel gehen alle Informationen im Cache verloren.  Schlecht für große Caches!

Virtueller Cache bei Seitenfehler Zu einer bestimmten Adresse im Cache gehört vor und nach dem Seitenfehler dieselbe Information. Prozessor Cache MMU Speicher lese 0x88D0  lese 0x88D0  lese 0x88D0  lese 0x11C0   3333  3333  3333  3333 0x11C0 4444 3333 P1 0x88D0 3333  Bei Seitenfehlern keine Aktion im Cache. Vor Aus-/Einlagern Seite Kachel 0x88D. 0x11C. Nach Aus-/Einlagern Seite Kachel 0x77F. 0x11C.

Virtueller Cache bei gemeinsam genutzter Seite (sharing) Annahme: Beide Prozesse benutzen dieselbe virtuelle Adresse für den gemeinsamen Speicherbereich Prozessor Cache MMU Speicher lese 0x88D0  lese 0x88D0  lese 0x11C0  lese 0x88D0  lese 0x88D0  lese 0x11C0   3333  3333  3333  3333  3333  3333 0x11C0 3333 P1 P2 0x88D0 3333 0x88D0 3333  Der zweite Prozess füllt den Cache erneut. Langsam, aber korrekt. Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x11C.

Virtueller Cache mit PIDs bei Prozesswechsel (context switch) Virtuelle Adresse wird um Prozessnummer (process identifier, PID) erwei-tert. Zu einer bestimmten Adresse im Cache gehört vor und nach dem Prozesswechsel wieder dieselbe Zelle. Prozessor Cache MMU Speicher lese 0x288D0  lese 0x288D0  lese 0x22B0  lese 0x188D0  lese 0x188D0  lese 0x11C0   3333  3333  3333  4444  4444  4444 0x11C0 3333 P2 P1 0x22B0 4444 0x288D0 4444 0x188D0 3333  Bei Prozesswechsel keine Aktion im Cache erforderlich. Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x22B. Set associative mapping  Eintrag für P1 würde erhalten.  Gut für große Caches! TLBs in der MMU könnten PIDs nutzen.

Virtueller Cache mit PIDs bei Seitenfehler Zu einer bestimmten Adresse im Cache gehört vor und nach dem Seitenfehler dieselbe Information. Prozessor Cache MMU Speicher lese 0x188D0  lese 0x188D0  lese 0x88D0  lese 0x11C0   3333  3333  3333  3333 0x11C0 4444 3333 P1 0x188D0 3333  Bei Seitenfehlern keine Aktion im Cache. Vor Aus-/Einlagern Seite Kachel 0x88D. 0x11C. Nach Aus-/Einlagern Seite Kachel 0x77F. 0x11C.

Virtueller Cache mit PIDs bei gemeinsam genutzter Seite (sharing) Prozessor Cache MMU Speicher [0x188D0]:=7777  lese 0x288D0  lese 0x288D0  lese 0x11C0  lese 0x188D0  lese 0x188D0  lese 0x11C0   3333  3333  3333  3333  3333  3333 0x11C0 3333 P1 P2 0x188D0 3333 0x288D0 3333 0x188D0 7777 0x288D0 3333 Einträge für P1 und P2 können beide im Cache existieren (z.B. bei set associative mapping); sie werden nicht abgeglichen  mögliche Inkonsistenz bzw. Inkohärenz Prozess P1 Seite Kachel 0x88D. 0x11C. Prozess P2 Seite Kachel 0x88D. 0x11C.

Cache-Kohärenz Realer Cache Virtueller Cache mit PIDs Virtueller Cache Inhalt nach Prozesswechsel gültig gültig, falls es ausreichend viele PIDs gibt ungültig Inhalt nach Seitenfehler modifizierte Kachel ungültig gültig* Geschwindigkeit langsam schnell Automatische Kohärenz bei Sharing ja nein ja, aber Code muss neu geladen werden. primäre Anwendung große Caches kleine Caches; Befehlscaches, falls dynamisches Überschreiben von Befehlen verboten ist. * Potenzielle Schwierigkeiten, wenn Cacheinhalte  Hauptspeicherinhalte.

Systeme mit mehreren Caches Beispiel: Chip virtueller L1-Befehlscache Realer L2- Cache, snooping; copy back Prozessor MMU Speicher Realer L1 Datencache, write-through

Beispiel: aktuelle Intel Prozessoren Beispiel: Intel® Core™ 2 Extreme Quad-Core QX6000: 4 x 32 kB L1 Cache 2 x 4 MB L2 Cache 2 Doppelprozessoren in einem Gehäuse

Austauschverfahren Überschreiben von Einträgen in TLB, Caches, Kacheln: 1. Random- bzw. Zufallsverfahren Ein zufällig ausgewählter Eintrag wird überschrieben. 2. NRU, not recently used Einteilung von Einträgen in 4 Klassen: a. Nicht benutzte, nicht modifizierte Einträge b. Nicht benutzte, modifizierte Seiten Benutzt-Kennzeichnung wird nach einiger Zeit zurückgesetzt. c. Benutzte, nicht modifizierte Seiten d. Benutzte, modifizierte Seiten Überschrieben wird ein zufällig ausgewählter Eintrag der niedrigsten Klasse, die nicht-leer ist. 3. LRU=least recently used Überschreiben des Eintrags, der am längsten nicht benutzt wurde. Pentium CacheFilm

Wie wirkt sich der Cache auf die Laufzeit von Programmen aus? Untersuchung der Laufzeit beim Durchlauf durch eine im Array abgelegte verkettete Liste mit Einträgen von NPAD*8 Bytes Pentium P4 16 kB L1 Daten-Cache mit 4 Zyklen/Zugriff 1 MB L2 Cache mit 14 Zyklen/Zugriff Hauptspeicher mit 200 Zyklen/Zugriff U. Drepper: What every programmer should know about memory*, 2007, http://www.akkadia. org/drepper/cpumemory.pdf; Dank an Prof. Teubner (LS6) für Hinweis auf diese Quelle * In Anlehnung an das Papier „David Goldberg, What every programmer should know about floating point arithmetic, ACM Computing Surveys, 1991 (auch für diesen Kurs benutzt). © Graphik: U. Drepper, 2007

Zyklen/Zugriff als Funktion der Listengröße L1d L2-Treffer L2-Miss* L1d L2-Treffer L2-Miss§ § Prefetching schlägt fehl * Funktionierendes Prefetching © Graphik: U. Drepper, 2007

Einfluss von TLB-Misses und größeren Caches Elemente auf verschiedenen Seiten; Anwachsen der Laufzeit, wenn TLB-Größe überschritten wird Größere Caches verschieben die Stufen © Graphik: U. Drepper, 2007

Zusammenfassung Cache-Zeilen: Einheit der Gültigkeitsprüfung Cache-Blöcke: Einheit des Nachladens Organisationsformen: direct mapping set associative mapping Unterscheidung zwischen virtuellen und realen Caches. Moderne Systeme besitzen mehrere Cache-Ebenen

Plattenspeicher Disc-Arrays Flash-Speicher Massenspeicher Haupt- speicher controller Prozessor Netz start Plattenspeicher Disc-Arrays Flash-Speicher CD-ROM DVD Bandlaufwerke Weitere

Schematischer Aufbau eines Plattenlaufwerks Schreib-/Leseköpfe Motor Achse Speicher-platten

Einteilung der Platten in Sektoren, Spuren und Zylinder [Hennessy/Patterson, Computer Architecture, 3. Aufl.] © Elsevier Science (USA), 2003, All rights reserved

Daten einiger Plattenlaufwerke (2011) Seagate Barracuda XT. Seagate Momentus Thin Toshiba MK1214GAH Durchmesser [''] 3,5 2,5” 1,8” Kapazität [GB] 2000 320 Umdrehungen[RPM] 7200 5400 Mittl. Latenz [ms] 4.17 ms 4,17 5,56 Average seek [ms] 8,5 read/9,5 write 11 15 Übertragungsrate Max. 600 MB/s, 138 MB/s dauerhaft 300 MB/s Leistung [W] passiv/aktiv 6,39/9,23 0,66/1,6 0,40/1,3 Puffer [MB] 64 16 Gb/sq.in 347 425 ? Schock-Toleranz [Betrieb/außer Betrieb] 86 G/ 300 G 350 G/1000 G 500 G/1500 G Interface SATA 6 Gb/s SATA, 3 Gb/s [Seagate/Toshiba Webseite]

Abhängigkeit der Suchzeit von der Spurdifferenz berücksichtigt Beschleunigung © Elsevier Science (USA), 2003, All rights reserved [Hennessy/Patterson, Computer Architecture, 3. Aufl.]

Verteilung der Spurdifferenzen

Interfaces IDE/ATA (Integrated Drive Electronics): SATA (Serial ATA): SCSI (Small Computer System Interface): SAS (serial attached SCSI): SCSI-Protokoll über serielle, SATA-kompatible Leitung Fibre Channel: Hochleistungsanschluss für den Server- markt USB/FireWire  siehe nächstes Kapitel

Redundant arrays of inexpensive discs (RAID) Verbesserung der E/A-Geschwindigkeit durch paralleles Lesen/Schreiben auf mehrere Platten; Einsatz von Redundanz, damit dadurch nicht die Zuverlässigkeit leidet.  Disc arrays, drive arrays

RAID 0 (Striping) Dateien werden unterteilt in so genannte Stripes. Striping-Parameter = Länge eines Stripes. Diese Stripes werden auf den Platten verteilt. 4 1 2 3 Keine Redundanz, nur Verbesserung der Übertragungsrate

RAID 1 (Mirroring) Dieselben Informationen werden auf zwei Platten geschrieben (gespiegelte Platten, mirrored discs) 1 2 1 2 3 4 3 4 identische Kopien Erhöhte Fehlersicherheit, Stark erhöhter Aufwand (x 2), Es werden eigentlich nur 2 Plattenlaufwerke genutzt.

RAID 2 (ECC) Zusätzlich werden Prüfbits auf spezielle Platten geschrieben, Verwendung von fehlerkorrigierenden Codes (error correcting code, ECC). Die Bits werden auf mehreren Platten verteilt. 5 1 6 2 7 3 8 4 9 Bits ECC Geringere Redundanz als RAID 1, aber wegen Prüfbit-Erzeugung und Last auf Prüfbitplatten langsamer. Erfordert spezielle Platten, kommerziell nicht verfügbar.

RAID 3 (dedicated parity) Es nur ein einzelnes Paritäts-Stripe auf einer Parity-Platte abgelegt. Häufig nur der Fall Stripe-Parameter=1 Bit betrachtet. Die Stripes eines Datenblocks werden auf Platten verteilt. 5 1 6 2 7 3 8 4 9 P P‘ Bits Selbst für kleinste zu schreibende/lesende Blöcke alle Platten aktiv. Keine gute Performance.

RAID 4 Wie RAID-3, jedoch mit einem Striping-Faktor von einem Block und mehr. 5 1 6 2 7 3 8 4 9 P P‘ Größe=striping-Faktor Besserer wahlfreier Zugriff als RAID 3. Paritätsplatte bleibt ein Engpass.

RAID 5 (distributed parity) Paritätsinformation wird über verschiedene Platten verteilt 4 P4 12 8 1 5 16 P3 9 2 6 17 13 P2 3 P1 18 14 10 P0 7 19 15 11 Paritätsplatte nicht weiter ein Engpass

RAID 0+1, RAID 01 (mirrored stripes) Gespiegelte Platten (RAID 1), mit verteilten Stripes (RAID 0)  mirrored stripes. 2 4 1 3 2 4 1 3 identische Kopien Lesegeschwindigkeit erhöht, erhöhte Fehlersicherheit, stark erhöhter Aufwand.

RAID 1+0, RAID 10 (striped mirrors) Striped mirrors: striping von gespiegelten Platten Lesegeschwindigkeit erhöht, erhöhte Fehlersicherheit, stark erhöhter Aufwand. Informationen zu neuen Varianten: http://www.pcguide.com/ref/hdd/perf/raid/levels/multLevel01-c.html

Übersicht RAID Variante Technik Fehlertoleranz Daten-Platten Prüfplatten non-redundant 8 1 mirrored 0+1 Komb. v. 0 & 1 2 memory-style ECC 4 3 bit-interleaved parity block-interleaved parity 5 dto, distributed parity 6 P+Q redundancy bevorzugt UVC-Film!

NOR- und NAND-Flash NOR: 1 Transistor zwischen Bitleitung und Masse NAND: >1 Transistor zwischen Bitleitung und Masse contact was at [www.samsung.com/Products/ Semicon-ductor/ Flash/FlashNews/ FlashStructure. htm] (2007) contact

Eigen-schaften von NOR- und NAND-Flash- Speichern Type/Eigenschaft NOR NAND Wahlfreier Zugriff Ja  Nein  Block löschen Langsam  Schnell  Zellgröße Groß  Klein  Zuverlässigkeit Größer  Kleiner  Direktes Ausführen Anwendungen Codespeicherung, boot flash, set top box Datenspeicher, USB Sticks, Speicherkarten [www.samsung.com/Products/Semiconductor/Flash/FlashNews/FlashStructure.htm]

Charakteristische Eigenschaften von NAND Flash Speicher Speicher aufgeteilt in Blöcke (typ. 16-256 KB), Blöcke unterteilt in Seiten (typ. 0.5-5 KB). Schreib-/Lesevorgänge jeweils auf Seiten 1 Bit/Zelle (SLC) >1 Bit/Zelle (MLC) Lesen (Seite) 25 µs ≫ 25 µs Schreiben (Seite) 300 µs ≫ 300 µs Löschen (Block) 2 ms 1.5 ms J. Lee, S. Kim, H. Kwin, C. Hyun, S, Ahn, J. Choi, D. Lee, S.Noh: Block Recycling Schemes and Their Cost-based Optimization in NAND Flash Memory Based Storage System, EMSOFT’07, Sept. 2007

Seiten-/bzw. Sektorabbildung mit Flash transaction layer (FTL) Seiten-tabelle Seite logische Sektor- Nummer Block 0 Block 1 Block 2 Block 3 15 Invertierte Seitentabelle im Flashspeicher gespeichert (Extra Bits); “Normale Seitentabelle” während der Initialisierung erzeugt; Seitentabelle kann sehr groß werden; Wird in kleinen NOR Flash-Speichern benutzt. Sektor  Seite + Extra Bits

Ausnutzung von Regularität Häufig lange Sequenzen von sequentiellen Schreib-vorgängen

Block mapping flash transaction layer (FTL) Block mapping table logische Block/ Sektor- Nummer Block 0 Physika-lische Block/ Sektor- Nummer concat & Block 1 Block 2 Sektoranteil Block 3 15 Abbildungstabellen kleiner als bei Seiten-basierten FTLs In großen NAND Flash-Speichern benutzt Einfache Realisierung, Wiederholtes Schreiben erfordert Kopieren auf einen neuen Block Schlechte Performance bei wiederholtem und zufälligem Schreiben Hybride Verfahren

Ausgleich der Abnutzung (wear levelling) Beispiel (Lofgren et al., 2000, 2003): Jede erase unit (Block) besitzt Löschzähler 1 Block wird als Ersatz vorgehalten Wenn ein häufig genutzter Block frei wird, wird der Zähler gegen den des am wenigsten benutzten Blocks verglichen. Wenn der Unterschied groß ist: Inhalt wenig genutzten Blocks ( Konstanten)  Ersatz Inhalt häufig genutzten Blocks  am wenigsten genutzter Block Häufig genutzter Block wird zum Ersatzblock Konst Ersatz Var Var Konst Ersatz Source: Gal, Toledo, ACM Computing Surveys, June 2005

Solid State Discs (SSDs) Hervorragende Transfergeschwindigkeiten von SSDs http://en.wikipedia.org/wiki/File:480_GB_OCZ-AGIL_ITY3.png

Flash-spezifische Dateisysteme Zwei Ebenen können ineffizient sein: FTL bildet Magnetplatte nach Standard-Dateisystem basiert auf Magnetplatten Beispiel: Gelöschte Sektoren nicht markiert  nicht wieder verwendet Log-strukturierte Dateisysteme fügen nur neue Informationen zu Für Magnetplatten Schnelle Schreibvorgänge Langsames Lesen (Kopfbewegungen für verteilte Daten) Ideal für Flash-basiertes Dateisystem: Schreibvorgänge in leere Sektoren Lesen nicht langsam, da keine Köpfe bewegt werden Spezifische log-basierte Flash-Dateisysteme JFFS2 (NOR) YAFFS (NAND) Source: Gal, Toledo, ACM Computing Surveys, June 2005

Vergleich Harddisc/Flash-Speicher (2011) HDD Zugriffszeit (random) [ms] ~0.1 5-10 Kosten [$/GB] 1,2-2 (Fixanteil gering) 0,05-0,1, Fixanteil ! Kapazität [GB] Typ. < 120 1000-3000 Leistungsaufnahme [W] Ca. 1/3-1/2 der HDD-Werte Typ. 12-18, laptops: ~2 Defragmentierung unwichtig Zu beachten Zeitverhalten Relativ deterministisch Von Kopfbewegung abhängig Anzahl der Schreibvorgänge begrenzt unbegrenzt Verschlüsselung Überschreiben unver-schlüsselter Info schwierig Überschreiben einfach Mechanische Empfindlichk. Gering Stoßempfindlich Wiederbenutzung von Blöcken Erfordert Extra-Löschen Überschreiben [wikipedia, 2011]

Vergleich Flash/Microdrive (2002) Sandisk Type I Flash Sandisk Type II Flash IBM Microdrive DSCM-10340 Kapazität [MB] 64 300 340 El. Leistung [W] (standby/operating) 0,15/0.66 0,15/0,66 0,07/0.83 Schreibzyklen 300.000 unbegrenzt Mittl. Abstand zwischen Fehlern [h] >1.000.000 service-life=min(5J, 8800 h operating) Fehlerraten, unkorrigierbar < 1 per 1014 <1 per 1014 <1 per 1013 Max. Zahl Einschaltvorgänge Schock-Toleranz 2000 G; 2000 G 2000 G; 175 G; 1500 G Source: Hennessy/Patterson, Computer Architecture, 2002

CD-ROM Datenträger auf der Basis der Technik von Audio-CDs. Informationen als Vertiefungen in einer reflektierenden Oberfläche gespeichert. Abtastung mit 780 nm Laser.

DVD-Laufwerke (1) Kapazität gegenüber CDs erhöht: 1. Abstände und Größe der Vertiefungen werden reduziert, Abtastung mit 650 nm (rotem) Laserstrahl: CD-ROM DVD  Erhöhung der Kapazität um den Faktor 4.

DVD-Laufwerke (2) 2. Informationen können in zwei Ebenen und auf beiden Seiten gespeichert werden. Datenrate 1,25 MB/s bei einfacher Geschwindigkeit. MPEG-2 bei Speicherung von Filmen.

Blu*-ray disc (BD) : Motivation *Falsche Schreibweise, damit Eintrag als Markenzeichen möglich http://www.blu-raydisc.com/assets/downloadablefile/ general_bluraydiscformat-12834.pdf

Blu-ray: Eigenschaften Vergleich der Fokussierung Verkürzung der Wellenlänge auf 405 nm (blau) Reduktion der Dicke der transparenten Schicht auf 100 µm, zur besseren Fokussierung des Laserstrahls, bessere Fehlerkorrektur; zusätzliche schmutzresistente Schicht http://www.blu-raydisc.com/assets/downloadablefile/ general_bluraydiscformat-12834.pdf

Blu-ray: Eigenschaften (2) 23.3/25/27 GB in einer Speicherebene 46.6/50/54 GB in zwei Speicherebenen Experimentell 200 GB http://www.blu-raydisc.com/assets/downloadablefile/ general_bluraydiscformat-12834.pdf

Vergleich Übertragungsgeschwindigkeiten Annahme: Transport einer Blu-ray, als Dual Layer beschrieben (Kapazität=50 GB) auf der Strecke Dortmund - München (Strecke ~ 500km) mit einer Fahrrad-Staffel mit 36km/Std im Mittel. Gleichzeitig DSL-Übertragung mit Übertragungsrate 8 M Bit/s. Wie viel Prozent der maximalen Übertragungsrate muss die DSL-Strecke erreichen, damit nicht die Radfahrer gewinnen ? (Vernachlässigung von Extra-Bits) x  Übertragungsrate  Zeit des Radfahrers = Kapazität x = Kapazität  Geschwindigkeit / (Übertragungsrate  Strecke) x = 50  109  8  36 / (8  106  60  60  500) x = 50  109  8  36 / (50  109  8  36) x = 1 Die DSL-Strecke müsste 100 % der max. Übertragungsrate erreichen.

QIC-Laufwerk (Quarter inch tape) Horizontale Aufzeichnung in mehreren (bis zu 100) Spuren nacheinander, optimiert auf streaming-Betrieb mit hoher Bandgeschwindigkeit, bis ~5 GB (20 GB bei Weiterentwicklung Travan-5) © c‘t, nur zur Verwendung der Teilnehmer der RS-Vorlesung

DAT-Laufwerk (digital audio tape) Technik der digital audio tapes, Schrägspur-aufzeichnung, Weiterentwicklung DDS-4; bis 20 GB (40GB komprimiert); © c‘t, nur zur Verwendung der Teilnehmer der RS-Vorlesung

Linear Tape Open (LTO) - 4 [www.wikipedia.de]

Linear Tape Open (LTO) - 4 [www.wikipedia.de]

Bewertung von Band-basierten Medien Lange Suchzeiten, geringe Transferraten. Abnutzung Schrägspur: "Hunderte von Durchläufen" Parallelspur: "Tausende bis Millionen von Durchläufen„ Ursprünglich deutlich kostengünstiger als Platten, da nur das Speichermedium repliziert wird. Hennessy/Patterson: Gegenwärtiger Kostenvorteil? Derzeit (2011): ~22 € für Archivierung von 800 GB über LTO-4; bietet immer noch Kosten- und Archivierungsvorteile

Zusammenfassung Nicht-flüchtige Speicher: Plattenspeicher sind traditionell preisgünstiges Speichermedium RAID-Speicher bieten benötigte Zuverlässigkeit Flash-Speicher bieten neue Speicheroptionen, trotz begrenzter Anzahl von Schreiboperationen Kapazität optischer Speicher steigt weiter Unterschiedliche Beurteilung der Preisvorteile von Bandspeichern