Trim (computing)
A trim command (known as TRIM in the ATA command set, and UNMAP in the SCSI command set) allows an operating system to inform a storage medium which blocks of data are no longer considered to be "in use" and therefore can be erased internally. TRIM is primarily used on solid-state drives (SSDs), but is also used on some shingled magnetic recording (SMR) hard drives.
TRIM was introduced soon after SSDs were introduced. Because the low-level operation of SSDs differs significantly from hard drives, the conventional manner in which operating systems handle storage operations—such as deletions and formatting—resulted in unanticipated progressive performance degradation of write operations on SSDs. Trimming enables the SSD to more efficiently handle garbage collection, which would otherwise slow future write operations to the involved blocks.
Although tools to "reset" some drives to a fresh state were already available before the introduction of trimming, they also delete all data on the drive, which makes them impractical to use for ongoing optimization. As of 2010, many SSDs and many flash removable storage devices had internal garbage collection mechanisms for certain filesystem(s) (such as FAT and NTFS) that worked independently of trimming. Although this successfully maintained their lifetime even under operating systems that did not support trim, it had the associated drawbacks of increased write amplification and wear of the flash cells, as well as decreased write performance of flash cells.