Memoria Ferroelettrica

Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati e inseriti nella rivista Firmware 2.0 (approfondimenti, news, progetti, tutorial) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. Le memorie ferroelettriche esistono da alcuni anni, ma solo di recente è stata messa a punto una famiglia di microprocessori che, integrando questa tecnologia, offre nuove e interessantissime possibilità. La già famosa famiglia degli MSP430 di Texas Instruments si arricchisce così di una serie di dispositivi che saranno descritti in questo articolo.

Introduzione

Le memorie ferroelettriche sono, dal punto di vista della struttura del silicio, simili alle DRAM ma dotate di uno strato intermedio di un materiale specifico che aggiunge la caratteristica di non volatilità dei dati in caso di assenza di alimentazione. Questa soluzione unisce le caratteristiche di un tipo di RAM veloce ed economica alla possibilità di conservare i dati anche in assenza di alimentazione tipica delle memorie FLASH. Attualmente queste ultime dominano il mercato delle memorie non volatili ed è difficilmente quantificabile l’enorme numero di memorie USB, SD, microSD, dischi allo stato solido, che utilizzano questa tecnologia. Tuttavia, le FLASH presentano caratteristiche meno performanti delle FRAM che sono più veloci in scrittura e hanno un numero di cicli di scrittura/lettura molto più elevato. Infatti, la velocità di scrittura delle FRAM, benché non paragonabile con le DRAM da 2 ns, rimane comunque nella fascia delle poche decine di ns, dato incomparabile con la maggior parte delle FLASH che richiedono, generalmente, unità di millisecondi.

Altra caratteristica a vantaggio della tecnologia FRAM è la tensione di esercizio molto bassa che permette la scrittura anche a soli 1,5 V. La tensione di scrittura per le FLASH viene invece solitamente generata da appositi dispositivi associati alla memoria stessa, ma l’uso di questi elevatori di tensione implica maggiori consumi e tempistiche più rilassate (per permettere al circuito di generare la tensione necessaria). Le FRAM sono quindi più simili a una DRAM che a una FLASH ma non richiedono una delle necessità più “fastidiose” delle DRAM, ovvero il refresh. Infatti, le DRAM, per conservare il dato scritto nella cella elementare, necessitano di specifici circuiti di refresh che mantengano a un livello sufficiente la carica che rappresenta l’informazione. Il refresh richiede un’alimentazione continua e circuiterie che eseguano il ciclo di mantenimento del dato anche centinaia di volte al secondo, imponendo consumi più elevati e continui. Le FRAM, al contrario, necessitano di energia solo in fase di scrittura (o lettura) e quindi riducono drasticamente i consumi e la complessità dei circuiti di supporto. Per questi motivi appare evidente che l’idea di integrare la tecnologia FRAM all’interno di un microcontrollore è estremamente interessante e promettente; specialmente se la famiglia di microcontrollori prescelta è già nota per i suoi consumi ridottissimi.

CARATTERISTICHE INNOVATIVE

L’utilizzo della tecnologia FRAM nei microcontrollori della famiglia MSP430 ha portato alla realizzazione di dispositivi dalle prerogative particolari. Infatti, mentre alcune caratteristiche sono simili a quelle dei dispositivi equipaggiati con memoria FLASH (anche se migliorate), altre invece sono assolutamente impensabili senza questa tecnologia. Di seguito un confronto tra le caratteristiche di dispositivi TI realizzati con tecnologia FLASH e FRAM.

CICLI DI SCRITTURA E VELOCITÀ

I 1014 cicli di scrittura della memoria rappresentano un numero tale da renderli virtualmente illimitati, specialmente se confrontati con i 105 della FLASH. I test di durata effettuati da TI sulle due tipologie di memoria hanno dimostrato che un apposito firmware che scriva la memoria interna di un microcontrollore alla velocità di 12 kB/s provoca l’esaurimento dei cicli di scrittura di una memoria FLASH in 6,6 minuti mentre nel caso della FRAM, tale limite è raggiunto in 6,6 * 106 secondi (poco più di due anni). Questi dati rendono l’idea di quale sia la differenza di durata stimabile per i due tipi di dispositivi. Per quanto riguarda la velocità di scrittura invece, utilizzando la stessa applicazione che scrive dati in memoria a 12 kB/s e fatta operare su un microcontrollore a 8 MHz, nel caso di un dispositivo con memoria FLASH, essa consuma 2.200 A mentre, nel caso di un dispositivo con memoria FRAM, soli 9 A. Anche aumentando il rate di scrittura in memoria (scrivendo blocchi da 512 byte) la FRAM risulta vantaggiosa in quanto si può raggiungere un throughput di 1.400 kB/s consumando 730 A; consumo che è comunque inferiore ai già citati 2.200 A per scrivere a 12 kB/s.

