Skip to main content

Memory-Aware Optimization of Embedded Software for Multiple Objectives

  • Reference work entry
  • First Online:
Handbook of Hardware/Software Codesign

Abstract

Information processing in Cyber-Physical Systems (CPSs) has to respect a variety of constraints and objectives such as response and execution time, energy consumption , Quality of Service (QoS), size, and cost. Due to the large impact of the size of memories on their energy consumption and access times, an exploitation of memory characteristics offers a large potential for optimizations. In this chapter, we will describe optimization approaches proposed by our research groups. We will start with optimizations for single objectives, such as energy consumption and execution time. As a consequence of considering hard real-time systems , special attention is on the minimization of the Worst-Case Execution Time (WCET) within compilers . Three WCET reduction techniques are analyzed: exploitation of scratchpads, instruction cache locking, and cache partitioning for multitask systems. The last section presents an approach for considering trade-offs between multiple objectives in the design of a cyber-physical sensor system for the detection of bio-viruses.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 699.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 949.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Abbreviations

CFG:

Control-Flow Graph

CPS:

Cyber-Physical System

CPU:

Central Processing Unit

CRPD:

Cache-Related Preemption Delay

DRAM:

Dynamic Random-Access Memory

FIFO:

First-In First-Out

GA:

Genetic Algorithm

GPU:

Graphics Processing Unit

ILP:

Integer Linear Program

LRU:

Least-Recently Used

MMU:

Memory Management Unit

PAMONO:

Plasmon-Assisted Microscopy of Nano-Objects

QoS:

Quality of Service

SPM:

Scratchpad Memory

SRAM:

Static Random-Access Memory

SVM:

Support Vector Machine

WCC:

WCET-aware C Compiler

WCEC:

Worst-Case Energy Consumption

WCEP:

Worst-Case Execution Path

WCET:

Worst-Case Execution Time

References

  1. AbsInt Angewandte Informatik GmbH (2016) aiT: Worst-Case Execution Time Analyzers. http://www.absint.com/ait

  2. AbsInt Angewandte Informatik GmbH (2016) Stack overflow is a thing of the past. https://www.absint.com/stackanalyzer/index.htm

  3. Amdahl GM (1967) Validity of the single processor approach to achieving large scale computing capabilities. AFIPS spring joint computer conference

    Book  Google Scholar 

  4. Bai K, Shrivastava A (2010) Heap data management for limited local memory (LLM) multi-core processors. In: Proceedings of the international conference on hardware/software codesign and system synthesis (CODES+ISSS), pp 317–325

    Google Scholar 

  5. Banakar R, Steinke S, Lee BS, Balakrishnan M, Marwedel P (2002) Scratchpad memory: a design alternative for cache on-chip memory in embedded systems. In: Proceedings of the international symposium on hardware-software codesign (CODES), Estes Park (Colorado)

    Google Scholar 

  6. Borkar S (2005) Designing reliable systems from unreliable components: the challenges of transistor variability and degradation. IEEE Micro 25(6):10–16

    Article  Google Scholar 

  7. Burks A, Goldstine H, von Neumann J (1946) Preliminary discussion of the logical design of an electronic computing element. Report to U.S. Army Ordnance Department, reprinted at https://www.cs.princeton.edu/courses/archive/fall10/cos375/Burks.pdf

  8. Chang DW, Lin IC, Chien YS, Lin CL, Su AWY, Young CP (2014) CASA: contention-aware scratchpad memory allocation for online hybrid on-chip memory management. IEEE Trans Comput-Aided Des Integr Circuits Syst 33(12):1806–1817. doi:10.1109/TCAD.2014.2363385

    Article  Google Scholar 

  9. Cho H, Egger B, Lee J, Shin H (2007) Dynamic data scratchpad memory management for a memory subsystem with an MMU. In: Proceedings of the conference on languages, compilers, and tools for embedded systems (LCTES). ACM, New York, pp 195–206. doi:10.1145/1254766.1254804

    Google Scholar 

  10. Cordes D, Engel M, Neugebauer O, Marwedel P (2013) Automatic extraction of pipeline parallelism for embedded heterogeneous multi-core platforms. In: Proceedings of the international conference on compilers, architectures, and synthesis for embedded systems (CASES), Montreal

    Google Scholar 

  11. Ding H, Liang Y, Mitra T (2012) WCET-centric partial instruction cache locking. In: Proceedings of the design automation conference (DAC), San Francisco

    Google Scholar 

  12. Dominguez A, Udayakumaran S, Barua R (2005) Heap data allocation to scratch-pad memory in embedded systems. J Embed Comput 1(4):521–540

    Google Scholar 

  13. Drepper U (2007) What every programmer should know about memory. http://www.akkadia.org/drepper/cpumemory.pdf

  14. Falk H, Kleinsorge JC (2009) Optimal static WCET-aware scratchpad allocation of program code. In: Proceedings of the design automation conference (DAC), San Francisco, pp 732–737

    Google Scholar 

  15. Falk H, Lokuciejewski P (2010) A compiler framework for the reduction of worst-case execution times. Int J Time Crit Comput Syst (Real Time Syst) 46(2):251–300

    MATH  Google Scholar 

  16. Falk H, Verma M (2004) Combined data partitioning and loop nest splitting for energy consumption minimization. In: Proceedings of the international workshop on software and compilers for embedded systems (SCOPES), Amsterdam, pp 137–151

    Google Scholar 

  17. Hardkernel Co., Ltd., Odroid-XU3. http://www.hardkernel.com/main/products/prdt_info.php?g_code=G140448267127 (2015)

  18. Hofmann M, Jost S (2003) Static prediction of heap space usage for first-order functional programs. In: Proceedings of the symposium on principles of programming languages (POPL). ACM, New York, pp 185–197. doi:10.1145/604131.604148

    Google Scholar 

  19. HP Labs, CACTI – an integrated cache and memory access time, cycle time, area, leakage, and dynamic power model. http://www.hpl.hp.com/research/cacti/ (2015)

  20. Jovanovic O, Kneuper N, Marwedel P, Engel M (2012) ILP-based memory-aware mapping optimization for MPSoCs. In: Proceedings of the conference on embedded and ubiquitous computing (EUC), Paphos, Cyprus

    Google Scholar 

  21. Kang S, Dean AG (2012) Leveraging both data cache and scratchpad memory through synergetic data allocation. In: Proceedings of the real time and embedded technology and applications symposium (RTAS). IEEE Computer Society, Washington, DC, pp 119–128. doi:10.1109/RTAS.2012.22

    Google Scholar 

  22. Kannan A, Shrivastava A, Pabalkar A, Lee JE (2009) A software solution for dynamic stack management on scratch pad memory. In: Proceedings of the Asia and South Pacific design automation conference (ASPDAC), pp 612–617

    Google Scholar 

  23. Kotthaus H, Korb I, Marwedel P (2015) Performance analysis for parallel R programs: towards efficient resource utilization. Technical Report 1/2015, TU Dortmund, CS Department

    Google Scholar 

  24. Li L, Wu H, Feng H, Xue J (2007) Towards data tiling for whole programs in scratchpad memory allocation. In: Proceedings of the Asia-Pacific conference on advances in computer systems architecture (ACSAC). Springer, Berlin/Heidelberg, pp 63–74. doi:10.1007/978-3-540-74309-5_8

    Chapter  Google Scholar 

  25. Liu Y, Zhang W (2015) Scratchpad memory architectures and allocation algorithms for hard real-time multicore processors. J Comput Sci Eng 9:51–72

    Article  Google Scholar 

  26. Lokuciejewski P, Cordes D, Falk H, Marwedel P (2009) A fast and precise static loop analysis based on abstract interpretation, program slicing and polytope models. In: Proceedings of the international symposium on code generation and optimization (CGO), Seattle, pp 136–146

    Google Scholar 

  27. Luican II, Zhu H, Balasa F (2006) Formal model of data reuse analysis for hierarchical memory organizations. In: Proceedings of the international conference on computer-aided design (ICCAD). ACM, New York, pp 595–600. doi:10.1145/1233501.1233623

    Google Scholar 

  28. Luke S, Panait L, Balan G, Paus S, Skolicki Z, Popovici E, Sullivan K, Harrison J, Bassett J, Hubley R (2015) ECJ: a java-based evolutionary computation research system. http://cs.gmu.edu/~eclab/projects/ecj/

  29. Marwedel P (2010) Embedded system design – embedded systems foundations of cyber-physical systems. Springer, New York

    MATH  Google Scholar 

  30. McIlroy R, Dickman P, Sventek J (2008) Efficient dynamic heap allocation of scratch-pad memory. In: Proceedings of the international symposium on memory management, pp 31–40

    Google Scholar 

  31. National Science Foundation (2013) Cyber-physical systems (CPS). http://www.nsf.gov/pubs/2013/nsf13502/nsf13502.htm

  32. Neugebauer O, Libuschewski P (2015) Odroid energy measurement software. http://sfb876.tu-dortmund.de/auto?self=Software

  33. Neugebauer O, Libuschewski P, Engel M, Mueller H, Marwedel P (2015) Plasmon-based virus detection on heterogeneous embedded systems. In: Proceedings of the international workshop on software and compilers for embedded systems (SCOPES)

    Google Scholar 

  34. Plazar S, Falk H, Kleinsorge JC, Marwedel P (2012) WCET-aware static locking of instruction caches. In: Proceedings of the international symposium on code generation and optimization (CGO), San Jose, pp 44–52

    Google Scholar 

  35. Plazar S, Lokuciejewski P, Marwedel P (2009) WCET-aware software based cache partitioning for multi-task real-time systems. In: Proceedings of the international workshop on worst-case execution time analysis (WCET), Dublin, pp 78–88

    Google Scholar 

  36. Pyka R, Fassbach C, Verma M, Falk H, Marwedel P (2007) Operating system integrated energy aware scratchpad allocation strategies for multi-process applications. In: Proceedings of the international workshop on software and compilers for embedded systems (SCOPES)

    Google Scholar 

  37. Schmoll F, Heinig A, Marwedel P, Engel M (2013) Improving the fault resilience of an H.264 decoder using static analysis methods. ACM Trans Embed Comput Syst (TECS) 13(1s):31: 1–31:27. doi:10.1145/2536747.2536753

  38. Steinke S, Wehmeyer L, Lee BS, Marwedel P (2002) Assigning program and data objects to scratchpad for energy reduction. In: Proceedings of design, automation and test in Europe (DATE)

    Google Scholar 

  39. Suhendra V, Mitra T, Roychoudhury A, et al. (2005) WCET centric data allocation to scratchpad memory. In: Proceedings of the real-time systems symposium (RTSS), Miami, pp 223–232

    Google Scholar 

  40. Thiele L, Bacivarov I, Haid W, Huang K (2007) Mapping applications to tiled multiprocessor embedded systems. In: International conference on application of concurrency to system design, pp 29–40. doi:10.1109/ACSD.2007.53

    Google Scholar 

  41. Udayakumararan S, Dominguez A, Barua R (2006) Dynamic allocation for scratch-pad memory using compile-time decisions. ACM Trans Embed Comput Syst (TECS) 5:472–511

    Article  Google Scholar 

  42. Vera X, Lisper B, Xue J (2003) Data cache locking for higher program predictability. ACM SIGMETRICS Perform Eval Rev 31(1):272–282

    Article  Google Scholar 

  43. Vera X, Lisper B, Xue J (2007) Data cache locking for tight timing calculations. ACM Trans Embed Comput Syst (TECS) 7(1):1–38

    Article  Google Scholar 

  44. Verma M, Marwedel P (2006) Overlay techniques for scratchpad memories in low power embedded processors. IEEE Trans Very Large Scale Integr Syst 14(8):802–815

    Article  Google Scholar 

  45. Wang P, Sun G, Wang T, Xie Y, Cong J (2013) Designing scratchpad memory architecture with emerging STT-RAM memory technologies. In: Proceedings of the international symposium on circuits and systems (ISCAS), pp 1244–1247. doi:10.1109/ISCAS.2013.6572078

  46. Wang Z, Gu Z, Yao M, Shao Z (2015) Endurance-aware allocation of data variables on NVM-based scratchpad memory in real-time embedded systems. IEEE Trans Comput-Aided Des Integr Circuits Syst 34(10):1600–1612. doi:10.1109/TCAD.2015.2422846

    Article  Google Scholar 

  47. WCET-aware Compilation (2016) http://www.tuhh.de/es/esd/research/wcc

  48. Zhang W, Ding Y (2013) Hybrid SPM-cache architectures to achieve high time predictability and performance. In: Proceedings of the conference on application-specific systems, architectures and processors (ASAP), pp 297–304. doi:10.1109/ASAP.2013.6567593

Download references

Acknowledgements

Part of the work on this section has been supported by Deutsche Forschungsgemeinschaft (DFG) within the Collaborative Research Center SFB 876 “Providing Information by Resource-Constrained Analysis,” project B2. URL: http://sfb876.tu-dortmund.de

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peter Marwedel .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer Science+Business Media Dordrecht

About this entry

Cite this entry

Marwedel, P., Falk, H., Neugebauer, O. (2017). Memory-Aware Optimization of Embedded Software for Multiple Objectives. In: Ha, S., Teich, J. (eds) Handbook of Hardware/Software Codesign. Springer, Dordrecht. https://doi.org/10.1007/978-94-017-7267-9_27

Download citation

Publish with us

Policies and ethics