Vincent Nollet

PhD Project: Centralized Run-Time Resource Management for Future MPSoC Platforms


1. Introduction

Future System-on-Chip (SoC) platforms will contain a mixture of heterogeneous processing elements  (PEs), also denoted as tiles. These programmable tiles will be interconnected by a configurable on-chip communications fabric or a Network-on-Chip (NoC). Dynamically (i.e. at run-time) managing the computation and communication resources of such a platform is a challenging task, especially when the platform contains special PE types such as fine-grain reconfigurable hardware (i.e. FPGA fabric).

In addition, there is also a challenge in defining/handling the interface between the run-time management layer and the application layer. In order to be efficient, there should be a close interaction (cooperation) between application and run-time management layer. In addition, by using design-time application exploration information and by adding application-specific run-time managment functionality into the application, run-time resource management should prove to be more efficient.

This PhD project actually contains two parts. The first part mainly considers management of the platform resources (i.e. computation and communication resources) when the available application information is very limited, while the second part focuses on the use of extensive design-time application exploration information to improve run-time decision making.

2. PART I: Run-Time Management of MPSoC Communication and Computation Resources

The first part of this PhD considers a heterogeneous multiprocessor platform that contains fine-grain reconfigurable hardware tiles interconnected by a best-effort Network-on-Chip.
The (centralized) run-time resource manager is responsible for allocating the right amount of communication and computation resources to accomodate the communicating tasks of an incoming application. This basically boils down to (1) allocating computation resources, while taking the specific properties of the FPGA fabric tiles into account, (2) managing communication resources in a best-effort NoC (by using an injection-rate control mechanism) and (3) handling the various run-time task migration issues in a Network-on-Chip environment.



    Publications PART I:

3. PART II: Pareto-Based Application-Aware Run-Time Resource Management

The second part of this PhD considers the effect of the availability of extensive design-time application exploration information on run-time management. This means that for every application there is a Pareto surface defined by multiple Pareto points that each represent a trade-off between application cost (e.g. energy consumption), application constraints (e.g. execution time) and platform resource usage (e.g. computation, communication and memory resources).
In this case, the main job of the run-time resource manager is to choose a Pareto (operating) point that minimizes the cost, while taking the (user) constraints and the status of the platform into account. After choosing the most appropriate Pareto point, the resource assignment algorithm still needs to determine which platform resources will need to be allocated.

The main issues in this part of the PhD is determining the influence of the amount of Pareto axis, the amount of Pareto points and the shape of the curve on the Pareto point selection algorithm. To this end, it is important to be able to generate realistic Pareto surfaces of an application in a fast way. In addition, one has to investigate the interaction between Pareto point selection algorithm and the resource assignment algorithm. Finally, one also needs to determine the relevant run-time/design-time parameters that influence Pareto point switching and to come up with a (generic) mechanism to perform run-time Pareto switching. Run-time Pareto point switching involves e.g. changing the parallelisation of the application at run-time (i.e. going from one Pareto point to another Pareto point).


 

    Publications PART II: