SLC-Cache: Auslastung und Eigenschaften in NVMe-SSDs

SLC-Cache

Einer der Begriffe, die sich in den letzten Monaten auf die Leistung von NVMe-SSDs beziehen, ist SLC Cache. Aus diesem Grund haben wir diesen Artikel für Sie vorbereitet, damit Sie verstehen, wie es funktioniert und welche Vorteile es für die Leistung unserer Hochleistungs-Solid-State-Laufwerke bringt.

Die Datenspeicherung auf Basis der NAND-Flash-Technologie hat in verschiedenen Computersektoren zu einem Paradigmenwechsel geführt, von Speicherkarten für Handheld-Geräte bis hin zu NVMe SSDs auf PCs. Gerade im letzteren Fall wurde einer der historischen Engpässe in der Geschichte beseitigt, indem nicht die Einschränkungen sowohl bei der Zugriffslatenz als auch bei der Bandbreite herkömmlicher Festplatten vorhanden sind belastende Elemente, die Ingenieure dazu zwingen, Lösungen zu finden und umzusetzen.

NAND-Flash und Speicherzellen

Typ Celda NAND Flash SLC TLC MLC QLC

NAND-Flash-Speicher ist eine Art NVRAM oder nichtflüchtig RAM, bedeutet dies, dass er wie ein herkömmlicher RAM funktioniert, jedoch mit dem Unterschied, dass seine Daten nicht verloren gehen, wenn das System nicht mehr mit Strom versorgt wird. Der Kompromiss für diese Fähigkeit besteht darin, eine begrenzte Anzahl von Speicherschreibvorgängen in seinem Lebenszyklus zu haben. Auch wenn sich die Leistungsvorteile beim Zugriff auf den Speicher nicht umsonst lohnen, ist jedes Computersystem nur so schnell, wie sein langsamster Teil, meist der Speicher, ihn verlässt.

Jedes Speicherbit in einem RAM-Speicher wird in sogenannten Speicherzellen und in den ersten NAND-Flash-Speichern gespeichert, die für SSD Bei der Speicherung wurde ein Bit pro Zelle verwendet, was die Speicherung sehr teuer machte. Die Lösung? Dass jede Zelle Daten von 2 Bit enthalten kann ( MLC ), 3 Bit ( TLC ) oder bis zu 4 Bit ( QLC ). Das zusätzliche Problem? Je mehr Bits pro Zelle, desto schneller bauen sie ab und desto kürzer ist die Lebensdauer. Denken Sie daran, denn es ist die Grundlage für das Verständnis von SLC Cache.

TLC- und QLC-Zellen verlieren nicht nur an Dauer

SSD NVMe

Wenn Sie diesen Punkt erreicht haben, werden viele von Ihnen die Idee haben, dass NAND-Flash-Speicher vom Typ MLC, TLC und QLC mehr Speicherkapazität haben, zwar weniger Dauer, aber die Bandbreite von allen gleich ist und daher der Zelltyp verändert die Leistung nicht. Nun, lassen Sie uns Ihnen sagen, dass die schlechten Nachrichten hier nicht aufhören, sondern dass auch die Zugriffsgeschwindigkeit abnimmt.

Wenn das CPU eine Anforderung für den Zugriff auf eine Speicheradresse in der NVMe-SSD stellt, wird sie vom Flash-Controller empfangen, der nach den Daten im Speicher sucht, um sie über die PCI-Express- oder SATA-Schnittstelle zu übertragen, je nachdem, welche Sie verwenden. das Gerät, aber der Flash-Controller greift direkt auf die NVMe-Chips des Geräts zu, um seine Daten zu manipulieren, und tut dies nicht über die erwähnten Schnittstellen.

Die Speicherung der Daten im NAND-Flash-Speicher erfolgt durch Spannungsänderungen, ein SLC-Speicher benötigt nur 1 Spannung, ein MLC benötigt 3 , aber ein TLC geht an 7 und wenn wir zu einem QLC gehen, geht das Ding an 15 . Nun, je höher die Zahl, desto länger dauert es, einen Lese- und Schreibvorgang durchzuführen. Und wann fängt das an, ein Problem zu sein? Nun, aus dem TLC-Speicher und wenn Sie sich die Anzahl der NVMe-SSD-Einheiten in den Geschäften ansehen, werden Sie feststellen, dass sie alle diese Zellen zumindest heute verwenden.

Die Lösung: SLC-Cache

SLC-Cache-NVMe
Als erstes ist zu beachten, dass der SLC-Cache nicht mit dem DRAM-Cache identisch ist, der sich auch in einigen NVMe-SSDs befindet, da wir nicht über den flüchtigen Speicher sprechen, der sich zwischen dem Flash-Controller und der PCI-Schnittstelle befindet. Ausdrücklich dasselbe, da sich der SLC-Cache auch in den DRAM-Less-Einheiten befindet. Obwohl es Ausnahmen gibt, die wir später sehen werden, gibt es im Allgemeinen innerhalb jedes NVMe-Chips zwei Arten von NAND-Flash-Speicher:

  • Ein TLC- oder QLC-Speicher zur Datenspeicherung
  • Ein viel kleinerer SLC-Speicher, der als Cache dient.

Das erste, was wir verstehen müssen, ist, dass ein Cache nichts anderes als ein Speicher ist, der viel näher an einem Prozessor liegt und daher mit geringerer Latenz Daten vorübergehend speichert. Wenn wir das Gesagte überprüfen, haben wir folgende Prämissen:

  • SLC-Zellen haben eine viel längere Lebensdauer als TLCs und sogar länger als QLCs, sodass sie viel länger brauchen, um abgebaut zu werden.
  • Die Zugriffsgeschwindigkeit von SLC-Zellen ist viel höher.

Somit besteht die Lösung darin, dass die Daten vorübergehend in den SLC-Speicher abgelegt werden, der als Puffer-Cache fungiert, so dass ein Datenkopiermechanismus dann die Speicheradressen im TLC modifiziert.

SLC-Cache-Leistung

SLC MLC TLC Voltaje Cache
Kommen wir zum wichtigsten Teil, der SLC-Cache hat eine feste Größe und das bedeutet, dass seine Leistung erhalten bleibt, wenn wir ihn zum Senden oder Empfangen kleiner Daten verwenden, aber wenn wir beispielsweise eine sequentielle Kopie von Daten erstellen möchten in Form eines sehr großen Datenblocks sobald der SLC voll ist, sinkt die Leistung.

Aus diesem Grund können wir zwar zwei NVMe-SSDs mit gleichem Speicher, gleichem Zugriffsinterface und sogar gleichen Zellentypen, also praktisch gleichen, in den Händen halten, diese können jedoch eine völlig unterschiedliche Leistung aufweisen. Der Grund? Offensichtlich der SLC-Cache, der sich in der Größe unterscheiden kann.

Der SLC-Cache wird nicht nur verwendet, um Daten mit sequentiellem Zugriff, sondern auch zufällig zu speichern, und es muss berücksichtigt werden, dass Programme beim Zugriff auf Informationen dies mit hoher Rekursion und in einem abgegrenzten Informationsblock tun.

SLC-Cache-Typen

Tipos Cache SLC
Es gibt zwei Möglichkeiten, den SLC-Cache zu verwalten, die davon abhängen, welchen Algorithmus dafür der Hersteller im Flash-Controller implementiert hat. Es bezieht sich vielmehr darauf, wie viel Speicherplatz darin für die temporäre Speicherung zugewiesen werden kann.

  • Im statischen Cache ist der Speicherplatz fest und kann nicht in der Größe variieren.
  • Im dynamischen Cache ist die zugewiesene Größe variabel.

Wie ist ein dynamischer Cache möglich, wenn die Anzahl der SLC-Zellen fest ist? Der Haken daran ist, die NVMe-TLC-Zellen so zu verwenden, als wären sie SLCs, dh sie speichern jeweils ein Bit anstelle von 3. Es gibt also einige NVMe-Chips, die einen Teil des Speichers als Cache neu zuweisen.

Der Vorteil des dynamischen Caches besteht darin, dass die Größe des SLC-Cache nicht ausgeschöpft wird, jedoch die Gefahr besteht, dass immer mehr TLC-Zellen nicht mehr für die Speicherung verwendet werden, was die Gesamtkapazität dieses Caches zum Speichern von Daten beeinträchtigt. Aus diesem Grund verwenden die meisten dynamischen SLC-Cache-Systeme Systeme, die die maximale Größe davon durch die Firmware begrenzen.