lunedì 29 aprile 2024 12:42 Mobile Tag_Search Network_Search Site_Map Feed_RSS 3dfxzone amdzone atizone nvidiazone unixzone forumzone enboard.3dfxzone
     
HWSetup.it
proudly powered by 3dfxzone.it
 
 
Home   |   News   |   Headlines   |   Articoli   |   Componenti   |   Schede Video   |   Applicazioni   |   Benchmark   |   Community   |   Redazione   |   Ricerca
Sei in: Home  Articoli  Il comando TRIM di Windows 7 per l'ottimizzazione dei drive SSD  Pagina 2
Il comando TRIM di Windows 7 per l'ottimizzazione dei drive SSD
a cura di Giacomo Usiello | 12/12/2009 | Fornitore:
Condividi su Facebook Condividi su Twitter Condividi su WhatsApp Condividi su reddit

Minimizzare la latenza in fase di scrittura con il comando TRIM

Il problema relativo alla complessita della fase di scrittura, dovuta alla necessita della cancellazione fisica delle celle da aggiornare, può essere meglio compreso ove si consideri che la struttura portante della memoria flash di un drive SSD è schematizzabile come un array o, se lo si preferisce, come un puzzle regolare composto da blocchi (dall'inglese block, un esempio è visualizzato nell'immagine che segue), o celle, i quali al loro interno sono suddivisibili in 64 pagine (dall'inglese page, sono colorate di verde nell'immagine che segue): nel caso tipico in cui la capacità di memorizzazione di una pagina è pari a 4KB, la capacità di un blocco è evidentemente pari a 256KB.

Rappresentazione concettuale di un blocco costituito da 64 pagine

Dal momento che il blocco è l’unità elementare del drive SSD dal punto di vista della cancellazione dei dati, e quindi sia che sia necessario cancellare una pagina che tutte le 64 costituenti un blocco, il controller deve gestire tutto il blocco: in particolare quest’ultimo, che in generale include pagine con dati da cancellare poiché inutilizzati e pagine con dati ancora in uso, viene copiato in una memoria cache dove viene effettuata la cancellazione delle pagine candidate. Successivamente, l’intero blocco viene ricopiato dalla cache alla memoria flash utilizzata dal Sistema Operativo per il tramite del controller SSD e le sue pagine ripulite sono pronte per essere eventualmente oggetto di una operazione scrittura.

E’ chiaro che questo processo è di per se complesso e diviene causa di inefficienza se avviato nell’ambito di una operazione di riscrittura poichè la loro combinazione da origine ad un ciclo di read-erase-modify-write. L’esigenza di minimizzare tale inefficienza è alla base dell’idea implementata con il comando TRIM: quest'ultimo richiede evidentemente per la sua applicazione la presenza di un OS in grado di inviarlo e di un SSD dotato di un firmware che possa riceverlo ed eseguirlo con l’ausilio del controller.

Con il comando TRIM il concetto di dato cancellato non è più relativo soltanto al livello logico - il Sistema Operativo marca i blocchi come cancellati ed in quanto tali non li utilizza più - ma anche a quello fisico, dal momento l’operazione di cancellazione di un file da parte del SO non ha come effetto il solo marcaggio di aree di memoria come "non più in uso" ma anche l’invio di una richiesta al controller mirata a cancellare fisicamente i file rimossi dal cestino di Windows o eliminati in un singolo step.

Il controller esegue il comando TRIM esattamente come la prima parte dell’operazione di scrittura: indipendentemente dal numero di pagine del blocco da cancellare, quest’ultimo viene copiato in cache, dove la cancellazione viene realmente eseguita prima dello step finale, coincidente con la copia nella memoria flash del blocco, o del set di blocchi, modificato in quanto privo dei dati inutilizzati.

Una operazione di riscrittura a valle del comando TRIM è notevolmente più veloce poiché non deve essere preceduta da quella di cancellazione, che è stata eseguita in precedenza. Nell’ottica di minimizzare la latenza dei tempi di scrittura di un SSD privo di blocchi vergini, l’overhead introdotto in fase di cancellazione del file è nettamente inferiore a quello richiesto dalla complessità del ciclo di read-erase-modify-write illustrato in precedenza.

Il comando TRIM impone non soltanto la compatibilità dell’hardware (SSD) e del suo software built-in (firmware) ma anche quella del Sistema Operativo. Windows 7 e Windows Server 2008 R2 di Microsoft sono gli unici ambienti commerciali che supportano ad oggi questa tecnologia. Nel mondo Linux è sostanzialmente in corso l’implementazione del comando TRIM, che è stata avviata con il core Linux 2.6.28 ma che tuttora non è stata completata.

Nel chiudere la presentazione del comando TRIM è utile sottolineare la distinzione di questo da un qualsiasi comando di tipo reset dell’SSD, essendo quest’ultimo mirato a ripristinare lo stato predeterminato di tutti i blocchi del disco, determinando quindi la completa perdita dei dati utili se presenti, e il primo finalizzato a cancellare a livello fisico soltanto i file rimossi dal Sistema Operativo, sincronizzando quindi la vista del file system a livello logico con quella dello stesso a livello hardware.





Collegamenti

Pagina precedente Pagina iniziale


 TAG: Indice Tag  
      Contatti

      Pubblicità

      Media Kit
      Community HWSetup.it

      Condividi sui social

      Condividi via email
      Feed RSS

      Note legali

      Privacy
      Sitemap

      Translator

      Links
      Siti Partner:

      3dfxzone.it      amdzone.it      atizone.it

      forumzone.it      nvidiazone.it      unixzone.it
Le pagine di HWSetup.it sono generate da un'applicazione proprietaria di cui è vietata la riproduzione parziale o totale (layout e/o logica). I marchi e le sigle in esso citate sono di proprietà degli aventi diritto.