mips 系统桥_计算机系统结构-MIPS指令流水线冲突

本文分析了MIPS指令序列在五段流水线中的数据和控制冲突。数据冲突涉及add指令间的依赖,以及lw和bne指令。控制冲突主要由bne和j指令引起。采用直通技术能解决部分冲突,但某些情况下仍需插入nop指令。分支延迟损失时间片因检测位置不同而变化,更新PC操作的时间点也影响流水线阻塞情况。
摘要由CSDN通过智能技术生成

以下是一段MIPS指令序列,

loop:

add $t1, $s3, $s3 //t1=s3+s3

add $t1, $t1, $t1 //t1=t1+t1

add $t1, $t1, $s6 //t1=t1+s6

lw $t0, 0($t1) //lw 从存储器中读取一个字的数据到寄存器中,从t1中读取一个数给t0

bne $t0, $s5, exit //条件转移指令,当两个寄存器中内容不等时转移发生,转移到exit中去

add $s3, $s3, $s4 //s3=s3+s4

j loop //直接跳转指令,跳转到loop

假如在实验的五段流水线中执行上述指令序列,在数据通路中,寄存器写口和寄存器读口分别安排一个时钟周期的前、后半个周期内独立工作,请思考:

(1)哪些指令之间发生数据相关?哪些指令之间发生控制相关?

答:

数据冲突:

add $t1, $s3, $s3和add $t1, $t1, $t1

add $t1, $t1, $t1和add $t1, $t1, $s6

add $t1, $t1, $s6和lw $t0, 0($t1)

lw $t0, 0($t1)和bne $t0, $s5, exit

add $s3, $s3, $s4和add $t1, $s3, $s3

控制相关:

bne $t0, $s5, exit和j loop

(2)如果不采用“直通”技术进行数据冲突处理,那么应该在何处、加入几条nop指令才能避免数据冲突?假定采用“直通”技术

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值