vuoi
o PayPal
tutte le volte che vuoi
LEVELING:
-BAD rilevamento e riallocazione trasparente con blocchi di riserva dei settori
BLOCK:
danneggiati
-MEMORIA interna del dispositivo
CACHE:
-GARBAGE rilevamento e riduzione automatica della frammentazione
COLLECTION:
dell’organizzazione interna del disco
-CRIPTAZIONE DEI DATI
Uno dei primi controller utilizzati nei dischi SSD capace di offrire prestazioni discrete a prezzi
molto interessanti è quello fornito da JMicron e indicato con la sigla JMF602B. Tale controller
è oggi affiancato dal nuovo modello JMF612 e da altri modelli di produttori diversi come il
Barefoot di Indilinx basati su core ARM9 e dotati di un massimo di 256MB di memoria cache di
tipo DDR o DDR2. Questi ultimi offrono prestazioni decisamente elevate grazie ad una
architettura a otto canali (il doppio di quelli garantiti dai primi controller) che permette di
raggiungere velocità di lettura e scrittura fino a 250 MB/s e la gestione di un massimo di 8.000
operazioni di I/O al secondo.
I controller di attuale generazione si occupano anche del problema del decadimento
prestazionale dei dischi SSD che avviene dopo un primo periodo di utilizzo a causa della
necessità delle cancellazioni dei dati precedenti ovviamente non necessarie nel momento in cui
il disco è vuoto . 2
In merito a questa situazione una particolare Controller in un SSD (Samsung)
implementazione è quella realizzata da Intel che ha
adottato una tecnica molto costosa ma davvero
efficace. Il produttore, infatti, detiene ancora
diversi record di performance nonostante i
controller SSD dei suoi concorrenti abbiano fatto
notevoli passi avanti. L’idea di Intel è stata quella di
affiancare ogni blocco di celle della memoria flash
con un ulteriore blocco di dimensioni più contenute
da utilizzare come buffer. Tale buffer è mantenuto
sempre vuoto in modo da scrivere immediatamente i
dati provenienti dal sistema al suo interno.
Una successiva operazione, trasparente per il sistema e per l’utente ma gestita proprio dal
controller, permette di copiare il contenuto dal buffer nello spazio di memoria realmente
disponibile del disco ripulendo nuovamente il buffer e tenendolo pronto per successive
operazioni di scrittura. In questo modo le operazioni di scrittura non sono inficiate dai tempi
necessari alla cancellazione delle celle eventualmente occupate e, a differenza dell´utilizzo di
un buffer di memoria RAM (volatile), anche nel caso in cui ci sia perdita di alimentazione i dati
non vengono persi.
Memoria Cache
La memoria Cache è una memoria solitamente di pochi MB utilizzata dal processore per
immagazzinare temporaneamente informazioni. Essa viene quindi riempita e svuotata molte
volte.
Supercondensatore
Una novità introdotta dalle memorie a stato solido è la possibilità di terminare le operazioni di
scrittura anche in caso di mancanza di tensione. Questo avviene grazie alla presenza di un
supercondensatore o, più raramente, di una batteria di backup, che garantisce energia
sufficiente per concludere l'operazione in corso. Questa tecnica permette di garantire una
maggiore integrità dei dati ed evitare che il filesystem risulti corrotto.
Interfaccia
La connessione può avvenire con cavi di tipo SATA, sia per quanto riguarda la connessione dati
che per l'alimentazione. In definitiva è possibile collegare un SSD utilizzando una normale
interfaccia SATA2 (3Gb/s) o SATA3 (6Gb/s). Vi sono inoltre SSD che utilizzano interfacce PATA
e PCI Express. 3
Lettura
La rilevazione del dato (operazione di lettura)
avviene applicando una tensione al Control
Gate e misurando il passaggio di corrente fra
Source e Drain. Se il Floating Gate contiene
elettroni al suo interno, il campo elettrico
generato dall´applicazione della tensione sul
Control Gate sarà bloccato e non scorrerà
alcuna tensione fra Source e Drain. Al
contrario, se nel Floating Gate non sono
presenti elettroni, la tensione applicata sul
Control Gate farà fluire corrente fra gli elementi
di Source e Drain del mosfet. L´assenza o la
presenza di tale corrente viene tradotta
semplicemente in un valore 1 o 0 logico.
Scrittura
L´operazione di scrittura del dato nella cella di
memoria è un po´ più complicata ma il discorso
di base tutto sommato è abbastanza lineare. Per
poter inserire e togliere gli elettroni dal
Floating Gate, visto che come abbiamo detto
esso è isolato dal resto del mosfet, occorre
sfruttare un paio di fenomeni della fisica
quantistica, meglio noti come iniezione a
valanga (hot carrier injection) ed effetto tunnel
rispettivamente. Quando si vuole scrivere un
bit 0 su una memoria flash è necessario far
scorrere elettroni all´interno del Floating Gate.
In pratica si crea un flusso di corrente fra
Source e Drain mentre si applica una tensione
abbastanza elevata sul Control Gate: si genera così un campo elettrico sufficiente ad
accellerare gli elettroni che saltano letteralmente la barriera isolante e finiscono nel Floating
Gate. Quando invece si vuole scrivere un bit 1 occorre svuotare il Floating Gate da tutti (o
quasi) gli elettroni presenti al suo interno. In tal caso si utilizza l´effetto tunnel generato da una
differenza di potenziale fra Control Gate e Drain che spinge gli elettroni fuori dal Floating
Gate verso il Drain. 4
Livelli SSD
Le celle di memoria utilizzate attualmente per realizzare un disco SSD sono di due tipi.
Generalmente si parla di memorie flash Single Level Cell (SLC) quando ogni cella può
memorizzare al massimo un solo bit di informazione e di memorie flash Multi Level Cell (MLC)
quando ogni cella è in grado di memorizzare due o più bit di informazione. Costruendo un disco
SSD con MLC capite bene che è molto facile ottenere capacità di memorizzazione decisamente
superiori rispetto a quelle che possono essere raggiunte con le SLC. In commercio oggi sono
disponibili dischi con SLC e MLC a due livelli in grado di contenere due dati per ogni cella e
dunque con capacità doppia.
Ma è davvero tutto oro ciò che luccica? Assolutamente no. La tecnologia MLC prevede
operazioni di lettura e scrittura più complesse rispetto alla tecnologia SLC e dunque risulta più
lenta. Prendendo ad esempio una MLC a due livelli, per leggere un dato sono necessari due
cicli e la cosa si fa ancora più complicata nella scrittura rispetto alle SLC.
Single Level Cell
Nelle operazioni di lettura di una SLC per rilevare una singola informazione è sufficiente capire
se scorre o meno corrente fra Drain e Source nel momento in cui applichiamo una tensione al
Gate. Il risultato sarà uno 0 oppure un 1 in base alla tensione di soglia Vt della cella. La
tensione di soglia può essere manipolata dalla quantità di carica elettronica presente
all´interno del Floating Gate. In generale, quando la tensione di soglia è abbastanza elevata, la
cella sarà letta come programmata. Il delta fra i due livelli 0 e 1 è abbastanza netto e questo fa sì
che non siano necessarie verifiche particolari per le SLC durante la scrittura o la lettura.
Multi Level Cell
Con una memoria flash MLC a due bit, le informazioni a disposizione sono quattro, ovvero 00,
01, 10 e 11 in base a come essa viene letta. I quattro stati elettronici sono indicati come
completamente programmata, parzialmente programmata, parzialmente cancellata e
completamente cancellata. Si intuisce da queste denominazioni che sarà proprio il livello di
carica elettronica imposta al Floating Gate a determinare il valore del dato. Come si vede dalla
figura seguente, la differenza fra i quattro livelli di tensione di soglia (delta) è molto meno
marcata che in precedenza. Questo implica per le MLC una programmazione più rigidamente
controllata in modo da manipolare una quantità di carica più precisa da immagazzinare nel
Floating Gate. 5
Con le memorie MLC le operazioni di lettura sono sempre basate sulle tensioni di soglia della
cella. In questo caso si effettua una ricerca dicotomica del valore con due passaggi. Prima si
impone una tensione di soglia centrale di 4V e si valuta se il mosfet conduce (dobbiamo
guardare i dati a destra) o meno (dobbiamo guardare i dati a sinistra). A questo punto si
impone una tensione di soglia nuovamente centrale ma nell´intervallo prescelto e si valuta il
risultato.
In quanto alle operazioni di scrittura è necessario effettuare prima una cancellazione delle
celle di un blocco e poi riscrivere l´intero blocco con il nuovo dato. Nel caso delle memorie SLC
la cancellazione e scrittura di una singola cella non comporta problemi particolari, mentre con
le memorie MLC occorrono diversi passaggi:
1)Scrittura del dato 11 nella cella.
2)Verifica del dato 11.
3)Scrittura del valore desiderato.
4)Verifica del valore desiderato.
Mettiamo dunque a confronto diretto le caratteristiche delle memorie SLC con quelle delle
memorie MLC e cerchiamo di coglierne vantaggi e svantaggi.
Densità di memorizzazione
Considerando lo stesso processo produttivo e le stesse dimensioni del chip, le memorie MLC a
due bit offrono una capacità doppia rispetto a quelle SLC.
Prestazioni
Sempre nelle stesse condizioni del punto precedente, le memorie MLC richiedono tempi da due
a tre volte superiori nella scrittura rispetto alle memorie SLC. I tempi - dunque le prestazioni -
in lettura sono invece molto simili grazie all´utilizzo di un comparatore di tensione nella
rilevazione dei livelli di soglia che esegue il controllo praticamente all´istante.
Potenza assorbita
Non ci sono grosse differenze circuitali fra memorie flash MLC ed SLC dunque anche i
consumi sono all´incirca gli stessi. 6
Vita media
Le memorie flash MLC hanno una valore di vita media di almeno un ordine di grandezza
inferiore se comparato con quello delle memorie SLC: il degrado del silicio dovuto al
surriscaldamento ed alle correnti di dispersione fa sì che venga man mano ridotta la
differenziazione fra i livelli riducendo così la sicurezza nella rilevazione del dato. Si consideri
comunque che 10.000 cicli corrispondono - se consideriamo un disco da 64GB - a scrivere 40
TB di dati in un periodo di 5 anni di vita, ovvero 22 GB di nuovi dati al giorno. Con un disco da
128 GB i valori raddoppiano. Se però volessimo utilizzare dischi SSD con sistemi che scrivono
continuamente sul disco come server o personal video recorder (PVR), allora la scelta deve
necessariamente cadere su dischi che utilizzano memorie flash SLC.
Correzione dell´errore
Allo stesso modo in cui un hard disk tradizionale può avere qualche settore rovinato, le
memorie NAND flash prevedono una mappa gestita dal controller che tiene conto di eventuali
a