图5.14 diffeq的控制数据流图

  图5.15 diffeq的ASAP调度结果
   
图5.16 diffeq的ALAP调度结果


 
 ASAP调度算法与ALAP调度算法是最简单、速度最快的调度算法,他们都属于无约束调度算法,调度过程中根本不考虑用户给定的任何约束条件。因此,ASAP调度与ALAP调度实际所需的控制步数目由控制数据流图唯一确定(对应于数据控制数据流图中关键路径的长度),所需的硬件资源也由控制数据流图唯一确定,调度的结果是唯一的。ASAP调度中,操作可能过分集中于较早的控制步中;ALAP调度中,操作可能过分集中于较迟的控制步中。其后果是:操作在各控制步中的分布可能极度不平衡,从而导致过量的资源需求。从调度的效果考虑,这两种调度算法都不是好的调度算法。
  但是,这两种调度算法却给出了控制步的下限和资源的上限。如果把这两种算法一起使用,还可以确定每一个操作可能调度到的最早控制步和最迟控制步,从而确定了每一个操作可能调度的区间。因此,ASAP和ALAP调度算法成为调度技术的基础。

  思考题:为什么ASAP和ALAP调度算法的效果并不好,却成为调度技术的基础?