| Peer-Reviewed

Embedded Software Optimization for Computation - Intensive Applications

Received: 20 April 2020    Accepted: 9 May 2020    Published: 27 May 2020
Views:       Downloads:
Abstract

Optimization metrics for compiled code are not always measured in execution clock cycles on the target architecture. Modern cellular telephone or wireless devices, which may download executables over a wireless network connection or backhaul infrastructure, it is often advantageous for the compiler to reduce the size of the compiled code that must be downloaded to the wireless device. By reducing the size of the code, savings are achieved in terms of bandwidth required for each wireless point of download. These are metrics correlated to the dynamic run-time behaviour of not only the compiled code on the target processor, but also the underlying memory system, caches, DRAM, and buses, etc. Despite new generation of embedded systems are getting innovative and computationally powerful with upcoming embedded processors, the market demands more computational-intensive embedded software to be developed on embedded systems. It is very essential to implement efficient embedded software to meet the market demand of embedded systems. These embedded systems are special-purpose computing systems and built to perform very specific embedded applications. And, these embedded applications mainly use three key resources of embedded systems: (1) CPU (2) Run-time memory (3) Persistent memory i.e. NAND/NOR flash memory. This paper summarizes several effective embedded software optimization techniques to optimize CPU usage, Run-time memory, and Persistent memory.

Published in Journal of Electrical and Electronic Engineering (Volume 8, Issue 2)

This article belongs to the Special Issue Soft Computing Methods for Electrical and Electronics Engineering Applications

DOI 10.11648/j.jeee.20200802.11
Page(s) 42-46
Creative Commons

This is an Open Access article, distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution and reproduction in any medium or format, provided the original work is properly cited.

Copyright

Copyright © The Author(s), 2024. Published by Science Publishing Group

Keywords

System-on-Chip (SoC), CPU, Run-Time Memory, Persistent Memory, Optimization Techniques

