Self-timed periodic scheduling of data-dependent tasks in embedded streaming applications
Abstract
Developers increasingly use streaming languages to write embedded many-core applications that process large volumes of data with high throughput. Because they enable periodic scheduling, cyclo-static models of computation and their variants are well fitted to modern real-time applications. Nevertheless, most existing works have proposed periodic scheduling that ignore latency or can even have a negative impact on it: the results are quite far from those obtained under Self-Timed scheduling (STS). In this paper, we introduce a new scheduling policy noted Self-Timed Periodic (STP), which is an execution model combining self-timed scheduling with periodic scheduling: STS improves the performance metrics of the programs, while the periodic model captures the timing aspects. We evaluate the performance of our scheduling policy for a set of 10 real-life streaming applications. We find that in most of the cases, our approach gives a significant improvement in latency compared to the Strictly Periodic Schedule (SPS), and competes well with STS. The experiments also show that, for more than 90% of the benchmarks, STP scheduling results in optimal throughput.