Wie funktioniert der SLC-Cache bei der Samsung 980 Pro?

MichaelBer

Banned
Registriert
Mai 2023
Beiträge
274
Kann mir wer erklären, wie dieser SLC-Cache funktioniert?

Wie muss man sich das Vorstellen, wenn ich z.B. eine Datei mit 100 GB auf eine 1 TB Samsung 980 Pro Schreibe?
Was passiert denn da genau, dass damit die Geschwindigkeit erhöht werden kann?
 
Hm. Um z.B. 300 Bits zu schreiben, braucht SLC nach der Erklärung 300 Schreibzugriffe, während TLC nur 100 Schreibzugriffe braucht. Wieso sollte SLC also schneller sein?

So genau steht das glaube ich nirgendwo, aber ich vermute, dass der Schreibzugriff bei MLC/TLC/QLC einfach deutlich langsamer ist als der Gewinn an Speicherdichte. Vermutlich kostet das nötige genaue "Dosieren" der in die Flash-Zellen zu schreibenden Ladung eine Menge Zeit (oder es wird sogar eine Messungs- und Korrekturphase zusätzlich nötig? Wer weiß), wobei das natürlich auch keine komplette Erklärung ist.

Beim Lesen wiederum ist auch seltsam, dass MLC/TLC/QLC nicht deutlich schneller als SLC ist. Scheint wohl ein ähnliches Problem zu sein, dass die nötige genaue Messung der Ladung aufwendiger und langsamer ist als bei SLC...? Finde ich etwas unintuitiv, weil es z.B. beim Lesen von HDDs vermeintlich ähnliche Probleme gibt (mit höherer Speicherdichte und höherer Übertragungsrate werden die gelesenen Signale immer schwächer), die sich in der Vergangenheit aber nicht als großes Problem erwiesen haben.
 
um es einfach auszudrücken, es bedarf mehr zeit die daten aus einer tlc zelle auszulesen und zu beschreiben als eine slc zelle

daher ist slc der schnellste speicher mit der höchsten lebensdauer, als tlc

bei einer ssd von 1tb speicher mit (beispiel 64gb slc cache) werden von deiner 100gb datei 64gb in den cache geladen und der rest dann auf den langsameren tlc speicher, dabei werden kontinuierlich die daten aus dem cache in den normal ssd speicher umgelagert
 
Der Speichercontroller weiß, welche Speicherzellen (kurzfristig) nur als SLC verwendet werden, kann diese mit nur 2 Spannungsebenen (low oder high) schneller beschreiben, als wenn er sie für 3 Bit pro Zelle mit 2³ = 8 Spannungsebenen beschreiben muss.

Als (schlechte) Analogie kann man sich das Vorstellen wie einen Barkeeper, der 10 Gläser füllen muss. Im SLC-Modus/Schnapsgläser stellt er die Gläser einfach nebeneinander und füllt von der Flasche ohne Unterbrechung von einem Glas zum nächsten. Wenn mal ein Glas nicht ganz die richtige Menge abbekommt, macht das nichts, solange man klar zwischen leer und gefüllt unterscheiden kann.
Im TLC-Modus/Cocktails muss er praktisch jedes Glas in der richtigen Mischung füllen.
 
  • Gefällt mir
Reaktionen: AB´solut SiD, rumpeLson, RexCorvus und 2 andere
GrumpyCat schrieb:
Hm. Um z.B. 300 Bits zu schreiben, braucht SLC nach der Erklärung 300 Schreibzugriffe, während TLC nur 100 Schreibzugriffe braucht. Wieso sollte SLC also schneller sein?
Eine Zelle die mehrere Zustände haben kann, braucht länger um einen definierten Zustand beim beschreiben zu erreichen, gegenüber einer SLC Zelle, die nur zwei Zustände haben kann, geladen (1) und entladen (0).
TLC hat 8 verschiedene Ladungszustände, QLC sogar 16.
Und es ist genau umgekehrt, beim Beschreiben von SLC werden die Daten auf 300 Zellen verteilt, die mitunter gleichzeitig beschrieben werden können, im Gegensatz zu nur 100 TLC-Zellen, die sich zudem auch noch langsamer beschreiben lassen. Auf je weniger Zellen sich der Schreibvorgang verteilt und je langsamer sich diese Zellen beschreiben lassen, desto langsamer der Schreibvorgang.
Speicher- und Lesevorgänge innerhalb einer SSD laufen stark parallelisiert ab, im Gegensatz zu einer HDD, die Daten nur Linear Sektor für Sektor mit einem Lesekopf auslesen kann, begrenzt durch Drehzahl und Speicherdichte. Mehrere Pattern erhöhen zwar den Durchsatz durch die Verteilung auf mehrere Leseköpfe, aber da die Leseköpfe starr gekoppelt sind und die Daten nicht immer ideal für paralleles Auslesen liegen, bringt das Verdoppeln der Pattern nur selten auch eine Verdoppelung des Schreib- und Lesedurchsatzes. Dazu die mechanische Positionierung des Lesekopfes und man bekommt eine Vorstellung, warum SSDs so schnell sind.
MichaelBer schrieb:
Kann mir wer erklären, wie dieser SLC-Cache funktioniert?
Ein Teil des freien TLC-Speicherbereichs wird zum SLC-Cache umfunktioniert. Aus 300GB TLC wird dann 100GB SLC. Hört der Schreibvorgang auf, werden die Daten aus dem SLC-Cache in freie TLC-Zellen umgeschrieben.

Da die Cachezellen aus dem eigentlichem Speicherbereich kommen, ist die Größe des Caches abhängig vom Füllgrad der SSD. Mit steigendem Datenbestand wird der als SLC nutzbare Bereich bedenklich klein und ab einem gewissen Füllstand gibt es gar keinen SLC-Cache mehr. Bei einigen Laufwerken ist das schon bei 50% Füllrad erreicht.
Zudem erhöht sich durch die Doppelverwendung die Schreiblast auf die Zellen, die sich abnutzen. Deshalb ist DRAM-Cache so wichtig, der ist nicht Teil des Speicherbereiches, federt die meisten Schreibzugriffe ab und schont so die Zellen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: FarmerG, n8mahr, AB´solut SiD und 7 andere
ghecko schrieb:
Und es ist genau umgekehrt, beim Beschreiben von SLC werden die Daten auf 300 Zellen verteilt, die mitunter gleichzeitig beschrieben werden können, im Gegensatz zu nur 100 TLC-Zellen
Wenn die Flash-Zellen parallel beschrieben werden können sollten, kann das offensichtlich auch bei TLC passieren, oder gibt es einen Grund, weswegen das bei SLC gehen soll, bei TLC aber nicht?
ghecko schrieb:
Eine Zelle die mehrere Zustände haben kann, braucht länger um einen definierten Zustand beim beschreiben zu erreichen, gegenüber einer SLC Zelle, die nur zwei Zustände haben kann
Das ist jetzt so hingeschrieben, aber nicht begründet. Vergleichen wir mal Flash-Zellen mit 100 Eimern zu je 1l (und das Wasser drin entspricht Ladung). Bei zufälligen Daten müsste man also rund die Hälfte der Eimer volllaufen lassen, also insgesamt 50l Wasser aus einer Leitung abzapfen.
Bei "TLC" hat man 3 Bits pro Zelle, also 8 Zustände (0l/0,14l/0,29l/0,42l/0,57l/0,71l/0,86l/1l). Zufällige Daten machen aber auch wieder 50l Wasser insgesamt, also gleiche Zeit zum Befüllen, sofern der Leitungsdurchfluss das beschränkende Element ist.
Was aber natürlich sein könnte, ist, dass man zum genauen Befüllen nicht so schnell füllen kann, z.B. weil man grundsätzlich nicht so genau "Abriegeln" kann (aber warum? Transistoren schalten jetzt ja nun nicht zeitlich ungenau). Ist jetzt aber nur vermutet.
Drahminedum schrieb:
Schreiben auf einer SSD ist nicht einfach ein schreiben sondern erfordert einen aufwändigen program/erase Zyklus. Bei SLC geht das wesentlich einfacher als bei TLC oder QLC.
Program/Erase ist ein Ding, ja, das Erase läuft bei SLC und TLC aber identisch ab. Im von Dir verlinkten Text steht Deine Aussage auch nicht drin. Da steht nur drin, dass TLC weniger Erase-Zyklen aushält, das ist aber klar, weil mit jedem Zyklus die Zellen altern, ihre Ladung also nicht mehr so gut/genau halten, es also mehr Rauschen gibt, man also die Ladezustände nicht mehr so genau unterscheiden kann, was offensichtlich bei TLC schneller ein Problem wird als bei SLC.
 
Zurück
Oben