Re: [請益] 為什麼CPU要作成多核心

看板ask-why (知識奧秘)作者 (麥子)時間17年前 (2008/12/05 09:54), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串3/7 (看更多)
※ 引述《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
但是PSU瓦數越來越高 散熱器也有在進步 ex水冷.熱導管
12/05 20:57, 3F

12/05 20:57, , 4F
這樣也有充分的後援能讓CPU廠商做出高時脈高TDP的CPU
12/05 20:57, 4F

12/05 20:58, , 5F
反正每一代的最高階產品都是宣示意義大於市場操作不是嗎
12/05 20:58, 5F
文章代碼(AID): #19E8dUWP (ask-why)
討論串 (同標題文章)
文章代碼(AID): #19E8dUWP (ask-why)