Software metadata: Systematic characterization of the memory behaviour of dynamic applications

  • Authors:
  • Alexandros Bartzas;Miguel Peon-Quiros;Christophe Poucet;Christos Baloukas;Stylianos Mamagkakis;Francky Catthoor;Dimitrios Soudris;Jose M. Mendias

  • Affiliations:
  • ECE Department, Democritus Univ. of Thrace, 67100 Xanthi, Greece;DACYA/UCM, 28040 Madrid, Spain;IMEC vzw, Kapeldreef 75, 3001 Heverlee, Belgium and ESAT, K.U. Leuven, 3001 Heverlee, Belgium;ECE Department, Democritus Univ. of Thrace, 67100 Xanthi, Greece;IMEC vzw, Kapeldreef 75, 3001 Heverlee, Belgium;IMEC vzw, Kapeldreef 75, 3001 Heverlee, Belgium and ESAT, K.U. Leuven, 3001 Heverlee, Belgium;ECE School, National Technical Univ. of Athens, 15780 Zografou, Greece;DACYA/UCM, 28040 Madrid, Spain

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Development of new embedded systems requires tuning of the software applications to specific hardware blocks and platforms as well as to the relevant input data instances. The behaviour of these applications heavily relies on the nature of the input data samples, thus making them strongly data-dependent. For this reason, it is necessary to extensively profile them with representative samples of the actual input data. An important aspect of this profiling is done at the dynamic data type level, which actually steers the designers choice of implementation of these data types. The behaviour of the applications is then characterized, through an analysis phase, as a collection of software metadata that can be used to optimize the system as a whole. In this paper we propose to represent the behaviour of data-dependent applications to enable optimizations, rather than to analyze their structure or to define the engineering process behind them. Moreover, we specifically limit ourselves to the scope of applications dominated by dynamically allocated data types running on embedded systems. We characterize the software metadata that these optimizations require, and we present a methodology, as well as appropriate techniques, to obtain this information from the original application. The optimizations performed on a complete case study, utilizing the extracted software metadata, achieve overall improvements of up to 42% in the number of cycles spent accessing memory when compared to code optimized only with the static techniques applied by GNU G++.