![Infineon Technologies XC2200 User Manual Download Page 109](http://html1.mh-extra.com/html/infineon-technologies/xc2200/xc2200_user-manual_2055439109.webp)
XC2200 Derivatives
System Units (Vol. 1 of 2)
Memory Organization
User’s Manual
3-48
V2.1, 2008-08
MemoryX2K, V1.3
page after programming the new one. Additionally a CRC check could be performed over
the group.
As all involved pages are re-used cyclically the endurance from customer perspective is
increased by the factor N. N must be chosen high enough to fulfill endurance and
retention requirements. Disturbs in the group of N pages are no issue because they incur
at most N-1 disturbs before they get written with new data. Care must be taken however
if one sector accommodates different groups of pages with different update behavior. In
this case the updates of one group of pages could exceed the disturb limits of the other
group. So generally one sector should be used only by one such EEPROM cyclic buffer.
The algorithm keeps the old data until the new data is verified so power failure during
programming can only destroy the last update but the older data is still available. There
are still some issues with power failure that need special treatment:
•
Power is cut during programming: the following boot-up might find an apparently
correctly programmed page. However the cells might be not fully programmed and
thus have a much lower retention or the read data is unstable (e.g. changing
operating conditions cause read errors).
If the power is cut early the page can appear as erased although some cells are partly
programmed. When programming different data to this apparently erased page read
errors might occur.
•
Power is cut during erase: the same as above can happen. Data may appear as
erased but the retention is lowered. A power failure during a page-erase can inhibit
readability of all data in its physical sector. Therefore an algorithm is advantageous
that performs erases only in sectors that don’t contain anymore current data.
The algorithm can be improved to be more robust against such cases, e.g. program
always two pages, mark the end of an erase process by programming a page. But
generally aborting flash processes is a forbidden “operating condition”.
The main deficiency of the described algorithm is that the software designer is required
to plan the use of the flash memory thoroughly. The user has to choose the correct value
of N. Then all data has to be allocated to pages. Data sharing one page should have a
similar or better identical update pattern (otherwise unchanged data is unnecessarily
written). If one set of data does not fill a complete sector the available pages must be
possibly left unused because they might incur too many drain disturbs.
There are other algorithms that try to alleviate these efforts by monitoring the flash usage
and adapt automatically the assignment of data to flash cells.