关于流水线的一道题

来源:百度知道 编辑:UC知道 时间:2024/06/05 22:58:45
如果有一条流水线由3个子任务组成,他们分别需要的时间为50ms,60ms和20ms现有200个任务需要流水执行,则需要时间为?
书上的答案是6070ms 会不会是书上的任务数标错了 应该是100个任务 详细的计算过程应该是怎么样的,请高人指点呀。。。

是书上写错了。
运算过程先算出第一条指令所需要的全部时间,再算出第二条指令的差额时间(因为有一个特定的时间段这两条流水线同时执行),然后将这个差额时间*(任务数-1)+执行周期(第一条流水线的执行时间)得出的就是总共的时间。
以下是你这题的计算过程:
50ms 60ms 20ms
第一条 50ms 60ms 20ms
第二第 60ms 40ms 20ms
其中40ms指的是第二条指令的第二步时间减第一条指令的第三步的时间,用这个时间再加上第二条指令的第三步所需时间就是第二条指令比第一条指令多出的差额时间(60ms)。
通过60*(200-1)+50+60+20
=60*199+130
=11940+130
=12070ms
从结果得知书上的任务数错了,如果用100条指令来计算
60*(100-1)+50+60+20
=60*99+130
=5940+130
=6070ms
答案正确。