[Yaffs] Recent yaffs changes

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Subject: [Yaffs] Recent yaffs changes
Hello All

I thought I'd give an update on a few recent changes to yaffs...

yaffs2 mode now supports a "block refreshing" feature which is primarily
intended for MLC flash, but is useable on SLC too. This code periodically
forces a garbage collection on the oldest block (determined by sequence
number) which forces the data to be rewritten to another block.

The feature is controlled by a parameter called refreshPeriod. If
refreshPeriod is smaller than 10 then the feature is disabled. refreshPeriod
determines how often the garbage collection logic will try to do a refresh.
Useful values are probably around 10000 or so. That control is rather crude
but will improve when I look into background garbage collection.

While the primary purpose of the refreshing is to rewrite the oldest block to
reduce read disturb and "bit rot", this also has the benefit of improving
wear levelling.


Also,... testing the block refreshing uncovered a bug that meant that some
inactive chunks were not being deleted soon enough. This had the effect of
increasing the amount of garbage in the partition meaning that the garbage
collector would have to work harder. This has been remedied and should result
in faster writes and better gc, though the impact might not be obvious.

-- Charles