Module 2:Scheduling, Allocation and Binding

Lecture 2 & 3 :Scheduling Algorithms

1.  Introduction 

In Lecture 1 of Module 2:Scheduling, Allocation and Binding, we discussed that High Level Synthesis (HLS) involves three sub-parts namely, scheduling, allocation and binding. In this lecture, we will discuss scheduling algorithms, which automatically assign control steps to operations subject to design constraints. As disused in Lecture 1 of this module, scheduling problem can be of four types namely, unconstrained, time constrained, resource constrained and time-resource constrained.

There are many algorithms proposed in the literature that solve these four types of scheduling problem. Now, these algorithms can be classified into two types as heuristics and exact. Exact algorithms like Integer Liner Programming for scheduling, provides optimal schedule but consumes high processing time. In practical cases, these exact algorithms for HLS take prohibitive amount of execution time. To cater to the execution time issue, several algorithms based on greedy strategies have been developed that make a series of local decisions, selecting at each point the single “best” operation-control step pairing without backtracking or look-ahead. So they may miss the globally optimal solution, however, they do produce results quickly, and those results are generally be sufficiently close to optimal to be acceptable in practice. Such algorithms are called heuristic algorithms (for HLS). Examples for heuristic algorithms for HLS comprise As Soon As Possible (ASAP), As Late As Possible (ALAP), List Scheduling (LS) and Force Directed Scheduling (FDS).

ASAP, ALSP and FDS are time constrained algorithms while LS is resource constrained scheduling. In this (double) lecture, we will discuss all these scheduling algorithms.

2.  As Soon As Possible Scheduling

As-Soon-As-Possible (ASAP) scheduling is one of the simplest scheduling algorithms used in HLS. In ASAP scheduling, first the maximum number of control steps that are allowed is determined. Following that, the algorithm schedules each operation, one at a time, into the earliest possible control step. In other words, ASAP algorithm schedules operations in the earliest possible control step, subject to satisfying the partial order, i.e., an operation is scheduled if and only if all its predecessors are scheduled in earlier control steps. If ASAP algorithm can schedule all the operations within the allowed number of control steps, scheduling is successful. It may be noted that ASAP algorithm does not consider any resource constraints.

Algorithm for ASAP scheduling is given in Algorithm 1.

Algorithm 1: As Soon As possible

Input: Operations O, Maximum number of control steps M .

Output: Control step for each operations, Status of scheduling .

Steps