10 Tipps für den Entwurf von Flash-Speicherlösungen

| Autor / Redakteur: Steffen Allert / Michael Eckstein

Durchdacht: Je nach Formfaktor sind unterschiedliche Parameter für das Design industrietauglicher, Flash-basierter Speichersysteme wichtig.
Durchdacht: Je nach Formfaktor sind unterschiedliche Parameter für das Design industrietauglicher, Flash-basierter Speichersysteme wichtig. (Bild: Hyperstone)

Der Entwurf von NAND-flash basierten Speichersystemen ist nicht so einfach, wie es auf den ersten Blick aussieht. Hier sind 10 Tipps, die beim Entwickeln der bestmöglichen Lösung für die eigene Anwendung helfen.

Das Auslegen eines Speichersystems hinsichtlich Kosten, Lebensdauer, Qualität und Umgebungsbedingungen hängt stark vom jeweiligen Anwendungsfall (Use Case) ab. Für eine optimale Auslegung müssen Entwickler zunächst verschiedene Parameter ermitteln, die normalerweise für Anwender nicht sichtbar sind. Dafür sind spezielle Tools verfügbar. Auf Basis der gefundenen Daten, kann die Speichergröße, die Flashqualität (SLC, MLC, TLC, pseudo Modes), aber auch das Zugriffsmuster des Hosts optimiert werden. Die ermittelten Lösungen bieten eine gute Balance zwischen Performance, Qualität und Kosten. Folgende 10 Punkte helfen beim Design.

1. Keine Neugeräte für Bewertung des realen Betriebs verwenden

Die Zugriffszeiten auf Flash-Speichersysteme verschlechtern sich mit fortschreitender Nutzungsdauer mess- und spürbar. Der Grund: Flash-Speicherzellen nutzen bei häufigem Gebrauch ab, was letztlich auf physikalischer Ebene zu einer Fragmentierung der Chips führt. Auch innerhalb eines kurzen Zeitfensters lassen sich signifikante Schwankungen bei der Schreib- und Lese-Performance feststellen. Effizientes Management des Flash-Speichers durch den Controller kann diese kurzfristigen Schwankungen minimieren, aber nicht vollständig unterdrücken.

NAND-Flash-Chips sind blockweise organisiert. Damit sich Daten in einen Block schreiben lassen, muss dieser gelöscht sein. Nur im Neuzustand eines Laufwerks („Fresh-Out-of-the-Box, FOB) sind alle Blöcke leer, das Schreiben ist mit wenig Aufwand möglich. Auch das Lesen erfolgt sehr schnell, da nur wenige Daten auf dem Gerät vorhanden sind. Das ändert sich mit zunehmender Nutzung. Aus diesem Grund ist es essentiell, das Speichergerät mit dem realen (oder auch einem fiktiven) Anwendungsfall für eine gewisse Dauer zu betreiben. Das Gerät sollte mindestens einmal, besser mehrmals, vollständig beschrieben werden. Je näher die Konditionierung an der realen Anwendung erfolgt, desto genauer sind die Aussagen für die zu erwartende Leistung im echten Betrieb. Die Werte von FOB im Vergleich zum realen Betrieb können sich stark unterscheiden – Faktor 100 und mehr ist durchaus möglich. SATA3-Geräte erreichen dann nur noch weniger als 2 MByte/s beim Schreiben – statt über 400 MByte/s im Neuzustand!

2. Auf der Suche nach einer konstanten Leistung

SSD- oder Flash-Laufwerkskonfigurationen lassen sich gezielt auf Geschwindigkeit, Datenspeicherung, Zuverlässigkeit oder Lebensdauer des Systems hin optimieren. Dazu ist es wichtig, die geplante Anwendung zu kennen. Hyperstone bietet Software-Tools, mit denen sich konkrete Anwendungsfälle und Auswirkungen auf verschiedene Parameter beurteilen lassen, die den Betrieb des Speichergeräts beeinflussen. Diese Werkzeuge können im Zielsystem während einer Qualifizierung mit einem repräsentativen Use-Case-Modell oder im realen Betrieb während der Nutzung eingesetzt werden. Die gewonnenen Informationen ermöglichen ein umfassendes Verständnis des Verhaltens des Flash-Speichergeräts über seinen Lebenszyklus. Basierend auf diesen Informationen können auch mehrere Konfigurationen des Systems und der Firmware getestet und anschließend optimiert werden.

3. Over Provisioning (OP) richtig nutzen

Eine Option, die Entwickler zum Optimieren des Systems nutzen können, ist Over Provisioning (OP). OP stellt dabei einen bestimmten, vom Anwender zu definierenden Bereich des Nutzerdatenbereichs der Firmware zur Verfügung. Die Nutzung dieses Bereichs ermöglicht einen optimierten Betrieb des Systems. Dabei gilt: Je mehr OP, desto besser die Optimierung. Der Nachteil ist, dass dieser OP-Bereich für Nutzerdaten nicht zur Verfügung steht. Die Größe des OP beeinflusst die Lebensdauer, sowie die Schreib- und Lesegeschwindigkeit positiv. Hier gilt es, einen bestmöglichen Kompromiss für die jeweilige Anwendung zu finden. Tools helfen dabei.

