Hello,
I have done my master thesis on the subject of Partial Array Self-refresh in an embedded Linux environment at STEricsson. I have now finished my thesis, started working and has verry little time (read: no time) to spend on Linux hacking. There fore I would like to pass my work on, in hope that someone else will find it interesting and worth puting som effort in.
One of the greatest challenges in mobile systems, like cell-phones, is battery time. All unnecessary power consumers of a mobile system have to be minimized. One such consumer is the dynamic memory. Dynamic Random Access Memory (DRAM), is a volatile memory, where every bit of memory consists of a capacitor and a transistor. When the capacitor is charged, the bit is set to one, and when it is uncharged, the bit is set to zero.
The main advantage with the construction is that only two components are needed, which leads to a high memory density on the chip.
The disadvantage is the physical properties of a capacitor as a component. The physical capacitor has leak currents, which drains the capacitor. The leakage itself does not lead to noticeable losses, but the data will get corrupted unless it is constantly refreshed by recharging the capacitor. The recharging is done by reading out and writing back all the data of the memory.
During normal operation, the refresh is handled by the operating system. When in idle mode, on the other hand, the refresh is done by the memory itself, in a so called self-refresh mode, since the processor is powered down. To refresh the whole memory if only a part of it is in use is a super uous waste of power. That is why Partial Array Self-refresh (PASR) was introduced.
There is no software implementation making use of PASR in the Linux kernel as of today. The article is based on my master thesis, which aims to present a possible implementation of PASR and evaluate its e ciency.
An article summarizing what I have done is found below:
http://sam.cs.lth.se/ExjobGetFile?id=240
Best regards
Henrik Kjellberg