Abstract
Online memory compression is a technology that increases the amount of memory available to applications by dynamically compressing and decompressing their working datasets on demand. It has proven extremely useful in embedded systems with tight physical RAM constraints. The technology can be used to increase functionality, reduce size, and reduce cost, without modifying applications or hardware. This article presents a new software-based online memory compression algorithm for embedded systems. In comparison with the best algorithms used in online memory compression, our new algorithm has a competitive compression ratio but is twice as fast. In addition, we describe several practical problems encountered in developing an online memory compression infrastructure and present solutions. We present a method of adaptively managing the uncompressed and compressed memory regions during application execution. This memory management scheme adapts to the predicted memory requirements of applications. It permits efficient compression for a wide range of applications. We have evaluated our techniques on a portable embedded device and have found that the memory available to applications can be increased by 2.5× with negligible performance and power consumption penalties, and with no changes to hardware or applications. Our techniques allow existing applications to execute with less physical memory. They also allow applications with larger working datasets to execute on unchanged embedded system hardware, thereby increasing functionality.
- Benini, L., Bruni, D., Macii, A., and Macii, E. 2002. Hardware-Assisted data compression for energy minimization in systems with embedded processors. In Proceedings of the Design, Automation and Test in Europe Conference. Google ScholarDigital Library
- Benini, L., Bruni, D., Macii, A., and Macii, E. 2004. Memory energy minimization by data compression: Algorithms, architectures and implementation. IEEE Trans. VLSI Syst. 12, 3, 255--267. Google ScholarDigital Library
- Compressed Caching. Compressed caching in Linux virtual memory. http://linuxcompressed.sourceforge.net.Google Scholar
- Cortes, T., Becerra, Y., and Cervera, R. 2000. Swap compression: Resurrecting old ideas. Softw. Pract. Exper. J. 30, 567--587. Google ScholarDigital Library
- Douglis, F. 1993. The compression cache: Using on-line compression to extend physical memory. In Proceedings of the USENIX Conference. 519--529.Google Scholar
- Kjelso, M., Gooch, M., and Jones, S. 1996. Design and performance of a main memory hardware data compressor. In Proceedings of the Euromicro Conference. 423--430.Google Scholar
- Kjelso, M., Gooch, M., and Jones, S. 1999. Performance evaluation of computer architectures with main memory data compression. J. Syst. Archit. 45, 571--590.Google ScholarCross Ref
- Lee, C., Potkonjak, M., and Smith, W. H. M. Mediabench: A tool for evaluating and synthesizing multimedia and communications systems. http://cares.icsl.ucla.edu/MediaBench.Google Scholar
- Lefurgy, C., Piccininni, E., and Mudge, T. N. 2000. Reducing code size with run-time decompression. In Proceedings of the International Symposium on High-Performance Computer Architecture. 218.Google Scholar
- Lekatsas, H., Henkel, J., and Wolf, W. 2000. Code compression for low power embedded system design. In Proceedings of the Design Automation Conference. 294--299. Google ScholarDigital Library
- Leon-Garcia, A. 1989. Probability and Random Processes for Electrical Engineering. Addison-Wesley.Google Scholar
- Moore, K. E. 2003. Compressing memory management in a device. U.S. patent, Hewlett-Packard Development Company, LP. May.Google Scholar
- Oberhumer, M. F. LZO real-time data compression library. http://www.oberhumer.com/opensource/lzo.Google Scholar
- Rizzo, L. 1997. A very fast algorithm for RAM compression. Oper. Syst. Rev. 31, 2, 36--45. Google ScholarDigital Library
- Roy, S., Kumar, R., and Prvulovic, M. 2001. Improving system performance with compressed memory. In Proceedings of the Parallel and Distributed Processing Symposium. Google ScholarDigital Library
- Russinovich, M. and Cogswell, B. 1996. RAM compression analysis. http://ftp.uni-mannheim.de/info/OReilly/windows/win95.update/model.html.Google Scholar
- Shaw, C., Chatterji, D., Sen, P. M. S., Roy, B. N., and Chauduri, P. P. 2003. A pipeline architecture for encompression (encryption + compression) technology. In Proceedings of the International Conference on VLSI Design. Google ScholarDigital Library
- Tremaine, B., Franaszek, P. A., Robinson, J. T., Schulz, C. O., Smith, T. B., Wazlowski, M., and Bland, P. M. 2001. IBM memory expansion technology. IBM J. Res. Devel. 45, 2, 271--285. Google ScholarDigital Library
- Tuduce, I. C. and Gross, T. 2005. Adaptive main memory compression. In Proceedings of the USENIX Conference 237--250. Google ScholarDigital Library
- Vahalia, U. 1996. UNIX Internals: The New Frontiers. Prentice-Hall, NJ. Google ScholarDigital Library
- Wilson, P. R., Kaplan, S. F., and Smaragdakis, Y. 1999. The case for compressed caching in virtual memory systems. In Proceedings of the USENIX Conference. 101--116. Google ScholarDigital Library
- Xu, X. H., Clarke, C. T., and Jones, S. R. 2004. High performance code compression architecture for the embedded ARM/Thumb processor. In Proceedings of the Conference on Computing Frontiers. 451--456. Google ScholarDigital Library
- Yang, L., Dick, R. P., Lekatsas, H., and Chakradhar, S. 2005. CRAMES: Compressed RAM for embedded systems. In Proceedings of the International Conference Hardware/Software Codesign and System Synthesis. Google ScholarDigital Library
- Yang, L., Lekatsas, H., and Dick, R. P. 2006. High-performance operating system controlled memory compression. In Proceedings of the Design Automation Conference. 701--704. Google ScholarDigital Library
- Ziv, J. and Lempel, A. 1977. A universal algorithm for sequential data compression. IEEE Trans. Inf. Theory 23, 3, 337--343.Google ScholarDigital Library
Index Terms
- High-performance operating system controlled online memory compression
Recommendations
Online memory compression for embedded systems
Memory is a scarce resource during embedded system design. Increasing memory often increases packaging costs, cooling costs, size, and power consumption. This article presents CRAMES, a novel and efficient software-based RAM compression technique for ...
High-performance operating system controlled memory compression
DAC '06: Proceedings of the 43rd annual Design Automation ConferenceThis article describes a new software-based on-line memory compression algorithm for embedded systems and presents a method of adaptively managing the uncompressed and compressed memory regions during application execution. The primary goal of this work ...
CRAMES: compressed RAM for embedded systems
CODES+ISSS '05: Proceedings of the 3rd IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesisMemory is a scarce resource in many embedded systems. Increasing memory often increases packaging and cooling costs, size, and energy consumption. This paper presents CRAMES, an efficient software-based RAM compression technique for embedded systems. ...
Comments