Performance-steered design of software architectures for embedded multicore systems

  • Authors:
  • Alessio Bechini;Cosimo Antonio Prete

  • Affiliations:
  • Università di Pisa, Dipartimento di Ingegneria dell'Informazione, via Diotisalvi, 2, I-56100 Pisa, Italy;Università di Pisa, Dipartimento di Ingegneria dell'Informazione, via Diotisalvi, 2, I-56100 Pisa, Italy

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many software applications demanding a considerable computing power are moving towards the field of embedded systems (and, in particular, hand-held devices). A possible way to increase the computing power of this kind of platform, so that both cost and power consumption are kept low, is the employment of multiple CPU cores on the same chipset. Consequently, it is essential to design applications that meet performance requirements leveraging the underlying parallel platform. As embedded applications are usually built using different components (whose source code is often not available) from different companies, the designer can mostly only operate at the architectural level. So far, methodologies for designing software architectures have mainly addressed general-purpose systems, often relying on hardware platforms with a high degree of parallelism. In this paper, we present our experience in architectural design of parallel embedded applications; as a result, we propose a possible methodology for the application design at the architectural level, targeted to embedded systems built upon multicore chipsets with a low degree of parallelism. It makes use of performance predictions, obtained by simulations. Such a methodology can be employed both for retargeting existing sequential applications to parallel processing platforms and for designing complete applications from scratch. We show the application of the proposed methodology to an embedded digital cartographic system. Starting with a software description using UML diagrams, candidate software architectures (utilizing different parallel solutions) are first defined and then evaluated, to end with the selection of the one yielding the highest performance gain.