不请自来,本人非业内人士,说的不对的地方欢迎理性讨论
这是个“制成+流水线设计”匹配的综合结果
先说为什么10多年前的Intel主频就高到3-4G?
答:因为当时他们采用的是长流水线设计。
什么是流水线?
CPU的流水线指的是从指令输入、解码、分配、执行、存取、写回、等整个流程,可以把它理解为一个产品从原材料备货、分类、装配、生产、出库、物流的全过程,CPU就是工厂,工厂流水线的长短是按照需求灵活设计的。
流水线越长,每一级流水线分工细致,设计越简单,花费时间少,因此更容易工作在高主频下,但是一旦某个环节出错,那就得重新走一遍流程,将会浪费很多时间。效率(实际性能)就会降低。
由于CPU执行指令特别快,一些运算单元经常处于等待上一个单元输入结果的状态,因此设计了一个“分支预测”的重要功能,就是在某个单元等待时预先执行另一个可能用到的指令,然后把计算结果交给下一个单元继续执行。
臭名昭著的奔腾4有史上最长的31级流水线,分支预测成功率仅有60%,也就是说40%的预执行的指令都浪费电,纯发热,这也就是奔腾4 Netburst架构效率低、功耗高的原因。而现在的Intel大多在99%以上。
流水线越短,每一级流水线要做的工作越多,设计就越复杂,花费的时间越多,更难工作在高主频下,但是效率(实际性能)高。
Intel和AMD是多少级流水线?
I7是16级,酷睿2是14级,奔腾4 31级
AMD推土机22级,Ryzen没公布,据说14级
龙芯是多少级流水线
官方资料有写,龙芯3A3000是12级流水线,28nm工艺(我猜测这才是龙芯目前难做高频的主要原因),3A4000还没发布不知道。
制成不变下如何才能提高主频?
举个不一定恰当的例子,你是个流水线工人,流水线传送带速度固定5秒过1个工人面前,要求你在5秒钟之内完成一瓶饮料罐装,封口,贴牌,装箱,你觉得困难吗?做得到工厂就可以在5秒每单位的频率下工作,做不到就要降低工厂频率,或者把你的工作拆成两级流水线。
让流水线的每一级都能提高处理速度,这非常困难,非常考验设计人员的技术和经验,这个经验又反过来指导总设计师决策总体到底用多少级流水线效率更高,必要时候可能要加长流水线来换取高主频,这是个工程上的权衡问题,也是考验每一级流水线设计能力的问题。
再说制成问题
这个问题很简单,制成越小,线路越短,电子经过的半导体元件越多,运算速度越快,发热越小,同个单元在越小的制成下完成速度越快。反过来影响流水线长度的设计。
看明白这些,你就应该明白龙芯采用12级短流水线明显是面向未来更小工艺设计的,因为这么短的流水线很难在当前采用的28nm制成下工作在高主频上。
让龙芯提高频率只有三条路,1优化各级流水线性能(最难),2提升工艺(看流片厂商),3加长流水线。其中加长流水线是代价(牺牲效率提升功耗)最大,效果(提升频率)最容易的。
那么你觉得是现在加长流水线提升频率降和功耗,同时降低执行效率,还是等新制成+慢慢优化?