# DRAM negli SSD

Sono diversi gli aspetti che vanno tenuti in conto quando ci si cimenta nell'acquisto di un SSD e uno dei più importanti è fare un'adeguata analisi dell'hardware per evitare di acquistare prodotti inaffidabili e/o lenti. Alcune volte, però, si consiglia erroneamente un SSD solo perché dispone della DRAM e si sconsiglia quelli senza facendoli passare come se fossero a priori modelli scadenti; oggi, perciò, andremo a parlare a 360° di questo aspetto nel tentativo di fare un po' di chiarezza.

## Cos'è la DRAM e a cosa serve?

La memoria ad accesso casuale dinamica (DRAM) è un tipo di memoria volatile ad accesso randomico (RAM), quindi uno di quei tipi di memoria che perdono le informazioni in caso di assenza di corrente elettrica. Negli SSD viene utilizzata principalmente per la memorizzazione di metadati ("dato che descrive una qualche proprietà di un altro dato" [\[1\]](https://it.wikipedia.org/wiki/Metadato)) e può essere usata come cache di scrittura/lettura o come cache per le pagine delle NAND flash per le quali l'accesso avviene più frequentemente. Tuttavia, la maggior parte della capacità della DRAM (espressa in MB/GB) viene usata per l'archiviazione della mappa dagli indirizzi logici a quelli fisici, mappa che viene anche chiamata "L2P".&#x20;

<figure><img src="https://2259104667-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOiI60a2FomcCWQwYPKAG%2Fuploads%2F7DZHNtoqi9dF8Ld6l8Id%2Fimage.png?alt=media&#x26;token=8898b749-259c-4842-a9d2-173ea5b19360" alt="" width="506"><figcaption><p><a href="https://techwiser.com/do-ssds-with-dram-matter-and-how-to-identify-them/">Fonte</a></p></figcaption></figure>

La presenza di questo chip aumenta la durata del drive e le performance, soprattutto quelle sostenute (scrittura sequenziale) e quelle randomiche (uso di blocchi da 4kB) in quanto è in grado di avere un rapporto 1:1.000 con i dati/celle di memorie, dove 1 byte corrisponde a 1kB e, quindi, 4 byte (32-bit) a 4kB, la dimensione tipica dei cluster del sistema operativo (SO). Questo è anche il motivo per il quale per ogni TB di SSD abbiamo 1GB di DRAM, infatti 1TB di SSD ha 1GB di DRAM, 2TB di SSD ha 2GB di DRAM, ecc.

<details>

<summary>Calcolo su quanta DRAM è necessaria per l'SSD</summary>

Prendendo il caso di 1TB di SSD e una dimensione dei settori di 4kB:

* 1TB = 1.000.000.000 (un miliardo) di kB;
* $$\frac{1.000.000.000}{4} = 250.000.000 , \text{settori}$$ \
  \
  Assumendo che 4 byte (32-bit) siano necessari per convertire una pagina logica (LBA) in una fisica (PBA), moltiplicando il numero dei settori per la capacità necessaria di una conversione L2P troviamo la capacità necessaria della DRAM per memorizzare la mappa L2P dell’SSD. In questo caso: $$250.000.000 \times 4 = 1.000.000.000 , \text{B}$$, ergo 1GB. Adesso riusciamo a comprendere, quindi, che se vogliamo rendere la DRAM utile nell’SSD è importante che non sia né sovradimensionata né sottodimensionata perché nel primo caso parte della sua capacità non sarebbe utilizzata e il produttore dell'SSD avrebbe speso più soldi inutilmente mentre nel secondo caso il produttore dell'SSD avrebbe risparmiato soldi facendo più scritture sulle NAND flash dato l’inadeguato rapporto DRAM-mappa L2P.

</details>

Come per la RAM del nostro computer esistono diverse generazioni di DRAM: DDR, DDR2, DDR3 e DDR4, con le ultime due le più comuni. Su un SSD possono essere presenti 1 o più chip DRAM a seconda della capacità del drive.

Quando un SSD è sprovvisto di DRAM si chiama "DRAM-less", quando la usa, invece, "DRAM-based". Un esempio di SSD DRAM-less è il Crucial P3 Plus, uno DRAM-based è l'SK hynix Platinum P41.

> SRAM

Può capitare di leggere che un SSD venga considerato DRAM-based per la presenza di una piccola quantità di [SRAM (*static random-access memory*)](https://it.wikipedia.org/wiki/SRAM) nel controller dell'SSD. Questa cosa è falsa, la SRAM è collegabile alla cache della CPU dei computer: un tipo di memoria costoso, velocissimo e in quantità molto piccole, meno di una decina di MB, oltretutto è presente in tutti i controller del mondo, che siano funzionanti con DRAM o meno. Quindi un SSD DRAM-based lo si può ritenere tale soltanto se è presente il chip DRAM fisico sul [PCB (*printed circuit board*)](https://it.wikipedia.org/wiki/Circuito_stampato) dell'SSD, nient'altro.

> Host memory buffer (HMB)

L'host memory buffer (HMB) è una tecnologia usata in tutti i più recenti SSD NVMe DRAM-less che permette al controller dell'SSD di appoggiarsi per una piccola porzione (solitamente di 32-64MB con limite massimo di 100MB su Windows) alla RAM del computer per la mappatura della mappa L2P in modo tale da far alzare le performance e ridurre la latenza, proprio come se ci fosse fisicamente la DRAM nell'SSD. È scontato dire che un SSD DRAM-less utilizzante tale tecnologia non sarà mai uguale ad un SSD DRAM-based con lo stesso hardware, ma come dimostrato in diversi studi [\[2\]](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7051071/) il miglioramento rispetto a non utilizzarla c'è. Da notare che non esiste per gli SSD SATA e non è funzionante se l'SSD viene collegato al computer tramite USB.

<figure><img src="https://2259104667-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOiI60a2FomcCWQwYPKAG%2Fuploads%2FGwnDxjBwqlFsFkKdnRSW%2Fimage.png?alt=media&#x26;token=4e2d95c9-ef99-4185-a657-78bd58310318" alt=""><figcaption><p><a href="https://www.diskmfr.com/what-is-hmb-technology-what-is-the-impact-on-ssd/">Fonte</a></p></figcaption></figure>

## È davvero così importante la DRAM?

Dipende dal budget e dalle esigenze dell'utente. Se l'utente necessita di un buon SSD affidabile e performante per il proprio sistema operativo per garantire il massimo delle prestazioni anche nei carichi di lavoro più pesanti (come una scrittura intensiva di file di grandi dimensioni) è il caso di consigliare un modello che disponga di questa memoria, altrimenti si può benissimo consigliare drive DRAM-less che hanno un buon hardware e delle buone performance, come il Samsung 980 per citare un PCIe 3.0 e l'Ediloca EN870 per citare un PCIe 4.0. La DRAM è un plus negli SSD, vero, ma non è sempre di vitale importanza, e finché nei benchmark gli SSD dimostrano di avere un'alta velocità meritano di essere acquistati anche i DRAM-less con HMB.

Una cosa che raccomando è sicuramente non consigliare SSD DRAM-less che usano anche NAND QLC per il sistema operativo, in quel caso le performance e la durata scendono troppo per poter sostenere un uso primario.
