# Unità di memoria a stato solido

Un'unità di memoria a stato solido (in inglese Solid-State Drive, abbreviato SSD, lett. "unità a stato solido", a volte erroneamente indicato come Solid-State Disk) è un dispositivo di memoria di massa basato su semiconduttore, che utilizza memoria allo stato solido (Solid-State Storage), in particolare memoria flash, per l'archiviazione dei dati.

## Descrizione

A differenza dei supporti di tipo magnetico come nel caso del disco rigido a testina, una unità di memoria a stato solido ha la possibilità di memorizzare in maniera non volatile grandi quantità di dati, senza l'utilizzo di organi meccanici (piatti, testine, motori ecc.) come fanno invece gli hard disk tradizionali. La maggior parte delle unità a stato solido utilizza la tecnologia delle memorie flash NAND, che permette una distribuzione uniforme dei dati e di "usura" dell'unità.

## Dettagli tecnici

Le unità allo stato solido si basano su memoria flash solitamente di tipo NAND per l'immagazzinamento dei dati, ovvero sfruttano l'effetto tunnel per modificare lo stato elettronico di celle di transistor; per questo esse non richiedono parti meccaniche in movimento (dischi, motori e testine), né componenti magnetici, il che comporta notevoli vantaggi alla riduzione dei consumi elettrici e dell'usura.
La memoria degli SSD è solitamente di tipo NAND 2D (a singolo strato) o 3D (multistrato o V-NAND), una tecnologia che può differenziarsi in Single Level Cell (SLC), Multi Level Cell (MLC), Triple Level Cell (TLC) e Quad Level Cell (QLC) a seconda del numero di bit per cella e di conseguenza dei livelli di tensione che può assumere; tali memorie vanno incontro a usura e a perdere precisione del livello di tensione, generando un maggior carico dell'algoritmo error-correcting code (ECC). Altra caratteristica delle memorie flash risiede nelle ridotte dimensioni fisiche che consentono la realizzazione di unità SSD estremamente compatte e leggere, quindi facilmente integrabili anche all'interno dei dispositivi mobili ultrasottili. Oltre alla memoria in sé, un'unità SSD dispone di diversi componenti necessari alla gestione del suo funzionamento.

### Controller

Il controller è costituito da un microprocessore che si occupa di coordinare tutte le operazioni della memoria di massa. Il software che governa questo componente è un firmware preinstallato dal produttore. Oltre alle operazioni di lettura/scrittura si occupa della gestione di:
* Error-correcting code: controllo e correzione degli errori in fase di lettura/scrittura
* Wear leveling: distribuzione della scrittura in maniera uniforme su tutto il drive
* Bad block: rilevamento e riallocazione trasparente con blocchi di riserva dei settori danneggiati
* Memoria cache: interna al dispositivo
* Garbage collection: rilevamento e riduzione automatica della frammentazione dell'organizzazione interna del disco
* Crittografia dei dati
* LBA (logical block address) scrambler: tecnica sperimentale che sfrutta le pagine dati frammentate per ridurre il numero di scritture e cancellazioni

### Memoria Cache

La memoria Cache è una memoria, a seconda del livello a cui appartiene, solitamente nell'ordine di qualche MB a seconda del tipo di sistema e generalmente proporzionale alla capienza dell'SSD, utilizzata dal processore per immagazzinare temporaneamente informazioni che verranno richieste in seguito dal sistema. Essa viene quindi riempita e svuotata molte volte. Questa cache può essere di vario tipo:
* Tramite memorie DRAM, esattamente come nei dischi meccanici (HD) la cache è una memoria molto rapida e volatile
* Tramite memoria ROM, tecnica utilizzata su alcuni SSD di tipo economico, caratterizzata da celle NAND SLC
* Misto o dual-cache, uso di entrambi i sistemi (DRAM+ROM), si tratta di cache a due livelli, che permette un sistema di gestione cache estremamente versatile ed elaborato.

### 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 file system risulti corrotto.

### Interfaccia e dimensioni

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 l'interfaccia PCI Express; quest'ultima può arrivare fino a una velocità di trasferimento di 21 Gb/s.
Riassumendo, le memorie a stato solido posso essere di varie dimensioni e connessioni:
* Unità SATA da 2,5 pollici
* mSATA
* M.2
* EDSFF

## Confronto con le unità tradizionali
### Vantaggi

