[maemo-users] Limited life of flash memory

From: Frantisek Dufka dufkaf at seznam.cz
Date: Wed Dec 3 12:19:39 EET 2008
Frantisek Dufka wrote:
> Mark wrote:
>> Another issue is that wear levelling depends on there being a certain
>> amount of free memory in order to shuffle the data around. Most use
>> dynamic rather than static wear levelling, which reduces the
>> effectiveness even further when there is little free space.
> Flash translation layer in memory cards does not know about 'free 
> space', that is filesystem related thing one layer above, we are talking 
> about pure data blocks with no meaning here.

OK, now I see what you mean, by 'free space' you mean data area which is 
free to use by filesystem so new files are written there and there is 
such assumption that you first fill the card with 'static' data and then 
use only the rest with more 'dynamic' data. I don't know how much 
real/pure/significant is this scenario in reality but even in such case 
the most heavily used zones should be still designed to last for years. 
In FAT filesystem the most heavily updated place is the FAT table which 
does not move at all. If the zone with FAT table survives, any other 
zone should survive too :-) Well, unless manufacturers use some dirty 
'FAT optimized' tricks and design the beginning of card to last more 
than the rest :-)

As I understand it cards are divided into zones and wear leveling is 
done for each zone separately no matter if blocks are free (as 
filesystem sees it) or not. Size of one zone is in megabytes. This 
should be enough no matter how often various parts of the card is used.

And maybe then usage statistics can be kept for each zone and heavily 
used zones can be occasionally rotated too. FAT table area is good 
candidate to be first to hit this. I'm not sure if card manufacturers 
actually care to implement this 2nd level but it shouldn't be so hard to 
do if there is a need.


More information about the maemo-users mailing list