1 Punkte von GN⁺ 2024-05-20 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Experiment, bei dem der QLC-NAND einer Crucial BX500 mit MPTools in den pSLC-Modus umkonfiguriert wurde: Die Kapazität sinkt von 500 GB auf rund 120 GB, dafür steigen Haltbarkeit und ein Teil der Performance deutlich
  • Die Umwandlung umfasst Firmware- und Konfigurationsarbeiten, die auf die Kombination aus Silicon-Motion-SM2259XT2-Controller und Micron-N48R-NAND abgestimmt sind; bei einem Fehlschlag kann die SSD beschädigt werden, die Garantie erlöschen und alle Daten gelöscht werden
  • Im normalen QLC-Zustand lag die rechnerische TBW bei 120 TB; im pSLC-Modus ergibt sich auf Basis von 60.000 P/E-Zyklen, 120 GB Kapazität und einem WAF von 1,8 eine berechnete Haltbarkeit von bis zu 4.000 TB TBW
  • In kurzen sequenziellen Benchmarks waren die Unterschiede gering, bei Random-Performance, Latenz, PCMark-10-Produktivitätstests und langen Schreibvorgängen zeigte sich der Unterschied des pSLC-Modus jedoch deutlich
  • Im Auslieferungszustand fiel die Schreibrate nach etwa 45 GB SLC-Cache auf durchschnittlich rund 50 MB/s; nach der pSLC-Umwandlung hielt die SSD über die gesamten 120 GB und auch bei wiederholtem Schreiben etwa 498–500 MB/s

Testobjekt und Risiken

  • Testobjekt ist eine mehrfach getestete Crucial BX500 SSD
  • Auch wenn das Verfahren selbst sicherer als Overclocking sein mag, ist Vorsicht geboten, da es Firmware-Flashing umfasst
  • Beim Flashen der Firmware werden alle Daten gelöscht, daher ist ein Backup erforderlich
  • Durch die Umwandlung erlischt die SSD-Garantie
  • Benötigt werden ein SATA-USB-3.0-Adapter auf Basis des Jmicron JMS578 Bridge Chip sowie eine Klemme, um die ROM-/Safe-Mode-Pins auf der SSD-Platine kurzzuschließen

Hardware-Konfiguration der BX500

  • Der Controller ist ein Silicon Motion SM2259XT2, eine Variante des SM2259XT
    • Single-Core-Controller
    • 32-Bit-ARC-Architektur
    • Betrieb mit bis zu 550 MHz möglich
    • In dieser SSD läuft er mit 437,5 MHz
  • Der SM2259XT2 unterstützt bis zu 2 Kanäle und bis zu 8 Chip Enables pro Kanal; per Interleaving kann er mit bis zu 16 Dies kommunizieren
  • Der zum Vergleich herangezogene SM2259XT unterstützt mit 4 Kanälen und 4 C.E. ebenfalls bis zu 16 Dies
  • Diese SATA-SSD ist DRAM-less aufgebaut und unterstützt auch keinen Host Memory Buffer

NAND und grundlegende Betriebseigenschaften

  • Im 500-GB-Modell sind zwei NAND-Flash-Bausteine mit der Kennzeichnung „NY240“ verbaut
  • Die Dekodierung ergab Micron MT29F2T08GELCEJ4-QU:C, N48R Media Grade NAND
    • 1 Tb pro Die, also 128 GiB
    • 176 Daten-Layer und insgesamt 195 Gates
    • Array-Effizienz von 90,2 %
  • Pro NAND-Flash sind 2 Dies enthalten, also 256 GB pro NAND und insgesamt rund 500 GB
  • Der NAND kommuniziert mit dem Controller mit 262,5 MHz, also 525 MT/s
  • N48R-Dies können mit bis zu 800 MHz, also 1600 MT/s, betrieben werden, sind in dieser SSD aber deutlich niedriger eingestellt
  • Die niedrigere Geschwindigkeit kann mit geringerem Stromverbrauch und weniger Abwärme, nicht erfüllten Qualitätsanforderungen für Hochgeschwindigkeitsbetrieb, möglicherweise geringerer Haltbarkeit oder der Verfügbarkeit günstigen NANDs zusammenhängen

Umwandlungsverfahren mit MPTools

  • Verwendet wird MPTools, ein Mass-Production-Tool für Silicon-Motion-Controller
  • Das eingesetzte Tool ist „SMI SM2259XT2 MPTool FIMN48 V0304A FWV0303B0“ und muss sowohl zum Controller als auch zum NAND-Flash passen
  • Zunächst müssen die vorhandenen Parameter der SSD ausgelesen und gesichert werden
    • Flash IO Driving und Unterpunkte
    • Flash Control Driving
    • Flash DQS/Data Driving
    • Control ODT
    • Flash ODT
    • Schmitt Window Trigger
  • Über Scan in MPTools wird die SSD gefunden; beim Eintrag „Ready (FW: M6CR061, MN48R)“ lassen sich Werkseinstellungen sowie Controller- und NAND-Geschwindigkeit prüfen
  • Für einen fairen Vergleich bleiben Controller- und NAND-Frequenzen auf den bisherigen Werten

Einstellungen zum Aktivieren des pSLC-Modus

  • Unter „Edit Config“ werden Projektname und Firmware-Versions-Tag festgelegt
    • Beispiel-Modellname: „SSD SLC Test“
    • Beispiel-Firmware-Version: „SSD-SLC“
  • Flash Control Driving und Flash DQS/Data Driving bleiben beim bisherigen Wert 66(hex)
  • Auch CPU- und NAND-Frequenz werden entsprechend den bisherigen Vergleichsbedingungen gesetzt, Output driving bleibt bei 03H
  • Die Datei Setting.set von MPTools wird bearbeitet, um pSLC-bezogene Optionen sichtbar zu machen
    • In [Function] wird ENFWTAG=1 in ENFWTAG=0 geändert
    • In [Option] wird EnSLCMode=1 hinzugefügt
  • Danach erscheint in MPTools die Option Force SLC Mode
  • Damit die Umwandlung tatsächlich möglich ist, müssen boot- und Initialisierungsdateien aus dem Firmware-Ordner in ein bestimmtes Verzeichnis kopiert werden
  • Dieses Dateiverfahren ist auf die Kombination SM2259XT2 + N48R NAND abgestimmt; bei anderem NAND unterscheiden sich Ordnernamen und Dateistruktur
  • Manche NAND-Modelle sind möglicherweise nicht vollständig kompatibel; getestet wurden Intel- und Micron-NAND

Berechnung der Haltbarkeit

  • Für die Haltbarkeitsberechnung werden Write Amplification Factor, NAND Program/Erase Cycle und SSD-Kapazität benötigt
  • In eine präzisere Berechnung fließen zusätzliche Parameter wie der JEDEC-Standard JESD218A und die Wear-Leveling Efficiency ein
  • Im normalen QLC-Zustand hat die SSD eine TBW von 120 TB; für N48R Media Grade NAND werden rund 900 P/E-Zyklen angesetzt
  • Der WAF im Ausgangszustand lag rechnerisch bei 3,75, in realen Tests eher bei etwa 3,8
  • Im pSLC-Zustand können die NAND-Dies laut Datenblatt bis zu 60.000 P/E cycles aushalten
  • Nach der pSLC-Umwandlung sinkt die Kapazität auf etwa 0,12 TB, also 120 GB
  • Auf Basis eines WAF von 1,8 ergibt die Rechnung eine TBW von 4.000 TB
  • Die TBW steigt von 120 TB im 500-GB-QLC-Zustand auf 4.000 TB im 120-GB-pSLC-Zustand, also um mehr als 3333 %

