Results: TRIM Testing With DriveMaster 2012
We've been utilizing ULINK's DriveMaster 2012 software and hardware suite to introduce a new test for client drives. Using JEDEC's standardized 218A Master Trace, DriveMaster can turn a sequence of I/O (similar to our Tom's Hardware Storage Bench) into a TRIM test. JEDEC's trace is months and months of drive activity, day-to-day activities, and background operating system tasks.
ULINK strips out the read commands for this benchmark, leaving us with the write, flush, and TRIM commands to work with. Execute the same workload with TRIM support and without, and you end up with a killer metric for further characterizing drive behavior.
DriveMaster is used by most SSD manufacturers to create and perform specific measurements. It's currently the only commercial product that can create the scenarios needed to validate TCG Opal 2.0 security, though it's almost unlimited in potential applications. Much of the benefit tied to a solution like DriveMaster is its ability to diagnose bugs, ensure compatibility, and issue low-level commands. In short, it's very handy for the companies actually building SSDs. And if off-the-shelf scripts don't do it for you, make your own. There's a steep learning curve, but the C-like environment and command documentation gives you a fighting chance.
This product also gives us some new ways to explore performance. Testing the TRIM command is just the first example of how we'll be using ULINK's contribution to the Tom's Hardware benchmark suite.
On a 256 GB drive, each iteration writes close to 800 GB of data, so running the JEDEC TRIM test suite once on a 256 GB SSD generates almost 3.2 TB of mostly random writes (it's 75% random and 25% sequential). By the end of each run, over 37 million write commands are issued.
The first two tests employ DMA to access the storage, while the last two use Native Command Queuing. Since most folks don't use DMA with SSDs (aside from some legacy or industrial applications) we don't concern ourselves with those. It can take up to 96 hours to run one drive through all four runs, though faster drives can roughly cut the time in half. Because so much information is being written to an already-full SSD (the drive is filled before each test, and then close to 800 GB are written per iteration), SSDs that perform better under heavy load fare best. Without TRIM, on-the-fly garbage collection becomes a big contributor to high IOPS. With TRIM, 13% of space gets TRIM'ed, leaving more room for the controller to use for maintenance operations.
To avoid adding too much data, I have the average performance for each benchmarked SSD with and without TRIM support enabled. Displayed in IOPS, this helps us make comparisons more quickly.
To the extent that you can buy JMF667H-based drives at the moment, they're mostly running older 200-series firmware. Our reference models from JMicron get updated 400-series software, which makes a difference.
Take a peek at the 128 GB models. They surround the excellent 120 GB Samsung 840 EVO and nearly topple the 240 GB Crucial M500.
This is the instantaneous TRIM result for all four reference platforms. It's complicated-looking with all four lines spiking up and down, but keep your eyes focused on the individual colors. The 256 GB model with A19 flash performs particularly well. But it also has a secret weapon: over-provisioning. Technically, we'd call this a 240 GB model. But it's coined and minted as a 256 GB SSD, so that's how I've referred to it thus far.
Although this is a TRIM test, that over-provisioning helps with and without the command implemented. Otherwise, the 256 GB models would be closer together. As long as the NAND isn't radically dissimilar, tests like this are largely a result of TRIM performance, garbage collection/idle merge processes, and and spare area. It just so happens that the new firmware is quite good in TRIM testing, while some drives (like Plextor's M5P) don't benefit much from TRIM.
We collect and report the total throughput of each drive in the NCQ with TRIM test. It's one number that helps capture overall performance in the test.