NAND flash bit errors are detected (and corrected) as part of the reading process. File system metadata and frequently accessed files are read often, but the rest of the data might languish and slowly corrupt over time. Infrequent reads during idle time go a long way in preventing data corruption.
Let’s say you own a car. It has a mapping and navigation system stored in NAND flash media. For the last 10 years, you’ve been driving around Detroit, ambling through Ann Arbor and occasionally over the border into Ohio. This weekend, you want to go visit your cousin in the Calumet township.
To achieve this, your car navigation system loads the maps of upper Michigan as you navigate north – accessing files that haven’t been read in ten or more years.
Each read of a map file allows the NAND flash software or firmware to detect and correct occasional bit errors – a known occurrence on NAND flash. When the bit errors climb over a threshold, the data is relocated to another portion of the NAND, and the original portion is fully erased, restoring its capacity to hold files for the future.
Bit errors occur through reads of neighboring NAND cells and as electrons trickle away over time. This effect can be exacerbated by extreme temperatures.
Reading the map file for northern Michigan for the first time in ten years means that those accumulated bit errors may have overwhelmed the capability to correct those bit errors. Said another way, this file may be too corrupt for the navigation system to use.
The sensible solution is to read the seldom used portions of the flash on a semi-regular basis. Our design performs those reads in idle time, never interfering with crucial tasks. This solution is integrated into the software that manages your media, at the same area as wear leveling and other bad block management. This has been referred to as disk preening, probing read, or a lazy reader (emphasizing the idle-time nature). This read refresh is best handled by the flash translation layer software or firmware. While a similar solution could be integrated into the file system or application software, we have found that most developers don’t understand the requirements of the underlying media, and rarely perform these additional tasks.
FlashFX Tera by Tuxera tackles wear leveling, bad block management, and other vulnerabilities of NAND flash memory. With this solution in place, you can drive your car anywhere you like, from southern San Antonio to northern New York. If FlashFX Tera sounds interesting, you can find more information here – or if you already know it’s what you want, then get in touch.
Related content: How to avoid end of life from NAND correctable errors
PS. If you get to western Washington State, look us up!