Cosa c'è di nuovo?
HWReload

Registrati e partecipa alle attività del forum

WIKI SSD: TUTTO QUELLO CHE VORRESTI SAPERE E NON HAI TROVATO

Liupen

Moderatore
Staff
Iscritto dal:
23 Dicembre 2017
Messaggi
533
OPTANE-OK_final_small.gif



WiKi FAQ


Che differenza c’è tra un Hard Disk Drive (HDD) ed un Solid State Disk (SSD)?

Un HDD è costituito da un motore elettrico che fa girare un piatto o più piatti con una (o più) testine magnetiche sopra che, cambiando lo stato magnetico della superficie del piatto, memorizza i dati e li legge.
Un SSD non ha parti meccaniche che possono essere soggette ad usura o sensibili agli urti. Purtroppo le celle di cui è composto hanno un numero di cicli di memorizzazione con un limite fisico. Tale limite è superiore generalmente alla durata media di tutti i dispositivi elettronici quindi:

un HDD dura di più di un SSD?

Falso. Un HDD ed un SSD sono fatti dai medesimi componenti elettronici base e quindi hanno generalmente una durata uguale. Bisogna essere fortunati con il proprio dispositivo.
E’ piuttosto vero il contrario; un SSD può durare molto più a lungo di un HDD quando il suo uso prevede spostamenti con il rischio di urti e cadute.

perché ci sono ancora gli HDD se gli SSD sono più veloci e durano di più?

Per il costo molto maggiore degli SSD rispetto agli HDD.
Bisogna però fare attenzione con gli HDD attualmente in commercio. Molti di questi con tanti terabyte e basso costo sono con tecnologia SMR cioè sono realizzati con tracce di memorizzazione sovrapposte; ciò è causa di possibili rallentamenti e soprattutto incompatibilità con le soluzioni RAID o che comunque accoppiano 2 o più HDD insieme.


Come è fatto un SSD?

Un SSD è naturalmente un insieme di componenti che poi ne costituiscono le caratteristiche.
Le principali sono:
  • una base in plastica multistrato detta pcb con il terminale a pin per la connessione
  • un controller, cioè una CPU
  • uno o più chip di memoria volatile DRAM
  • uno o più chip di memoria NAND Flash (celle di memorizzazione)

1631285700814.png


Il meccanismo di funzionamento tipico degli SSD è questo:

Nel momento che l’utente vuole memorizzare un dato, il sistema operativo (host) simula la scrittura del dato su una sua tabella (logica) e la comunica al controller del device.
L’SSD recepisce la tabella e copia i dati nella corrispondente tabella delle corrispondenze. Quindi esegue le scritture programmate, cancellando le celle NAND Flash che servono, spostando se necessario i dati utili ed infine memorizzando i dati sulle celle. Mentre i dati reali sono memorizzati sulle celle, l’aggiornamento della tabella delle corrispondenze (mappatura) avviene nella più veloce memoria volatile DRAM.

La lettura ovvero la ricerca del dato immesso precedentemente nell’SSD, avviene in questo modo:

Il sistema operativo (host) fa una richiesta di recuperare certi dati dalla tabella logica e invia la query (richiesta) al controller dell’SSD.
Il controller sulla tabella delle corrispondenze presente sulla propria DRAM, cerca ed identifica in quali celle (reali) sono presenti i dati. I dati cercati e trovati vengono presi dal controller e memorizzati sulla RAM di sistema a disposizione del sistema operativo.
Ognuna di queste due operazioni dura pochi centesimi di secondo.

Per economizzare sui costi, alcuni modelli di SSD sono privi di memoria Volatile DRAM. L’aggiornamento della mappatura su celle anziché su moduli RAM, rende questi SSD più lenti in scrittura e parzialmente anche in lettura, oltre a consumare di più le stesse celle.

Questo discorso cambia però se si considerano gli SSD NVMe senza una propria DRAM ma forniti di tecnologia HMB. In questo caso un particolare algoritmo del controller si interfaccia con l'host che mette a disposizione una porzione della RAM di sistema per gli usi dell'SSD. Questi tipi di SSD pur non essendo veloci quanto un SSD NVMe con DRAM propria, non subiscono eccessivi rallentamenti ed a volte sono più veloci in lettura I/0.


Che tipi di SSD esistono?

Gli SSD si distinguono prevalentemente in SSD SATA ed SSD NVMe (o PCIe). Questa distinzione si basa sul tipo di linguaggio con cui comunica l’SSD.

I SATA sono nati per sostituire gli HDD e ne utilizzano le connessioni ed il protocollo di comunicazione con un apposito chipset presente sulla scheda madre. La linea SATA ha un canale di comunicazione di massimo di 600 MB/s e può comunicare solo in entrata o in uscita.
I NVMe sono gli SSD che utilizzano le linee di comunicazione PCIe della scheda madre (quelle delle schede video). Grazie ad una maggiore portata della linea ed alla possibilità di comunicare contemporaneamente in entrata ed in uscita ma anche parallelamente, il bandwidth creato permette di raggiungere velocità do oltre 3000 MB/s (ma anche 7000 MB/s a seconda del tipo di PCIe installato sulla scheda madre).

Gli SSD si distinguono anche per la forma.

Gli SSD in formato 2,5” (lo stesso formato degli HDD che si trovano nei notebook o negli HDD esterni), sono quasi esclusivamente di tipo SATA.
Ci sono in commercio degli SSD in formato 2,5” per usi professionali con connessione SAS / U.2 ovvero che sfruttano le linee PCIe come farebbe un SSD NVMe.
L’altro tipo di SSD che troviamo in commercio, sono quelli chiamati M.2
Questo tipo di formato (chiamato anche NGFF), molto più piccolo e senza scocca in plastica o metallo, è possibile che ospiti SSD di tipo SATA o di tipo NVMe.
Purtroppo non c’è modo di distinguerli se non leggendo l’etichetta sull’SSD stesso, ma generalmente gli SSD M.2 con 2 “dentini” nella connessione dei pin, sono B-key ovvero SATA, mentre gli SSD M.2 con 1 solo “dentino” nei pin sono generalmente M-key ovvero utilizzano il protocollo PCIe e sono NVMe.

Sempre distinti per forma ci sono degli SSD che ora vanno scomparendo. Sono gli SSD M-Sata. Sono simili agli M.2 ma hanno una connessione esclusivamente di tipo SATA.


Perché se gli SSD NVMe sono più veloci, il sistema operativo non lo è?

Gli SSD NVMe lavorano su un canale attraverso cui passano i dati, molto più grande che non i SATA, questo è vero; però i file con cui opera un sistema operativo sono generalmente di piccole dimensioni e tanti nell’unità di tempo.
E’ come avere un confronto tra un tubo d’acqua grandissimo e uno piccolo con una saracinesca a monte. Nel momento che il sistema operativo chiede acqua, il tempo che ci và per aprire la saracinesca sarà uguale (o quasi) per entrambe i tubi.
Questo ritardo nel dare o scrivere l’informazione da parte di un SSD NVMe o SATA è detta “latenza”.
Quindi con dati di una certa dimensione la velocità dell’SSD NVMe viene fuori, ma con dati brevi e continui come quelli che fanno funzionare un sistema operativo, questa differenza di velocità, pur sempre presente, si riduce e non viene percepita da noi che usiamo il PC.


Che differenza c’è tra celle MLC, TLC, QLC?

La cella NAND Flash su cui si basa l’SSD è realizzata da molti componenti ma si ricava dalla stampa di fogli di silicio. Il silicio - semiconduttore - è capace di cedere i propri elettroni facilmente in presenza di una debole carica elettrica.
Depositandosi gli elettroni su una superficie (gate) capace di leggere la quantità di carica accumulata, si realizza una cella NAND Flash.
Il linguaggio binario (bit) ci è infatti dato da soli 2 valori: lo zero e l'uno.
Se nel gate la carica è sotto una certa soglia il valore è I; se nel gate la carica è sopra la soglia il valore diventa 0.
Questo è il semplice modo in cui memorizza una singola cella.
Gli elettroni vengono intrappolati sul gate ed in questo modo, al cessare della carica elettrica, i valore I/0 continua a perdurare.

1631285887557.png


Le prime celle di questo tipo sono state definite SLC ovvero Single Leve Cell.
Continuano ancor oggi ad essere le celle più veloci ma richiedono molto silicio e quindi sono diventate dispendiose.

La tecnologia, alla ricerca del risparmio sui costi di produzione e dei materiali, si è mossa in due direzioni:
  • fare in modo che su ogni cella possano starci due o più bit
  • densificare i chip in modo che ci siano sempre più celle sull'unità di superficie
La prima strada ha così portato alle celle MLC (Multi Level Cell). Si è iniziato ovviamente cercando di far stare 2 bit sulla medesima cella.
Con il passare degli anni i bit sono cresciuti: le celle TLC (Three Level Cell) hanno 3 bit, mentre le celle QLC (Quad Level Cell) hanno 4 bit. Sono già allo studio celle PLC.

La seconda strada ha portato alla creazione delle celle 3D (o V-Nand).
Le celle 3D non sono altro che la disposizione diversa degli stessi componenti delle celle planari, ma in modo che le singole celle possono essere incolonnate verticalmente. I chip 3D Nand sono quindi più spessi di quelli fabbricati inizialmente, ma uno stesso chip del 2015 da 60GB con la densità raggiunta attualmente contiene 1000 GB ed oltre. I Piani (Layer) in cui si sviluppa la cella 3D, costituiscono la generazione di celle su cui si muove negli anni la tecnologia degli SSD.

1631285906677.png
 
Ultima modifica:

Liupen

Moderatore
Staff
Iscritto dal:
23 Dicembre 2017
Messaggi
533
Ma non ho risposto alla domanda :rovatfl:

ce9a542b1820f763b86b5d7c66c9cb0043326b5a.gifv

Immaginate quindi una cella SLC, dove una leggera corrente elettrica attraversa il silicio, ne stacca una quantità nota di elettroni che si riversano sul gate.
La cella da "1" (non programmata) è passata ora a "0" (programmata).
Ogni cella è poi attraversata da una seconda linea trasversale per la lettura. Altro flusso di energia a bassa tensione (minore della precedente).
Se passa vuol dire che non incontra elettroni e legge 1.
Se il flusso non avviene, gli elettroni sono presenti ad impedirlo, e la lettura del controller - per quella specifica cella - è 0.

In due parole ho descritto come fa ad essere scritta e poi letta una cella base SLC... ma complichiamo le cose.
MLC (2 bit).

Il principio degli elettroni che si staccano rimane lo stesso, ma il gate diventano "i" gate.
Modulando l'energia riesco infatti a staccare una quantità di elettroni variabile e questi vengono intrappolati in 2 strati distinti.
2 quindi sono i "circuiti" di lettura ma se prima la sensibilità era impostata come "corrente passa=1" e "corrente non passa=0" ora si dà al controller dei range per misurare la resistenza al passaggio del flusso di corrente elettrica.
In questo caso, considerando 2 circuiti, le possibili letture sono 4: 11, 00, 10, 01.
Tutto stà nella sensibilità con cui viene misurato l'impedimento al flusso di corrente elettrica nell'attraversare la zona del gate dove possono esserci tanti, pochi o nessun elettrone.

Per complicare ancor più le cose, hanno inventato le celle TLC (3 bit)... ma tranquilli...avete capito il principio e non mi dilungo.
 

Liupen

Moderatore
Staff
Iscritto dal:
23 Dicembre 2017
Messaggi
533
Riprendiamo la rubrica con altre domande curiose:

La deframmentazione fa male all'SSD?
La deframmentazione del file system e dei dati è una cosa che capita non solo agli hdd ma anche agli ssd (sia sata che nvme).
Viene causata dalle (cancellazioni e successiva) scrittura di un file suddividendolo in blocchi non più contigui (vicini). Il problema è duplice: la quantità dei frammenti non può superare una certa cifra, e fattore non meno importante, il disco (hdd o ssd) impiega più tempo a ricostruire un file maggiormente frammentato.
C'è un limite fisico per il quale un file spezzato in più blocchi tra loro non contigui può rallentare anche un ssd. Solitamente non viene raggiunto tale limite ma ricompattare i file non è un idea totalmente errata.
Usarlo (defrag) tipo 1 volta l'anno (se l'ssd viene usato parecchio), può quindi diventare un abitudine buona.
Si, rimane il "consumo" di celle durante il processo, ma i TBW sono solitamente tanto ampi da sopportarlo.

Come funzionano i nuovi SSD senza DRAM?
Inizialmente sono stati introdotti ssd senza chip DRAM ma si è visto che avevano dei grossi problemi:
la maggiore lentezza I/0 perchè la mappatura solitamente inserita, durante il funzionamento dell'ssd, nella DRAM, si ritrova ad essere gestita direttamente su uno dei chip NAND che sono infinitamente più lenti. Secondo effetto di questo meccanismo è il consumo maggiore delle celle NAND dovute appunto alla memorizzazione della tabella FTL (mappatura) che scrive con continuità.

Si sono allora cercati dei modi "software" per ovviare al problema. Ecco che nasce il Host Memory Buffer detto con l'acronimo HMB.

HMB è un protocollo attivo solo su NVMe e permette al controller di utilizzare una porzione di RAM di sistema per tenerci la tabella FTL e per memorizzare i file recenti.
Pur essendoci un passaggio di dati supplementare tra controller ssd e RAM di sistema, le velocità di questi ssd sono vicine se non uguali a quelle degli ssd con il chip DRAM integrato.
Questo vuol dire in generale che gli ssd nvme DRAM less:
  • hanno prestazioni I/0 accettabili
  • costano meno al produttore, quindi dovrebbero essere più economici per l'acquirente
  • consumano meno energia

Come fanno gli SSD attuali ad essere più veloci (PCIe 4)?
Lo standard PCIe determina quanti dati possono essere trasferiti, proprio come tubi di diametro diverso possono determinare la "portata" dell'acqua che vi viene fatta scorrere dentro.
Lo standard PCI Express trasferendo dati si dice che offre delle corsie ovvero mette a disposizione sulla scheda madre dei canali dedicati allo scambio di dati.
Una corsia è composta da due coppie di segnalazione differenziali , una coppia per la ricezione dei dati e l'altra per la trasmissione (ricordate che SATA oltre ad essere una corsia che fa passare meno dati, li fà passare in un solo verso alla volta). Pertanto ogni corsia è composta da quattro tracce di segnale.

Ogni singola corsia PCIe porta ad un trasferimento massimo di dati (2,5 GT/s) ovvero 2,5 miliardi di trasferimenti al secondo, tradotto in byte circa 250 MB/s.
In termini di protocollo bus, la comunicazione PCI Express è incapsulata in pacchetti. Il lavoro di pacchettizzazione e de-packetizzazione dei dati e del traffico dei messaggi, viene svolto dalla CPU di sistema (se la corsia è collegata a questa) oppure ad un apposito chipset aggiuntivo.
Il trasferimento dei dati inoltre non è puro, ma insieme ai pacchetti vengono trasferite le istruzioni stesse per convertirli e/o recuperarli in caso di fallimenti. Ciò viene chiamato "overhead".

Aggiungendo singole corsie (linee), il Il throughput ovvero la larghezza di banda si amplia: raddoppia nel x2, triplica nel x4, ecc.

Dalla creazione dello standard nel 2003, oggi siamo alla sesta revisione dello standard,

Per gli SSD l'attuale standard PCI Express 4.0, fornendo una velocità in bit di 16 GT/s che raddoppia la larghezza di banda fornita da PCI Express 3.0, pur mantenendo la compatibilità con le versioni precedenti e successive.

1651496496521.png

Fonte Wikipedia


Se lo standard PCIe determina nettamente l'incremento delle prestazioni di questi nuovi ssd nvme pcie 4 perché elimina qualsiasi collo di bottiglia tra ssd e scheda madre, d'altra parte le NAND Flash si sono fatte anche parecchio più veloci, passanto da 800 MT/s delle celle a 96L a 1200 MT/s per le celle a 176L.

Tutto questo pesa sulla capacità di elaborazione del controller, che consuma e scalda maggiormente.

La velocità degli SSD è misurata in MB/s, allora cosa sono gli IOPS?
IOPS ovvero di Input/Output Operations Per Second è un altro modo di intendere sempre la stessa cosa: misurare la velocità di trasferimento dei dati.
La quantità di operazioni che vengono eseguite nell’intervallo di tempo di un secondo determina il valore degli IOPS in scrittura proprio come la misura dei MB trasferiti tra due dispositivi, indica la velocità di scrittura.
Differenze?
Nessuna. Solo che se si prendono file di trasferimento piccoli e se si considera una frazione di secondo, un valore in MB/s sarebbe espresso con troppi zero post virgola.

IOPS nello specifico: per HDD i numeri IOPS casuali dipendono principalmente dal tempo di ricerca casuale del dispositivo di archiviazione, mentre, per SSD e dispositivi di archiviazione a stato solido simili, i numeri IOPS casuali dipendono principalmente dal controller interno del dispositivo di archiviazione e dalla velocità dell'interfaccia di memoria.
Su entrambi i tipi di dispositivi di archiviazione, i numeri IOPS sequenziali (soprattutto quando si utilizzano blocchi di grandi dimensioni) indicano in genere la larghezza di banda massima sostenuta che il dispositivo di archiviazione può gestire.
Spesso gli IOPS sequenziali sono riportati come un semplice numero di Megabyte al secondo, come elemento pubblicitario, ma la reale potenzialità dell'ssd stà nei valori di scrittura e lettura casuale che rappresentano meglio la rapidità reattiva del dispositivo.

1651502909632.png
 
Ultima modifica:

Black

Top Contributor
Staff
Iscritto dal:
17 Marzo 2021
Messaggi
321
Come fanno le NAND Flash a memorizzare, leggere e cancellare i dati?
Operazione di scrittura:

Quando noi vogliamo memorizzare dei dati nelle NAND Flash stiamo andando ad eseguire un’operazione di scrittura, ergo stiamo andando a scrivere “0” nelle celle di memoria.

Questa qui sotto è una piccola rappresentazione di una cella NAND; ci troviamo all'interno di un blocco in questa immagine.

1660291461951.png


Per eseguire un'operazione di scrittura il controller dell’SSD deve mandare il comando di programmazione, la pagina che si vuole programmare e i relativi dati alla NAND Flash. Dato che gli SSD non sono come gli HDD che si possono riscrivere, bisogna scegliere una pagina libera. Quindi, dopo che alla NAND Flash arriva tutto il necessario, viene selezionata la pagina richiesta e i latch nel buffer della pagina vengono caricati con i dati da scrivere. L’SST (String Select Transistor) viene quindi attivato mentre il GST (Ground Select Line) viene disattivato dal controller. OK, ora che ci troviamo in questo momento dobbiamo addentrarci fisicamente di più nella cella, andandola a vedere a livello di transistor.

Questa qui sotto è una rappresentazione del transistor usato nelle celle NAND Flash; questo tipo di transistor (chiamato "FGMOS" visto che è un MOSFET con floating gate) è attualmente presente nelle NAND Flash di Intel e alcune di Micron (tutte quelle 32, 64 e 96L) ma presto verrà adottato anche nelle NAND PLC (penta-level cell), quindi per le NAND 5 bit.

1660291430182.png


Andando in scala:
- Substrate: in italiano letteralmente "substrato", è il silicio che contiene gli elettroni. È, inoltre, la parte più costosa;
- Source: terminale del transistor che serve a far iniziare il flusso di corrente;
- Drain: terminale del transistor che serve a fermare il flusso di corrente;
- Oxide: strato di isolante che serve a separare il floating gate dal silicio, ha una dimensione di 9-10nm ed è fatto di SiO₂;
- Floating gate: gate che immagazzina gli elettroni quando si vuole fare un'operazione di scrittura. Esso, essendo di tipo poli-siliconico e avendo capacità conduttive, è in grado di mantenere gli elettroni al suo interno senza che la cella venga alimentata, ciò fornisce la non volatilità a questo tipo di memoria;
- Oxide: strato di isolante che serve a sperare il control gate dal floating gate, ha una dimensione di 15-20nm ed è fatto di un triplo strato di ONO (oxide - nitride - oxide);
- Control gate (CG): gate che riconosce se sono presenti degli elettroni (quindi se la NAND Flash è carica e abbia dei dati all'interno) e manda l'I/O al controller di quando la NAND è nello stato “1” o “0”; in più, serve per collegare la cella alla word line (WL), ossia alla riga di cella in cui i dati possono essere scritti.

Ora, per far sì che gli elettroni si muovino dal substrate al floating gate, ergo per eseguire un'operazione di scrittura, si utilizza l'effetto tunnel di tipo Fowler-Nordheim (FN). Da notare che questa tecnica viene usata anche per le operazioni di cancellazione.

L'effetto tunnel Fowler-Nordheim (FN) è un fenomeno della fisica quantistica che permette agli elettroni di superare una barriera (in questo caso è l'oxide) senza che quest'ultimi abbiano energia cinetica a sufficienza. Per permettere ciò, l'effetto tunnel è un campo elettrico con carica negativa e per "crearlo" bisogna impostare un'alta Vpgm (tensione di programmazione) del control gate e polarizzare tutte le linee di bit che corrispondono allo “0” logico.

Questa qui sotto è una rappresentazione dell'effetto tunnel Fowler-Nordheim.

1660291386173.png


Operazione di lettura:

Per leggere le NAND non serve aggiungere nient’altro riguardo la struttura delle NAND o all’effetto tunnel, poiché in questo caso viene applicata una bassa tensione al control gate e successivamente tentare un flusso di corrente dal source al drain. Nel caso non ci fosse il flusso la cella avrebbe come valore logico “0”, nel caso ci fosse “1”.

Operazione di cancellatura:

Come già detto, un SSD non funziona alla stessa maniera di un HDD, infatti per poter scrivere nuovamente una pagina è necessario cancellarla prima, per effettuare questa operazione si applica un’alta tensione al silicio in modo tale da far fluire gli elettroni dal floating gate al silicio. Come già detto, anche per le cancellazioni viene usato l’effetto tunnel e si applica lo stesso concetto spiegato prima.
 
Ultima modifica:
Top