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