Nel settore delle tecnologie SSD, il termine garbage collection e TRIM sono citati con frequenza. Ma cosa significano? In questo articolo discuteremo della funzione di garbage collection, di come funziona e di come interagisce con il comando TRIM.
Cos’è la funzione di garbage collection?
La funzione della garbage collection è quella di effettuare l'ottimizzazione periodica del drive virgola in modo tale che questo funzioni in maniera efficiente mantenendo prestazioni ottimale durante l'intero ciclo di vita. A differenza degli hard disk tradizionali (HDD), gli SSD e altri dispositivi di storage flash NAND non sono in grado di effettuare la sovrascrittura dei dati esistenti. Tali dispositivi devono invece effettuare un ciclo di programmazione e cancellazione. Le memorie flash sono divise in blocchi che sono loro volta ulteriormente suddivisi in pagine; i dati sono scritti a livello di pagina e vengono poi cancellati a livello di blocco. Prima della cancellazione dei dati, tutti i dati validi (pagine) presenti nel blocco originale devono essere prima copiati e scritti nelle pagine vuote presenti su un nuovo blocco. Per poter scrivere all’interno di un blocco di dati già utilizzato, infatti, un controller SSD di norma deve prima copiare tutti i dati validi (quelli che dovranno essere ancora utilizzati in futuro) e scriverli all’interno delle pagine vuote di un altro blocco; quindi deve cancellare tutte le celle del blocco da liberare (eliminando sia i dati da cancellare che quelli nel frattempo copiati per poter essere riutilizzati) e solo a quel punto può iniziare a scrivere nuovi dati nel blocco che è stato così liberato. Questo processo si definisce appunto Garbage Collection. Kingston® Utilizza svariate tipologie di controller che utilizzano tecnologie proprietarie per effettuare la garbage collection (GC), lo scopo della quale è quello di mantenere il maggior numero di blocchi possibile vuoti in modo tale che quando l’SSD deve scrivere dati non sia necessario attendere per lo svuotamento di un blocco.
Il processo di garbage collection avviene in maniera automatica, normalmente quando il sistema è inattivo e rappresenta una funzione vitale per il funzionamento corretto del drive. I drive SSD integrano controller avanzati che gestiscono lo storage NAND Flash. Quando un sistema operativo come Windows elimina un file, si limita ad annotare nella propria tabella interna che quel file è stato eliminato. All’interno di un hard drive (HDD) i dati restano dove sono, in attesa di essere sovrascritti dal sistema operativo non appena sarà necessario archiviare nuovi dati. I sistemi operativi più recenti supportano anche il comando TRIM, che prevede la notifica al drive SSD da parte del sistema operativo dell’eliminazione di un determinato file, in modo tale che il drive SSD possa gestire meglio e più rapidamente la procedura di liberazione di quello spazio, senza dover procedere alla copia e allo spostamento dei dati.