名词解释:
非线性流水示意图:
名词解释:
流水线调度:
栗子:
如图所示:
首先明确几个概念:
预约表:单任务各个段在每个节拍下的占用
延迟禁止表:在单任务下,同一段,后面每次占用距离第一次占用的间隔节拍
初始冲突向量:根据延迟禁止表推出
解:(1)1号段,同一任务下,节拍1和节拍7时被占用 ,会有冲突,7-1 = 6
2号段,同一任务下,节拍2和节拍6时会被占用,会有冲突 ,6-2 = 4
3号段,同一任务下,节拍3和节拍4时会被占用,会有冲突,4-3=1
4号段,同一任务下,节拍5和节拍6会被占用,会有冲突,6-5=1
所以延迟禁止表为(去重) F {1,4,6}
初始冲突向量C = 101001 (比如延迟禁止表中最大元素为6,2进制数长度6位,从 第0位开始,第0位对应禁止表中1,有冲突,故值为1,第4位对应禁止表中4,有冲 突,故为1,同理,第6位也为1,其他位因为无对应禁止表元素,无冲突,故为0)
流水线状态转移图:
先做以下结果求解:
初始冲突向量 c = 101001,所以后续可用时间间隔为2,3,5,看c的第几位不是1就说明没有冲突,就取那一位的位号,此处取位号从1开始数。
2: 001010 或运算 101001 = 101011 = C2 (001010由101001右移2位,左边高位补零得到,最前面的2代表时间间隔2)
3: 000101 或运算 101001 = 101101 = C3 (解释同上)
5: 000001 或运算 101001 = 101001 = C
再求 C2(因为,一轮求过后,求出来三个衍变,在这三个衍变的任一个接着执行的流 转衍变也需要求一次):
C2 = 101011 ,所以后续可用时间间隔为3和5
3: 000101 或 101001 = 101101 = C3(注意:或运算的前一个是c2右移3位,左高位 补0,后一个个是初始冲突向量,不变)
5: 000001 或 101001 = 101001 = C
C3 = 101101 ,所以后续可用时间间隔为2,5
2: 001011 或 101001 = 101011 = C2
5: 000001 或 101001 = 101001 = C
所以,流水线状态转移图为:
所以最短循环路径
(2,3) 最大吞吐率 = 任务/拍 = 1/2.5 (单位时间完成任务数,比如平均2.5拍完成一个任务,那每拍就完成1/2.5个任务,这就是它的最大吞吐率)
想更具体了解的推荐一篇文档: www.doc88.com/p-949563948…
这篇文档也可参考:www.doc88.com/p-116640100…