GUIDA Che cos'è e come funziona un SSD

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Come è fatto un SSD

L’hardware SSD è un concentrato di tecnologia, ma in effetti sono pochi gli elementi principali che lo compongono:
  1. Il Controller.
  2. La cache DRAM.
  3. I chip NAND in silicio per la memorizzazione dei dati.
  4. Le resistenze, induttori, e condensatori.
  5. I connettori SATA.
  6. Un fondo Printed Circuit Board (PCB).
  7. La scocca in metallo o plastica

1.JPG

La maggior parte della complessità tecnologica si concentra all'interno del controller e dei moduli di memoria NAND, il resto è di ingegneria elettrica “standard” di circuiti stampati sul PBC.
Dando un’occhiata allo schema di funzionamento di un SSD notiamo un organizzazione funzionale estremamente semplice:

2.JPG

Nella rappresentazione semplificata compaiono quindi il controller con la sua cache, e gli 8 moduli di memoria.

Il controller altro non è che una CPU in miniatura con un determinato numero di core (nel Samsung 840 PRO preso ad esempio: 3) e con una determinata frequenza di lavoro (in questo caso 300MHz ciascuno).

La CPU ha un modulo di memoria dedicata – la cache o DRAM - costituita da una memoria DDR (in questo caso la memoria è di tipo DDR2 – 1066 MHz, con una capacità di 512Mb).

8 singoli canali collegano il controller e il modulo di memoria, fungendo da pipe per lo scambio di informazioni. Quasi tutti i moderni SSD hanno 8 canali, ma non tutti gli SSD hanno 8 moduli di memoria; alcuni SSD ospitano solo 6 modulo di memoria lasciando 2 canali liberi. Questa condizione, come vedremo impatta sulla velocità.[/FONT] [FONT=&amp]Nel semplice schema presentato, 8 canali e 8 moduli di memoria, NAND Flash, contenenti i dati memorizzati.

Ogni costruttore ha un approccio diverso all’architettura delle NAND Flash ed un proprio design. Quindi non c’è nessuna guida a dettare le regole di costruzione o standard, saranno i prodotti stessi a decretare la bontà o meno del costruito.
Detto questo, le basi rimangono costanti per tutta la parte consumer del settore, mentre più o meno tutte le aziende hanno in cantiere delle soluzioni innovative.



Come è fatta una "NAND Flash?"

L'industria degli SSD è come un sistema feudale. In cima abbiamo i potenti, cioè le aziende con le fabbriche di lavorazione del silicio: Micron/Intel Toshiba e Samsung. Sono gli stessi produttori delle memorie DRAM. Nel mezzo e in fondo abbiamo altri contendenti, che si riforniscono dai "potenti". Hynix,, Corsair, Kingston, Plextor, Crucial e SanDisk hanno i loro impianti, anche se ognuno gioca un ruolo differente nel mercato retail e come fornitori dei "pesci più piccoli". Una cosa è sicura: possedere un impianto produttivo è un vantaggio economico e tecnico.
(Christopher Ryan, 04 luglio, 2013).


La memoria NAND Flash può essere vista come una sorta di un opposto della RAM (Random Access Memory), che, come tutti sapete, è un tipo di memoria volatile, utilizzata per memorizzare temporaneamente i dati. In un'applicazione, ad esempio, la RAM viene spesso utilizzato per memorizzare le cose come i dati strutturali del programma o le variabili all'interno del mondo virtuale, come in un gioco. L’utilizzo della RAM riduce il deficit della velocità di archiviazione, che è notevolmente più lento in presenza di un hard disk.La parola "volatile" ha un significato particolare in quanto si riferisce a qualsiasi tipo di memoria elettronica che mantiene le informazioni solo in presenza di una alimentazione. Questo tipo di memoria è incredibilmente veloce ed è gestita direttamente dalla CPU del pc mediante un controller dedicato (e integrato) IMC.
La memoria non-volatile è rappresentata da un tipo di memoria che conserva permanentemente i dati.


Mentre in un disco rigido la memorizzazione permanente avviene attraverso la magnetizzazione del supporto, per le NAND Flash è l’elettricità a creare i segnali….o bit.


La singola cella NAND è costituita infatti da una “porta logica” in cui elettricamente gli elettroni si spostano dal substrato (che funge da serbatoio) alla superficie della porta logica. L’elemento di controllo posto sulla porta è capace di rilevare lo stato elettrico della cella mandando l’informazione al controller: 0/1 assenza/presenza di segnale.


3.JPG


La differenza di potenziale innescata nel substrato, fatto di materia, crea un ossidazione, e gli elettroni liberati si muovono verso la superficie (della porta). L’impoverimento di elettroni, dopo un numero prevedibile di volte che vengono liberati, determina nel tempo – attraverso cicli continui di cancellazione/programmazione – l’esaurimento della cella.

In termini più semplici, i dati memorizzati nella memoria flash NAND sono rappresentati da cariche elettriche che sono memorizzate in ogni singola cella NAND.

La tecnologia delle celle NAND Flash è nata secondo uno schema molto simile allo schema presentato prima, per poi evolversi. La differenza tra Single-Level Cell (SLC) e Multi-Level Cell (MLC) NAND consiste in quanti bit ogni cella NAND può memorizzare in una sola volta.


4.JPG

Oltre alla “miniaturizzazione”, i produttori di celle si stanno muovendo verso tipologie differenti. Samsung ha messo a punto e distribuito le celle three-level cell (TLC) ovvero delle celle che contengono 3 bit anziché 2. L’utilizzo di queste ha permesso a Samsung di offrire dei prodotti meno durevoli ma molto capienti.
Attualmente tutta la tecnologia produttiva è volta alla messa a punto di una tipologia di cella chiamata 3D NAND (o VNAND). Sono celle a sviluppo verticale e non planare come una cella classica (SLC o MLC) La porta logica in queste celle è un cilindretto che si erge verticalmente e attorno al quale sono sistemati le superfici che accolgono o scaricano gli elettroni; ogni porta logica gestisce più substrati, con una densità prima impensabile.



5.JPG

Il numero, o litografia del processo di fabbricazione, è indicativo invece della più piccola incisione nel silicio sul semiconduttore che la fabbrica può fare (pensate a questo come un "taglio" o "fetta" di silicio)…. 16nm è un traguardo enorme per la miniaturizzazione laser.
Una litografia più piccola ha impatti sulle dimensioni dei transistor. Transistor più piccoli hanno un requisito di tensione più bassa, che a cascata influisce sulle altre caratteristiche dell’hardware, come il consumo o la temperatura (parametri termici e TDP).
A seconda del tipo di cella e della grandezza litografica della singola cella NAND, queste si trovano, sul PBC, raggruppate in un modulo di memoria o chip, con una propria capacità di stoccaggio.


6.JPG


