On Wed, Feb 1, 2023 at 10:02 AM Ali via cctalk <cctalk(a)classiccmp.org>
wrote:
However, it
may well be that writing is the only way to refresh cells,
as reading won't, if I understand flash operation correctly. But
rewriting a sector or block of a file doesn't usually write back to the
original, because of the write-leveling firmware in the drive.
Chuck,
But does that matter? If the main purpose is to be able to refresh the
data so it is readable does it matter that the data is not in the same
block as long as it is readable?
What's more, you don't always WANT to refresh the cells. Erase blocks
can only be erased and programmed a limited number of times. By writing
them every time, you are wearing out the NAND and making it less reliable
and able to hold the data with time. The first few program / erase cycles of
new NAND have the best retention for the unit. Once you get into the dozens
somewhere, the retention of the cells drops somewhat. Normally, this isn't
an issue, because dropping from decades to years for retention isn't a huge
deal for most applications. But when you want the data to last a long time,
you are better off just reading it and having those few (if any) cells that
have
decayed into the 'danger zone' refreshed, leading to likely 100x (or
better) less
wear on the part. The 'danger zone' is the error rate at which the firmware
will
decide the data is at risk in the future so it will rewrite the active
parts of the
erase block to ensure they are all readable in the future.
So by forcing a re-write every time, and doing that force rewrite often,
you are
actually making the device less capable of storing data for the long term.
Warner