Performance-Testumgebung

  • Als OS kommt Windows 11 Pro 64-bit 23H2 zum Einsatz
  • Die CPU ist ein Intel Core i7-13700K, alle Kerne sind auf 5,7 GHz eingestellt
  • Der RAM besteht aus 2×16 GB DDR4-3200 MHz CL16 von Netac
  • Das Mainboard ist ein MSI Z790-P PRO WIFI D4, BIOS-Version 7E06v18
  • Die GPU ist eine RTX 4060 Galax 1-Click OC
  • Als OS-Laufwerk dient eine Solidigm P44 Pro 2 TB, die getestete SSD wird als BX500 „SLC-Test“ verwendet
  • Windows-Indexierung, Updates, Hintergrund-Apps und Antivirus wurden deaktiviert, um Testschwankungen zu reduzieren
  • Die Test-SSD wurde als sekundäres Laufwerk genutzt; Tests mit 0 % und 50 % belegter Kapazität sind enthalten
  • Für die Leistungsmessung wurden mit einem Quarch PPM QTL1999 Idle, ein einstündiger Schreibtest und der durchschnittliche Stromverbrauch gemessen

CrystalDiskMark-Ergebnisse

  • Der sequenzielle Test nutzt 2×1 GiB, 1-MiB-Blöcke, 8 Queues und 1 Thread
  • Der Random-Test nutzt 2×1 GiB, 4-KiB-Blöcke, 1 Queue und 1/2/4/8/16 Threads
  • In sequenziellen Tests gab es kaum Unterschiede
    • Denn schon der normale pSLC-Cache erreicht die maximale Bandbreite einer SATA-SSD und die sequenziellen Herstellerangaben
    • Bei längeren und schwereren Benchmarks zeigen sich Unterschiede
  • Die Latenz sank deutlich
    • Im Normalzustand beginnt der NAND nach Idle mit Lesen und Schreiben im nativen QLC-Modus; bis zur Reprogrammierung als SLC entsteht Verzögerung
    • Im pSLC-Modus ist er immer im pSLC-Zustand, daher ist die Latenz niedriger
  • Die Unterschiede bei Random-Speed waren größer als bei sequenzieller Geschwindigkeit
  • Bei QD1 stieg die Leserate um mehr als 16 %, die Schreibrate um mehr als 30 %

Ergebnisse in ATTO, 3DMark und PCMark 10

  • ATTO Disk Benchmark wurde mit Blockgrößen von 512 B bis 8 MiB, einer Dateigröße von 256 MB sowie Queue Depth 1 und 4 getestet
  • In ATTO lag die SSD im pSLC-Modus bei allen Blockgrößen vor der SSD im Normalzustand
  • Bei QD1 wiederholte sich das Muster, allerdings waren die Unterschiede bei einigen Blockgrößen kleiner als bei QD4
  • Der 3DMark Storage Benchmark umfasst Spiele-Ladezeiten, OBS-Aufnahme und -Streaming in 1080p mit 60 FPS, Spieleinstallation und Dateiübertragung von Spieleordnern
  • Auch in leichten Real-World-Szenarien wie 3DMark gab es Performance- und Latenzunterschiede, sie sind im Alltag aber möglicherweise nicht vollständig spürbar
  • Der PCMark 10 Full System Drive Benchmark ist auf Produktivität ausgerichtet und hat einen höheren Schreibanteil als 3DMark
  • In PCMark 10 war der Praxisunterschied deutlich, der Performance-Abstand lag nahezu bei dem Doppelten

Premiere Pro, Booten und Spiele-Ladezeiten

  • Der Adobe-Premiere-Pro-2021-Test misst, wie lange es dauert, ein rund 16,5 GB großes Projekt mit 4K-Auflösung, 120-Mbit/s-Bitrate und vielen Effekten bis zur Bearbeitbarkeit zu öffnen
  • Das Laden des Premiere-Pro-Projekts ist hauptsächlich ein sequenzielles Lese-Szenario, daher gab es kaum Unterschiede; sie lagen nahe an normalen Schwankungen zwischen Läufen
  • Die Spiele-Ladezeiten wurden mit dem Final-Fantasy-XIV-Benchmark verglichen
  • Bei Spiele-Ladezeiten ist wegen DirectStorage und anderer API-Limitierungen schwer ein großer Unterschied wahrzunehmen
  • Auch der Windows-Boot wurde auf einem frischen System gemessen, zeigte aber keinen großen Unterschied, da die auf die SSD angewandten Funktionen nicht ausgenutzt werden

