系统结构考点之流水线延迟禁止表

基本是空白的

如题:2020年10月

分析

还是从基础的点开始

基础知识

什么是预约表?

类似于时空图。

如果任务在第n拍要用到第k段,就在相应的第n列第k行的交点处用

  • 打上对勾

什么是延迟禁止表?

根据预约表可以很容易得出一个任务使用各段所需间隔的拍数(延迟)。这些延迟构成的集合,就是一个延迟禁止表。

禁止的意思:要想不争用流水线的功能段,相邻两个任务进入流水线的拍数就不能为集合里的元素。

什么又是冲突向量??

用一个N-1位的位向量来表示后续新任务间隔各种不同的拍数送入流水线时,是否具发生功能段使用冲突,称此位向量为冲突向量C.

如何表示冲突向量

找出延迟禁止表里面最大的数,最大数是几,就写几个空的二进制位。
然后根据延迟禁止表里的数,从右到左依次填到空的二进制位里。如禁止表里有3,那就在从右到左的第3位处补1.

写到这里,基本上是可以回答第一问了:

各段分别的间隔时间如下:

S1:7-1=6 S2:5-2=3 S3:4-3=1 S4:7-4=3 S5=6-5=1;合并掉相同的项后是F={6,3,1}

初始冲突向量C=100101

第二问,什么是状态转移图?

初始冲突向量,1表示在节拍数时,会发生冲突状态。那在不会发生冲突的状态,就可以发生状态转移。剩下的问题就是如何用冲突向量表示新的状态?
1.把不发生冲突的状态先表示出来,其实就是将初始冲突向量中0位去掉,使之发生。如100101,第二位是0,那就将冲突向量右移2位。
2.再与初始冲突向量进行 或 运算,得到的就是新的状态,也就是在相隔0位的时间拍内可以调度一个新的任务。
3.得到新的状态,有0的话,继续1,2步的操作。直到都是循环起来为止。
第二问答案如下图所示:

第三问,什么是最小平均延迟??

指的是平均每隔多少拍可以调度一个任务。
如何求最小平均延迟呢?
根据上步得到的状态转移图,得出所有的循环状态(也就是调度方案),算出平均时间
(5) 5
(2,5) 3.5
(2,2,5) (2+2+5)/3= 3
(4,5) 4.5
(4) 4
所以最小的平均延迟就是3 Δ t \Delta t Δt,同时,最大吞吐率就是1/3 Δ t \Delta t Δt
最佳的调度方案就是(2,2,5)

扩展知识 如何根据状态转移图画流水线时空图

如题:按最佳调度方案,输入4个任务的时空图。

最佳调度方案(2,2,5)表示什么呢?

表示第1号从0开始后,第2号任务间隔2个 Δ t \Delta t Δt进入流水线,第3个任务也是间隔2个 Δ t \Delta t Δt,第4号任务间隔5个 Δ t \Delta t Δt进入流水线。相当于流水线计算最大吞吐率时,瓶颈子段最大延迟时间。

知道最佳调度方案后,如何画时空图呢?

1.根据预约表,S1段在第1拍与第7拍有任务,所以在时空图中的第1个 Δ t \Delta t Δt和第7个 Δ t \Delta t Δt分别画上格子。
2.根据预约表,同上,完成S2,S3,S4,S5段的任务格。并标出是任务1
3.根据任务1的时空图,分别出任务2,3,4的时空图。注意,间隔的时间是最佳调度方案来的,详见(2,2,5)表示什么?。画任务2时,S1段由于是间隔2个 Δ t \Delta t Δt,所以起点位置在2,终点确定时,就是由任务1的终点+2即可。依次进行。
最后第4个任务是自己加的,画不出来的,因为起点处与任务2起点重合了,还是有问题,但思想就是这么个思想。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值