Schutz von IoT-Gateways vor stillen Speicherausfällen:

Kurz

Die meisten Entwickler unterschätzen das versteckte Risiko in ihren IoT-Gateways: den Verschleiß von NAND-Flash-Speichern. eMMC-Speicher bieten zwar Langlebigkeit und Kosteneffizienz, haben jedoch eine begrenzte Anzahl von Schreib-/Löschzyklen. Das bedeutet, dass ein schlechtes Software-Design Geräte lange vor Ablauf ihrer vorgesehenen Lebensdauer unbemerkt zerstören kann.

Dieses Whitepaper erläutert, warum Speicherausfälle häufig in großem Umfang auftreten, beschreibt, wie sich die tatsächliche Lebensdauer messen lässt, und stellt den Flash Manager von Robustel vor – ein integriertes Diagnosetool für Gateways der EG5000-Serie, mit dessen Hilfe Teams den Verschleiß von Flash-Speichern erkennen, testen und mindern können, bevor es zu einem Ausfall im Einsatz kommt.

Das Fazit: Durch proaktive Überwachung und einfühlsames Software-Design können Unternehmen die Lebensdauer ihrer Geräte verlängern, Garantiekosten senken und einen zuverlässigen IoT-Betrieb sicherstellen.


Was Sie lernen werden
  • Die Ausdauerbeschränkungen von MLC-NAND-Flash und warum unkontrollierte Schreibvorgänge den Ausfall beschleunigen.
  • Die wichtigsten Unterschiede zwischen eMMC- und SD-Karten und warum industrielle Gateways auf eMMC setzen sollten.
  • Wie sich Linux-I/O-Stacks, Schreibverstärkung und Workload-Muster direkt auf den Zustand von Flash-Speichern auswirken.
  • Praktische Strategien – Überprovisionierung, Schreiboptimierung, pSLC-Optionen – zur Verlängerung der Lebensdauer von Speichermedien.
  • Verwendung des Robustel Flash Managers zur Überwachung des Verschleißes, zur Durchführung von Belastungstests und zur Prognose der Lebensdauer von Geräten.

NAND-Flash hat sich zum De-facto-Speichermedium für moderne Verbrauchergeräte wie Mobiltelefone, Tablet-PCs und E-Reader entwickelt. Es ist auch das Massenspeichermedium in SSDs, USB-Sticks und SD-Karten und wird häufig in kostengünstigen Embedded-Computern wie der EG5000-Serie von Robustel verwendet.

Geräte, die mit NAND-Flash hergestellt werden, bieten mechanische Stoßfestigkeit, hohe Haltbarkeit und sind in der Lage, hohen Temperaturen und hohem Druck standzuhalten, wodurch sie sich ideal für industrielle Anwendungen eignen. Ein gängiger Formfaktor für NAND-Flash-Speicher in industriellen Systemen wie den Edge-Gateways der EG5000-Serie von Robustel ist „eMMC“.

NAND-Flash ist ein beliebter nichtflüchtiger Speicher, vor allem aufgrund seiner geringen Größe, seines geringen Stromverbrauchs und seiner Langlebigkeit. Obwohl diese Technologie für reine „Speicherzwecke“ geeignet ist, müssen viele wichtige Merkmale berücksichtigt werden, wenn sie in ein komplexes System integriert wird, insbesondere in eines, auf dem ein Betriebssystem wie Linux läuft.

Im Vergleich zu herkömmlichen Festplattenlaufwerken hat eMMC keine beweglichen Teile und eignet sich daher ideal für Systeme, die Vibrationen und Erschütterungen ausgesetzt sind. NAND-Flash bietet außerdem schnelle Lesezugriffszeiten, was für datenintensive Anwendungen von entscheidender Bedeutung ist. Einer der Hauptnachteile von NAND-Flash-basierten Speichern ist jedoch die relativ begrenzte Anzahl von Schreib-/Löschzyklen, denen ein solches Gerät standhalten kann.

