Write amplification: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
aggiunta sezione calcolo del valore
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
 
(36 versioni intermedie di 23 utenti non mostrate)
Riga 1:
[[File:Write Amplification on SSD.svg|alt=Un SSD può sperimentare il fenomeno della write amplification come risultato sia della garbage collection sia degli algoritmi di livellamento dell'usura (wear leveling), aumentando in questo modo le scritture verso il drive e riducendone nel contempo in parte la vita utile.[1]|miniatura|Un SSD può sperimentare il fenomeno della write amplification come risultato sia della garbage collection sia degli algoritmi di livellamento dell'usura (wear leveling), aumentando in questo modo le scritture verso il drive e riducendone nel contempo in parte la vita utile.<ref name="IBM_WA" />]]
{{T|inglese|argomento = informatica|data = febbraio 2015}}
'''''Write amplification''''' ('''WA''', {{Lett|amplificazione della scrittura}}) è un fenomeno collaterale negativo legato alle modalità di scrittura delle [[memoria flash|memorie flash]] e dei [[solid-state drive|dischi allo stato solido]] (''solid state drives'', SSDs) tale per cui il quantitativo di scritture fisiche sul chip di memoria è un multiplo rispetto alla quantità di dati effettivi da memorizzare.
 
Poiché una memoria di tipo flash richiede di essere cancellata prima di poter essere riscritta e poiché il processo di cancellazione possiede una granularità molto maggiore (più grossolana) rispetto a quello di scrittura, il risultato è che per ogni operazione di riscrittura diventa necessario spostare (o riscrivere) più volte i dati preesistenti e i relativi [[metadati]]. Questo comporta che le operazioni di riscrittura richiedono la rilettura, lo spostamento (ossia la riscrittura in una posizione di memoria diversa) e la cancellazione di una porzione di memoria più ampia di quella effettivamente necessaria. A sua volta, il processo di spostamento potrebbe richiedere l'esecuzione dello stesso tipo di operazione su un'altra area della memoria, con un effetto moltiplicativo che porta a coinvolgere all'interno del chip una quantità di dati (e quindi una quantità di celle di memoria) superiore a quella richiesta dai nuovi da memorizzare.
[[File:Write Amplification on SSD.png|thumb|alt=Un SSD può sperimentare il fenomeno della write amplification come risultato sia della garbage collection sia degli algoritmi di livellamento dell'usura (wear leveling), aumentando in questo modo le scritture verso il drive e riducendone nel contempo in parte la vita utile.[1]|Un SSD può sperimentare il fenomeno della write amplification come risultato sia della garbage collection sia degli algoritmi di livellamento dell'usura (wear leveling), aumentando in questo modo le scritture verso il drive e riducendone nel contempo in parte la vita utile.<ref name="IBM_WA" />]]
 
'''''Write amplification''''' (WA) o '''amplificazione della scrittura''' è un fenomeno collaterale negativo legato alle modalità di scrittura delle [[memoria flash|memorie flash]] e dei [[solid-state drive|dischi allo stato solido]] (''solid state drives'', SSDs) tale per cui il quantitativo di scritture fisiche sul chip di memoria è un multiplo rispetto alla quantità di dati effettivi da memorizzare.
 
Poiché una memoria di tipo flash richiede di essere cancellata prima di poter essere riscritta e poiché il processo di cancellazione possiede una granularità molto inferiore rispetto a quello di scrittura, il risultato è che per ogni operazione di riscrittura diventa necessario spostare (o riscrivere) più volte i dati preesistenti e i relativi [[metadati]]. Questo comporta che le operazioni di riscrittura richiedono la rilettura, lo spostamento (ossia la riscrittura in una posizione di memoria diversa) e la cancellazione di una porzione di memoria più ampia di quella effettivamente necessaria. A sua volta, il processo di spostamento potrebbe richiedere l'esecuzione dello stesso tipo di operazione su un'altra area della memoria, con un effetto moltiplicativo che porta a coinvolgere all'interno del chip una quantità di dati (e quindi una quantità di celle di memoria) superiore a quella richiesta dai nuovi da memorizzare.
 
