Evaluating Performance and Power of Object-Oriented Vs. Procedural Programming in Embedded Processors

The development of high-performance and low power portable devices relies on both the underlying hardware architecture and technology as well as on the application software that executes on emnbedded processor cores. It has been extensively pointed out that the increasing complexity and decreasing time-to-market of embedded software can only be confronted to use objected oriented programming languages such as C++. However, the object-oriented approach is known to introduce a significant performance penalty compared to classical procedural programming. In this paper, the object oriented programming style is evaluated in terms of both performance and power for embedded applications. A set of benchmark kernels is compiled and executed on an embedded processor simulator while the results are fed to instruction level and memory power models to estimate the power consumption of each system component for both programming styles.

[1]  Francky Catthoor,et al.  Custom Memory Management Methodology: Exploration of Memory Organisation for Embedded Multimedia System Design , 1998 .

[2]  Mark W. Davis,et al.  Measurement and Analysis of C and C++ Performance , 1998, Digit. Tech. J..

[3]  Ian Sommerville,et al.  Software engineering (5th ed.) , 1995 .

[4]  Johan Cockx Whole program compilation for embedded software: the ADSL experiment , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[5]  Sharad Malik,et al.  Instruction level power analysis and optimization of software , 1996, Proceedings of 9th International Conference on VLSI Design.

[6]  Arch D. Robison,et al.  C++ gets faster for scientific computing , 1996 .

[7]  Olivier Zendra,et al.  Type Inference for Late Binding: The SmallEiffel Compiler , 1997, JMLC.

[8]  Paul H. Lewis,et al.  Comparing programming paradigms: an evaluation of functional and object-oriented programs , 1996, Softw. Eng. J..

[9]  Sharad Malik,et al.  Power analysis of embedded software: a first step towards software power minimization , 1994, IEEE Trans. Very Large Scale Integr. Syst..

[10]  Michael J. Pont Embedded C , 2002 .

[11]  Olivier Zendra,et al.  Efficient dynamic dispatch without virtual function tables: the SmallEiffel compiler , 1997, OOPSLA '97.

[12]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, Proceedings. 1999 International Symposium on Low Power Electronics and Design (Cat. No.99TH8477).

[13]  Anantha P. Chandrakasan,et al.  Low Power Digital CMOS Design , 1995 .

[14]  Francky Catthoor,et al.  Custom Memory Management Methodology , 1998, Springer US.

[15]  Steve Furber ARM System-on-Chip Architecture , 2000 .

[16]  Scott W. Haney,et al.  Is C++ fast enough for scientific computing? , 1994 .

[17]  Dirk Grunwald,et al.  Quantifying Behavioral Differences Between C and C++ Programs , 1994 .