Communication-aware stochastic allocation and scheduling framework for conditional task graphs in multi-processor systems-on-chip

  • Authors:
  • Emiliano Dolif;Michele Lombardi;Martino Ruggiero;Michela Milano;Luca Benini

  • Affiliations:
  • University of Bologna, Bologna, Italy;University of Bologna, Bologna, Italy;University of Bologna, Bologna, Italy;University of Bologna, Bologna, Italy;University of Bologna, Bologna, Italy

  • Venue:
  • EMSOFT '07 Proceedings of the 7th ACM & IEEE international conference on Embedded software
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The increasing levels of system integration in Multi-Processor System-on-Chips (MPSoCs) emphasize the need for new design flows for efficient mapping of multi-task applications onto hardware platforms. Even though data-flow graphs are often used for pure data-streaming, many realistic applications can only be specified as conditional task graphs (CTG). The problem of allocating and scheduling conditional task graphs on processors in a distributed real-time system is NP-hard. The first contribution of this paper is a complete stochastic allocation and scheduling framework, where an MPSoC virtual platform is used to accurately derive input parameters, validate abstract models of system components and assess constraint satisfaction and objective function optimization. The optimizer implements an efficient and exact approach to allocation and scheduling based on problem decomposition. The original contributions of the approach appear both in the allocation and in the scheduling part of the optimizer. For the first, we propose an exact analytic formulation of the stochastic objective function based on the task graph analysis, while for the scheduling part we extend the timetable constraint for conditional activities. The second contribution of this paper is the introduction of a software library and API for the deployment of conditional task graph applications onto Multi-Processor System-on-Chips. With our library support, programmers can quickly develop multi-task applications which will run on a multi-core architecture and can easily apply the optimal solution found by our optimizer. The proposed programming support manages OS-level issues, such as task allocation and scheduling, as well as task-level issues, like inter-task communication and synchronization.