SSD Performance: TRIM And Firmware Updates Tested

Required, Needed, And Wanted

Required: A Decent System

Many people consider SSDs to be a nice upgrade option, even for older systems, as the impact of a much-accelerated storage subsystem is extremely noticeable. However, SSD performance is partly and sometimes largely defined by a system’s ability to handle large amounts of I/O activity. This means that an SSD will only deliver peak performance if it is hosted on a fast system. We found that even a high-end SSD delivers 10-20% less performance if operated on a computer with insufficient CPU horsepower. This has happened to us on older Pentium 4 or early-generation Athlon 64 machines with single-core CPUs. Hence, we recommend that you first spend money on a decent platform before worrying about sinking hundreds of dollars into a solid state drive.

A minimum level of performance isn't just limited to the processor, either. It also includes your storage controller. While 6 Gb/s SATA is nice to have, there is currently only one SSD product available that would take advantage of the increased headroom. If you’re looking at an SSD that has a 3 Gb/s interface, then a 3 Gb/s interface is all you need. However, pay attention to the controller specification: only an AHCI device (Advanced Host Controller Interface) will be able to fully support an SSD, which means that a legacy controller almost always results in decreased performance, simply because it cannot handle all commands, such as queuing and TRIM.

A final system check should also include your driver situation. Are you sure that you’re running the latest available storage driver? If not, it makes sense to simply download and install the latest version, as up-to-date software is required for the exact same reason as a AHCI controller: you definitely want to make sure that an SSD is fully supported. And lastly, any hardware configuration change might cause issues on the storage side. We’ve seen systems with SSDs dropping to only ~10 MB/s maximum throughout after we exchanged the storage controller. Although Windows automatically detected the new device and installed the software, we could only regain maximum SSD speed after uninstalling and reinstalling the storage drivers.

Needed: TRIM Support

Data management is simple on hard drives, as information is stored in individual blocks that follow a logical count through LBA (logical block addressing). The hard drive typically knows where to locate individual blocks, and it can reposition its heads to a certain track to read or write them. It can do this one by one for each and every block.

NAND flash memory has its own idiosyncrasies. One of them is the limited life span of flash memory cells that forces SSD makers to work with wear leveling algorithms in an effort to even out the life expectancy of all memory cells used on a solid state drive. Another characteristic is the fact that MLC flash memory has to be erased before it can be written, and that drives typically work with larger block sizes than those of the operating system (512 KB vs. 4 KB). This means that a few kilobytes write operation triggers an entire block to be read, erased, modified, and written. As you can imagine, this takes some time and it wears all involved memory cells. The FTL (Flash Transition Layer) is utilized to map physical data to logical LBA data, but I believe you can imagine that it’s quite a bit of work for the controller to balance wear leveling and performance. This is commonly known as write amplification. It is expressed through a simple number that tells you the percentage factor of write data that is actually written.

TRIM is a feature that facilitates the controller’s work. It is a command issued by the operating system and basically enables an SSD to eliminate the garbage collection overhead. Any deletion triggered by the operating system at the page level will not immediately execute a physical erase. Instead, the pages are marked as available. Any erase operation always involves the entire block, even though only one page might be affected. Thus, TRIM takes care of the overhead associated with writes in the background, preventing a slow-down when the write actually occurs.

Requirements

First of all, you need an SSD that supports the TRIM feature. This is the case for almost all products available on the market today, but TRIM can technically be added to older SSD designs through a firmware update. However, most vendors seem to have abandoned older solid state products, instead using TRIM as a differentiator on newer drives. To be safe, you're better off not searching for a deal in the clearance bin; just buy one of the newer drives and avoid those support issues.

Secondly, you need an AHCI-compliant SATA storage controller. The Advanced Host Controller Interface has been available for a few years, and even if your system supports AHCI, this mode has to be switched on in the BIOS. Make sure that you use the latest storage drivers as well.

Lastly, the operating system also needs to support TRIM. This is the case on all editions of Windows 7 and Windows Server 2008 R2, Linux 2.6.33, Open Solaris, and FreeBSD 8.1. If you're using an operating system that doesn’t support TRIM, but have compatible hardware otherwise, then you can also use a TRIM utility like hdparm for Linux to manually trigger the command. Be careful with other tools, though, as it is possible to physically reset an SSD as well. This is commonly known as sanitization and should not be confused with TRIM, as sanitizing a drive means to fully erase it.

Wanted: Latest Firmware

We’ve tried many firmware updates on different storage products. Therefore, we can tell you that SSDs are among the most sensitive components around when it comes to firmware modifications and their effect on performance. RAID adapters can typically be adjusted for different application scenarios by altering the firmware, but hard drive or optical drive firmware updates are usually something like a maintenance fixe. In the case of SSDs, it’s an entirely different story.

Intel’s first X25-M drive didn’t deliver a lot more performance than it does today when Intel started to ship its first updates, but the drive actually managed to maintain high levels of performance, even in high load scenarios. This was back at a time when TRIM was not yet available. Therefore, it was up to the drive to maintain performance levels that users expected.

During our testing for this piece, where we were trying to show the difference between TRIM enabled and disabled, Samsung happened to release a new firmware version for the 470-series SSD. Hence, we decided to repeat our tests with the new 0701 and add the results to the numbers we obtained with the 0601 version. It turns out that the new firmware not only increases overall performance, but it also assists in minimizing the performance impact if TRIM is disabled. For users who want or need to operate an SSD in an imperfect system without TRIM support, this fact might be very important.