超标量处理器的概览

CPI:处理器执行一条指令需要的周期数

IPC:处理在一个周期内可以执行的指令的个数

超标量处理器简单来说每周期可以执行多于一条的指令,处理器再每周期内最少可以同时执行n条指令,这称为n-way的超标量处理器

普通处理器流水线:

一次只能处理一个指令。

流水线级数的确定是很复杂的事情

流水线优化第一个是合,第二个是拆

指令间的相关性:

1,先写后读RAW,无法回避,是真相关,可以用旁路来解决

2,先读后写WAR,-----可以避免,写别的寄存器

3,先写后写WAW,------可以避免,写别的寄存器

还有一种相关性称为控制相关性-----和分支预测有关

超标量处理器流水线

顺序执行和乱序执行。

scoreboard用来记录流水线中每条指令的执行情况,记录每个逻辑寄存器r0~r31的执行情况

P:pending,表示指令的结果还没有写回到逻辑寄存器中

F:一条指令在哪个FU中执行,在将指令结果进行旁路时会使用这个信息

Result Position:记录一条指令到达FU中流水段中哪个阶段,也是用于旁路。

流水线阶段有:

fetch:从icache取指令,分支预测

decode:识别出指令以及操作数

register renaming:寄存器重命名,逻辑寄存器重命名为物理寄存器,解决waw和war相关性。用旁路俩解决真相关性raw

dispatch:写到发射队列,ROB和store Buffer中

Issue:仲裁电路会从Issue queue中挑选合适的指令送到FU中。还存在唤醒电路,她可以将发射队列中对应的源操作数置为有效状态。两个电路相互配合进行工作,是关键路劲

Register File read:上一阶段选中的指令需要从物理寄存器堆中(Physical Register File,PRF)中读取操作数。端口多,所以不会很快,一个流水阶段。有些源操作数从旁路中得到

Execute:送到对应的FU中,有很多个不同类型的FU

write back:将FU计算结果写道物理寄存器堆。还有一个功能通过旁路网路将计算结果一般送到FU的输入端。旁路网络是影响速度的关键,采用cluster结果,将FU分成不同的组

commit:ROB,将乱序执行的指令拉回到程序中规定的顺序。也对指令产生的异常进行处理,所有的异常都需要等到指令到达流水线的提交阶段才能进行处理,实现异常顺序进行,精确异常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值