TY - JOUR
T1 - Using memory compression for energy reduction in an embedded java system
AU - Chen, G.
AU - Kandemir, M.
AU - Vijaykrishnan, N.
AU - Irwin, M. J.
AU - Wolf, W.
N1 - Funding Information:
∗This work was supported in part by NSF CAREER Awards 0093082 & 0093085; NSF 0073419, 0082064, 0103583 and an award from DARPA/MACRO GSRC.
PY - 2002/10
Y1 - 2002/10
N2 - The Java programming language is being increasingly used for application development for mobile and embedded devices. Limited energy and memory resources are important constraints for such systems. Compression is an useful and widely employed mechanism to reduce the memory requirements of the system. As the leakage energy of a memory system increases with its size and because of the increasing contribution of leakage to overall system energy, compression also has a significant effect on reducing energy consumption. However, storing compressed data/instructions has a performance and energy overhead associated with decompression at runtime. The underlying compression algorithm, the corresponding implementation of the decompression and the ability to reuse decompressed information critically impact this overhead. In this paper, we explore the influence of compression on overall memory energy using a commercial embedded Java virtual machine (JVM) and a customized compression algorithm. Our results show that compression is effective in reducing energy even when considering the runtime decompression overheads for most applications. Further, we show a mechanism that selectively compresses portions of the memory to enhance energy savings. Finally, a scheme for clustering the code and data to improve the reuse of the decompressed data is presented.
AB - The Java programming language is being increasingly used for application development for mobile and embedded devices. Limited energy and memory resources are important constraints for such systems. Compression is an useful and widely employed mechanism to reduce the memory requirements of the system. As the leakage energy of a memory system increases with its size and because of the increasing contribution of leakage to overall system energy, compression also has a significant effect on reducing energy consumption. However, storing compressed data/instructions has a performance and energy overhead associated with decompression at runtime. The underlying compression algorithm, the corresponding implementation of the decompression and the ability to reuse decompressed information critically impact this overhead. In this paper, we explore the influence of compression on overall memory energy using a commercial embedded Java virtual machine (JVM) and a customized compression algorithm. Our results show that compression is effective in reducing energy even when considering the runtime decompression overheads for most applications. Further, we show a mechanism that selectively compresses portions of the memory to enhance energy savings. Finally, a scheme for clustering the code and data to improve the reuse of the decompressed data is presented.
UR - http://www.scopus.com/inward/record.url?scp=0347304569&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0347304569&partnerID=8YFLogxK
U2 - 10.1142/S0218126602000604
DO - 10.1142/S0218126602000604
M3 - Article
AN - SCOPUS:0347304569
SN - 0218-1266
VL - 11
SP - 537
EP - 555
JO - Journal of Circuits, Systems and Computers
JF - Journal of Circuits, Systems and Computers
IS - 5
ER -