图-1 SDC模型调度图
图-2 SDC架构流程图
关键点说明:
负环:在差分约束系统中,负环表示约束矛盾,当前 II 不可行。
回溯:通过修改少量调度选择(如操作绑定)尝试解决矛盾,避免直接增加 II。
迭代:若回溯无效,则增大 II,直到找到可行解。
这个框架的成功推广到了更具挑战性的循环流水线调度问题上。
它精准地指出了传统软件流水线算法在硬件综合中的局限性,并基于SDC框架给出了系统性的解决方案。
论文的核心动机源于一个根本性的差异:软件流水线算法通常只关注最小化启动间隔(II),而硬件综合需要考虑更多维度的、复杂的性能约束--1。因此,该论文的核心思想是:
将基于SDC的调度框架拓展到循环流水线,通过SDC这一数学框架,对硬件设计中各种复杂的性能约束进行统一建模,从而高效地生成高性能的流水线硬件。
亮点:
1.将模调度中的核心约束(包括数据依赖、资源限制等)用差分约束的形式表达出来,构成一个SDC系统
2.设计的回溯机制(Backtracking Mechanism)。该机制能在处理复杂约束时,有效探索不同的调度可能性,并以迭代的方式寻找最小可能的启动间隔(II)
模型考虑的内容:
资源约束:硬件资源(如加法器、乘法器)是有限的,不能无限制地并行。
时序约束:电路必须在特定的时钟频率下工作,关键路径的延迟必须小于时钟周期。
循环携带的依赖(Recurrence) :循环的本次迭代可能依赖于前一次迭代的结果,这会在迭代间形成“回路”,严重限制流水线的启动间隔。
它通过差分约束系统(System of Difference Constraints, SDC) 这一数学框架,将以上所有硬件特有的复杂约束统一建模,从而在保证高性能(即最小的启动间隔II)的同时,生成切实可行的硬件流水线