Re: [Yaffs] How to trigger garbage collection on read?

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Peter Barada
Date:  
To: srimugunthan dhandapani
CC: yaffs@lists.aleph1.co.uk
Subject: Re: [Yaffs] How to trigger garbage collection on read?
On 02/04/2012 07:37 AM, srimugunthan dhandapani wrote:
> On Tue, Jan 17, 2012 at 12:43 AM, Peter Barada<> wrote:
>> I need to modify YAFFS to trigger garbage collection on a block that has
>> too many page reads between erases.
>>
>> This is due to the characterisation of the Micron NAND
>> (MTMT29C4G48MAPLCJI6) I'm using where it can only have ~20K reads
>> between erasures to maintain UBER below 10E-14. The NAND itself has an
>> internal 4-bit ECC engine, but I can't extract any useful information
>> from the ECC due to the lack of bit error counts (i.e. the chip can only
>> tell me that a read required some level of correction but not the amount
>> of correction, and worse the rate of corrections indicated by the chip
>> is too high to employ effective strike counting).
>>
>> So I need to track the page reads in a block and if they reach a limit
>> then cause the block to be garbage collected (i.e. copy out all the
>> useful data and erase the block).
> Just out of curiosity , is this the same as read disturb phenomena in flash?.
> http://en.wikipedia.org/wiki/Flash_memory#Read_disturb

Yes it is to keep UBER (un-correctable bit error rate) down to an
acceptable level (i.e. less than 1E-15). If you read a block too many
times then the number of bit corrections rise until it gets to a level
that the ECC can not handle, so "refreshing" the block is needed to
re-charge the floating cells...


--
Peter Barada