Einfach ausgedrückt „verschleißt“ ein NAND-Flash-Gerät, wobei die Verschleißrate proportional zur Nutzungsintensität ist – vom Konzept her ähnlich wie bei einer Batterie, nur dass es keine praktische Möglichkeit gibt, ein eMMC-Laufwerk wieder aufzuladen.

Viele Systemintegratoren/Entwickler sind sich der „Ausdauer“-Einschränkungen von MLC-NAND-Flash nicht bewusst, was zu einem vorzeitigen Ausfall ganzer Flotten von IoT-Geräten führen kann. Daher ist es von entscheidender Bedeutung, das Verhalten Ihrer Software zu messen und die Probleme zu mindern, die mit einem ungeeigneten Anwendungssoftwaredesign verbunden sind, wenn MLC-NAND-Flash als primäres Speichergerät verwendet wird – insbesondere eines, auf dem ein Linux-Betriebssystem und Anwendungssoftware gehostet werden.

Dieses Whitepaper soll Entwicklern dabei helfen zu verstehen, wie sie die Auswirkungen ihrer Software auf ein eMMC-Laufwerk (NAND-Flash) messen können und was zu tun ist, wenn sich herausstellt, dass eine vorzeitige „Abnutzung“ ein Risiko für Ihre Anwendung darstellt.

Ein kurzer Hinweis zu eMMC- und SD-Karten

Eine Reihe sehr kostengünstiger Embedded-PCs werden eine SD-Karte als primäres Speichermedium verwenden, auf der alle wichtigen Betriebssystem- und Anwendungsdateien gespeichert sind.

Einige der Herausforderungen von SD gegenüber eMMC, die es zu berücksichtigen gilt, sind:

Ein auf die Leiterplatte gelöteter eMMC-Chip weist eine deutlich höhere Vibrationsfestigkeit auf als eine in einen Steckplatz/Halterung gesteckte SD-Karte.

Ein eMMC-Chip bietet eine bessere Cybersicherheit, da er nicht einfach aus dem Produkt entfernt werden kann.

Der geringe Abstand zwischen dem eMMC-Chip und der Leiterplatte reduziert unerwünschte Induktivität und Signalverzerrung, was tendenziell höhere Datenübertragungsraten als bei SD-Karten ermöglicht.

Ein weiteres Problem bei SD-Karten ist die große Anzahl von Fälschungen auf dem Markt, die manchmal sogar in legitime Produkte gelangen. Etwas in einem eMMC-Gehäuse ist viel besser rückverfolgbar und weniger anfällig dafür, Teil eines Produktfälschungsunternehmens zu sein.

Die Produkte von Robustel verwenden für das primäre Betriebssystem ausschließlich eMMC-Chips, aber einige Produkte können mit einer SD-Karte für kostengünstigen Massenspeicher ausgestattet werden.

Flash-Speicher bestehen aus einer einzigartigen Anordnung von Logikgattern, die in einer Rückkopplungsschleife angeordnet sind, und diese Logikgatter bestehen aus Transistoren. Die Transistoren werden alle zusammen auf einem Stück Siliziumgrundlage hergestellt, wobei Schichten aus Ätzmitteln und Additiven auf das Silizium aufgebracht werden, um das Designmuster und die elektrischen Eigenschaften zu erzeugen, die für die Bildung der Komponenten erforderlich sind. Dieses einteilige Gerät wird als integrierte Schaltung bezeichnet. Dieser IC-Herstellungsprozess ähnelt anderen Anwendungen wie anderen Speichertypen, CPUs, Controllern und Grafikprozessoren.

Flash-Speicher nutzt sich ab, im Gegensatz zu anderen IC-Komponenten, die sich nie wirklich abnutzen, es sei denn, es kommt zu einem Ereignis, das einen Teil davon beschädigt, wie z. B. Überhitzung oder eine Überspannung. Der Verschleiß von Flash-Speichern ist auf die besondere Anforderung des Designs zurückzuführen, dass „der Löschvorgang die Flash-Zelle mit einer relativ großen Ladung elektrischer Energie trifft“. Flash-Laufwerke können Datenbytes nicht einfach überschreiben, wie dies bei Magnetplatten der Fall ist. Stattdessen müssen ganze Blöcke auf einmal gelöscht werden, analog zu Sektoren auf einer Magnetplatte, um neue Daten schreiben zu können. Jedes Mal, wenn ein Block gelöscht wird, verschlechtert die große elektrische Ladung das Siliziummaterial geringfügig, bis nach genügend Schreib-Lösch-Zyklen die elektrischen Eigenschaften der Flash-Zelle nachlassen und diese Zelle unzuverlässig wird.

