Festplattencache
# Festplattencache

Ein Festplattencache bezeichnet den schnellen Zwischenspeicher einer Festplatte, der Schreib- und Lesezugriffe auf einen Datenträger puffert, um den Einfluss der Latenzzeit und Datenübertragungsrate des Datenträgerzugriffs auf das System zu verringern.

## Details

2009 erhältliche Festplatten und Solid-State-Laufwerke besaßen in der Regel zwischen 8 und 128 MiB RAM als Zwischenspeicher. Aktuelle Festplatten und Solid-State-Laufwerke sind inzwischen (Stand November 2018) mit bis zu 256 MiB Zwischenspeicher erhältlich.
Der Cache wird unterschieden in reinen Lesecache und Schreibcache. Bei Lesecache werden nur die bereits vom Datenträger geladenen Daten für eine erneute Verwendung zwischengespeichert.
Mit einem Schreibcache können Daten auch verzögert gespeichert werden, wodurch die Festplatte Schreibzugriffe aus Sicht des Systems schneller abarbeitet. Hierbei wird die Ausführung der Schreibanforderung bereits gemeldet, sobald die Daten im Cache sind. Der eigentliche Zugriff auf den Datenträger dagegen erfolgt erst etwas später. Ein Stromausfall in dieser Zwischenzeit hat meist den Verlust der noch nicht geschriebenen Daten zur Folge. Für diesen Fall verwenden aktuelle RAID-Controller eine BBU (Battery Backup Unit), welche die Stromversorgung sicherstellt, bis alle Daten aus dem Schreibcache geschrieben sind. Ein weiterer Vorteil neben niedrigerer Latenz bei sporadischen Schreibzugriffen ist die Möglichkeit der Umsortierung der Schreibzugriffe, so dass die Bewegungen innerhalb der Festplatte minimiert werden können.
Neben diesem spezialisierten Speicher in der Festplatte selbst verwenden viele Betriebssysteme einen Teil des Hauptspeichers als Cache, um die Zugriffszeiten weiter zu verkürzen, indem die Kommunikation über den relativ langsamen Festplatten-Bus wegfällt. Zu Zeiten von MS-DOS wurde auf PCs zu diesem Zwecke oft das Programm SmartDrive genutzt. In aktuellen Betriebssystemen wird diese Funktionalität normalerweise vom System selbst – je nach vorhandenem Hauptspeicher – eingestellt; der Benutzer muss in der Regel keine spezielle Konfiguration vornehmen.