Hi:
This post relates to the bit-flip issue threads.
It has been suggested that the YAFFS logic be told to do GC on a block which contains a page (Chunk) that needs to be moved due to too many Bit flips. The idea being that the block should get 'refreshed' to clear the bit flip issues and causing a GC in YAFFS2 will do this.
In this situation, all pages within the block have to be moved before that block can be erased (Since all the data is still valid). For MLC flash, this could be a large number ( say 256, 8-16k pages). That means 256 reads modify program operations. That time can be considerable.
Does YAFFS2 only do one or a few page move at a time ( read modify program) and then allow other access requests to occur, or does it basically do it all at one, meaning that any other access requests are now made pending? The 'How Yaffs Works' documentation talks about passive/aggressive methods. In this situation ( where we say to do GC due to bit-flip issues) which one will it do?
This would help us determine how many 'pauses' and how much of a pause we can expect when accessing MLC flash.
Thanks
Chris Gofforth / Pr Software Engineer
MS 131-102, Cedar Rapids, IA, USA
Phone: 319-295-0373 Fax: 319-295-8100