For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
I'll present my Better Firmware Faster seminar in Melbourne and Perth, Australia February 20 and 26th. All are invited. More info here. The early registration discount ends January 20.
By Jack Ganssle
How long will a flash device remember?
We all know about wearing flash out through excessive writes. Plenty of wear-leveling approaches minimize the problem. But will they remember forever?
No. Manufacturers do specify data retention figures for flash. Typically they guarantee ten to twenty years, though the data suggests that flash is a lot better than that.
(It can be hard to get numbers. Micron's web site requires an NDA to get a datasheet! Toshiba's site is nearly unusable, and directs datasheet inquiries to local sales reps. The web is all about making your product information widely available, not gating access through the slow and frustrating process of involving some sales guy.)
TI has an excellent app note about data retention in the MSP430 here:
http://www.eetasia.com/STATIC/PDF/200808/EEOL_2008AUG07_STOR_EMS_AN_01.pdf?SOURCES=DOWNLOAD . In it they show that, for users, the most important data retention factor is temperature. There's an inverse exponential relationship between the two.
The good news is that typically these devices will still preserve their programming long after we have all passed on. But at extreme temperatures, be wary.
However, I never use numbers specified as "typical." Worst-case, or guaranteed, figures are the only ones designers can rely on.
TI specs their MSP430F11x1A part (http://focus.ti.com/lit/ds/symlink/msp430f1111a.pdf) with a guaranteed retention time of 100 years. That's long enough for pretty much any application I can imagine. But Freescale (http://www.freescale.com/files/microcontrollers/doc/eng_bulletin/EB618.pdf) specs ten to twenty years. Other vendors have different figures.
Ten years is a long time. I can't imagine anyone using a 2009-era iPod in 2019 (besides, their batteries will be long gone by then). The latest smart phone will look like Ma Bell's black rotary dial unit a decade hence.
But a lot of embedded apps run quietly in the background controlling all sorts of industrial processes for many years on end. A decade just isn't long enough.
We had this problem before. EPROMs were initially guaranteed for ten years. I worked on an 8008-based system in the 70s that went into factories. By the 80s some of these were still in use, and the EPROMs were dropping bits. No one else remembered how to use the development system: an Intellec 8 with ASR-33 paper tape. Though I no longer worked at that company they tracked me down, and I made a nice consulting fee reprogramming the devices.
What about your systems? Is a decade long enough? If not, what actions do you take?