NAND-Flash-Speicher hat also von Haus aus viele großartige Eigenschaften, darunter Kosten und Langlebigkeit, aber der Nachteil ist eine begrenzte Lebensdauer pro Block. Daher müssen Anwendungsentwickler die verfügbaren Ressourcen durch einen schonenden Einsatz des Chips schonen.

An dieser Stelle wird es etwas komplizierter.

Der Linux-I/O-Stack besteht aus einer komplexen Anordnung von Subsystemen, die zusammenarbeiten, um die Lese-/Schreibleistung vom Benutzerbereich zur Hardware und zurück zu optimieren. Es ist nicht immer klar, welche Schreibvorgänge auf Benutzerebene den Flash-Speicher erreichen und auf welche Weise dies geschieht.

Das NAND-Flash-Gerät – eMMC oder SSD – verfügt über einen eigenen Controller, der so konfiguriert ist, dass er die Lebensdauer des Geräts verlängert, indem er optimiert, wann und wie Schreibvorgänge auf den Flash-Speicher erfolgen.

Es gibt mehrere Tools innerhalb eines Linux-Betriebssystems, die dabei helfen können, Licht ins Dunkel zu bringen, was wo passiert. Bevor Sie dieses Kapitel weiterlesen, beachten Sie bitte, dass der Versuch, genau festzustellen, wie Ihr Code durch den IO-Stack fließt, möglicherweise nicht die zweckmäßigste Lösung für ein komplexes Problem ist, sodass einige Leser Folgendes in Betracht ziehen können

Der Rest dieses Kapitels dient nur zu Informationszwecken. In den folgenden Kapiteln werden eher praktische Lösungen für die Risikosteuerung vorgestellt, ohne dass man dafür ein Linux-IO-Experte sein muss!

Hier sind einige Beispiele für Funktionen in Linux, die Ihnen bei Ihrer Analyse helfen könnten:

iostat

Der Befehl „iostat“ dient zur Überwachung der Auslastung von System-Eingabe-/Ausgabegeräten, indem die Zeit, in der die Geräte aktiv sind, im Verhältnis zu ihren durchschnittlichen Übertragungsraten beobachtet wird. Der Befehl „iostat“ generiert Berichte, die zur Änderung der Systemkonfiguration verwendet werden können, um die Eingabe-/Ausgabelast von physischen Festplatten – z. B. eMMC-Flash – besser zu verstehen.

iotop

iotop ist ein gängiger Linux-Befehl. Es handelt sich um ein „top“-ähnliches Dienstprogramm für die Dateneingabe und -ausgabe (I/O). Verwenden Sie diesen Befehl, um die vom Linux-Kernel ausgegebenen Informationen zur I/O-Nutzung anzuzeigen. Es wird eine Tabelle mit der aktuellen I/O-Nutzung durch Linux-Prozesse oder -Threads auf dem Linux-System angezeigt.

blktrace & blkparse

blktrace ist besonders nützlich, da es schichtweise Informationen aus dem Inneren der Block-E/A-Schicht liefert. Bei korrekter Verwendung ist es möglich, Ereignisse für alle E/A-Anforderungen zu generieren und diese von ihrem Entstehungsort aus zu überwachen. Obwohl es Daten aus dem Kernel extrahiert, handelt es sich nicht um ein Analysewerkzeug, und die Interpretation der Daten kann komplex sein. Entwickler können die Ausgabe von blktrace in Werkzeuge wie btt oder blkparse einspeisen, um die Analyse durchzuführen.

