Scegliere e implementare le soluzioni di memorizzazione di massa Flash NAND per le applicazioni Embedded By: Stephen Harris, Product Manager, Cypress Semiconductor Corp. Sommario Nella scelta e nell’implementazione di soluzioni di memorizzazione di massa Flash Nand il progettista ha a disposizione varie opzioni, ciascuna caratterizzata da vantaggi e svantaggi. Introduzione I livelli di densità delle memorie di massa utilizzate nelle applicazioni embedded stanno vivendo una fase di crescita senza precedenti. I dispositivi consumer – come i riproduttori portatili, i telefoni cellulari, le fotocamere digitali, i sistemi di navigazione portatili, le schede wireless o i thumb drive – richiedono oggi densità di memorizzazione di massa sempre maggiori, soprattutto a causa della fame dell’utente finale di contenuti multimedia. Le flash NAND sono diventate ormai la scelta prevalente per la memorizzazione di massa nelle applicazioni consumer. La loro diffusione si deve principalmente al basso costo per bit e alla maggiore densità che esprimono rispetto alle Flash NOR, ma anche alle dimensioni più compatte, ai consumi più contenuti e a una maggiore robustezza rispetto agli Hard Disk Drive. Essendo la domanda di flash NAND generata dal mercato consumer così alta, i prezzi stanno rapidamente calando. Su quest’onda, altri dispositivi – per esempio i terminali POS (point of sale) o le stampanti – hanno finalmente iniziare a beneficiare di questa tecnologia di memoria, accedendo a capacità superiori a costi sempre più bassi. La domanda di flash NAND con densità più elevate che si sta manifestando anche nelle applicazioni embedded, pone i progettisti di fronte a varie sfide, legate alla scelta tra un novero estremamente ampio di tipologie, densità, fornitori, roadmap e implementazioni. Il primo e più importante criterio di scelta di una soluzione flash NAND è legato all’implementazione del “NAND controller.” Tutti i dispositivi flash NAND richiedono un contributo di manutenzione riconducibile al software e all’hardware di un controller esterno. Tale contributo permette di garantire l’affidabilità dei dati, di massimizzare la vita del dispositivo flash NAND e di aumentarne le prestazioni. Le tre funzioni principali del controller NAND sono denominate Bad Block Management, WearLeveling ed Error Correction Coding (ECC). La tecnologia flash NAND prevede una memoria organizzata in insiemi (cluster) denominati blocchi. Interentemente, la maggior parte dei dispositivi flash NAND contiene alcuni blocchi guasti (bad blocks) che vengono rilevati solo durante i test eseguiti in fase di produzione. Questi blocchi sono contrassegnati come “bad” nelle specifiche fornite dal costruttore. Oltre a questo, alcuni blocchi funzionanti (good blocks) possono degradarsi durante il ciclo di vita della NAND: tale eventualità deve essere opportunamente tracciata dal software. Il tracciamento dei blocchi anomali è detto Bad Block Management. Parallelamente, una mole elevata di letture o scritture di un particolare blocco può comportare l’usura della NAND e portare a un’anomalia operativa. Al fine di assicurare un ciclo di vita più lungo possibile della NAND e di limitare la quantità di blocchi usurati, tutti i blocchi devono essere letti e scritti in modo omogeneo secondo un processo detto Wear-Leveling. In caso di lunghi periodi di inattività o di operazioni che riguardano una singola cella possono infine verificarsi degli errori. Per rilevare e correggere tali errori è necessaria l’implementazione di un processo di ECC a livello sia software sia hardware. Il processo di ECC è normalmente classificato in base al numero di bit che il codice è in grado di correggere in un settore da 528 byte. Selecting and Implementing NAND Flash Storage Solutions Published in Selezione di Elettronica Page 1 of 4 December 2008 In un sistema, il NAND controller può essere combinato con la NAND secondo le tre differenti configurazioni, indicate in figura1. Figura 1: opzioni per una soluzione NAND Oltre a scegliere una delle tre opzioni di configurazione di controllo indicate in figura 1, il progettista deve anche scegliere tra due diversi tipi di dispositivi flash NAND: SLC (Single-Level Cell) e MLC (Multi-Level Cell). Ciascuno di essi offre dei benefici specifici. Le NAND SLC assicurano un ciclo di vita più lungo e una maggiore affidabilità del blocco: ciò comporta meno ECC e prestazioni superiori. Le NAND MLC offrono meno prestazioni e sono più difficili da implementare a causa della complessità dei processi di bad block management, wear-leveling ed ECC. Di contro, questa tecnologia garantisce un costo per bit pari a circa 1/3 rispetto alle NAND SLC. A causa dell’aumento del differenziale di costo tra NAND SLC e NAND MLC la maggior parte delle applicazioni – specialmente quelle con le densità più elevate - sta orientandosi verso queste ultime. Tale evoluzione è legata principalmente all’esigenza di ridurre i costi dei materiali. La scelta di una delle tre opzioni suggerite in figura 1dipende da vari fattori, tra i quali la disponibilità o meno di un supporto di controllo NAND a livello di Microprocessore, il tipo di NAND utilizzato (SLC o MLC) e la densità NAND richiesta dalla piattaforma. Nelle piattaforme dove i progettisti dispongono di un Microprocessore dotato di interfacciamento e controllo completo della NAND, viene normalmente preferita l’opzione 1. I processori più recenti tipicamente supportano solo NAND SLC a densità più bassa. La tecnologia del processore limita infatti la quantità di memorizzazione di un die di NAND SLC e di NAND MLC: attualmente i livelli di densità si aggirano intorno al gigabyte per die. Per supportare densità maggiori di NAND, il controller deve essere in grado di supportare più NAND. Lo scopo viene normalmente raggiunto attraverso un processo di interleaving che sfrutta segnali di chip-enable multipli. La presenza di più chip-enable per supportare configurazioni multi NAND più portare il pin count di un Microprocessore a livelli molto elevati. Tale aspetto rende l’integrazione del NAND controller nel Microprocessore di fatto poco frequente. Anche trovare un’interfaccia NAND MLC su in Microprocessore è un fatto piuttosto raro. Ciò è dovuto a varie ragioni. Man mano che i nodi delle tecnologie di processo legate alle NAND MLC si abbassano, aumentano i livelli di Error Correction richiesti per supportare questo tipo di soluzione. Attualmente il livello di Error Correction per una NAND MLC è a 4-bit, ma la prospettiva è di una rapida evoluzione verso gli 8- o addirittura i 12-bit. Il maggior impatto di ECC richiede l’introduzione di un hardware opportuno nel NAND controller. L’evoluzione dei Microprocessori sta però avvenendo a un ritmo più lento rispetto a quanto accade per le NAND MLC. Selecting and Implementing NAND Flash Storage Solutions Published in Selezione di Elettronica Page 2 of 4 December 2008 La soluzione “Controlled NAND” riferita all’opzione 2 è utilizzata in vari prodotti di memorizzazione embedded e removibili. Tutte le schede portatili SD/MMC utilizzano questo tipo di implementazione, mentre sul mercato esistono vari tipi di NAND con controllo embedded. Questa soluzione offre vari vantaggi in quanto per aggiungere il supporto di sistema per una NAND SLC o MLC il Microprocessore deve solo prevedere un’interfaccia SD/MMC. Il controller dell’opzione 2 è associato alla NAND e gestisce il Bad Block Management, il Wear-Leveling e l’ECC. Le soluzioni NAND con controller si attestano attualmente su densità di 4 Gigabyte per quanto riguarda le soluzioni embedded e di 8 Gigabyte per quanto riguarda le schede removibili. Lo svantaggio associato a queste soluzioni è dato dal fatto che ogni fornitore NAND supporta interfacce differenti in base al proprio spettro di NAND con controller integrato (SD, MMC, interfacce proprietarie…). Passare da un fornitore NAND a un altro può richiedere pertanto la completa revisione del software. La soluzione presentata nell’opzione 3 garantisce al progettista la maggiore flessibilità possibile nella scelta del tipo di NAND e nella scelta del fornitore. Quasi tutti i NAND controller supportano NAND di tipo, dimensioni, densità e origine differente. Poiché il NAND controller sfrutta sempre la medesima interfaccia verso il processore, il progettista è libero di scegliere dispositivi di produttori diversi senza dover cambiare il software. Lo schema a blocchi riportato in figura 2 illustra il controller West Bridge Astoria di Cypress, un multimedia mass storage controller con gestione completa per NAND SLC e MLC: Figura 2: Soluzione West Bridge Astoria di Cypress Astoria mette a disposizione opportune interfacce verso vari processori – per esempio SRAM, ADMUX, SPI e NAND – ed è in grado di supportare fino a 16 NAND SLC o MLC di qualsiasi produttore. Il dispositivo prevede funzioni ECC a 4-bit basate sulla tecnologia proprietaria N-Xpress di Cypress. Il tutto assicura ai progettisti la possibilità di scegliere il tipo di densità ma anche di cambiare il fornitore in qualsiasi momento, con un impatto minimo o nullo sul software del microprocessore. L’utilizzo di un NAND controller esterno garantisce anche altri vantaggi. La soluzione Astoria nella figura 2 per esempio dispone di un’interfaccia High-Speed USB che bypassa il processore principale mettendo a disposizione un cammino diretto dal PC alla memoria di massa. Tale possibilità è utile soprattutto nelle applicazioni legate a riproduttori e terminali portatili. Astoria supporta anche architetture SD, MMC e SDIO, il che consente al progettista di collegare un dispositivo di tipo SDIO - come un prodotto WiFi o Bluetooth - anche se il microprocessore di sistema è limitato dal punto di vista delle relative interfacce. Dopo avere esaminato la combinazione di specifiche dal punto di vista dei budget di densità, costi, dimensioni e flessibilità, il progettista ha dunque a disposizione varie opzioni, ciascuna caratterizzata da vantaggi e svantaggi. Quando il microprocessore di sistema integra il controller NAND SLC o MLC si ha una soluzione efficace in quanto non richiede dispositivi o logica esterni. Una soluzione con NAND dotata di controller è spesso vantaggiosa in quanto – oltre a non richiedere chip o logica esterni - è totalmente preconfezionata da parte del fornitore della NAND. Un NAND controller esterno garantisce invece maggiore flessibilità in termini di tipologie e organizzazione della NAND, ma anche di prestazioni e di interfacciamento, delegando però a un chip esterno questi vantaggi. Selecting and Implementing NAND Flash Storage Solutions Published in Selezione di Elettronica Page 3 of 4 December 2008 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 Semi conductor 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 herei n. 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 Published in Selezione di Elettronica Page 4 of 4 December 2008