Es gibt zwei Hauptklassen von Cache, den Lese-Cache und den Schreib-Cache. Ein Lese-Cache ist ein Werkzeug, das einen schnellen Zugriff auf ansonsten langsam zugängliche Daten ermöglicht. Ein Schreib-Cache ist ein Tool, das die Illusion schneller Schreibgeschwindigkeiten vermittelt und im Allgemeinen die wahre langsame Geschwindigkeit eines Speichergeräts vor dem Benutzer verbirgt.
Aufbau eines Caches
Typischerweise wird ein Cache eine Speicherebene tiefer als die eigentlichen Daten gespeichert. Daten aus einem Cache können jedoch weiter unten in der nächsten Speicherschicht zwischengespeichert werden. Es gibt vier Speicherebenen, wobei der CPU-Cache/die Register die niedrigste und schnellste Ebene und der Archivspeicher die höchste und langsamste Ebene sind. Die niedrigsten bis höchsten Tiers sind CPU-Cache/-Register, System-RAM, Speicherlaufwerke und Archivspeicher.
Jeder Schritt nach unten in den Speicherebenen bietet eine erhöhte Zugriffsgeschwindigkeit, aber eine verringerte Kapazität. Die meisten Heimanwender haben in der realen Welt nur die drei niedrigsten Speicherstufen. Archivspeicher bezieht sich im Allgemeinen auf Bandspeicher, der für die Langzeit- und Offline-Speicherung vorgesehen ist. Archivspeicherung kann sich auch auf die Verwendung von optischen oder anderen Standardspeichermedien beziehen, die von Geräten entfernt wurden und offline gehalten werden. Diese Beispiele sind deutlich häufiger im Haushalt zu finden, aber immer noch nicht so häufig.
Notiz: In gewisser Weise könnte Cloud-Storage als eine Variante der Archivspeicherung betrachtet werden. Es ist sehr viel online, aber nicht unbedingt sofort zugänglich und im Allgemeinen langsam zugänglich. Wechselmedien wie USB-Speicher spreizen auch etwas die Grenze zwischen Speicherlaufwerk und Archivspeicher.
Arten von Disk-Cache
Ein Festplatten-Cache bezieht sich auf jeden Cache auf einer „Festplatte“, d. h. Speicherlaufwerken wie SSDs und HDDs. Es gibt drei Arten von Disk-Cache. Der Lese-Cache würde das vorübergehende Kopieren einiger Daten aus dem Archivspeicher beinhalten, um den Zugriff bei Bedarf zu beschleunigen. Ein Schreib-Cache könnte die Form eines SLC-Cache auf einer SSD annehmen. Ein E/A-Cache wäre im Allgemeinen ein Flash-Speicher oder DRAM, der zum Zwischenspeichern von Lese- und Schreibvorgängen verwendet wird. Das bestimmende Merkmal all dieser ist, dass sich der Cache auf der Festplatte selbst befindet.
Festplatten-Cache lesen
Die Lese-Cache-Version eines Festplatten-Cache ist wahrscheinlich die am wenigsten verwendete Art von Festplatten-Cache. Archivspeicherung wird per Definition nur selten benötigt. Daten können auch direkt von Archivmedien gelesen werden. Das Problem ist die Geschwindigkeit. Die Zugriffszeit ist langsam, da die Daten offline sind, sodass ein geeignetes Speichergerät identifiziert und angeschlossen werden muss. Die Lesegeschwindigkeit hängt vom Archivierungsmedium ab, reicht aber in der Regel für die meisten Fälle aus. Aber möglicherweise nicht ideal für hohe Bandbreitenanforderungen wie die Anzeige von High-Definition-Videos. In diesen Szenarien kann ein Lese-Disk-Cache verwendet werden, um eine Kopie der Videodatei auf einem Speichermedium zwischenzuspeichern, das sie in Echtzeit wiedergeben kann.
Disk-Cache schreiben
Moderne SSDs sind blitzschnell und bieten unglaublich schnelle Lese- und Schreibgeschwindigkeiten. Was Sie vielleicht nicht erkennen, ist, dass dies technisch nicht stimmt. Die meisten SSDs auf dem Markt sind TLC, auch bekannt als Triple Layer Cells. Das bedeutet, dass jede Speicherzelle drei Datenbits speichern kann. Dies bietet zwar die dreifache Speicherdichte von rohen SLC (Single Layer Cells) mit einem Bit pro Zelle, ist aber auch viel langsamer.
Spitze: TLC-Flash ist immer noch schnell. Es ist um ein Vielfaches schneller als die Spitzenbandbreite des SATA 3-Busses, der von HDDs und frühen SSDs verwendet wird. QLC Flash oder Quad Level Cells sind sogar noch langsamer, in manchen Tests sogar langsamer als HDDs.
Der SLC-Cache wurde erfunden, um die langsamen Schreibgeschwindigkeiten vor dem Benutzer zu verbergen. Der SLC-Cache behandelt den TLC-Flash einfach als SLC-Flash, sodass er mit höheren Geschwindigkeiten arbeiten kann. Daten, die in den SLC-Cache geschrieben werden, werden dann intern so schnell in das TLC-Format kopiert, wie es die Schreibgeschwindigkeit zulässt. Diese Technik funktioniert hervorragend und bietet zunehmende Geschwindigkeiten, die die Entwicklung neuer, schnellerer Standards erforderlich gemacht haben.
SLC-Caches haben jedoch einige Einschränkungen. Die Größe des SLC-Cache beträgt 1/3 des verbleibenden freien Speicherplatzes der SSD. Wenn sich die SSD füllt, nimmt die SLC-Cachegröße ab. Dies ist auf großen leeren Laufwerken kein so großes Problem, kann aber auf einer kleineren SSD mit nahezu voller Kapazität auftreten. Sobald der SLC-Cache gefüllt ist, sieht der Benutzer, dass die Schreibgeschwindigkeit dramatisch abfällt, da er der echten TLC-Schreibgeschwindigkeit ausgesetzt ist.
Notiz: Sollen Daten zukünftig auf Archivmedien geschrieben werden, kommt technisch gesehen jede Speicherplatte als Schreib-Cache für die Archivmedien in Frage. Diese Bedeutung würde jedoch nicht allgemein angenommen werden.
E/A-Datenträger-Cache
HDDs sind im Allgemeinen selbst bei optimaler Arbeitslast ziemlich langsam. Um dies so weit wie möglich vor dem Benutzer zu verbergen, kann ein I/O-Cache verwendet werden. Ein E/A-Cache speichert nach Bedarf sowohl Lese- als auch Schreibvorgänge. Dieser Cache besteht normalerweise entweder aus Flash-Speicher oder DRAM im Laufwerk selbst. Die Kapazitäten sind im Allgemeinen gering, obwohl die Klasse der SSHD- oder Solid-State-Hybridlaufwerke mit Flash-Speicher beträchtlichere Fähigkeiten bietet, wenn auch nicht mit modernen SSD-Kapazitäten vergleichbar.
Zwischenspeichern von Lesevorgängen bedeutet, dass die Festplatte die Daten nicht finden und dann lesen muss. Dies kann hervorragende Leistungsvorteile bieten, jedoch nur bei nachfolgenden Lesevorgängen. Der erste Lesevorgang ist immer langsam. Zwischenspeichern von Schreibvorgängen bedeutet, dass kleine Schreibvorgänge in den Cache aufgenommen und dann so schnell wie möglich auf die eigentliche Festplatte geschrieben werden können. Dies bietet schnellere Geschwindigkeiten, führt jedoch zu einem großen Leistungseinbruch, wenn der Cache jemals erschöpft ist.
Ein E/A-Cache muss die Anforderungen sowohl der Lese- als auch der Schreibfunktionen sorgfältig ausbalancieren, insbesondere wenn nur ein kleiner Cache verfügbar ist. Größere Caches heben dieses Problem etwas auf, obwohl Grenzfälle mit großen Datensätzen den Flash-Cache der größten SSHDs immer noch überfordern können.
Notiz: SSDs können ihren Onboard-DRAM technisch gesehen auch als I/O-Cache verwenden. Dies wird jedoch typischerweise hauptsächlich oder ausschließlich zum Speichern der Übersetzungstabelle von logischen zu physischen Adressen verwendet, die verwendet wird, um Daten auf der SSD zu finden.
Abschluss
Ein Disk-Cache ist ein Cache, der direkt auf einem Speicherlaufwerk vorhanden ist. Er kann die Form eines Read-or-Write-Cache oder eines I/O-Cache annehmen. Lese-Caches cachen typischerweise Daten aus langsameren, archivierten Speichern. Schreib-Caches verbergen die langsamen Schreibgeschwindigkeiten von Speicherplatten vor dem Benutzer. I/O-Caches verbergen sowohl langsame Lese- als auch langsame Schreibgeschwindigkeiten vor dem Benutzer.
Caches sind ausgezeichnete Usability-Tools, können den Benutzern jedoch einige Kopfschmerzen bereiten, wenn sie erschöpft sind. Dies gilt insbesondere für dynamische Schreib-Caches wie den SLC-Cache. Da technisch nicht versierte Benutzer möglicherweise nicht verstehen, warum ihre Schreibgeschwindigkeiten so langsam sind, und daher nicht in der Lage sind, sie durch Beheben von Kapazitätsproblemen zu beheben.