Scegliere dischi SSD: controller, firmware, memorie NAND Flash, tecnologie

ssdLa vasta gamma di dischi SSD presenti sul mercato è spesso fonte di dubbi ed incertezze da parte dell’utente finale circa la scelta dell’hardware da acquistare. I paragoni tra gli SSD rischiano sovente di essere appiattiti tutti su di uno stesso livello, ovvero si tendono a considerare nella scelta esclusivamente due fattori principali: il prezzo per GB ed il valore in lettura e scrittura sequenziale. Questo nella convizione che un SSD è sempre e comunque un dispositivo veloce e che apporta sempre migliorie ad un sistema. Certamente si tratta di parametri di notevole importanza, ma non in grado di inquadrare le reali potenzialità offerte dal singolo dispositivo SSD. Una dimostrazione ulteriore deriva dalla tipologia di test offerta dai benchmark: i valori in lettura/scrittura sequenziale sono da ritenersi meno rilevanti rispetto alle prestazioni in accesso casuale (IOPS). Quest’ultime inquadrano in modo notevolmente più l’utilizzo reale del disco.

Dal loro esordio sul mercato gli SSD hanno visto focalizzare l’attenzione degli utenti su innumerevoli aspetti: il comando Trim, gli eccellenti risultati di transfer rate, la longevità del dispositivorispetto ai cicli di scrittura delle memorie utilizzate, ecc.

Cosa differenzia realmente la moltitudine di modelli SSD? Quali elementi sono maggiormente idonei per uno specifico ambito di utilizzo?

Un eccellente dispositivo è il prodotto dell’insieme di 3 elementi fondamentali: il controller, il relativo firmware e la memoria NAND Flash. Questi elementi, per le loro singole ed intrinseche specifiche, opportunamente scelti e combinati tra loro danno origine a SSD prestazionalmente molto diversi per efficienza, longevità ed affidabilità, quindi idonei ad ambiti di utilizzo differenti. Analizzare e capire come essi funzionino ed interagiscano è indispensabile per inquadrare cosa aspettarci nel complesso dalla scelta del disco SSD.

Controller

controllerssdLo sviluppo di un controller per SSD è una voce particolarmente onerosa e di rilevante importanza nella progettazione e realizzazione di un disco allo stato solido, da qui nasce la decisione di molti produttori di affidarsi a realtà esterne specializzate come Marvell, SandForce, LAMD (Link_A_Media Devices). Tuttavia tale approccio non è univoco; infatti aziende del calibro di OCZ, Samsung, Toshiba, Intel puntano anche su controller proprietari appositamente progettati per proporre sul mercato soluzioni sempre più all’avanguardia (di norma per la fascia alta del mercato).

BRAND CONTROLLER

  • SandForce: è certamente uno dei marchi più noti ed autorevoli tra i produttori di controller SSD, la sua ultima generazione (serie SF-22xx) è la soluzione attualmente proposta per l’interfaccia Sata III. SandForce utilizza una tecnica proprietaria di compressione/deduplicazione dei dati che permette di ottenere un’elevatissima velocità di picco, soprattutto in fase di scrittura, raggiungibile però solo con dati di tipo comprimibile, al contrario con dati casuali (non comprimibili) le prestazioni scendono. Questo decadimento è correlato al tipo di memoria NAND Flash (ONFI asincrona, ONFI sincrona, Toggle) ed al numero di die presenti in ogni modulo. Dischi poco capienti soffrono di un calo di prestazioni considerevoli al diminuire dello spazio libero: i dati compressi hanno bisogno di spazio per la decompressione ed allo stesso modo il meccanismo della garbage collection, cioè la gestione dei dati rimossi. La maggior parte delle “pulizie” avviene come attività in background, e la decompressione  impone una rotazione dello spazio utilizzato in modo che la memoria NAND si consumi in modo uniforme; una tecnica nota con il nome di wear leveling. SandForce non si avvale della gestione di memoria DRAM per funzioni di cache asserendo che ciò non pregiudica le prestazioni, ma riduce i costi complessivi del dispositivo SSD.
  • Marvell: per l’interfaccia Sata III è attualmente disponibile il controller 88SS9174 (nelle versioni BJP2, BKK2, BLD2). La caratteristica saliente, come in tutti gli altri controller, è il mantenimento delle prestazioni pressochè invariate a prescindere dal tipo di dato da gestire (comprimibile/incomprimibile), la differenza è che hanno altissime prestazioni in lettura ed inferiori in scrittura. A differenza di SandForce, Marvell gestisce la memoria DRAM cache impiegata come buffer temporaneo e per la tabella di allocazione dei blocchi (utile per gli algoritmi di wear leveling). Altra grande differenza offerta da Marvell, rispetto a SandForce, verso i propri partner commerciali è la possibilità di acquisire in licenza anche il firmware rendendo di fatto possibile proporre rilevanti modifiche per incrementare le funzionalità dei singoli prodotti. L’operazione resa così possibile fornisce notevole flessibilità allo specifico controller a patto di investire notevoli risorse per ottenere prestazioni, affidabilità e caratteristiche uniche. Il controller Marvell 88SS9174 installato su gli SSD OCZ Vertex 4 in accopiata al firmware sviluppato da Indilinx rappresentano certamente lo stato dell’arte di quanto le risorse investite possano produrre.
  • LAMD (Link_A_Media Devices):  è probabilmente uno dei marchi meno noti ai non addetti ai lavori, ma il suo controller LM87800 con interfaccia Sata III è ottimamente collato da Corsair su i propri SSD serie Neutron e Neutron GTX.

