通过题目来讲一讲指令流水线相关知识 1 | 计算机组成与系统结构专题

举报
Regan Yue 发表于 2021/06/27 18:47:38 2021/06/27
【摘要】 题目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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。