[Yaffs-archive] Wearleveling

r.richards@libero.it r.richards@libero.it
Wed, 5 May 2004 14:06:18 +0200


Sorry,
I resend with subject.


Dear, all




From the spec I go=
t this two lines:


1) No wear leveling is explicitly used here. Inste=
ad 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. =0D
=
Since we expect, and handle, failure this is no longer as important.
=0D
=
3) The infrequent random block selection should prevent low-wear blocks g=
etting "stuck".

However, I have some question about wearleveling in Ya=
ffs.


a) I have looked at the source code and I do not find the featu=
re described at point 3.
   Have I missed something ? What is the real i=
mplementation ?
   
b) I have an application case:
   Some large files=
 are stored in the flash and they are not updated.
   Few files are freq=
uently updated. And the flash is near to be full.
   In this way many bl=
ocks are full with all pages valid and so only few blocks are cycled.
  =
 

   Without an effective wearleveling the lifetime of flash is greatl=
y reduced!!!!
   (also in the case that there are some spare blocks).=0D
=
   In fact in the NOR flash filesystem (like Intel FDI) there is a good w=
earleveling and in other NAND FTL.
   Do you agree with my analysis ?=0D
=



c) Is planned an implementation of effective wearleveling in Yaffs2=
 ?




Best Regards
Oreste Bernardi