作者sitos (麦子)
看板ask-why
标题Re: [请益] 为什麽CPU要作成多核心
时间Fri Dec 5 09:54:36 2008
※ 引述《cpt (Obstacle 1)》之铭言:
: ※ 引述《papayamilk (木瓜牛奶)》之铭言:
: : 为什麽现在CPU要作成多核心
: : 是因为单核频率接近物理极限 上不去了吗
: : 谢谢
: 其实不尽然
: CPU 时脉要更快也不是办不到 (虽然技术上是个大挑战)
: 但影响电脑速度的瓶颈已不是 CPU clock
: 而是记忆体的时脉, 和印刷电路板层级的排线频宽
: 当 CPU 外部频宽成为瓶颈时, 与其加快 CPU 时脉
: 不如维持适当的时脉, 但在单位时间内做更多的运算
: "直接拿几颗现有的 CPU 接起来做平行运算" 就是多核 CPU 的构想之一
: 另外一个行销上的好处是
: 消费者早已有 "时脉又快一倍, 该升级 CPU 了" 这种观念
: 把这种观念改成 "核心数又多一倍, 该升级 CPU 了"
: 心理上的效果是一样的
: "时脉"或"核心数"这类具体指标的存在, 在行销上是非常重要的
这个问题很复杂,几乎任何简单的答案都是不精确的。
1. 单核频率并未达到物理极限,前面有人提到的奈米极限,
指的是一个电子通道需要的最小大小,那是制程的极限,不是时脉的极限。
只要加更大的电压,就算导线电阻很大,一样可以缩短充电的时间。
所以时脉可不可以继续往上冲,可以,但会造成其它问题。
2. 为了要达到更高的时脉,需要做的是把管线(pipeline)切得更细,
但每一个 pipeline stage 仍可以完成部份的工作。
切系 pipeline 虽然可以拉高时脉,提升指令层的平行度
(Instruction level parallelism , ILP),但同时会让整体设计更加复杂。
导致更多的耗电。
3. 单纯提高时脉对效能的提升有限, cpt 提到的记忆体过慢是一个问题,
记忆体的问题可以用 cache 或 on-chip memory 来解,
但即使如此,时脉对效能的帮助是 sub-linear 的。
因此单纯提升时脉对效能的好处,还不够多。
但,时脉的限制其实不是导向多核心的关键。
单纯只是把旧的 cpu 拉高时脉,是可以做的,
但这样显然不是一种「进步」。
过去的 cpu 效能在进步,除了时脉以外,制程进步导致可以放入更多电晶体,
才是最大的进步。包括 on-chip cache (过去的 cache 还有 off-chip 的),
TLB 、 branch predictor 、 issue window 、 reservation stations 等等,
这些机制可以让处理器找到更多的事做,并让事情更早做完。
过去当制程在进步,一个晶片可以放入更多电晶体的时候,
都是拿去做这些东西。但这些东西的复杂度通常是和量的平方成正比,
耗电也和平方呈正比,因此继续拿电晶体去做这些事,耗电会控制不住。
当 cpu 的耗电过高,主机板无法给那麽多的电,散热器带不走热,
整台电脑就爆了。
所以,为了降低单个核心的复杂度与耗电,设计处理器时已经不愿在「加大」单一核心,
但对於生产一个晶片而言,仍有多余的电晶体可以使用,所以,就做多个核心。
事实上多个核心并不是「想要去做」而是「不得不做」。因为没有其它选择了。
更强的单核心可以加快所有的运算,但更多的核心只能加快平行运算
(某个层面上来说,事实上也有多核心加快 single-thread app 的研究),
对效能来说,多核心显然是一个比较差的电晶体使用法。
但同时考虑耗电与散热的问题,强大的单核心根本是不可行的。
--
活着的目的是为主活 然後为主死
死亡的目的是为主死 然後为主活
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.31.132
1F:推 sun0804:专业 12/05 12:11
2F:推 kons:赞 12/05 13:02
3F:推 chestsun:但是PSU瓦数越来越高 散热器也有在进步 ex水冷.热导管 12/05 20:57
4F:→ chestsun:这样也有充分的後援能让CPU厂商做出高时脉高TDP的CPU 12/05 20:57
5F:→ chestsun:反正每一代的最高阶产品都是宣示意义大於市场操作不是吗 12/05 20:58