Tra il 2010 e il 2015, IDC prevede che le spedizioni di unità a stato solido aumenteranno di un tasso di crescita annuo composto del 52% su base globale. La corrispondente impennata nell'adozione di server e storage aziendali significa che una comprensione più approfondita dei componenti critici come la gestione dei media e l'uso di nuove unità rispetto a quelle usate può aiutare gli amministratori a gestire meglio le risorse di storage.
Tra il 2010 e il 2015, IDC prevede che le spedizioni di unità a stato solido aumenteranno di un tasso di crescita annuo composto del 52% su base globale. La corrispondente impennata nell'adozione di server e storage aziendali significa che una comprensione più approfondita dei componenti critici come la gestione dei media e l'uso di nuove unità rispetto a quelle usate può aiutare gli amministratori a gestire meglio le risorse di storage.
Gli SSD possono sembrare molto simili ai tradizionali dischi rigidi rotanti, ma la somiglianza è solo superficiale. Un esame del funzionamento interno di un SSD rivela che gli SSD in realtà hanno ben poco in comune con le unità legacy. Un esempio chiave è la differenza nel modo in cui ciascun tipo di unità sovrascrive i dati esistenti: le unità rotanti sovrascrivono in un unico passaggio, mentre gli SSD basati su NAND Flash richiedono passaggi aggiuntivi. Questo brief esamina il "processo di scrittura in più fasi" per gli SSD.
Background: le basi della progettazione SSD
La prima cosa da capire su come gli SSD sovrascrivono i dati è come sono costruiti gli SSD. Qualsiasi SSD ha i seguenti componenti di base:
- Interfaccia host
- Circuito stampato
- Controllore NAND
- NAND
Scrivere differenze di processo
La data viene scritta in modo diverso sulla NAND rispetto a come viene scritta su un disco rigido rotante: la NAND che contiene dati (sia validi che non validi) deve prima essere cancellata; solo allora sarà possibile scrivere nuovi dati. In poche parole, il processo di cancellazione cancella prima un intero blocco; solo allora le pagine di quel blocco potranno avere nuovi dati scritti su di esse.
Poiché la NAND che contiene già dati deve essere cancellata prima che sia possibile scrivervi nuovi dati, la sequenza di scrittura per un dispositivo pieno (non ha pagine vuote/cancellate) è molto diversa da quella di un dispositivo vuoto (o ha abbastanza pagine vuote/cancellate per assorbire il traffico di scrittura in entrata).
Pagine vuote/cancellate disponibili
Supponiamo di essere in grado di assicurarci di avere pagine vuote/cancellate pronte in ogni momento. Quando la scrittura arriva nell'SSD, il flusso del processo sembrerebbe simile a quello di un'unità rotante:
- I dati entrano nell'SSD dall'interfaccia host, risultando in una richiesta di scrittura (che alla fine verrà scritta sulla NAND).
- "Ci sono pagine vuote/cancellate" (ovvero pagine pronte per essere scritte)? Nella Figura 1 sono disponibili pagine vuote/cancellate.
- Scrivere i dati nelle pagine disponibili.
Questo processo di scrittura viene eseguito in un unico passaggio, proprio come le unità rotanti. In genere, questo è molto più veloce della scrittura su un SSD senza pagine vuote/cancellate (come mostrato nella Figura 2).
Pagine vuote/cancellate disponibili insufficienti
Supponiamo ora di avere un SSD con un numero insufficiente di pagine vuote/cancellate. Quando nuovi dati vengono scritti sull'SSD, è necessario che le celle vengano cancellate immediatamente prima che avvenga la scrittura:
- I dati entrano nell'SSD dall'interfaccia host, risultando in una richiesta di scrittura (che alla fine verrà scritta sulla NAND).
- "Ci sono abbastanza pagine vuote/cancellate" (ovvero pagine pronte per essere scritte)? Nella Figura 2 non è disponibile un numero sufficiente di pagine vuote/cancellate.
- Individua un blocco i cui dati sono stati invalidati o i cui dati validi possono essere spostati, rendendolo un buon candidato per la cancellazione, quindi chiama la routine di raccolta dei rifiuti (vedi la sezione Nuove unità e Unità usate che segue) per abilitare questo blocco per la cancellazione .
- Cancella questo blocco. (Ripetere se necessario per memorizzare i dati nella richiesta di scrittura.)
- Scrivere i dati sulle pagine appena cancellate/vuote.
Il completamento del passaggio 4 può essere lento perché la cancellazione della NAND richiede molto più tempo della scrittura su di essa: qualsiasi ciclo di cancellazione della NAND è "lento" (in genere, sono necessari 250 microsecondi [μs] per scrivere su una cella MLC, ma 1500 µs per cancellarla).
Nuove unità rispetto a unità usate
Se stai utilizzando un SSD nuovo di zecca, il processo di scrittura procede nello stesso modo della Figura 1. Un nuovo SSD è vuoto; tutte le sue pagine saranno vuote e pronte a ricevere nuovi dati, quindi la fase di cancellazione viene raramente eseguita durante la scrittura dei dati. Tuttavia, man mano che l'unità si riempie, il numero di queste pagine vuote/cancellate diminuisce e alla fine verrà consumato.
Esiste un processo in background negli SSD che libera le pagine i cui dati sono stati invalidati, rendendole buone candidate per la cancellazione. Questo processo in background è chiamato “raccolta dei rifiuti”.
Conclusione
Se un SSD basato su NAND è pieno, scrivere nuovi dati su di esso è un processo molto diverso rispetto alla scrittura su un SSD vuoto. Se l'unità è vuota, il processo di scrittura è molto simile a quello delle unità rotanti. Tuttavia, se l'SSD contiene già dati, sono necessari passaggi aggiuntivi:
- L'SSD deve determinare se esiste spazio libero sufficiente per accettare i dati.
- In caso contrario, chiama la sua routine di raccolta dei rifiuti per raggruppare e spostare i dati validi in modo che un intero blocco possa essere cancellato (in modo che le pagine nel blocco possano ricevere nuovi dati).
- Il blocco viene cancellato.
- I dati sono scritti.
Questi passaggi aggiuntivi vengono tutti gestiti dal controller SSD senza l'intervento dell'host, ma comportano una variazione delle prestazioni.
Vedi il "Stati delle prestazioni dell'SSD" Libro bianco su Micron.com per ulteriori informazioni.
Doug Rollins (Ingegnere applicativo senior, Unità a stato solido aziendali, Tecnologia Micron)
Doug Rollins è entrato in Micron nel 2009 come ingegnere applicativo presso il gruppo Enterprise SSD Products. Prima di entrare in Micron, Rollins ha trascorso 17 anni lavorando nella progettazione e produzione di sistemi server, dispositivi di rete, piattaforme di storage/protezione dei dati e storage a stato solido. Rollins è l'inventore nominato in 13 brevetti statunitensi ed è stato riconosciuto sia dalla Storage Networking Industry Association (SNIA) che da Intel Corporation per gli eccezionali risultati tecnici. Rollins ha conseguito la laurea in matematica presso la Humboldt State University.