BCH ECC, Overprovisioning, And Moving To 6 Gb/s
Enhanced BCH ECC: A Firmware Layer
As NAND evolves from one manufacturing node to the next, it becomes increasingly difficult to produce compute-quality product. The end result is that newer flash tolerates fewer programming-erases cycles. Correcting errors is perhaps even more important to SandForce than the competition. Drives based on the company's controllers are often able to employ lower-grade NAND as a result of the company's DuraWrite technology. Not only does this capability allow less data to be written, but it also speeds up transfers and reduces NAND wear.
This is the reason why SandForce is introducing a new error correction scheme. NAND flash includes extra storage on each page to hold ECC code and other information related to wear-leveling, block mapping, and other overhead functions. Previously, SandForce used a Reed-Solomon algorithm, which worked fairly well for scattered errors, but is limited in its ability to correct highly concentrated errors. Additionally, there is a high overhead for this type of signal-based decoding.
In its second-generation controller, SandForce is switching up to a BCH (Bose-Chaudhuri-Hocquenghem) algorithm because it features improved efficiency over Reed-Solomon. It has the benefit of correcting highly concentrated and widely scattered errors.
BCH a is relatively more straightforward implementation compared to Reed-Solomon, which means less processing overhead for the SF-2582. Fewer overhead transactions translate into better performance. At the same time, this is a more robust version of BCH than what we have seen elsewhere. It is capable of 55-bits per 512-byte ECC encoding, which is far beyond the limits of what intelligent NAND corrects on its own.
The company tells us that intelligent NAND that tries to self-correct its own errors actually slows down drive performance, which is why it would prefer to work with ECC data in the raw. You should understand that NAND flash is available with either self-correcting ECC or just in the raw. In the case of the latter, flash manufacturers leave space to enable the controller to store ECC during the write process. This "raw" ECC type of NAND is what SandForce drives use. Though even with this powerful ECC, SandForce has taken this one step further to protect the user data by adding its RAISE (redundant array of independent silicon elements) technology to recover the data if the ECC fails. A lot of how this occurs remains shrouded in SF’s secret sauce, but we are told that this results in one quadrillion (1015) times the fewer uncorrectable errors.
Vertex 3 Pro: 28% Provisioning
While DuraWrite can extend NAND durability, OCZ chose to set overprovisioning for all enterprise drives at ~28%. There are two reasons for creating more spare space than what we see on consumer drives.
First, it increases the life of the drive. By increasing the spare area to move blocks around, the drive has fewer redundant writes when it has to do data consolidation. As a result, we end up with less write amplification.
The other reason is to maintain performance over time. As another consequence of a larger “scratch area,” the drive will not get as dirty. With fewer redundant writes, the efficiency per write op goes up.
Moving to 6Gb/s
As you probably already know from our first few looks at 6 Gb/s hard drives, buying a 6 Gb/s drive doesn't mean you're going to get more performance. In the enterprise space (especially when you're talking about mechanical disks), the new interface emphasizes more drives per port than simply enabling smoking speed from a one drive/one port situation.
If that is, in fact, the way you use your storage devices--most common in the desktop space--then you not only need 6 Gb/s drives and controllers, but also technology capable of exceeding the performance ceiling of a 3 Gb/s connection. The Vertex 3 Pro is perhaps the first device we've seen in-house that can achieve such a milestone. But now you need to worry about the hardware to which you're connecting it. Not all 6 Gb/s-capable host interfaces are created equal.
In the run up to this preview, we were given fair warning that getting optimal performance from the Vertex 3 Pro required Intel's P67/H67 chipsets. Though admittedly not enterprise-class devices, you can be we'll see derivatives in the early March time frame enabling Sandy Bridge-based Xeon CPUs in the server/workstation space. AMD's SB850 southbridge, OCZ says, is almost as fast (within a single digit of variance). However, Marvell's 9128/9130 controller would not give us representative performance.
These controllers were designed as cheap ways to enable additional motherboard-down 6 Gb/s SATA connectivity. However, the PCIe x1-based controllers themselves, already at an interface disadvantage, weren't designed to handle the overhead of a very fast storage device. Thus they can't keep up with the IOPS throughput of the next-generation SSDs we're seeing from OCZ today and competing vendors in the near future.
With all of that said, we're happy to finally have a single SATA device capable of taxing our storage controllers, and we're in the process of putting together a story comparing some of the most popular southbridges and platform controller hubs using the Vertex 3 Pro.