Trim (informatica)
In informatica, TRIM è una funzionalità dei sottosistemi di memoria di massa presenti all'interno di un elaboratore, che può essere utilizzata dal sistema operativo per segnalare al dispositivo di memoria le pagine non più utilizzate e che possono essere quindi riallocate.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Samsung_980_PRO_PCIe_4.0_NVMe_SSD_1TB-top_PNr%C2%B00915.jpg/220px-Samsung_980_PRO_PCIe_4.0_NVMe_SSD_1TB-top_PNr%C2%B00915.jpg)
La funzione TRIM è una caratteristica tipica di tutti i dispositivi SSD moderni, ed è utilizzabile invocando l'omonimo comando attraverso l'interfaccia di controllo.
Generalmente nell'operazione di cancellazione eseguita da un sistema operativo i blocchi data vengono contrassegnati come non in uso. Il TRIM permette all'OS di passare questa informazione al controller dell'SSD, che altrimenti non sarebbe in grado di sapere quali blocchi eliminare.
Caratteristiche
modificaLo scopo dell'istruzione TRIM è di mantenere la velocità dell'SSD per tutto il suo ciclo di vita, evitando il rallentamento che i primi modelli hanno incontrato una volta che tutte le celle erano state scritte, una alla volta[1].
Nonostante strumenti per ripristinare lo stato originale di alcuni SSD, e quindi le performance, fossero già esistenti, questi comportavano l'eliminazione dei dati sull'intero disco, rendendoli inadeguati ai fini dell'ottimizzazione.
La causa principale del problema è che i dispositivi SSD non conoscono quali blocchi sono realmente in uso e quali sono liberi. Il file system su un SSD mantiene una lista dei blocchi in uso, ma gli SSD non capiscono i file system e quindi non possono accedere a quella lista. Ciò causa dei problemi in due punti:
- Gli SSD possono scrivere blocchi di 4 KiB alla volta, ma date le limitazioni dell'hardware devono eliminare blocchi più grandi, per esempio blocchi da 128 KiB a 512 KiB. [non chiaro]. Il termine per questo fenomeno è Write amplification[2][3].
- Wear levelling (Livellamento dell'usura) consente a un dispositivo di riorganizzare i suoi dati così che le scritture non vengano confinate a uno degli angoli del chip flash. Le celle flash tollerano solo un limitato numero di scritture prima che si rompano, così alcuni SSD spostano i dati all'interno dell'SSD in modo tale che le celle vengano utilizzate in modo equo. Dato che il dispositivo non conosce quali blocchi sono realmente in uso, ogni blocco di dati scritti sul dispositivo richiede una scrittura aggiuntiva a causa del blocco spostato.
La specifica del comando TRIM[4] sta per diventare standard come parte dell'interfaccia standard AT Attachment (ATA), guidata da Technical Committee T13 dell'International Committee for Information Technology Standards.[5]
Supporto dei sistemi operativi
modificaLinux
modificaTRIM è stato aggiunto inizialmente in Linux 2.6.28[6][7][8], in seguito è stato pienamente supportato in Linux 2.6.33 [9].
Microsoft Windows
modificaIn Microsoft Windows, TRIM è stato implementato in Windows 7[10] e in Windows Server 2008 R2[11][12].
Apple macOS
modificaSu sistemi Apple macOS il TRIM è ufficialmente implementato a partire dalla versione 10.6.8 (e con modifica al kext dalla 10.6.7) e solo per dischi originali Apple, per i dischi di terze parti è necessario abilitare la funzionalità modificando kext manualmente o via Chameleon SSD Optimizer[13]. I vecchi SSD necessitano di un aggiornamento del firmware, altrimenti il nuovo comando verrà ignorato. Da OS X 10.10.4, Apple ha esteso il supporto TRIM per unità SSD di terze parti, attivabile tramite il comando "sudo trimforce enable". Il comando Trim in OSX non è supportato per dischi esterni con collegamento Firewire o USB (nemmeno USB-C), mentre invece il supporto è esteso via interfaccia Thunderbolt (1, 2 e 3) oltre che per i dischi interni (sata e pciex). Negli ultimi Mac mentre secure boot è attivo non è possibile abilitare il comando trimforce sui dischi esterni[14].
Altri OS
modificaAlcuni dispositivi (come il Gskill Falcon) hanno uno strumento chiamato wiper.exe che asserisce di utilizzare TRIM su richiesta. Si tratta di uno strumento di deframmentazione per le SSD (i normali strumenti di deframmentazione non funzionano sugli SSD).[15] Lo strumento pulisce semplicemente lo spazio non usato, mentre TRIM informa il controller dello spazio non usato, permettendogli di gestire costantemente le risorse per una migliore performance.
Il 24 luglio 2013 Google annuncia la versione 4.3 del suo OS per dispositivi mobili Android introducendo il comando TRIM al fine di ottimizzare la velocità delle memorie SSD integrate negli stessi.
Alcuni produttori di SSD mettono a disposizione degli strumenti per implementare il comando TRIM anche nei sistemi che non lo supportano come nel caso di Windows XP.[16]
Note
modifica- ^ The SSD Anthology: Understanding SSDs and New Drives from OCZ, in AnandTech, AnandTech, 18 marzo 2009. URL consultato l'8 luglio 2009.
- ^ Write Amplification: Intel's Secret Sauce, su extremetech.com. URL consultato il 4 maggio 2019 (archiviato dall'url originale il 7 giugno 2011).
- ^ Inside the X25-M Controller: Wear Leveling, Write Amplification Control
- ^ Data Set Management Commands Proposal for ATA8-ACS2 (revision 6) (DOC), in INCITS T13, INCITS T13, 12 dicembre 2007. URL consultato l'8 luglio 2009 (archiviato dall'url originale il 13 giugno 2010). (draft specification T13/e07154r6)
- ^ T13 documents referring to TRIM, in INCITS T13, INCITS T13. URL consultato l'8 luglio 2009 (archiviato dall'url originale il 26 maggio 2010).
- ^ Trim on Linux
- ^ Linux Block layer discard requests
- ^ The truth about Linux[collegamento interrotto]
- ^ kernel commit
- ^ been Trim in Windows
- ^ Windows 7 Enhancements for Solid-State Drives (PDF), in Microsoft downloads, Microsoft Corporation, 12 novembre 2008. URL consultato l'8 luglio 2009.
- ^ Q. What is the TRIM function for solid state disks (SSDs) and why is it important? Archiviato il 2 gennaio 2010 in Internet Archive.
- ^ Chameleon SSD Optimizer, TRIM facile per Mac OS X, su Hardware Upgrade. URL consultato il 14 maggio 2019.
- ^ Secure boot disables trim on external dri… - Apple Community, su discussions.apple.com. URL consultato il 14 maggio 2019.
- ^ wiper.exe - TRIM COMMAND for Falcon Series SSD, in XtremeSystems Forums, Jelsoft Enterprises Ltd, 12 maggio 2009. URL consultato l'8 luglio 2009.
- ^ Corsair to release SSD toolbox with Windows XP TRIM support
Collegamenti esterni
modifica- (EN) From write() down to flash chips – an explanation on how the TRIM command lets SSDs erase data not used by the filesystem