通过题目来讲一讲指令流水线相关知识 1 | 计算机组成与系统结构专题
【摘要】 题目1下面是一段指令序列:add $t1, $s1, $s0sub $t2, $s0, $s3add $t1, $t1, $t2以上指令序列中,哪一条指令发生数据相关?假定采用"取指、译码/取数、执行、访存、写回"这种五段流水线方式,那么不用"转发"技术的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序避免数据冒险?如果采用"转发"是否可以完全解决数据冒险?不行的话,需要在发...
题目1
下面是一段指令序列:
add $t1, $s1, $s0
sub $t2, $s0, $s3
add $t1, $t1, $t2
以上指令序列中,哪一条指令发生数据相关?
假定采用"取指、译码/取数、执行、访存、写回"这种五段流水线方式,那么不用"转发"技术的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序避免数据冒险?
如果采用"转发"是否可以完全解决数据冒险?不行的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序不发生数据冒险?
题目1 解答
sub $t2, $s0, $s3 | 取指 | 译码/取数 | 执行 | 访存 | 写回 | |||||
---|---|---|---|---|---|---|---|---|---|---|
nop | 取指 | 译码/取数 | 执行 | 访存 | 写回 | |||||
nop | 取指 | 译码/取数 | 执行 | 访存 | 写回 | |||||
nop | 取指 | 译码/取数 | 执行 | 访存 | 写回 | |||||
add $t1, $t1, $t2 | 取指 | 译码/取数 | 执行 | 访存 | 写回 |
所以需要加入3条nop指令。
如果采用“转发”,可以完全解决数据冒险。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)