I'd like to determine the 'order of magnitude' of my product's flash lifetime, so I would like to learn more about yaffs's wear leveling strategies.
I think I understand the intrinsic wear-leveling properties of a log-based file system such as yaffs. No chunk, block or location is favoured over any other as the log grows.
Questions:
1. When choosing a block to erase, does yaffs have a strategy to ensure erases are spread reasonably evenly across blocks?
2. Imagine two partitions, equal in size. Partition A is 90% free, while partition B is only 5% free. On each partition, we repeatedly overwrite a single small file. (This is pretty realistic for my product) Would it be correct to say that yaffs would only wear level across *free* blocks? Does this mean the blocks in partition B would wear out faster than the ones in A?
3. Would enabling 'block refreshing' help with wear leveling?
Thanks in advance,
Sven