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.
FLASH-SPEICHER-CONTROLLER FÜR INDUSTRIELLE LÖSUNGEN
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.
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.
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 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).
SSD- und SD-Karten-Controller verwenden BCH- und LDPC-Methoden „Hard- und Soft-Decoding“ zur Fehlererkennung und -korrektur. Die BCH-Methode (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.
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.
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. 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 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.
Phison PS3111-S11T | Phison PS8210 | |
---|---|---|
Schnittstelle | SATA III | SD 3.0 |
Speichertyp | 3D NAND, TLC, MLC | 3D NAND, TLC, MLC |
Speicherkanäle | 2 | N/A |
ECC-Typ | LDPC hard&soft decoding | BCH, LDPC hard&soft decoding |
RAID ECC | JA | NEIN |
FTL | Page Mapping-Modus | Block/Page Mapping-Modus (anwendungsabhängig) |
Cache-Speicher | Keine | N/A |
Verschlüsselung | Unterstützung | Unterstützung |
Datenkompression | JA | NEIN |
Kapazität | Bis zu 512GB | Bis zu 512GB |
Sequentielle Geschwindigkeit | 550/500 MB/s | 90/45 MB/s |
Zufallsgeschwindigkeit (4k) | 100k/85k IOPS | B/D |
Schutz gegen plötzlichen Spannungsabfall | JA | Integrierte Software |
S.M.A.R.T.-Attribute | JA | JA (optional) |
NCQ | Bis zu 32 | N/A |
TRIM | JA. Deterministisch oder nicht-deterministisch (je nach FW) | N/A |
Secure Erase | JA | N/A |
Over-Provisioning | JA | JA |
Thermosensor | Unterstützt (optional) | N/A |
Verwaltung defekter Blöcke | Eingebaut | Eingebaut |
Stromsparende Verwaltung | DIPM/HIPM-Modus | Basierend auf SD-Standard |
Read retry | JA | JA |