skip to main content
research-article

High-performance operating system controlled online memory compression

Published:06 April 2010Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Compressed Caching. Compressed caching in Linux virtual memory. http://linuxcompressed.sourceforge.net.Google ScholarGoogle Scholar
  4. Cortes, T., Becerra, Y., and Cervera, R. 2000. Swap compression: Resurrecting old ideas. Softw. Pract. Exper. J. 30, 567--587. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Douglis, F. 1993. The compression cache: Using on-line compression to extend physical memory. In Proceedings of the USENIX Conference. 519--529.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Leon-Garcia, A. 1989. Probability and Random Processes for Electrical Engineering. Addison-Wesley.Google ScholarGoogle Scholar
  12. Moore, K. E. 2003. Compressing memory management in a device. U.S. patent, Hewlett-Packard Development Company, LP. May.Google ScholarGoogle Scholar
  13. Oberhumer, M. F. LZO real-time data compression library. http://www.oberhumer.com/opensource/lzo.Google ScholarGoogle Scholar
  14. Rizzo, L. 1997. A very fast algorithm for RAM compression. Oper. Syst. Rev. 31, 2, 36--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Roy, S., Kumar, R., and Prvulovic, M. 2001. Improving system performance with compressed memory. In Proceedings of the Parallel and Distributed Processing Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Russinovich, M. and Cogswell, B. 1996. RAM compression analysis. http://ftp.uni-mannheim.de/info/OReilly/windows/win95.update/model.html.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. Tuduce, I. C. and Gross, T. 2005. Adaptive main memory compression. In Proceedings of the USENIX Conference 237--250. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Vahalia, U. 1996. UNIX Internals: The New Frontiers. Prentice-Hall, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. Ziv, J. and Lempel, A. 1977. A universal algorithm for sequential data compression. IEEE Trans. Inf. Theory 23, 3, 337--343.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. High-performance operating system controlled online memory compression

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Transactions on Embedded Computing Systems
        ACM Transactions on Embedded Computing Systems  Volume 9, Issue 4
        March 2010
        438 pages
        ISSN:1539-9087
        EISSN:1558-3465
        DOI:10.1145/1721695
        Issue’s Table of Contents

        Copyright © 2010 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 6 April 2010
        • Accepted: 1 July 2008
        • Revised: 1 July 2007
        • Received: 1 February 2007
        Published in tecs Volume 9, Issue 4

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader