PATS: a Performance Aware Task Scheduler for Runtime Reconfigurable Processors

Lars Bauer,  Artjom Grudnitsky,  Muhammad Shafique,  Jörg Henkel
Karlsruhe Institute of Technology


Abstract

Multi-tasking is one of the main requirements for complex embedded systems to fulfill user expectations (e.g. flexibility of the system), increase the resource utilization, and thus increase the system efficiency. In general, the flexibility and efficiency can be increased by incorporating a fine-grained reconfigurable fabric (e.g. an embedded FPGA) that is coupled with a general-purpose processor and accelerates the computationally intensive kernels. This work focuses on reconfigurable processors that use a reconfigurable fabric to implement Special Instructions (SIs) that are invoked by the processor and process data-dominant parts. For each SI the decision whether it is executed in hardware or emulated in software can be changed dynamically at runtime.

In this paper, we present our novel Performance Aware Task Scheduler (PATS) that decides the task schedule at runtime while considering the specific system state of the reconfigurable processor. For instance, if a task t has to emulate several SI executions in software because reconfiguring the corresponding hardware implementations is not completed yet, then it might be more efficient to schedule other tasks first, until the reconfigurations of that task t are completed (depending on the soft-deadlines of the tasks).

In comparison to other task schedulers (earliest deadline first, rate monotonic scheduling, and round robin), PATS achieves on average a 1.45 times better system tardiness (i.e., the sum of cycles by which tasks miss their deadlines). Additionally, PATS reduces the makespan (i.e. the time when all tasks have completed all of their jobs) on average by 1.17x (up to 1.58x). Especially in challenging multi-tasking scenarios with tight deadlines or a rather small reconfigurable fabric PATS performs significantly better than other task schedulers do.