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