图5.26给出了一个控制数据流图及其调度结果。图中变量c没有跨越控制步的边界,不需要存放到寄存器中,而直接由加法器的输出端口传输到减法器的输入端口。变量e跨越控制步的边界,需要存放到寄存器(R2)中。
图5.26 对调度结果进行变量分配
 |
图5.27(a)是一个调度结果(非常简单的例子),因分配方案不同而产生了两个不同的实现方案,分别示于图5.27(b)和(c)。这个例子说明分配对最终实现方案的影响。图5.27(a)所示调度结果中有2个减法操作,由于不在同一控制步中执行,可以共享一个减法器(图5.27(b))。但是,这种实现方法需要在减法器的每个输入端各增加1个2选1多路器。图5.27(c)的实现方案中使用了2个减法器,无需增加多路器。
这两个方案的优劣评估主要由其相应的硬件成本决定。一般来说,约束条件下的分配问题是NP难题。
读者对图5.27的分配结果进行分析后可以发现:同样一个调度结果可以产生多个分配方案,其性能价格可能有很大差异,说明分配技术有很重要的作用。
图5.27 调度结果的两种数据通路实现

|
|