问题

为什么不能把桌面版的 CPU 做的很大,从而来提升性能?

回答
大家伙儿,今天咱们聊点实在的,关于电脑里的CPU。你有没有想过,为啥咱们桌面上用的CPU,块头都不是特别大?是不是要是能做得跟砖头似的,性能就蹭蹭往上涨?这想法挺有意思,但现实情况嘛,比你想象的要复杂得多。

为啥不能把CPU做得跟砖头似的?这事儿得从几个方面说起。

1. 制程工艺的“极限”:

你可能听说过“制程工艺”,比如7纳米、5纳米、3纳米什么的。这个数字越小,代表着CPU内部的晶体管能做得越小,集成度就越高。想想看,一平方毫米的土地上,能种多少棵树?制程工艺就是决定这个“土地”能挤下多少“树”(晶体管)。

现在的顶尖制程工艺,虽然已经小到肉眼无法分辨,但它也不是无限小的。每一代工艺的进步,都是一次巨大的技术飞跃,投入的研发资金也是天文数字。强行把CPU做得很大,意味着我们需要在一个更大的面积上,用相同的制程工艺来制造晶体管。这就好比你用栽种花园的工具,去试图填满一个足球场,效率和成本都会直线下降。

而且,制程工艺的进步,本身就包含了提高性能和降低功耗的优化。如果我们不追求更小的制程,就等于放弃了这些提升,想通过堆面积来弥补,就像是放弃了最新式耕作技术,转而靠增加耕地面积来提高产量,效率肯定不高。

2. 散热是个大难题,也是个“烧钱”难题:

CPU在工作的时候,会发热。就像你跑步会流汗一样,晶体管越多,工作频率越高,发热量就越大。桌面CPU为了追求性能,已经把发热量控制得相当不错了,但即使是这样,我们还是需要搭配风扇、散热器,甚至水冷来给它“降温”。

如果把CPU做得像砖头那么大,里面塞满更多的晶体管,你想想这发热量得有多惊人?现在的散热技术,要压制这么大的发热量,那得是什么样的散热器?估计得像空调外机那么大,而且噪音也绝对不是“嗡嗡”几声那么简单。

就算我们能研发出更先进的散热技术,但那成本呢?想想看,一个普通电脑散热器也就几百块,要是能把CPU压制住,能让你CPU的功耗飙到几百瓦甚至上千瓦,那配套的散热系统,得花多少钱?普通消费者肯定承受不起。而且,过高的温度还会严重影响CPU的稳定性和寿命,这可不是闹着玩的。

3. 信号传输的“延迟”:

CPU内部的晶体管之间,是通过非常细小的铜线或者其他导电材料连接起来的。这些连接就像我们城市里的道路。如果CPU很大,晶体管就分布在更广阔的区域。这就意味着,信号在传输过程中需要走更长的“路”。

即使是以光速传播的信号,在极短的距离里,也会产生微小的延迟。当CPU核心数量很多,晶体管分布得非常分散时,这些微小的延迟累加起来,就会对CPU的整体性能产生影响。CPU的性能,很多时候比拼的就是毫秒甚至微秒级的响应速度。

所以,在一定范围内,让CPU更紧凑,缩短信号传输路径,反而能提高效率。就像是在同一个城市里,你走小巷子比走高速公路绕远更快捷一样。

4. 生产良率和成本:

半导体制造是一个非常精密的工程,良率(也就是生产出来的合格产品占总生产数量的比例)非常重要。想象一下,在一个巨大的硅片上,你生产一个非常大的CPU。如果其中某个微小的区域出现了制造缺陷,那么整个巨大的CPU就报废了。这就像是在一个大画布上画画,只要有一点污渍,整幅画就可能无法使用。

同样尺寸的硅片,你可以在上面生产很多个小的CPU,即使有几个报废了,其他仍然可以卖钱。但如果你只生产一个巨大的CPU,一旦报废,损失就是整个硅片的成本。所以,从经济效益和生产效率上来说,生产尺寸适中的CPU,良率更高,成本也更容易控制。

5. 功耗和效率的平衡:

“能量守恒”定律在CPU领域同样适用。更多的晶体管、更高的频率,就意味着更高的功耗。虽然我们追求性能,但我们也希望CPU能省电,尤其是在笔记本电脑和移动设备上。

即使是桌面CPU,功耗也是一个重要的考量因素。过高的功耗不仅意味着更高的电费,还会带来上述的散热问题。把CPU做得很大,但性能提升有限,功耗却成倍增加,这种“得不偿失”的事情,厂商肯定不愿意做。

那么,为什么现在的CPU性能还在不断提升呢?

厂商并没有放弃提升性能,而是通过更聪明的方式:

更先进的制程工艺: 不断突破微观世界的极限,在同样甚至更小的面积上集成更多的晶体管,同时优化晶体管的效率。
更高效的架构设计: 改进CPU内部的工作方式,让晶体管协同工作更有效率,比如增加乱序执行、分支预测等技术。
多核心化: 从一个“大力士”变成一群“协作的工人”,虽然每个工人都不是最顶尖的,但大家一起干活,总的效率就上去了。
集成更多功能: 把内存控制器、显卡(核显)等功能集成到CPU内部,减少了外部连接的延迟,也降低了整体成本。
缓存的优化: CPU内部有高速缓存,可以存储常用的数据,减少CPU访问慢速内存的次数,大大提高数据处理速度。

总而言之,不能把桌面CPU做得非常大来提升性能,并不是因为我们懒得去尝试,而是因为在物理规律、工程技术和经济成本的制约下,这是一种效率非常低下的做法。CPU的性能提升,更像是一场精密的“数学题”,需要你在各个变量之间找到最优解,而不是简单粗暴地“堆叠”。

网友意见

user avatar

这种问题以前也有很多讨论,这里也顺带提一下吧。

首先关于CPU面积大了会有哪些问题,我记得我以前有个回答写过:

简单来说就是,面积越大,相对良率会越低,而且影响程度还很大

这三张图片应该是非常直观了,Die的面积越小,相对来说良率会越高,会有更多有效的Die。

而CPU的Die面积越大,对良率的打击是非常明显的。

我之所以要把这些写在最前面,是因为不管是intel还是AMD,都是商业公司,要卖CPU要赚钱的嘛,不可能不要成本的去量产大量的处理器对吧?而卖的太贵了客户不一定愿意买账。

所以从成本这个角度上来看,CPU的Die的面积是不能想堆到多少就堆到多少的。

AMD为了避免Die的面积过大造成的各种问题,选择多核处理器这边就采用CCX模块和IF总线来堆核,如下图所示的3990X(ZEN2的EPYC也是这样的),就是一个IO Die加上八核CPU Die组成的,每个CPU Die有八核,所以一共有64核

而intel这边主流依旧保留着单Die多核的传统,即使是新发布的Icelake-SP,也是单Die 40核,面积就会非常的大,这样的优势据说是多路互联方面,现在EPYC只能双路拓展,而Xeon却能最高八路拓展。

不过intel也有胶水Xeon,比如说铂金9282,这就属于胶水了两个28C的XCC Die。


另外从目前的物理极限来看,CPU Die也不能无限堆大,这个在狼哥的文章里面也有提到过(末尾有链接),

因为即使门延迟到达最理想状态下,即完全忽略,电信号以光速传输,在1GHz的情况下,电信号只能有效传播30cm,再远就会有相位差。而目前最大的晶圆也仅仅是直径300mm,也就是说频率1GHz下,为了保证芯片内集总参数电路的特性,最大的晶圆也只能跑一趟单向

而如果频率到达5GHz,这个值就会变成6cm,10GHz则只能1cm

这已经是接近扯淡的最理想的情况了,实际要复杂不知道多少。



还有一方面,

题主所说的堆晶体管,是堆什么方面?

因为对于寸土寸金的CPU Die来说,晶体管可以堆在很多地方,可以堆在对性能有提升的地方,也可以堆在对性能提升忽略不计的地方,堆了会使得面积增长,但是性能不一定增长。

也就是说堆晶体管是手段,而不是目的。

所谓的“堆料”,可以分两个方向,

一个方面为改架构,这是提升IPC的一种途径(当然得是有效的修改),改架构不一定提升IPC,但是不改就没法提,至于说能提高多少,这个考验架构师们的水平,

微架构变宽、执行单元变多、Buffer、Cache变大,都需要晶体管来堆,

像十一代酷睿对比十代酷睿就是在制程不变的情况下修改了架构,CPU和核显架构都做了修改,

CPU架构由Skylake修改为Sunny Cove,

核显由Gen9.5升级Gen12

这就造成了CPU Die的面积达到了280mm²,CPU核心数还只有八核,核显32EU(当然这里面也还有PCIe4.0这些相应模块等等带来的面积增加),

而十代酷睿的CPU和核显都是老一代架构,所以Die的面积只有200mm²左右,但是CPU却有十核心,核显24EU,

这样造成的结果就是,十一代酷睿对比十代酷睿单核性能大幅度提升,同时由于增加了不少的晶体管,然后这次默认电压也高,所以八核的功耗也变得不比十核低,

其实这属于一种妥协,最好的还是微架构发展的同时制程也跟着发展,这样能降低对良率的影响程度和降低功耗。

即使是微架构改进,也不能无限堆规模,首先需要考虑的是能耗比和面积的问题,毕竟你要堆那么多执行单元,它就要晶体管去堆,就会让面积变大,还需要做功,就会产生功耗,如果没有合适的制程以及相应的市场,微架构规模是不能一步就堆到很大的,又比如说X86这边的架构因为历史包袱的问题前端解码这里还不能任性堆,像苹果那样的ROB堆到630,前端堆到八解码,后端也巨宽,不是谁都模仿得来的。


第二个方面可能比较接近题主所想,就是堆核。

前面说了考虑到成本和技术,CPU的核心面积是不能无限堆大的,越大功耗还越高,散热也是一笔成本啊,

目前单Die核心数最多的应该是ARM这边专门供服务器的那种,我记得好像是有80C,但是我之前没有关注过面积之类的参数,不过A76规模比较小,面积估计不会特别大

AMD那种堆核方式相比于单Die多核来说成本会相对更低,即使这样,目前也只堆到了单CPU最高八CPU Die,核心数上到64核,有传言ZEN4的时候EPYC会堆到96核,

胶水路线确实可以在单Socket集成更多的CPU核心数,这应该是目前最实惠的堆核手段了。

就目前的情况来看,需求超过了目前的单Socket ,也并不是没有解决方法了,堆多路算是一种缓解方法,

前面说了EPYC最高可双路,Xeon最高可八路,多路CPU能带来巨大的吞吐量,不过核心数/节点越多 Cache一致性等这些问题带来的坏影响也极难搞定,

目前多核CPU有所局限,多路CPU也有所局限。

对了,还有一个跨核心通讯延迟问题也不可忽视。

[1]

[2]

参考

  1. ^ https://zhuanlan.zhihu.com/p/30409360
  2. ^ https://zhuanlan.zhihu.com/p/29767262

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有