SLC-Cache und lange Schreibvorgänge

  • Viele aktuelle SSDs nutzen einen Teil des Speicherplatzes als SLC Caching
    • Ein Teil des MLC-, TLC- oder QLC-NAND wird als Bereich mit 1 Bit pro Zelle genutzt, ähnlich einem Schreib-/Lesepuffer
    • Wenn der Puffer erschöpft ist, schreibt der Controller in den nativen NAND-Bereich
  • IOmeter-Tests zeigen, dass der normale pSLC-Cache dieser SSD dynamisch ist und etwa 45 GB beträgt
  • Im Normalzustand hält sie bis zum Ende des Caches durchschnittlich rund 493 MB/s
  • Nach 45 GB geschriebenen Daten beginnt der Folding-Prozess, und die Schwäche der QLC-SSD wird sichtbar
  • Die anhaltende Schreibrate nach dem Cache fällt im Schnitt auf etwa 50 MB/s
  • Nach der pSLC-Umwandlung schreibt die SSD die gesamte Kapazität von 120 GB mit durchschnittlich 498 MB/s
  • Selbst beim Schreiben bis 500 GB, also bei mehr als vier vollständigen Durchläufen über die Kapazität, hält sie nahezu 500 MB/s
  • Über pSLC-Cache, Folding und nativen Bereich hinweg liegt der Unterschied bei der durchschnittlichen Schreibrate bei fast dem Zehnfachen

Dateikopien, Temperatur und Stromverbrauch

  • Beim Dateikopiertest wurden von einer RAM Disk auf die SSD ein Windows-10-21H1-ISO mit 6,25 GB und ein CSGO-Installationsordner mit 25,2 GB kopiert
  • Beide Testdateien sind kleiner als der 45-GB-SLC-Cache der normalen SSD, daher gab es in realistischen Kopiertests keinen Unterschied
  • Größere Dateien wurden nicht getestet, weil der für die RAM Disk nutzbare Speicher auf 32 GB begrenzt war
  • Im Temperaturtest wurde die SSD nicht besonders heiß; beim Sensor handelt es sich vermutlich um einen NAND-Flash-Sensor
  • Im Stromtest stieg die Effizienz nach der pSLC-Umwandlung deutlich
    • Im normalen QLC-Zustand lief die SSD in Tests, die den 45-GB-Cache deutlich überschritten, lange Zeit mit weniger als 55 MB/s und war daher ineffizient
    • Im pSLC-Modus fiel die Bandbreite beim Schreiben der doppelten eigenen Kapazität nicht ab, und auch der Stromverbrauch war niedriger
  • Der geringere Stromverbrauch im pSLC-Modus liegt daran, dass SLC-NAND nur 2 logische Level nutzt und daher eine niedrigere threshold voltage benötigt
  • QLC-NAND verwendet 16 logische Level und benötigt daher eine höhere threshold voltage
  • Auch im Idle-Zustand war der Stromverbrauch im pSLC-Modus niedriger

Fazit

  • Wenn das Verfahren nicht korrekt ausgeführt wird, kann die SSD beschädigt werden; entsprechend vorsichtig sollte man sein
  • Der Performance-Unterschied der pSLC-Umwandlung hängt vom Szenario ab
    • Bei kurzen sequenziellen Benchmarks, kleinen Dateikopien, Spiele-Ladezeiten und Windows-Boot ist der Unterschied gering
    • Bei Random-Performance, Latenz, Produktivitätstests und langen Schreibvorgängen ist der Unterschied groß
  • Die größte Veränderung betrifft die Haltbarkeit: Die berechnete TBW steigt von 120 TB auf 4.000 TB
  • Im Gegenzug sinkt die nutzbare Kapazität von 500 GB auf etwa 120 GB

1 Kommentare

 
GN⁺ 2024-05-20
Hacker-News-Kommentare
  • Es lohnt sich nicht, sich so sehr abzumühen, um eine billige SSD ohne DRAM im pSLC-Modus zu nutzen.
    Man muss einfach nur Overprovisioning betreiben und nur 25–33 % der Gesamtkapazität verwenden.
    Die meisten billigen Controller ohne DRAM arbeiten im Full-Disk-Caching-Modus: Sie schreiben zunächst alles in pSLC und fassen erst, nachdem die Zellen voll sind, einen Teil der Zellen wieder als TLC/QLC zusammen, um Platz freizumachen.
    Wenn man bei TLC nur eine Partition in Größe von 1/3 der SSD anlegt oder bei QLC nur 1/4, und den restlichen freien Bereich getrimmt lässt, sodass er niemals beschrieben wird, wird immer in pSLC geschrieben.
    Wenn man prüfen will, ob eine SSD von Interesse so arbeitet, sollte man nach einem Full-Disk-Write-Benchmark dieses Modells in "HD Tune" suchen. Wenn das erste Drittel bis Viertel schnell ist und der Rest dann katastrophal langsam wird, kann man davon ausgehen, dass sie im Full-Disk-Caching-Modus arbeitet.

    • Ich frage mich, wie man überprüfen kann, ob dieser Zustand dauerhaft erhalten bleibt.
      Nur einen Teil der Platte zu partitionieren erinnert an die SCSI-Zeit mit 160 GB und dem Motto: „Nur die äußeren Sektoren benutzen“.
    • Ein ideales FTL würde tatsächlich so arbeiten, wenn nur ein Teil der LBAs angesprochen wird.
      Allerdings kann der Hersteller die Firmware, wie du sagst, auch anders abstimmen, und dieser Mod stellt praktisch sicher, dass der gesamte verfügbare Platz als SLC genutzt wird.
    • Schau dir den Abschnitt „SLC CACHING“ am Ende des Originaltexts an.
      Dieser Ansatz wird wahrscheinlich nur bis 45 GB gut funktionieren, selbst wenn der tatsächliche SLC-Cache 120 GB groß ist, weil der Prozess zum Umorganisieren schon startet, bevor das SLC vollständig aufgebraucht ist.
      Wenn man nicht 66 % der SLC-Kapazität des Laufwerks braucht, ist die Methode mit der kleineren Partition allerdings einfacher und sicherer.
    • Wie stellt man sicher, dass freier Platz getrimmt ist? Ich frage mich, ob man TRIM nur auf einen Teilbereich der SSD anwenden kann.
  • Dieser Hack macht aus einer 480-GB-SSD praktisch eine 120-GB-SSD.
    Dafür steigt die Schreibhaltbarkeit, also die Datenmenge, die man schreiben kann, bevor mit einem Ausfall zu rechnen ist, von 120 TB auf 4000 TB, was für Dinge wie eine Disk für Log-Speicherung ein sehr nützlicher Kompromiss sein kann.
    Ich habe noch nie gesehen, dass Hersteller so eine Option anbieten, und frage mich, warum nicht.

    • Es gibt Firmen, die für den industriellen Einsatz SLC-SSDs verkaufen.
      Zum Beispiel Swissbit, die Produkte für den Industrieeinsatz verkaufen, die TLC- oder QLC-Flash verwenden, aber nicht in diesem Modus betrieben werden.
    • Ich verstehe nicht, wie der Autor darauf kommt, dass die Haltbarkeit um das 30-Fache steigt, wenn er sagt, dass er den Write Amplification Factor von 3,8 auf 2,0 gesenkt hat.
      Da würde ich eher etwa eine Verdopplung erwarten.
      Es sieht so aus, als würde er beim Anfangswert die OEM-Garantiezahl von 120 TBW verwenden und beim Endwert die P/E-Zyklus-Spezifikation des NAND, was verdächtig wirkt.
      Falls ich etwas übersehe, dann vielleicht, dass der pSLC-Modus die Programmierspannung der Zellen stark senkt und dadurch die Zahl der P/E-Zyklen drastisch erhöht, aber dann müsste das wohl in den Write Amplification Factor eingerechnet werden.
    • Ich frage mich, ob das als Cache-Disk für ZFS oder Synology nützlich wäre. Mit etwas zusätzlicher Anpassung vielleicht.
    • Hersteller bieten so etwas bereits in Form von TLC-Laufwerken an.
      Dieser Hack kann Datenverlust verursachen und wird nicht unterstützt, TLC-Laufwerke dagegen schon.
      Diese Methode liefert 4000 TB Schreibhaltbarkeit bei 120 GB, aber für 200 Dollar bekommt man auch ein 4-TB-TLC-Laufwerk mit 3000 TB Schreibhaltbarkeit.
    • Die Datenhaltbarkeit hängt von der Firmware-Implementierung ab, aber der Nutzer hat darauf keinerlei Einblick.
      Bei den meisten Consumer-Laufwerken ist es gut möglich, dass die Datenhaltbarkeit geringer ausfällt.
  • Was im Artikel nicht deutlich genug hervorgehoben wird, ist, wie eng Haltbarkeit und Datenhaltbarkeit miteinander verknüpft sind.
    Flash-Zellen verschleißen, indem sie mit jedem Zyklus stärker lecken, und deshalb verlieren sie mit zunehmender Zyklenzahl ihre Ladung schneller.
    SLC muss nur 2 Zustände unterscheiden, während QLC 16 Zustände unterscheiden muss, daher bleiben Daten bei gleicher Zyklenzahl im SLC-Modus deutlich länger erhalten.
    Das heißt, dieser Mod bringt nicht nur extreme Haltbarkeit, sondern auch bessere Datenhaltbarkeit.
    Hersteller geben das meist in Form von „N Jahre nach M Zyklen“ an: Frühe SLCs wurden mit 10 Jahren nach 100K Zyklen bewertet, und dieses QLC könnte im QLC-Modus 1 Jahr nach 900 Zyklen und im SLC-Modus 1 Jahr nach 60K Zyklen erreichen.
    Wenn die Blöcke tatsächlich nicht so oft rotiert werden, dürfte die Datenhaltbarkeit noch deutlich höher sein.
    Ich weiß nicht, ob die Firmware für Blöcke im SLC-Modus weiterhin die stärkeren Error Correction Codes verwendet, die für QLC nötig sind, aber falls ja, würde das die Zuverlässigkeit noch weiter erhöhen.

  • Vor etwa 10 Jahren habe ich für Benchmarking ein paar FusionIO-SLC-Karten aus einer der letzten Produktionschargen in die Hände bekommen.
    Die Software war eine In-Memory-Datenbank, bei der Kunden gern die Kapazität ausreizen wollten, und wir haben die Fusion-Karten buchstäblich nur als Swap verwendet.
    Nachdem wir die Daten ein paar Minuten lang geladen hatten, hatte sich der Kernel stabilisiert, und es funktionierte wirklich hervorragend.
    Auf einem 500-Dollar-Rechner kamen Milliarden Datensätze und mehrere Millionen Transaktionen pro Sekunde heraus, und die Karten waren teurer als mein Auto.
    Heute würde ich das auf keinen Fall mehr so machen, aber es war beeindruckende Hardware.

    • Ich kann sagen, dass FusionIO das Unternehmen gerettet hat, in dem ich früher gearbeitet habe.
      Ein großer Teil der App hing an einer einzigen Postgres-Datenbank, und wir wollten ein Projekt für horizontale Skalierung starten, kamen damit aber nicht weit. Wir merkten, dass Partitionierung in einer komplexen und alten Codebasis schwierig ist.
      Irgendwie bekamen wir dann eine FusionIO-Karte, und mit der günstigsten 2-TB-Karte sprang die Lese-QPS in pgbench von etwa 5.000 auf 300k.
      Danach sah vertikale Skalierung für uns viel realistischer aus, als wir gedacht hatten. Hardware kann sehr viel mehr leisten, als man oft annimmt.
    • Als die ersten Intel-SSDs aufkamen, habe ich mit einem ISP gearbeitet, der für seinen Mailserver ein RAID-10 aus acht 10K-Festplatten nutzte.
      Wegen vieler kleiner zufälliger I/O-Operationen war es ständig grenzwertig, ob das System die Last aushält.
      Zum Test schickte ich eine 600-GB-Intel-SSD im Laptop-Formfaktor, nahm den Sekundärknoten herunter, baute die SSD ein und fuhr ihn wieder hoch.
      Nachdem wir das Array mit DRBD synchronisiert hatten, schalteten wir per Failover auf den SSD-Knoten um, fügten die SSD dem logischen Volume hinzu und verschoben dann mit pvmove die Blöcke des Arrays aus acht Festplatten auf die SSD.
      Über einige Stunden sank die Last stetig, bis sie fast ganz verschwunden war.
      Es war faszinierend, dass ein einzelnes Gerät, das bequem in die Handfläche passt, acht 3,5-Zoll-10K-Festplatten ersetzen konnte.
    • In den 90ern wurde für WAL-Daten von Datenbanken, die dringend stärker skalieren mussten, manchmal batteriegepufferter RAM verwendet, der teurer war als ein Neuwagen.
  • Wenn man in eingebetteten Geräten eMMC verwendet, ist das ebenfalls empfehlenswert
    Unter Linux kann man das Gerät mit dem mmc-Befehl aus mmc-utils in den pSLC-Modus versetzen
    Das geht auch in U-Boot, aber der Befehl ist etwas komplizierter. Es lässt sich nur ein einziges Mal programmieren, und nach dem Setzen kann man es nicht mehr rückgängig machen
    Bei Stückzahlen für die Massenproduktion kann der Programmierdienstleister diese Einstellung und andere eMMC-Konfigurationen vorab einrichten

  • Ich wünschte, solche Analysen bis hin zur Bus-Übertragungsrate wären häufiger
    Es wäre gut, wenn es für jede SSD ein Blockdiagramm gäbe, in dem wichtige IC-Modellbezeichnungen, die Taktfrequenz im Betrieb sowie Busbreite und Betriebsgeschwindigkeit zwischen den ICs aufgeführt sind

  • Einige Kingston-SSDs erlauben es, Over-Provisioning mit einem vom Hersteller bereitgestellten Software-Tool zu verwalten
    Man kann also den Kompromiss zwischen Kapazität und Haltbarkeit selbst wählen

    • Trotzdem ändert sich die Zahl der pro Zelle gespeicherten Bits vermutlich nicht
      Wenn man zum Beispiel 80 % Over-Provisioning einstellt, werden 80 % der QLC-Kapazität als Reservebereich genutzt, und die verbleibenden 20 % werden weiterhin im QLC-Modus verwendet
      Es dürfte also nicht so behandelt werden, als könnte man sie wie 20 % SLC mit Over-Provisioning nutzen
  • Es wäre schön, wenn Hersteller eine Möglichkeit anbieten würden, SSDs auf SLC herabzustufen, etwa über Treibereinstellungen

    • Auch wenn das für die SSD selbst nicht gilt, ist es bei allen Flash-Chips möglich
      Wenn man selbst eine SSD baut oder Flash direkt an freie Pins eines SoC anschließt, könnte man es auf diese Weise programmieren
      Bei ausreichend Nachfrage ließe sich das vermutlich auch auf NVMe erweitern
    • Das Gute an Datenträgern ist gerade, dass sie ursprünglich keinen Treiber brauchen
      Selbst wenn es so eine Funktion gäbe, würde eine Windows-Treibereinstellungs-App dafür wohl kaum als Open Source veröffentlicht werden
    • Sonst gäbe es für den Hersteller ja keine Möglichkeit, mehr Geld zu verdienen
  • Ich bin überrascht, weil ich dachte, das sei ein Unterschied auf Hardware-Ebene

    • Wie viele Bits ein bestimmter NAND-Chip pro Zelle speichern kann, dürfte eine Eigenschaft auf Hardware-Ebene sein
      Trotzdem halte ich es für möglich, SLC auf allem zu implementieren, was TLC oder QLC unterstützt
      Auch die Silicon Power NVMe-SSD in meinem Rechner nutzt beim Schreiben offenbar SLC und verschiebt diese Daten später in Leerlaufzeiten nach TLC
      Einen NAND im SLC-Modus zu betreiben, ist eine Funktion solcher Laufwerke und wird „SLC Caching“ genannt
    • Wenn man in die Zellen einer TLC-SSD 0 als 000 und 1 als 111 schreibt, ist es natürlich einfach, sie faktisch in eine SLC-SSD zu verwandeln
      Aber allein das erklärt nicht, warum Lesen und Schreiben dann so viel schneller sind als bei TLC
      Wenn Daten wie bei DRAM als Ladung in einem Kondensator gespeichert würden, könnte man sich vorstellen, Werte mit einem R-2R-Ladder-DAC zu schreiben und mit einem Flash-ADC zu lesen. In so einem Fall gäbe es, wenn man Rauschen und Ähnliches ignoriert, keinen Geschwindigkeitsunterschied durch die Zahl der effektiven Pegel pro Zelle
      Dass der pSLC-Modus schneller ist, scheint an der Art zu liegen, wie Flash programmiert und gelesen wird, und an den analogen Eigenschaften von Flash-Speicher
      Wie bei DRAM wird Ladung zum Speichern des Werts verwendet, aber sie liegt nicht in einem einfachen Kondensator, sondern in einem doppelten MOSFET-Gate
      Die Ladungsmenge verändert die effektive Schwellspannung des Transistors, und beim Lesen müssen mehrere Spannungen angelegt werden, um zu sehen, wann der Transistor zu leiten beginnt
      Beim Programmieren einer Zelle muss eine bestimmte Ladungsmenge injiziert werden, damit die Schwellspannung dem gewünschten Bitmuster entspricht. Da Ladung nur injiziert werden kann, darf nicht zu viel eingebracht werden; deshalb werden mehrfach kurze Pulse angelegt und dazwischen in Lesezyklen geprüft, ob das nötige Niveau erreicht ist
      Je mehr Pegel es pro Zelle gibt, desto kürzere Pulse und desto mehr Lesezyklen sind also nötig
      Wenn man eine Multi-Level-Zelle im Single-Level-Modus programmiert, reicht eine einmalige größere Ladungsinjektion aus, und beim Lesen muss nur geprüft werden, ob sie an einem einzelnen Referenzwert leitet oder nicht
      Kurz gesagt: Für pSLC muss man die Multi-Level-Zelle selbst nicht verändern, aber die Art, wie diese Zelle programmiert und gelesen wird, muss geändert werden. Daher ist es gut möglich, dass die zugehörige Schaltung in gewissem Maß anders sein muss und sich das nicht rein per Firmware umsetzen lässt
      https://en.wikipedia.org/wiki/Flash_memory#Floating-gate_MOS...
      https://dr.ntu.edu.sg/bitstream/10356/80559/1/Read%20and%20w...
      https://people.engr.tamu.edu/ajiang/CellProgram.pdf
      http://nyx.skku.ac.kr/publications/papers/ComboFTL.pdf
  • Ich frage mich, ob man das auch nutzen könnte, um die Lebensdauer bereits abgenutzter SSDs zu verlängern
    Irgendwo in China gibt es vielleicht schon ein Geschäft, das solche SSDs einsammelt, neu flasht und als „Neuware“ verkauft