Sandforce Firmware - SF-1200 and SF-1500

Sandforce Firmware - SF-1200 and SF-1500

While SandForce lists two controllers in its product range, the SF-1200 and the SF-1500, in reality they’re the same hardware running different firmware. The key differences, according to the spec sheets, are the 4KB random write speeds, with the SF-1200 offering 10,000 IOPS (input/output operations per second) to the SF-1500’s 30,000. The SF-1500 is rated at 10 million hours MTBF (Mean Time Before Failure) and the SF-1200 at ‘only’ 2 million hours – both figures are stupidly high, with 2 million hours translating to just over 228 years of constant use.

These differences are due to the SF-1500’s intended use in servers, with the firmware even supporting an emergency data write sequence. The controller is intended to be used with high capacity capacitors, giving it enough to time flush the drive’s buffer into the NAND cells should the power be cut. The SF-1200 firmware doesn’t have this failsafe, but has more stringent fault tolerances, which decreases the random write speed. Outside of a server, it’s doubtful you’ll ever notice the difference between the two controllers.

The biggest physical difference between the first SandForce drives is the type and layout of the NAND flash modules. Differences in firmware do yield differences performance, however. Click to enlarge.

However, big numbers sell hardware, so amongst the SandForce drive partners there’s been a fair bit of cloak and dagger activity over acquiring the SF-1500 firmware for use in SF-1200 drives. OCZ seems to have by far the closest relationship with SandForce, having already released a firmware update for its range of SandForce drives. OCZ has secured supposedly exclusive access to using the SF-1500 firmware on its SF-1200 drives – it costs nothing extra in hardware and allows its drives to sell for that little bit extra than the competition.

In the run up to launch though, SandForce made the error of sending out beta SF-1500 firmware as the first release for the SF-1200 hardware. While most of the drive partners have toed the line and switched to the official SF-1200 firmware for their retail hardware, Corsair has opted to release its 100GB Force Series drives with the beta firmware, getting a sneaky one up on OCZ’s Vertex 2 and it’s ‘official’ SF-1500 firmware-equipped drive.

Over provisioning - Where'd my 128GB go?

The SandForce firmware also decides how much of the drive’s capacity is given to ‘over provisioning.’ This is a method of maintaining a drive’s performance by dedicating some of the drive’s NAND for use as empty blocks ready for writing, allowing the SSD to have spare blocks to use even when approaching full capacity. It also allows any dead blocks to be retired without bricking the drive or reducing capacity.

You’ll never see this over provisioned data on a standard SSD, and we even had a hard time seeing how it could be there. The trick is that NAND is sold with its capacity expressed in binary, not the decimal expression we’re used to, so a 128GB drive actually has 137,438,953,472 bytes of capacity rather than 128,000,000,000 bytes. This is because a Gigabyte is 1,024 Megabytes, which is 1,024 Kilobytes, which is 1,024 bytes. You might see the ‘GiB’ notation, which stands for Gibibytes, from some pedants or in situations where it’s important to differentiate between units of 1,000,000,000 (Gigabytes) and of 1,073,741,824 (Gibibytes).

You can clearly see the eight 16GB Samsung NAND modules of this SanadForce drive, and yet it'll only allow you to use 100GB. Apparently 8 x 16 = 100 in SandForcian. Click to enlarge.

Explaining over provisioning requires pedantry between GB and GiB, unfortunately. As 128GB of NAND flash is 137,438,953,472 bytes of actual raw capacity, a drive sold as a 128GB drive actually has 128GiB of storage. However, the controller provisions 128GB of this as usable capacity, which is then reduced to 119.14GB after formatting and the File Allocation Table (FAT) is set up.

Meanwhile, the drive has 9,438,953,472 bytes (9GiB) that’s still spare, as 128GiB minus 128GB equals 9GiB. This space is provisioned by the drive for use as address mapping and spare blocks. Head exploded yet? You should have tried figuring that out from scratch! This 9GiB of spare area equates to roughly 7 per cent of the SSD’s total NAND capacity, and this is the standard level of over provisioning for MLC NAND-based drives.

The 100GB SandForce-based drives use a massive 28 per cent of over provisioning, leaving just 93.16GB of formatted capacity despite their 128GiB of NAND storage. This high level of over provisioning, arguably unnecessary in consumer products, is likely a hangover from SandForce’s server roots, and we’re already seeing drive partners roll out SF-1200 SSDs with only 13 per cent over provisioning after SandForce released a new version of firmware.