Definition

SSD TRIM

What is SSD TRIM?

SSD TRIM is a command for the Advanced Technology Attachment (ATA) interface that enables an operating system (OS) 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 this command can improve the performance of writing data to SSDs and contribute to longer life for the SSD.

The T13 Technical Committee of the International Committee for Information Technology Standards (INCITS) has incorporated the TRIM command into the ATA standard. For the ATA interface, TRIM provides a way for the system OS to tell the SSD that some areas containing data are no longer in use, thus allowing the writing of new information to those areas. Simply put, the command tells the drive that the data can be removed from some areas.

The command is useful to clean up and organize the SSD and is often used in conjunction with the garbage collection process. Together, TRIM and garbage collection help to optimize the SSD, improve its efficiency and performance, and prolong its lifespan.

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 Serial-Attached SCSI (SAS) SSDs. The DEALLOCATE operation provides a similar capability in the non-volatile memory express (NVMe) command set for Peripheral Component Interconnect Express (PCIe) SSDs.

How SSD TRIM works

NAND flash-based SSDs read and write data in units known as pages. 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 with the TRIM command diagram
Garbage collection with the TRIM command.

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 (idle time) 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 OS to pre-emptively 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 help extend the life of the SSD.

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 place. 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.

The SSD TRIM command may encounter issues with hardware-based RAID controllers due to the way RAID breaks apart data. SSD TRIM is less problematic when used with software-based RAID.

Benefits of using TRIM

SSD TRIM helps improve the performance and longevity of SSD drives. 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.

If the OS does not support TRIM (as was the case before Windows 7), the SSD would not know that some of its sectors contain invalid information that can be removed. So, when the system tells the drive to write new information to that location, it would first need to erase the existing information. This process of erasing followed by writing takes longer than simply writing, slowing down the system's write performance.

It also affects the drive's lifespan since multiple erasure/write cycles affect the integrity of the drive's cells. With TRIM and garbage collection, the SSD can erase certain cells when they are idle, minimizing the need for unnecessary erasing and rewriting, and extending the drive's lifespan.

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 differently. HDD defragmentation is a rearrangement of the fragments of data that constitute a file so that they are closer 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 amount of 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 result is faster data writes and reduced drive wear.

How to check if TRIM is enabled on Windows

All Windows OSes post Windows 7 support TRIM for SSDs that support the feature. However, users can check if TRIM is enabled on the Windows OS for a particular computer by following these steps:

  • Press Windows key + X, click Search.
  • Type cmd in the Search box.
  • Right-click Command Prompt.
  • Select Run as administrator.
  • Type the command fsutil behavior query DisableDeleteNotify.
  • Press Enter.

There are two possible results of running the above command:

  • DisableDeleteNotify = 1, which means that TRIM is disabled on the SSD.
  • DisableDeleteNotify = 0, which means that TRIM is enabled on the SSD.

If TRIM is disabled, it can be enabled by following these steps:

  • Right-click the Windows icon, click Search.
  • Type cmd in the Search box.
  • Right-click Command Prompt.
  • Select Run as administrator.
  • Type the command fsutil behavior set DisableDeleteNotify 0.
  • Press Enter.

Conventional best practices to manage SSDs include using the trim command and occasionally checking the SSD's SMART attributes. Learn how to employ conventional SSD management.

This was last updated in July 2024

Continue Reading About SSD TRIM

Dig Deeper on Flash memory and storage