《深入浅出计算机组成原理》学习笔记 Day21

1. 多发射与超标量

程序的 C P U 执行时间 = 指令数 × C P I × C l o c k C y c l e T i m e 程序的 CPU 执行时间 = 指令数 \times CPI \times Clock Cycle Time 程序的CPU执行时间=指令数×CPI×ClockCycleTime
I P C = 1 C P I IPC = \frac{1}{CPI} IPC=CPI1
如果 CPU 仍然只能在一个时钟周期里面,取一条指令,无论指令后续能优化得多好,一个时钟周期也只能执行这样的一条指令,CPI 只能是 1.

一个简单的方法,和增加 ALU一样增加用于取指令和指令译码的硬件,就可以进行并行。我们可以一次性从内存里面取出多条指令,然后分发给多个并行的指令译码器,进行译码,然后对应交给不同的功能单元去处理。这样在一个时钟周期里,能够完成的指令就不只一条,IPC 也就能做到大于 1 。

这种 CPU 的设计,叫做多发射(Multiple Issue)和超标量(Superscalar)。

多发射:同一个时间,可能会同时将多条指令发射(Issue)到不同的译码器或者后续处理的流水线中去。

超标量:本来在一个时钟周期里面,只能执行一个标量(Scalar)的运算。在多发射的情况下,就能够超越这个限制,同时进行多次计算。

2. 超长指令字设计

为了解决指令之间的依赖关系问题,超长指令字设计(Very Long Instruction Word)通过改进编译器来优化指令数。

编译器把没有依赖关系的代码位置进行交换,然后,再把多条连续的指令打包成一个指令包。CPU 在运行的时候,不再是取一条指令,而是取出一个指令包。然后,译码解析整个指令包,解析出指令直接并行运行。

参考

极客时间《深入浅出计算机组成原理》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Balaaam

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

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

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

打赏作者

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

抵扣说明:

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

余额充值