Da qualche anno l’industria elettronica ha visto una inesorabile migrazione dalle flash parallele di tipo tradizionale alle memorie flash su interfaccia parallela. Mentre questa migrazione è cominciata alcuni anni fa solo per applicazioni che usavano solo basse densità come schede grafiche oppure dischi rigidi, rapidamente l’affermazione delle Spi ha ora il suo momento. Al giorno d’oggi le flash seriali sono le memorie preferite per applicazioni portatili Bluetooth, apparecchi mobili a basso costo, dischi ottici, navigatori Gps e una serie di altri prodotti di consumo. Inoltre la tendenza è in assoluta accelerazione. Secondo le analisi di mercato infatti già all’inizio dell’anno prossimo le flash seriali supereranno l’uso delle classiche flash parallele.
Grazie a questo, è stato immediatamente riconoscibile il vantaggio che le flash seriali offrono in termini di spazio, di numero di pin più limitato, basso consumo e anche minor costo del sistema. Mentre lo standard delle memorie parallele è disponibile in 32 pin o anche più largo come il Plcc, le flash serali usano uno standard a 4 pin Spi su package 8-pin. Ogni pin aggiuntivo, aggiunge costi al sistema. I controllori con un più alto numero di pin, richiedono che anche il circuito stampato abbia più livelli per la gestione dei segnali e anche in questo caso si aggiungono costi. Lo spazio sul circuito crescerebbe e creerebbe un ostacolo diretto per il disegno di un prodotto che si tenta di rendere più contenuto negli spazi. Inoltre l’implacabile richiesta da parte dei clienti di nuove caratteristiche, specie nei prodotti portatili multimediali e dispositivi Bluetooth, pone oggi un obbligo a coloro che disegnano nuovi prodotti. In questo caso, la maggior parte dei pin sono dedicati alla memoria e in numero minore ne vengono resi disponibili per fornire l’alimentazione, fornendo più disponibilità per nuove caratteristiche.
Limitato acceso all’ eXecution In Place (XiP)
Malgrado siamo molti i benefici che le flash seriali offrono, si presenta un dubbio nel caso in cui si debba far uso del XiP (esecuzione del programma sulla flash stessa). Tipicamente alcuni programmi sono eseguiti direttamente sulla flash parallela che può essere indirizzata per leggere le singole parole piuttosto che copiarne il contenuto in Ram. La cosa è fatta per ridurre il costo totale della memoria di sistema. Le flash seriali però hanno prestazioni più limitate, quindi è necessaria una shadow-Ram usualmente una Sram, per supportare l’accesso veloce richiesto da una applicazione XiP. Mentre l’uso della shadow-Ram accelera l’accesso al codice è anche vero che il costo totale e lo spazio occupato aumentano e questo mina in parte i vantaggi dell’uso delle flash seriali. Per abbattere questa limitazione, alcuni sviluppatori di flash hanno recentemente introdotto nuovi dispositivi Spi con 2 bit e 4 bit di output. Con questo approccio multi-bit si accelera l’output nella Ram e si incrementa la prestazione per il vero XiP. Tipicamente questi dispositivi multi-bit incrementano le prestazioni multiplexando gli I/O ma aggiungono caratteristiche non tipiche rispetto alle Spi tradizionali. Ad esempio, vengono usati ingombranti comandi single-bit che devono commutare in avanti ed indietro lo schema single-bit e multi-bit . Spesso questi dispositivi aggiungono comandi extra per la gestione dell’alimentazione e comandi look-ahead per ridurre l’overhead. Questo implica che spesso le latenze che riducono le prestazioni sono nascoste in protocolli molto lenti. Queste multi-bit flash seriali contano anche su una tipico schema di protezione Spi che protegge 1/8, 1/4 oppure metà del sistema di memoria ma di contro offrono una ridotta flessibilità di programmazione. Ad ogni modo, pur se limitata, viene fornita una piccola opzione di sicurezza per il branching e per il write-interrupt.
Eliminazione del Clock Cycles
La domanda degli sviluppatori oggi è su come incrementare le prestazioni delle flash seriali senza sacrificarne I vantaggi della tecnologia riguardo a dimensione contenuta e basso consumo. Recentemente i progettisti di Silicon Storage Technology hanno risolto questo problema escogitando una nuova robusta architettura per offrire la maggior parte dei vantaggi di prestazione agli sviluppatori che lavorano con le flash parallele ma che si aspettano di mantenere le caratteristiche di basso numero di pin, basso consumo e basso costo delle flash seriali Spi. Facendo questo, questa nuova architettura aumenta le prestazioni delle flash seriali fino ad incentivare gli sviluppatori che possono ora usarle davvero per applicazioni dove sia richiesto il XiP senza dover copiare il codice in una Sram esterna. La chiave di questo successo è stato lo sviluppo del Serial Quad I/O (SQI) che usa 4-bit multiplexati e sincroni del protocollo di comunicazione seriale offrendo prestazioni migliori e comparabili con le flash parallele. Costruito con il processo proprietario di SST chiamato Cmos SuperFlash, questi nuovi dispositivi usano una struttura di comandi seriali di tipo Spi che supportano quindi il protocollo Spi, alta velocità e Jedec ID in lettura. Inoltre, questa nuova architettura combina la flessibilità dell’esecuzione del codice in-place (Xip), velocità in scrittura e cancellazione con la disponibilità della modalità basso consumo che migliora la sicurezza sul codice. Questi dispositivi lavorano a velocità di 80Mhz. La prima famiglia di prodotti che usa questa nuova tecnologia, la SST 26 Series SQI, offre prestazioni di 320 Mbps in sustained burst data rate. Dispositivi che lavorano a velocità maggiori saranno disponibili nell’immediato futuro. Durante lo sviluppo di SQI, uno dei punti che ha richiesto un maggiore sforzo è stata l’eliminazione del clock cycle. Per offrire una vera caratteristica di accesso casuale, la famiglia delle SQI è caratterizzata da latenza zero che diversamente dalle tradizionali famiglie di flash seriali, permette di iniziare la lettura dovunque e di continuare a leggere le soglie come pagina o blocco senza essere in relazione con il clock. Usando solo due clock per un comando, due clock per gli indirizzi e due clock per il bus, questo approccio offre l’accesso single-byte piu’ o meno equivalente all’accesso Byte-wide disponibile sulle flash parallele. Usando l’accesso di tipo dual-word o three-word, gli sviluppatori possono avere un accesso casuale alle parole molto più veloce e comparabile con l’accesso veloce word-wide, a 70ns, delle flash parallele. Per l’accesso multi-word oppure per multi-Byte, l’architettura SQI offre prestazioni significativamente più veloci che sono comparabili con le più veloci Byte o word-wide delle flash parallele. Per ridurre il tempo di accesso, la nuova architettura supporta 8, 16, 32 e 64 byte in burts-mode con wrap. Questa caratteristica permette agli sviluppatori di eseguire il codice in burst-mode per dispositivi ed applicazioni senza Ram o di tipo “fill cache line buffer” quindi per quelle applicazioni dove l’architettura di sistema usa la tipologia pipelining per ottimizzare la banda del bus. L’arhictettura SQI anche permette agli sviluppatori di usare la memoria in burst mode in modo continuativo per applicazioni che richiedono dimensione del codice variabile con o senza l’uso di cache.
L'indirizzamento in lettura
Una delle specifiche di maggior interesse di questa nuova architettura sta nel fatto di ridurre il numero di clock e accelerare l’accesso ai dati attraverso l’indirizzamento in lettura. Questa caratteristica permette al sistema di saltare da un indirizzo all’altro entro 256 Byte della pagina, entro un blocco di 64 Kbyte oppure da un blocco ad un altro usando un indirizzamento indiretto. Considerando che il sistema non deve caricare un indirizzo intero , si può drasticamente tagliare l’indirizzamento in modo immediato. In un salto da una pagina ad un blocco, per esempio, l’utilizzatore può ridurre l’overhead di indirizzamento da sei a quattro clock. Saltando da un blocco ad un altro non seguendo il clock, questo aiuta a semplificare il riallocamento del codice e migliora la portabilità del codice stesso. In questo modo lo sviluppatore del codice può pianificare in anticipo e trarre vantaggio da queste funzioni riducendo drasticamente il numero di clock necessari per l’accesso in lettura e nel processo migliorare le prestazioni del sistema.
Per incentivare ancora le prestazioni, la nuova architettura usa lo stesso tipo di “write suspend e resume” tradizionalmente usata sulle flash parallele. Questa caratteristica permette al sistema di sospendere temporaneamente un programma o di cancellare la memoria se questa azione richiede troppo tempo, eseguendo il codice richiesto per mantenere le prestazioni del sistema. Una volta che il nuovo codice è stato eseguito, il sistema riprende il ciclo di scrittura. In pratica questa è una nuova caratteristica che permette di congelare un programma o bloccare una cancellazione mentre nella sospensione di una cancellazione o nella funzione di programma viene semplificata l’operazione di lettura/modifica/scrittura. Unitamente a questo, l’architettura offre un’alta flessibilità e rapida capacità di cancellazione che può cancellare piccoli settori del chip in un tempo minimo (25ms) o l’intero chip in 50ms.
Migliore integrità dei dati
L’array della memoria SQI si divide in blocchi di quattro 8 Kbyte e un 32 Kbyte al top e quattro 8 Kbyte e un 32 Kbyte al bottom (overlay), atti a caricare il codice, i dati dell’utilizzatore o le informazioni del sistema. L’array maggiore è configurato in 64 Kbyte (overlay) di tipo uniforme che sono tutti ancora divisi in piccoli settori di 4 Kbyte per massimizzare la flessibilità in cancellazione. Una delle maggiori carenze nelle correnti flash seriali è l’assenza di valide caratteristiche di protezione. Le SQI indirizzano questi bisogni rendendo disponibile un block locking software individuale di 16, 32 o 64 Kbyte. Ciascuno di questi quattro blocchi da 8 Kbyte in alto o in basso nella memoria possono essere bloccati in lettura e scrittura per proteggere le informazioni dell’utente o del sistema. Inoltre la maggior parte dei blocchi possono essere configurati in 32 Kbyte e 64 Kbyte e bloccati in scrittura per evitare scritture inavvertite dei settori. Una protezione in scrittura di tipo lock-down previene l’utilizzatore dal cambiare lo schema di protezione. In un’area separata al di fuori del memory array, l’architettura SQI include un’area ID di tipo one-time-programmable. Questa caratteristica combina un unico 64 bit ID programmato di fabbrica e un blocco a 128 bit programmabile dall’utente. Questo può essere usato per configuarare un codice di tipo random security come un token che solitamente viene usato nel colloquio tra le periferiche Hdmi. Un comando di sicurezza ID di sblocco previene successive scritture in questa area di sicurezza. Costruite secondo il processo SuperFlash Cmos di SST, le SQI offrono 100,000 cicli di lettura/scrittura e oltre 100 anni di mantenimento inalterato dei dati. Come tutte le memorie seriali, il consumo è molto basso. La corrente attiva in lettura è pari a 15 mA tipici a 80 Mhz. La corrente in stand-by è di soli 10 µA tipici.