Wednesday, March 18, 2009

Gone in a FLASH...

In my job, I work with microcontroller based industrial controllers. The products are increasing FLASH based program memory.

This can be a bad thing. People don't often think of it, but FLASH memory is not permanent storage (in fact, just about anything other than MASKED ROM is not permanent storage, but I'm going to keep refering to FLASH as it is the most common storage these days). That's why the startup code in the controllers contains a checksum routine. If the checksum fails, we try to tell the user and don't run the controller. That way, we will not do the wrong thing.

The FLASH lifetime can vary from long to short (see this paper from Texas Insturments, page 5 figure 1. While it is talking about a specific processor, it is similiar for all processors.) About 100 years (at room temperature, 25C) is pretty good. About 4.6 years (at max operating temperature, 70C) is not. (Note that this is under one set of conditions. Under a different set, the rention times are 1315 years and 61 years. Much better, but will everyone, especially "cheap" parts, take the extra time/effort?)

What that means is that, at some point, the product will fail, even though all the components are still "good." What then?

Well, if the manufacturer (us, or someone else) is still in business, they can be "repaired" by re-flashing them. Providing that the code is still around...
If the manufacturer is gone, so is the repair. And no replacements, either. Even a pre-purchased replacement could be useless, unless it was stored under cool conditions.

And what does this mean for consumer electronics? Well, take just one example: computer motherboards.

The BIOS on modern motherboards is FLASH based, not ROM based. That is why it is field upgradeable. But computers tend to run a bit warm. So the FLASH retention lifetime is reduced. And when the FLASH forgets, the BIOS and system bootability is gone. You can't even re-flash it, there is no way to bring up the system to run the FLASH utility, and there is no on-board connector.

So, as you look around your house or work, think of all the intelligent devices. Your clock/radio. Your DVD player. Your toaster. Your programmable thermostat. Your kid's flashing sneakers. All of them waiting to forget their function, and become useless even without any actual failure...

No comments: