Einführung

GOODRAM Industrial Massenspeicher für industrielle Anwendungen zeichnen sich durch hohe Zuverlässigkeit, Langlebigkeit und einen weiten Betriebstemperaturbereich aus. Diese Eigenschaften werden durch eine Planung erreicht, die die Spezifikationen und Erwartungen der Kunden berücksichtigt. Die Erfüllung dieser Erwartungen ist ohne die Auswahl und Validierung der Komponenten unmöglich. Besonderes Augenmerk wird dabei auf den Flash Controller und seine Eigenschaften gelegt, die einen störungsfreien Betrieb über einen langen Zeitraum gewährleisten.

NAND-Flash-Speicherverwaltung

Die Verwendung von NAND FLASH in Massenspeichern erfordert eine Reihe von Optimierungstechniken. Eine der wichtigsten Optimierungstechniken ist die Übersetzung der Sektoradresse der Festplatte in die physikalische Adresse der Speicherseite (logical to physical mapping). Dies ist notwendig, weil der Host (Computer) den Speicher über 512-B-Sektoren adressiert, während die Größe einer typischen NAND FLASH-Seite 8 oder 16 kB beträgt und es nicht möglich ist, eine Seite neu zu programmieren, ohne den gesamten Speicherblock zu löschen. Ein Speicherblock enthält 256-512 Seiten, sodass der Adressübersetzungsmechanismus mit dem Garbage-Collection-Algorithmus zusammenwirken muss. Die Neuordnung der Daten basiert auf der Defragmentierung der Speicherblöcke. Infolgedessen werden die aktuellen Daten so auf freie Speicherseiten übertragen, dass der Block gefüllt wird. Der Block mit den veralteten Daten wird gelöscht und zum erneuten Beschreiben vorbereitet. Eine gleichmäßige Verteilung der Schreibzyklen auf alle NAND FLASH-Speicherblöcke wird durch einen Wear-Leveling-Algorithmus gewährleistet. Er basiert auf den Zählern der Schreib-/Programmierzyklen (P/E) der Speicherblöcke. Alle genannten Algorithmen berücksichtigen die Karte der fehlerhaften Blöcke. Diese Karte wird zum Zeitpunkt der Speicherinitialisierung erstellt und kann später um Blöcke erweitert werden, die von der Nutzung ausgeschlossen sind, die sogenannten Run Time Bad Blocks oder Later Bad Blocks. Der Aufbau und die hohe Zuverlässigkeit der in GOODRAM Industrial implementierten Optimierungsalgorithmen garantieren einen zuverlässigen Betrieb von Massenspeichern über ihre gesamte spezifizierte Lebensdauer.

Flash Translation Layer

In SSD-Controllern ist Page Mode Mapping FTL implementiert. Während eines Lese-/Schreibzyklus eines Datensektors wird die logische Seitennummer (LPN) berechnet. Die logische Seitennummer wird in eine physische Seitennummer (PPN) übersetzt. Die Übersetzung erfolgt mit Hilfe der Tabelle Mapping Table.

In der Tabelle Mapping Table werden Informationen zur Auswahl des richtigen Speicherchips, Kerns und physischen Speicherblocks (PBN) gespeichert. Der Vorteil von Page Mapping Mode FTL ist die hohe Geschwindigkeit und der geringe Schreibgewinn. In SD-Karten-Controllern ist auch eine zweite Übersetzungsmethode – Block Mode Mapping – verfügbar. Das Prinzip der Methode Block Mode Mapping ist analog zu dem zuvor beschriebenen, mit dem Unterschied, dass die Tabelle Mapping Table Blockadressen enthält. Die Wahl der Übersetzungsmethode hängt von dem verwendeten NAND-FLASH-Speicherchip und der erwarteten Geschwindigkeit ab.

Wear-Leveling

Alle in Massenspeichern GOODRAM Industrial verwendeten Controller verfügen über einen statischen und dynamischen Wear-Leveling-Algorithmus. Die Strategie des Wear-Leveling-Algorithmus besteht darin, die Speicherblöcke so auszuwählen, dass die Unterschiede zwischen der Anzahl der P/E-Zyklen in allen Speicherblöcken verringert werden. Dies wird durch die Verlagerung statischer Daten und die Verwendung dieser Speicherorte zur Speicherung häufig wechselnder Daten erreicht.

Over-Provisioning

Over-Provisioning wird von allen Controllern in Massenspeichern GOODRAM Industrial unterstützt. Bei SSDs und Betriebssystemen, die den TRIM-Befehl unterstützen, hängt die Over-Provisioning Größe vom Layout der auf dem Laufwerk erstellten Partitionen ab, d. h. der nicht den Partitionen zugewiesene Speicherplatz oder der Speicherplatz, dem keine Dateien zugewiesen sind, wird vom Controller automatisch verwendet, um die Leistung und Haltbarkeit von NAND FLASH zu verbessern. Die Over-Provisioning Größe kann auch vom Benutzer mit einem beliebigen Festplattendienstprogramm und dem Befehl ATA SET MAX ADDRESS, z. B. hdparm (Linux), festgelegt werden. Beim SD-Karten-Controller ist es nicht möglich, Over-Provisioning einzustellen. In diesem Fall ist es möglich, die Leistung und Haltbarkeit der Karten zu erhöhen, indem man Datensektoren löscht, bevor man sie wieder überschreibt (Befehl ERASE – CMD38).

ECC