La conseguenza di questo moltiplicarsi delle operazioni di cancellazione e riscrittura ha un impatto sulla durata del componente stesso, che può tollerare un numero limitato, per quanto elevato, di scritture e riscritture, riducendone considerevolmente l'affidabilità. Questa proliferazione di scritture, inoltre, aumenta il quantitativo di [[banda (informatica)|banda]] utilizzata dalla memoria flash, comportando una evidente riduzione della velocità nell'accesso verso l'SSD.<ref name="IBM_WA">{{Cita web|url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.154.8668 |titolo=Write Amplification Analysis in Flash-Based Solid State Drives |autore=Hu, X.-Y. and E. Eleftheriou, R. Haas, I. Iliadis, R. Pletka |anno=2009 |editore=[[IBM]] | id ={{citeseerx|10.1.1.154.8668}} |accesso=2 giugno 2010}}</ref><ref name="K Smith">{{Cita web|url=http://www.sandforce.com/userfiles/file/downloads/FMS2009_F2A_Smith.pdf |titolo=Benchmarking SSDs: The Devil is in the Preconditioning Details |autore=Smith, Kent |data=17 agosto 2009 |editore=SandForce |accesso=28 agosto 2012}}</ref>
Riga 11 ⟶ 8:
I fattori che possono condizionare la proliferazione di scritture di un SSD sono di varia natura. Alcuni possono essere controllati durante l'utilizzo mentre altri sono intrinseci alla tecnologia di scrittura di questo tipo di dispositivi.
 
[[Intel]]<ref name="Lucchesi">{{Cita web |url=http://www.silvertonconsulting.com/newsletterd/SSDf_drives.pdf |titolo=SSD Flash drives enter the enterprise |autore=Lucchesi, Ray |data=Septembersettembre 2008 |editore=Silverton Consulting |accesso=18 giugno 2010 |urlarchivio=https://web.archive.org/web/20110531215833/http://www.silvertonconsulting.com/newsletterd/SSDf_drives.pdf |dataarchivio=31 maggio 2011 |urlmorto=sì }}</ref> e [[Western Digital|SiliconSystems]] (acquisita da [[Western Digital]] nel 2009)<ref name="Zsolt_Silicon_Systems">{{Cita web|url=http://www.storagesearch.com/siliconsystems.html |titolo=Western Digital Solid State Storage - formerly SiliconSystems |autore=Kerekes, Zsolt |editore=ACSL |accesso=19 giugno 2010}}</ref> usano il termine ''write amplification'' nella loro documentazione e nelle loro pubblicazioni già dal 2008. La ''write amplification'' è misurata tipicamente dal rapporto fra il numero di scritture realmente eseguite sulla flash e il numero di richieste di scritturascritture richieste dall'host. Senza algoritmi di compressione, la ''write amplification'' non può scendere sotto al valore di 1. Usando algoritmi di compressione, [[SandForce]] dichiara di raggiungere valori tipici di write amplification pari a 0.5,<ref name="Anand_WA">{{Cita web |url=httphttps://www.anandtech.com/show/2899 |titolo=OCZ's Vertex 2 Pro Preview: The Fastest MLC SSD We've Ever Tested |autore=Shimpi, Anand Lal |data=31 dicembre 2009 |editore=[[AnandTech]] |accesso=16 giugno 2011 |dataarchivio=23 giugno 2011 |urlarchivio=https://web.archive.org/web/20110623145121/http://www.anandtech.com/show/2899 |urlmorto=sì }}</ref> con picchi che possono scendere fino a 0.14 con il controller SF-2281.<ref>{{Cita web|url= httphttps://www.tomshardware.com/reviews/ssd-520-sandforce-review-benchmark,3124-11.html |titolo= Intel SSD 520 Review: SandForce's Technology: Very Low Write Amplification |sito=Tomshardware|data=6 febbraio 2012 |nome= Andrew |cognome=Ku|accesso=10 febbraio 2012 }}</ref>
 
== Funzionamento elementare di un SSD ==
{{Seevedi alsoanche|Memoria flash|Unità a stato solido|Flash file system}}
[[File:NAND Flash Pages and Blocks.svg|framethumb|Un esempio di memoria flash NAND che scrive dati in 4&nbsp;KiB pagine e cancella dati in 256&nbsp;KiB blocchi.<ref>{{Cita web|urlname=http://www.snia.org/sites/default/education/tutorials/2009/spring/solid/JonathanThatcher_NandFlash_SSS_PerformanceV10-nc.pdf"L |titolo=NANDSmith" Flash Solid State Storage Performance and Capability &ndash; an In-depth Look |autore=Thatcher, Jonathan |data=18 agosto 2009 |editore=SNIA |accesso=28 agosto 2012}}</ref>}}]]
A causa della particolare tipologia di operazioni eseguibili in [[memoria flash]], le informazioni non possono essere sovrascritte direttamente come nel caso di un [[disco rigido]]. Quando le informazioni sono scritte per prime in un'[[Unit%C3%A0_a_stato_solido|unità stato solido]], tutte le [[Memoria_flash#Il_transistor_floating_gate|celle]] sono inizializzate in modo tale che vi si possa scrivere direttamente in pagine (solitamente di grandezza compresa intorno a 4-8 [[kilobytes]] ciascuna). Il [[Unit%C3%A0_a_stato_solido#Controller|controller]] dell'unità, che si occupa di gestire la memoria flash e le [[Interfaccia_(informatica)|interfacce]] con l'host, utilizza una mappatura da logico-a-fisico conosciuta come ''LBA'' o [[logical block addressing]], che è parte dell'FTL, o ''[[flash translation layer]]'', ovvero il livello di traduzione di un [[flash file system|flash file system]].<ref>{{Cita web|url=http://domino.watson.ibm.com/library/cyberdig.nsf/papers/50A84DF88D540735852576F5004C2558/$File/rz3771.pdf |titolo=The Fundamental Limit of Flash Random Write Performance: Understanding, Analysis and Performance Modelling |autore1=Hu, X.-Y. |autore2=R. Haas |lastauthoramp=yes |editore=IBM Research, Zurich |data=31 marzo 2010 |accesso=19 giugno 2010}}</ref>
 
A causa della particolare tipologia di operazioni eseguibili in [[memoria flash]], le informazioni non possono essere sovrascritte direttamente come nel caso di un [[disco rigido]]. Quando le informazioni sono scritte per prime in un'[[Unità a stato solido|unità stato solido]], tutte le [[Memoria flash#Il transistor floating gate|celle]] sono inizializzate in modo tale che vi si possa scrivere direttamente in pagine (solitamente di grandezza compresa intorno a 4-8 [[kilobytes]] ciascuna). Il [[Unità a stato solido#Controller|controller]] dell'unità, che si occupa di gestire la memoria flash e le [[Interfaccia (informatica)|interfacce]] con l'host, utilizza una mappatura da logico-a-fisico conosciuta come ''LBA'' o [[logical block addressing]], che è parte dell'FTL, o ''[[flash translation layer]]'', ovvero il livello di traduzione di un [[flash file system]].<ref>{{Cita web |url=http://domino.watson.ibm.com/library/cyberdig.nsf/papers/50A84DF88D540735852576F5004C2558/$File/rz3771.pdf |titolo=The Fundamental Limit of Flash Random Write Performance: Understanding, Analysis and Performance Modelling |autore1=Hu, X.-Y. |autore2=R. Haas |editore=IBM Research, Zurich |data=31 marzo 2010 |accesso=19 giugno 2010 |dataarchivio=13 luglio 2011 |urlarchivio=https://web.archive.org/web/20110713001639/http://domino.watson.ibm.com/library/cyberdig.nsf/papers/50A84DF88D540735852576F5004C2558/$File/rz3771.pdf |urlmorto=sì }}</ref>
Quando le nuove informazioni arrivano a sostituire quelle vecchie, il controller dell'SSD scrive i nuovi dati in una nuova posizione e aggiorna la mappatura logica di conseguenza, riferendola alla nuova locazione fisica. Per questa ragione le informazioni nella vecchia posizione non sono più valide e hanno bisogno di essere cancellate prima che loro locazione fisica possa essere riutilizzata.<ref name="IBM_WA" /><ref name="IBM_Perf">{{cite web |url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.141.1709 |title=Design Tradeoffs for SSD Performance |author=Agrawal, N., V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, R. Panigrahy |date= June 2008 |work= |publisher=[[Microsoft]] | citeseerx = 10.1.1.141.1709|accessdate=2010-06-02}}</ref>
 
Quando le nuove informazioni arrivano a sostituire quelle vecchie, il controller dell'SSD scrive i nuovi dati in una nuova posizione e aggiorna la mappatura logica di conseguenza, riferendola alla nuova locazione fisica. Per questa ragione le informazioni nella vecchia posizione non sono più valide e hanno bisogno di essere cancellate prima che loro locazione fisica possa essere riutilizzata.<ref name="IBM_WA" /><ref name="IBM_Perf">{{Cita web|url=http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.141.1709 |titolo=Design Tradeoffs for SSD Performance |autore=Agrawal, N., V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, R. Panigrahy |data= giugno 2008 |editore=[[Microsoft]] |accesso=2 giugno 2010}}</ref>
La memoria flash può essere programmata e cancellata solo per un numero limitato di volte. Questo valore è solitamente indicato come numero massimo di cicli di [[Memoria_flash#Programmazione_e_cancellazione|programmazione e cancellazione]], o ''P/E''. Ad esempio una memoria flash SLC, o ''single-level cell'', progettata per alte prestazioni e grande longevità può tipicamente operare tra i 50,000 e i 100,000 cicli. Una memoria flash MLC, o ''multi-level cell'', è invece progettata per applicazioni di costo inferiore ed ha una quantità notevolmente ridotta di cicli massimi che si attestava, nel 2011, tra i 3,000 e i 5,000 cicli. Dal [[2013]], le memorie flash TLC, o ''triple-level cell'', sono state rese disponibili con un numero di cicli che è sceso fino a 1,000 P/E. Si noti che è auspicabile la più bassa write amplification possibile, poiché corrisponde ad un numero inferiore di cicli di programmazione e cancellazione sulla memoria flash, permettendo ad un SSD di durare più a lungo.<ref name="IBM_WA" />
 
La memoria flash può essere programmata e cancellata solo per un numero limitato di volte. Questo valore è solitamente indicato come numero massimo di cicli di [[Memoria flash#Programmazione e cancellazione|programmazione e cancellazione]], o ''P/E''. Ad esempio una memoria flash SLC, o ''single-level cell'', progettata per alte prestazioni e grande longevità può tipicamente operare tra i 50,000 e i 100,000 cicli. Una memoria flash MLC, o ''multi-level cell'', è invece progettata per applicazioni di costo inferiore ed ha una quantità notevolmente ridotta di cicli massimi che si attestava, nel 2011, tra i 3,000 e i 5,000 cicli. Dal [[2013]], le memorie flash TLC, o ''triple-level cell'', sono state rese disponibili con un numero di cicli che è sceso fino a 1,000 P/E. Si noti che è auspicabile la più bassa write amplification possibile, poiché corrisponde ad un numero inferiore di cicli di programmazione e cancellazione sulla memoria flash, permettendo ad un SSD di durare più a lungo.<ref name="IBM_WA" />
 
== Calcolo del valore ==
La write amplification è stata presente negli SSD anche prima che il termine fosse coniato, ma è stato nel 2008 che sia [[Intel]] che la SiliconSystems iniziarono ad usare il termine nelle loro pubblicazioni.<ref name="Zsolt_Silicon_Systems" />
Una semplice formula per calcolare il valore della write amplification di un SSD è:<ref name="IBM_WA" /><ref name="OCZ_WA">{{citeCita web |url=http://www.oczenterprise.com/whitepapers/ssds-write-amplification-trim-and-gc.pdf |titletitolo=SSDs - Write Amplification, TRIM and GC |publishereditore=OCZ Technology |accessdateaccesso=13 novembre 2012 |urlarchivio=https://web.archive.org/web/20120526033947/http://www.oczenterprise.com/whitepapers/ssds-11write-13amplification-trim-and-gc.pdf |dataarchivio=26 maggio 2012 |urlmorto=sì }}</ref><!-- All SSDs include some level of garbage collection, but they may differ in when and how fast they perform the process.<ref name="OCZ_WA" /> Garbage collection is a big part of write amplification on the SSD.<ref name="IBM_WA" /><ref name="OCZ_WA" /><ref>{{citeCita web |url=http://www.intel.com/cd/channel/reseller/asmo-na/eng/products/nand/feature/index.htm |titletitolo=Intel Solid State Drives |datedata= |work= |publishereditore=Intel |accessdateaccesso=2010-05-31 maggio 2010}}</ref>-->
 
: <math>\frac{\text{informazioni scritte in memoria flash}}{\text{informazioni scritte dal sistema}} = \text{write amplification}</math>
 
== Fattori condizionanti il valore ==
Molti fattori condizionano la write amplification di un SSD. La tabella di seguito lista i valori primari e in che modo questi condizionino il fenomeno. Per quelli che sono variabili, la tabella annota se vi sia una [[Proporzionalità (matematica)|proporzionalità]] ''diretta'' piuttosto che ''inversa''. Ad esempio, se il quantitativo di over-provisioning dovesse aumentare, allora la write amplification subirebbe una diminuzione (proporzionalità inversa). Se il valore è invece una funzione binaria (''attiva'' o ''disattiva'') allora sarà specificato anche se la relazione dovesse essere ''positiva'' piuttosto che ''negativa''.
 
{| class="wikitable sortable"
|+ Write amplification factors
|-
! Valore
! Descrizione
! Tipologia
! Relazione
|-
| [[Write amplification#Garbage collection|Garbage collection]]
| L'efficienza dell'algoritmo utilizzato per scegliere il miglior blocco successivo da cancellare e riscrivere
| style="background: lightblue;" | Variabile
| style="background: lightgreen;" | Inversa
|-
| [[Write amplification#Over-provisioning|Over-provisioning]]
| La percentuale della capacità fisica riservata al controller dell'SSD
| style="background: Lightblue;" | Variabile
| style="background: Lightgreen;" | Inversa
|-
| Comando [[TRIM]] per SATA o UNMAP per SCSI
| Questi comandi devono essere inviati dal sistema operativo che comunica al dispositivo di allocazione quali settori contengano dati non validi. Gli SSDs possono richiedere attraverso tali comandi le pagine che contengono questi settori come spazio libero quando i blocchi che contengono queste stesse pagine siano state cancellate, invece di copiare i dati non validi per pulire le pagine.
| style="background: Wheat;" | Binario
| style="background: Lightgreen;" | Positivo
|-
| [[Write amplification#Spazio utente libero|Spazio utente libero]]
| La percentuale della capacità attualmente libera da dati dell'utente; richiede TRIM, altrimenti il guadagno dell'SDD non avrebbe benefici da alcuna zona libera.
| style="background: Lightblue;" | Variabile
| style="background: Lightgreen;" | Inversa
|-
| [[Write amplification#Cancellazione sicura|Cancellazione sicura]]
| Cancella tutti i dati dell'utente e i relativi metadati che re-inizializzano l'SSD alle sue prestazioni di fabbrica (fino a quando la garbage collection riprende).
| style="background: Wheat;" | Binario
| style="background: Lightgreen;" | Positivo
|-
| [[Write amplification#Wear leveling|Wear leveling]]
| L'efficienza dell'algoritmo che assicura che su ogni blocco sia scritto un uguale numero di volte
| style="background: Lightblue;" | Variabile
| style="background: LightCoral;" | Diretta
|-
| [[Write amplification#Separazione tra dati statici e dinamici|Separazione tra dati statici e dinamici]]
| Raggruppamento dei dati basato su quanto spesso tenda a variare
| style="background: Wheat;" | Binario
| style="background: Lightgreen;" | Positivo
|-
| [[Write amplification#Scritture sequenziali|Scritture sequenziali]]
| In teoria le scritture sequenziali dovrebbero avere una write amplification di 1, ma altri fattori potrebbero ancora condizionare il valore.
| style="background: Wheat;" | Binario
| style="background: Lightgreen;" | Positivo
|-
| [[Write amplification#Scritture casuali|Scritture casuali]]
| Scrivere negli LBA non sequenziali avrà l'impatto maggiore sulla write amplification
| style="background: Wheat;" | Binario
| style="background: LightCoral;" | Negativo
|-
| [[Compressione dei dati]] che include la deduplicazione dei dati
| La write amplification si abbassa e la velocità dell'SSD aumenta quando la compressione dei dati e la deduplicazione eliminano dati ridondanti
| style="background: Lightblue;" | Variabile
| style="background: Lightgreen;" | Inversa
|-
| Utilizzo dell'MLC NAND in modalità SLC
| Scrive dati ad un rateo di un bit per cella invece del previsto numero di bit per cella (normalmente due bit per cella) per velocizzare le operazioni di lettura e scrittura. Quando ci si avvicina ai limiti di capienza del NAND in modalità SLC (''single-level cell''), l'SSD dovrà riscrivere le informazioni più vecchie (scritte in modalità SLC) in modalità MLC (''multi-level cell'') o TLC (''triple-level cell'') per consentire che lo spazio in modalità SLC NAND sia liberato al fine di accogliere in numero maggiore di informazioni. In ogni caso questo approccio può ridurre l'usura mantenendo le pagine che cambiano frequentemente in modalità SLC, per evitare di programmare questi cambiamenti in modalità MLC o TLC, poiché scrivere in MLC o TLC provocano un'usura maggiore che farlo in SLC. Quindi, questo approccio aumenta la write amplification ma potrebbe ridurre il deperimento quando le operazioni di scrittura hanno come obiettivo pagine sovrascritte frequentemente. <!-- da tradurre However, sequential- and random-write patterns will aggravate the damage because there are no or few frequently-written pages that could be contained in the SLC area, forcing old data to need to be constantly be rewritten to MLC or TLC from the SLC area.-->
| style="background: Wheat;" | Binario
| style="background: LightCoral;" | Negativo
|}
 
{| class="wikitable"
|+ Definizione della relazione
|-
! Tipo
! Relazione modificata
! Descrizione
|-
| style="background: Lightblue;" rowspan="2" | Variabile
| style="background: LightCoral;" |Diretta
| style="background: LightCoral;" |All'aumentare del valore aumenta la WA
|-
| style="background: Lightgreen;" |Inversa
| style="background: Lightgreen;" |All'aumentare del valore, la WA diminuisce
|-
| style="background: wheat;" rowspan="2" | Binaria
| style="background: Lightgreen;" |Positiva
| style="background: Lightgreen;" |Quando il fattore è presente la WA diminuisce
|-
| style="background: LightCoral;" |Negativa
| style="background: LightCoral;" |Quando il fattore è presente la WA aumenta
|}
 
{{clear}}
== Garbage collection ==
{{vedi anche|Garbage collection}}
[[File:Garbage Collection.png|thumb|upright=1.5|Le pagine sono scritte nei blocchi fino a quando non vengono riempiti. Poi le pagine con le informazioni attuali sono spostate in nuovi blocchi e quelli precedenti vengono cancellati<ref name="IBM_WA" />]]
 
I dati sono scritti sulla memoria flash in unità chiamate pagine (costituite da più celle). La memoria può essere cancellata solo in unità più grandi chiamate blocchi (costituiti da più pagine).<ref name="L Smith">{{Cita web |url=http://www.snia.org/sites/default/education/tutorials/2009/spring/solid/JonathanThatcher_NandFlash_SSS_PerformanceV10-nc.pdf |titolo=NAND Flash Solid State Storage Performance and Capability – an In-depth Look |autore=Thatcher, Jonathan |data=18 agosto 2009 |editore=SNIA |accesso=28 agosto 2012 |dataarchivio=7 settembre 2012 |urlarchivio=https://web.archive.org/web/20120907062956/http://www.snia.org/sites/default/education/tutorials/2009/spring/solid/JonathanThatcher_NandFlash_SSS_PerformanceV10-nc.pdf |urlmorto=sì }}</ref> Se le informazioni in qualcuna delle pagine del blocco non sono più necessarie (sono anche chiamate pagine di stallo), solo le pagine con informazioni valide in quel blocco sono lette e riscritte in un altro blocco libero precedentemente pulito.<ref name="K Smith" /> Successivamente le pagine lasciate libere dal non aver mosso le informazioni di stallo sono libere per i nuovi dati. Questo processo è chiamato [[garbage collection]] (GC).<ref name="IBM_WA" /><ref name="OCZ_WA"/> Tutti gli SSD includono un qualche livello di garbage collection, che può variare nella quantità e nella velocità di esecuzione del processo.<ref name="OCZ_WA" />. Il garbage collection è un fattore determinante per la write amplification su di un SSD.<ref name="IBM_WA" /><ref name="OCZ_WA" />
 
Le operazioni di lettura non richiedono una cancellazione della memoria flash, pertanto non sono generalmente associate alla write amplification. Nella limitata ipotesi in un errore di disturbo dell'operazione di lettura, le informazioni in quel blocco sono lette e riscritte, ma questo non avrebbe comunque nessun impatto materiale sulla write amplification del dispositivo.<ref>{{Cita web |url=http://download.micron.com/pdf/technotes/nand/tn2917.pdf |titolo=TN-29-17: NAND Flash Design and Use Considerations |anno=2006 |editore=Micron |accesso=2 giugno 2010 |urlarchivio=https://web.archive.org/web/20110719170510/http://download.micron.com/pdf/technotes/nand/tn2917.pdf |dataarchivio=19 luglio 2011 |urlmorto=sì }}</ref>
 
== Over-provisioning ==
[[File:Over-provisioning on an SSD.png|thumb|upright=1.5|Le tre tipologia (livelli) di over-provisioning che si possono incontrare negli SSD<ref name="Mehling_Garbage">{{Cita web|url=http://www.enterprisestorageforum.com/technology/features/article.php/3850436/Solid-State-Drives-Take-Out-the-Garbage.htm |titolo=Solid State Drives Take Out the Garbage |cognome=Mehling |nome=Herman |editore=Enterprise Storage Forum|data=1º dicembre 2009 |accesso=18 giugno 2010}}</ref><ref name="Jim_Bagley" />]]
 
Il fenomeno dell'over-provisioning (talvolta chiamato ''OP'', ''over provisioning'' o ''overprovisioning'') è la differenza, in una [[memoria flash]], tra capacità fisica e capacità logica (resa disponibile all'utente attraverso il sistema operativo). Durante la garbage collection, il wear leveling e le operazioni di mappatura dei badblock su un SSD, lo spazio in esubero fornito dall'over-provisioning aiuta a ridurre la write amplification quando il controller scrive in memoria.<ref name="Lucchesi" /><ref name="Jim_Bagley">{{Cita web|url= http://www.plianttechnology.com/pdf/SSG-NOW_SSD_Flash_Bulletin_July_2009.pdf#page=2|urlarchivio= https://web.archive.org/web/20090902214044/http://www.plianttechnology.com/pdf/SSG-NOW_SSD_Flash_Bulletin_July_2009.pdf#page=2|titolo= Managing data migration, Tier 1 to SSD Tier 0: Over-provisioning: a winning strategy or a retreat?|data= 1º luglio 2009 |accesso= 21 giugno 2016 |dataarchivio= 2 settembre 2009|autore= Bagley, Jim |sito= plianttechnology.com|formato= PDF |p= 2}}</ref><ref name="Drossel">{{Cita web |url=http://www.snia.org/events/storage-developer2009/presentations/wednesday/GaryDrossel_Methodologies_SSD_Usable_Life.pdf |titolo=Methodologies for Calculating SSD Useable Life |autore=Drossel, Gary |editore=Storage Developer Conference, 2009 |data=14 settembre 2009 |accesso=20 giugno 2010 |urlmorto=sì }}</ref><ref name="Smith_2012">{{Cita web|url=http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2012/20120822_TE21_Smith.pdf |titolo=Understanding SSD Over-provisioning |cognome=Smith |nome=Kent |data=1º agosto 2011 |p=14 |sito=FlashMemorySummit.com |accesso=3 dicembre 2012}}</ref>
 
La prima fonte di over-provisioning è data dalla computazione della capacità e dall'uso di [[gigabyte]] (GB) piuttosto che di [[gibibyte]] (GiB). Sia i produttori di HDD che di SSD utilizzano il termine GB per rappresentare un ''gigabyte decimale'' 1,000,000,000 (=&nbsp;10<sup>9</sup>) di byte. Come la maggior parte degli altri dispositivi di allocazione elettronici, la memoria flash è assemblata in potenze di due, perciò calcolare la capacità fisica di un SSD dovrebbe basarsi su 1,073,741,824 (=&nbsp;2<sup>30</sup>) per ''GB binario'' o GiB. La differenza tra questi due valori è del 7.37% (=&nbsp;(2<sup>30</sup>&nbsp;− 10<sup>9</sup>)&nbsp;/ 10<sup>9</sup>&nbsp;× 100%). Perciò, un SSD di 128&nbsp;GB con 0% di over-provisioning fornisce 128,000,000,000 di byte all'utente (su un totale di 137,438,953,472). Questo 7.37% iniziale è tipicamente non calcolato nel numero totale di over-provisioning, e il vero quantitativo disponibile è solitamente inferiore, poiché una parte dello spazio è necessario al controller per tenere traccia di informazioni non relative al sistema operativo (come le flag di status di un blocco).<ref name="Jim_Bagley" /><ref name="Smith_2012" /> La cifra di 7.37% può in realtà estendersi fino a 9.95% nel caso di terabyte (TB), e poiché i produttori sfruttano questa divergenza tra le [[unità di misura|unità]] per i dispositivi da 1 o 2&nbsp;TB con le rispettive capacità di 1000 o e di 2000&nbsp;GB (931 e 1862&nbsp;GiB), rispettivamente, invece di 1024 e 2048&nbsp;GB (posto che 1&nbsp;TB = {{formatnum:1000000000000}} di byte in termini decimali, ma {{formatnum:1099511627776}} in termini binari).
 
Una semplice formula per calcolare il quantitativo di over-provision di un SSD è:<ref name="Smith_2012" />
 
<math>\frac{\text{dimensioni fisiche}-\text{dimensioni visibili}}{\text{dimensioni visibili}} = \text{over-provision}</math>
 
{{clear}}
== Note ==
<references />
Riga 33 ⟶ 141:
== Voci correlate ==
* [[Memoria flash]]
* [[Flash file system]]
 
== Altri progetti ==
{{interprogetto|preposizione=sulla}}
 
{{Portale|elettrotecnica|informatica|scienza e tecnica}}
 
[[Categoria:Memorie flash]]