[Yaffs-archive] (no subject)

r.richards@libero.it r.richards@libero.it
Wed, 5 May 2004 13:59:27 +0200


Dear, all




From the spec I got this two lines:


1) No wear le=
veling is explicitly used here. Instead we rely on two "strategies":
=0D
=
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 bl=
ocks getting more wear and failing. 
Since we expect, and handle, failur=
e this is no longer as important.

3) The infrequent random block selec=
tion should prevent low-wear blocks getting "stuck".

However, I have s=
ome question about wearleveling in Yaffs.


a) I have looked at the so=
urce 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 a=
pplication case:
   Some large files are stored in the flash and they ar=
e not updated.
   Few files are frequently updated. And the flash is nea=
r to be full.
   In this way many blocks are full with all pages valid a=
nd so only few blocks are cycled.
   

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



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




Best Regards
Oreste Bern=
ardi