Wednesday, July 1, 2009

MemCon 09: Fixing Flash


Note:This blog entry is one of several covering last week’s MemCon 09 conference.

Sometimes, an idea is so blindingly elegant that it needs no marketing spin. That’s what I thought when EasyCo LLC’s CTO Doug Dumitru stepped up to the podium and started to describe his company’s software. It fixes a big problem with NAND Flash memory. This first graph shows the problem:

 

ADVERTISEMENT
 

 

Sequential reads and writes and random reads work OK and transfer rates scale well with block size. Random writes, on the other hand, do not. However, that’s not the whole story. Some files tend to get written much more often than others, prompting localized wearout failures. Advanced Flash memory controllers execute wear-leveling algorithms to try to spread the wear around but simple USB Flash drives generally do not incorporate such advanced controllers. Instead, they just wear out.

EasyCO’s solution to these problems is the obtusely named “linearization software.” In a nutshell, the software transforms all writes to Flash memory into sequential writes by buffering the writes, adding logical block addressing data to the actual data, and periodically writing out the buffered information in consistent 4Kbyte blocks. This approach requires that the host processor keep track of the logical-to-physical mapping in a RAM table and that each new Flash drive be mounted initially. Mounting takes seconds according to Dumitru.

And here’s the result you get for the effort:

 

 

 

 

The black line shows that random write rates are substantially improved, approaching the rates of unaided sequential writes. In addition, because all writes to NAND Flash are now linear and sequential, all memory locations are updated with equal frequencies, resulting in automatic wear leveling. No extra charge. (Pun accidental.)

 



<< Back | Print
© Reed Business Information, a division of Reed Elsevier Inc. All rights reserved.