计算机系统结构-流水线

2,459 阅读4分钟

  名词解释:

非线性流水示意图:      

名词解释:


流水线调度:


栗子:


如图所示:

        首先明确几个概念:

                 预约表:单任务各个段在每个节拍下的占用

                  延迟禁止表:在单任务下,同一段,后面每次占用距离第一次占用的间隔节拍

                  初始冲突向量:根据延迟禁止表推出

         解:(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…