Ein eMMC-Speichergerät besteht aus NAND-Flash-Chips und einem „Gerätecontroller“. Der Controller ist das Herzstück des Geräts und dient dazu, die E/A-Lese- und Schreibvorgänge zu optimieren, damit Leistung und Lebensdauer bei der Verwendung mit modernen Betriebssystemen optimal sind.

Zu den wichtigsten Funktionen des Controllers gehören Blockverwaltung, Garbage Collection, Fehlerkontrolle und Wear Levelling. Für ein umfassendes Verständnis der NAND-Flash-Verwaltung kann es für den Leser hilfreich sein, sich näher mit diesen Themen zu befassen.

1)Der in JEDEC v5.0 eingeführte Jedec-Standard für Gesundheitsberichte gibt die geschätzte Restlebensdauer in 10-Prozent-Schritten an, ist jedoch nicht sehr detailliert. Er ist ein nützliches Werkzeug für den laufenden Betrieb, um eine grobe Einschätzung des Verschleißes eines Geräts zu erhalten, eignet sich jedoch nicht besonders gut als Diagnosewerkzeug vor der Bereitstellung, um die mit einem vorzeitigen Verschleiß des Flash-Speichers verbundenen Risiken vollständig zu verstehen und zu bewerten.

2)eMMC-Geräte enthalten herstellerspezifische Register, die nützliche Echtzeitdaten wie die Anzahl der Blocklöschungen und die erhöhte Anzahl fehlerhafter Takte anzeigen.

Da diese je nach Anbieter variieren können, kann es etwas Zeit in Anspruch nehmen, genau herauszufinden, wie Gerätecontroller abgefragt werden können. Die expliziten Befehle sind manchmal nicht im Benutzerhandbuch enthalten und/oder nur unter NDA verfügbar.

Das Tool „mmc-utils” in Linux ist Teil dieser Geschichte – es wird häufig verwendet, um eMMC-Geräte von Linux aus abzufragen, um Folgendes zu erreichen:

  • Legen Sie den Schreibschutzstatus des eMMC fest.
  • Erstellen Sie eine universelle Partition.
  • Die eMMC-H/W-Reset-Funktion dauerhaft aktivieren/deaktivieren.
  • CSD-Informationen (kartenspezifische Daten) drucken und analysieren.
  • ExtCSD-Informationen (Extended Card Specific Data) drucken und analysieren.

Die letzten beiden Punkte der obigen Liste sind für diesen Artikel am relevantesten, da sie einen allgemeinen Überblick darüber geben, wie Informationen von einem eMMC-Chip gedruckt/gelesen werden können, insbesondere solche, die sich auf den Zustand des Geräts beziehen.

Leser, die sich für die genauesten Details zu diesem Thema interessieren, sollten sich nun an den Hersteller oder die Dokumentation des Herstellers für das von ihnen gewählte NAND-Flash-basierte Gerät wenden, um zu erfahren, welche gesundheitsbezogenen Daten enthalten sind und wie man darauf zugreifen kann. „CMD56” ist ein häufig verwendeter generischer Befehl für diese Informationen.

Aufgrund der Unwägbarkeiten und Komplexität der oben genannten Punkte hat Robustel die Anwendung „Flash Manager“ entwickelt, die auf allen Gateways der EG5000-Serie läuft und es Kunden ermöglicht, auf einfache Weise nützliche Informationen zum Zustand des eMMC abzurufen. Mehr dazu in Kapitel 6.

Aufgrund der Unwägbarkeiten und Komplexität der oben genannten Punkte hat Robustel die Anwendung „Flash Manager“ entwickelt, die auf allen Gateways der EG5000-Serie läuft und es Kunden ermöglicht, auf einfache Weise nützliche Informationen zum Zustand des eMMC abzurufen. Mehr dazu in Kapitel 6.

Eine gute grobe Annäherung an die geschätzte Lebensdauer eines Geräts ist TBW = Total Bytes Written (Gesamtzahl der geschriebenen Bytes). Die maßgebliche Gleichung lautet wie folgt:

TBW = DC * EF / WAF

Wo:

DC = Gerätekapazität in Byte

EF = Endurance Factor (Ausdauerfaktor) = maximale Programmier-/Löschzyklen (gemäß Definition des Flash-Typs – 3000 für typischen MLC-NAND-Flash, wie er in Robustel-Produkten verwendet wird)

WAF = Schreibverstärkungsfaktor (anwendungs-/einrichtungsspezifisch)

Eine einfache Analyse der obigen Angaben zeigt, dass DC und EF groß und WAF klein sein sollten, um die bestmögliche TBW oder „Lebensdauer“ der Flash-Geräte zu erzielen. Wir werden nun diese Konzepte im Detail erläutern und erklären, wie eine maximale Lebensdauer erreicht werden kann.

  • DC = Gerätekapazität

Das ist ein einfaches Konzept. eMMC werden in den üblichen Größen von 1 GB, 2 GB, 4 GB usw. geliefert.

Die Wahl eines Geräts, das im Vergleich zu den Anforderungen des Betriebssystems/der Anwendung über viel zusätzliche Kapazität verfügt, ist eine einfache Möglichkeit, eine höhere Ausdauer zu erzielen. Dies wird als „Over-Provisioning“ bezeichnet.

  • EF = Ausdauerfaktor

Abbildung 1.1 zeigt typische Werte hierfür in der Zeile „P/E-Zyklen”. Die meisten gängigen eMMC-Geräte verwenden „MLC”-NAND-Flash mit einem EF von 3000.

Es ist möglich, auf ein „SLC”-NAND-Flash-Gerät umzusteigen, um dank der 100.000 P/E-Zyklen von SLC eine erhebliche und direkte Steigerung der Lebensdauer zu erzielen. Aufgrund der Kosten wird dies jedoch bei kostengünstigen IoT-Geräten mit hohem Volumen nicht häufig genutzt.

Mit den höchsten „Kosten pro Bit“ aller Flash-Typen wird SLC in der Regel nur in Anwendungen mit hoher Kritikalität wie Militär, Luft- und Raumfahrt und Unternehmens-IT eingesetzt.

Die Entscheidung für den Produktdesigner ist hier einfach: Entweder teures SLC verwenden, um die Lebensdauer zu erhöhen, oder MLC-NAND-Flash intelligent einsetzen. Die meisten Verbraucher-/Industrieanwendungen wenden das letztere Prinzip an.

  • WAF = Schreibverstärkungsfaktor

Dieses gesamte Whitepaper und seine Ziele basieren auf diesem entscheidenden Konzept.

Das Verständnis und die anschließende Reduzierung der WAF Ihrer Anwendungssoftware ist der kostengünstigste Weg, um die Ausdauer zu verbessern, aber es handelt sich dabei nicht um ein triviales Konzept.

Write Amplification (WA) ist ein unerwünschtes Phänomen, das bei Flash-Speichern und Solid-State-Laufwerken (SSDs) auftritt, bei dem die tatsächlich physisch auf das Speichermedium geschriebene Informationsmenge ein Vielfaches der logischen Menge ist, die geschrieben werden soll.

Da Flash-Speicher vor dem Überschreiben gelöscht werden muss und der Löschvorgang im Vergleich zum Schreibvorgang eine viel gröbere Granularität aufweist, führt die Durchführung dieser Vorgänge dazu, dass Benutzerdaten und Metadaten mehr als einmal verschoben (oder überschrieben) werden. Das Überschreiben einiger Daten erfordert daher, dass ein bereits verwendeter Teil des Flash-Speichers gelesen, aktualisiert und an einen neuen Speicherort geschrieben wird, wobei der neue Speicherort zunächst gelöscht werden muss, wenn er zuvor verwendet wurde. Aufgrund der Funktionsweise von Flash-Speichern müssen viel größere Teile des Flash-Speichers gelöscht und überschrieben werden, als es aufgrund der Menge der neuen Daten tatsächlich erforderlich wäre. Dieser Multiplikatoreffekt erhöht die Anzahl der während der Lebensdauer der SSD erforderlichen Schreibvorgänge, was die Zeit verkürzt, in der sie zuverlässig betrieben werden kann. Die erhöhten Schreibvorgänge verbrauchen auch Bandbreite zum Flash-Speicher, was die Schreibleistung der SSD verringert. Viele Faktoren beeinflussen die WA einer SSD; einige können vom Benutzer gesteuert werden, andere sind eine direkte Folge der auf die SSD geschriebenen Daten und ihrer Nutzung.

Oben finden Sie den Anfang eines ausgezeichneten Artikels zu diesem Thema auf Wikipedia – siehe: http://en.wikipedia.org/wiki/Write_amplification

Wir empfehlen dem Leser, sich Zeit zu nehmen, um diesen Artikel zu lesen, insbesondere den Abschnitt „Faktoren, die den Wert beeinflussen“, da hier einige detaillierte Konzepte beschrieben werden, die Entwickler nutzen können, um die WAF zu verringern und somit die Lebensdauer von eMMC zu verlängern.

Eine der einfachsten Möglichkeiten für Anwendungsentwickler, ihre Software zu optimieren, besteht darin, große und sequenzielle Festplatten-Schreibvorgänge zu fördern, anstatt kurze und zufällige. Dies trägt dazu bei, den WAF im typischen Bereich von 4 bis 8 zu halten, im Gegensatz zu einigen Anwendungen, deren WAF deutlich höher sein kann.

Es kann hilfreich sein, Ihr System unter der Annahme eines sehr schlechten WAF-Werts von 20 zu entwickeln. Wenn Ihre Berechnungen zeigen, dass Ihr NAND-Flash-Gerät über eine ausreichende Lebensdauer für die gesamte Projektlaufzeit verfügt, können Sie ziemlich sicher sein, dass das Ergebnis positiv ausfallen wird.

A – Überversorgung

Eine der einfachsten Methoden, um den Verschleiß von NAND-Flash zu verhindern, besteht darin, mehr davon zu verwenden. Das Gateway EG5100 von Robustel verfügt über 8 GB und das EG5120 über 16 GB eMMC-NAND-Flash. Dies ist eine relativ große Speicherkapazität für solche Geräte, was die Grundkosten des Produkts in die Höhe treibt, aber es ist eine der einfachsten und effektivsten Methoden, um die Lebensdauer zu verlängern.

Wenn wir für das EG5100 und das EG5120 jeweils einen typischen WAF von 6 verwenden, erhalten wir folgende Werte für die Lebensdauer (TBW):

EG5100 – (8589934592 x 3000/6) = 3,9 TBW

EG5120 – (17179869184 x 3000/6) = 7,8 TBW

Wenn wir von einer Produktlebensdauer von 5 Jahren ausgehen,

Das sind 5 x 365 = 1825 Tage.

Das bedeutet, dass der EG5120 über einen Zeitraum von 5 Jahren täglich 7,8/1825*1024 = 4,4 GB an Schreibvorgängen verarbeiten könnte.

Bei einer schlecht implementierten Software mit einer WAF von 18 würde diese Zahl jedoch auf ein Drittel sinken, sodass nur 1,5 GB pro Tag geschrieben werden könnten, was nur 64 MB pro Stunde entspricht – eine relativ geringe Menge für ein modernes Betriebssystem.

B – Verstärkung des Schreibens verstehen

Ermutigen Sie Ihre Anwendungsentwickler, diesen ausgezeichneten Artikel zu lesen: https://en.wikipedia.org/wiki/Write_amplification

Wir könnten uns keine bessere Darstellung dieses Themas wünschen, also nutzen Sie sie bitte optimal!

C – Verwenden Sie pSLC, um die Ausdauer zu steigern.

Wie die meisten Hersteller von Embedded-PCs verwendet Robustel MLC-NAND-Flash, um die Kosten wettbewerbsfähig zu halten. Robustel bietet jedoch auch „pSLC“ für Anwendungen an, bei denen Bedenken hinsichtlich der Lebensdauer des Systemspeichers (NAND-Flash) für Anwendungen mit langer Lebensdauer bestehen.

Dies ist bei Robustel auf „Projektbasis“ erhältlich – Ihr Robustel-Vertreter kann Ihnen weitere Informationen geben.

D – Sonstige Überlegungen

i) Eine einfache Möglichkeit, die Lebensdauer von Flash zu verbessern, besteht darin, „Debug“- und „Logging“-Informationen zu begrenzen, da diese oft spontan geschrieben werden.

ii) Entwerfen Sie Ihre Anwendung so, dass für Daten, die sich nicht häufig ändern, einmalig beschreibbare Muster verwendet werden. Wenn Daten nur angehängt und nie geändert werden, reduziert dies den Verschleiß.

iii) Es wird nicht empfohlen, die Daten im NAND-Flash fast bis zur Kapazitätsgrenze zu füllen, da dadurch mehr Programmier-/Löschzyklen erforderlich sind, um Daten zu verschieben, bevor genügend Seiten zum Löschen markiert sind.

iv) Denken Sie daran, dass die von Ihnen gewählten spezifischen Strategien von der Art Ihrer Anwendung und der Art der verwalteten Daten abhängen können.

Alle Gateways der EG5000-Serie (und anderer RobustOS PRO-Serien) von Robustel verfügen über eine „Flash Manager“-Funktion, mit der Entwickler den NAND-Flash-Status schnell ermitteln können, ohne detaillierte Kenntnisse über Linux-Befehle zur Abfrage von Flash-Geräte-Controllern zu benötigen.

Mit Flash Manager können Kunden ein Image auf einer EG5000-Serie bereitstellen und die NAND-Flash-Leistung vor und nach einer Betriebsphase unter „typischen“ Bedingungen messen.

Durch den Vergleich des NAND-Flash-Zustands vor und nach der Nutzung und die Extrapolation dieser Abnutzungsrate auf die erwartete Produktlebensdauer können Produktentwickler schnell feststellen, ob ihre Software auf einfühlsame Weise auf eMMC schreibt und die Produkte nicht aufgrund von NAND-Flash-Abnutzung vorzeitig ausfallen.

Robustel fragt sowohl den JEDEC-Standard-Gesundheitsstatus als auch herstellerspezifische Register ab, um einen möglichst detaillierten Überblick zu erhalten.

Durch den Vergleich aufeinanderfolgender Momentaufnahmen mit der verstrichenen Zeit können Anwendungsentwickler ein Gefühl für die tatsächliche Lebensdauer bekommen und sich vergewissern, dass die Hardware und Software für die erforderliche Lebensdauer des Projekts ausreichen.

Detaillierte Übersicht über den Flash-Manager

Durch den Vergleich aufeinanderfolgender Momentaufnahmen mit der verstrichenen Zeit können Anwendungsentwickler ein Gefühl für die tatsächliche Lebensdauer bekommen und sich vergewissern, dass die Hardware und Software für die erforderliche Lebensdauer des Projekts ausreichen.

A – Statusbildschirm

Wie im folgenden Screenshot zu sehen ist, zeigt der Statusbildschirm eine laufende Summe nützlicher NAND-Flash-Parameter an. Diese werden in Kürze näher erläutert.

B – Flash-Speichertests

Ein Flash-Speichertest kann vom Benutzer für einen Zeitraum von bis zu 14 Tagen durchgeführt werden.

Es kann manuell gestartet oder für einen bestimmten Zeitpunkt geplant werden.

Das Ergebnis eines Tests ist eine CSV-Datei mit einem detaillierten Vergleich des NAND-Flash-Status zu Beginn und am Ende des Tests. Dieses Ergebnis kann analysiert und auf die Nutzungsdauer der Systemimplementierung hochgerechnet werden.

C – Analyse der Testergebnisse

Die Ausgabe eines Tests entspricht der untenstehenden CSV-Datei. Im Folgenden erläutern wir die Bedeutung und den Sinn jeder Zeile.

  • Geschätzte verbleibende Lebensdauer des Geräts = Dies ist eine grobe Schätzung der voraussichtlichen verbleibenden Lebensdauer eines NAND-Flash-Geräts. Sie basiert auf dem JEDEC-Standard JESD84-A43.
  • Gesamtmenge der gelöschten Flash-Daten (MB) = Gesamtmenge der während des Tests gelöschten Daten, basierend auf der Gesamtzahl der gelöschten Blöcke multipliziert mit der Blockgröße.
  • Gesamtzahl der gelöschten Blöcke = Die Gesamtzahl der Blocklöschvorgänge während des Tests. Dies ist wohl die mit Abstand wichtigste Variable, um ein Gefühl dafür zu bekommen, wie gut Ihr Gerät mit der derzeit laufenden Software überleben wird.
  • Blockgröße (MB) = Blockgröße des NAND-Flash-Geräts (in der Regel eMMC) gemäß der aktuellen Konfiguration. Ein Block besteht aus einer Reihe von „Seiten“.
  • Gesamtzahl der Blöcke = Gesamtzahl der Blöcke, aus denen der NAND-Flash besteht.
  • Durchschnittliche Flash-Löschanzahl = Durchschnittliche Anzahl der Blocklöschvorgänge pro nutzbarem Block Die maximale durchschnittliche Löschanzahl beträgt 3000 für MLC-NAND-Flash.
  • Durchschnittliche Flash-Löschrate = Durchschnittliche Anzahl der Löschvorgänge geteilt durch die Gesamtzahl der Blöcke.
  • Anzahl fehlerhafter Flash-Blöcke = Gesamtzahl der vom Flash-Controller erkannten „fehlerhaften Blöcke”.
  • Anzahl fehlerhafter Blöcke erhöhen = Wie viele Blöcke wurden während des Tests als „fehlerhaft“ eingestuft?
  • Power On Count = Wie oft wurde das NAND-Flash-/eMMC-Gerät eingeschaltet?
  • Verbrauch reservierter Blöcke = Wenn ein fehlerhafter Block entsteht, wird dieser durch einen reservierten Block ersetzt, um die Zuverlässigkeit des NAND-Flashspeichers zu gewährleisten. Nachdem alle reservierten Blöcke zum Ersetzen fehlerhafter Blöcke verwendet wurden, können bei Entstehung weiterer fehlerhafter Blöcke keine reservierten Blöcke mehr zum Ersetzen verwendet werden.
  • Kapazität (MB) = Gesamtkapazität des Geräts – ändert sich nicht. Nur als Referenz.
  • Geschriebene Daten (MB) = Gesamtmenge der während des Tests auf das Gerät geschriebenen Daten (gemessen vom Controller).
  • Gelöschte Daten (MB) = Gesamtmenge der während des Tests vom Gerät gelöschten Daten (gemessen vom Controller).
D – Anwendung der Ergebnisse des Flash-Managers

Anhand der Start- und Endwerte aus dem Bericht lässt sich leicht abschätzen, wie sich die Anwendung des Benutzers über einen längeren Zeitraum auf den Zustand des Flash-Speichers der EG5000-Serie auswirken wird, indem die über die Testdauer erzielten Ergebnisse extrapoliert werden.

Anhang A – Garantiebedingungen für Produkte der Serie EG5000

„Robustel-Gateways haben standardmäßig eine Garantie gegen vorzeitigen Ausfall innerhalb der ersten zwei Jahre ihrer Lebensdauer, jedoch sind Ausfälle aufgrund übermäßiger Abnutzung/Nutzung des NAND-Flash-Speichers NICHT durch die Standardgarantie abgedeckt. Unter bestimmten Umständen ist ein Austausch des eMMC-Moduls möglich, dies ist jedoch immer eine kostenpflichtige Dienstleistung, die nach alleinigem Ermessen von Robustel angeboten wird.“

Beim Management der Flash-Lebensdauer geht es nicht nur darum, die Lebensdauer der Hardware zu verlängern, sondern auch darum, IoT-Systeme aufzubauen, auf die sich Ihr Unternehmen langfristig verlassen kann. Bei Robustel kombinieren wir fundiertes Branchenwissen mit bewährten Tools wie Flash Manager, damit Sie Risiken vorhersehen, Kosten senken und einen reibungslosen Betrieb gewährleisten können. Werden Sie noch heute unser Partner und gewinnen Sie einen zuverlässigen Verbündeten, der Sie durch die Komplexität des industriellen IoT begleitet.