La totale assenza di parti meccaniche in movimento porta diversi vantaggi, di cui i principali sono:
* Rumorosità assente, non essendo presente alcun componente (motore e disco magnetico) di rotazione, al contrario degli HDD tradizionali;
* Minore possibilità di guasto: le unità a stato solido hanno mediamente un tasso di guasto inferiore a quelli dei dischi rigidi. Questo tasso oscilla tra lo 0,5% e il 3%, mentre nei dischi rigidi può raggiungere il 10% (l'MTBF), solitamente di un SSD di ultima generazione raggiunge 2 000 000 ore).;
* Minori consumi elettrici durante le operazioni di lettura e scrittura;
* Tempi di accesso e archiviazione ridotti: si lavora nell'ordine dei decimi di millisecondo; il tempo di accesso dei dischi magnetici è oltre 50 volte maggiore, attestandosi invece tra i 5 e i 10 millisecondi;
* Maggior velocità di trasferimento dati;
* Maggiore resistenza agli urti: le specifiche di alcuni produttori arrivano a dichiarare resistenza a urti di 1500 g;
* Minore produzione di calore;
* Gli SSD SATA hanno la stessa identica forma, dimensione ed interfaccia di collegamento dei dischi rigidi SATA da 2,5" e sono pertanto interscambiabili con essi senza installare componenti hardware o software specifici (alcuni settaggi dell'UEFI potrebbero rendersi necessari per sfruttarne pienamente la velocità di trasferimento dati).

### Svantaggi

A fronte di una maggiore resistenza agli urti e a un minor consumo, le unità a stato solido hanno due svantaggi principali:
* Maggiore prezzo, ovvero una minore capacità di immagazzinamento a parità di costo rispetto ai dischi rigidi.
* Peggiore permanenza dei dati quando non alimentati e in modo differente a seconda della temperatura d'esposizione.
Questi problemi sembrano però destinati a risolversi in futuro. Le nuove tecnologie stanno portando memorie flash in grado di garantire durata pari o superiore a quella di un disco rigido tradizionale e attualmente i produttori dichiarano 140 anni di vita con 50 GB di riscritture al giorno su un'unità da 250 GB. Il tutto grazie all'introduzione di particolari tecniche, come quella dell'uso di nanotubi di carbonio.
È in corso una progressiva sostituzione dei dischi tradizionali con unità allo stato solido.

### Prestazioni in lettura e scrittura

Un elemento che viene immediatamente alla luce analizzando le prestazioni di un dispositivo SSD è la minor velocità in scrittura rispetto a quella in lettura e la sua forte variabilità in dipendenza della dimensione dei file che si vogliono scrivere. Ciò dipende dal fatto che mentre i File system dei Sistemi Operativi solitamente usano blocchi di celle dalla dimensione di 4 KiB, nei dispositivi SSD la dimensione dei blocchi è molto superiore (per esempio 4 MiB).
Questo comporta che per scrivere una cella dobbiamo leggere prima l'intero blocco, quindi scrivere sopra la cella desiderata lasciando le altre inalterate e infine salvarlo. Ne deriva che se dobbiamo scrivere più celle (file più grandi) le prestazioni migliorano, perché a fronte della lettura e poi del salvataggio di un blocco, possiamo scriverci dentro contemporaneamente tante celle quante sono quelle libere disponibili. Un modo per migliorare le prestazioni è quello di conoscere i blocchi liberi (con nessuna cella utilizzata); per ottenere ciò i sistemi operativi di ultima generazione mettono a disposizione il comando TRIM, che comunica al controller dell'SSD quali blocchi sono inutilizzati e cancellano le celle direttamente in fase di cancellazione dei file, migliorando dunque le prestazioni.
La frammentazione di un disco SSD non influisce sulle sue prestazioni, poiché il tempo d'accesso a qualunque cella è identico; i moderni sistemi operativi pertanto disattivano la deframmentazione del disco (in tutti i sistemi operativi Microsoft Windows, occorre però disattivare la schedulazione, altrimenti la deframmentazione sarà comunque pianificata), in quanto risulta non solo inutile, ma addirittura dannosa poiché influisce negativamente sulla vita del disco stesso. Infatti proprio per aumentare la durata del supporto si cerca di ridurre il sovraccarico sempre su una cella riscrivendola di continuo, grazie all'ausilio di un controllore che distribuisce i dati in fase di scrittura cercando di sfruttare tutto il disco ed evitando di lasciare parti inutilizzate. Al contrario la deframmentazione non farebbe altro che aumentare il numero di cicli scrittura di dati accorciando la vita del disco stesso.

## Applicazioni
### Computer a doppia unità

Le caratteristiche delle unità SSD sono alla base di impieghi spesso specifici. Ad esempio, esiste la fascia dei desktop e notebook dual drive cioè dotati di doppia unità di memoria, con la seguente configurazione:
* unità SSD di media capacità utilizzata per l'installazione del sistema operativo e delle applicazioni software (la velocità di accesso è più importante della capacità e affidabilità);
* tradizionale disco HDD di grande capacità impiegato come archivio dei contenuti (l'affidabilità e la capienza sono più importanti della velocità ed efficienza).
Chiaramente, esistono le altre due configurazioni, quella più economica e quella più prestazionale:
* una sola unità, SSD (solitamente con due partizioni: una per l'installato, l'altra per i dati);
* due unità SSD.