Che cos’è l’amplificazione di scrittura? Il costo nascosto della scrittura sugli SSD

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à.

oscoo 2b banner 1400x475 1 Che cos’è l’amplificazione di scrittura? Il costo nascosto della scrittura sugli SSD

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

Il meccanismo di livellamento dell'usura crea inoltre un sovraccarico di scrittura aggiuntivo. Ogni blocco flash ha un numero massimo fisso di cicli di cancellazione, noti come cicli P/E. Se un piccolo gruppo di blocchi viene cancellato e riscritto costantemente, questi esauriranno prematuramente la loro durata di vita e causeranno il malfunzionamento dell'intero SSD. Per bilanciare la velocità di usura tra tutti i blocchi flash, il controller esegue il livellamento dell’usura in background. Per i dati inattivi (file che non vengono modificati da molto tempo), il controller li sposta dai blocchi con pochi cicli di cancellazione a quelli con molti cicli di cancellazione. In questo modo riserva i blocchi con una lunga durata residua ai dati attivi, che vengono riscritti frequentemente. Questo spostamento dei dati, effettuato per bilanciare l’usura, aumenta il numero totale di scritture fisiche e fa salire il valore WAF.

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

Il modo in cui i dati vengono scritti determina direttamente il livello di base dell’amplificazione di scrittura (WAF). La scrittura sequenziale si verifica solitamente durante la copia di video di grandi dimensioni o di file di immagine disco. I dati riempiono i blocchi flash in modo continuo e, quando vengono eliminati, interi blocchi diventano non validi contemporaneamente. La garbage collection non ha quasi bisogno di copiare dati validi, quindi il WAF rimane molto vicino a 1. Mentre rLa scrittura casuale riguarda molti file di piccole dimensioni sparsi, log di sistema e file di cache. I dati sono distribuiti su diversi blocchi flash e in ciascun blocco solo poche pagine diventano non valide. La garbage collection deve copiare grandi quantità di contenuto valido, il che aumenta notevolmente il WAF. Tra gli scenari comuni di scrittura casuale figurano la cache dei software per l'ufficio, i file temporanei dei browser e gli aggiornamenti frequenti delle app.

Stato del comando TRIM

TRIM è un comando speciale del protocollo di trasmissione progettato appositamente per gli SSD. La sua funzione principale è quella di condividere lo stato dei dati tra il sistema operativo e l'unità a stato solido. Normalmente, l'eliminazione di un file si limita a contrassegnare l'indice del file come non valido nel sistema. Non comunica all'SSD che i dati correlati non sono più necessari. Il controller non è in grado di distinguere le pagine valide da quelle non valide e copia tutte le pagine durante la garbage collection, generando scritture aggiuntive non necessarie. Quando la funzione TRIM è attivata, il sistema comunica all’SSD quali indirizzi logici contengono dati inutili subito dopo la cancellazione dei file. Il controller contrassegna in anticipo queste pagine come eliminabili. La garbage collection evita di copiare dati non validi, riduce significativamente il volume di scrittura superfluo e riduce efficacemente il WAF.

Tipi di memoria flash NAND

Le diverse architetture dei chip flash presentano livelli di amplificazione di scrittura di base diversi. Da SLC, MLC, TLC fino a QLC, la densità di archiviazione continua ad aumentare. Allo stesso tempo, le dimensioni delle pagine e dei blocchi flash diventano sempre più grandi, il che aumenta il sovraccarico legato alla copia dei dati durante la garbage collection e fa salire gradualmente il valore di base del WAF. I chip QLC e TLC ad alta densità hanno una durata nativa dei cicli P/E più breve, pertanto la riduzione della durata causata dall’amplificazione di scrittura diventa più evidente. Rispetto alla vecchia tecnologia 2D NAND, la 3D NAND presenta blocchi di dimensioni maggiori, ma un firmware ottimizzato garantisce un migliore controllo del WAF. Inoltre, i suoi cicli P/E più lunghi compensano in parte l’impatto negativo derivante dalla sua struttura fisica.

Strategia della cache SLC

Quasi tutti gli SSD TLC e QLC destinati al mercato consumer utilizzano un meccanismo di cache SLC. Una parte dei chip flash viene configurata per funzionare in modalità SLC veloce, al fine di gestire le richieste di scrittura in arrivo. I dati vengono inizialmente scritti rapidamente nell’area di cache SLC. Quando l’SSD è inattivo, il controller sposta i dati memorizzati nella cache nelle aree di archiviazione native TLC o QLC. Questo processo, che consiste nel scrivere due volte gli stessi dati nella memoria flash, fa aumentare il WAF. 

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?

In realtà, la maggior parte degli utenti che utilizzano il sistema quotidianamente non ha bisogno di prestare particolare attenzione al valore WAF né di misurarlo frequentemente. Per un utilizzo leggero, che comprenda attività d’ufficio, navigazione web, streaming video e giochi standard, il volume giornaliero di scrittura dei dati sull’SSD rimane basso. Anche se il valore WAF dovesse variare, l’unità è in grado di funzionare senza problemi per 5-10 anni entro la durata nominale di cancellazione. È praticamente impossibile usurare la memoria flash con un utilizzo regolare. Inoltre, i controller SSD di nuova generazione e il firmware collaudato riducono efficacemente l’amplificazione di scrittura, quindi gli utenti non avvertono praticamente alcun impatto negativo durante l’uso quotidiano.

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.

L'amplificazione in scrittura è una caratteristica intrinseca e inevitabile dell'architettura di archiviazione degli SSD. La sua origine risiede nelle regole specifiche di lettura-cancellazione-scrittura della memoria flash NAND, e rappresenta un sovraccarico interno necessario affinché le unità possano riscrivere i dati, bilanciare l'usura e liberare spazio di archiviazione. Gli utenti comuni non devono considerare l'amplificazione di scrittura come una minaccia nascosta alle prestazioni del disco. È sufficiente adottare alcune buone abitudini, come mantenere spazio libero sul disco e assicurarsi che il comando TRIM funzioni correttamente, per ridurre notevolmente gli effetti negativi dell'amplificazione di scrittura e godere al contempo delle elevate velocità di lettura e scrittura offerte dagli SSD.
Scorri in alto

Contattaci

Compilate il modulo sottostante e vi contatteremo al più presto.

Modulo di contatto Prodotto