NUOVE POSSIBILITÀ

Queste sono alcune delle caratteristiche migliorate ma, con la tecnologia FRAM, diventa possibile anche una suddivisione completamente personalizzabile della struttura della memoria. Infatti, mentre nei microcontrollori tradizionali la struttura definita dal costruttore stabilisce quanta RAM e quanta ROM siano presenti, nei microcontrollori equipaggiati con memoria FRAM, l’utente può decidere autonomamente quanta parte della memoria utilizzare come ROM e quanta come RAM. Anzi, dato che la differenziazione è libera, la memoria può essere ripartita anche in modo dinamico, ovvero durante l’esecuzione del programma. Sicuramente ne trae beneficio la gestione dei vari tipi di microcontrollore che una ditta deve approvvigionare man mano che l’applicazione installata su di essi evolve. Supponiamo infatti che la nuova versione del firmware richieda 100 byte in più della versione precedente che già usava tutti i 2 kB di ROM del microcontrollore ma che invece avanzino, in entrambe le versioni, 200 byte di RAM. In questo caso occorrerebbe acquistare un nuovo dispositivo con più ROM e presumibilmente anche più RAM. Nel caso di microcontrollore con FRAM, sarà sufficiente invece farsi “prestare” i 100 byte dalla RAM con una semplice configurazione del file di linker.

PARTICOLARITÀ

La tecnologia FRAM è basata sulle particolari caratteristiche del materiale utilizzato nella cella di memoria. Particolare attenzione va però posta a riguardo del comportamento di questa tecnologia alle varie temperature. Sul datasheet della famiglia MSP430FR573x è riportata una temperatura di stoccaggio da -40 °C a +125 °C ma sono considerati un limite assoluto i 95 °C di temperatura di giunzione durante l’esercizio. Per questi motivi, durante la fase di saldatura del componente occorre seguire attentamente le indicazioni date dalla norma JEDEC J-STD-020 e non superare, durante saldature reflow, la temperatura indicata sulla confezione dei componenti. Nel caso di saldatura a mano, la norma generale da rispettare è di non superare i 250 °C per un totale di 5 minuti per ogni dispositivo. La tecnologia FRAM rende sconsigliato saldare i componenti pre-programmati in quanto il processo di saldatura compromette l’integrità dei dati in memoria. A riguardo di quest’ultima precauzione va comunque detto che quella di saldare componenti già programmati è una pratica che va scomparendo a causa della comodità offerta dalla programmazione in circuit spesso effettuata prima del collaudo funzionale del prodotto. La tecnologia FRAM non è basata sulla ritenzione di una quantità di carica ma su fenomeni legati alla struttura cristallina dell’unità di memorizzazione.

Risulta quindi essere molto più robusta e sicura delle tecnologie FLASH ed EEPROM nei confronti delle radiazioni. Il Terrestrial Soft Error Rate (vedere riquadro di approfondimento) è al di sotto del limite del rilevabile e non è influenzato delle radiazioni. Inoltre, la memoria FRAM di TI non contiene ferro o materiali sensibili ai campi magnetici, quindi non è possibile danneggiare i dati con i comuni campi magnetici presenti in ambienti domestici ed industriali. La definizione “ferroelettrica” deriva dal fatto che il diagramma quantità di carica/tensione nella cella elementare è molto simile a quello dell’isteresi dei materiali ferromagnetici. Tra le altre caratteristiche vanno considerati anche i bassissimi consumi e l’alta velocità di scrittura che rendono praticamente non rilevabili, dall’esterno, i cicli di scrittura e lettura. Questo rende il dispositivo sicuro anche nei confronti di operazioni illegali di rilevamento delle attività interne al microcontrollore (sniffing). L’alta immunità alle radiazioni fa di questi dispositivi la soluzione adatta per un gran numero di applicazioni nel campo medicale dove, spesso, il problema della compatibilità assume contorni di massima importanza.

EVALUATION BOARD

