Complex library mapping for embedded software using symbolic algebra

  • Authors:
  • Armita Peymandoust;Giovanni De Micheli;Tajana Simunic

  • Affiliations:
  • Computer Systems Laboratory Stanford University, Stanford, CA;Computer Systems Laboratory Stanford University, Stanford, CA;HP Labs & Stanford University, Palo Alto, CA

  • Venue:
  • Proceedings of the 39th annual Design Automation Conference
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded software designers often use libraries that have been pre-optimized for a given processor to achieve higher code quality. However, using such libraries in legacy code optimization is nontrivial and typically requires manual intervention. This paper presents a methodology that maps algorithmic constructs of the software specification to a library of complex software elements. This library-mapping step is automated by using symbolic algebra techniques. We illustrate the advantages of our methodology by optimizing an algorithmic level description of MPEG Layer III (MP3) audio decoder for the Badge4 [2] portable embedded system. During the optimization process we use commercially available libraries with complex elements ranging from simple mathematical functions such as exp to the IDCT routine. We implemented and measured the performance and energy consumption of the MP3 decoder software on Badge4 running embedded Linux operating system. The optimized MP3 audio decoder runs 300 times faster than the original code obtained from the standards body while consuming 400 times less energy. Since our optimized MP3 decoder runs 3.5 times faster than real-time, additional energy can be saved by using processor frequency and voltage scaling.