4. Verwaltung statischer Daten mit DDR

Wenig Beachtung findet die Verwaltung statischer Daten, auch Data-at-Rest genannt. Dabei haben mehrere physikalische Effekte Einfluss auf die Qualität der Daten in einer Speicherzelle. Wenn diese Daten jedoch (fast) nie gelesen werden, kann sich über die Zeit die Zahl der Fehler addieren. Wenn diese nicht rechtzeitig erkannt werden, lassen sie sich unter Umständen nicht mehr korrigieren. Da ein Lesevorgang die einzige Möglichkeit ist, die Anzahl der Bitfehler zu ermitteln, muss dieser aktiv eingeleitet werden. Die Funktion Dynamic Data Refresh (DDR) ist ein Mechanismus, der den Verlust in einer solchen Situation sicher vermeidet. Dabei liest der Controller ohne externen Befehl oder Interrupt den gesamten angeschlossenen Speicher und verschafft sich so einen Überblick darüber, welche Daten aufgefrischt werden müssen. Nur Daten, die unbedingt ein Update brauchen, werden aufgefrischt. Ein Refresh des gesamten Speichers würde dessen Lebensdauer unnötig belasten.

5. Verwaltung statischer Daten mit RDM

Ein weiterer Mechanismus zum Sicherstellen der Datenqualität ist das Read Disturb Management (RDM). Intensives Lesen eines Bereichs auf dem Flash belastet die benachbarten Zellen. Das kann zu Störungen und damit Datenfehlern führen. Das RDM ist ein nützliches Feature, um die resultierenden Fehler behandeln zu können. Ein typischer Anwendungsfall aus der Automobilindustrie sind Navigationssysteme. Während fast alle Daten in Navigationssystemen statisch sind, werden die Kartendaten um das eigene Zuhause herum häufiger gelesen als andere Daten. Dies wirkt sich auf die benachbarten Zellen aus. Das RDM überwacht die Häufigkeit der Lesezugriffe auf die physischen Zellen (gelesen und benachbart) und ergreift rechtzeitig Gegenmaßnahmen, um einen Datenverlust in benachbarten Bereichen zu verhindern. Sowohl RDM als auch DDR erfordern Rechenleistung im Hintergrund. Beide lassen sich so einstellen, dass der Nutzer einen bestmöglichen Kompromiss zwischen Zuverlässigkeit und Leistung erhält.

6. Health Monitoring nutzen

Die Zustandsüberwachung während der gesamten Lebensdauer eines Speichersystems kann entscheidend sein, um einen zuverlässigen Betrieb zu gewährleisten und unerwartete Ausfälle zu vermeiden. Die Self-Monitoring, Analysis and Reporting Technology (SMART) liefert wichtige Daten über den Status des NAND-Flash. Ursprünglich wurde diese Funktion entwickelt, um den Zustand von Festplatten zu überwachen. Heutzutage ist sie ein sehr effektives und präzises Werkzeug für NAND-Flash-Geräte, mit dem sich deren aktueller Zustand bestimmen und gegebenenfalls Gegenmaßnahmen einleiten lassen. Mit SMART können Benutzer die Lebensdauer von Flash-Geräten mit verschiedenen Attributen überwachen. So können sie Probleme erkennen, bevor sie auftreten oder kritische Werte erreichen, die zu Systemausfällen oder dem Verlust wertvoller Daten führen können. Moderne Tools wie Hyperstones hySMART unterstützen diesen Prozess und ermöglichen es Anwendern, ihre Lösung zu überwachen. Die Werte über den Zustand des Devices können auf einer grafischen Benutzeroberfläche (GUI) angezeigt werden. Zusätzlich ist eine Echtzeitüberwachung im Betrieb möglich.

7. Zugriffoptimiertes Flash-Management

Durch den Einsatz des für den jeweiligen Use Case optimalen Zugriffsmanagement (Mapping) des Controllers lassen sich sowohl die Lebensdauer als auch die Zugriffsgeschwindigkeiten (Read und Write) verbessern. Das patentierte hyMap Konzept von Hyperstone stellt sicher, dass die Schwächen von NAND-Flash speziell für den Fall eines zufälligen Zugriffs auf den Speicher mit kleinen Datenmengen ausgemerzt werden. Beispiele hierfür sind die Verarbeitung von Sensordaten oder Logging-Daten von industriell genutzten Systemen. In der einschlägigen Literatur wird diese Abnutzung auch mit der Maßzahl WAF (Write Amplification Factor) bezeichnet. Diese sagt aus, wie viele Daten zusätzlich geschrieben werden müssen um eine bestimmte Menge Kundendaten zu speichern. Ein WAF von 10 bedeutet demnach, dass das 10-fache an Daten geschrieben werden muss, als eigentlich vom Host gesendet. In der Realität werden mit wenig optimierten Mapping Ansätzen WAF von 200 bis 300 generiert. Mit hyMap reduziert sich dies auf 10 bis 20, was eine um den Faktor 10 bis 15 höhere Lebensdauer des Speichers ermöglicht.

8. Versteckte Performance-Funktionen mit Bedacht einsetzen

Ein typischer Flash-Controller hält viele verschiedene Optionen für den Betrieb des Speichersystems bereit. Eine wesentliche Option ist das Beeinflussen der Schreibgeschwindigkeit durch eine unterschiedliche Parametrisierung der Firmware. Der Betrieb lässt sich so gestalten, dass Daten, die vom Host empfangen wurden sofort als erfolgreich auf dem Flash gespeichert zurückgemeldet werden. Damit kann eine signifikante Steigerung der Schreibgeschwindigkeit erreicht werden. Dies ist solange unproblematisch bis ein Programmierfehler beim Schreiben auf das Flash auftritt. In diesem Fall sind die vom Host gesendeten Daten, die nicht korrekt gespeichert werden konnten, bereits von neuen Daten (ebenfalls vom Host) überschrieben. Der Host geht jedoch davon aus, dass diese Daten korrekt gespeichert wurden. Eine korrekte Rückmeldung „Programmierfehler“ zum Host ist ebenfalls nicht mehr möglich. Wenn nun der Host diese nicht korrekt geschriebenen Daten anfordert (Lesen), können diese nicht geliefert werden – mit gravierenden möglichen Folgen. Aus diesem Grund muss das Einschalten dieser Option mit Bedacht gewählt werden. Bei Hyperstone-Lösungen kann diese Funktion über einen einfachen Parameter aktiviert oder deaktiviert werden.

9. pSLC, pMLC: Handlungsmöglichkeiten bei Leistung und Zuverlässigkeit

Es ist möglich, MLC und TLC Flashspeicher in sogenannten Pseudomodi (pSLC oder pMLC) zu betreiben. Dabei wird in einem Standard-MLC oder TLC-NAND nur ein Bit pro Speicherzelle gespeichert. Dieser verhält sich dann wie ein SLC, wesentliche Parameter im Verhalten des Flash ändern sich. Die wichtigsten sind die langsamere Alterung (Anzahl Löschzyklen höher, Data Retention länger) und eine deutlich verbesserte Performance (speziell Write). Hyperstone bietet zur Verwendung dieser Modi eine eigene Firmware an und arbeitet eng mit den Flash-Herstellern zusammen, um diese für eine möglichst zuverlässige Nutzung zu optimieren.

10. Datenintegrität bei möglichem Stromausfall sicherstellen

Es ist wichtig, dass im Falle eines Stromausfalls keine bereits gespeicherten Daten beschädigt werden (Datenintegrität). Dies ist besonders wichtig für Daten, die zum Betrieb des Controllers notwendig sind. Sind diese beschädigt, kann das System nicht mehr gestartet werden und die Anlage ist außer Betrieb. Aber auch der Verlust von Kundendaten sollte unter allen Umständen vermieden werden. Schließlich haben diese Daten einen Wert für den Nutzer und können ebenfalls den Betrieb einer Anlage negativ beeinflussen. Der Worst-Case ist jedoch das unbeabsichtigte und nicht erkannte Ändern von Nutzerdaten. Es kann vorkommen, dass systemkritische Daten falsch an den Host ausgeliefert werden und in diesem Fall Systeme falsch reagieren. Dies kann zu unkontrolliertem Verhalten von Anlagen (Roboter, etc.) führen, was im schlimmsten Fall lebensbedrohlich sein, zumindest aber enorme Kosten verursachen kann. Das Vermeiden einer solchen Situation unter allen Umständen ist eine Hauptaufgabe des Flash-Managements. Bei Hyperstone wird dies als Power Fail Robustness bezeichnet. Der Nachweis dieser Funktion muss Teil jeder Freigabeaktivität sein, egal ob neue Firmware oder nur Update/Upgrade.

Stromausfall zerstört mindestens 6 Exabyte NAND-Flash in Toshiba-Memory-Fabs

Stromausfall zerstört mindestens 6 Exabyte NAND-Flash in Toshiba-Memory-Fabs

02.07.19 - Ein Stromausfall hat eine Flash-Fabrik von Toshiba Memory lahmgelegt und Wafer mit mindestens 6 EByte NAND-Flash-Kapazität zerstört. Der Vorfall beschädigte laut Joint-Venture-Partner Western Digital auch Fertigungsmaschinen. Wann die Produktion wieder voll anlaufen kann, ist noch unklar. lesen

Welche Flash-Speicher eignen sich für den Einsatz in der Industrie?

Welche Flash-Speicher eignen sich für den Einsatz in der Industrie?

04.04.19 - Bei Auswahl der optimal geeigneten Speichertechnologie gibt es einige Stolpersteine. Daher ist es gut zu wissen, wo die verschiedenen Flash-Techniken ihre Stärken und Schwächen haben. lesen

Das müssen moderne Flash-Speicher für Autos können

Das müssen moderne Flash-Speicher für Autos können

04.04.19 - Neue Funktionen und Analysemöglichkeiten machen Flash-Speicher fit für die Anforderungen automotiver Sicherheitsstandards. lesen

* Steffen Allert ist Leiter der europäischen Sales Organisation von Hyperstone

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 46014451 / Speicher)