TI ha creato una evaluation board per consentire di familiarizzare con le caratteristiche dei dispositivi FRAM. La MSP-EXP430FR5739 illustrata in Figura 2 contiene un’interfaccia USB per il debug e la programmazione del microcontrollore target mediante PC, un microcontrollore con memoria FRAM al quale sono connessi un termistore NTC, un accelerometro, un connettore per una seriale di debug, due pulsanti, otto LED e i segnali per la gestione di una eventuale scheda di espansione (non fornita) della famiglia CCxxxx (link in radiofrequenza). L’ambiente di sviluppo su PC può essere scaricato dal sito TI e l’evaluation board è disponibile (negli Stati Uniti) per 29 $. I programmi dimostrativi forniti con l’ambiente di sviluppo consentono di valutare le prestazioni della tecnologia FRAM e anche qualche miglioramento apportato alle periferiche interne al microcontrollore. Infatti, con l’introduzione della nuova tecnologia, TI ha considerevolmente abbassato i consumi del convertitore AD, lo ha corredato di un DMA, ha arricchito di funzionalità il blocco USCI (in particolare la modalità I2C), ha aggiunto particolari accorgimenti per garantire l’integrità dei dati in memoria (cache, CRC, criteri di protezione dei vari blocchi, etc.) e periferiche non ancora disponibili nei microcontrollori di questa fascia. Nella memoria del microcontrollore della evaluation board sono pre-caricati alcuni programmi per verificare le caratteristiche descritte. Ovviamente, sono forniti i sorgenti di tutti i programmi installati e, grazie agli ambienti di compilazione (IAR e Code Composer Studio), ai tutorial di supporto e alle pagine Wiki, possono essere facilmente modificati e scaricati sul target. Questo permette di valutare personalmente dati e prestazioni rendendo immediatamente rilevabili i parametri che si vogliono misurare.

Figura 1: struttura di una cella di memoria FRAM.

Figura 1: Struttura di una cella di memoria FRAM

 

Figura 2: principali componenti della evaluation board MSP-EXP430FR5739.

Figura 2: Principali componenti della evaluation board MSP-EXP430FR5739

LE MODALITÀ DEMO

Un buon punto di partenza per effettuare i primi esperimenti sono le applicazioni sopracitate che nella documentazione TI sono associate a specifici modi di funzionamento della board. Queste modalità sono attivabili e selezionabili con i due pulsanti S1 ed S2 e gli otto LED presenti sulla board stessa.

MODALITÀ 1 E 2

Queste due modalità servono per verificare la massima velocità di scrittura e la modalità ULP (Ultra Low Power). I risultati verificabili con questo programma sono stati già indicati nei paragrafi precedenti. È interessante sapere che ogni 100 kB scritti in memoria viene effettuata una trasmissione verso UART per aggiornare il programma su PC (GUI) che visualizza in real time le velocità di scrittura (Figura 4). In questo modo è possibile quantificare le variazioni introdotte sulle performance da qualunque variante si vorrà aggiungere al programma base (ad esempio modifica del metodo di scrittura, utilizzo di DMA, etc.). La GUI è una rappresentazione grafica “comoda” dei dati che possono comunque essere monitorati anche con una semplice istanza di HyperTerminal. Con la modalità 2 è possibile “toccare con mano” il consumo davvero contenuto della scheda. Sarà necessario passare alla modalità (abilitata premendo S2 sulla board mentre è in corso la demo 1) per fare in modo che vengano spenti i LED di visualizzazione e disabilitata la trasmissione su UART.

In questo modo sarà attiva solo la scrittura in FRAM e un microamperometro posto sugli appositi terminali (rimuovere il ponticello VCC di J3 e sostituirlo con il microamperometro) permetterà di verificare che la memorizzazione dei dati in FRAM effettuata da un microcontrollore che lavora a 8 MHz è una operazione che consuma circa 800 µA. Quando si effettuano misure di correnti così piccole e si cercano indicazioni precise, occorre porre attenzione a tutti i particolari e quindi è raccomandabile analizzare attentamente il tipo e la sorgente dell’alimentazione data al circuito, l’ottimizzazione impostata per il compilatore (differenti metodi di accesso alla memoria possono variare considerevolmente i cicli e la loro durata), i ponticelli che potrebbero far fluire corrente anche verso circuiti non utilizzati e così via.

Figura 3: schema a blocchi dei microcontrollori MSP430FR573x

Figura 3: Schema a blocchi dei microcontrollori MSP430FR573x

 

Figura 4: immagine dell’interfaccia su PC.

Figura 4: Immagine dell’interfaccia su PC

MODALITÀ 3 E 4

