处理器架构——多发射处理器技术

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

多发射处理器总结

无论是动态多发射还是静态多发射,核心思想就是“推测+指令打包”,利用并行的硬件资源去提高IPC(指令数/周期)。

  • 静态多发射是利用compiler进行推测,将不具有数据冒险的指令成对打包,组成超长指令字(Very long instruction word, VLIW),而硬件只需要提供并行的解码与执行单元,并扩展总线宽度即可达到,是一种较为古老但是很实用的技术,常在轻量级的处理器中使用。
  • 动态多发射也称为超标量,由硬件决定每个周期issue的指令数目。“推测”由硬件负责,动态的避免数据冒险,并将无数据冒险的指令分配给不同的执行单元,这种分配可以看作是广义的“打包”,利用的就是可以同时执行指令的执行单元。
  • 据我了解,目前主流x86 CPU都是采用动态多发射+动态流水线调度。而主流GPU计算卡,只采用动态多发射。
  • 许多超标量处理器又将动态流水线调度技术包括在内。而动态流水线调度的核心就是指令可以乱序执行,比如Tomasulo算法的利用。

数据冒险

  • 在指令顺序执行的流水线技术中,只会有RAW造成流水线阻塞,而WAR和WAW不会造成影响,因为这其实是一种寄存器的“名字相关”,编译器可以绕过;
  • 在动态流水线中,若支持指令乱序执行,WAR和WAW必须保序;

动态调度-Tomasulo算法

利用寄存器重命名发消除WAR和WAW的算法,动态调度核心思想是“顺序发射-乱序执行-顺序提交”,保留站相当于在执行单元门后排队,谁的数据准备好了就可以进入到执行单元中,最后由Re-order buffer(ROB)实现提交。实际上,动态调度就是利用硬件实现指令流的分析,在不影响程序原有数据流逻辑的基础上尽可能的乱序执行指令,与取指令的顺序不同。
在这里插入图片描述

GPU与CPU的多发射技术对比(待考究)

  • CPU的动态多发射技术需要指令顺序发射、乱序执行、顺序写回去达到大的IPC。
  • GPU的一个基本计算单元是包括16个warp的,这warp之间可以看作是16个issue enrty,且在做密集计算时,stall bubble很容易会被16个warp填满。每个warp内部,可以看作是一个简单的动态多发射但是数序发射、顺序执行、顺序写回的小CPU。
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值