SSD TRIM is an Advanced Technology Attachment (ATA) command that enables an operating system to inform a NAND flash solid-state drive (SSD) which data blocks it can erase because they are no longer in use. The use of TRIM can improve the performance of writing data to SSDs and contribute to longer SSD life.
TRIM, which is not an acronym, is available for SSDs that support the Serial ATA (SATA) interface. UNMAP is the comparable Small Computer System Interface (SCSI) command for use with SAS SSDs. The DEALLOCATE operation provides a similar capability in the nonvolatile memory express (NVMe) command set for Peripheral Component Interconnect Express SSDs.
The T13 Technical Committee of the International Committee for Information Technology Standards (INCITS) has incorporated the TRIM command into the ATA standard.
How it works
NAND flash-based SSDs read and write data in units known as pages, and in a typical SSD, 128 pages constitute a single data block. But, before any data can be written or programmed to the SSD, an entire block of data that is no longer needed must be erased. An internal SSD housekeeping operation known as garbage collection helps to streamline the process.
Garbage collection manages and maintains the available storage space, handling the disparity between the erase unit size (block) and the read/write unit size (page). When a previously written block is targeted for garbage collection, the valid data pages are gathered up and moved to another block on the SSD so that the block containing the old, invalid data pages can be erased. Garbage collection may wait for lulls in drive activity to initiate the process, sometimes leaving pages that are obsolete in the SSD.
SSD TRIM is complementary to garbage collection. The TRIM command enables the operating system (OS) to preemptively notify the SSD which data pages in a particular block can be erased, allowing the SSD's controller to more efficiently manage the storage space available for data. TRIM eliminates any unnecessary copying of discarded or invalid data pages during the garbage collection process to save time and improve SSD performance.
The SSD TRIM command simply marks the invalid data and tells the SSD to ignore it during the garbage collection process. The SSD then has fewer pages to move during garbage collection, which reduces the total number of program/erase cycles (P/E cycles) to the NAND flash media and prolongs the life of the SSD. NAND flash wears out due to the long-term effects of the P/E cycle, so reducing the number of erases can lengthen the endurance of the SSD.
In order for TRIM to function, the host's OS and the SSD must support it. For example, in a Windows environment, when an SSD reports that it has TRIM support, the OS will disable disk defragmentation and enable TRIM. When a user deletes a file, the OS sends a TRIM command to the SSD controller to tell it which data pages can be erased when the garbage collection process takes places. The TRIM command and the write command operate independently of each other. The user also has the option to initiate the TRIM command manually or schedule it on a daily basis.
Benefits of using TRIM
SSD TRIM facilitates important benefits in the areas of performance and drive longevity.
Using the TRIM command reduces the amount of data an SSD needs to move during the garbage collection process and reduces the amount of erase cycles, enabling the drive to last longer. By avoiding unnecessary copying of invalid data, the write performance of the drive speeds up.
SSD TRIM vs. defrag
SSD TRIM and hard disk drive (HDD) defragmentation are operations designed to improve drive performance and enhance storage efficiency, but they operate in different ways.
The process of HDD defragmentation enables a rearrangement of the fragments of data that constitute a file into closer proximity to speed access. Consolidating the fragmented blocks into a contiguous grouping improves read performance by reducing the number of seeks the HDD's head must perform. Although the defragmentation process groups free space on the drive into a single contiguous space, the total free space available is not affected.
SSDs do not have moving read/write heads and do not need traditional defragmentation. Use of the TRIM command helps to optimize the capacity of an SSD by allowing garbage collection and background processes to ignore the invalid or obsolete data. The end result is faster data writes and reduced drive wear.