Una recente discussione mi ha fatto venire il trip di capire quanto effettivamente possa durare il mio SSD (Samsung 840 500 Gb basic) che ormai ha compiuto 4 mesi.
Le indicazioni date dalla Samsung nelle specifiche tecniche, in merito alla durata dell'hardware, riportano pochi dati, non immediatamente interpretabili. Vi trovo scritto: Affidabilità di 1,5 milioni di ore (MTBF) e memorieNAND flash 2.0 di tipo TLC 21 nm.
Sappiamo che le proprietà delle NAND che costituiscono l’SSD vanno ad esaurirsi e che la cella o transistor perderà la capacità di trattenere la carica elettrica….
Ma MTBF corrisponde all’intervallo statistico tra due errori (in ambiente elettronico), mentre sapere il tipo di memoria e la tecnologia di fabbricazione, non mi dice proprio niente.
Insomma, un bel count-down, che indica progressivamente la data di rottura ipotetica dell’hardware, sarebbe stato il benvenuto!
In realtà dovrebbe esserci proprio un valore T.E.C. (acronimo di Theresholt Exeeds Condition)prodotto da un software che elabora i dati di S.M.A.R.T. per stimare in percentuale il tempo di rottura, ma, dicono, è poco affidabile, poiché attualmente, a causa delle diverse variabili in gioco, e della mancanza di dati statistici sulla effettiva durata delle celle, ha una affidabilità dell’85%.
L'utilizzo dell'apposito software Magician (come anche altri software come CrystaDiskInfo) permette di accedere al monitoraggio hardware che prende il nome appunto di S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology). Questa applicazione, oggi supportata da tutti gli HDD e SSD, nasce per raccogliere dati puri ed elaborarli al fine di “predire” malfunzionamenti e avvisare l’utente, si spera in tempo, per fare un backup delle informazioni. I sensori che registrano lo stato dell’hardware, rilevano dei dati (RAW) e tengono in memoria i valori precedenti.
L’andamento dello stato di funzionamento T.E.C. è quasi sempre riassunto, nei software citati, in un “STATO ATTUALE DISCO/UNITA’: BUONO -> PERICOLO” e una percentuale (100% condizione sicura, 1% esaurimento celle, massima probabilità di perdita di dati).
S.M.A.R.T. e T.E.C. sono presenti rispettivamente nel firmware dell’hardware dove sono contenute anche le relative istruzioni di funzionamento, implementate dal sistema operativo/bios che riconosce l’hardware, e nel software caricato e fatto funzionare sul sistema operativo.
Tornando al mio Samsung SSD l’idea è ora quella di trovare in giro, una metodologia di valutazione sul suo ciclo di vita in funzione dell’uso quotidiano fatto in questi 4 mesi, attraverso i pochi dati S.M.A.R.T. che mi vengono offerti dal software. Insomma è vero che l’SSD mi durerà almeno i tre anni (di garanzia)? Siamo sempre nella casistica di un hardware non soggetto a rotture accidentali…. quindi, permettetemi…“s.f.i.g.h.e. a parte”!
Iniziamo dalle celle. L’invenzione delle TLC (Three Level Cell, ovvero di memorizzare 3 bit per singola cella) è stata la base della diffusione degli SSD nel mercato mainstrem, poiché sono più economiche rispetto alle NAND di generazione precedente. Inoltre, proprio con l’introduzione delle nuove celle, veniva implementato il connubio controller-firmware. Ancora, le celle di memoria DDR2 NAND flash, sono state oggetto di diversi step che hanno portato a una miniaturizzazione nella tecnologia di produzione, dai 27, 25, 21, 20 ai 19 nm (progresso che ha coinvolto ad esempio, come sappiamo, anche le CPU), volta a migliorarne le capacità, fino a giungere all’attuale prodotto di fascia entry-level, l’EVO, che utilizza si, sempre le vecchie NAND TLC, ma prodotte con tecniche di densità maggiore (aumento memoria complessiva), una archiviazione ide dai 16 Gb fino a 64 Gb per il modello da1Tb, un uso del controller triple-core utilizzato nei modelli PRO, ed infine all’escamotage di una specie di caching DRAM, per scritture “turbo” (o RAPID MODE).
Ad esempio il mio SSD è stato prodotto utilizzando chip NAND flash 2.0 di tipo TLC realizzate con tecnologia a 21 nanometri e una memoria interna ide da 8 GB per il controller.
Perché mi soffermo su questo? Perché proprio la tecnologia di fabbricazione e quindi anche la generazione delle memorie, ha molto peso nella durata dell’SSD.
Ah, se vi chiedete come mai un PRO che è della generazione precedente, è sempre migliore di un EVO, la risposta e che il PRO utilizza le NAND flash MLC (Multi LevelCell, ovvero consentono di memorizzare solo 2 bit per singola cella), più longeve (la cella è sovrascritta solo 2 volte e non 3 come con le TLC, quindi è meno stressata), e più veloce. Inoltre il terzo bit per cella (dell’EVO), ha una maggiore latenza nelle operazioni che nuoce alla performance in lettura, mentre la miniaturizzazione portata dalla tecnologia a 19 nm (EVO), aumenta ulteriormente la latenza e ha un effetto negativo sulla resistenza in scrittura.
E visto che ci sono vi dico che ho notato che la tecnologia sui chip (dalle RAM, ma anche in parte alle CPU), per tutto l’hardware sembra muoversi nella stessa direzione: miniaturizzare.
Prendo una cella del chip e ci faccio fare una operazione; ottengo una memoria SLC (Single Level Cell). Poi riesco a miniaturizzare ancora un po la cella, e allora gli faccio fare, nella stessa unità di prima, non una ma due operazioni (bit); ottengo una memoria MLC. In questo step, nonostante la tecnologia sia migliore, il chip si scalda maggiormente, lo stresso del doppio, e la velocità di conduzione dell’operazione è leggermente inferiore; però sono riuscito a creare un hardware con più memoria a parità di grandezza. Altro step e, miniaturizzando ulteriormente, su una singola cella ci faccio stare tre operazioni; il chip ora si scalda e viene sollecitato almeno tre volte tanto e, a parità di tempo, l’operazione viene eseguita (latenza) meno velocemente che non su una NAND di tipo SLC; però spendo molto meno a produrre queste TLC perché la tecnologia si è affinata e, perché nello stesso spazio ci faccio stare una quantità di memoria più ampia… addirittura posso (io Samsung) far stare nella scatoletta (SSD) 4 chip con 1 Tb di memoria, mentre prima con gli stessi 4 chip (che a produrli mi sono costati pure di più) ci facevo stare a malapena 500 Gb, e non riuscivo a venderlo perché erano pochi (i Gb) e perché costavano molto (gli SSD)!!
Per dare un’idea: a parità di densità di celle, se con la tecnologia a 21 nm ottengo un chip di memoria (SSD 840 basic), con la tecnologia a 19 nm posso farci stare lo stesso numero di celle in uno spazio… in un chip (SSD 840 EVO) , che è grande circa la metà…e mi costa anche meno della metà (perché è ovviamente grande la metà e perché intanto ho imparato a industrializzare meglio).
Questa è l’economia dell’SSD (Samsung)…. Ma stò divagando…. Però la genialata del RAPID MODE merita due parole no?
Innanzi tutto l’idea alla base è della SanDisk, ma Samsung la applica alle memorie NAND per SSD.
Visto che con le TLC a 19 nm, ottengo delle memorie si più grandi, ma anche meno durevoli e meno veloci in scrittura, devo inventarmi qualcosa che mi consenta di non essere fuori dal mercato… ed ecco la soluzione: metto da parte una certa quantità di celle e le faccio lavorare come SLC (una sola operazione a quasi 1/3 del tempo). Il risultato e che fino al riempimento di questa porzione di memoria avrò un incremento di prestazioni evidente. Tutto questo è reso possibile dai nuovi tipi di controller, che riescono ad accedere a più blocchi contemporaneamente, con trasfer rate che superano la barriera dei 6 Gb/sec. Questo tipo di utilizzo di memoria, quasi fosse una cache del sistema operativo, ha però uno scotto: una parte fissa della memoria dell’SSD 840 EVO (ora anche il PRO) è dedicata dal controller SOLO all’emulazione delle NAND SLC… di fatto è inutilizzabile.
Ne deduco, ma questa è un’opinione personale, che l’utilizzo continuato di quella parte di memoria, possa portare a una usura amplificata delle celle e che il modello SSD 840 EVO da 120 Gb, è il più penalizzato, visto che per necessità minima, utilizza 9 Gb di memoria dedicata al Rapid Mode (per averne 3 Gb di scrittura effettiva), memoria sottratta ai 120 Gb utilizzabili (che sappiamo, con l’installazione del sistema operativo e l’uso dell’OP sono molto meno). Con i tagli più grandi (precisamente dal 500 Gb in su), la perdita di memoria dedicata al Rapid Mode diventa meno evidente, a fronte di più memoria sia per il controller, sia per l’emulazione SLC, e quindi maggiore durata delle performance in modalità “turbo”.
Quindi se vi chiedete perché il taglio da 500 (PRO o EVO) va meglio di quello da 120…ora lo sapete; è questione di spazio: 1-dedicato al controller; 2-dedicato alla chache “turbo”.
Tornando al calcolo della durata del mio SSD, questi è legato, dunque, al tipo di memoria. La combinazione di processo produttivo e bit per cella, determina la longevità statistica, espressa dalle case produttrici in “Programmazione e Cancellazione” [P/E cycles], ovvero per ogni volta che cambio lo stato della cella. Semplificato nei numeri che ci sono entrati in testa:
SLC 10 000 cicli P/E
MLC (sopra i 21 nm) 5 000 cicli P/E Samsung 830
MLC (21 - 19 nm) 3 000 cicli P/E Samsung 840 PRO
TLC (21 – 19 nm) 1 000 cicli P/E Samsung 840 e Samsung 840 EVO
C’è da puntualizzare che, nonostante ho precedentemente affermato che le TLC sono diventate più lente in scrittura (rispetto alle MLC) a causa dell’aumento delle latenze e al tempo necessario a programmare un numero maggiore di bit per cella, le prestazioni globali degli SSD continuano ad essere sempre più alte, perché migliora la velocità del bus memoria-controller, il numero di canali el’interleveling (gli algoritmi implementati nel firmware per la correzione degl ierrori e gestione wear leveling).
Quando una cella è piana, quindi, la velocità per scriverci una seconda volta dipende direttamente ed esclusivamente dalle capacità del controller.
Altra cosa da sottolineare è la scarsa, per ora, presenza di dati statistici significativi, sulla durata delle celle: si è provato che alcune NAND MLC della Crucial, garantiti con 3000 cicli nominali, arrivassero tranquillamente ai 10000 cicli!
Per controllare la longevità teorica, si deve introdurre il concetto di TBW (Total Byte Written), che esprime la quantità di dati scrivibili su SSD prima dello spegnimento delle celle, la quale dipende dalla capacità dell’SSD (1) e dal numero di cicli P/E del tipo di NAND(2):
TBW = (capacità [Gb]) x (cicli [P/E])
Per stimare la durata in anni, basta dividere il TBW per il carico di lavoro, cioè la quantità di dati che si scrivono giornalmente [Gb/giorno] proiettata in media a 1 anno:
Longevità in numero di anni =TBW / (scritture giornaliere x 365))
L’ipotesi che viene presa in considerazione è un uso giornaliero dell’SSD che prevede scritture di 20 Gb/giorno (uso medio ponderato).
In teoria l’SSD del tipo posseduto da me si stima abbia una durata di:
TBW=(500x1000) =500000 Longevità=500000/(20x365) =68,49 anni
Ok, questa è la teoria che ci mettono davanti basandosi su dati ipotetici… dati P/E nominali delle memorie, che nella realtà potrebbero durare meno, di più o addirittura molto di più (dipende dalla qualità dei chip Samsung). Ma se volessi prendere dati reali di utilizzo, se volessi realmente controllare come stò usando il mio SSD e quanto è affidabile il dato T.E.C. che mi viene fornito dal software?
Dai dati S.M.A.R.T. di Samsung Magician, seguendo la guida del software, si rileva un:
ID 177 o B1 Count Wear Leveling
Questoattributo rappresenta il numero medio di “Programmazione e Cancellazione” [P/Ecycles byte] dei blocchi. Questo valore è direttamente correlato alla durata dell’SSD, e, soprattutto è un dato reale (più o meno, perché è arrotondato perdifetto).
ID09 Power-On Hours
Il valore non elaborato del conteggio delle ore di funzionamento dell’SSD misurato sul controller. Sono escluse le modalità di ibernazione, stand-by, ecc.
ID12 o 0C Power-On Count
Il valore non elaborato delle volte che il controller è stato alimentato.
ID 241 o F1 Total LBA Written
Rappresentala dimensione totale di tutti i LBA (Logical Block Address), espresso in byte, registrate dal controller come richieste di scritture/cancellazioni dal sistema operativo verso l’SSD. Questo dato pur non essendo elaborato, approssima, però, per difetto la realtà dato che la richiesta del sistema operativo di una scrittura, provoca nella realtà cancellazioni e riscritture di celle anche non completamente "piene".
E’ per questoche è nato il comando TRIM nel sistema operativo, per supportare il controller dell’SSD nelle operazioni di P/E: mentre il file system continua a mantenereuna lista dei blocchi in uso (sotto forma di LBA), il controller dell’SSD non può accedere a quella lista, e ciò e la causa del fenomeno detto Write Amplification. Dal momento che il controller dell’SSD non conosce quali blocchi sono ancora in uso, se sono stati scritti in precedenza, ogni scrittura richiederà un grande numero di ciclo di lettura-eliminazione-modifica-scrittura, assumendo che non ci siano altri bocchi disponibili sull’SSD (cioè quando tutt ii blocchi sono almeno parzialmente pieni). Per via del fenomeno della WA, sulle memorie NAND Flash dell'SSD verranno scritti più dati di quanto effettivamente il sistema operativo ne richiede al drive. La WA dipende da caso a caso, ma in caso di uso leggero e drive, ad esempio, da 250Gb riempito a metà non dovrebbe essere superiore a 2. In altre parole, per ogni 1 Gb scritto, con una WA di 2 ne verranno movimentati 2Gb sulle memorie NAND.
Tornando al software, Magician, il dato Count Wear Leveling è sicuramente inversamente proporzionale al ciclo di vita dell’SSD, ovvero più si alza, più la vita del disco scende. Per verificare se è un consumo anomalo bisogna vedere le accensioni “Power-on Count”, e le ore di utilizzo “Power-on Hours”. Per il mio SSD, ogni 1000 scritture o cicli, il livello d’uso si esaurisce, quindi sale il valore… io sono a 4 di 1000.
Ma cosa vuol dire realmente?
Snocciolandoi dati S.M.A.R.T. dell’SSD… 500 Gb, 419 Gb utilizzati, che corrispondono a 449 897824 256 byte (1 Gb=1 073 741 824byte). Questi byte costituiscono in forma aggregata dei blocchi da 512 byte (la più piccola porzione di dati indirizzabile) ogni blocco possiamo paragonarlo a una cella:
449 897 824 256 bytecorrispondono a 878 706 688 blocchi da 512 byte
Utilizzando il dato più importante dato dallo S.M.A.R.T., ovvero il Total LBA Written, ricavo che ho eseguito operazioni di Programmazione e Cancellazione su 3 755 588 242 LBA scritti per un totale di: 3755588242 x 512 = 1 922 861 179 904 byte che corrisponde a 1,75 Tb
A riprova posso dire che avendo scritto 3 755 588 242 byte su un totale di 878 706 688 blocchi da 512byte:
3755588242/878706688= 4,3 che corrisponde al mio effettivo Wear Leveling Count (sono adesso al quinto ciclo di scritture delle mie celle).
Inoltre Magician nei citati “byte scritti” mi dice giustamente che ho eseguito 1,75 Tb di scritture….ci siamo con la corrispondenza dei dati, ma forse arrotonda il dato…
Perché? Perché il valore S.M.A.R.T. indicato con LBAsector size (la più piccola porzione di dati indirizzabile sul file system) NON coincide con i blocchi effettivamente sottoposti al ciclo di P/E (essendo un dato passato dal file system), diversamente dal dato ottenibile moltiplicando i cicli di scrittura fatti, per la memoria a disposizione del controller; questo fenomeno viene definito, come detto, Write Amplification.
Per quanto riguarda il mio Samsung 840 500 Gb:
Memoria NAND Flash installata: 500 Gb
Memoria NAND disponibile: 419 Gb
TWB: (1000*419) = 419000 Gb
Wear Leveling Count [RAW]: 4
Wear Leveling Count (effettiva): 4,3
Total NAND Writter: = (Wear Leveling Count [RAW] xMemoria NAND Flash installata (in Gb): 4 x 500 = 2000 Gb
TotalLBA Written: Wear Leveling Count x Memoria NAND disponibile = 4,3 x 419 =1801,7 Gb
Dunque per esteso il calcolo della Write Amplification sarebbe:
(Wear Leveling Count [RAW] x Memoria NAND Flash installata / Total LBA Written=
(4 x 500) / 1801,7 = 1,11
Una WA di circa 2 in teoria dovrebbe essere valore medio tipico per usi home. Meno il drive è capiente, meno spazio libero tende ad esserci, cosa che fa salire la Write Amplification. Il valore 1,11 che mi è venuto è quindi un ottimo valore dovuto al fatto che, quattro cicli sono ancora pochi, e che, pur avendo scritto 1.75 Tb di dati, questa è la seconda installazione e, dalla secure erase che ho effettuato, non ho ancora riempito tutte le celle. Minimizzando la WA, abbiamo un impatto positivo sulla resistenza, che allunga la vita dell’SSD, quindi è un valore da tenere sott’occhio mano a mano che si stima la longevità dell’hadware. Avere un WA inferiore a 2 è, inoltre, sinonimo di un buon funzionamento del controller.
Per arrivare al dato di Longevità in numero di anni devo innanzitutto prendere il valore di TBW, dato che come abbiamo visto dipende dalla quantità di memoria dell’SSD ovvero dal numero di blocchi scrivibili, e dal tipo di NAND utilizzate, espresse in cicli P/E:
TBW = (419 x 1000) = 419000Gb
Il primo valore è dato dalla memoria effettivamente a disposizione del controller, il secondo è sempre dato dalla consueta attesa di vita del tipo di celle in cicli.
Ora, il più importante dato che varia e su cui pesa la riduzione del ciclo di vita dell’SSD, è il calcolo della quantità di dati scritti giornalmente [Gb/giorno].
Stabilito che ho scritto in 4 mesi 1801,7 Gb = 1 934 560 644 301 byte, aggiungo un tasso d’uso WA (x 1,11), supponendo una media di 30 giorni al mese, per 4 mesi ottengo:
(1801,7 x 1,11) / 120 = 17 Gb/giorno (per eccesso)
In ultimo allora, se ho 419000 Gb alla rottura:
Longevità = 419000 [Gb] / 17 [Gb/giorno] = 24647 giorni = 67 anni!
Un dato molto, molto rassicurante.
Ma come muore un SSD?
Quando l’indicatore di vita residua scende a 1% (partendo dal 100%), l’SSD non smette subito di funzionare, ma inizia un nuovo periodo di funzionamento ad oltranza in cui vengono utilizzati i blocchi che abbiamo riservato impostando l’Over Provisioning, per sostituire quelli che nel tempo risulteranno difettosi o spenti. Una volta esaurita quest’area (e non è prevedibile perché queste celle hanno nel tempo fatto dei cicli), l’SSD entrerà in uno stato di funzionamento in sola lettura, che potrà funzionare senza errori se non necessiteranno più scritture. L’utilizzo dell’SSD ad oltranza dopo che ha raggiunto lo 0%, causa invece errori di sistema, dovute all’impossibilità di scrivere.
[Ho semplificato le unità di misura appositamente - segnalatemi eventuali inesattezze]
Le indicazioni date dalla Samsung nelle specifiche tecniche, in merito alla durata dell'hardware, riportano pochi dati, non immediatamente interpretabili. Vi trovo scritto: Affidabilità di 1,5 milioni di ore (MTBF) e memorieNAND flash 2.0 di tipo TLC 21 nm.
Sappiamo che le proprietà delle NAND che costituiscono l’SSD vanno ad esaurirsi e che la cella o transistor perderà la capacità di trattenere la carica elettrica….
Ma MTBF corrisponde all’intervallo statistico tra due errori (in ambiente elettronico), mentre sapere il tipo di memoria e la tecnologia di fabbricazione, non mi dice proprio niente.
Insomma, un bel count-down, che indica progressivamente la data di rottura ipotetica dell’hardware, sarebbe stato il benvenuto!
In realtà dovrebbe esserci proprio un valore T.E.C. (acronimo di Theresholt Exeeds Condition)prodotto da un software che elabora i dati di S.M.A.R.T. per stimare in percentuale il tempo di rottura, ma, dicono, è poco affidabile, poiché attualmente, a causa delle diverse variabili in gioco, e della mancanza di dati statistici sulla effettiva durata delle celle, ha una affidabilità dell’85%.
L'utilizzo dell'apposito software Magician (come anche altri software come CrystaDiskInfo) permette di accedere al monitoraggio hardware che prende il nome appunto di S.M.A.R.T.(Self-Monitoring, Analysis, and Reporting Technology). Questa applicazione, oggi supportata da tutti gli HDD e SSD, nasce per raccogliere dati puri ed elaborarli al fine di “predire” malfunzionamenti e avvisare l’utente, si spera in tempo, per fare un backup delle informazioni. I sensori che registrano lo stato dell’hardware, rilevano dei dati (RAW) e tengono in memoria i valori precedenti.
L’andamento dello stato di funzionamento T.E.C. è quasi sempre riassunto, nei software citati, in un “STATO ATTUALE DISCO/UNITA’: BUONO -> PERICOLO” e una percentuale (100% condizione sicura, 1% esaurimento celle, massima probabilità di perdita di dati).
S.M.A.R.T. e T.E.C. sono presenti rispettivamente nel firmware dell’hardware dove sono contenute anche le relative istruzioni di funzionamento, implementate dal sistema operativo/bios che riconosce l’hardware, e nel software caricato e fatto funzionare sul sistema operativo.
Tornando al mio Samsung SSD l’idea è ora quella di trovare in giro, una metodologia di valutazione sul suo ciclo di vita in funzione dell’uso quotidiano fatto in questi 4 mesi, attraverso i pochi dati S.M.A.R.T. che mi vengono offerti dal software. Insomma è vero che l’SSD mi durerà almeno i tre anni (di garanzia)? Siamo sempre nella casistica di un hardware non soggetto a rotture accidentali…. quindi, permettetemi…“s.f.i.g.h.e. a parte”!
Iniziamo dalle celle. L’invenzione delle TLC (Three Level Cell, ovvero di memorizzare 3 bit per singola cella) è stata la base della diffusione degli SSD nel mercato mainstrem, poiché sono più economiche rispetto alle NAND di generazione precedente. Inoltre, proprio con l’introduzione delle nuove celle, veniva implementato il connubio controller-firmware. Ancora, le celle di memoria DDR2 NAND flash, sono state oggetto di diversi step che hanno portato a una miniaturizzazione nella tecnologia di produzione, dai 27, 25, 21, 20 ai 19 nm (progresso che ha coinvolto ad esempio, come sappiamo, anche le CPU), volta a migliorarne le capacità, fino a giungere all’attuale prodotto di fascia entry-level, l’EVO, che utilizza si, sempre le vecchie NAND TLC, ma prodotte con tecniche di densità maggiore (aumento memoria complessiva), una archiviazione ide dai 16 Gb fino a 64 Gb per il modello da1Tb, un uso del controller triple-core utilizzato nei modelli PRO, ed infine all’escamotage di una specie di caching DRAM, per scritture “turbo” (o RAPID MODE).
Ad esempio il mio SSD è stato prodotto utilizzando chip NAND flash 2.0 di tipo TLC realizzate con tecnologia a 21 nanometri e una memoria interna ide da 8 GB per il controller.
Perché mi soffermo su questo? Perché proprio la tecnologia di fabbricazione e quindi anche la generazione delle memorie, ha molto peso nella durata dell’SSD.
Ah, se vi chiedete come mai un PRO che è della generazione precedente, è sempre migliore di un EVO, la risposta e che il PRO utilizza le NAND flash MLC (Multi LevelCell, ovvero consentono di memorizzare solo 2 bit per singola cella), più longeve (la cella è sovrascritta solo 2 volte e non 3 come con le TLC, quindi è meno stressata), e più veloce. Inoltre il terzo bit per cella (dell’EVO), ha una maggiore latenza nelle operazioni che nuoce alla performance in lettura, mentre la miniaturizzazione portata dalla tecnologia a 19 nm (EVO), aumenta ulteriormente la latenza e ha un effetto negativo sulla resistenza in scrittura.
E visto che ci sono vi dico che ho notato che la tecnologia sui chip (dalle RAM, ma anche in parte alle CPU), per tutto l’hardware sembra muoversi nella stessa direzione: miniaturizzare.
Prendo una cella del chip e ci faccio fare una operazione; ottengo una memoria SLC (Single Level Cell). Poi riesco a miniaturizzare ancora un po la cella, e allora gli faccio fare, nella stessa unità di prima, non una ma due operazioni (bit); ottengo una memoria MLC. In questo step, nonostante la tecnologia sia migliore, il chip si scalda maggiormente, lo stresso del doppio, e la velocità di conduzione dell’operazione è leggermente inferiore; però sono riuscito a creare un hardware con più memoria a parità di grandezza. Altro step e, miniaturizzando ulteriormente, su una singola cella ci faccio stare tre operazioni; il chip ora si scalda e viene sollecitato almeno tre volte tanto e, a parità di tempo, l’operazione viene eseguita (latenza) meno velocemente che non su una NAND di tipo SLC; però spendo molto meno a produrre queste TLC perché la tecnologia si è affinata e, perché nello stesso spazio ci faccio stare una quantità di memoria più ampia… addirittura posso (io Samsung) far stare nella scatoletta (SSD) 4 chip con 1 Tb di memoria, mentre prima con gli stessi 4 chip (che a produrli mi sono costati pure di più) ci facevo stare a malapena 500 Gb, e non riuscivo a venderlo perché erano pochi (i Gb) e perché costavano molto (gli SSD)!!
Per dare un’idea: a parità di densità di celle, se con la tecnologia a 21 nm ottengo un chip di memoria (SSD 840 basic), con la tecnologia a 19 nm posso farci stare lo stesso numero di celle in uno spazio… in un chip (SSD 840 EVO) , che è grande circa la metà…e mi costa anche meno della metà (perché è ovviamente grande la metà e perché intanto ho imparato a industrializzare meglio).
Questa è l’economia dell’SSD (Samsung)…. Ma stò divagando…. Però la genialata del RAPID MODE merita due parole no?
Innanzi tutto l’idea alla base è della SanDisk, ma Samsung la applica alle memorie NAND per SSD.
Visto che con le TLC a 19 nm, ottengo delle memorie si più grandi, ma anche meno durevoli e meno veloci in scrittura, devo inventarmi qualcosa che mi consenta di non essere fuori dal mercato… ed ecco la soluzione: metto da parte una certa quantità di celle e le faccio lavorare come SLC (una sola operazione a quasi 1/3 del tempo). Il risultato e che fino al riempimento di questa porzione di memoria avrò un incremento di prestazioni evidente. Tutto questo è reso possibile dai nuovi tipi di controller, che riescono ad accedere a più blocchi contemporaneamente, con trasfer rate che superano la barriera dei 6 Gb/sec. Questo tipo di utilizzo di memoria, quasi fosse una cache del sistema operativo, ha però uno scotto: una parte fissa della memoria dell’SSD 840 EVO (ora anche il PRO) è dedicata dal controller SOLO all’emulazione delle NAND SLC… di fatto è inutilizzabile.
Ne deduco, ma questa è un’opinione personale, che l’utilizzo continuato di quella parte di memoria, possa portare a una usura amplificata delle celle e che il modello SSD 840 EVO da 120 Gb, è il più penalizzato, visto che per necessità minima, utilizza 9 Gb di memoria dedicata al Rapid Mode (per averne 3 Gb di scrittura effettiva), memoria sottratta ai 120 Gb utilizzabili (che sappiamo, con l’installazione del sistema operativo e l’uso dell’OP sono molto meno). Con i tagli più grandi (precisamente dal 500 Gb in su), la perdita di memoria dedicata al Rapid Mode diventa meno evidente, a fronte di più memoria sia per il controller, sia per l’emulazione SLC, e quindi maggiore durata delle performance in modalità “turbo”.
Quindi se vi chiedete perché il taglio da 500 (PRO o EVO) va meglio di quello da 120…ora lo sapete; è questione di spazio: 1-dedicato al controller; 2-dedicato alla chache “turbo”.
Tornando al calcolo della durata del mio SSD, questi è legato, dunque, al tipo di memoria. La combinazione di processo produttivo e bit per cella, determina la longevità statistica, espressa dalle case produttrici in “Programmazione e Cancellazione” [P/E cycles], ovvero per ogni volta che cambio lo stato della cella. Semplificato nei numeri che ci sono entrati in testa:
SLC 10 000 cicli P/E
MLC (sopra i 21 nm) 5 000 cicli P/E Samsung 830
MLC (21 - 19 nm) 3 000 cicli P/E Samsung 840 PRO
TLC (21 – 19 nm) 1 000 cicli P/E Samsung 840 e Samsung 840 EVO
C’è da puntualizzare che, nonostante ho precedentemente affermato che le TLC sono diventate più lente in scrittura (rispetto alle MLC) a causa dell’aumento delle latenze e al tempo necessario a programmare un numero maggiore di bit per cella, le prestazioni globali degli SSD continuano ad essere sempre più alte, perché migliora la velocità del bus memoria-controller, il numero di canali el’interleveling (gli algoritmi implementati nel firmware per la correzione degl ierrori e gestione wear leveling).
Quando una cella è piana, quindi, la velocità per scriverci una seconda volta dipende direttamente ed esclusivamente dalle capacità del controller.
Altra cosa da sottolineare è la scarsa, per ora, presenza di dati statistici significativi, sulla durata delle celle: si è provato che alcune NAND MLC della Crucial, garantiti con 3000 cicli nominali, arrivassero tranquillamente ai 10000 cicli!
Per controllare la longevità teorica, si deve introdurre il concetto di TBW (Total Byte Written), che esprime la quantità di dati scrivibili su SSD prima dello spegnimento delle celle, la quale dipende dalla capacità dell’SSD (1) e dal numero di cicli P/E del tipo di NAND(2):
TBW = (capacità [Gb]) x (cicli [P/E])
Per stimare la durata in anni, basta dividere il TBW per il carico di lavoro, cioè la quantità di dati che si scrivono giornalmente [Gb/giorno] proiettata in media a 1 anno:
Longevità in numero di anni =TBW / (scritture giornaliere x 365))
L’ipotesi che viene presa in considerazione è un uso giornaliero dell’SSD che prevede scritture di 20 Gb/giorno (uso medio ponderato).
In teoria l’SSD del tipo posseduto da me si stima abbia una durata di:
TBW=(500x1000) =500000 Longevità=500000/(20x365) =68,49 anni
Ok, questa è la teoria che ci mettono davanti basandosi su dati ipotetici… dati P/E nominali delle memorie, che nella realtà potrebbero durare meno, di più o addirittura molto di più (dipende dalla qualità dei chip Samsung). Ma se volessi prendere dati reali di utilizzo, se volessi realmente controllare come stò usando il mio SSD e quanto è affidabile il dato T.E.C. che mi viene fornito dal software?
Dai dati S.M.A.R.T. di Samsung Magician, seguendo la guida del software, si rileva un:
ID 177 o B1 Count Wear Leveling
Questoattributo rappresenta il numero medio di “Programmazione e Cancellazione” [P/Ecycles byte] dei blocchi. Questo valore è direttamente correlato alla durata dell’SSD, e, soprattutto è un dato reale (più o meno, perché è arrotondato perdifetto).
ID09 Power-On Hours
Il valore non elaborato del conteggio delle ore di funzionamento dell’SSD misurato sul controller. Sono escluse le modalità di ibernazione, stand-by, ecc.
ID12 o 0C Power-On Count
Il valore non elaborato delle volte che il controller è stato alimentato.
ID 241 o F1 Total LBA Written
Rappresentala dimensione totale di tutti i LBA (Logical Block Address), espresso in byte, registrate dal controller come richieste di scritture/cancellazioni dal sistema operativo verso l’SSD. Questo dato pur non essendo elaborato, approssima, però, per difetto la realtà dato che la richiesta del sistema operativo di una scrittura, provoca nella realtà cancellazioni e riscritture di celle anche non completamente "piene".
E’ per questoche è nato il comando TRIM nel sistema operativo, per supportare il controller dell’SSD nelle operazioni di P/E: mentre il file system continua a mantenereuna lista dei blocchi in uso (sotto forma di LBA), il controller dell’SSD non può accedere a quella lista, e ciò e la causa del fenomeno detto Write Amplification. Dal momento che il controller dell’SSD non conosce quali blocchi sono ancora in uso, se sono stati scritti in precedenza, ogni scrittura richiederà un grande numero di ciclo di lettura-eliminazione-modifica-scrittura, assumendo che non ci siano altri bocchi disponibili sull’SSD (cioè quando tutt ii blocchi sono almeno parzialmente pieni). Per via del fenomeno della WA, sulle memorie NAND Flash dell'SSD verranno scritti più dati di quanto effettivamente il sistema operativo ne richiede al drive. La WA dipende da caso a caso, ma in caso di uso leggero e drive, ad esempio, da 250Gb riempito a metà non dovrebbe essere superiore a 2. In altre parole, per ogni 1 Gb scritto, con una WA di 2 ne verranno movimentati 2Gb sulle memorie NAND.
Tornando al software, Magician, il dato Count Wear Leveling è sicuramente inversamente proporzionale al ciclo di vita dell’SSD, ovvero più si alza, più la vita del disco scende. Per verificare se è un consumo anomalo bisogna vedere le accensioni “Power-on Count”, e le ore di utilizzo “Power-on Hours”. Per il mio SSD, ogni 1000 scritture o cicli, il livello d’uso si esaurisce, quindi sale il valore… io sono a 4 di 1000.
Ma cosa vuol dire realmente?
Snocciolandoi dati S.M.A.R.T. dell’SSD… 500 Gb, 419 Gb utilizzati, che corrispondono a 449 897824 256 byte (1 Gb=1 073 741 824byte). Questi byte costituiscono in forma aggregata dei blocchi da 512 byte (la più piccola porzione di dati indirizzabile) ogni blocco possiamo paragonarlo a una cella:
449 897 824 256 bytecorrispondono a 878 706 688 blocchi da 512 byte
Utilizzando il dato più importante dato dallo S.M.A.R.T., ovvero il Total LBA Written, ricavo che ho eseguito operazioni di Programmazione e Cancellazione su 3 755 588 242 LBA scritti per un totale di: 3755588242 x 512 = 1 922 861 179 904 byte che corrisponde a 1,75 Tb
A riprova posso dire che avendo scritto 3 755 588 242 byte su un totale di 878 706 688 blocchi da 512byte:
3755588242/878706688= 4,3 che corrisponde al mio effettivo Wear Leveling Count (sono adesso al quinto ciclo di scritture delle mie celle).
Inoltre Magician nei citati “byte scritti” mi dice giustamente che ho eseguito 1,75 Tb di scritture….ci siamo con la corrispondenza dei dati, ma forse arrotonda il dato…
Perché? Perché il valore S.M.A.R.T. indicato con LBAsector size (la più piccola porzione di dati indirizzabile sul file system) NON coincide con i blocchi effettivamente sottoposti al ciclo di P/E (essendo un dato passato dal file system), diversamente dal dato ottenibile moltiplicando i cicli di scrittura fatti, per la memoria a disposizione del controller; questo fenomeno viene definito, come detto, Write Amplification.
Per quanto riguarda il mio Samsung 840 500 Gb:
Memoria NAND Flash installata: 500 Gb
Memoria NAND disponibile: 419 Gb
TWB: (1000*419) = 419000 Gb
Wear Leveling Count [RAW]: 4
Wear Leveling Count (effettiva): 4,3
Total NAND Writter: = (Wear Leveling Count [RAW] xMemoria NAND Flash installata (in Gb): 4 x 500 = 2000 Gb
TotalLBA Written: Wear Leveling Count x Memoria NAND disponibile = 4,3 x 419 =1801,7 Gb
Dunque per esteso il calcolo della Write Amplification sarebbe:
(Wear Leveling Count [RAW] x Memoria NAND Flash installata / Total LBA Written=
(4 x 500) / 1801,7 = 1,11
Una WA di circa 2 in teoria dovrebbe essere valore medio tipico per usi home. Meno il drive è capiente, meno spazio libero tende ad esserci, cosa che fa salire la Write Amplification. Il valore 1,11 che mi è venuto è quindi un ottimo valore dovuto al fatto che, quattro cicli sono ancora pochi, e che, pur avendo scritto 1.75 Tb di dati, questa è la seconda installazione e, dalla secure erase che ho effettuato, non ho ancora riempito tutte le celle. Minimizzando la WA, abbiamo un impatto positivo sulla resistenza, che allunga la vita dell’SSD, quindi è un valore da tenere sott’occhio mano a mano che si stima la longevità dell’hadware. Avere un WA inferiore a 2 è, inoltre, sinonimo di un buon funzionamento del controller.
Per arrivare al dato di Longevità in numero di anni devo innanzitutto prendere il valore di TBW, dato che come abbiamo visto dipende dalla quantità di memoria dell’SSD ovvero dal numero di blocchi scrivibili, e dal tipo di NAND utilizzate, espresse in cicli P/E:
TBW = (419 x 1000) = 419000Gb
Il primo valore è dato dalla memoria effettivamente a disposizione del controller, il secondo è sempre dato dalla consueta attesa di vita del tipo di celle in cicli.
Ora, il più importante dato che varia e su cui pesa la riduzione del ciclo di vita dell’SSD, è il calcolo della quantità di dati scritti giornalmente [Gb/giorno].
Stabilito che ho scritto in 4 mesi 1801,7 Gb = 1 934 560 644 301 byte, aggiungo un tasso d’uso WA (x 1,11), supponendo una media di 30 giorni al mese, per 4 mesi ottengo:
(1801,7 x 1,11) / 120 = 17 Gb/giorno (per eccesso)
In ultimo allora, se ho 419000 Gb alla rottura:
Longevità = 419000 [Gb] / 17 [Gb/giorno] = 24647 giorni = 67 anni!
Un dato molto, molto rassicurante.
Ma come muore un SSD?
Quando l’indicatore di vita residua scende a 1% (partendo dal 100%), l’SSD non smette subito di funzionare, ma inizia un nuovo periodo di funzionamento ad oltranza in cui vengono utilizzati i blocchi che abbiamo riservato impostando l’Over Provisioning, per sostituire quelli che nel tempo risulteranno difettosi o spenti. Una volta esaurita quest’area (e non è prevedibile perché queste celle hanno nel tempo fatto dei cicli), l’SSD entrerà in uno stato di funzionamento in sola lettura, che potrà funzionare senza errori se non necessiteranno più scritture. L’utilizzo dell’SSD ad oltranza dopo che ha raggiunto lo 0%, causa invece errori di sistema, dovute all’impossibilità di scrivere.
[Ho semplificato le unità di misura appositamente - segnalatemi eventuali inesattezze]
Ultima modifica: