[clug] Flash memory: Load-levelling question.

Daniel Pittman daniel at rimspace.net
Fri Mar 27 23:00:59 GMT 2009

steve jenkin <sjenkin at canb.auug.org.au> writes:
> Daniel Pittman wrote on 27/3/09 11:31 AM:
>>> If someone can point me at a definitive answer, I'd be most
>>> appreciative :-)
>> Sadly, these algorithms are trade secrets, so while you can get general
>> answers by googling up the whitepapers that flash folks publish, details
>> are practically impossible to come by and we mostly rely on the word
>> from people who have signed the NDAs. :?
>> Footnotes: 
>> [1]  A standard for communicating this information to the device is
>>      currently working through the technical committies responsible for
> Thanks very much for taking time & energy to write such a long and
> detailed reply. Your frequent & good answers are part of the value of
> this list.

I am glad you appreciate them.

> I'm still left wondering:
>   If I build an embedded system with a CF as an IDE disk,
>   will I get better write life if the disk image is (much)
>   smaller than the CF capacity?

Well, this is obviously to the best of my knowledge, but judging from
the various whitepapers on the topic the answer is ... it varies.

Sandisk, many years ago,[1] used a "wear levelling group" arrangement on
top of their flash chips, so they had a cluster of some number of flash
blocks, inside which they did wear levelling, but no cross-group

Some of the current "buy the flash chips and controller only" equipment
from Samsung also talks about the same sort of grouping, but it targeted
at embedded device storage, not consumer applications.

On the other hand, Sandisk recently announced their newest range of
flash storage controllers that use what, as far as can be determined
from press releases, is a log structured file system for block storage.

So, it really depends: in the first case, it probably won't, and in the
second case it will, but not nearly as much as it might sound.

An the gripping hand, while no one talks about it much I could easily
see an implementation where the vendor had a wear levelling group the
size of the device, or used a "written block" bitmap to allow
reallocation of failing blocks from any unused flash block...

So, yeah.  Maybe, but you will never know between devices — even from
the one vendor — unless their spec sheet or technical department give
you an absolute answer.

The number of dollars per volume you pay is probably a reasonable proxy
for the quality of the wear levelling, though.


[1]  2003, IIRC, or some time around then.  Aeons ago, in flash storage
     terms, but the most recent time they actually talked about what
     they are doing.

More information about the linux mailing list