Sorry,
I resend with subject.
Dear, all
From the spec I got this two lines:
1) No wear leveling is explicitly used here. Instead we rely on two "strategies":
2) Reserving some blocks to cater for failure. You need to do this anyway with NAND.
The main purpose behind wear leveling is to prevent some blocks getting more wear and failing.
Since we expect, and handle, failure this is no longer as important.
3) The infrequent random block selection should prevent low-wear blocks getting "stuck".
However, I have some question about wearleveling in Yaffs.
a) I have looked at the source code and I do not find the feature described at point 3.
Have I missed something ? What is the real implementation ?
b) I have an application case:
Some large files are stored in the flash and they are not updated.
Few files are frequently updated. And the flash is near to be full.
In this way many blocks are full with all pages valid and so only few blocks are cycled.
Without an effective wearleveling the lifetime of flash is greatly reduced!!!!
(also in the case that there are some spare blocks).
In fact in the NOR flash filesystem (like Intel FDI) there is a good wearleveling and in other NAND FTL.
Do you agree with my analysis ?
c) Is planned an implementation of effective wearleveling in Yaffs2 ?
Best Regards
Oreste Bernardi