Auswahl und Implementierung von NAND Flash Massenspeicher

Transcription

Auswahl und Implementierung von NAND Flash Massenspeicher
Auswahl und Implementierung von NAND Flash Massenspeicher-Lösungen für
Embedded-Systems-Anwendungen
Von: Stephen Harris, Product Manager, Cypress Semiconductor Corp.
Die Massenspeicher-Dichte in Embedded-Anwendungen nimmt mit nie da gewesener Geschwindigkeit zu. Die Nachfrage der
Endanwender vor allem nach mehr Multimedia-Angeboten führt dazu, dass Consumer-Produkte wie etwa portable Media
Player, Mobiltelefone, Digitalkameras, tragbare Navigationssysteme, Air Cards und USB-Sticks mit immer mehr
Speicherkapazität ausgestattet werden. NAND Flash hat sich zum verbreitetsten Massenspeicher in Consumer-Applikationen
entwickelt. Gegenüber der NOR Flash-Technik zeichnen sich NAND Flash-Speicher durch einen niedrigeren Preis pro Bit und
eine höhere Speicherdichte aus, während im Vergleich zu den Festplatten die kleineren Abmessungen, der niedrigere
Stromverbrauch und die größere Robustheit hervorzuheben sind. Die große Nachfrage nach NAND Flash-Speichern auf dem
Consumer-Markt hat einen rasanten Preisverfall bei den Speicherbausteinen zur Folge, sodass auch Geräte wie zum Beispiel
Point of Sale (PoS) Terminals, Drucker und andere Applikationen hiervon profitieren und sich die hohe Speicherdichte und das
günstige Kostenniveau zunutze machen können. Da somit insgesamt die Nachfrage nach immer mehr NAND Flash-Dichte in
diesen Embedded-Applikationen steil zunimmt, kommt es für die Designer darauf an, aus der Vielzahl der Bauarten, Dichten,
Anbieter, Roadmaps und Implementierungen auf dem NAND Flash-Markt die richtige Lösung auszuwählen.
Das erste und zugleich wichtigste Auswahlkriterium bei einer NAND Flash-Lösung ist die Implementierung des NANDControllers. Alle NAND Flash-Bausteine verursachen nämlich einen gewissen Management-Aufwand in der Software und in
der Hardware (nämlich im externen Controller), damit eine verlässliche Datenspeicherung und eine maximale Lebensdauer
der NAND Flash-Bausteine erreicht wird und sich die Leistungsfähigkeit verbessert. Die drei Hauptfunktionen des NANDControllers werden als Bad Block Management, Wear-Leveling und Error Correction Coding (ECC) bezeichnet. Worum geht
es dabei?
NAND Flash-Bausteine sind in Blöcke gegliedert, und die Mehrzahl der NAND Flash-Produkte enthält einige fehlerhafte
Blöcke. NAND Flash-Chips mit solchen Defekten sind jedoch keineswegs Ausschuss. Vielmehr lassen sich die fehlerhaften
Blöcke mit Hilfe von Tests während der Produktion erkennen und in der Baustein-Spezifikation des Herstellers entsprechend
markieren. Dies wird als Bad Block Management bezeichnet.
Doch auch die einwandfreien Blöcke unterliegen im Zuge ihres Einsatzes einem gewissen Verschleiß. Je häufiger Schreibund Lesezugriffe auf einen bestimmten Block ausgeführt werden, umso mehr nutzt dieser Block ab und wird schließlich
ebenfalls zu einem fehlerhaften ‚Bad Block‘.Die Nutzungshäufigkeit muss deshalb per Software aufgezeichnet werden. Damit
der NAND Flash-Speicherbaustein insgesamt eine größtmögliche Lebensdauer erzielt und möglichst wenige Blöcke an ihre
Verschleißgrenze geraten, sollten die Schreib- und Lesezugriffe möglichst gleichmäßig auf alle Blöcke verteilt werden – ein
Prozess, der als Wear-Leveling bezeichnet wird.
Schließlich können bei Inaktivität oder Betrieb einer bestimmten Zelle Bitfehler entstehen. Durch ein per Hard- oder Software
implementiertes Error Correction Coding (ECC) lassen sich diese Fehler erkennen und korrigieren. Die ECC-Technik wird in
der Industrie üblicherweise damit definiert, wie viele Bits der jeweilige Code in einem 528-Byte-Sektor korrigieren kann.
Selecting and Implementing NAND Flash Storage Solutions for Embedded Applications
Published in Elektronik Informationen
Page 1 of 5
December 2008
[+] Feedback
Ein NAND-Controller mit diesen Funktionen lässt sich in drei Konfigurationen mit dem eigentlichen NAND Flash kombinieren
(Bild 1).
Bild 1.
Die drei Optionen für NAND-Lösungen
Option 1: Mikroprozessor mit eingebautem NAND-Controller
Option 2: Kombination aus NAND-Speicher und NAND-Controller (‚Controlled NAND‘)
Option 3: Reiner NAND-Speicher kombiniert mit externem NAND-Controller
Zusätzlich zur Entscheidung zwischen den drei in Bild 1 gezeigten Optionen muss der Designer auch zwischen zwei Bauarten
von NAND Flash-Chips wählen. Die SLC NAND-Technik (Single-Level Cell) und die MLC NAND-Technik (Multi-Level Cell)
bieten spezifische Vor- und Nachteile. Bei den SLC NAND-Speichern erzielen die einzelnen Blöcke eine längere Lebensdauer
und eine höhere Zuverlässigkeit, was den ECC-Aufwand verringert und für überragende Performance sorgt. MLC NANDSpeicher sind dagegen nicht so leistungsfähig und schwieriger zu implementieren, denn der Aufwand für Bad Block
Management, Wear-Leveling und ECC ist hoch. Andererseits beträgt der Preis pro Bit hier nur ca. ein Drittel des Preises von
SLC NAND-Speichern. Da die Preisschere zwischen SLC und MLC NAND-Speichern immer weiter aufgeht, setzt man in den
Selecting and Implementing NAND Flash Storage Solutions for Embedded Applications
Published in Elektronik Informationen
Page 2 of 5
December 2008
[+] Feedback
meisten Applikationen, besonders aber in Anwendungen mit hoher Speicherdichte, auf MLC-Speicher, wodurch sich die
Materialkosten deutlich senken lassen.
Auf welche der drei in Bild 1 gezeigten Optionen die Wahl im Einzelfall fällt, hängt von mehreren Faktoren ab – beispielsweise
von der NAND-Controller-Unterstützung des jeweiligen Mikroprozessors, von der Art des verwendeten NAND Flash-Speichers
(SLC oder MLC) sowie davon, wieviel NAND-Kapazität die jeweilige Plattform erfordert. Wenn der Designer einen
Mikroprozessor einsetzt, der über eine vollständige NAND-Schnittstelle und einen entsprechenden Controller verfügt, ist
Option 1 zweifellos die richtige Wahl. Allerdings unterstützen die meisten gegenwärtigen Mikroprozessoren, sofern sie
überhaupt NAND-Support bieten, in der Regel nur SLC NAND-Speicher von eher geringer Dichte. Die Prozesstechnologie
setzt der Speicherkapazität eines SLC oder MLC NAND-Speichers eine gewisse Obergrenze, die zurzeit bei etwa 1 Gigabyte
pro Chip liegt. Wenn also eine größere NAND-Kapazität unterstützt werden soll, muss der betreffende Controller mehrere
NANDs unterstützen, was in der Regel durch einen Interleaving-Prozess und mehrere Chip-Enable-Signale geschieht. Da sich
aber durch die zusätzlichen Chip-Enables zur Unterstützung mehrerer NAND-Bausteine die Pin-Anzahl des Mikroprozessors
erhöht, hat es die Integration dieser Art von NAND-Controllern in Mikroprozessoren nicht zu so großer Verbreitung gebracht.
Bestimmte Gründe sind außerdem ausschlaggebend dafür, dass Mikroprozessoren nur selten mit einem MLC NAND-Interface
ausgestattet werden. Die immer kleiner werdenden Strukturabmessungen moderner MLC NAND-Chips haben zur Folge, dass
der ECC-Aufwand für diese Speicher zunimmt. Zurzeit ist für MLC NAND eine 4-Bit ECC-Technik erforderlich, jedoch geht der
Trend rasch zu 8 und 12 Bit. Die aufwändigeren ECC-Verfahren benötigen entsprechende Hardware-Ressourcen im NANDController, doch schreitet die Technologieentwicklung bei den Mikroprozessoren langsamer voran als bei den MLC NANDSpeichern.
Nun zu Option 2 in Bild 1, nämlich zur ‚Controlled-NAND*-Lösung, die in vielen fest eingebauten oder austauschbaren
Speicher-Lösungen zum Einsatz kommt. Sämtliche portablen SD/MMC-Karten basieren auf dieser Implementierung, und es
gibt auf dem Markt eine große Auswahl unterschiedlicher Controlled-NAND-Varianten. Der Vorteil dieser Lösung ist, dass der
Mikroprozessor lediglich ein SD/MMC-Interface besitzen muss, um SLC oder MLC NAND Flash unterstützen zu können. Der
Controller in Option 2 ist auf den NAND-Chip aufgesattelt und nimmt das gesamte Bad Block Management und Wear Leveling
sowie die ECC-Funktionen für den NAND-Speicher wahr. Controlled-NAND-Lösungen gibt es derzeit in EmbeddedAnwendungen mit ungefähr 4 Gigabyte und in austauschbaren Speicherkarten mit etwa 8 Gigabyte Speicherkapazität.
Nachteilig an diesem Konzept ist, dass die einzelnen NAND-Anbieter an ihren Controlled-NAND-Produkten verschiedene
Schnittstellen unterstützen (z. B. SD, MMC oder proprietäre Interfaces), wodurch der Wechsel zu einem anderen Lieferanten
nicht ohne eine vollständige Modifikation der Software möglich ist.
Option 3 gewährt dem Designer die größte Flexibilität, was die Wahl der NAND-Bauart und des Zulieferers betrifft. Nahezu alle
NAND-Controller unterstützen verschiedene NAND-Typen, -Anbieter und -Dichten, und da der NAND-Controller stets die
gleiche Schnittstelle zum Prozessor nutzt, kann der Designer freizügig zwischen unterschiedlichen NAND-Typen und
Lieferanten wählen, ohne die Software umschreiben zu müssen. Das Blockschaltbild in Bild 2 zeigt den West Bridge AstoriaBaustein von Cypress, einen Multimedia-Massenspeicher-Controller mit umfassenden Management-Funktionen für SLC und
MLC NAND-Speicher.
Selecting and Implementing NAND Flash Storage Solutions for Embedded Applications
Published in Elektronik Informationen
Page 3 of 5
December 2008
[+] Feedback
Bild 2.
Die West Bridge Astoria-Lösung von Cypress
Der Astoria-Chip besitzt mehrere Prozessorschnittstellen wie zum Beispiel SRAM, ADMUX, SPI und NAND und kann bis zu
16 SLC oder MLC NAND-Baustein von beliebigen Herstellern unterstützen – mit 4-Bit ECC unter Verwendung der proprietären
N-Xpress-Technologie von Cypress. Der Designer hat somit die Wahl zwischen verschiedenen verschiedenen Bauarten und
Dichten und kann auch umgehend von einem NAND-Hersteller zum anderen wechseln, mit höchstens geringfügigen
Änderungen an der Mikroprozessor-Software. Die Verwendung eines externen NAND-Controllers kann jedoch noch weitere
Vorteile mit sich bringen. So besitzt die in Bild 2 gezeigte Astoria-Lösung ein High-Speed USB-Interface, das unter Umgehung
des Hauptprozessors einen direkten Weg vom PC zum Massenspeicher schafft. In Applikationen wie etwa tragbaren Media
Playern oder Mobiltelefonen resultiert dies in optimaler Sideloading-Performance. Da der Astoria-Chip außerdem SD, MMC
und SDIO unterstützt, kann der Designer ein SDIO-Device (z. B. WiFi oder Bluetooth) auch dann anschließen, wenn der
System-Mikroprozessor nur eine begrenzte Anzahl SDIO-Interfaces bietet.
Wenn er sich mit den Anforderungen, die das System in Bezug auf Dichte, Preis, Platzbedarf und Flexibilität an den NANDMassenspeicher stellt, auseinandergesetzt hat, stellen sich dem Designer verschiedene Optionen zur Wahl, die ihre
spezifischen Vorzüge haben. Besitzt der System-Mikroprozessor einen eingebauten SLC oder MLC NAND-Controller, so ist
dies in gewisser Weise die günstigste Lösung, da sie völlig ohne externe Bausteine oder Logik auskommt. Vorteilhaft ist häufig
auch die Controlled-NAND-Lösung als ein vom NAND-Anbieter hergestelltes und konfektioniertes Paket, das ebenfalls keinen
externen Bauteil- und Logikaufwand verursacht. Die größte Flexibilität bietet jedoch ein ein externer NAND-Controller, da der
Designer
nicht
nur
sämtliche
NAND-Bauarten
und
-Varianten
nutzen,
sondern
auch
die
Performance
und
Schnittstellenausstattung aufstocken kann. Allerdings wird hierfür ein externer Chip benötigt.
Selecting and Implementing NAND Flash Storage Solutions for Embedded Applications
Published in Elektronik Informationen
Page 4 of 5
December 2008
[+] Feedback
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone: 408-943-2600
Fax: 408-943-4730
http://www.cypress.com
© Cypress Semiconductor Corporation, 2007. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the
use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended
to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize
its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of
Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
PSoC Designer™, Programmable System-on-Chip™, and PSoC Express™ are trademarks and PSoC® is a registered trademark of Cypress Semiconductor Corp. All other trademarks or
registered trademarks referenced herein are property of the respective corporations.
This Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and
foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create
derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used
only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code
except as specified above is prohibited without the express written permission of Cypress.
Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described
herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical
components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress’ product in a life-support
systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.
Use may be limited by and subject to the applicable Cypress software license agreement.
Selecting and Implementing NAND Flash Storage Solutions for Embedded Applications
Published in Elektronik Informationen
Page 5 of 5
December 2008
[+] Feedback