Single page Print

The big, bad block-rewrite penalty
The block-rewrite penalty associated with flash memory is the scourge of SSD performance. This penalty arises from the very nature of flash-based memory, so it's a tough one to avoid. Flash cells are typically arranged in 4KB pages organized into 512KB blocks. If a cell is empty, pages can be written to directly in 4KB chunks. Simple. If a cell is occupied, however, a rewrite of the entire block must be performed, even if only a single page is being written.

Before a block can be rewritten, its contents must first be read and then modified—extra steps that need not be performed when dealing with empty cells. The block write that follows also weighs in at 512KB, or 128 times the size of a 4KB page write, so there's more to actually write. The performance loss resulting from these factors is the block-rewrite penalty.

At first blush, one might assume that simply ensuring an SSD has plenty of free capacity should avoid this calamity. But that doesn't work because of how Windows deals with deleted files. When a file is deleted, the flash pages it occupies are marked as available, but their contents aren't actually emptied or otherwise cleared. As a result, a solid-state drive can show plenty of available storage capacity yet still have all of its flash pages occupied. In that case, the block-rewrite penalty will hamper each and every write request.

The X25-M looking very crowded

To try to combat the block rewrite penalty's impact on long-term drive performance, Indilinx, Intel, and Samsung have all updated their SSD firmware in the last few months. Intel released an 8820 firmware revision for the X25-M that tweaked the drive's self-cleaning mechanism and dramatically improved file copy performance. Indilinx has been busier, issuing firmware updates for its design seemingly every other month. The latest release, version 1370, apparently improves the drive's internal "garbage collection" scheme. Few details on this feature are available, although OCZ is promising to release a white paper on the technology soon. What we do know is that garbage collection is targeted at improving long-term drive performance.

Garbage collection has also come to Samsung-based drives via a new 18C1 firmware revision that the company will begin shipping in drives starting July 1. We're still awaiting specifics on how—and wheter—Samsung's approach differs from Indilinx's. From what little has been revealed thus far, it appears the Indilinx and Samsung garbage collection schemes run automatically when the drive is idling. There's no way to invoke these features manually, and no way to determine whether a drive has had its, er, garbage collected.

I expect there are many similarities between the self-cleaning schemes employed by the Indilinx, Intel, and Samsung SSD controllers, but we can't be sure until more details are disclosed. There does appear to be one difference in Intel's approach, though. The X25-M's self-cleaning mechanism runs constantly, while the Indilinx and Samsung SSDs appear to fire up their garbage collection routines only when drive is idle.

Systems don't idle for long in the Benchmarking Sweatshop, making it difficult to test the garbage collection schemes on the Indilinx and Samsung drives. The fact that there's no way to verify when or even if a self-cleaning routine has completed further complicates the matter. However, a potentially better solution to the block-rewrite problem looms just over the horizon in the form of the TRIM command.

A blue PCB for the Summit

Due to be supported by Windows 7, the TRIM command promises deal with the block-rewrite penalty by emptying pages when data is deleted rather than simply marking them as available. The spec has yet to be finalized, though, and no drives currently support the command in the Windows 7 Release Candidate. Indilinx has pledged to add Windows 7-compliant TRIM support in a future firmware update. Samsung has also promised TRIM support, but Intel has been largely mum on the subject. We'd expect it to follow suit, either with entirely new drives or firmware updates for existing ones.

At the moment, those with Indilinx-powered SSDs can use a "wiper" utility to effectively TRIM their drives manually. The latest 0525 revision of this app is supposed to be more robust than an older version that didn't work for us earlier, but problems persist. The wiper tool apparently works quickly with some configurations, taking a matter of minutes to freshen a drive, and extremely slowly with others, requiring more than a day to complete a run through a 120GB SSD. Unfortunately, our test system is one of those slow configs. More specifically, the wiper tool runs slowly when combined with Intel's AHCI drivers.

OCZ says switching to Vista's own AHCI drivers resolves the issue, and based on our own testing, that appears to be true. However, OCZ has been unable to tell us why the wiper utility has problems with Intel's drivers. Lest you think Intel's sandbagging the wiper to protect X25-M sales, OCZ notes that the app doesn't play nicely with storage controller drivers from AMD or Nvidia, either. Indeed, it appears the only drivers that work properly with the wiper utility are the ones Microsoft built into Vista.

Switching storage controller drivers should be an easy task for any enthusiast. Still, the fact that the wiper tool doesn't work with common, current, and WHQL-certified drivers is a major problem. This latest version may get along with very specific system configurations, but it's not yet ready for mass consumption. As a result, we haven't used it in our testing today.

The Vertex shows its silicon

Because the block-rewrite penalty can severely impact SSD performance, we've elected to test the drives in a simulated used state, with all their flash pages occupied. We don't believe that testing SSDs in a factory-fresh state accurately represents their long-term performance, and we're far more interested in seeing how drives handle a more typical scenario than chasing higher benchmark scores with SSDs that have been manually freshened with secure-erase tools that clear the contents of all flash pages.