Nicht-flüchtiger Flash-Speicher zur Code- und Datenspeicherung ist heute ein wesentlicher Bestandteil in immer mehr Elektroniksystemen und Produkten, die von industriellen Steuerungen, Heim- und Büro-Vernetzung, Automatisierungstechnik bis hin zu Consumerelektronik und Kfz-Elektronik reichen. Da immer mehr Daten verwaltet werden müssen und die Funktionalität sowie Performance steigen soll – zusammen mit der Zuverlässigkeit – steigt auch der Druck auf die Entwickler, die optimale Flash-Lösung auszuwählen.
Embedded-Entwicklern steht heute eine Vielzahl diskreter Speicher-ICs und -Technologien zur Verfügung, aus denen sie aussuchen können. Früher war die Wahl des Flash-Speichers relativ einfach zwischen NOR und NAND, wobei NOR-Flash, da physikalisch größer, für die Code-Speicherung diente. Die geringen Kosten pro Bit und die kleine Chipgröße des NAND-Flash prädestinierte diesen für hochkompakten Speicher. Weiterentwicklungen im NAND-Bereich machen diesen Speicher nun auch zu einer Option für immer größer werdende Softwareprotokolle (Code) und Daten – nicht zuletzt in Designs, die schnelle Programmier- und Löschgeschwindigkeiten sowie hohe Effizienz und stromsparenden Betrieb erfordern.
NAND-Auswahl
Welche Kriterien treffen also nun auf die Wahl des NAND Flash zu? Erstens, sollte die Art der NAND-Flash-Technologie in Betracht gezogen werden. Hier fällt die Wahl zwischen Multi-Level Cell (MLC) oder Single-Level Cell (SLC). Dank der Möglichkeit, zwei (oder mehr) Bit pro Zelle zu speichern, bietet MLC offensichtliche Vorteile in Sachen Speicherkapazität pro Fläche. Im Gegensatz dazu speichert SLC nur ein Bit pro Zelle, bietet aber schnellere Lese-/Schreibgeschwindigkeiten und ist zuverlässiger. Generell wird SLC für Boot- und Anwendungssoftware bevorzugt, auch wenn hohe Anforderungen an die Robustheit und Langlebigkeit gestellt werden (im Bereich 60.000 bis 100.000 Lösch-/Programmierzyklen). In Anwendungen, in denen die Speicherdichte entscheidend ist, sorgt MLC mit Lösch- und Programmierzyklen im Bereich von einigen Tausend für die beste Lösung.
Immer mehrere Aspekte berücksichtigen
Bei der Wahl der richtigen Embedded-Speicherlösung sollten immer mehrere Aspekte mit berücksichtigt werden: die Lese- und Schreibgeschwindigkeit, das Gehäuseformat, die Speicherkapazität, die Größe und die zu erwartende Lebensdauer zählen zu den wichtigsten Punkten. Für Entwickler ist die Auswahl heute so groß, dass sie zwischen integriertem ECC und anderen Funktionen wählen können, um den idealen NAND-Flash-Speicher zu finden. Damit lassen sich nicht nur der Entwicklungsaufwand und die Kosten neuer Designs verringern, auch bestehende Anwendungen können durch Aufrüsten die Vorteile neuer Speichertechnologien optimal nutzen.
In jedem Fall steigt durch die zunehmenden Speicherkapazitäten auch die Größe der Halbleiterfläche, was wiederum zu höheren Kosten bei der jeweiligen Prozessgeometrie führt. Kleinere Prozessgeometrien ermöglichen dann kleinere Siliziumflächen als auch geringere Kosten. Hier entsteht der Druck auf Entwickler, sich für neueste Prozessgeometrien zu entscheiden.
Die zugrunde liegende Technologie ist aber nur ein Teil des Auswahlprozesses. Ein weiterer Aspekt ist die Integration eines Fehlerkorrekturcodes (ECC – Error Correction Code). ECC ist in der Mehrzahl der NAND-Flash-Designs erforderlich, um falsche Datenbitwerte (von den verbleibenden richtigen Werten) zu erkennen und zu korrigieren. Diese Falschwerte können durch Umgebungseinflüsse oder Verschleiß entstehen. Heute benötigen die meisten Hersteller mehr Fehlerkorrekturbit für MLC- als für SLC-Technologien. SLC benötigt nur 1-Bit-ECC – zumindest bei Speicherdichten bis zu 4 Gbit, die im 43-nm-Prozess gefertigt werden.
Dies ändert sich, da die Speicherprozesstechnik immer weiter entwickelt wird. Eine verbesserte Fehlerkorrektur ist erforderlich, wenn neue und kommende NAND-Flash-Speicher mehr als die 60.000 erwarteten Lösch- beziehungsweise Programmierzyklen garantieren sollen. Für SLC-NAND-Flash in 32- und 24-nm-Technologie sind nun mehr als 4 bzw. 8 Bit pro 512 Byte ECC erforderlich.
Der Entwickler steht vor der Wahl, ob er ECC in Software oder über einen zusätzlichen Hardware-Controller implementiert. In bestehenden Anwendungen, die SLC-NAND verwenden, zum Beispiel in der Industrie, in Kommunikationsprozessoren und in der Automobilelektronik, wird ein relativ geringer Overhead mit 1-Bit-ECC in der Host-Software hinzugefügt. Der Übergang zu 4- oder 8-Bit-ECC belastet den Prozessor und erfordert so viel Rechenleistung, dass es für eine Software-Implementierung unrentabel wird, den neuen Grad an Fehlerkorrektur zu handhaben. Das heißt, dass jenseits des 1-Bit-Levels die Implementierung neuer Hardware-NAND-Controller erforderlich ist, um die neuen, fortschrittlichen Speicher zu unterstützen.
Integrierter ECC und SLC-NAND
Bei neuen SLC-NAND-Lösungen steht den Entwicklern nun eine neue Option namens BENAND (Built-in ECC-NAND) zur Verfügung. Hier ist die ECC-Funktion bereits integriert. Wie aus Bild 2 ersichtlich, entlastet BENAND den Host-Prozessor um ECC (oder erübrigt einen zusätzlichen Hardware-Controller). Die Verwendung der gängigen NAND-Schnittstelle garantiert Kompatibilität zu universellem SLC-NAND-Flash, wenn es um den Befehlssatz, den Bausteinbetrieb, das Gehäuse und die Anschlusskonfiguration geht. Mit dieser Technik profitieren OEMs von den Kosten- und Platzeinsparungen, wie sie mit kleineren Prozessgeometrien einhergehen – ob in komplett neuen Designs oder beim Aufrüsten bestehender Anwendungen auf fortschrittlichere Speicherlösungen.
BENAND-Bausteine mit 4- und 8-Gbit-Kapazität sowie integrierten 4 Bit pro 512 Byte ECC und 32-nm-NAND-Flash sind bereits in verschiedenen Gehäuseformaten erhältlich. Die Seitengröße dieser Bausteine beträgt 4 KByte. Das Angebot wird demnächst erweitert auf 1- und 2-Gbit-Optionen, die im neuesten 24-nm-Prozess gefertigt werden.
MLC-Optionen mit integriertem ECC
Für Anwendungen, in denen die Eigenschaften von MLC-NAND attraktiver sind, gibt es ebenfalls Bausteine, die eine integrierte ECC-Funktion bieten und damit die Entwicklungsarbeit vereinfachen und beschleunigen.
Toshibas nächste Generation, SmartNAND, basiert auf neuester 24-nm-NAND-Flash-Prozesstechnik und enthält einen Control-Chip, der ECC unterstützt. Die Speicherdichten reichen von 4 bis 64 GByte; die Seitengröße beträgt 8 KByte. SmartNAND entlastet den Host-Prozessor um ECC und minimiert Protokolländerungen. Zu den Zielanwendungen zählen tragbare Media Player, Tablet-PCs, Digital-TV-Geräte, Settop-Boxen und andere Geräte, die einen hochkompakten, nicht-flüchtigen Speicher benötigen. Indem der Entwickler den NAND-Speicher direkt über den Host-Controller verwalten kann, ermöglicht SmartNAND eine schnellere Markteinführung, den Zugriff auf neueste Prozessgeometrien und im Gegensatz zu herkömmlichem NAND-Flash, das eine externe ECC-Lösung erfordert, geringere Kosten. Es gibt noch einen weiteren Vorteil: die Verfügbarkeit externer oder integrierter (im Host-System befindlicher) NAND-Controller ist nicht synchron mit der Verfügbarkeit des Raw MLC-Speichers. Per Definition bietet SmartNAND immer einen ECC-Controller, der für die MLC-Implementierung optimiert ist und daher die NAND-Verwaltung über die Host-Software vereinfacht.
Darüber hinaus bietet SmartNAND eine Reihe von Lese- und Schreibgeschwindigkeiten und eine Auswahl an „normalen“ und „verlässlichen“ Modi. Entwickler können damit die für ihre Anwendung beste Wahl treffen. Der Normal-Modus bietet einen Standardbetrieb mit 2 Bit pro Zelle; der „verlässliche“ Modus bietet „Pseudo-SLC“-Betrieb.
Eine dritte Kategorie von NAND Flash, die immer mehr an Bedeutung gewinnt, ist eMMC-konformer Speicher. Dabei bieten die Bausteine eine Schnittstelle, die dem JEDEC eMMC Embedded-Multimedia-Card-Standard entspricht. Mehrere MLC-NAND-Chips werden dabei mit einem entsprechenden Controller in einem einzigen kompakten Gehäuse kombiniert. Der Controller führt alle erforderlichen Fehlerkorrekturen aus, das Wear Levelling und das Bad-Block-Management, was die Entwicklungsarbeit wesentlich vereinfacht. Toshibas Angebot an eMMC-Bausteinen umfasst Speicherkapazitäten von 2 bis 128 GByte und wird im 24-nm-Prozess gefertigt.
Bild 3 vergleicht verschiedene SLC- und MLC-NAND-Flash-Technologien mit integrierten ECC-Optionen zu reinem NAND-Flash-Speicher.
(jj)