In computing, a TRIM command allows an operating system to tell a solid-state drive (or "SSD") which data blocks are no longer in use, such as those left by deleted files. An OS operation such as delete generally only means the data blocks involved are flagged as not in use. TRIM allows the OS to pass this information on down to the SSD controller, which otherwise would not know it could trash those blocks.
The purpose of the instruction is to maintain the speed of the SSD throughout its lifespan, avoiding the slowdown that early models encountered once all of the cells had been written to once.[1]
Although tools were already available to "reset" some drives to a fresh state, they also delete all data on the drive which makes it impractical to use as an optimization.
The root cause of the issue is that SSD drives do not know which blocks are truly in use and which are free. While the file system on the SSD will maintain an in-use list, SSDs don't understand file systems, and cannot access this list. This causes trouble in two places:
The TRIM command specification[5] is being standardized as part of the AT Attachment (ATA) interface standard, led by Technical Committee T13 of the International Committee for Information Technology Standards.[6]
TRIM has been prepared in Linux 2.6.28[7], but not yet fully implemented[8][9]. In Microsoft Windows, TRIM has been implemented in Windows 7[10] and Windows Server 2008 R2,[11] [12] and was released with the final versions of those operating systems in October 2009. Older solid state drives will need firmware updates, otherwise the new command will be ignored.
Some drives (such as the Gskill Falcon) have a specialized tool called wiper.exe that claims to use TRIM on demand. However, it is actually a specialized defragmentation tool for SSDs (regular defragmentation tools do not work on SSDs).[13] It simply clears unused space, while TRIM actually informs the controller about unused space, allowing the controller to continuously manage resources for best performance.
From write() down to flash chips – an explanation on how the TRIM command lets SSDs erase data not used by the filesystem
TRIM Command White Paper - a white paper explaining the TRIM command's purpose and actions
|
|