SSD- und SD-Karten-Controller verwenden BCH- und LDPC-Methoden „Hard- und Soft-Decoding“ zur Fehlererkennung und -korrektur. Die BCH-Methode (S10, SD-Controller) wird für 2D-Planarspeicher verwendet. Die LDPC-Methode wird zur Fehlererkennung und -korrektur in 3D-Speichern (im Falle von S11T auch in 2D-Speichern) verwendet. Bei SSD-Controllern werden zusätzliche ECC-Bits erzeugt, die in anderen Speicherseiten als die Daten gespeichert werden (RAID ECC). Wenn ein unkorrigierter Datenfehler entdeckt wird, erhöhen zusätzliche ECC-Bits die Wahrscheinlichkeit, dass der Datenfehler korrigiert wird. In diesem Fall werden die korrigierten Daten auf eine andere Seite geschrieben und der Block, in dem sich die Quellseite befindet, wird als fehlerhaft markiert.

Read-retry

In einer Situation, in der unkorrigierte Datenfehler auftreten, versuchen die von GOODRAM Industrial verwendeten Controller erneut, die Daten für den geänderten Wert der Referenzspannung Vref auszulesen. Die ausgelesenen Daten werden einer harten Korrektur unterzogen (BCH, LDPC Hard-Decoding) oder können zur Erstellung einer Statistik der Spannungsverteilung verwendet werden. Die Statistik der Spannungsverteilung ist die Grundlage des LDPC-Soft-Decoding-Algorithmus.

Schutz gegen plötzlichen Spannungsabfall

Das Risiko eines Datenverlusts aufgrund eines plötzlichen Spannungsausfalls wird durch controllerspezifische Methoden minimiert. In den Controllern S10 und S11T wird eine Strategie zur Begrenzung der Menge und Dauer der Datenhaltung im Cache-Speicher implementiert. Das die Datenerfassung bestätigende ACK-Signal wird erst erzeugt, nachdem die Daten in den FLASH-Hauptspeicher geschrieben wurden. Auf diese Weise wird das Risiko einer irrtümlichen positiven Bestätigung der Datenerfassung ausgeschlossen. Darüber hinaus ist für den S10-Controller eine Notstromversorgung mit Tantal-Kondensatoren verfügbar. Die Aufrechterhaltung der Stromversorgung durch Kondensatoren ist optional und erfordert die Auslegung geeigneter Stromkreise. SD-Karten-Controller verfolgen eine andere Strategie. Bei SD ist die Aufnahme doppelt gepuffert. Beim Einschalten der Stromversorgung werden die zuletzt aufgezeichneten Daten überprüft. Wenn unkorrigierte Datenfehler aufgrund eines Stromausfalls aufgetreten sind, wird das Überschreiben der ursprünglichen Daten übersprungen oder die Daten werden aus dem Puffer wiederhergestellt.

SmartZIP

SmartZIP komprimiert die Daten in einem Schreibzyklus und dekomprimiert sie in einem Lesezyklus. Bei einem Schreibzyklus werden die Daten aus dem Schreibpuffer an den Kompressionsblock weitergeleitet. Im Kompressionsblock wird ihre Größe reduziert. Je nach Entropie kann die Größe der gespeicherten Blöcke um ein Vielfaches reduziert werden. Die komprimierten Daten werden im NAND FLASH gespeichert. Im Lesezyklus tritt die umgekehrte Situation auf, d. h. die aus dem NAND FLASH gelesenen Daten werden dekomprimiert und dann in den Lesepuffer übertragen. Der Vorteil der SmartZIP-Funktion liegt in der hohen Geschwindigkeit (die Kompression erfolgt intern ohne Eingriff des Hosts) und der Verlängerung der Lebensdauer des NAND-FLASH-Speichers.

Vergleich von Controllern
Phison PS3110-S10Phison PS3111-S11TPhison PS8210
SchnittstelleSATA IIISATA IIISD 3.0
SpeichertypMLC, TLC, 3D NAND3D NAND, TLC, MLC 3D NAND, TLC, MLC
Speicherkanäle82N/A
ECC-TypBCHLDPC hard&soft decodingBCH, LDPC hard&soft decoding
RAID ECCJAJANEIN
FTLPage Mapping-ModusPage Mapping-Modus Block/Page Mapping-Modus (anwendungsabhängig)
Cache-SpeicherDo 1GBKeineN/A
VerschlüsselungUnterstützungUnterstützungUnterstützung
DatenkompressionNEINJANEIN
KapazitätBis zu 1 GBBis zu 512GBBis zu 512GB
Sequentielle Geschwindigkeit550/520 MB/s550/500 MB/s90/45 MB/s
Zufallsgeschwindigkeit (4k)100k/90k IOPS100k/85k IOPSB/D
Schutz gegen plötzlichen SpannungsabfallJA (Einbau zusätzlicher Kondensatoren möglich)JAIntegrierte Software
S.M.A.R.T.-AttributeJAJAJA (optional)
NCQBis zu 32Bis zu 32N/A
TRIMJA. Deterministisch oder nicht-deterministisch (je nach FW) JA. Deterministisch oder nicht-deterministisch (je nach FW) N/A
Secure EraseJAJAN/A
Over-ProvisioningJAJAJA
ThermosensorUnterstützt (optional)Unterstützt (optional)N/A
Verwaltung defekter BlöckeEingebautEingebautEingebaut
Stromsparende VerwaltungDIPM/HIPM-ModusDIPM/HIPM-ModusBasierend auf SD-Standard
Read retryJAJAJA