To get a good impression to what extent TRIM can improve SSD performance and limit degradation, we need to test our three selected drives, an OCZ Vertex 120GB, Corsair P128 120GB and Intel X25-M 160GB using their pre-TRIM firmware in both a new and used state, before switching up to the latest firmware versions and repeating our tests, producing four separate results for each drive on test.
As this is the test bed with which we’ll be reviewing all storage in the future, we’ve also built an entirely new future proof system with which to test our drives. The components are listed below.
- Intel Core i7 920 (operating at 2.83GHz – 21x135MHz) - TurboBoost and power saving states disabled.
- Gigabyte X58A-UD7 motherboard (Intel X58 with ICH10R southbridge, USB 3.0 and Marvell SATA 6Gbps)
- 3x 2GB Corsair XMS PC-1333 memory
- Nvidia GeForce GT 240 512MB
- PC Power & Cooling Silencer 750W PSU
- Windows 7 Home Premium x86-64
- Nvidia Forceware 196.21 WHQL
- Stock Windows AHCI driver (msahci.sys)
As this system needs to be compatible with the TRIM command we have not
installed the Intel INF drivers (which don’t support TRIM yet), and are instead using the default Windows 7 AHCI driver. TRIM is confirmed as running by using the command line and entering fsutil behavior query disabledeletenotify
- a response of disabledeletenotify = 0 indicates TRIM is active.
To confirm the firmware version of each drive, as well as the TRIM support from the SSD side, we’ve used CrystalDisk DriveInfo – a fantastically useful application which you can download for free here
How to read the results
Here's a little help how to read the results over the next few pages, with the example of OCZ's Vertex above:
- Prior to testing with the old firmware first, to make a “clean” drive we ran HDDerase (downloadable here) from a bootable flash drive. This is a secure erase application and fully erases all data from the drive, effectively resetting an SSD to its factory performance, albeit at the obvious loss of all data on the drive. The first set of tests were then run to create a baseline.
- To simulate a protracted heavy workload we then connected the drives to a secondary system running without TRIM support and copied the entire 100GB contents of the c: drive over to the SSD. These files include operating system files, multiple game installs, MP3s and larger video files – the typical contents of a modern hard disk. Once the write to the SSD was completed these files were then deleted and the process repeated ten times, resulting in a total write of over 1TB to our 120GB and 160GB SSDs. We moved the SSD back to the test system (filled from their last write), and the drives were then tested again to produce the second result. This shows the effect of multiple write cycles on performance - in this case, a clear performance drop because the firmware does not have TRIM.
- The drives were then flashed with the latest firmware and HDDerased again to reset them completely, before being tested again. We can see in this case it produced an identical result to the old firmware on a clean drive, which we'd expect.
- After subjecting the drive to yet another 1TB write cycle again, we moved the SSD back to the test system (filled from their last write), verified to be running TRIM and then cleared by a standard windows delete command, followed by an emptying of the recycle bin to ensure the TRIM command had been triggered. The drive was then left for an hour to ensure the TRIM command and any garbage collection algorithms had been completed before being retested using our new suite of benchmarks. As you can see from result #4, clearly TRIM works almost perfectly in restoring performance to that of the clean drive.
While writing 1TB of data to a 120GB drive might seem a bit extreme, and for the majority of users will be far less than you'll write to your SSD in possible its lifetime, our objective here is to demonstrate the wear on a drive over an extended time period. Even then, while 1TB is still likely excessive, it’s important to remember that every time the drive has to perform a read-modify-write command for the data in the cell, it’s having to rewrite the entire cell, so writing 10KB of data to a 20KB cell of dirty NAND actually results in a net write of 20KB. If you’re drive is full of junk data, this could mean that it’s actually writing much more than you’d expect.