【知乎】如何判断CPU发射宽度?
如何判断CPU发射宽度?

比如skylake架构有人说它是五发射,理由是其有五个解码器。又有人说还要看取指令,指令调度的宽度,取宽度最小值。我想知道能不能从这张图中大概判断出CPU的发射宽度,依据什么来判断?
另一个问题是4发射已经出现了好几年了,为什么不提升到5或者6发射增强性能?又有观点说发射数的增加,不能提升性能,反而导致后端执行管线的闲置。这究竟是怎么一回事?
关注者
46
被浏览
24,923
一只橘猫也关注了该问题

关注问题写回答
邀请回答
好问题 7
添加评论
分享
修改问题
收起
4 个回答
默认排序

Edison Chen
关注
9 人赞同了该回答
只看纸面规格意义有限,最好是使用 microbenchmark 进行实际测试,例如 x86 的话,nop 指令是最短的,可以以此为基础探测处理器的取指、解码、发射能力,然后进一步拓展到 add/sub 以及其他更复杂的指令。
发布于 2021-01-06 19:08
已赞同 9添加评论
分享
收藏喜欢

XZiar

中央处理器 (CPU)话题下的优秀答主
关注
81 人赞同了该回答
你这里放出来的只是前端部分的图,实际上“发射”,也就是issue/dispatch是形容后端执行部分的宽度的,所以从这张图只能看出5解码,看不出几发射。
底下的6uOPs表示的只是IDQ到Allocation的宽度,也就是前后端衔接部分的宽度。
当然有些人翻译时喜欢看到xx-wide就翻译成xx发射,会带来一些混乱。
根据完整的图[1],应该被描述成8发射。
前面提到的宽度为5的解码被Intel称作“Legacy Decode Pipeline[2]”(或者是MITE pipe),而相对应的“modern pipeline”的是左边那一“小”块uOP Cache(DSB)。
传统的解码要耗费不算少精力,还有各种限制(比如16B的fetch,x86变长的判断,complex/simple组合),而解码完的指令会存入DSB,日后再使用的话不但省去解码开销(MITE会直接休眠省电),还能减少流水线深度。
单纯MITE部分宽度小于发射说明不了太多,uOP来源可能是DSB(带宽更高),也可能是LSB(对循环做优化,直接IDQ自给自足)。
更重要的是MicroFusion,即解码出来的可能是fused uop(可以分解成多条unfused uop),而发射、执行的全都是unfused uop。既然非1:1关系,解码小于发射倒也可以理解。
MicroFusion in Intel CPUs.easyperf.net/blog/2018/02/15/MicroFusion-in-Intel-CPUs

至于为什么解码不做更宽,有的说法是变长指令、复杂结构导致更宽的解码技术上很难做,有的说法是功耗、带宽、面积制约。
当然也有种说法是分支指令很常见(每五六条指令就有一分支),解码更宽容易导致浪费。但是现在分支预测准确率通常都是9x%,浪费的概率也很低啊……
如果开着超线程的话,虽然MITE是时分交错解码,DSB等也会容量减半,但每个线程有各自的IDQ,这部分其实是翻倍的,也可能可以增加实际uOP量。
至于后端宽度比解码宽会不会喂不满——其实不满才是常态,哪怕是RISC也是一样。
一方面乱序执行、投机执行并不能解决真正的数据依赖,能同时解码10条指令不意味着就能同时发射10条指令。
另一方面后端端口各有分工,10个端口10发射如果面对全是ALU计算指令,照样会有浪费。
这也就是为什么ROB的容量很大,有上百个条目——尽可能地去发掘并行操作。
而且整条流水线上到处都可能成为瓶颈,比如allocate/rename/retire。
最后,这些都是纸面数字,具体性能还是得具体分析。
参考
^Skylake https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client)
^Legacy Pipeline https://en.wikichip.org/wiki/intel/microarchitectures/sandy_bridge_(client)#New_.C2.B5OP_cache_.26_x86_tax
编辑于 2021-01-31 19:03
赞同 8114 条评论
分享
收藏喜欢
收起

章鱼哥
深度学习加速器工具链与LLVM编译器
关注
2 人赞同了该回答
取整个前后端的最小宽度,因为无论你的fu的issueport有多少个,整个cpu流水线能够给到的ipc就是取决于这个最小宽度,一般是解码宽度
发布于 2022-02-16 16:09
赞同 22 条评论
分享
收藏喜欢
风风
南卡罗莱纳大学
关注
5 人赞同了该回答
取最小宽度值,所以haswell 4-issue skylake 5-issue。
需要考虑设计制造成本,为了使利益最大化skylake也只是在细节上进行改进,总体布局与haswell保持一致。
苹果a9 6-issue。
发布于 2016-06-21 01:21