What is rapid cycling and what does it do to the data retention time?
Flash memories are used to store non-volatile data. In some applications, such as file system, data are updated from time to time. When old data needs to be erased to make room for new data, an erase operation is performed to a flash sector, by a Sector Erased command. The erase operation will cause the entire sector to become '1' in value; the sector is then ready to be programmed with new data. A program operation would change bits from '1' to '0' in value. These program and erase operations would repeat on a flash sector as necessary.
Such repetitions of program and erase operations are called Program/Erase (P/E) cycles. Typically, in NOR flash, the number of P/E cycles supported is in the order of 100K in the life span of the device.
If the interval between two consecutive P/E cycles is very short, for example, less than 90 seconds, it is called rapid cycling. Rapid cycling has measurable effect on the data retention time on the flash device. This is due to the time required by the self-annealing process to dissipate non-equilibrium charges after each erase operation. If the sector is not given sufficient time to anneal after an erase, the data retention time on that sector is reduced.
For Cypress MirrorBit® products, Cypress recommends that users not to perform more than 1000 P/E cycles per day. That is roughly equivalent to a time interval of 90 seconds or more between any two P/E cycles on any given sector or block.
There are two common use cases where rapid cycling can happen:
The first use case happens during testing or qualification of your product. In this case, a high P/E cycling load is driven into the flash device to simulate accelerated field conditions. If such an accelerated life test happens to apply rapid cycling to some set of sectors, flash data retention failures are likely. Such failures are not valid accelerated life test results; they constitute misuse of the flash device.
The containment is to reduce the P/E cycling load applied by the test sequence until it is below the recommended limit, either by increasing the time between P/E cycles on each sector within the set of sectors under test, or by increasing the number of sectors subject to the P/E cycling stress.
The second use case happens in data storage applications where high writing load is driven into too few sectors. The primary containment is to increase the number of sectors that are subjected to the high writing load. This use case can also happen in flash file systems and flash block drivers for the corner case of a data partition that contains a high fraction of static data, and a small fraction of dynamic data that is subject to very high writing loads. In this case, one containment is to force the static wear leveling logic to execute sooner; another is to increase the number of flash sectors that are available for the dynamic data set. If the number of sectors cannot be increased, or if the static wear leveling algorithm cannot help, then the high writing load must be attenuated.