Principi di funzionamento delle memorie

Non solo RAM, ma anche CMOS, EPROM e memorie flash

dicembre 2006 Quando si parla di memoria è immediato pensare
alla RAM del nostro PC. Eppure, la RAM è solo uno dei molti tipi di memoria
esistenti e la RAM di sistema del PC non è che uno degli impieghi della
RAM nell’architettura generale del computer. Troviamo infatti memorie
anche come sottocomponenti dei vari elementi di cui si compone un PC.

Il disco rigido, per esempio, è un’unità di memoria di
massa basata su tecnologia magnetica, ma incorpora anche un quantitativo di
RAM volatile usata come cache memory (di solito 8-16 MB) al fine di migliorare
le prestazioni percepibili in fase di lettura e rilettura di dati recenti; nei
recenti modelli SATA con NCQ, la stessa memoria serve anche per memorizzare
ed elaborare la coda di richieste di I/O emesse dal sistema operativo al fine
di ottimizzare l’ordine in cui servirle.

Sono inoltre in arrivo hard disk “ibridi”, in cui una quantità
di flash memory (inizialmente dell’ordine di 1 Gbit) affianca la ben più
grande capacità di tradizionale memoria magnetica con il duplice scopo
di migliorare le prestazioni al boot e ridurre i consumi elettrici (specie sui
laptop). Infatti, a seguito dell’accensione la flash memory risulta leggibile
senza dover attendere che la velocità di rotazione del disco vada a regime,
tenendo fermo il disco ogni volta che è possibile farlo: essendo non
volatile, la flash memory può essere usata come buffer di scrittura per
accumulare i dati scritti prima di scaricarli effettivamente su disco, cosa
inaccettabile con una cache RAM in quanto una perdita di alimentazione farebbe
perdere i dati in transito.

Una scheda video di ultima generazione richiede una grande quantità
di memoria (fino a 1 GB nei modelli top), con ulteriori importanti requisiti
riguardo la velocità di lettura/scrittura e la concorrenza nell’accesso
(esiste, per esempio, un tipo di memoria dual ported o Video-RAM
– VRAM – che permette al chip grafico di scrivere nel display file nello
stesso momento in cui il RAMDAC lo legge per generare il segnale video). È
infatti importante poter disporre di una elevata banda passante fra il chip
grafico e il banco di memoria, al fine di poter velocizzare al massimo le operazioni
di ridisegno della scena, nelle applicazioni multimediali o nei giochi. La capacità
di questo canale di comunicazione si ottiene aumentando contemporaneamente la
frequenza di lavoro e la larghezza di banda (256 o 512 bit).

La stessa scheda madre contiene un certo quantitativo di RAM non volatile
per contenere le impostazioni del BIOS (la cosiddetta CMOS Memory).
La sua persistenza è assicurata (per un tempo non illimitato) da una
batteria tampone ricaricabile montata sulla motherboard: di solito si tratta
di una batteria “a moneta” all’ossido di litio. Sempre sulla
motherboard, vi è un banco di memoria non volatile di medie dimensioni
(dell’ordine di 128 Kbyte) destinato a contenere il codice del BIOS e
altro firm­ware necessario a governare il funzionamento della motherboard
e il suo programma di configurazione e controllo. Questo secondo banco è
oggi implementato in tecnologia EEPROM o Flash.

Impieghi della memoria fuori dal PC
Anche uscendo dall’unità centrale troviamo banchi di memoria: ne
sono dotati gli scanner, che si avvalgono di banchi RAM come buffer per i pixel
acquisiti in attesa di spedirli al PC via USB; ne sono dotate le stampanti,
soprattutto quelle laser che devono comporre l’intera pagina prima di
poter avviare il processo di stampa (fanno eccezione le stampanti che utilizzano
la memoria di sistema del PC); troviamo memoria perfino nelle webcam, in cui
il processore di segnale necessita di un’area di appoggio per comprimere
o elaborare le immagini prima di inviarle all’host. Perfino un monitor,
una tastiera o un mouse contengono memoria, rispettivamente: per salvare le
impostazioni dell’OSD; per ricordare l’ultimo tasto premuto o per
salvare lo stato di tasti bistabili come Caps Lock e Num Lock; per elaborare
le immagini del sensore ottico al fine di stimare direzione e velocità
di movimento.

Schede di acquisizione video, switch e router di rete, schede sonore USB e
schede Wi-Fi sono tutti esempi di periferiche che usano RAM e memoria non volatile
per il proprio funzionamento e per salvare le proprie impostazioni di configurazione.
Non soltanto i personal computer, ma anche un gran numero di dispositivi digitali
sempre più diffusi non sarebbero neppure concepibili senza memorie.

Un classico esempio è il telefono cellulare, dove troviamo memoria nella
SIM, nell’apparecchio e nella scheda d’espansione per impostazioni,
contatti, sfondi, suonerie, foto e musica. Anche per altri dispositivi come
i player multimediali, le fotocamere e le videocamere digitali la memoria ha
un’importanza cruciale. In particolare, sono fondamentali la capacità
della memoria, il fatto che sia non volatile e che abbia un tempo d’accesso
basso anche in scrittura, così da velocizzare al massimo le operazioni
di caricamento dei brani dal PC all’apparecchio. Quando la memoria è
rimovibile, diventa assai rilevante anche il suo formato: per le videocamere
digitali la scelta è fra nastro (prevalente il formato MiniDV), hard
disk e DVD; per le fotocamere conta il formato della flash card, oltre alla
velocità d’accesso.

Anche gli apparecchi digitali di home entertainment sono consumatori di memoria,
sia per quanto riguarda i supporti destinati a ospitare i contenuti, sia per
i banchi di RAM necessari per le esigenze di funzionamento del sistema operativo,
dell’OSD e degli algoritmi di elaborazione del segnale.

La memoria “per antonomasia”: RAM
Come già osservato, però, quando si parla di memoria è
scontato che il pensiero vada alla tipologia di maggior impatto sulle prestazioni
e sul costo di un moderno PC: la RAM (Random Access Memory), così nominata
poiché possiede un tempo d’accesso indipendente dalla posizione
della locazione indirizzata e dall’ordine con cui si accede alle celle.
Due proprietà che la contrappongono a tutti quei tipi di memoria a funzionamento
sequenziale o semisequenziale come le unità a nastro e quelle a disco.
Esistono due categorie principali di RAM: la RAM Dinamica (DRAM) e la RAM statica
(SRAM), realizzate con tecnologia a semiconduttori.

La DRAM è una memoria volatile con consumo elettrico medio-alto,
alta velocità d’accesso e alta densità spaziale. Il suo principio di funzionamento
si basa sul fatto che un condensatore caricato elettricamente, se ben isolato,
si mantiene in questo stato per un certo tempo. Associando allo stato carico
il significato di bit 1 e a quello scarico il significato 0, possiamo usare
questo condensatore per rappresentare un bit. Il condensatore, però, tende spontaneamente
a scaricarsi in un tempo che, con le basse tensioni e correnti in gioco e a
questa scala dimensionale, si aggira sulle decine di millisecondi. L’unico modo
per evitare che la memoria perda il suo contenuto è riscriverla periodicamente:
questo processo si chiama refresh, consuma ovviamente energia elettrica e richiede
un certo tempo, durante il quale la parte di memoria interessata non è accessibile.
Questo è uno dei motivi per cui la RAM è meno veloce della SRAM usata, ad esempio,
per la cache del processore.

La SRAM è infatti realizzata in modo tale che i bit mantengano
il loro stato senza richiedere rinfresco periodico, a condizione che venga alimentato
il circuito. Purtroppo, nella SRAM ogni bit è fisicamente implementato come
una rete di ben 6 transistor (ognuno più ingombrante del condensatore usato
per un bit della DRAM), ragion per cui l’area occupata a parità di capacità
è molto superiore a quella della DRAM (in altre parole, la densità spaziale
della SRAM è molto minore), facendo lievitare anche i costi; inoltre, a causa
della necessità di alimentazione continua, il consumo elettrico della SRAM dipende
fortemente dalla frequenza di lavoro ma è comunque non trascurabile.
Queste caratteristiche rendono impraticabile la realizzazione di banchi di SRAM
di grandi dimensioni, pertanto la SRAM viene utilizzata in piccoli quantitativi
in applicazioni particolari, nelle quali per la sua elevata velocità essa può
migliorare le prestazioni di un componente: l’esempio tipico è la cache memory
della CPU, che deve poter funzionare a frequenze elevate anche a costo di assorbire
correnti elevate.

I moduli di RAM di sistema abitualmente usati nei PC contemporanei sono costituiti
da DRAM organizzate in un’architettura logica detta SDRAM, in cui il modulo
accetta sequenze di richieste di lettura e scrittura che vengono servite con
alcuni cicli di ritardo (latenza), ma senza che questo richieda di sospendere
l’invio di nuove richieste.

La banda passante, ossia la capacità del canale di comunicazione che
questi moduli rendono disponibile verso la CPU, dipende dalla frequenza di funzionamento,
dalla larghezza di parola e dal numero di trasferimenti dati che è possibile
attuare a ogni ciclo di clock.

Per esempio, nelle SDRAM DDR (Double Data Rate) a ogni impulso di clock il
controller è in grado di trasferire, su ogni linea di connessione, due
bit anziché uno solo: un bit viene trasferito sul fronte di salita e
uno sul fronte di discesa. Così, un chip funzionante a 200 MHz può
effettuare 400 milioni di trasferimenti al secondo (MT/s), donde il nome di
memoria DDR-400. Assemblando un certo numero di chip DDR-400 si realizzano moduli
di memoria il cui bus in ciascuna direzione è largo 64 bit, pertanto
ogni trasferimento sposta 8 byte. A 400 MT/s, questo corrisponde a una banda
passante di 3.2 Gbyte/s, da cui il nome dei moduli questo tipo di memoria: PC3200.

Il principio di funzionamento viene ulteriormente ottimizzato nella tecnologia
DDR2, in cui il controller trasferisce sempre 2 bit per ciclo
di clock lavorando però a una frequenza doppia rispetto a quella della
RAM. La banda disponibile raddoppia: a 200 MHz abbiamo così dei chip
DDR2-800 e moduli di memoria PC2-6400. La contropartita, dovuta al fatto che
i dati vengono comunque estratti da una memoria che internamente funziona sempre
alla stessa velocità, è una latenza maggiore. Le memorie DDR3
di prossima introduzione esaspereranno ulteriormente questo trade-off, con un
raddoppio della larghezza del prefetch buffer e della frequenza di lavoro del
controller che garantiranno un raddoppio della banda passante, ma anche un deciso
aumento della latenza.

La latenza, ossia il ritardo con cui il chip di memoria inizia
a rispondere a una richiesta di dati, è la somma di vari ritardi elementari
che si verificano in vari punti della sua architettura logica. Così,
per esempio, l’indicazione “2-2-2-5-1” sta a indicare rispettivamente
i cinque ritardi funzionali (CAS, RAS to CAS, Row precharge, Row activation,
Command) che concorrono a formare la latenza complessiva del modulo, espressi
in cicli di clock. Più bassi sono questi valori (e la loro somma) e migliori
sono le prestazioni del modulo.

Memorie non volatili: EPROM, EEPROM e Flash
Una configurazione circuitale opportuna può trasformare i transistor,
solitamente impiegati nei circuiti digitali come interruttori comandati, in
vere e proprie “trappole di carica” impiegabili per memorizzare
un bit proprio come i condensatori delle DRAM. Grazie al miglior isolamento,
in assenza di alimentazione questi transistor mantengono il loro stato di carica
non per decine di millisecondi come farebbero le DRAM, ma per decine d’anni.

I chip di memoria EPROM (Erasable Programmable ROM), in passato
usati anche per memorizzare il BIOS delle motherboard, sfruttavano questo principio.
Erano riconoscibili per la finestrella trasparente che sovrastava il chip e
serviva per la cancellazione, tramite esposizione a luce ultravioletta per alcuni
secondi.

Questo scomodo sistema di cancellazione fu superato nei chip EEPROM
(Electrically Erasable Programmable ROM), in cui si usava un segnale elettrico:
con essi diventava possibile scrivere e leggere una memoria non volatile in
modo elettrico, e quindi direttamente sul sito circuitale, senza bisogno di
smontarla per trattarla con attrezzature esterne.

La più recente evoluzione delle EEPROM è la flash memory,
un tipo di EEPROM che non permette di indirizzare singoli bit, ma viene scritto
a blocchi proprio come un disco fisso. Questo, fra l’altro, accelera il
processo naturale di deterioramento dell’isolante che assicura ai transistor
la loro proprietà di mantenere lo stato per lungo tempo, e accorcia di
molto la longevità delle flash rispetto alle EEPROM in termini di numero
di cicli di cancellazione sopportabili (dell’ordine del milione di cicli
per le flash memory).

In compenso, le flash memory risultano molto più economiche da fabbricare
delle EEPROM e hanno riscosso uno straordinario successo, come tutti sanno,
come memorie di massa per tutti i tipi di dispositivi digitali. Esistono due
tipi di flash memory, a seconda del tipo di porta logica usata per implementare
una cella da un bit: i chip NOR e i chip NAND.

I chip NAND, i più usati, hanno migliori prestazioni,
maggior densità, minor costo e maggior durata ma, a differenza dei NOR,
non si prestano bene ad accessi non sequenziali. Pertanto, nelle applicazioni
in cui il chip flash deve ospitare un programma da eseguire direttamente senza
trasferirlo prima in RAM, come il BIOS di una motherboard, è necessario
usare flash memory basate su chip NOR.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome