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. Frantisek _______________________________________________ maemo-users mailing list maemo-users@xxxxxxxxx https://lists.maemo.org/mailman/listinfo/maemo-users