Le modalità 3 e 4 sono molto simili e rappresentano un paio di applicazioni più realistiche di quelle precedentemente descritte. Viene infatti rilevata una grandezza analogica da un accelerometro (modalità 3) o da un NTC (modalità 4) e i dati rilevati vengono scritti in FRAM oltre che rappresentati sui led di debug della scheda. Queste applicazioni sono state sviluppate per evidenziare il fatto che l’elemento “lento” della catena di acquisizione e memorizzazione non è la memoria ma il convertitore AD. Selezionando infatti una velocità di 15 mila campioni al secondo (velocità di tutto rispetto per molti sistemi embedded di fascia bassa), si può facilmente calcolare che per la memorizzazione dei dati in FLASH occorrerebbe usare un buffer di RAM di appoggio in quanto la memoria non consente una scrittura a un rate così sostenuto. La scrittura in FRAM invece avviene direttamente, senza ritardi, e questo consente di progettare applicazioni che memorizzano in FRAM, a piena velocità, l’andamento dei segnali analogici da monitorare, permettendone poi una successiva analisi dettagliata (tipico caso dei data logger).

NUOVE PROSPETTIVE PER IL FUTURO

Le memorie FRAM sono presenti sul mercato dei semiconduttori da diversi anni con una quantità di componenti che supera 150 milioni di unità vendute dalla sola Ramtron. Il prezzo iniziale di questa tecnologia aveva portato i soli costruttori di dispositivi di pregio a scegliere le FRAM e oggi Mercedes, GM, BMW, Ford, Porsche e altri costruttori utilizzano FRAM nei loro progetti. TI, che attualmente produce le FRAM Ramtron da 4 Mb e 2 Mb, ha iniziato nell’agosto scorso la produzione in massa dei nuovi microcontrollori FRAM con un piano di forte espansione dei dispositivi della nuova famiglia. Possiamo quindi dire che questa tecnologia debba ancora conoscere il suo massimo splendore anche se il fatto di poter leggere e scrivere la memoria ROM come fosse una RAM apre, fin da subito, scenari molto stimolanti. Immaginiamo possibilità quali lo scrivere codice che modifica sé stesso direttamente in memoria, variabili di RAM che senza alcuna operazione aggiuntiva conservano il loro valore anche in seguito a spegnimenti e ri-accensioni improvvise (e magari impreviste) oppure consideriamo semplicemente l’aggiornamento del codice installato che può avvalersi di algoritmi molto più semplici e veloci. Immaginiamo il poter utilizzare la tecnologia FRAM associata a consumi tipici dell’energy harvesting. Queste prospettive non possono che portare ogni buon firmwarista a sognare nuove e sensazionali applicazioni. Applicazioni che saranno il cuore dei dispositivi di domani... o magari già di quelli di oggi.

L’UOVO DI COLOMBO

La tecnologia FRAM sembrerebbe avere solo lati positivi e quindi ci si chiede come mai la FLASH sia ancora la tecnologia dominante. La realtà dei fatti impone di fare alcune precisazioni. La tecnologia FRAM è basata su un’architettura che prevede la riscrittura del bit nella cella che lo memorizza anche in caso di semplice lettura. In altri termini, ogni volta che un bit di FRAM viene letto, in verità viene anche riscritto con il suo stesso valore. Ciò provoca un invecchiamento della memoria anche se solo e sempre usata in lettura. Questo limite è noto fin dalle prime apparizioni sul mercato di memorie FRAM ed è sempre stato tenuto in considerazione dai progettisti i quali, benché possano contare su un numero molto elevato di cicli di riscrittura, non possono ignorare che questi possono essere esauriti anche con la sola lettura dei dati presenti in memoria.

Un’architettura del genere non potrebbe essere utilizzabile per la memoria ROM di un microcontrollore perché lo stesso fetch del codice esaurirebbe rapidamente i cicli di vita della memoria. TI ha risolto il problema interponendo tra memoria e utilizzatore una sorta di memoria cache in RAM che limita i reali accessi alla FRAM rendendo disponibili in cache i dati già letti (codice o no). Ovviamente, questa soluzione non risolve completamente il problema e particolari applicazioni potrebbero dover tenere conto dell’invecchiamento della memoria. È però vero che accurati studi statistici e un’intelligente progettazione dello strato di cache hanno permesso a TI di mettere sul mercato dispositivi dei quali possiamo immaginare un ciclo di vita equiparabile (se non più lungo) a quello di dispositivi che usano altre tecnologie.

Scarica subito una copia gratis

Una risposta

  1. Daniele Valanzuolo 30 Gennaio 2022

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend