免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4464 | 回复: 6
打印 上一主题 下一主题

[算法] 【请教】指令流水线问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-13 13:20 |只看该作者 |倒序浏览
我看到一道关于指令流水线问题的求解过程,查了好多地方,都说答案是507, 而我怎么都觉得应该是508

第一条指令取指4
第一条指令分析3 + 第二条指令取指4, 实际使用应该是 4 吧
第一条指令执行5 + 第二条指令分析3 +第三条指令取指4, 实际使用为 5
之后进入流水线
取指第100条指令直至执行100条指令之间,因为是流水线,所以实际使用都是5
所以我觉得答案应该是
    4+4+5+5*99=508

大家怎么看??

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=4△t,分析时间t分析=3△t,执行时间t执行=5△t。如果按串行方式执行完100条指令需要 (4) △t。如果按照流水线方式执行,执行完100条指令需要 (5) △t。

(4)A. 1190            B. 1195             C. 1200          D. 1205

(5)A. 504             B. 507              C. 508           D. 510

[个人分析]:

主要考查流水线技术的理解,在《教程》的23页有相关的分析。在2006年的考卷中,第3题考查了相同的考点。

按照串行的方式,执行完一条指令才能执行下一条指令,那么执行完100条指令的时间为:(4+3+5)×100=1200

按照流水线的方式,可以同时执行多条指令。在第一条指令进行分析的时候,第二条指令已经开始取指;当第一条指令进行执行的时候,第二条指令进行分析,第三条指令取指;当第二条指令进行执行完的时候,第三条指令已经分析完成。依此类推,当第一条指令完成之后,每一个执行的周期就可以完成一条指令。因此,我们可以计算得100条指令的执行时间为:(4+3+5)+(100-1)×5=507

[参考答案]:C、B
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

论坛徽章:
0
2 [报告]
发表于 2010-04-13 13:44 |只看该作者
每条指令的执行周期是不变的,只是先后问题,如果是取最大值那五级流水岂不在效率上远远落后于三级流水线

论坛徽章:
0
3 [报告]
发表于 2010-04-13 14:01 |只看该作者
每条指令的执行周期是不变的,只是先后问题,如果是取最大值那五级流水岂不在效率上远远落后于三级流水线
注册好难哦 发表于 2010-04-13 13:44



    瞎说八道
不是这么算的吧

论坛徽章:
0
4 [报告]
发表于 2010-04-13 17:53 |只看该作者
对不起,忘了加问号,本来想提问的。我是菜鸟,我也有这样的疑问。
我的意思是流水线的操作周期是不变的,如上所说的三级流水,假如改为
4,4,5 和4,3,5的操作周期是不是一样吗?又改为3,4,5呢,就不存在上面的疑问。那五级流水的话如果不降低取址和执行的时间,岂不是效率就低了。

论坛徽章:
0
5 [报告]
发表于 2010-04-13 18:46 |只看该作者
看书去

论坛徽章:
0
6 [报告]
发表于 2010-04-13 18:47 |只看该作者
关键就是在
第一条指令分析3 + 第二条指令取指4, 实际使用应该是 4 吧
第一条指令执行5 + 第二条指令分析3 +第三条指令取指4, 实际使用为 5


自己根据时间轴和指令的执行期画个图出来就可以发现~
在第一条指令分析完之后~ 并不会等待第二条指令取值完毕再执行~ 而是马上进入执行~
因此在第二条指令取值时,第一条指令已经进入了执行期~ 第一条指令的应该是4 + 3 +5~ 也就是507

论坛徽章:
0
7 [报告]
发表于 2010-04-14 13:54 |只看该作者
关键就是在
第一条指令分析3 + 第二条指令取指4, 实际使用应该是 4 吧
第一条指令执行5 + 第二条指令分析 ...
superfight 发表于 2010-04-13 18:47



    人才!!

I understand!

Thanks very much!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP