Nell'era di dischi rigidi meccanici, i nuovi dati possono essere sovrascritti direttamente nella posizione di archiviazione originale. La quantità di dati che il computer richiede di scrivere corrisponde esattamente alla quantità che il disco rigido registra fisicamente. Unità a stato solido (SSD) funzionano in modo completamente diverso, il che dà origine a un fenomeno unico chiamato “amplificazione di scrittura”. L’amplificazione di scrittura è un fenomeno esclusivo delle unità SSD. In parole povere, quando il computer invia una richiesta di scrittura a un’unità SSD, la quantità totale di dati fisici scritti sui chip flash NAND è maggiore rispetto ai dati logici richiesti dal sistema operativo a causa dei limiti fisici di Flash NAND.
Immagina di voler modificare il testo su una pagina del quaderno. Ma non vi è permesso cancellare direttamente le vecchie parole. Dovete scrivere il nuovo contenuto su pagine bianche e contrassegnare le vecchie pagine come inutili. Man mano che le pagine bianche si esauriscono, dovete riorganizzare l’intero quaderno: copiare tutto il testo ancora utile su pagine bianche di un quaderno nuovo di zecca, quindi cancellare l’intero vecchio quaderno in modo che possa essere riutilizzato in seguito. Il numero totale di pagine che finisci per scrivere è di gran lunga superiore al breve testo che inizialmente volevi modificare. Questo lavoro di scrittura in più è una semplice metafora della “write amplification”.
Indicatore chiave di misurazione
Il parametro chiave che misura l'entità dell'amplificazione di scrittura è denominato Fattore di amplificazione in scrittura, abbreviato in WAF. Segue una formula fissa e chiara:
WAF = Dati fisici totali scritti nella memoria Flash / Dati logici totali richiesti dall'host
In uno scenario ideale, la memoria flash scrive esattamente la stessa quantità di dati richiesta dall’host, il che determina un valore WAF pari a 1. Tuttavia, le caratteristiche fisiche della memoria flash NAND rendono questo stato ideale quasi impossibile nell’uso pratico. In condizioni operative normali, il WAF è sempre superiore a 1. Un WAF più elevato comporta un maggiore sovraccarico interno di scrittura all’interno dell’SSD, il che accelera l’usura della memoria flash e compromette le prestazioni.
Cause alla radice dell'amplificazione in scrittura
L'amplificazione della scrittura non è un difetto di progettazione degli SSD. Si tratta di un fenomeno inevitabile dovuto ai limiti fisici della memoria flash NAND, combinati con i numerosi processi di manutenzione automatica in esecuzione all'interno dell'unità.
Limiti fisici della memoria flash NAND
Questo è il presupposto fondamentale affinché si verifichi l’amplificazione di scrittura. A differenza dei dischi rigidi meccanici che supportano la sovrascrittura in loco, la memoria flash NAND ha regole rigide di lettura e scrittura: non è possibile sostituire direttamente i vecchi dati nella loro posizione originale di archiviazione. È necessario cancellare completamente un blocco prima di scriverci nuovi dati. A peggiorare la situazione è la discrepanza tra l’unità di scrittura più piccola e l’unità di cancellazione più piccola. L’unità più piccola per la scrittura dei dati è una pagina, simile a un singolo foglio di carta. L’unità più piccola per la cancellazione dei dati è un blocco, che contiene centinaia di pagine, come un intero capitolo. Non è possibile cancellare una sola pagina; è necessario cancellare l’intero blocco in una sola volta.
A causa di questa limitazione, gli SSD utilizzano un modello di aggiornamento "out-of-place". Quando si modifica un file esistente, il controller dell'SSD non modifica la pagina che contiene i dati precedenti. Scrive invece i nuovi dati su pagine libere e contrassegna le pagine precedenti come non valide, in vista di una successiva pulizia. Questa impossibilità di riscrivere i dati nella loro posizione originale è all'origine di tutto il sovraccarico di scrittura aggiuntivo.
Riscrizioni dei dati dovute alla garbage collection
Raccolta dei rifiuti è la principale causa dell'amplificazione delle operazioni di scrittura. Man mano che i dati vengono salvati, il numero di blocchi liberi all'interno dell'SSD diminuisce. Il controllore esegue automaticamente la garbage collection per liberare spazio di archiviazione utilizzabile. Il suo flusso di lavoro completo funziona come segue: il controller seleziona un blocco vecchio con un’alta percentuale di pagine non valide, legge tutti i dati ancora validi all’interno del blocco, copia i dati validi in blocchi liberi completamente nuovi, quindi cancella completamente il blocco vecchio per trasformarlo nuovamente in spazio utilizzabile. Durante questo processo di copia dei dati, né l’utente né il sistema operativo inviano nuovi comandi di scrittura. Tuttavia, l’SSD deve riscrivere automaticamente i dati validi al solo scopo di liberare spazio di archiviazione. Queste operazioni di scrittura interne costituiscono la parte principale dell’amplificazione di scrittura.
Migrazione dei dati dal livellamento dell'usura
Overhead dei metadati per la gestione interna
Oltre ai due processi principali sopra descritti, la gestione interna dell’SSD genera piccole ma continue operazioni di scrittura aggiuntive. La tabella di mappatura FTL, che traduce gli indirizzi logici in posizioni fisiche della memoria flash, i registri dei blocchi danneggiati, che riportano le aree di archiviazione compromesse, e le tabelle di conteggio dell’usura, che tengono traccia dei cicli di cancellazione per ciascun blocco, vengono aggiornate costantemente durante la lettura e la scrittura dei file. Ogni aggiornamento consuma risorse di scrittura della memoria flash. Anche attività aggiuntive, come la scrittura dei codici di correzione degli errori ECC insieme ai dati utente e lo spostamento dei dati per sostituire i blocchi danneggiati, contribuiscono al totale delle operazioni di scrittura fisica, agendo come fattori secondari nell’amplificazione della scrittura.
Fattori chiave che influenzano il WAF
Il valore del WAF non è fisso. Varia notevolmente in base alle specifiche hardware dell'SSD, alle abitudini dell'utente e alle impostazioni di sistema. Ci sono cinque fattori principali che determinano quanto sarà alto o basso il WAF.
Over-provisioning e spazio di archiviazione libero
Per “over-provisioning” (OP) si intende lo spazio flash aggiuntivo riservato dai produttori di SSD a cui gli utenti non possono accedere né utilizzare. Questo spazio è riservato esclusivamente ad attività interne quali la garbage collection, il livellamento dell’usura e la sostituzione dei blocchi danneggiati. Un rapporto di over-provisioning più elevato offre alla garbage collection un maggior numero di blocchi liberi tra cui scegliere, riduce la quantità di dati validi da copiare per ogni blocco riciclato e abbassa il WAF.
Oltre all’over-provisioning predefinito in fabbrica, lo spazio libero nelle partizioni utente offre lo stesso effetto di ottimizzazione. Quando il comando TRIM è abilitato, una maggiore quantità di spazio libero all’interno dell’SSD rende più efficiente l’esecuzione della garbage collection. Se l’SSD è quasi pieno, i blocchi liberi scarseggiano. Il controller deve copiare i dati con frequenza molto maggiore e il WAF registra un picco netto.
Modelli di carico di lavoro di scrittura
Stato del comando TRIM
Tipi di memoria flash NAND
Strategia della cache SLC
Impatti dell'amplificazione di scrittura sugli SSD
L'amplificazione in scrittura genera un sovraccarico nascosto all'interno degli SSD, che non risulta direttamente visibile nelle statistiche relative alla velocità di lettura/scrittura del sistema. Tuttavia, a lungo termine influisce negativamente sull'esperienza d'uso dell'unità in tre ambiti chiave: durata, prestazioni operative, consumo energetico e surriscaldamento.
Riduzione della durata di vita del flash. Questo è l'effetto negativo più grave dell'amplificazione di scrittura. Ogni blocco di memoria flash ha un limite massimo fisso di cicli di cancellazione, denominato "cicli P/E", che costituisce lo standard fondamentale per valutare Durata di vita dell'SSD. L'amplificazione della scrittura aumenta inutilmente la frequenza di cancellazione della memoria flash e accelera il consumo della durata di vita.
Prestazioni di scrittura ridotte in condizioni reali. Le massicce copie dei dati in background causate dall’amplificazione di scrittura occupano la larghezza di banda di lettura/scrittura dei canali flash e sottraggono risorse hardware alle normali operazioni di scrittura degli utenti. Un WAF più elevato implica che l’unità debba eseguire un numero maggiore di operazioni interne di lettura e scrittura per elaborare la stessa richiesta di scrittura proveniente dall’host. Ciò aumenta la latenza di scrittura e riduce sensibilmente le velocità di scrittura sostenute.
Maggiore assorbimento di potenza e rischi legati al surriscaldamento. Ogni operazione di lettura, scrittura e cancellazione sulla memoria flash consuma energia elettrica e genera calore. Un valore WAF più elevato comporta un maggior numero di operazioni di copia interne superflue all’interno dell’SSD, il che aumenta il consumo energetico complessivo. E nel caso di laptop, tablet e altri dispositivi portatili, un consumo energetico più elevato riduce l’autonomia della batteria.
I consumatori comuni devono prestare attenzione al WAF?
Solo gli utenti che effettuano un numero elevato di operazioni di scrittura potrebbero dover prestare particolare attenzione a questo fattore. Questo gruppo comprende chi si occupa di editing video 4K/8K per lunghe ore, trasferimenti quotidiani di grandi quantità di file, operazioni di download 24 ore su 24 e archiviazione di database locali. Il loro elevato volume giornaliero di dati scritti fa sì che l’amplificazione di scrittura acceleri in modo evidente l’invecchiamento delle memorie flash.