Questa capacità rappresenta uno degli elementi che differenzia maggiormente un produttore di SSD da un altro. E visto che la grandezza litografica della cella (30, 25, 20, 19 e ora 16 nm di Crucial, determina quante celle sono contenute in ogni modulo di memoria, ecco che, con il progredire della tecnologia, si stanno ottenendo maggiori capacità di stoccaggio, con lo stesso numero di moduli di memoria.
 
Ultima modifica:

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Come vengono organizzati i dati nell’SSD

Un altro grafico aiuta a comprendere qual è il processo di memorizzazione di un SSD e quali sono le funzioni che giocano un ruolo rilevante:

01.JPG

Lo schema dell’SSD Samsung 840 PRO 512Gb, fa il suo ritorno, ma in questo caso si vedono i suoi componenti.
Questi utilizza delle NAND Flash autoprodotte del tipo Toggle 2.0 con una litografia (abbiamo visto di cosa si tratta) di 21 nm.

Ho accennato che la litografia incide sulla quantità di memoria finale del modulo, e quindi di tutto l’SSD, ma non sulla struttura di memorizzazione, che è stata studiata per sovrapporsi ovviamente agli strumenti esistenti: l’hardware HDD e il software Microsoft/Apple ecc.

Quindi le celle NAND Flash dell’SSD (standardizzando), sono state raccolte in unità di memoria minima chiamate “pagine”. Un insieme di pagine (512) costituiscono un blocco (Logical block addressing, abbreviato LBA).

Nella realtà, le celle MLC (non-TLC) utilizzano un’architettura dual-plane, quindi ogni modulo ha 2 piani, ed ogni piano ospita 1024 blocchi, ed ogni blocco ospita 512 pagine che sono da 16KB. Si arriva dunque ad avere, per il modello considerato, n. 8 moduli di memoria NAND Flash da 64Gb ciascuno.
Tutti i dati vengono suddivisi in blocchi da 16Kb (o più piccoli 8-4Kb) quindi scritti sulle pagine all’interno del blocco; Il controller può poi spostare questi dati in giro come meglio crede come parte dei processi di wear-leveling e di garbage collection.

Il meccanismo di programmazione delle celle consiste nel controllo da parte del Controller (scusate il gioco di parole) dello stato della cella rispetto ai dati che contiene: il Sistema Operativo si interfaccia in questo senso attraverso TRIM, dando l’elenco degli LBA validi da quelli non più validi.

Saputo questo il controller inizia il processo di Garbage Collection spostando i dati e lasciando i blocchi non validi in cancellazione.
A causa della natura del funzionamento delle memorie NAND Flash, i dati non possono essere sovrascritti direttamente su una cella che contiene dati (anche se non più validi), cosa che un HDD può fare…

Le celle NAND Flash devono essere cancellate prima di essere ri-programmate e nel caso i dati siano ingenti e il controller non riuscisse a liberare celle tempestivamente, ricorre alla funzione di Over-provisioning, che consiste nell’allocazione temporanea dei dati su celle di una parte porzione non allocata dell’SSD.

Ed ecco il punto: anche se un SSD è in grado i leggere e scrivere dati sulle singole pagine, può cancellare “solo” interi blocchi alla volta.

Questo fenomeno è noto come Write Amplification (WA) e in sintesi si può esprimere come la differenza percentuale tra i blocchi cancellati che sono maggiori di quelli (o porzione di quelli) che erano stati scritti per comando del sistema operativo (host).

La WA è un fenomeno negativo che ”amplifica”, appunto, l’usura del SSD.

02.JPG

Quali sono allora gli artifizi che usa il controller per ridurre l’usura delle celle?

Ho accennato al wear-levelling, come un mezzo per garantire che tutti i blocchi sono programmati e cancellati a un ritmo equivalente, prendendo delle immagini esplicative in rete:

03.JPG

Qui le pagine sono rappresentate da pacchetti dati da 4Kb, e si vede come l’SSD sposti attraverso il garbage collection, i pacchetti che mano a mano arrivano, distribuendo quanto più possibile, l’usura delle celle.
Con un SSD infatti,, non importa dove sono memorizzati i dati perché è tutto accessibile elettricamente; questo è lo stesso motivo per cui in un SSD il concetto di deframmentazione non ha significato, ed anzi, un processo di deframmentazione come quello eseguito su un HDD risulta un processo di cancellazione/programmazione delle celle esteso a tutto l’hardware con consumo ampio di celle e senza alcun beneficio di velocità.

Quando, al controller, arriva il comando di cancellare, ricordando appunto che gli SSD possono cancellare solo interi blocchi alla volta, questi inizia a spostare le pagine dei blocchi non completamente occupati.

E’ qui che il livellamento entra in gioco, spostando le pagine di modo che la media d’uso si mantenga tendenzialmente uniforme.

Le celle MLC sono pubblicizzate pressoché da tutti i produttori, come valide, sino a 3000 cicli di cancellazione/programmazione, prima di andare fuori specifica ed entrare nella “warning-zone”.

Per mettere le cose in prospettiva, occorre far notare che un utente consumer, molto probabilmente, cambierà il proprio hardware, prima dell’esaurimento di un SSD.

Un altro sistema per “allungare” la vita delle celle e quindi di tutto l’ssd è l’ Over-provisioning (OP) lo spazio è utilizzato per lo "scambio" tra DRAM e moduli NAND Flash, gestito dal Controller, nell'ambito dei processi di wear-leveling e dati temporanei.

Lo spazio Over-provisioning sui moderni controller (non fa esclusione il controller Samsung) può anche essere "chiamato in causa" dalle riserve quando una parte delle NAND si spengono.

Ogni cella che si spegne…anche una sola, inficia la pagina e conseguentemente tutto il blocco viene visto come “errore” dal sistema operativo.

Il controller, con l’OP, fa in modo che un blocco sostitutivo prenda il posto di quello inutilizzabile e l’SSD continuerà ad operare normalmente.
Attraverso l’utilizzo degli attributi S.M.A.R.T., siamo in grado di vedere il blocco danneggiato, e capire di essere nella condizione di warning-area, e provvedere dunque alla sostituzione dell’hardware.



Sul TRIM

Il comando TRIM non provoca la cancellazione delle celle delle Pagine dei blocchi non validi (se no con un SSD da 120Gb di cui 20Gb occupati, mi ritroverei sempre 100Gb di celle azzerate, nuove di pacco come se subissero in continuazione un secure erase... no, non è così.
Il comando crea una spartizione tra dati validi e dati non validi; fa si che solo i blocchi validi siano "deframmentati" (diciamo
prrr.gif
) mentre i blocchi non più validi, quando viene data una scrittura, non debbano essere anche riconosciuti (previa lettura), ma subito, a livello di cella cancellati e/o riscritti, velocizzandone l'operazione di P/E.

TRIM è utile, perchè quando non c'è, l'SSD, con il proprio GC si porterà in giro dei dati non aggiornati, e ciò significa che, ad un certo punto, la SSD si riempirà di blocchi (che tutti validi non sono) lasciando al controller, se c'è, solo lo spazio libero dell'over-provisioning con cui lavorare... e giù le prestazioni.
Tecnicamente, quindi, TRIM dovrebbe velocizzare le scritture ma anche in questo caso non è sempre così.

Results: TRIM Testing With DriveMaster 2012 - Samsung ...

TRIM, come un qualcosa di esterno alla natura dell'SSD, scatena degli effetti che, "amplificano" le scritture e mette i bastoni tra le ruote di un altro comando importante del GC: il Wear Levelling. Questa è la funzione che tiene conto del consumo delle celle e cerca di distribuire le scritture uniformemente.
 
Ultima modifica:

Liupen

SSD MAN
Utente Èlite
11,482
5,730
La valutazione delle caratteristiche nella scheda tecnica di un SSD:


Die


Gli SSD sono fondamentalmente degli enormi array RAID di celle NAND. Solo prendendo infatti tante celle, messe in parallelo, le prestazioni di un SSD raggiungono il massimo potenziale.
In linea di principio, con le dovute eccezioni:


più Chip fanno parte del sistema, e migliore è il parallelismo con cui lavora l’SSD, quindi a maggiori “Die”, corrispondono maggiori prestazioni.

Il Samsung 840 PRO preso ad esempio precedentemente, ha 8 Die (pacchetti), e ogni Die, è costituito schematicamente da:

die_1.JPG


Il rovescio della medaglia è che più Die ci sono e maggiore è l’attività del Controller, con possibili problemi di rallentamento.

Entrando quindi nello “stampo” della Die, si avrà un doppio strato sovrapposto o “Level” (perché sono MLC, anche se in figura è stato rappresentato complanare); ogni strato è diviso in “blocchi” e questi a sua volta raggruppano un numero definito di “pagine” realizzate da un altrettanto numero definito di singole celle Nand Flash.

Una cosa importante da dire è che la programmazione di una cella ad uno strato viene effettuata più velocemente dal Controller, ovviamente, rispetto ad una cella a doppio strato o, ancor più, a triplo strato (TLC). Questo fenomeno è chiamato “latenza”.

Veniamo al discorso oggetto di questo argomento: come le Die influenzano la velocità di un SSD e quindi: come possiamo valutare un SSD anche in base a questa caratteristica?

La tendenza dei produttori è quella di offrire sul mercato degli SSD sempre più capienti; questo vuol dire realizzare delle Die più grandi. Anche il costo di questi pacchetti ha la sua importanza, tant’è vero che a chip più capienti, corrisponde costi di produzione minori.

Ma mano si è passati da Die da 64Gbit (8Gb) a pacchetti a 128Gbit (16Gb) e oltre. Nell’SSD preso a nostro esempio sono stati usati i primi da 128Gbit.

Ora, aumentando la capacità dello stampo, il parallelismo tendenzialmente diminuisce e ne risentono le prestazioni.

Cambiamo esempio e prendiamo due modelli Crucial che hanno subito un processo evolutivo inverso… l’M500 e l’M550 entrambe da 120Gb.
Crucial è passata dal costruire un SSD con solo 8 Die da 128Gbit che permettevano di raggiungere capienze anche superiori a 512Gb e abbassare i prezzi di produzione, ad un SSD con 16 Die (ricordiamo che sono i pacchetti di memoria che vediamo sul pcb) da 64Gbit Nand

Cosa cambia nelle prestazioni a parità di taglio di SSD?
L’atto di programmazione (P/E) per una cella NAND Flash, si esprime prevalentemente con la scrittura (sia sequenziale, che casuale) ed è evidente infatti vedendo le performance:


die_2.JPG

Nonostante un aumento dei tempi di programmazione, dovuto alla presenza di un numero maggiore di Die (aumento della latenza), è palese quanto il parallelismo può incidere sulle prestazioni.
La scelta è stata vincente, anche se applicabile solo su SSD M550 da 128 a 256Gb poiché per i tagli maggiori non c’è spazio sufficiente ne abbastanza capacità di programmazione per tenere delle Die così piccole.




Latenza e IOPS

Questi sono i due parametri principali che definiscono le caratteristiche prestazionali di un SSD.
Spesso tutte o almeno una di queste caratteristiche si trovano indicate nelle schede tecniche degli SSD, imparando a “leggerle” impareremo a capirne qualcosa in più.

Prima occorre chiarire che la misurazione della velocità di un comando, è un intervallo di tempo definita latenza (1), ed è in sostanza il tempo necessario per completare un comando I/O. La misurazione inizia quando il sistema operativo invia una richiesta per l’unità e termina quando l’attività è portata a termine.

Nel caso di una lettura, la richiesta è considerata completata quando il sistema operativo riceve i dati; la scrittura si completa invece quando l’SSD comunica al sistema operativo di aver completato la trascrizione dei dati. E’ da notare che la trascrizione dei dati non significa che in effetti questi giacciano sulla memoria NAND, ma al contrario l’unità invia un messaggio di “operazione eseguita” già quando la trascrizione giace sulla memoria cache DRAM del Controller dell’SSD.

Definita l’attività, consideriamo ora che vengono misurati in IOPS il numero di comandi al secondo che è in grado di gestire l’unità nel suo complesso.
Ad esempio se l’unità ha una latenza di un 1ms (=0,001 sec) ovvero elabora 1 comando ogni 1ms, allora si può dire semplicemente che l’unità è in grado di elaborare 1000 comandi I/0 al secondo (1000 IOPS).

Le cose però non sono così semplici, perché un sistema operativo scarica a raffica scritture e letture che vengono accodate dal Controller in quella che viene definita “coda” Queue Depth.
Supponiamo che ci vuole ancora 1ms alla nostra unità per elaborare un comando I/0, ma ora ci sono 2 I/0 in coda. Ci vuole ancora 1ms per elaborare il primo comando ma a causa della latenza, la seconda richiesta verrà evasa in 2ms.
Anche se la latenza (1) è raddoppiata, la capacità di elaborazione al secondo dell’unità rimane invariata (IOPS = 1000).

Queue Depth
------------------
= IOPS
Latenza

Attenzione: questa è teoria che viene semplificata arrotondando i valori. Serve a capire i meccanismi piuttosto che essere aderente alla realtà.



Aumentando quindi la richiesta di comandi I/0 ovvero la coda, la latenza cresce proporzionalmente.

Fortunatamente un SSD può sfruttare le proprie Die ovvero il parallelismo, per elaborare allo stesso tempo più di un comando I/0. In questa situazione reale, pur essendoci sempre una coda, pur mantenendo l’unità una capacità di elaborazione teorica di 1000 I/0 al secondo, la latenza NON aumenta proporzionalmente, ma si stabilizza ai valori che ogni numero di Die che il controller elabora in contemporanea.

Una cosa che gli IOPS non tengono in considerazione è però la dimensione del trasferimento.

Un problema, perché ovviamente più grande è il dato da leggere/scrivere e più tempo ci vuole ad elaborarlo (soprattutto in scrittura perché il controller deve ovviamente fare una programmazione P/E).
IOPS di per se quindi non è un dato significativo se non è accompagnato chiaramente dal valore del dato oggetto di rilevazione (es. 4Kb, 128Kb, ecc).

Queue Depth
------------------ x grandezza del dato (byte) = IOPS x byte

Latenza

La misura sequenziale è allora la misura dei byte che vengono trasferiti al secondo (solitamente è un valore in mega o giga byte).

Quello che emerge è che la latenza, gli IOPS e il valore sequenziale, sono tutti fattori collegati matematicamente.


Ed ora veniamo al “come” ci vengono proposti dai produttori questi valori.

Se vedo scritto che un SSD fa in scrittura casuale 90.000 IOPS dico: grande!

Se da un’altra parte vedo la scheda tecnica di un SSD che mi scrive che la scrittura casuale è di 4.000 IOPS per una Queue Depth di 128Kb, non dico che schifo… no, dico che è una performance uguale. Perché? Perché le case, volendo prendere il valore IOPS più alto, lo misurano naturalmente con una trascrizione di dati piccoli… solitamente solo da 4Kb.


7a20fc52933fa34366b1bd2c2db16fc8.png




Altra cosa che può trarre in inganno è la poco chiara indicazione della profondità di coda (Queue Depth). Avendo visto che aumenta la latenza con l’aumento dei comandi in coda al Controller, è necessario che, volendo comparare due valori IOPS, siano chiaramente indicati per quali valori il software di bench stà testando l’unità.
Solitamente il valore migliore, da vedere (perchè si avvicina maggiormente ai comandi del sistema operativo), è per il singolo I/0 da 4Kb e quello peggiore un trasferimento da 4Kb con una coda di 32, che si avvicina invece al valore del trasferimento sequenziale.
 
Ultima modifica da un moderatore:

zultan

Utente Èlite
3,062
1,376
CPU
Core i9 9900K skt 1151 5000mhz
Dissipatore
Corsair H150i PRO RGB
Scheda Madre
Asus Maximus X HERO
HDD
4tb wd red 8 tb wd purple samsung 840 pro
RAM
Corsair Vengeance PRO RGB DDR4 3200mhz 32gb
GPU
Asus GTX 1660 Ti 6Gb Strix Advanced Gaming
Audio
Creative X-Fi Pcie / Asus Supreme Fx
Monitor
Samsung S27F350FH
PSU
Corsair RM850i
Case
Cooler Master Stacker 820
OS
Windows 7 Ultimate x64
Beh?? Cosa vuoi fare adesso? Concorrenza alla Wikipedia?? :asd:
 

Liupen

SSD MAN
Utente Èlite
11,482
5,730
@irene1985

Non riesco a scriverti in PM

Per scrittura è intesa la memorizzazione di un file in qualsiasi occasione, sia fatta da te, ad es. scaricando un file, scaricando qlc dal web, installando un programma; sia fatta dal sistema operativo in automatico, come ad es. creazione di punti di ripristino, uso dell'ibernazione, uso del paging, memorizzazione di anteprime (office, pdf, ecc) e pagine web e mille altre piccole memorizzazioni fatte da windows a tua insaputa (servizi in background).

Ora vado sul tecnico ma ti rende l'idea...

Tutto questo lo fa anche un disco rigido, ma un disco solido... l'SSD funziona anche diversamente.
Visto che con la tecnologia di adesso le celle non sono eterne ma hanno una durata, si deve fare in modo che l'ssd duri il più a lungo possibile.
Immaginati l'ssd come un foglio di carta fatto da tanti quadratini, ogni quadratino è una cella.
Quando si memorizza un file questo occupa un tot di quadratini, mica uno solo.
Quando vai a cancellare qualcosa lasci dei buchi tra una serie di quadratini memorizzati e altri dopo anche questi già pieni.
Occorre che internamente, il software dell'SSD (dentro il suo piccolo processore chiamato Controller), sposti i file in modo da lasciare meno buchi (spazio sprecato) possibile.
Questo succede anche con gli HDD ma mentre per loro non importa, se fatto dall'SSD, "spostare" vuol dire cancellare celle/scrivere altre celle.
Questo è un tipo di scrittura che fanno gli SSD senza che tu te ne accorga...
Poi ancora... che succede se continuo a scrivere (come facciamo noi su un foglio di carta) dall'alto verso il basso?
Semplice, consumiamo prima tutte le celle in alto e niente quelle in basso... quindi se ogni cellla può essere scritta solo 1000 volte, esaurisco prima le celle in alto di quele in basso che magari non verranno mai usate.
Il solito Controller allora, è programmato per spostare i file memorizzati sui quadratini (celle) meno usate, il tutto per appunto, consumare allo stesso modo tutte le celle dalla prima all'ultima.
Anche questa cosa, che ha il suo PRO ha anche il suo CONTRO, perchè sono sempre scritture in più che tu non sai che vengono fatte. Non vengono registrate da Windows ma solo dall'SSD nei dati SMART (la sua "scatola nera").
Per questo vengono dette scritture host, RAW o "grezze".

Per darti un'idea, in un uso come quello che descrivi tu, per ogni GB scritto da te (scaricando o salvando dei documenti, ecc), il sistema operativo e l'SSD stesso "amplifica" da 0,1 a 2 (il doppio) a seconda del dato e del modello di SSD.
 

pribolo

Moderatore
Staff Forum
Utente Èlite
38,393
13,798
CPU
i5 13600KF @5.4/4.3 GHz
Dissipatore
Endorfy Navis F280
Scheda Madre
MSI Z690 Tomahawk Wifi DDR4
HDD
Samsung 990 Pro 2TB e Crucial MX500 2TB
RAM
Crucial Ballistix 2x16GB 3200MT/s CL16 @4000C17
GPU
Asus TUF RTX 4070 Ti Super
Monitor
LG 27UL650 UHD
PSU
Seasonic Prime TX-750
Case
Sharkoon CA200M
OS
Windows 11 Pro
@Liupen Ottimo lavoro: ho aggiunto il tag GUIDA e l'ho messa in rilievo.
Mi sono permesso di editare il titolo perchè trovavo SSD un po' generico francamente: se hai suggerimenti su questo punto sono bene accetti comunque.
 
A

Alby32bit

Ospite
@Liupen letto un po in ritardo ma complimenti davvero, molto completo e dettagliato! Sicuramente uno dei migliori articoli riguardo gli SSD!:ok:
 
Ultima modifica da un moderatore:
  • Mi piace
Reazioni: Liupen

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Il Controller e la funzione ECC
(cosa è andato storto nei Samsung 840 series)


La correzione degli errori (ECC) può avere un grande impatto sulla longevità di un SSD, anche se pochi capiscono come un elemento standard può, in realtà, fare molta differenza per la durata di un SSD.
Come profano della materia magari questo scritto “semplificato” può far capire cosa succede in un SSD.
Tutti i NAND flash richiedono un ECC particolare per correggere gli errori di bit “casuali” (errore "soft"); questo perché all'interno di un chip NAND piccole variazione di tensione possono determinare la perdita di alcuni bit.
Questa stessa correzione degli errori aiuta anche a correggere la perdita di bit dovuti all'usura; l’usura può causare infatti il blocco dello stato del segnale (errore "hard"), che causa a cascata, conseguenti errori soft.
Il più delle volte questi errori sono fallimenti individuali di bit - è raro che l'intero blocco si rompa.
ECC serve proprio per correggere entrambe questi errori.
C’è un limite, oltre il quale fisicamente, un controller non riesce a far fronte ad errori ECC (>12 bit per ogni pagina).
Quando l’intera pagina diventa illeggibile, il controller invalida l’intero blocco (anche se porta dati parzialmente leggibili), ed è questo tempo di funzionamento (tra l’acquisto e il primo errore irreversibile), che viene garantito dal produttore tramite la garanzia.

Di conseguenza la funzione di ECC attuata dal Controller, permette di allungare sensibilmente la vita del nostro SSD.

Tutto questo ha un prezzo. Più sofisticato è l’ECC, più potenza di elaborazione richiede al Controller, che di conseguenza può essere più lento di algoritmi meno sofisticati.
Mentre il Controller infatti, soddisfa le nostre esigenze d’uso, elabora per ogni bit letto un algoritmo di ECC se necessario, impegnando un core e naturalmente parte della DRAM.
Succede quindi inevitabilmente che, come per un HDD, anche un SSD con dati vecchi o con errori, perda capacità di elaborazione e rallenti le proprie performance.

Ma cosa succede quando un Controller incontra un dato danneggiato durante una lettura IO?
Quando avviene un tale evento, il Controller immediatamente fa una lettura “retry” per garantire che il dato sia effettivamente danneggiato e illeggibile.
Questo permette una seconda possibilità di lettura a pieno regime non come ECC, in modo da non influire in modo significativo sulle prestazioni in tempo reale.
Se la lettura è improduttiva, quindi c’è la conferma di un dato danneggiato, il Controller legge mediante l’algoritmo ECC proprio del produttore, il dato memorizzato nella zona di riserva della NAND.


Se ECC standard non è in grado di riparare completamente la corruzione, riscrivendo il dato nella zona principale della NAND, il Controller segnalerà la perdita del dato nello S.M.A.R.T.

Oltre a questa protezione dei dati estremamente aggressiva e onerosa per il Controller, ora sono stati messi a punto dei sistemi più “sofisticati”…. 840 è stata purtroppo (per noi) da insegnamento.

Noto infatti ormai che la capacità di trattenere bit (di dati statici come ad esempio i file del sistema operativo) sul gate delle NAND (retention) si approssima ad un periodo di ca. un anno prima che insorgano errori ECC irreversibili, alcuni produttori (Samsung, Phison) ma sicuramente diventerà una programmazione standard dei firmware, hanno adottato un sistema di protezione attivo.
Attraverso il Garbage Collector, che legge di suo tutti i dati presenti sulle NAND, si è integrata la verifica di integrità ECC, e la riscrittura del dato come fosse una funzione di Wear Leveling.

In questo modo l’effetto 'dissolvenza' dei dati, può essere preso in tempo.






Metodi alternativi al power loss protection ssd di Micron


A differenza di tutti gli altri SSD, Micron e il suo marchio di distribuzione non OEM, cioè Crucial, hanno il mitico “sistema di protezione contro la perdita di dati in seguito alla interruzione di corrente elettrica” (imparato ormai a memoria ;) )
Sicuramente è il sistema di protezione dei dati da mancanza di energia più efficiente e che ha fatto vendere molto a Crucial, se non che, tempo dopo, Anandtech ci spiega che Crucial non ha implementato questo sistema come sugli SSD di elite della Micron, i quali permettevano, attraverso un certo numero di condensatori ceramici, di erogare energia sufficiente a trasferire i dati già presenti sulla DRAM e salvarli permanentemente sulle NAND.

aD.JPG


In realtà il salvataggio avviene parzialmente memorizzando solo i dati che hanno già raggiunto le NAND e naturalmente dando il comando di chiusura del drive, che è quello più importante perché cristallizza la tabella degli indici evitando errori di corruzione del file system.

Pur rimanendo questo sistema il più efficace, ora sono stati sviluppati dei metodi alternativi e che non fanno uso di condensatori ma delle stesse NAND, su esempio credo del RAIN (sempre di Micron/Crucial).
Proprio come OCZ (nel Vector 180) e Kingston (nel Savage), sono stati sviluppati dei sistemi per ridurre al minimo il tempo che i dati rimangono nel buffer della DRAM che viene costantemente svuotata dei dati. Questo sistema fa si che solo una quantità minima di dati risiede nella cache in caso di interruzione di corrente elettrica.
Oltre a questo, lo stesso sistema prevede la memorizzazione della tabella degli indici con maggiore frequenza cosa che, come detto, può evitare alla riaccensione il tetro bsod.
 
Ultima modifica:

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Secure Erase e Crittografia

A differenza dei supporti magnetici come gli HDD, i dati precedentemente memorizzati su supporti NAND Flash non possono essere sovrascritti direttamente.
Al fine di preparare una cella di memoria NAND Flash a ricevere un nuovo comando (Programmazione), deve essere eseguita preventivamente una separata operazione di “Cancellazione”.

L'atto di sovrascrivere un modello di dati specificato da un software, come per gli hdd, cioè lo “zero fill”, è certamente fattibile anche su SSD, ma richiede l'intero spazio utente da cancellare, elemento per elemento, per preparare a ricevere il segnale… una operazione ridondante che “consuma” le celle.

Oltre a ciò, la scrittura “tutti zero” dei software di cancellazione, per un SSD non si traduce come risultato in un’unità vuota, ma in una presenza di segnale che a sua volta dovrà essere cancellata, per poter essere scritta con i nuovi dati dell’utente.

Messo quindi da parte il metodo utilizzato per gli HDD, la cancellazione dei dati su SSD deve essere eseguito mediante il supporto del software interno del drive (firmware) a cui l’utente accede mediante un set di comandi ATA standardizzato e implementato tempo fa nel protocollo AHCI. Essendo un comando ATA, buona parte degli attuali bios di pc è in grado di dare un comando di cancellazione ad un SSD.

Quando viene emesso il comando SECURITY ERASE UNIT, un firmware istruisce il controller SSD per inviare un comando di cancellazione dei blocchi per tutti i dispositivi NAND sul drive. Dopo il Secure Erase, il pc si riavvia e l’SSD si trova in stato FOB (fresh out of a box)... noi diremmo "alle impostazioni di fabbrica".

Questo però non vuol dire che l’SSD non possa correre dei rischi durante il processo di cancellazione…ecco perché è bene eseguirlo solo quando è necessario e con gli strumenti giusti.

Tutti i dati nello spazio utente sono completamente e irrimediabilmente cancellati (via software non è possibile recuperare nessun dato dopo un Secure Erase), e ogni blocco nello spazio utente è pronto ad accettare nuovi dati da scrivere (sola programmazione=SSD più veloce ;). Tuttavia, alcuni dati devono essere lasciati al loro posto, questo include dati necessari per il normale funzionamento del drive, come le copie del firmware che risiedono nelle celle NAND, tutti i dati SMART, e la mappatura (tabella) dei blocchi NAND. Per questo è fondamentale utilizzare il tool proprietario del produttore del SSD in questione.

Una curiosità: il processo di Secure Erase impiega pochi minuti ed in quel frangente il parallelismo sviluppato dal controller è il massimo sviluppabile, di conseguenza avviene il max assorbimento di energia elettrica.. occhio quindi se lo fate con la batteria del laptop!

Altra curiosità: riguarda il recupero dei dati… dopo un Secure Erase la tensione superficiale del gate di ogni cella (vedi precedentemente), si uniforma; alcuni ingegneri hanno messo a punto una costosa e sofisticata apparecchiatura elettronica, capace di rilevare la tensione di ogni cella captando la quantità di elettroni residui per ricostruire il dato di partenza.


Bene, queste sono le informazioni di base per capire il funzionamento del Secure Erase…. ma è tutto qui?

No, perché come per gli HDD, anche gli SSD possono supportare la crittografia dei dati il che vuol dire che con i nuovi sistemi operativi (da Windows 7 in poi) i dati dentro il drive, si trovano in una condizione di protezione dagli accessi…inclusa la cancellazione (intenzionale o volontaria).

Per far fronte a queste esigenze, i produttori di SSD, hanno creato dei tool che prevedono la funzionalità SANITIZE ovvero un comando ATA più specifico (dato dal software mediante un algoritmo e che non può dare un semplice set di comandi ATA da bios), capace di rompere gli algotitmi di crittazione riportandolo ai comandi di base, e che consente inoltre di eliminare tutti i dati incluso lo spazio riservato alle NAND per i blocchi di Overprovisioning, i blocchi di ricambio e i blocchi “cattivi”, non accessibili normalmente all'utente.


Il discorso crittografia è un po’ una giungla e fare un po di chiarezza – allo stato attuale – non sarebbe male.

Gli SSD escono di fabbrica con le caratteristiche di sicurezza ATA abilitate, cioè è possibile proteggere il contenuto del drive con una password ATA (la cosiddetta Classe 0 di criptazione) abilitata di default, mediante il BIOS del pc.

Windows è implementato con la criptazione di tipo TCG Opal (la cosiddetta eDrive in supporto a Microsoft BitLocker), quindi con l'installazione, disattiva la modalità di protezione ATA, e dopo non è più possibile utilizzare funzioni di sicurezza ATA.
eDrive si basa sulle specifiche OPAL TCG e IEEE 1667. TCG è sinonimo di Trusted Computing Group. OPAL è una specifica di sicurezza, per dispositivi di archiviazione, definiti da TCG.

Nel caso di Windows 8 (o superiori), il sistema operativo potrebbe prendere il controllo del disco per una futura attivazione di Bitlocker.

Come risultato, i software di crittazione di terze parti potrebbe non essere in grado di attivare la sicurezza OPAL su questa unità.
Questo è il motivo per il quale Secure Erase e Sanitize sono bloccate dal Sistema Operativo risultando l’SSD nello stato di Frozen o Locked.

Se questo succede, cioè se la crittazione del OS interferisce con la gestione dell’SSD occorre fare un ripristino PSID.

PSID è l’acronimo di ID di protezione fisica. Si tratta di un identificatore univoco alfanumerico di 32 caratteri. È stampato sull'etichetta dell’SSD come una stringa di 32 caratteri, così come un codice a barre 2D… quindi conservate la scatola de vostro bel SSD.
Il ripristino PSID cambia non solo la chiave di crittografia, ma disattiva anche la modalità TCG Opal e riattiva la modalità di protezione ATA. Una delle soluzioni alternative per evitare la disattivazione della password ATA all’installazione di Windows è quella di attivare da bios la password ATA prima di installare il sistema operativo.

Il ripristino PSID, che viene svolto dal software Crypto Erase, eliminando tutte le chiavi di sicurezza distrugge tutti i dati utente, può anche essere usato per cancellare i dati degli utenti prima di restituire un SSD per RMA (ovvio...se ce n'è motivo).

Una famiglia a parte di compatibilità degli SSD è rappresentato dalla crittografia automatica (SED) che utilizzano uno standard di crittografia avanzata a 256 bit (AES) per fornire una protezione dei dati all’avanguardia. Un SED, in combinazione con una chiave di crittografia, anche di terze parti (ISV), fornisce un altro modo efficiente per mantenere i dati al sicuro.
Questo tipo di crittografia permette di essere più snella poiché la cancellazione immediata (2 secondi) fa si che si elimini solo la chiave dell’algoritmo di crittazione lasciando i dati sulle NAND (incomprensibili).
Mentre però le crittazioni SED forniscono enorme aiuto nella protezione dei dati da accessi non autorizzati, ci sono dei rischi assoluti, tra cui perdere una chiave di autenticazione o la password.

La gestione di crittografica di BitLocker (Microsoft - Wave Systems) fornisce invece capacità di backup ridondanti per le password, chiavi di autenticazione e altri codici di accesso (è comunque possibile perdere anche questi codici di accesso)
In tutti questi casi occorre reinserire il supporto di identificazione di sicurezza fisica (PSID).
 
Ultima modifica:

Anatra di Gomma

The squawking hammer
Utente Èlite
7,066
2,219
CPU
I5-3570K 4.1 GHz
Dissipatore
Macho HR-02
Scheda Madre
MSI Z77A-G45 Thunderbolth
HDD
Samsung 830 256GB; WD Blue 1TB; WD Red 4TB
RAM
Corsair Vengeance 2x8 GB 1600 MHz
GPU
PALIT 980ti Superjetstream
Audio
Asus Xonar DX
Monitor
Hannspree 27" 1440p
PSU
XFX 550W
Case
Corsair Obsidian 650 d - modded
OS
Windows 10
@Liupen caro, sono tuo amico ma sai che ti faccio lavorare. TI andrebbe di integrare la guida spendendo 2 parole sulle varie tipologie di ssd in commercio?

In cambio ti offro una nVidia Pas...ehm, ti offro simpatia e gratitudine! :bevuta:
 
  • Mi piace
Reazioni: Liupen

Liupen

SSD MAN
Utente Èlite
11,482
5,730
CENNI DI STORIA

L'SSD nasce parallelamente alla attuale tecnologia fatta per ospitare gli HDD quindi non poteva che essere adattata a questa per trovare un mercato nella grande distribuzione.

Ma forse è interessante cominciare con qualche passo indietro.

Nel lontano 1991 la SanDisk mette sul mercato il primo SSD basato su celle Flash. L’aspetto è quello di un disco da 2,5” e la capienza è di ben 20MB. Viene venduto all’IBM per il costo di $ 1000… il pezzo.

A luglio 2000 la Silicon Storage Technology entra nel mercato con una gamma di prodotti con protocollo ATA / IDE facendo concorrenza con i prodotti HDD IDE convenzionali.. no, beh, concorrenza è un parolone…. a giugno 2001 un SSD avevo un massimo di 14GB di capacità e costava $ 42000…

Solo tra il 2004 e il 2005, con l’avanzare del progresso tecnologico e costruttivo, le grosse case produttrici, cominciano a “pensare” di fare SSD per il mercato OEM destinato all’utenza finale.
Gli SSD sono con interfaccia Serial Attached SCSI nei formati 1,8” e 2,5”. Il Sata 3GB/s dà nuove prospettive a questa tecnologia.

A giugno 2005 M-Systems mette sul mercato il primo SSD 2.5” SATA da 128GB

A settembre dello stesso anno la SimpleTech lancia il primo SSD esterno (interfaccia USB).

SanDisk, Intel e Micron sono già produttori e Samsung comincia ora a produrre i propri notebook di fascia alta con disco SSD autoprodotto.

Nel 2008 entrano nel mercato dei dischi allo stato solido, anche Toshiba e OCZ.

Il 2009 è l’anno dell’SSD come oggi lo conosciamo. L’SSD diventa pienamente un supporto di memorizzazione con la stessa capienza degli HDD (anche se con un costo decisamente più elevato), ma è sotto gli occhi del grande pubblico e le riviste anche non specializzate, pubblicano articoli sui pregi di questi drive… IOPS, Write Amplification, NAND Flash, diventano termini comuni.

Nel 2009, nonostante lo sviluppo del SATA 6GB/s, si pensa a costruire un linguaggio adatto all’SSD che non sia quello ereditato dagli HDD ed escono i primi SSD PCIe.
 
Ultima modifica da un moderatore:

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Sull' OVER PROVISIONING

L' Over-provisioning è semplicemente il riservare dei blocchi fisici togliendoli alla disponibilità dell'utente; in questo modo i blocchi logici sono meno dei blocchi fisici. La maggior parte dei produttori di SSD professionali comprendono già alcuni blocchi riservati, generalmente dell'ordine dal 7 al 25% . Gli utenti possono creare più over-provisioning semplicemente utilizzando dei software che vengono messi a disposizione o lasciando dello spazio non allocato durante l'operazione di partizionamento del drive. Ad esempio, si potrebbe creare una partizione di 90 GB in un disco da 100 GB, e lasciare il restante 10 GB per over-provisioning. Anche se lo spazio over-provisioning non è visibile a livello del sistema operativo, il controller SSD può ancora vederlo. Il motivo principale per cui i produttori stanno offrendo over-provisioning è quello di far fronte alla durata limitata intrinseca di celle NAND-flash.

L'Over-provisioning dunque, è utile per il livellamento dell'usura e per il miglioramento delle prestazioni.

Gli invisibili blocchi over-provisioning sostituiscono senza problemi i blocchi che via via si esauriscono, allungando la vita "normale" dell'SSD.

L'over-provisioning, poi, agirà come un buffer di blocchi NAND-Flash, aiutando il processo di garbage collection ad assorbire picchi di scrittura.


Riguardo l'aspetto della sostituzione dei blocchi facenti parte di celle esaurite, c'è bisogno di puntualizzare un paio di cose.


Quando una cella perde la capacità di essere letta, perchè, diremmo, si esaurisce, viene annullato l'intero blocco di cui fa parte... 4kb; successivamente all'azione di TRIM la cancellazione prenderà l'intera sequenza di blocchi 512KB; sarà proprio questa grandezza, se presente un OP di fabbrica o realizzato dall'utente, a essere sostituita senza che l'utente se ne accorga.


Creando l'Over-provisioning si riduce la totalità delle celle che possono essere sfruttate pienamente per la scrittura...specie per il garbage collector; quindi si riduce il tempo medio tra un ciclo di usura ed un altro. Ciò viene compensato con un usura livellata delle celle che a fine ciclo di vita dell'SSD, ne moltiplica il tempo in cui questi - finendo tutte le celle scrivibili - rimarrà nella condizione di "sola lettura".


Nella situazione "normale", pur con l'azione del garbage collector, l'SSD memorizza dei dati che stanno fisicamente sulle stesse celle, e che non sposta (dati statici), come ad esempio i file del file system; ciò vuol dire che - al pari del punto precedente - ci saranno delle celle poco consumate e altre maggiormente consumate, che porteranno ad un termine prematuro. Anche per questa condizione, avere un OP, permette di allungare la vita dell'SSD.
 

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Tipologie di ssd in commercio


L’SSD come hardware nasce per rivoluzionare il mercato degli storage ma “deve” integrarsi con la tecnologia presente, quindi ha, almeno inizialmente, l’aspetto degli hdd.


Gli SSD da 3,5” ormai sono pezzi da museo, la totalità della produzione iniziale vede SSD da 2.5”, che permettono di integrarsi sia nei desktop che nei laptop.


primi SSD da 2.5” erano sia IDE che SATA, poiché appunto esistevano sul mercato schede madri – quindi PC – di vecchia generazione, che potevano essere “svecchiati” inserendo un dispositivo SSD.


1.jpg 2.jpg

Con la scomparsa dell’interfaccia IDE la produzione si è totalmente orientata sugli SSD 2.5” SATA.

Visto che gli Hard Data Disk si basano sull’interfaccia S-ATA anche gli SSD, perlomeno i primi, sono creati per adattarsi a questo linguaggio di trasferimento, pur essendone limitati.

All’inizio si hanno SSD conformi allo standard Sata2 poi, con il Sata3 il trasferimento cresce sino a 6 Gbit/s [effettive 4,8 Gb/s (600 MB/s)]

La vera limitazione del SATA NON è costituita dal passaggio di codifica/decodifica del flusso di dati in un chip secondario [Southbridge (chiamato anche ICH da I/O Controller Hub)] verso in chip di elaborazione primaria [la CPU-RAM], ma nel limitato bandwidth offerto dalle caratteristiche tecniche della porta.

Anche il linguaggio evoluto utilizzato dal SATA, ovvero AHCI, essendo dedicato agli HDD, non consente al’SSD di esprimere a pieno le proprie potenzialità.

3.jpg


Con la produzione dei laptop ultrasottili si è creato un nuovo standard ovvero mSATA (mini SATA).

Questi non è altro che un SSD SATA da 2.5” senza scocca (l’involucro in plastica o alluminio):

4.jpg

Essendo SATA ha le medesime caratteristiche prestazionali degli SSD da 2.5”.

Lo standard mSATA comprende diverse lunghezze che vanno valutate nel momento dell’acquisto del prodotto.

5.jpg

Nel cercare, poi, metodologie che potessero permettere di accrescere la velocità nel trasferimento dei dati, alcune schede madri sono state dotate di porte definite SATA Express. Non è uno standard dell’SSD, ma un escamotage della scheda madre, poiché consiste in una connessione di 2 SSD mSATA in RAID 0 come singola che va a fruttare 2 linee sata.


6.jpg


Anche se utilizzare gli SSD con lo standard SATA, ha permesso di introdurre questa nuova tecnologia sui supporti già esistenti, parallelamente il progresso tecnologico, quando più maturo, ha fatto si che venissero rilasciati sul mercato gli SSD PCIe.


Per farlo si è sfruttato il supporto per lo standard NGFF già utilizzato per supporti WiFi, Bluetooth, ecc

Un SSD PCIe è più veloce di un pari SSD SATA perché utilizza il canale che connette direttamente la scheda alla CPU-RAM cosa che vale ad esempio per le schede video. La velocità acquisita è un mix tra velocità della connessione diretta (minore latenza) e ampiezza di bandwidth offerta dal PCIe, assai superiore al SATA, tanto che si possono trasferire (parola chiave) “parallelamente” più informazioni nell’unità di tempo.

Nei primi SSD PCIe il linguaggio di trasferimento utilizzato è ancora AHCI

7.jpg

Il fatto che sono SSD di nuova invenzione, ha permesso che venisse creato un apposito linguaggio di trasferimento dati, chiamato NVM Express abbreviato NVMe.

8.jpg

9.jpg


Fondamentalmente gli SSD PCIe sono tutti SSD dello stesso tipo, con uno standard definito NGFF ma chiamato comunemente M.2

10.jpg

L’M.2, quando innestato in un adattatore HHHL viene definito propriamente SSD PCIe


11.jpg

Questo tipo di soluzione, permette di inserire nell’adattatore anche più di un SSD M.2 in RAID 0, con gli ovvi vantaggi prestazionali.

12.jpg


Gli M.2 come nuovo standard, anche se nascono per offrire il supporto allargato PCIe, sono prodotti anche in versione SATA. Gli M.2 SATA sono SSD con prestazioni limitate e pari a qualsiasi supporto SATA.


Esistono tre tipi di connessioni per lo standard M.2 (quindi altrettante tipologie di connessioni sulle schede madri anche se quella universale è stata adottata in prevalenza)


La differenza si coglie nella descrizione del dispositivo, laddove viene citata la “key” dello standard cui risponde il dispositivo.


Il tipo di Key determina le caratteristiche fisiche del dispositivo e più di mille parole lo schema illustra le diverse tipologie.

13.jpg

B' key (pin 12-19) è PCI Express fino a x2 corsie di larghezza di banda (fino a10 Gbit/s), mentre una 'M' key (pin 59-66) offre fino a x4 corsie di larghezza di banda (fino a 20 Gbit/s).

B + M key massimizzano la compatibilità in entrambi gli slot, e opererà con tutti i x2 di banda. presenti sul mercato.


Come per il mSATA anche il formato M.2 si sviluppa in lunghezza, proponendo diversi formati. Generalmente ci sono fino a cinque lunghezze di M.2, tuttavia, non tutte le schede madre o i notebook sono in grado di ospitarli.

Ecco le misure: 2230, 2242, 2260, 2280, 22110
]I numeri vengono decodificati come larghezza lunghezza, così per 2242, questo è 22mm di larghezza e 42 millimetri di lunghezza.



E' importante dire che il socket della scheda madre può essere predisposto per funzionare sia in modalità SATA che PCIe, mentre il dispositivo M.2 sarà solo SATA o solo PCIe.
 
Ultima modifica da un moderatore:

Liupen

SSD MAN
Utente Èlite
11,482
5,730
Sulla Frammentazione

Come detto sopra deframmentare l'SSD non serve... non si danneggia ne altro, solo che la ricompattazione dei file è inutile se si pensa che l'accesso ai dati 4k è comunque molto veloce. Il defrag, "spostando" dati, esegue delle scritture ...che se sono inutili ..va da se. D'altra parte una eccessiva frammentazione a lungo andare, crea problemi anche ad un ssd... per cui il controller, negli algoritmi di Garbage Collection, prevede di per se, anche, un simil defrag.

Quando dico "creerai su SSD molta frammentazione" intendo che il controller inizierà con più frequenza azioni di GC/WL (Wear Leveling)...insomma "lavorerà" di più... comunque devo dire che, a parte togliere mb per i save a livello di prestazione, gli attuali SSD, non subiscono cali prestazionali per un GC prolungato (non giocando per lo meno).

Per sommi capi la differenza nel trattare la frammentazione da parte di un hdd e di un ssd, consiste nella staticità del dato... mi spiego semplificando:

Windows messo su HDD piuttosto che su SSD, si comporta allo stesso modo; se riempio un hdd blocco per blocco con dei dati, questi saranno statici (pensa al sistema operativo e ai software, nel senso che una volta memorizzati stanno tendenzialmente ad occupare gli stessi blocchi, i blocchi statici saranno quelli meno usati) e dinamici (pensa ai film, i save, ecc ecc. file - quindi blocchi - che salvi, cancelli, sposti...) cose che mano a mano creano dei buchi vuoti (gruppi di blocchi non utilizzatiti tra gruppi di blocchi validi). Basta dunque una deframmentazione per "raggruppare" tutti i blocchi validi+raggruppare tutti i blocchi che realizzano un file, più vicini fra loro e rendere il percorso della testina del HDD più "logico" (minor percorso=più reattività).

Allora cosa impedisce, in un SSD, di gestire ugualmente la cosa?

Il fatto che ogni blocco di un SSD può essere usato solo n. volte.
Il fatto che, se su un SSD i blocchi possono essere scritti singolarmente (4KB), devono essere cancellati a gruppi (512KB).
Il fatto che un SSD non può sovrascrivere un blocco come un HDD, ma deve prima far cancellare le celle su cui risiede il blocco e poi riprogrammarle.

Diventa importante "gestire" i blocchi statici e dinamici e i "buchi" che si creano con l'uso del device. Un SSD funziona come un HDD ma si deve autogestire.
Ecco perchè un SSD ha un proprio cervello (controller) che sposta i dati per deframmentare e predisporre "prima" la cancellazione dei blocchi non più validi (TRIM e Garbage Collection) e lo fa seguendo algoritmi di livellamento (Wear Leveling) per far si che ogni blocco venga (in teoria) usato come tutti gli altri.

Quando/se si riuscirà ad avere degli SSD (quelli a cambio di stato fisico, che è molto simile nell'effetto alla magnetizzazione) senza il problema dell'usura delle celle e sistemi operativi appositamente studiati per SSD, allora un controller in un SSD non sarà più necessario e si avrà la prossima generazione di storage.
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili