Einige Hersteller arbeiten mit Byte-Programmierung und verzögerter Programmierung vom Puffer in den Flash-Speicher. Auch wenn diese Techniken die Programmierung des Bausteins vereinfachen, ändern sie nichts an den grundsätzlichen Beschränkungen der Wiederbeschreibbarkeit von Flash. Um diesen Einschränkungen entgegenzuwirken, muss der Systementwickler ein komplexes Dateisystem implementieren, das den Verschleiß gleichmäßig auf alle Zellen verteilt. Das führt jedoch zu zusätzlichem Rechenaufwand, der das System ausbremst. Ähnliche Nachteile gibt es bei EEPROM.
Bei Cypress Semiconductor wurden drei Systeme mit FeRAM, EEPROM und Flash entworfen, die die Datenprotokollierung eines typischen IoT-Sensors emulieren, der die Daten von Parametern wie Temperatur, Feuchtigkeit, Druck und Beschleunigung erfasst (Bild 3). Diese Systeme wurden hinsichtlich der Intervalle zwischen den Verbindungen optimiert und arbeiten mit identischen Algorithmen zur lokalen Speicherung. Der Einfachheit halber wurden lange Intervalle von vier Sekunden zwischen den BLE-Übertragungen und eine Datenerfassungsrate von 100 Byte/s gewählt. Jedes Sample besteht aus einem Schnappschuss aller Sensordaten sowie einigen Verwaltungs-Bytes.
Die Stromaufnahme wird mit einer Onboard-Stromüberwachung während der folgenden Phasen präzise erfasst:
Für diese Analyse wurden ein 64-Mbit-Flash-Speicher, ein 256-Kbit-EEPROM und ein 4-Mbit-Excelon-FeRAM von Cypress eingesetzt. Der Flash-Baustein wurde zu Beginn des Experiments gelöscht. Er unterstützt 512 Bytes/Seite. Beim EEPROM sind es 60 Bytes/Seite. Das FeRAM ist ein byteweise beschreibbarer Speicher mit äußerst niedrigem Energiebedarf, das weder vorher gelöscht noch seitenweise beschrieben werden muss. Tabelle 1 zeigt unter anderem die Energieaufnahme des Sensorknotens, abhängig vom eingesetzten Speichertyp. Die Systeme wurden so konfiguriert, dass sie alle vier Sekunden rund 500 Bytes hochladen, und der Strom wurde 120 Sekunden lang überwacht. Alle drei Systeme zeigen einen identischen Datendurchsatz. Der einzige Unterschied besteht beim Algorithmus zum Schreiben der Daten in den Speicher:
Das Ergebnis ist, dass ein System mit EEPROM etwa 22 % mehr Energie aufnimmt als ein System mit FeRAM, während ein Sensorknoten mit Flash-Speicher rund 140 % mehr Energie benötigt als ein System mit FeRAM. Wenn man sich das Muster der Stromaufnahme in Bild 4 näher ansieht, wird schnell klar, warum Flash in solchen Anwendungen so schlecht abschneidet. Der Overhead bei der Programmierzeit verdoppelt praktisch die Dauer der Energieaufnahme des Systems.
Zusätzlich zum großen Overhead beim Stromverbrauch leidet ein System mit Flash oder EEPROM außerdem unter den Nachteilen dieser Technologie, insbesondere hinsichtlich der Wiederbeschreibbarkeit und der Leistungsaufnahme beim Löschvorgang im Fall des Flash-Speichers. Flash-Bausteine haben eine begrenzte Wiederbeschreibbarkeit von ca. 105 Zyklen. Das System leidet außerdem unter dem Zeitverlust während der Löschvorgänge, da Flash-Bausteine eine erhebliche Zeit benötigen, um den Chip zu löschen. Die Energieaufnahme während des Löschvorgangs geht ebenfalls in das Energiebudget ein und reduziert die Energieeffizienz noch weiter. Bei Systemen mit Flash oder EEPROM kann im Fall eines unvorhergesehenen Ausfalls der Stromversorgung auch die Datenintegrität beeinträchtigt werden. Flash-Bausteine müssen seitenweise programmiert werden. Daher muss das System eine Seite Daten zwischenspeichern, bis es sie erfolgreich in den persistenten Bereich des Bausteins schreiben kann. Ein Ausfall der Spannungsversorgung während dieses Zeitraums kann zum Verlust mindestens einer Seite an Daten führen.
FeRAM, wie das Excelon FeRAM von Cypress, weist diese Einschränkung nicht auf und ist daher besonders geeignet für die Datenprotokollierung in IoT-Geräten. Die Wiederbeschreibbarkeit von FeRAM beträgt 1014 Schreib-/Lesezyklen. Es bietet eine sofortige nicht-flüchtige Speicherung und den byteweisen Zugriff. Sein geringer Schreib-/Lesestrom vom 2,4 mA, sein Stand-by-Strom von 2,3 μA und der Strom im Hibernate-Modus von 0,1 μA sorgen für die äußerst geringe Leistungsaufnahme, die bei batteriebetriebenen IoT-Geräten benötigt wird.
Girija Chougala
ist Staff Applications Engineer bei Cypress Semiconductor und arbeitet an verschiedenen nicht-flüchtigen Speicherprodukten (nvSRAM und FeRAM) und Systemlösungen. Zu Girijas Aufgaben gehören die Definition neuer Produkte, Systemanalyse, Erstellung von Validerungsplattformen, Demos von Lösungen, Entwickler-Kits, die Durchführung von Produktvalidierungen, das Lösen technischer Probleme für Kunden und die Erstellung technischer Unterlagen wie Datenblätter, Anwendungshinweise und Whitepapers.
Nilesh Badodekar
ist Anwendungsingenieur bei Cypress Semiconductor. Er hat einen Master in Visual Information Processing und Embedded Systems des Indian Institute of Technology, Kharagpur, Indien.