- 积分
- -17
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2017-10-31
- 精华
|
2#
发表于 2017-11-18 10:38:28
|
只看该作者
来自: LAN 来自 LAN
有意思的问题。我总结下为什么没有奇数个核心。
实际原因是由芯片的规模化设计,规模化生产的方式决定的。即使不是CPU,芯片也一般是矩形构造。这是因为设计芯片时,我们需要横平竖直的画版图和连线;制造芯片时,我们需要横竖方向切割。矩形本身就是建筑的基本形状,是正交线结合出来的天然图形,尤其适合有规律,有结构的布局。
而电路这东西,天然就是要用矩形的。中学时画过的简单电路图就是,电源,导线,电阻,把它们连起来时一定是矩形。因为矩形中包含一种秩序,当电路规模化之后,这种秩序能够帮助人类在庞大的电信号之间,迅速找到规律并合理的控制或者改造电路。CPU的floor plan也是这样,框架一定要是矩形!
(下图是AMD Bulldozer, 4模块8核心CPU, 发布于2011年)
面对一个矩形的芯片,不考虑soc这样的情况,是不可能有奇数个核心的。是因为一般的设计都是画出一个CPU核心,经过几次镜像变成多核,包括其中的控制电路,时钟电路,都是完全对称的。这样的多核CPU,每个核心的时序才是完全相同。其核心数量也一定是偶数。
此外,有的时候,CPU设计厂商会把2个核心封装在一起, 成为一个module, module内一般有2个Core, 它们共享一部分运算资源和L2 Cache。 而真正的芯片则是由数个module组合而成,就如同上面的AMD Bulldozer架构CPU一样。这是CPU核心一般为偶数的另一个原因。
有时候,CPU也不是轴心对称的, 比如下面这个AMD PhenomII 6核CPU:
可以看到,设计的基本是思想是画好3个Core,1片L3 Cache,然后进行水平对称。但是这样最左边的两个核心距离最右边的L3 Cache异常的遥远,必定对L3的访问带来不小的延迟。但是这款CPU确实覆盖到了4核以上的市场,在有限的成本内,AMD公司经常尝试各种创新的CPU体系结构设计,这样的行为是非常值得尊敬的。
可以看到,设计的基本是思想是画好3个Core,1片L3 Cache,然后进行水平对称。但是这样最左边的两个核心距离最右边的L3 Cache异常的遥远,必定对L3的访问带来不小的延迟。但是这款CPU确实覆盖到了4核以上的市场,在有限的成本内,AMD公司经常尝试各种创新的CPU体系结构设计,这样的行为是非常值得尊敬的。可以看到,设计的基本是思想是画好3个Core,1片L3 Cache,然后进行水平对称。但是这样最左边的两个核心距离最右边的L3 Cache异常的遥远,必定对L3的访问带来不小的延迟。但是这款CPU确实覆盖到了4核以上的市场,在有限的成本内,AMD公司经常尝试各种创新的CPU体系结构设计,这样的行为是非常值得尊敬的。
=======SOC分割线========
但是进入到soc时代后,事情有了些变化。一个矩形的芯片通常包括CPU,内存控制单元,GPU等。完全可以做到3CPU+1GPU这样的组合,但为什么不做呢?主要的原因是,在现有2, 4, 8核的产品线之内,生产3, 5, 7核CPU并没有清晰的市场范围。比起双核CPU, 三核CPU并不能带来性能的飞升,也没有清晰的利润点。相反,却有更多的设计麻烦,比如:第3核心必定没有对称的核心,它的单独Cache使用策略,以及额外的面积开销都是设计成本。 利用这些设计成本,开发更强劲的四核CPU才是厂家的真正做法。
Intel 第4代酷睿处理器,Haswell(SOC):
可以看到中间的Core和L3 Cache部分已经不是对称的结构了,似乎可以放4个core, 也可以只放2个,3个core。但实际情况是可以放4个核,维持1条生产线。根据测试结果,如果4个核性能都很好,就当i7卖;如果坏了2个核,就当i3卖。(当然也会有其他流水线)
可以看到中间的Core和L3 Cache部分已经不是对称的结构了,似乎可以放4个core, 也可以只放2个,3个core。但实际情况是可以放4个核,维持1条生产线。根据测试结果,如果4个核性能都很好,就当i7卖;如果坏了2个核,就当i3卖。(当然也会有其他流水线)可以看到中间的Core和L3 Cache部分已经不是对称的结构了,似乎可以放4个core, 也可以只放2个,3个core。但实际情况是可以放4个核,维持1条生产线。根据测试结果,如果4个核性能都很好,就当i7卖;如果坏了2个核,就当i3卖。(当然也会有其他流水线)
因此可以有这样的结论:CPU核心一般都是偶数,最早是由CPU工业化设计体系所决定的,方形的设计与生产环境决定了偶数核心的CPU方便设计与生产。而在如今CPU设计SOC化的趋势下,核心的摆放位置和数量已经不是最重要的因素,而CPU数量始终维持在偶数个则是由CPU的设计习惯和市场定位共同决定的了。
市面上偶尔会有奇数核心的CPU, 比如Tegra3,4核+1核其实还是4核CPU, 额外的核心仅负责待机或者低功率工作, 不能与其他4核一起并行工作的,而且这样的设计需要额外的设计成本, 比如第5核心与其他核心的交互, 核心间布局布线,软件切换策略等等。
而AMD的三核是因为利润空间小而不得不进行市场细分造成的,是故意把好的四核阉割成了三核来卖,而非开发了三核心CPU。
Tegra3 5核心 ARM CPU:
|
|