第四章:处理器(防遗忘)

目录

一、基础知识

二、只考虑一次单条指令执行的数据通路

三、流水线

四、习题


一、基础知识

组合单元:一个操作单元,输出只取决于当前的输入。如与门或ALU

状态单元:一个存储单元,如寄存器或存储器。

二、只考虑一次单条指令执行的数据通路

bf73494a925c493fb74417a14bb3b007.png

p182图 要求会画 

注意点:

①符号扩展:

5a39be8901954247b785c7bb2bf7cfa9.png

1°若只有无符号数指令 addiu,则写成无符号扩展

2°beq指令的地址是先进行符号扩展后再左移两位

②ALU的控制信号

 633bb790a02a4ff897f876856c51906e.png

1°ALUOP一共两位,三个状态:

①R型指令,由funct决定具体执行什么操作

②beq指令,ALUOP决定执行减法

③I型指令,ALUOP决定执行加法

2°若存在beq指令ALU上要写上零标志 daff77496c734e388316814eefa119e1.png

③beq指令的控制信号

4fbcc1f06134438da3b8820f01857a4b.png

PCSrc不是单独的控制信号,而是ALU零标志和Branch与的结果

三、流水线

流水线流实际上改善的是指令的吞吐率,而不是减少单条指令的执行时间。

重要公式:

①若指令条数很多(理想状态),则有如下近似相等的公式783a046a864b4e01bcaa18ce078b2e3b.png

②吞吐率:单位时间执行的任务数量

227ae7da877345b684aa09c6e4037eb1.png

③加速比:

e214445163404fc09552f0b19720ec54.png

结构冒险:因缺乏硬件支持而导致指令不能在预定的时钟周期内执行的情况。

数据冒险:因无法提供指令执行所需数据而导致指令不能在预定的时钟周期内执行的情况。

控制冒险:也称为分支冒险。 因为取到的指令并不是所需要的(或者说 指令地址的变化并不是流水线所预期的)而导致指令不能在预定的时钟周期内执行的情况。

 具体操作(链接):

流水线冒险

解决控制冒险的方法:

①假定分支不发生:假定不会发生跳转,正常顺序执行

②缩短分支的延迟:将beq指令的判断体现到ID阶段

③动态分支预测

四、习题

74952d465b93412a9f0d23551591084a.png C

818aa4da2f474275ad83cd29de899973.png

A

 d4b81d262374403d83ef131dcf6bdc63.png

错,单周期指令是指所有指令的时钟周期都等长,并且每条指令只有一个时钟周期。单周期指令并行和串行执行都是只能处理一条指令之后再处理下一条指令。

而流水线将指令分为5个阶段,每条指令5个时钟周期,属于多周期指令的范畴。

 fa09f6b16a624cbcb62106cb218dc213.png

①假设分支不发生 ②缩短分支的延迟③动态分支预测

 85b664b720234c78ba6a5f51920e2f1d.png

旁路从流水线寄存器中提前取出数据。

不能解决所有的数据冒险。例如取数-使用型冒险无法避免。

例如add $s0,$s1,$s2;sub $s3,$s0,$s2;指令sub不需要等add执行结束,ALU 一旦生成加法的运算结果,sub指令就从部件内部(旁路)直接获得这个结果参与sub的运算,而不是等待add指令执行结束。

c3eef602779542d6a35a6bfae337b4a2.png

 fd41bdd24b9742beb636d8d097f5d295.png

 06a1b0c11d8f4812b62e6a32ab3b50ac.png

 8f269d53096849d391f728cb1e59400c.png

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yorelee.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值