skip to main content
research-article

Rigorous rental memory management for embedded systems

Published: 21 March 2013 Publication History

Abstract

Memory reservation in embedded systems is a prevalent approach to provide a physically contiguous memory region to its integrated devices, such as a camera device and a video decoder. Inefficiency of the memory reservation becomes a more significant problem in emerging embedded systems, such as smartphones and smart TVs. Many ways of using these systems increase the idle time of their integrated devices, and eventually decrease the utilization of their reserved memory.
In this article, we propose a scheme to minimize the memory inefficiency caused by the memory reservation. The memory space reserved for a device can be rented for other purposes when the device is not active. For this scheme to be viable, latencies associated with reallocating the memory space should be minimal. Volatile pages are good candidates for such page reallocation since they can be reclaimed immediately as they are needed by the original device. We also provide two optimization techniques, lazy-migration and adaptive-activation. The former increases the lowered utilization of the rental memory by our volatile page allocations, and the latter saves active pages in the rental memory during the reallocation.
We implemented our scheme on a smartphone development board with the Android Linux kernel. Our prototype has shown that the time for the return operation is less than 0.77 seconds in the tested cases. We believe that this time is acceptable to end-users in terms of transparency since the time can be hidden in application initialization time. The rental memory also brings throughput increases ranging from 2% to 200% based on the available memory and the applications' memory intensiveness.

References

[1]
Abramson, D., Jackson, J., Muthrasanallur, S., Neiger, G., Regnier, G., Sankaran, R., Schoinas, I., Uhlig, R., Vembu, B., and J. W. 2006. Intel virtualization technology for directed I/O. Intel Technol. J. 10, 3.
[2]
AMD. 2011. IOMMU architectural specification. http://support.amd.com/us/Processor_TechDocs/48882. pdf.
[3]
Ben-Yehuda, M., Xenidis, J., Ostrowski, M., Rister, K., Bruemmer, A., and Van Doorn, L. 2007. The price of safety: Evaluating IOMMU performance. In Proceedings of OLS'07. 71--86.
[4]
Chen, Z., Zhang, Y., Zhou, Y., Scott, H., and Schiefer, B. 2005. Empirical evaluation of multi-level buffer cache collaboration for storage systems. In Proceedings of SIGMETRICS'05. 145--156.
[5]
Chiodo, M., Giusto, P., Jurecska, A., Hsieh, H., Sangiovanni-Vincentelli, A., and Lavagno, L. 1994. Hardware-software codesign of embedded systems. IEEE Micro 14, 4, 26--36.
[6]
Corbet, J. 2010. Contiguous memory allocation for drivers. http://lwn.net/Articles/396702/.
[7]
Corbet, J. 2011. A reworked contiguous memory allocator. http://lwn.net/Articles/446836/.
[8]
Ding, X., Wang, K., and Zhang, X. 2011. SRM-buffer: an os buffer management technique to prevent last level cache from thrashing in multicores. In Proceedings of EuroSys'11. 243--256.
[9]
Dong, Y., Yu, Z., and Rose, G. 2008. SR-IOV networking in Xen: architecture, design and implementation. In Proceedings of WIOV'08. USENIX Association, Berkeley, CA, 10--10.
[10]
Falaki, H., Mahajan, R., Kandula, S., Lymberopoulos, D., Govindan, R., and Estrin, D. 2010. Diversity in smartphone usage. In Proceedings of MobiSys'10. 179--194.
[11]
Guthaus, M., Ringenberg, J., Ernst, D., Austin, T., Mudge, T., and Brown, R. 2001. Mibench: A free, commercially representative embedded benchmark suite. In Proceedings of WWC'01. 3--14.
[12]
Hansen, D., Kravetz, M., and Christiansen, B. 2004. Hotplug memory and the Linux VM. In Proceedings of OLS'04.
[13]
Hu, Y., Simpson, A., McAdoo, K., and Cush, J. 2004. A high definition H.264/AVC hardware video decoder core for multimedia soc's. In Proceedings of ISCE'04. 385--389.
[14]
Intel. 2005. Intel dynamic video memory technology (DVMT) 3.0. http://download.intel.com/design/chipsets/applnots/30262305.pdf.
[15]
Kopytov, A. 2004. Sysbench: A system performance benchmark. http://sysbench.sourceforge.net/.
[16]
Koukoumidis, E., Lymberopoulos, D., Strauss, K., Liu, J., and Burger, D. 2011. Pocket cloudlets. In Proceedings of ASPLOS'11. 171--184.
[17]
Lee, M., Seo, E., Lee, J., and soo Kim, J. 2007. PABC: Power-aware buffer cache management for low power consumption. IEEE Trans. Comput. 56, 488--501.
[18]
Love, R. 2010. Linux Kernel Development 3rd Ed. Addison Wesley.
[19]
Morrill, D. 2008. Inside the Android application framework. Google I/O.
[20]
Nazarewicz, M. 2010. Contiguous memory allocator version 6. http://lwn.net/Articles/419639/.
[21]
Schopp, J. H., Hansen, D., Kravetz, M., Takahashi, H., Toshihiro, I., Goto, Y., Hiroyuki, K., Tolentino, M., and Picco, B. 2005. Hotplug memory redux. In Proceedings of OLS'05.
[22]
Tseng, P., Chang, Y., Huang, Y., Fang, H., Huang, C., and Chen, L. 2005. Advances in hardware architectures for image and video coding - a survey. Proc. IEEE 93, 1, 184--197.
[23]
Willmann, P., Rixner, S., and Cox, A. L. 2008. Protection strategies for direct access to virtualized I/O devices. In Proceedings of USENIX ATC'08. 15--28.
[24]
Yassour, B.-A., Ben-Yehuda, M., and Wasserman, O. 2010. On the DMA mapping problem in direct device assignment. In Proceedings of SYSTOR'10. 18:1--18:12.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 12, Issue 1s
Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
March 2013
701 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/2435227
Issue’s Table of Contents
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

Journal Family

Publication History

Published: 21 March 2013
Accepted: 01 March 2012
Revised: 01 January 2012
Received: 01 June 2011
Published in TECS Volume 12, Issue 1s

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Memory management
  2. memory hotplugging
  3. memory reservation

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)2
Reflects downloads up to 25 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media