BRAND CONTROLLER PROPRIETARI

  • Intel: i prodotti dell’azienda sono stati per anni il riferimento al vertice dei dischi SSD, grazie alle ottime strategie di sviluppo perseguite ed anche per merito di componenti di terze parti di primissimo livello. Attualmente Intel non adotta più in via esclusiva dei controller proprietari, ma propone anche dispositivi con controller forniti da SandForce e Marvell. La sua recente collaborazione industriale con il produttore di memorie Micron ha dato alla luce IMFT, fornendo di fatto ad Intel la possibilità
  • OCZ: uno dei marchi più conosciuti dagli appassionati ed attivi nel settore degli SSD… L’azienda dal 2011 ha affrontato un piano di importanti acquisizioni per accorpare sviluppo e produzione sotto il proprio brand: Indilinx, azienda specializzata nella realizzazione di controller ed un dipartimento Ricerca e Sviluppo di PLX  Technology, operante nel design dei SoC. OCZ vanta nella propria produzione sia modelli con interfaccia Sata sia su slot PCI-E, ponendo i propri prodotti ai vertici del settore. Le diverse gamme si appoggiano sia a controller di produttori esterni (es. SandForce e Marvell) sia a controller proprietari dopo le recenti aquisizioni. Questa politica, insieme agli investimenti nel settore dei firmware a permesso la
  • Samsung: attua una politica simile ad OCZ, pertanto proprone sul mercato prodotti dotati di controller forniti da terze parti ed in più affianca delle gamme con controller proprietari. Ad esempio la serie 830 sfrutta un controller MCX a 3 core Samsung basato su di un ARM9 e la serie 840 un MDX a 3 core Samsung basato su una CPU R4 Cortex.

Certamente i controller più frequentemente utilizzati sono i SandForce, tra i grandi produttori la stessa Intel, per anni leader indiscussa dei prodotti di alta gamma con controller proprietari, ha recentemente optato per appoggiare questo tipo di controller con proprie gamme (es. 335 e 520).

OCZ, Samsung hanno invece deciso di intraprendere una strada esattamente opposta e di puntare sulla realizzazione di controller proprietari tali da poter proporre sul mercato nuove soluzioni ad elevate prestazioni e con un controllo completo sui cicli progettuali e produttivi dei propri dispositivi

Firmware

codbinCome si accennava in precedenza la personalizzazione di un firmware è una strada decisamente impervia, tuttavia ricca di interessanti traguardi. Ove non si perseguano obbiettivi estremi, comunque i produttori di SSD presenti sul mercato dedicano grandi risorse al supporto dei propri dispositivi, fornendo aggiornamenti del firmware finalizzati a perfezionare il loro funzionamento e pure nell’intento di eliminare eventuali problematiche riscontrate. Un esempio realmente significatico, di quanto questo potenziale possa essere sfruttabile, è ad esempio il Vertex 4 di OCZ: il controller di produzione Marvell (88SS9174) presente nel disco SSD è gestito da un firmware fortemente modificato ed implementato che ha anche incrementato le frequenze ordinarie di lavoro.

La funzione di Garbage Collection, insieme al TRIM, è preposta a mantenere inalterate le prestazioni dell’SSD a lungo termine, ovvero in virtù di un utilizzo intensivo. I controller Marvell adottano una versione decisamente più aggressiva ed efficiente di Background Garbage Collection rispetto a SandForce, questa penalizzazione è dovuta alla mancanza di una sufficiente spare area (memoria Flash addizionale non utilizzabile dall’utente).

Memorie NAND Flash: tecnologie

Le tipologie di memorie utilizzate all’interno di un SSD sono anch’esse un importante elemento di diversificazione tra i prodotti presenti sul mercato, generalmente è impiegata memoria di tipo NAND Flash, i cui maggiori produttori sono Toshiba, Samsung, IMFT (join venture tra Intel e Micron) ed Hynix. L’aumento della capacità di memorizzazione è perseguita con processi produttivi sempre più affinati e miniaturizzati (attualmente fino a 19nm), tuttavia transistor dimensionalmente più ridotti tendono ad aumentare il problema della longevità. Ogni cella di memoria NAND è soggetta a poter effettuare un numero limitato di scritture prima che la cella stessa risulti non più utilizzabile: processi produttivi a 30nm offrono 10000 cicli di scrittura, attualmente con la produzione a 20nm i cicli si attestano nell’ordine dei 3000. La miniaturizzazione incide negativamente sul numero di cicli vitali, pertanto un ottimo controller deve disporre di performanti sistemi di ottimizzazione e livellamento di questa “usura”: una tecnica che utilizzi algoritmi in grado di gestire l’uso delle celle e distribuire i dati in tutta la memoria NAND per massimizzare la durata dell’unità SSD.

Le memorie NAND esistono con diverse tecnologie e si possono dividere in 2 principali categorie:

  • SLC (Single-Level Cell):  un bit per ogni cella (1 bpc) e garantisce una maggiore durata, ma con costi più elevati a pari capacità.
  • MLC (Multi-Level Cell): due bit per cella (2 bpc) e tre bit per cella (3 bpc), in quest’ultimo caso si raggiungono capacità più elevate ma con prestazioni inferiori.

A loro volta queste memorie possono soddisfare diversi standard che ne descrivono caratteristiche fisiche, elettriche e set comandi:

  • ONFI o Open NAND Flash Interface (Intel e Micron)
  • Jedec/Toggle (Samsung e Toshiba), .

Per entrambe esistono diverse revisioni specifiche che differenziano le velocità per ogni singolo modulo ed altre peculiarità:

  • ONFI 1.0: prima versione; velocità max 50MB/s
  • ONFI 2.x (2.0-2.1-2.2-2.3): velocità max 133-166-200MB/s ed introduzone della modalità sincrona ed interleaving
  • ONFI 3.0: velocità max 400MB/s
  • Toggle SDR: asincrone
  • Toggle DDR 1.0: sincrone, velocità max 133Mbps (massimo 200Mbps)
  • Toggle DDR 2.0: sincrone, velocità max 400Mbps

Tutte le tipologie sopra elencate offrono caratteristiche molto diverse a seconda dei dispositivi su cui sono installate, per le memorie più frequentemente utilizzate mergono le seguenti considerazioni:

  • 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 comprimibili

A parità di canali gestiti dal singolo controller, un’importante differenza è determinata dal numero di chip di memoria utilizzati ed anche dal numero di die presenti in ogni chip (che permettono l’interleaving incidendo positivamente sulle prestazioni). Il numero complessivo di die controllati in parallelo (ottenuto moltiplicando il numero di chip per i die contenuti) è un valore rilevante al fine delle prestazioni: i dispositivi più performanti si attestano su 32 die con interleaving pari a 4.

Conclusioni

In generale una costante che accomuna i diversi ambiti di utilizzo è quello di scegliere un disco SSD che abbia una capacità tale da non essere saturata nel breve termine. Rispetto ai dischi tradizionali non sono tanto le prestazioni ad esserne influenzate, ma piuttosto  La scelta del SSD può essere così riassunta:

  • capacità maggiori forniscono maggiori risorse per le funzioni Garbace Collection e Trim,
  • NAND Flash ONFI sincrone o Toggle DDR sincrone garantiscono maggiori prestazioni a parità di controller
  • per una gestione di file non comprimibili (video, audio, ecc) preferire memorie Toggle DDR

Quality Control Approved

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: