On Wed, Feb 1, 2023 at 10:02 AM Ali via cctalk <cctalk@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