Hi all,
I sometimes hear it in the ARM presentations that execution on flash memory consumes much power and execution on RAM is recommended for the low power purpose. I would like to know the reason why accessing to flash memory consumes more power than RAM. Could anyone give me an answer?
Best regards,
Yasuhiko Koumoto.
You're right that if one slowed the clock down the power would be reduced. I was talking about if one ran with the same clock from flash as from RAM. The processor then would use up more power doing the same job. Flash can also use more power of itself if run hard but that normally isn't the main problem.
The trade off can get tricky depending on how fast you want things to go, how often the system goes to sleep, and how much work it does when awake - one can't just give a definitive answer one way or the other. I had a look on the web and here's a recent paper from arXiv on this precise problem that you might find useful
[1406.0403] Optimizing the flash-RAM energy trade-off in deeply embedded systems
Hi daith,
thank you. I understood well. You say that the shorter execution time, the lower power consumes at the same clock speed, don't you? However please correct me if my understanding is wrong.
Best regards,Yasuhiko Koumoto.
Yes that's right.
Even when flash can be read in a single cycle it uses more power than RAM, I'm not sure why, perhaps because the RAM is usually much smaller. Flash is cheaper and for most things you don't want to keep a big RAM powered up while the processor is asleep. The big saving is if flash can be turned off for a while, e.g. if it doesn't have to be used for clock interrupts whilst sleeping or if doing something expensive like a Fourier transform.