References
[1] P. R. Panda, F. Catthoor, N. D. Dutt, K. Danckaert, E. Brockmeyer, C. Kulkarni, A. Vandercappelle, and P. G. Kjeldsberg, “Data and memory optimization techniques for embedded systems,” ACM Transactions on Design Automation of Electronic Systems (TODAES) April 2001.
[2] Christian Zinner, Wilfried Kubinger, “A DMA Double Buffering Method for Embedded Image Processing with Resource Optimized Slicing”, RTAS 2006.
[3] Bellas, N., Hajj, I. N., Polychronopoulos, C. D., and Stamoulis, G. 2000. Architectural and compiler techniques for energy reduction in high-performance microprocessors. IEEE Trans. Very Large Scale Integr. Syst. 8, 3 (June), 317–326.
[4] Danckaert, K., Catthoor, F., and Man, H. D. 2000. A preprocessing step for global loop transformations for data transfer and storage optimization. Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems, San Jose, USA.
[5] Fraboulet, A., Huard, G., and Mignotte, A. 1999. Loop alignment for memory access optimisation. In Proceedings of the 12th ACM/IEEE International Symposium on System- Level Synthesis (San Jose CA, Dec.). ACM Press, New York, NY, 70–71.
[6] Kirovski, D., Lee, C., Potkonjak, M., and Mangione-Smith, W. 1999. Application-driven synthesis of memory-intensive systems-on-chip. IEEE Trans. Computer-Aided Des. 18, 9 (Sept.), 1316–1326.
[7] Masselos, K., Catthoor, F., Goutis, C. E., and Man, H. D. 1999. A performance-oriented use methodology of power optimizing code transformations for multimedia applications realized on programmable multimedia processors. In Proceedings of the IEEE Workshop on Signal Processing Systems (Taipeh, Taiwan). IEEE Computer Society Press, Los Alamitos, CA, 261–270.
[8] Panda, P. R., Dutt, N. D., and Nicolau, A. 2000. On-chip vs. off-chip memory: The data partitioning problem in embedded processor-based systems. ACM Trans. Des. Autom. Electron. Syst. 5, 3 (July), 682–704.
[9] Shiue, W. and Chakrabarti, C. 1999. Memory exploration for low power, embedded systems. In Proceedings of the 36th ACM/IEEE Conference on Design Automation (New Orleans LA, June). ACM Press, New York, NY, 140–145.
[10] Shiue, W.-T., Tadas, S., and Chakrabarti, C. 2000. Low power multi-module, multi-port memory design for embedded systems. In Proceedings of the IEEE Workshop on Signal Processing Systems (Lafayette, LA, Oct.). IEEE Press, Piscataway, NJ, 529–538.
[11] Eric S. Raymon, “The Lost Art of Structure Packing,” http://www.catb.org/esr/structure-packing/.
[12] Kevin Kredit, “Write Vectorized Code and Optimize Your CPU Performance”, https:// dornerworks.com/ blog/ write- vectorized-code-and-optimize- your-cpu- performance/.
[13] Yemliha, Taylan, "Performance and Memory Space Optimizations for Embedded Systems" (2011). Electrical Engineering and Computer Science - Dissertations. 300. https://surface.syr.edu/eecs_etd/300
[14] Editor’s note. https://www.embedded.com/ achieving- better- software-performance-through-memory-oriented-code-optimization-part-1/
[15] Ph. D Thesis. Design and Optimization of Architectures for Data Intensive Computing, available at http://users.ece.northwestern.edu/~jay/PhD_Dissertation.pdf
[16] E. H. M. Sha, "Parallel embedded systems: optimizations and challenges," IEEE Int. Conf. on Emerging Information Technology, Taipei, 2005, pp. 4-9.
Cite This Article
  • APA Style

    Amitkumar Mistry, Rahul Kher. (2020). Embedded Software Optimization for Computation - Intensive Applications. Journal of Electrical and Electronic Engineering, 8(2), 42-46. https://doi.org/10.11648/j.jeee.20200802.11

    Copy | Download

    ACS Style

    Amitkumar Mistry; Rahul Kher. Embedded Software Optimization for Computation - Intensive Applications. J. Electr. Electron. Eng. 2020, 8(2), 42-46. doi: 10.11648/j.jeee.20200802.11

    Copy | Download

    AMA Style

    Amitkumar Mistry, Rahul Kher. Embedded Software Optimization for Computation - Intensive Applications. J Electr Electron Eng. 2020;8(2):42-46. doi: 10.11648/j.jeee.20200802.11

    Copy | Download

  • @article{10.11648/j.jeee.20200802.11,
      author = {Amitkumar Mistry and Rahul Kher},
      title = {Embedded Software Optimization for Computation - Intensive Applications},
      journal = {Journal of Electrical and Electronic Engineering},
      volume = {8},
      number = {2},
      pages = {42-46},
      doi = {10.11648/j.jeee.20200802.11},
      url = {https://doi.org/10.11648/j.jeee.20200802.11},
      eprint = {https://article.sciencepublishinggroup.com/pdf/10.11648.j.jeee.20200802.11},
      abstract = {Optimization metrics for compiled code are not always measured in execution clock cycles on the target architecture. Modern cellular telephone or wireless devices, which may download executables over a wireless network connection or backhaul infrastructure, it is often advantageous for the compiler to reduce the size of the compiled code that must be downloaded to the wireless device. By reducing the size of the code, savings are achieved in terms of bandwidth required for each wireless point of download. These are metrics correlated to the dynamic run-time behaviour of not only the compiled code on the target processor, but also the underlying memory system, caches, DRAM, and buses, etc. Despite new generation of embedded systems are getting innovative and computationally powerful with upcoming embedded processors, the market demands more computational-intensive embedded software to be developed on embedded systems. It is very essential to implement efficient embedded software to meet the market demand of embedded systems. These embedded systems are special-purpose computing systems and built to perform very specific embedded applications. And, these embedded applications mainly use three key resources of embedded systems: (1) CPU (2) Run-time memory (3) Persistent memory i.e. NAND/NOR flash memory. This paper summarizes several effective embedded software optimization techniques to optimize CPU usage, Run-time memory, and Persistent memory.},
     year = {2020}
    }
    

    Copy | Download

  • TY  - JOUR
    T1  - Embedded Software Optimization for Computation - Intensive Applications
    AU  - Amitkumar Mistry
    AU  - Rahul Kher
    Y1  - 2020/05/27
    PY  - 2020
    N1  - https://doi.org/10.11648/j.jeee.20200802.11
    DO  - 10.11648/j.jeee.20200802.11
    T2  - Journal of Electrical and Electronic Engineering
    JF  - Journal of Electrical and Electronic Engineering
    JO  - Journal of Electrical and Electronic Engineering
    SP  - 42
    EP  - 46
    PB  - Science Publishing Group
    SN  - 2329-1605
    UR  - https://doi.org/10.11648/j.jeee.20200802.11
    AB  - Optimization metrics for compiled code are not always measured in execution clock cycles on the target architecture. Modern cellular telephone or wireless devices, which may download executables over a wireless network connection or backhaul infrastructure, it is often advantageous for the compiler to reduce the size of the compiled code that must be downloaded to the wireless device. By reducing the size of the code, savings are achieved in terms of bandwidth required for each wireless point of download. These are metrics correlated to the dynamic run-time behaviour of not only the compiled code on the target processor, but also the underlying memory system, caches, DRAM, and buses, etc. Despite new generation of embedded systems are getting innovative and computationally powerful with upcoming embedded processors, the market demands more computational-intensive embedded software to be developed on embedded systems. It is very essential to implement efficient embedded software to meet the market demand of embedded systems. These embedded systems are special-purpose computing systems and built to perform very specific embedded applications. And, these embedded applications mainly use three key resources of embedded systems: (1) CPU (2) Run-time memory (3) Persistent memory i.e. NAND/NOR flash memory. This paper summarizes several effective embedded software optimization techniques to optimize CPU usage, Run-time memory, and Persistent memory.
    VL  - 8
    IS  - 2
    ER  - 

    Copy | Download

Author Information
  • Object Video Labs, McLean, USA

  • Department of Electronics & Communication Engg, G H Patel College of Engg & Tech, Vallabh Vidyanagar, India

  • Sections