Newsgroup: it.comp.hardware.storage
Titolo: SSD, panoramica memorie Flash NAND, Agosto 2011 (Parte 2)

Un Solid State Drive e' composto principalmente da tre elementi:
il controller, il firmware e la memoria NAND. Prestazioni, efficienza,
longevita' ed affidabilita', dipendono dalla combinazione di questi
tre elementi, di solito NAND e controller sono prodotti da fornitori
esterni, il firmware e' invece sviluppato in proprio dal produttore di SSD.
Ci sono produttori che sono anche fornitori di tutti i componenti,
per esempio Intel con la serie 320 e Samsung con la serie 470 .
In molti casi il produttore si limita ad usare la scheda (PCB) di
riferimento fornita insieme al controller e si limita a personalizzare
il firmware ed occuparsi dell'assemblaggio, al momento solo l'OCZ
si distingue per la progettazione anche del PCB.
Questa volta ci soffermiamo sulle memorie, la prossima volta
analizzeremo controller e firmware.
Nella prima parte "SSD, panoramica controller, Agosto 2011 .."
(4/8/2011) abbiamo analizzato le prestazioni dei migliori
controller per SSD : SandForce e Marvell .
(Google Gruppi : 
http://tinyurl.com/ssd201108controller
 )
MEMORIE FLASH NAND (PARTE 2)
--------------------
Le memorie utilizzate nei Solid State Drive sono di tipo Flash NAND
ed i maggiori produttori sono Toshiba, Samsung, IMFT (join venture
di Intel e Micron) ed Hynix. Non si affrontera' l'aspetto tecnico legato
al funzionamento delle memorie ne' tantomeno l'aspetto longevita'
ed affidabilita' legato al processo produttivo: sara' valutato l'impatto
che hanno i diversi tipi di memoria sulle prestazioni nei moderni SSD.
Panoramica memorie NAND :
- Intel 25nm ONFI Asincrone
   (OCZ Solid 3, Intel 320)
- Micron 25nm ONFI Asincrone
   (OCZ Agility 3, OCZ RevoDrive 3 e X2 , Corsair Force, Mushkin Chronos)
- Intel 25nm ONFI 2.x Sincrone
  (OCZ Vertex 3, AData S511, Kingston HyperX SSD)
- Micron 25nm ONFI 2.x Sincrone
  (Crucial m4, Corsair Force GT)
- Micron 34nm ONFI 2.x Sincrone
  (Crucial C300)
- Intel 34nm ONFI 2.x Sincrone
   (Intel 510 *da confermare)
- Intel 34nm ONFI 1.0
   (Intel X25-M e X25-V)
- Toshiba 32nm Toggle DDR 1.0
   (Corsair Performance 3, Plextor PX-M2, OCZ Vertex 3 Max IOPS,
    Patriot Wildfire, Mushkin Chronos Deluxe)
- Samsung 32nm Toggle DDR 1.0
   (Samsung 470)
- Intel/Micron/Hynix/Toshiba 34/32/25nm ONFI 1.0/Toggle SDR
   (OCZ Vertex e Vertex 2, Corsair Force, Kingston V e V+ , V100 e V+100,
   Patriot Torqx 2 , altri ...)
Le memorie NAND possono seguire diversi standard, ONFI
(Intel e Micron) e Jedec/Toggle (Samsung e Toshiba), che
descrivono caratteristiche fisiche, elettriche e set comandi.
Per entrambe esistono diversi specifiche che differenziano le
velocita' per ogni singolo modulo ed altre peculiarita'.
Per le ONFI (Open NAND Flash Interface):
- ONFI 1.0 : prima versione e velocita' massima di 50MB/s
- ONFI 2.x (2.0-2.1-2.2-2.3) : velocita' massima di 133-166-200MB/s
  ed introduzone della modalita' sincrona ed interleaving
- ONFI 3.0 : velocita' massima di 400MB/s
Per le Jedec/Toggle:
Toggle SDR : asincrone
Toggle DDR 1.0 : sincrone, velocita' 133Mbps (massimo 200Mbps)
Toggle DDR 2.0 : sincrone, velocita' 400Mbps
Le velocita' indicate sono da intendersi per singolo modulo,
considerando che un controller dispone di piu' canali e
che ogni canale puo' pilotare piu' moduli , le velocita'
disponibili all'host risultano maggiori (tipicamente 200-250MB/s
per il SATA-II e 500-550MB/s per il SATA-III).
I nuovi modelli di SSD con interfaccia SATA-III si
distinguono non solo per il controller, SandForce e Marvell,
ma anche per le memorie NAND: ONFI asincrone,
ONFI 2.x sincrone e Toggle DDR (in ordine di prestazioni).
A parita' di canali gestiti dal controller , la differenza e'
data anche dal numero di chip di memoria utilizzati
e dal numero di die contenuti in ogni chip (che permettono
l'interleaving migliorando le prestazioni). Moltiplicando
il numero dei chip di memoria per i die contenuti, otteniamo il
numero di die controllati in parallelo: maggiori sono i die (device)
migliori sono le prestazioni .
Anche per questo motivo gli SSD con capacita' maggiori hanno
prestazioni superiori, il miglior compromesso sembra essere
32 die con interleaving pari a 4. Di seguito una tabella riepilogativa
del numero di die (elenco parziale):
32 (8 NAND x 4 Die) x 4GB - Corsair P3 128GB (Toshiba 32nm Toggle DDR)
32 (16 NAND x 2 Die) x 4GB - Intel 510 120GB (Intel 34nm ONFI Sincrone)
32 (16 NAND x 2 Die) x 4GB - Crucial C300 128GB (Micron 34nm ONFI 2 Sync)
16 (8 NAND x 2 Die) x 4GB - Crucial m4 64GB (Micron 25nm ONFI 2 Sync)
32 (16 NAND x 2 Die) x 4GB - Crucial m4 128GB (Micron 25nm ONFI 2 Sync)
32 (16 NAND x 2 Die) x 8GB - Crucial m4 256GB (Micron 25nm ONFI 2 Sync)
16 (16 NAND x 1 Die) x 8GB - OCZ Vertex 3 120GB (Intel 25nm ONFI 2 Sync)
32 (16 NAND x 2 Die) x 8 GB - OCZ Vertex 3 240GB (Intel 25nm ONFI 2 Sync)
32 (8 NAND x 4 Die) x 4 GB - OCZ Vertex 3 MI 120GB (Toshiba 32nm Toggle DDR)
64 (16 NAND x 4 Die) x 4 GB - OCZ Vertex 3 MI 240GB (Toshiba 32nm ToggleDDR)
8 (8 NAND x 1 Die) x 4GB- OCZ Agility 3 60GB (Micron 25nm ONFI Async)
16 (16 NAND x 1 Die) x 4GB - OCZ Agility 3 120GB (Micron 25nm ONFI Async)
32 (16 NAND x 2 Die) x 4GB - OCZ Agility 3 240GB (Micron 25nm ONFI Async)
16 (16 NAND x 1 Die) x 4GB - Corsair Force 3 120GB (Micron 25nm ONFI Async)
32 (16 NAND x 2 Die) x 4GB - Corsair Force 3 240GB (Micron 25nm ONFI Async)
16 (16 NAND x 1 Die) x 4GB - Corsair Force GT 120GB (Micron 25nm ONFI Ssync)
32 (16 NAND x 2 Die) x 4GB - Corsair Force GT 240GB (Micron 25nm ONFI Ssync)
A parita' di controller, il ruolo delle memorie utilizzate incide
notevolmente sulle prestazioni. A seguire le differenze di prestazioni
con i nuovi controller SandForce SF2281 , a parita' di capacita' e numero
di die/device:
- ONFI Asincrone - Ottime prestazioni con dati comprimibili,
  e basse prestazioni con dati non comprimibili
- ONFI Sincrone - Ottime prestazioni con dati comprimibili,
  e buone/ottime prestazioni con dati non comprimibili
- Toggle DDR - Ottime prestazioni sia con dati comprimibili
  che non
Gli SSD con controller Marvell usano solo memorie sincrone:
di tipo ONFI per Crucial m4 ed Intel 510 , e di tipo Toggle DDR
per Corsair P3 e Plextor . Le prestazioni variano solo in base
al numero di die per chip di memoria ed incide piu' sulla scrittura,
inoltre, a differenza dei controller SandForce, con i Marvell le
prestazioni sono costanti a prescindere dal tipo di informazione
(non c'e' compressione/deduplicazione dati).
Per analizzare le prestazioni si possono usare dei bench, su tutti
ATTO che indica il massimo sequenziale con dati ripetibili
(maggiormente comprimibili e caso migliore per i SandForce) ,
ed AS-SSD che indica sia il trasferimento sequenziale che
il numero di IOPS in accesso casuale (i dati sono random
e non comprimibili, caso sfavorevole per i SandForce).
Per analizzare il comportamento in lettura e scrittura sequenziale
(test compressione di AS-SSD) occorre visualizzare il grafico :
 
http://i56.tinypic.com/v6sw8i.gif
 (Lettura 120GB)
Sulla sinistra le prestazioni sono quelle sfavorevoli con dati non
ripetibili e non comprimibili (ad esempio file multimediali o file gia'
compressi) , sulla destra, invece, le prestazioni con dati altamente
comprimibili (rari se non impossibili da trovare) . Programmi, librerie,
documenti office, posta elettronica, ecc. , hanno un livello di
compressione compreso tra il 33% ed il 66%.
Per le prestazioni in accesso casuale (IOPS) il ragionamento e'
lo stesso, cambiano i risultati perche' i vari controller si comportano
in modo diverso: non ci sono sufficienti test in rete sui nuovi prodotti
per analizzare i livelli di compressione, si segnala il nuovo bench
Anvil Pro con numerosi test sequenziali e casuali, con 6 differenti
livelli di compressione.
I modelli analizzati (tra parentesi alcuni prodotti con prestazioni
simili):
- Agility 3 (idem per Force 3, Pyro, Chronos)
- Vertex 3 (idem per Force GT, S511, Kingston HyperX)
- Vertex 3 Max IOPS (idem per Wildfire, Chronos Deluxe)
- Crucial m4 (come riferimento)
In lettura le memorie sincrone si comportano benissimo, sia con
il Crucial m4 (prestazioni costanti pari a circa 410MB/s) che con i due
modelli di Vertex 3 (iniziano da 425-450MB/s ed arrivano a
490-500 MB/s). Purtroppo non si puo' dire altrettanto delle memorie
asincrone (Agility 3) che raggiungono buone prestazioni solo con dati
molto comprimibili (420MB/s) per scendere alla meta' con dati
random (sotto i 200MB/s).
In scrittura sequenziale escono fuori le unghie dei SandForce:
 
http://i56.tinypic.com/30m3hhe.gif
 (Scrittura 120GB)
In ogni caso le prestazioni sono superiori al Crucial m4 ,
con le memorie asincrone e sincrone (16 die) nell'utilizzo medio
raggiungono un transfer rate compreso tra i 200 ed i 300 MB/s
(con il Vertex 3 che distacca l'Agility 3 con l'aumento del livello di
compressione) . Le memorie Toggle DDR abbinate ad una
configurazione di 32 die (Vertex 3 Max IOPS) hanno prestazioni
comprese tra i 300 ed i 400 MB/s (sempre nell'utilizzo medio 33%-66%).
Gli stessi modelli con capacita' di 240GB si comportano
in modo differente.
Grafico lettura 240GB : 
http://i52.tinypic.com/20gnnkh.gif
In lettura si ripresenta lo stesso scenario visto in precedenza
con i modelli da 120GB : l'm4 256GB ha le stesse prestazioni del
128GB (stesso numero di die ma con capacita' doppia),
i due Vertex 3 migliorano leggermente le prestazioni, idem per
 l'Agility 3 che raggiunge le prestazioni degli altri modelli
solo con altissimi livelli di compressione (oltre il 75%).
Grafico scrittura 240GB : 
http://i51.tinypic.com/ifu0wl.gif
In scrittura le prestazioni dei SandForce con memorie sincrone
si avvicinano, il Vertex 3 raggiunge il Max IOPS (nell'utilizzo
medio ottengono tra i 350 ed i 400 MB/s) , sempre superiori
all'm4 256GB che e' molto piu' veloce del 128GB (260MB/s) ,
l'Agility 3 240GB , con le memorie asincrone e con l'aiuto della
configurazione a 32 die, migliora le prestazioni, nell'utilizzo medio
ottiene tra i 280 ed i 400 MB/s (anche in questo caso superiori all'm4).
In conclusione si puo' affermare che le prestazioni di un SSD, oltre che
dipendere dall'architettura del controller, sono fortemente influenzate dal
tipo di memoria Flash NAND (asincrona e sincrona) e dal numero di die
di memoria utilizzati per ogni canale (in genere dalla capacita'
complessiva).
Per l'elenco completo dei modelli presenti sul mercato
italiano, si puo' consultare la discussione :
"SSD, caratteristiche e prezzi, Agosto 2011" (1/8/2011)
(link su Google Gruppi: 
http://tinyurl.com/ssd201108
 )
Ciao
Luca

   
http://i56.tinypic.com/30m3hhe.gif
 (Scrittura 120GB)
umh.... crucial m4 (era la mia prima scelta!) come sappiamo ben stabile 
in ogni caso e moooolto economico (lo trovo a 145 euro circa) ma il 
vertex 3 nonostante si comporti diversamente a seconda dei dati, rischia 
in "media" di essere sempre superiore visto che raramente si ha a che 
fare con dati completamente "incomprimibili"....
Manca solo un aspetto ormai... quale SSD con lo sviluppo dei firmware 
riuscirà anche a migliorare? Quale ha un miglior supporto e minor 
failure rate?
PS: ma che tipo di compressione usano internamente? Roba leggera tipo 
quella dell'NTFS? o più pesante tipo tgz/rar/zip?

 quella dell'NTFS? o pi� pesante tipo tgz/rar/zip?
il chip Tensilica usato nei primi SandForce e' un DSP
molto adatto per l'elaborazione di dati, il tasso di compressione
e' equivalente ad un RAR o ZIP , il metodo usato puo'
essere un misto di compressione e deduplicazione
ho torturato il mio Vertex 2 per sviscerare i segreti
della compressione , il mistero del metodo usato
rimane ma almeno mi son fatto un'idea di come
influisce sulle prestazioni ;)
(se interessa a qualcuno approfondisco)
se trovi l'm4 128GB a 145E e' un ottimo prezzo, il V3
costa 40-50E in piu' , a te la scelta :)
ciao
luca

 (se interessa a qualcuno approfondisco)
beh.. per interessare interessa.
1) Come l'hai "torturato" ?
2) davvero non si sa come "comprime" ?
3) prestazioni ? ma si può abilitare/disabilitare a piacimento ?!?!?
4) quanto tempo ci hai perso dietro ? :-)
-- 
AAAAAAAA American Association Against Acronym Abuse And Also Ambiguity

 4) quanto tempo ci hai perso dietro ? :-)
ne' troppo, ne' poco, diluito in parecchi mesi :)
ciao
luca

 ogni caso e moooolto economico (lo trovo a 145 euro circa)
con 
trovaprezzi.it
 (prezzi minimi, tutti dallo stesso negozio e tutti
disponibili):
 85E (1,33 E/GB) Crucial m4 64GB
148E (1,15 E/GB) Crucial m4 128GB
276E (1,08 E/GB) Crucial m4 256GB
546E (1,06 E/GB) Crucial m4 512GB
quasi 1 E/GB .. di qualita' :D
ciao
luca