SanDisk Claims Hundredfold Speed Boost for Flash

It’s no secret that SSDs suffer from performance penalties when it comes to small random writes. Even though more modern SSD try to solve some of these issues hardware-wise, software can also play a major role. Instead of resorting to things like delaying all writes until shutdown and storing them in RAM, SanDisk claims it has a better option. At WinHEC yesterday, the company introduced its Extreme FFS, which it claims will improve write performance on SSDs by a factor of 100.

The problem, in a nutshell, is that NAND flash always needs to do two operations during a write to a non-empty sector: it needs to erase a block before it can write to it. Random writes are more heavily affected because each individual random write requires its own individual erase operation.

To understand how Extreme FFS works, you need to understand that most file system drivers and operating systems expect the storage medium to be accessible using cylinders and sectors. Obviously, flash storage doesn’t work this way – it uses RAM data grids instead. To fix this problem, there is a map between the driver and the medium that maps file system locations onto the physical medium.

Instead of using a static map which is used now, Extreme FFS uses a dynamic map, allowing the controller on the NAND device and the software to work together in order to cluster related blocks together for optimal performance. In addition, random writes are cached until they can be written to disk at the optimal time and location. Extreme FFS also includes a feature that ‘learns’ usage patterns and organises the SSD accordingly. Other features include garbage collection (really emptying blocks marked as such, and marking bad blocks).

Extreme FFS will appear on SanDisk devices in 2009.

32 Comments

  1. 2008-11-06 4:02 pm
    • 2008-11-06 5:23 pm
      • 2008-11-06 7:40 pm
      • 2008-11-07 9:45 am
        • 2008-11-07 7:56 pm
          • 2008-11-08 10:45 am
      • 2008-11-07 6:07 pm
    • 2008-11-07 8:52 am
      • 2008-11-07 2:11 pm
    • 2008-11-07 2:27 pm
      • 2008-11-07 2:33 pm
        • 2008-11-09 3:12 pm
  2. 2008-11-06 4:03 pm
  3. 2008-11-06 4:04 pm
    • 2008-11-06 11:01 pm
    • 2008-11-07 3:34 pm
  4. 2008-11-06 4:05 pm
    • 2008-11-06 4:32 pm
    • 2008-11-06 6:16 pm
    • 2008-11-06 8:20 pm
  5. 2008-11-06 4:21 pm
    • 2008-11-06 6:09 pm
      • 2008-11-07 6:21 am
  6. 2008-11-06 5:04 pm
  7. 2008-11-06 6:32 pm
  8. 2008-11-06 9:39 pm
  9. 2008-11-06 11:32 pm
    • 2008-11-07 9:52 am
    • 2008-11-07 3:36 pm
  10. 2008-11-07 2:31 am
  11. 2008-11-07 2:44 am
    • 2008-11-07 9:36 am