Making SSDs Work on Desktop PCs: BIOS Shenanigans (Part 1 of 3)

Being geeky enough to get myself in trouble on my PC on a pretty regular basis, I’m also geeking up enough to dig myself out of most of this self-inflicted misery. Recent case in point: I acquired a couple of SSDs, one a 128 GB MasterDrive SX from SuperTalent Technologies (with Samsung innards and controller) for my primary test machine, another an 80 GB Intel X25-M (with a slick multi-level Intel controller that treats the internals as a collection of 5 16 GB drives to offer some of the fastest SSD performance around. I lusted for the 160 GB model, but just couldn’t force myself to cough up the $599 it cost when I was shopping for same; these days that price is more like $550).

By themselves, without any special tweaking, tuning, or set-up, these SSDs do run noticeably faster than conventional spinning drives. But as I’ve been learning, there’s a lot more involved in installation, tweaking, and configuration to get the most out of your SSD than immediately meets the eye. Also, SSDs work best when configured to work with the Advanced Host Controller Interface, or AHCI, which requires different drivers and set-up to work properly on your typical desktop PC. Although SSDs and most modern conventional hard disks all use the SATA interface, conventional HDs will more happily and readily emulate IDE, work with AHCI, and even support various types of RAID configuration without too much muss or fuss.

But to get the most out of an SSD drive on a Windows PC (and so far, my in-depth experience has been limited to Windows 7, where the OS is “SSD-friendly” by design) you must upgrade its firmware to support something called TRIM. Basically TRIM is a special set of commands designed for use on a solid state disk that describes which data blocks on the drive that have been written are no longer in use (usually because a file has been written at some point in time, then later deleted, leaving its data records behind on the drive). SSD’s are also subject to a phenomenon called “write amplification” because while they can write 4KB blocks of data at a time, they can only delete larger blocks sized between 128KB and 512KB. To preserve the contents of blocks within the larger delete areas that remain in use, they must perform complex and lengthy read-erase-modify-write cycles. These become more complex and time consuming as a drive fills up, and data gets spread out all over its available memory space.

TRIM support permits the OS to pass data about now-abandoned and ready-to-reuse disk blocks resulting from file deletes on to the SSD controller, and helps the SSD to maintain its speed and avoid the slowdown that writing around occupied (but no longer useful) blocks of data on the drive after it’s been completely filled. Most vendors also offer so-called “SSD optimization” utilities that are designed to be scheduled to run at regular intervals, to zero out abandoned disk locations and mark them as fresh, available storage. Though this does add to the number of writes to SSD memory cells–which are limited to 10,000 writes for MLC NAND memory, and 100,000 writes for SLC NAND memory–it helps boost SSD performance by making it faster and easier to write data on demand and often, by short-circuiting the read-erase-modify-write cycle that otherwise slows down SSD performance over time.

Making TRIM work with today’s SSDs can be a little bit of a challenge as I discovered in working with a couple of my desktop PCs recently. In this first installment of a three part series, I’ll describe what I had to learn and do to get my Intel X25-M 80 GB SSD working properly on my primary production machine. As I discovered the Intel TRIM driver was available for my device, and downloaded and installed same, I also learned about the Intel SSD Toolbox which reports on Intel SSD status and condition, runs various diagnostics, and includes a schedulable SSD Optimizer tool to perform the aforedescribed SSD deleted block cleanup maneuvers sketched out in the preceding paragraph.

Sounds easy, right? But when I first tried to run this utility, it reported back to me that the optimizer tool isn’t supported for Intel SSDs in RAID configurations, as the documentation also clearly explains. What I didn’t immediately understand until I started looking at my drive configuration info (using Gabe Topala’s excellent System Info for Windows, or siw.exe, utility) was that by plugging my SSD into one of two ports associated with the Gigabyte re-branded JMicron JBB36X  (GBB36X, actually) RAID controller, my motherboard’s BIOS would see this as a RAID drive whether or not I actually used it as part of an actual RAID configuration.

Once I plugged my SSD’s SATA connector into the SATA0 plug on the motherboard (it’s actually labeled SATA101, so I had to download and peruse the manual to figure out which receptable to use), the Intel SSD Toolbox no longer refused to access the device. Only then was I able to schedule and run the Optimizer facility, as shown in the next screen shot. Since then, I’ve been able to notice a perceptible speedup when booting or shutting that machine down, and when launching applications. That’s not all there is to tweaking and taking care of an SSD, though, so in Part 2 of this series, I’ll explain what I had to do on the software side to get the Intel X25-M to stand up and bark, so to speak. As it turns out even in “SSD-friendly” Windows 7 unless you install the OS onto an SSD, it won’t automatically select the most SSD-friendly settings if you migrate the OS to such a drive after the fact…

With the right type of motherboard connection, SSD optimization is enabled

With the right SATA connection, SSD optimization is enabled

Advertisements

One Trackback/Pingback

  1. […] Read more:  Making SSDs Work on Desktop PCs: BIOS Shenanigans (Part 1 of 3 … […]

Post a Comment

You must be logged in to post a comment.
%d bloggers like this: