分配算法可以分为3类:
· 启发式分配算法;
· 线性规划方法(Linear Programming , LP);
· 图论算法。
启发式算法的基本思想是:每次选取一个待分配的元素(操作、变量或数据传输通道),把它赋给相应的硬件单元,在选取的过程中运用启发式策略。常用的启发式策略有:模拟退火方法、贪婪算法、全局费用函数(选取最有利于节省硬件资源的元素进行分配)等。启发式方法速度快,可以获得较合理的结果,而且能够进行功能单元、寄存器和互连线路的同时分配。
线性规划方法是将分配问题(或调度与分配问题一起)形式化为线性规划问题进行求解,包括0-1线性规划、混合整数线性规划(mixed integer
linear programming)和整数规划(integer programming)等。
图论算法是运用图论中的团划分算法(clique partitioning)、图着色算法(node coloring)和二部图匹配算法等来求解分配问题。
|