Memory Management as a Run-time Service
Portable electronic devices have become ubiquitous in applications in communications, controls, sensor networks, entertainment, military and health care domains. However as increasing computing functionality is included in such devices, the demands on their limited battery energy have increased. Reducing the energy use in embedded computing processors in these devices represents a promising way to significantly improve the battery life of these devices.
This project aims to reduce energy use by improving the allocation of program data and code to Scratch-Pad Memory (SPM), a type of memory frequently used in embedded processors. Our SPM allocation strategy is completely implemented inside a binary rewriter. The binary rewriter takes as input binary executable programs that are produced by today's compilers, i.e., compilers that cannot automatically use the SPM. It outputs a modified executable program with the same functionality, but which automatically uses the SPM, and thus consumes less energy than before. Preliminary results show that our modified executables consume 42% less energy on average compared to the original unmodified executables. Further research to improve the performance, robustness and practicality of the technology is ongoing.