Schneller Speicher, im Vergleich zum Hauptspeicher
Ein Cache enthält nur kleine Datenmengen (Cacheblocks) aus dem Hauptspeicher
Problem: Welche Daten sollen aus dem Hauptspeicher geladen werden?
Ist im Cache keinen Platz mehr für einen neuen Block, muss zuerst ein Block verdrängt werden – Wie?
Lokalitätsprinzip
Es gibt zwei Arten von sogenannter Lokalität
Zeitliche Lokalität
Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass auf eine Speicherzelle nicht nur einmal, sondern zeitlich „nah“ mehrmals zugegriffen wird
Örtliche Lokalität
Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass nach dem Zugriff auf eine bestimmte Speicherzelle auch ein Zugriff in deren unmittelbarer „Nachbarschaft“ stattfindet
Caches in modernen Systemen
Aufbau
Platzierung
Platzierung des Hauptspeicherblocks mit Adresse 13
Lesezugriffe
Findet ein Lesezugriff auf Speicherzelle A statt …
… wird zunächst geprüft, ob Speicherzelle A bereits im Cache liegt.
A liegt im Cache (cache hit)
- Der Datensatz kann direkt aus dem Cache gelesen werden.
A liegt nicht im Cache (cache miss)
- Der Datensatz muss aus dem Hauptspeicher in den Cache geladen werden.
- Aus dem Cache wird der Datensatz in die CPU geladen.
Schreibzugriff
Findet ein Schreibzugriff auf Speicherzelle A statt …
… wird zunächst geprüft, ob Speicherzelle A bereits im Cache liegt.
A liegt im Cache (cache hit)
- Der Datensatz wird im Cache aktualisiert
- (Der Datensatz wird im Hauptspeicher aktualisiert)
A liegt nicht im Cache (cache miss)
- Der Datensatz wird direkt in den Hauptspeicher geschrieben.
- Der Inhalt des Caches wird nicht verändert.
Schreibzugriff
Es gibt zwei Verfahren zum Aktualisieren von Datensätzen im Cache
Write-Through
Der Datensatz wird im Cache und direkt anschließend auch im Hauptspeicher aktualisiert
Keine Probleme mit der Datenkonsistenz im Hauptspeicher
Write-Back
Der Datensatz wird im Cache aktualisiert und erst in den Hauptspeicher zurückgeschrieben, wenn der entsprechende Cacheblock aus dem Cache verdrängt wird
Niedrige Belastung der Systembusse und keine Wartezyklen
Daten waren vorrätig, wurden aber wieder aus ihm entfernt.
erneuter Zugriff -> „Capacity Miss“
Abhilfe schafft nur ein größerer Cache.
Conflict Miss
nur bei set-associative Organisation
in einem Satz nicht mehr genug Platz ist, während in anderen Sätzen noch freie Cacheblöcke
Aus überfüllten Satz wird ein Block entfernt werden, obwohl der Cache eigentlich noch Platz hat.
Wird auf diesen entfernten Block erneut zugegriffen -> „Conflict Miss“.
Abhilfe schafft eine Erhöhung der Cacheblocks pro Satz – also eine Erhöhung der Assoziativität.
Compulsory Miss
Als „Compulsory Miss“ oder auch „Cold Start Miss“ bezeichnet man den erstmaligen Zugriff auf eine Adresse, deren Daten sich noch nicht im Cache befinden, und zugleich hat der Cache noch freien Platz.
keine Verdrängung stattfindet, sondern ein Block zum ersten Mal/neu beschrieben wird.
Cache Kapazität
4.3 – Input/Output
Massenspeicher, Maus, Tastatur, …
Lesson Learned
In diesem Kapitel geht es darum folgende Dinge zu verstehen und
zu können
Massenspeicher
Funktionsweise eines RAID-Systems
Unterschied “normale” Festplatte und SSD
Funktionsweise einer CD / DVD / Blu-ray
Wichtige Ein- und Ausgabegeräte kennen
Technische Realisierungen grundlegend verstehen
RAID
Aufbau eines RAID
Es werden mindestens 2 Festplatten benötigt
Alle in das RAID eingebundenen Festplatten werden gemeinsam betrieben und zielen auf die Verbesserung einer Eigenschaft ab
Erhöhung der Ausfallsicherheit
Steigerung der Datentransferrate
Erweiterung der Speicherkapazität
Möglichkeit des Austauschs von Festplatten im laufenden Betrieb
Kostenreduktion durch Einsatz mehrerer kostengünstiger Festplatten
Die genau Art des Betriebs wird durch das RAID-Level angegeben
RAID - Level 0
Bietet höhere Transferraten durch Striping
RAID - Level 1
RAID 1 bietet hohe Datenredundanz durch Mirroring
RAID - Level 5
RAID 5 bietet höhere Transferraten und hohe Datenredundanz
RAID - Level 5
Redundanz bei RAID 5 wird mit XOR-Operationen erreicht
Original bei drei Platten
D1
D2
D3
par
1
1
0
0
0
1
1
0
0
1
0
1
Wiederherstellung bei Ausfall durch Auswertung der Parität
D1
D2
D3
par
1
?
0
0
?
1
1
0
0
1
?
1
RAID - Kombinationen
Kombinationen von RAID-Systemen sind möglich
Mehrere RAID-Systeme eines bestimmten Typs werden zu einem RAID-System zusammengefasst
z.B. RAID 10, RAID 01, …
RAID-Kombinationen sind theoretisch n-stufig möglich
z.B. RAID 100
RAID - Kombinationen
RAID 01:
Mehrere RAID0 werden zu einem RAID1 zusammengefasst
RAID - Kombinationen
RAID 10:
Mehrere RAID1 werden zu einem RAID0 zusammengefasst
Festplatten
Festplatte, Hard Disk, HD, Hard Disk Drive, HDD, …
Information wird durch Magnetisierung abgelegt
Gehäuse der Festplatte beinhaltet mehrere, auf einer Achse übereinander montierten, runden Platten, welche mit einer magnetisierbaren Schicht überzogen sind
Enthaltene Platten haben alle denselben Durchmesser (3,5“, 2,5“, 1,8“ Formfaktor)
Heutzutage etwa 1-8 TB Speicherkapazität üblich
Festplatten - Konstruktion
Eine Festplatte funktioniert wie folgt:
Schreib-/Leseköpfe werden durch einen zentralen Kamm über die Platten bewegt
Etwa 1 μm Abstand zwischen Platte und Kopf
„Landing Zone“ zum Parken der Köpfe
Kommen die Köpfe mit einem Plattenbereich in Berührung, welcher Daten enthält, werden diese zerstört
Platten rotieren mit konstanter Umdrehungszahl (5400 – 15000 rpm)
Spuren und Sektoren
Die Oberfläche der Platten ist in konzentrische Kreise, die Spuren, eingeteilt
Die Spuren sind in Abschnitte fester Speichergröße, die Sektoren, unterteilt
Kleinste adressierbare Einheit einer Festplatterfläche der Platten ist in konzentrische Kreise, die Spuren, eingeteilt.
Zylinder
Als Zylinder werden die übereinander liegenden Spuren der Platten bezeichnet
Alle Zylinder können von den entsprechenden Schreib-/Leseköpfen gleichzeitig geschrieben/gelesen werden
Kenngrößen
kontinuierliche Übertragungsrate (sustained data rate)
Datenmenge, die die Festplatte beim Lesen aufeinander folgender Sektoren im Mittel pro Sekunde überträgt (Schreiben ähnlich)
mittlere Zugriffszeit ([data] access time)
Spurwechselzeit (seek time, Mittelwert beim Wechsel von einer zufälligen zu einer anderen zufälligen Spur)
Latenzzeit (latency, im Mittel dauert es eine halbe Umdrehung, bis ein bestimmter Sektor unter dem Kopf vorbeikommt)
Kommando-Latenz (controller overhead, Zeit, die der Festplattencontroller damit verbringt, das Kommando zu interpretieren)