Electrical – What operations on flash(NOR/NAND) effect Flash Program/Erase(P/E) cycles

flash-memorieswear-leveling

I want to implement a counter which can save values through power cycles, so I should use flash memory(I have option to choose NOR or NAND) but as my counter values will be increased frequently. I want to optimize number of erases(considering only erases i.e making bits 0 to 1 will effect the flash life span).

For that I want to implement tick counter In which sequence of bytes(around KBytes, depends on my counter maximum value, usually equal to block size) allocated to counter for each increment successive bits will be set to 1 to 0 starting from MSB. I will write custom flash driver to take care of counter operations.

Ex:

Val0: 1111 1111 1111 1111 ....
Val1: 0111 1111 1111 1111 ....
Val2: 0011 1111 1111 1111 ....

Advantages tick counter:

Erase required only when we want to make counter to zero.

But is it possible to program a bit from 1 to 0 without erasing(NAND/NOR), if yes will that effect P/E cycles count?

Best Answer

Rethink your choice of component selection and design in a FRAM chip instead. These support much better performance than Flash because there are no long operational delays on writes and erases. FRAM chips also have endurance capabilities that far out pace those of Flash or EEPROM.

The FRAM chips that I use also support byte by byte data changing as well. This allows for the design of stored block type data in the FRAM chip to be buffered in RAM and then only needing to update specific bytes that have changed as opposed to whole blocks like in Flash. This performance improvement alone can make the serial nature of a SPI or I2C interfaced FRAM chip not bog down an application.

Related Topic