Komplexe IoT-Systeme Welche Flash-Speichertechnologie ist die richtige?

Eine microSDHC-Karte (links) und die neue UFS-Karte (rechts). Die UFS-Karte unterstützt die doppelte Geschwindigkeit von microSDHC-Karten mit differenzieller bidirektionaler Datenübertragung.

Die Verarbeitungsanforderungen komplexer IoT-Systeme erfordern inzwischen oft ein vollständiges Embedded-Betriebssystem.

Je umfassender bei bestimmten IoT-Anwendungen die Vorverarbeitung am entfernten IoT-Knoten ist, desto weniger Daten muss der IoT-Knoten zurück an den zentralen Hub senden. Dadurch wird im Netzwerk Bandbreite für andere Aufgaben frei. Die komplexe Vorverarbeitung wird von einem vorgetesteten Embedded-Betriebssystem unterstützt, das viele einzelne Aufgaben effizient handhabt und Multitasking auf vorhersagbare (deterministische) Weise ausführt. Natürlich werden dadurch zusätzliche Anforderungen an den Mikrocontroller gestellt: Höhere Taktgeschwindigkeiten und – noch wichtiger – mehr Programmspeicher sind erforderlich.

Ein eingebettetes kommerzielles oder Open-Source-Standardbetriebssystem bietet auch den Vorteil eines soliden, vorgetesteten Codes, der nur selten aktualisiert werden muss. Zum Beispiel werden die verfügbaren Embedded-Betriebssysteme von Linux nur vierteljährlich bzw. mit Notfall-Sicherheitspatches aktualisiert. Ein Embedded-Betriebssystem mit dem erforderlichen Anwendungscode kann 8 GB oder mehr erfordern. Da das Betriebssystem nur selten aktualisiert wird, kann es sinnvoller sein, es auf einer microSDHC-Flash-Karte unterzubringen, die dann von einem Techniker manuell (physisch) aktualisiert wird. In einem solchen System kann auch der Speicher bei Bedarf bequem erweitert werden. Zum Beispiel kann eine vorhandene 4-GB-Flash-Karte beim nächsten Besuch des Technikers einfach durch eine Karte mit 8 GB oder mehr ersetzt werden.

Das Speichern von Gigabytes eines Embedded-Betriebssystems auf einer microSDHC-NAND-Flashkarte, die physisch aktualisiert wird, hat mehrere Vorteile gegenüber einem Flash-Speicher, der über ein drahtloses Netzwerk aktualisiert wird. Beim Aktualisieren eines eingebetteten Betriebssystems von 4 GB oder mehr wird in einem drahtlosen Netzwerk – je nach verwendetem Arbitrierungsschema – die Bandbreite für operative Kommunikation mehr oder weniger eingeschränkt. Die Aktualisierung über ein Netzwerk erfordert auch eine microSDHC-Karte mit doppelter Kapazität, da genug Speicherplatz sowohl für das laufende Betriebssystem als auch für das eingehende Update vorhanden sein muss.

Zudem reduziert die Aktualisierung des Flash-Codes über Funk auch die Batterielaufzeit – wegen der Funkaktivität und der höheren Spannungen und Leistungsanforderungen, die für das Schreiben auf dem Flash erforderlich sind.

Ein eingebettetes Betriebssystem, das von einem Flash-Speicher ausgeführt wird, stellt auch andere Anforderungen an die Flash-Speicherzellen als die reine Datenspeicherung. Die meisten kommerziellen microSDHC-Flash-Karten sind nur für die Datenspeicherung ausgelegt. Sie werden häufig als Multimedia-Speicher für mobile Geräte eingesetzt. Während Bitfehler in einer Video-, Bild- oder Audiodatei für den Endnutzer in der Regel unbemerkt bleiben, kann ein einzelner Bitfehler in einer wichtigen Betriebssystem-Datei zu einem Totalausfall des Systems führen.

Zudem haben Flash-Speicher nur eine begrenzte Lebensdauer. Jeder Schreibvorgang auf einem Flash-Speicher-Array lässt das Array altern. In den Spezifikationen von Halbleiter-Flash-Speichern ist deshalb eine begrenzte Anzahl von Lösch- und Schreibzyklen angegeben. Wenn sich die Flash-Zelle dem angegebenen Grenzwert nähert, fällt sie mit immer größer werdender Wahrscheinlichkeit aus und nimmt keinen neuen Programmierzustand mehr an.

Eine übliche Methode zur Verlängerung der Lebensdauer von Flash-Arrays wird als Verschleißnivellierung oder Wear-Leveling bezeichnet. Anstatt immer den gleichen Flash-Speicherort zu beschreiben, werden dabei die Schreibvorgänge gleichmäßig über das gesamte Halbleiter-Flash-Speicher-Array verteilt. Dies sorgt für eine gleichmäßige Verteilung der Schreibvorgänge über die Flash-Speichermatrix. Während der Mikrocontroller immer eine einzelne Stelle im physischen Speicher beschreibt, kann der Flash-Controller per Verschleißnivellierung an verschiedenen Stellen des Flash-Speicher-Arrays denselben Speicherort abbilden.