Eine Kingston eMMC-Einheit vor einem schwarzen Gehäuse.

Schätzung, Validierung und Überwachung des eMMC-Lebenszyklus

Vom NAND-Bus gesteuerte Prozesse

Ein NAND-Flashspeicher ist kein einfaches Lese-/Schreibmedium. Für eine zuverlässige Nutzung sollten mehrere Algorithmen implementiert werden: NAND-Block-Management, Garbage Collection, Fehlerkontrolle (Error Control - EC) und Wear Leveling. Moderne NAND-Flash werden mit Algorithmen auf dem Speichergerät verwaltet, die nicht im Host-Prozessor implementiert sind. Dies kommt den Nutzern zugute, da die NAND-Verwaltung für den Host weniger komplex ist und die Produktunterstützung und -wartung vereinfacht wird.

Host-Schreibvorgänge auf NAND-Flash weisen Ineffizienzen auf, die zu einem früheren Ausfall des Mediums führen können. Die kleinste Organisationseinheit von NAND ist die Seite, die gelesen und programmiert, aber nicht gelöscht werden kann. Die einzige Organisationseinheit, die gelöscht werden kann, ist aber der Block, der aus mehreren Seiten besteht. Daher können Seiten erst dann überschrieben werden, wenn ein Block gelöscht wird. Blöcke können mit der Zeit versagen, wenn ihre Lebensdauergrenze erreicht ist. Außerdem können Defekte auftreten, die zu frühzeitigen Ausfällen führen.

NAND-Flashspeicher verfügen nur über eine begrenzte Anzahl von Programm-Löschzyklen. Wird diese Grenze erreicht, befindet sich der Baustein im EoL-(End-of-Life - Ende der Lebensdauer-)Zustand, d. h. er ist nicht mehr zuverlässig. Die Lebensdauer hängt von der Konfiguration der NAND-Zellen ab.

Single-Level Cell-Konfiguration: Diese Einzelstufen-Zellenkonfiguration bietet die höchste Lebensdauer und die größte Fehlertoleranz.

eMMC LBA 512B Sector Address

NAND Page & Block Address
0:31 Blk10, Pg101
32:63 Blk10, Pg102
64:95 Blk10, Pg103
96:127 Blk10, Pg104
128:159 Blk15, Pg57
160:191 Blk8, Pg129
192:223 Blk10, Pg107
224:255 Blk22, Pg88

eMMC liest und schreibt in 512-Byte-Sektoreinheiten, die logisch und nicht physisch sind. Sektoradressen werden als logische Blockadressen (LBAs) bezeichnet. Wenn Daten geändert werden, ist es unpraktisch, den gesamten NAND-Block zu löschen, was zu einem ineffizienten Verschleiß von Seiten führt, die sich nicht geändert haben. Ein LBA-PBA-Zuordnungsschema (PBA - Physical Block Address) bietet kleinere Schreibvorgänge, um die Blockabnutzung auszugleichen, eine Praxis, die als Wear Leveling bezeichnet wird. Mithilfe einer Adressübersetzungstabelle werden die LBAs auf die PBAs abgebildet. Dieser Prozess gleicht die Blockabnutzung aus und verbessert die Schreibgeschwindigkeit.

Der Prozess der Adresszuordnung funktioniert wie folgt:

  • eMMC-Sektoren sind 512 Bytes groß, während NAND-Seiten 16 kb groß sind. Eine Zuordnungstabelle fasst 32 sequentielle Sektoradressen zu einer seitengroßen Einheit zusammen.
  • Wenn ein Sektor in einer Seitengruppe geändert wird, liest der Controller die gesamte Sektorengruppe für diese Seite, aktualisiert alle geänderten Sektoren und programmiert dann neue Daten zurück auf eine neue Seite.
  • Nach dem Programmieren der aktualisierten Seite wird die Tabelle aktualisiert, wobei der vorherige Eintrag mit der Block- und Seitenadresse der aktualisierten NAND-Seite überschrieben wird.
  • Selbst wenn nur ein Sektor geändert wurde, muss NAND-Flash eine ganze Seite programmieren. Diese Ineffizienz wird als „Write Amplification (Schreibverstärkung)“ bezeichnet. Das Verhältnis von NAND-Flash-Schreibvorgängen zu eMMC-Schreibvorgängen auf Bausteinebene ist der WAF (Write Amplification Factor - Schreibverstärkungsfaktor).

Kleine, zufällige, nicht seitenweise ausgerichtete Überschreibungen sind in der Regel die größte Quelle für die Schreibverstärkung. Zum Minimieren des WAF sollten Schreibvorgänge an einer Seitengrenze in Vielfachen von Seitengrößeneinheiten ausgerichtet werden. Diese optimale Einheitsgröße ist im Feld „Optimal Write Size (Optimale Schreibgröße)“ des erweiterten CSD-Registers zu finden.

Die Formel für die Ermittlung von Gesamtzahl an geschriebenen Bytes, oder TBW, ist einfach:

(Bausteinspeicherkapazität (Device Capacity - DC) * Lebensdauerfaktor (Endurance Factor - EF)) / WAF = TBW

Häufig liegt der WAF zwischen 4 und 8, aber das hängt vom Schreibverhalten des Hostsystems ab. Große sequentielle Schreibvorgänge ergeben beispielsweise einen niedrigeren WAF, während zufällige Schreibvorgänge von kleinen Datenblöcken einen höheren WAF ergeben. Diese Verhaltensweise kann häufig zu einem frühzeitigen Ausfall von Speichergeräten führen.

Eine 4GB eMMC mit einem Lebensdauerfaktor EF von 3000 und einem WAF von 8 entspricht beispielsweise:

(4GB * 3000) / 8 = 1,5TB

Die Gesamtzahl der geschriebenen Bytes auf dem eMMC-Baustein beträgt 1,5TB. Daher können während des Lebenszyklus des Produkts 1,5TB an Daten geschrieben werden, bevor es seinen EoL-Zustand erreicht.

Schätzen Sie für Ihren TBW-Bedarf die tägliche Nutzung des betreffenden Bausteins. Beispiel: Für eine Arbeitslast mit 500MB täglicher Schreibnutzung (und einem geplanten Lebenszyklus von 5 Jahren) wird ein Baustein benötigt, der eine TBW von mehr als 915GB erreichen kann:

0,5GB * 365 = ca. 183GB pro Jahr, oder 915GB über 5 Jahre

Die TBW kann zur Bestimmung des maximal zulässigen WAF für einen Baustein verwendet werden, da TBW = (DC * EF) / WAF. Wenn die Nutzungsdauer Ihres Geräts die für Ihre Produktanwendung angestrebte TBW nicht erreicht, können Sie versuchen, sie zu verbessern. Ziehen Sie den Pseudo-Single-Level-Cell-Modus in Betracht, der die Lebensdauer um das Zehnfache erhöhen kann, indem er den Modus des Bausteins von TLC oder MLC in den Single-Bit-pro-Zelle-Modus umwandelt. Dies führt jedoch zu einer drastischen Verringerung der Speicherkapazität: Um 50 % für einen MLC-Baustein mit zwei Bit pro Zelle und um über 66 % für einen TLC-Baustein mit drei Bit. Wenn diese Lösung für Sie nicht zufriedenstellend ist, hilft es auch, einen größeren Baustein zu wählen, der die gleiche Arbeitslast bewältigt. Ein Baustein mit der doppelten Kapazität verfügt auch über die doppelte TBW.

Die Kingston eMMC-Algorithmen erreichen einen niedrigen Schreibverstärkungsfaktor. Wir bieten mehrere Konfigurationen an, um Leistung, Lebensdauer und Zuverlässigkeit in Einklang zu bringen. Das Alter des Bausteins kann mithilfe der JEDEC-Tools zur Schätzung der Lebensdauer überwacht werden, die in der EXT_CSD hinterlegt sind, eine Funktion, über die alle eMMC-Bausteine verfügen. Die Lebensdauer wird in Schritten von 10 % auf der Grundlage der Lebensdauer des Bausteins angegeben. Ein Tool meldet das Alter von TLC- oder MLC-konfigurierten NAND-Flash-Blöcken, das andere das Alter von Blöcken, die im Pseudo-SLC-Modus konfiguriert sind. Kingston eMMC-Bausteine verfügen auch über Herstellerbefehle, um das durchschnittliche Blockalter des Bausteins zu ermitteln. Diese sind präziser als die JEDEC-Tools, erfordern aber etwas Software-Entwicklung für den Einsatz. Alternativ können Sie einen gealterten Baustein für eine umfassendere Analyse an Kingston einsenden.

#KingstonIsWithYou

promo embedded

Fragen Sie einen Experten

Die Planung der richtigen Lösung erfordert das Verständnis Ihres Projekts und der Systemvoraussetzungen. Kingston Experten zeigen Ihnen wie's geht.

Fragen Sie einen Experten

Zugehörige Videos

Verwandte Artikel