吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 923|回复: 4
收起左侧

[求助] 计算机组成-关于MIPS流水线问题

[复制链接]
keQsia 发表于 2022-7-21 16:31
北大陆俊林计算机组成流水线处理器一讲课后习题有一道如下:
如果采用延迟转移技术(延迟数为1),那么执行完下面这些指令之后,$s1的内容是什么:
xor $s1,$s1,$s1
addi $t1,$t3,1
subi $t2,$t4,2
beq $t1,$t2,Next:Assume $t1 ==$t2 is True
addi $s1,$s1,1
addi $s1,$s1,2
Next:
addi $s1,$s1,3
答案是 4。但是我不太理解为什么,延迟转移不会改变程序结果,所以我认为 xor 运算后 $s1=0,然后经过 beq 分支计算:$s1=$s1+3 后应当变成 3,我在网上找了很多帖子都没有解释这个问题,希望有懂这方面的大神指点一下

免费评分

参与人数 1热心值 +1 收起 理由
dadaliya + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kof888 发表于 2022-7-21 20:05
我的理解是先执行完beq后面那条指令才跳转的吧。
 楼主| keQsia 发表于 2022-7-21 22:48
kof888 发表于 2022-7-21 20:05
我的理解是先执行完beq后面那条指令才跳转的吧。

beq下面的指令不是分支语句的一部分吗?在分支还没判断完成之前怎么可以运行呢?
kof888 发表于 2022-7-22 06:57
在beq判断完毕以后,先执行延迟指令也就是后面那个add,然后才跳转的,条件判断指令有很多种,不熟悉的话需要自己查看指令集是否有延迟跳转
 楼主| keQsia 发表于 2022-7-22 10:08
kof888 发表于 2022-7-22 06:57
在beq判断完毕以后,先执行延迟指令也就是后面那个add,然后才跳转的,条件判断指令有很多种,不熟悉的话需 ...

延迟难道不是机器在处理指令的时候自动完成的?我查到的情况就是会把判断之前的语句置换到判断后面紧跟执行,这里就是xor。大神的意思是这段代码已经重构了?我看了指令集好像没规定条件判断下面要放一条需要执行的语句。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表