skip to main content
research-article

MEMMU: Memory expansion for MMU-less embedded systems

Published:22 April 2009Publication History
Skip Abstract Section

Abstract

Random access memory (RAM) is tightly constrained in the least expensive, lowest-power embedded systems such as sensor network nodes and portable consumer electronics. The most widely used sensor network nodes have only 4 to 10KB of RAM and do not contain memory management units (MMUs). It is difficult to implement complex applications under such tight memory constraints. Nonetheless, price and power-consumption constraints make it unlikely that increases in RAM in these systems will keep pace with the increasing memory requirements of applications.

We propose the use of automated compile-time and runtime techniques to increase the amount of usable memory in MMU-less embedded systems. The proposed techniques do not increase hardware cost, and require few or no changes to existing applications. We have developed runtime library routines and compiler transformations to control and optimize the automatic migration of application data between compressed and uncompressed memory regions, as well as a fast compression algorithm well suited to this application. These techniques were experimentally evaluated on Crossbow TelosB sensor network nodes running a number of data-collection and signal-processing applications. Our results indicate that available memory can be increased by up to 50% with less than 10% performance degradation for most benchmarks.

References

  1. Abrach, H., Bhatti, S., Carlson, J., Dai, H., Rose, J., Sheth, A., Shucker, B., and Han, R. 2003. MANTIS: system support for MultimodAl NeTworks of in-situ sensors. In Proceedings of the International Workshop on Wireless Sensor Networks and Applications. ACM, New York, 50--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Banerjee, U. 1993. Loop Transformations for Restructuring Compilers: The Foundations. Kluwer Academic Publishers, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Biswas, S., Simpson, M., and Barua, R. 2004. Memory overflow protection for embedded systems using runtime checks, reuse and compression. In Proceedings of the International Conference on Compilers, Architecture & Synthesis for Embedded Systems (CASES'04). ACM, New York, 280--291. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Choudhuri, S. and Givargis, T. 2005. Software virtual memory management for MU-less embedded systems. Tech. rep., Center for Embedded Computer Systems, University of California, Irvine.Google ScholarGoogle Scholar
  5. Cooprider, N. and Regehr, J. 2007. Online compression for on-chip RAM. In Proceedings of the Programming Languages Design and Implementation. ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Douglis, F. 1993. The compression cache: Using online compression to extend physical memory. In Proceedings of the USENIX Conference. 519--529.Google ScholarGoogle Scholar
  7. Dowding, C. H. and McKenna, L. M. 2005. Crack response to long-term and environmental and blast vibration effects. J. Geotech. Geoenviron. Eng. 131, 9, 1151--1161.Google ScholarGoogle ScholarCross RefCross Ref
  8. Engelson, V., Fritzson, D., and Fritzson, P. 2000. Lossless compression of high-volume numerical data from simulations. In Proceedings of the Data Compression Conference. IEEE, Los Alamitos, CA, 574. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Franke, B. and O'Boyle, M. 2001. Compiler transformation of pointers to explicit array accesses in DSP applications. In Proceedings of the International Conference on Compiler Construction. Springer, Berlin, Germany, 69--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ganesan, P., Venugopalan, R., Peddabachagari, P., Dean, A., Mueller, F., and Sichitiu, M. 2003. Analyzing and modeling encryption overhead for sensor network nodes. In Proceedings of the International Conference on Wireless Sensor Networks and Applications. ACM, New York, 151--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gay, D., Levis, P., and Culler, D. 2005. Software design patterns for TinyOS. In Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems. ACM, New York, 40--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gay, D., Levis, P., Culler, D., and Brewer, E. 2003. nesC 1.1 language reference manual. http://nescc.sourceforge.net/papers/nesc-ref.pdf.Google ScholarGoogle Scholar
  13. Gehrke, J. and Madden, S. 2004. Query processing in sensor networks. Pervasive Comput. 3, 1, 46--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Guestrin, C., Bodi, P., Thibau, R., Paski, M., and Madde, S. 2004. Distributed regression: an efficient framework for modeling sensor network data. In Proceedings of the International Symposium on Information Processing in Sensor Networks. ACM, New York, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Hartung, C., Han, R., Seielstad, C., and Holbrook, S. 2006. FireWxNet: a multi-tiered portable wireless system for monitoring weather conditions in wildland fire environments. In Proceedings of the International Conference on Mobile Systems, Applications, and Services. ACM, New York, 28--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hellerstein, J. M. and Wang, W. 2004. Optimization of in-network data reduction. In Proceedings of the International Workshop on Data Management for Sensor Networks. ACM, New York, 40--47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Karlof, C. and Wagner, D. 2003. Secure routing in wireless sensor networks: attacks and countermeasures. Elsevier's AdHoc Networks J. 1, 2--3, 293--315.Google ScholarGoogle ScholarCross RefCross Ref
  18. Lattner, C. and Adve, V. 2004. LLVM: A compilation framework for lifelong program analysis & transformation. In Proceedings of the International Symposium on Code Generation and Optimization. ACM, New York, 75--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Lekatsas, H., Henkel, J., and Wolf, W. 2000. Code compression for low power embedded system design. In Proceedings of the Design Automation Conference. IEEE, Los Alamitos, CA, 294--299. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Li, D., Wong, K., Hu, Y., and Sayeed, A. 2002. Detection, classification, and tracking of targets. Signal Process. Mag. 19, 2, 17--29.Google ScholarGoogle ScholarCross RefCross Ref
  21. Madden, S., Franklin, M., Hellerstein, J., and Hong, W. 2002. TAG: a tiny aggregation service for ad-hoc sensor networks. In Proceedings of the Symposium on Operating Systems Design and Implementation. ACM, New York, 131--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Mckinley, K. S., Carr, S., and wen Tseng, C. 1996. Improving data locality with loop transformations. ACM Trans. Program. Lang. Syst. 424--453. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. MEMMU. Memory expansion on embedded systems without MMUs. http://robertdick.org/tools/html.Google ScholarGoogle Scholar
  24. Muchnick, S. S. 1997. Advanced Compiler Design Implementation. Morgan Kaufmann Publishers, St. Louis, MO. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Nath, S., Gibbons, P. B., Seshan, S., and Anderson, Z. R. 2004. Synopsis diffusion for robust aggregation in sensor networks. In Proceedings of the International Conference on Embedded Networked Sensor Systems. ACM, New York, 250--262. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Oberhumer, M. F. LZO real-time data compression library. http://www.oberhumer.com/opensource/lzo.Google ScholarGoogle Scholar
  27. Pereira, C., Gupta, S., Niyogi, K., Lazaridis, I., Mehrotra, S., and Gupta, R. 2003. Energy efficient communication for reliability and quality aware sensor networks. Tech. rep., University of California at Irvine.Google ScholarGoogle Scholar
  28. Polastre, J., Szewczyk, R., and Culler, D. 2005. Telos: enabling ultra-low power wireless research. In Proceedings of the International Symposium on Information Processing in Sensor Networks. ACM, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Polastre, J., Szewczyk, R., Mainwaring, A., Culler, D., and Anderson, J. 2004. Analysis of wireless sensor networks for habitat monitoring. In Proceedings of the Wireless Sensor Networks Symposium. ACM, New York, 399--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Pottie, G. J. and Kaiser, W. J. 2000. Wireless integrated network sensors. Comm. ACM 43, 5, 51--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Pradhan, S. S., Kusuma, J., and Ramchandran, K. 2002. Distributed compression in a dense microsensor network. IEEE Signal Process. Mag. 19, 2, 51--60.Google ScholarGoogle ScholarCross RefCross Ref
  32. Rizzo, L. 1997. A very fast algorithm for RAM compression. Operat. Syst. Rev. 31, 2, 36--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Simpson, M., Middha, B., and Barua, R. 2005. Segment protection for embedded systems using runtime checks. In Proceedings of the International Conference on Compilers, Architecture & Synthesis for Embedded Systems. ACM, New York, 25--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Szewczyk, R., Polastre, J., Mainwaring, A., and Culler, D. 2004. Lessons from a sensor network expedition. In Proceedings of the 1st European Workshop on Sensor Networks. Springer, Berlin, Germany.Google ScholarGoogle Scholar
  35. Tarjan, D., Thoziyoor, S., and Jouppi, N. P. 2006. CACTI 4.0. Tech. rep., HP Laboratories.Google ScholarGoogle Scholar
  36. Tolle, G., Polastre, J., Szewczyk, R., Culler, D., Turner, N., Tu, K., Burgess, S., Dawson, T., Buonadonna, P., et al. 2005. A macroscope in the redwoods. In Proceedings of the International Conference on Embedded Networked Sensor Systems. ACM, New York, 51--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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. Dev. 45, 2, 271--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Tuduce, I. C. and Gross, T. 2005. Adaptive main memory compression. In Proceedings of the USENIX Conference. 237--250. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. van Engelen, R. A. and Gallivan, K. A. 2001. An efficient algorithm for pointer-to-array access conversion for compiling and optimizing DSP applications. In Proceedings of the Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA'01). IEEE, Los Alamitos, CA, 80. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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
  41. Yang, L., Dick, R. P., Lekatsas, H., and Chakradhar, S. 2005. CRAMES: Compressed RAM for embedded systems. In Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis. IEEE, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Yang, L., Lekatsas, H., and Dick, R. P. 2006. High-performance operating system controlled memory compression. In Proceedings of the Design Automation Conference. ACM, New York, 701--704. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. MEMMU: Memory expansion for MMU-less embedded systems

            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

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!