Re: [請益] 為什麼CPU要作成多核心
※ 引述《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
推
12/05 12:11, , 1F
12/05 12:11, 1F
推
12/05 13:02, , 2F
12/05 13:02, 2F
推
12/05 20:57, , 3F
12/05 20:57, 3F
→
12/05 20:57, , 4F
12/05 20:57, 4F
→
12/05 20:58, , 5F
12/05 20:58, 5F
討論串 (同標題文章)
ask-why 近期熱門文章
PTT職涯區 即時熱門文章