Second-Generation SandForce: It's All About Compression
After explaining the differences, it might surprise you to learn how much SandForce's second generation logic is similar from it replaces. In our Vertex 3 Pro preview, we explained the changes in these new controllers:
- Better Performance. We now have native SATA 6Gb/s (excluding SF-21xx).
- Updated support of toggle-mode and ONFi 2.2
- Security gets a notable boost from AES-256 (up from 128-bit encryption previously).
- Better Error Correction Code.
- Power throttling.
Much of the magic in a SandForce-based drive comes from data compression. When you write a large Word document to the drive, it's easy for the controller to compress (in comparison, a ZIP file is already compressed, and consequently cannot be easily made smaller). Your computer still thinks that a 3 MB doc file is being written as 3 MB, but once that data hits the controller, it ideally ends up as 1.5 MB. This compression helps lower write amplification and extend the life of the drive by using fewer program-erase cycles.
If the controller is compressing data, you might wonder why a SandForce-based drive can’t just double its storage capacity. Say you have a 120 GB Vertex 2. If you filled up the drive with 50 GB of compressible data squished down into 25 GB of written information, where does the other 25 GB go? Well, it is added to the pool of overprovisioning. There is no way to use this as additional storage space because of the way an OS addresses LBA space. Operating systems recognize a static, not a dynamic, LBA. From a stability standpoint, you don’t want the address of recently-written data to keep changing. However, there is a tangible benefit to compression besides writing less. Remember, more overprovisioning means less data has to be moved around as the drive is filled. This means you could actually get the benefit of enterprise level provisioning (28%) if you were writing easily-compressible data.
The key here is what happens when you transition over to a wider bus interface. Compression has to occur faster. If you're moving data at up to 500 MB/s, the controller's processor works harder to move information through that larger pipe. The controller itself is more like a rail yard conductor, pulling switches to divert traffic. This switching mechanism is handled by the circuit's CPU, but the amount of switching really hasn't changed. This is why all SandForce controllers use the same Tensilica DC_570T processor. The compression engine is what changes. All second-generation controllers feature a bigger block of silicon dedicated to DuraWrite, the technology SandForce cites as being responsible for compression. Likewise, the recycler and garbage collection algorithms have been upgraded because the controller can only write as fast as it can clean once blocks need to be reused.