題 為什麼不“添加更多內核”面臨與“使CPU更快”相同的物理限制?


在2014年,我聽到許多編程語言都吹捧它們的並發性 特徵。並發被認為對性能提升至關重要。

在發表這一聲明時,很多人都回到了2005年的一篇名為 該 免費午餐結束:中國並發的根本轉向 軟件。基礎的 爭論是,提高時鐘速度越來越難 處理器,但我們仍然可以在芯片上放置更多內核,並獲得 性能提升,軟件需要編寫才能充分利用 多核。

一些關鍵的引用:

我們習慣於看到500MHz CPU讓位於1GHz CPU讓位   2GHz CPU,依此類推。今天我們處於主流的3GHz範圍內   電腦。

關鍵問題是:什麼時候結束?畢竟,摩爾定律預測   指數增長,明顯呈指數增長無法繼續   永遠在我們達到艱難的物理極限之前光沒有得到任何   快點。增長必須最終放緩甚至結束。

......利用更高的時鐘速度變得越來越難   不只是一個而是幾個物理問題,特別是熱量(過多的   它太難消散了,功耗(太高),和   電流洩漏問題。

......英特爾和大多數處理器廠商的未來都在其他地方作為芯片   公司積極追求相同的新多核方向。

...多核是關於在一個芯片上運行兩個或更多實際CPU。

這篇文章的預測似乎已經擱置,但我不明白為什麼。一世 關於硬件如何工作只有非常模糊的想法。

我過於簡化的觀點是“包裝更多處理能力越來越難 進入相同的空間“(因為熱量,功耗等問題)。我 我們希望結論是“因此,我們必須有更大的結果 計算機或在多台計算機上運行我們的程序。“(實際上,分佈式 雲計算是我們更多關注的內容。)

但部分解決方案似乎是多核架構。除非電腦 在規模上增長(他們沒有),這似乎是另一種說法 “將更多的處理能力打包到同一個空間”。

為什麼不“添加更多核心”面臨與“製造核心”相同的物理限制 CPU更快“?

請用最簡單的術語解釋。 :)


108
2017-08-15 14:22


起源


有一些相關的問題 電氣工程: electronics.stackexchange.com/q/122050/34550  electronics.stackexchange.com/q/76580/34550 - Bob
en.wikipedia.org/wiki/Moore%27s_law 值得一讀 - 因為我們談論的是兩件不同的事情。摩爾定律不是關於時鐘速度 - 它的意思 晶體管計數 - Journeyman Geek♦
讓我們假裝它是30年前,CPU運行在4.77MHz。為什麼你可以將1000台4MHz CPU的計算機放在同一個房間,即使它不可能獲得4GHz CPU? - user20574
@NathanLong但是獲得更多空間(更多計算機)比獲得更快的計算機更容易。 - user20574
打個比方:汽車發動機只能製成這麼多轉速,但你可以輕鬆地將兩個螺栓連接在一起。 - OJFord


答案:


摘要

  • 經濟學。設計具有更多內核而不是更高時鐘速度的CPU更便宜,更容易,因為:

  • 用電量顯著增加。隨著時鐘速度的增加,CPU功耗會迅速增加 - 在熱量空間中以較低的速度運行的內核數量可以使時鐘速度提高25%。四倍,50%。

  • 還有其他方法可以提高順序處理速度,CPU製造商可以很好地利用它們。


我將在很大程度上依靠優秀的答案 這個問題 在我們的姐妹SE網站之一。所以去投票吧!


時鐘速度限制

時鐘速度有一些已知的物理限制:

  • 傳輸時間

    電信號穿過電路所花費的時間受光速的限制。這是一個硬性限制,並且沒有已知的方法1。在千兆赫時鐘,我們正在接近這個極限。

    但是,我們還沒有。 1 GHz意味著每個時鐘滴答一納秒。在那個時候,光可以行進30厘米。在10 GHz,光可以行進3厘米。單個CPU內核寬約5mm,因此我們將在10 GHz以上的某個地方遇到這些問題。2

  • 切換延遲

    僅僅考慮信號從一端到另一端的時間是不夠的。我們還需要考慮CPU內邏輯門從一種狀態切換到另一種狀態所需的時間!隨著我們提高時鐘速度,這可能成為一個問題。

    不幸的是,我不確定具體細節,也不能提供任何數字。

    顯然,向其中加入更多功率可以加速切換,但這會導致功耗和散熱問題。此外,更多功率意味著您需要能夠處理它而不會損壞的笨重導管。

  • 散熱/功耗

    這是最重要的一個。引自 fuzzyhair2的回答

    最近的處理器使用CMOS技術製造。每次有一個時鐘週期,功耗就會消失。因此,更高的處理器速度意味著更多的散熱。

    有一些可愛的測量 這個AnandTech論壇帖子,他們甚至得出了一個功耗公式(與產生的熱量密切相關):

    Formula
    歸功於 Idontcare

    我們可以在下圖中看到這個:

    Graph
    歸功於 Idontcare

    如您所見,隨著時鐘速度增加超過某一點,功耗(和產生的熱量)會迅速上升。這使得無限增加時鐘速度變得不切實際。

    功率使用迅速增加的原因可能與切換延遲有關 - 僅僅增加與時鐘速率成比例的功率是不夠的;還必須增加電壓以保持較高時鐘的穩定性。 這可能不完全正確;隨時指出評論中的更正,或編輯此答案。


更多核心?

為什麼更多的核心?好吧,我無法肯定地回答這個問題。你必須問問英特爾和AMD的人。但是你可以看到,使用現代CPU,在某些時候,提高時鐘速度變得不切實際。

是的,多核也增加了所需的功率和散熱。但它巧妙地避免了傳輸時間和切換延遲問題。而且,正如您在圖表中看到的那樣,您可以輕鬆地將現代CPU中的內核數量增加一倍,同時具有相同的熱量開銷,時鐘速度提高25%。

有些人已經做到了 - 目前 超頻世界紀錄 只差9 GHz。但這樣做是一項重大的工程挑戰,同時將功耗保持在可接受的範圍內。設計人員在某些時候決定添加更多內核來執行更多工作 在平行下 在大多數情況下,它將提供更有效的性能提升。

這就是經濟學的用武之地 - 走多核路線可能更便宜(設計時間更短,製造更簡單)。它很容易上市 - 誰不喜歡全新的 八核心 芯片? (當然,我們知道當軟件沒有使用它時,多核是沒用的......)

那裡  多核的缺點:你需要更多的物理空間來放置額外的核心。但是,CPU流程大小不斷縮小,因此有足夠的空間放置以前設計的兩個副本 - 真正的權衡是無法創建更大,更複雜的單核。然後,增加核心複雜性是一個 壞事 從設計的角度來看 - 更複雜=更多的錯誤/錯誤和製造錯誤。我們似乎找到了一個快樂的媒介,其中有效的內核非常簡單,不會佔用太多空間。

我們已經在當前工藝尺寸的單個芯片上可以容納的芯數達到極限。我們可能會達到一個限制,我們可以盡快收縮。下一個是什麼?我們需要更多嗎?不幸的是,這很難回答。這裡有人透視嗎?


其他提高性能的方法

所以,我們不能提高時鐘速度。更多核心還有一個額外的缺點 - 即它們只有在運行它們的軟件可以使用它們時才有用。

那麼,我們還能做些什麼呢?在相同的時鐘速度下,現代CPU如何比舊版CPU快得多?

時鐘速度實際上只是CPU內部工作的非常粗略的近似。並非CPU的所有組件都以這種速度工作 - 有些可能每兩個滴答一次,等等。

更重要的是數量 說明 你可以按單位時間執行。這可以更好地衡量單個CPU核心可以完成多少。一些說明;有些需要一個時鐘週期,有些需要三個。例如,分部比添加慢得多。

因此,我們可以通過增加每秒可執行的指令數量來使CPU表現更好。怎麼樣?好吧,你可以使指令更有效 - 也許劃分現在只需要兩個週期。那就是 指令流水線。通過將每條指令分成多個階段,可以“並行”執行指令 - 但每條指令仍然有一個明確的,順序的順序,分別對應於它之前和之後的指令,因此它不需要像多核那樣的軟件支持確實。

另一個 方式:更專業的說明。我們已經看到像SSE這樣的東西,它提供了一次處理大量數據的指令。不斷推出具有類似目標的新指令集。這些也需要軟件支持並增加硬件的複雜性,但它們提供了良好的性能提升。最近,AES-NI提供硬件加速的AES加密和解密,遠遠快於軟件中實現的一堆算法。


1 無論如何,並非沒有深入理論量子物理學。

2 實際上它可能更低,因為電場傳播不如真空中的光速快。而且,這只是針對直線距離 - 可能至少有一條路徑比直線長得多。


142
2017-08-15 15:13



此外,在許多應用程序中,瓶頸不是計算時間,而是從RAM中獲取數據的停頓時間(或者,上帝禁止它來自磁盤);所以,另一個主要的加速來自更大,更快的處理器緩存。 - Matteo Italia
@MatteoItalia是的。並且還有分支預測的改進,可能還有更多我不知道的。在處理器之外,我們還擁有更快的總線,更快的內存,更快的磁盤和相關協議等。 - Bob
您提到與光速“硬限制”相關的問題將發生在“超過20 GHz的某個地方”。你的計算不正確;電信號以低於光速的速度傳播,具體取決於電線的幾何形狀。 - Giulio Muscarello
當這種關係有更完全正確的詞時(二次,立方等),請不要使用“指數”...... - Oliver Charlesworth
@OliCharlesworth請閱讀腳註。這是 恰恰 為什麼腳註在那裡,為什麼我到處都有它的參考 exponential用來。這是對這個詞的完全有效的使用,並且這個問題與數學細節陷入困境是相切的。如果您真的想要“糾正”它,請隨時建議編輯。只要你沒有明顯改變其含義,它就不會被我接受。 - Bob


物理學是物理學。我們不能永遠地將更多的晶體管裝入更小的空間。在某些時候,它變得如此之小,以至於你處理奇怪的量子廢話。在某些時候,我們無法包裝 兩次 和我們過去一樣多的晶體管(這就是摩爾定律)。

原始時鐘速度毫無意義。我的舊Pentium M大約是當代桌面CPU時鐘速度的一半(但在許多方面還是如此) 快點) - 和現代系統 僅僅 10年前接近系統的速度(顯然更快)。在許多情況下,基本上“正好”提高時鐘速度並沒有帶來真正的性能提升。它可能有所幫助 一些 單線程操作,但你最好將設計預算用於提高其他方面的效率。

多核可以讓你做到   或者更多的東西,所以你不需要等待一件事完成下一件事。在短期內,您可以簡單地將兩個現有核心彈出到同一個包中(例如使用 奔騰D.s和他們的MCM,這是一個過渡設計),你的系統速度是原來的兩倍。大多數現代實現當然都會分享內存控制器等內容。

您還可以通過不同方式構建智能。 ARM做得很好 - 有4個'弱'低功耗內核與4個更強大的內核一起工作,因此你可以擁有兩全其美的優勢。英特爾讓您降低油門(提高功率效率)或超頻 具體 核心(用於更好的單線程性能)。我記得AMD用模塊做了些什麼。

您還可以移動內存控制器(因此您具有較低的延遲)和IO相關功能(現代CPU沒有北橋)以及視頻(對於筆記本電腦和AIW設計更為重要)。做這些事情比“只是”不斷提高時鐘速度更有意義。

在某些時候,“更多”核心可能無法工作 - 儘管GPU有 數以百計 核心。

這樣的多核可以讓計算機工作 聰明 在所有這些方面。


14
2017-08-15 14:36



需要注意的是,GPU核心是為了一個非常特定的目的而設計的,而不是CPU核心,它更像是一個通用的東西。還應該注意的是,視頻卡板明顯大於CPU(意味著即使核心沒有使用板上的所有空間,它們仍然有更多空間來散熱)。 - user2366842
是的,但這是一個例子,你可以將核心擴展到極限。我可能會在早上再次回答這個問題 - Journeyman Geek♦
“你可以簡單地將兩個現有核心彈出到同一個軟件包中”。但是他們如何在不為額外核心使用更多空間的情況下實現它 怎麼樣?! 魔法?獨角獸?小狗? (通過你的頭像,我懷疑後者) - That Brazilian Guy
Pentium Ds就是這樣 en.wikipedia.org/wiki/Pentium_D 基本上 - Journeyman Geek♦
wierd quantum crap 單獨+ 1! - Dave


簡單的回答

這個問題最簡單的答案

為什麼不“添加更多內核”面臨與“使CPU更快”相同的物理限制?

實際上是在你問題的另一部分中找到的:

我希望結論是“因此,我們必須擁有更大的計算機或在多台計算機上運行我們的程序。”

實質上,多個核心就像在同一設備上擁有多個“計算機”。

複雜的答案

“核心”是實際處理指令(添加,乘法,“和”等)的計算機的一部分。核心一次只能執行一條指令。如果您希望計算機“更強大”,您可以執行以下兩項基本操作:

  1. 提高吞吐量(提高時鐘頻率,減小物理尺寸等)
  2. 在同一台計算機中使用更多核心

#1的物理限制主要是由於處理和電路中電子的速度而產生的熱量傾倒。一旦將一些晶體管分離到一個單獨的核心,就可以在很大程度上緩解熱量問題。

#2有一個重要的限制:您必須能夠將問題分成多個 獨立 問題,然後結合答案。在現代個人計算機上,這不是一個真正的問題,因為存在大量獨立問題,無論如何都要爭奪核心的計算時間。但是當進行密集的計算問題時,如果問題適合於並發,則多個核心才真正有用。


9
2017-08-15 17:13



“多核心就像在同一台設備上擁有多台”計算機“。是的,但我的困惑是,你怎麼適合他們在那裡?我認為“我們不能走得更快”是“我們不能更多地收縮東西”的症狀。 - Nathan Long
多核心佔用更多空間,芯片越來越大。負擔已從CPU轉移到軟件工程師......實際上在這些巨大的多核CPU之一上運行速度更快,必須編寫軟件,這樣你就可以將其工作減少一半,並且可以獨立完成兩個部分。 - James
簡短的回答是功耗與時鐘速度的立方成正比。隨著信號傳播距離越長,單線錯覺越難維持。詳細答案: amazon.com/... - Rob


為什麼不“添加更多內核”面臨與“使CPU更快”相同的物理限制?

它們確實面臨同樣的物理限制,但是在我們擊中其中一些之前,切換到多核設計會給我們一些喘息空間。與此同時,出現了由這些限制引起的其他問題,但它們更容易克服。

事實1: 功耗和發熱比計算能力增長得更快。將CPU從1 GHz推至2 GHZ將使功耗從20 W降至80 W,與散熱相同。 (我只是編寫了這些數字,但它的工作方式非常有用)

事實2: 購買第二個CPU並以1 GHz運行這兩個CPU會使計算能力增加一倍。以1 GHz運行的兩個CPU可以處理與一個2 GHz CPU相同的數據量,但每個CPU僅消耗20 W的能量,總共40 W。

利潤: 將CPU數量加倍而不是時鐘頻率可以節省一些能量,而且我們並沒有像以前那樣接近“頻率障礙”。

問題: 您必須在兩個CPU之間拆分工作並稍後合併結果。

如果你能在可接受的時間內解決這個問題並且使用的能量比你剛剛保存的少,那麼你只需要使用多個CPU就可以獲益。

現在你只需將兩個CPU合併為一個雙核CPU就可以了。這是有益的,因為內核可以共享CPU的某些部分,例如緩存(相關答案)。


6
2017-08-15 19:43



我們一直在以1000種不同的方式達到物理限制,模具的尺寸(用於導致較小製造工藝的多芯),主板的尺寸(用於多CPU),通過跡線繪製的放大器(兩者)。它不像你可以將2 cpus放在m-atx或4和atx板上的內存中,這些設計需要改變DECADES。我同意其餘的意見。 - Rostol
@Rostol這是一個好點,我編輯了答案。 - gronostaj


長話短說:加速單核已達到極限,所以我們不斷縮小它們並添加更多它們,直到達到極限或我們可以改為更好的材料(或實現推翻已有技術的基本突破,類似於家庭大小,實際工作,量子計算)。

我認為這個問題是多維的,需要一些寫作來繪製更完整的圖片:

  1. 物理限制(由實際物理學強加):像光速,量子力學,所有這一切。
  2. 製造問題:我們如何以所需的精度製造更小的結構?原料相關問題,用於構建電路的材料,耐用性。
  3. 建築問題:熱量,推斷,功耗等
  4. 經濟問題:為用戶提供更多性能的最便宜的方法是什麼?
  5. 用例和用戶對性能的感知。

可能還有更多。多功能CPU正試圖找到一種解決方案,將所有這些因素(以及更多)加密到一個可批量生產的芯片中,該芯片適合市場上93%的受試者。如您所見,最後一點是最重要的一點,即客戶感知,它直接源於客戶使用CPU的方式。

問問自己你的常用應用是什麼?也許:25個Firefox標籤,每個都在後台播放一些廣告,而你正在聽音樂,等待你的建立工作,你在2個小時前開始完成。這還有很多工作要做,但你還是想要一個順暢的體驗。但是你的CPU當時可以處理一項任務!單件事。所以你要做的就是,你把事情分開並製作一個looong隊列,每個人都得到自己的份額,所有人都很高興。除了你,因為所有的事情都變得遲鈍而且根本不光滑。

因此,您可以加快CPU速度,以便在相同的時間內執行更多操作。但正如你所說:熱量和功耗。這就是我們來到原材料部分的地方。隨著矽變熱,矽變得更具導電性,這意味著當您加熱時,更多的電流會流過材料。當您更快地切換晶體管時,晶體管的功耗更高。高頻也使短線之間的串擾變差。所以你看,速度接近將導致“崩潰”。只要我們沒有比矽更好的原材料或更好的晶體管,我們就會陷入單核速度的困境。

這讓我們回到了我們開始的地方。並行地完成工作。讓我們添加另一個核心。現在我們實際上可以同時做兩件事。因此,讓我們稍微冷靜下來,只需編寫可以將其工作分成兩個功能較弱但功能更強大的內核的軟件。這種方法有兩個主要問題(除了需要時間讓軟件世界適應它):1。使芯片更大,或者使單個芯更小。有些任務根本不能分成兩個同時運行的部分。只要你可以縮小它們,就可以繼續添加核心,或者讓芯片變大並防止散熱問題。哦,讓我們不要忘記客戶。如果我們改變我們的用例,行業必須適應。看看移動行業提出的所有閃亮的“新”事物。這就是為什麼移動部門被認為是至關重要的,每個人都希望得到它。

是的,這種策略將達到其局限!英特爾知道這一點,這就是為什麼他們說未來就在其他地方。但只要價格便宜,有效且可行,他們就會繼續這樣做。

最後但同樣重要的是:物理學。量子力學將限制芯片收縮。光速不是一個限制,因為電子不能以矽的光速傳播,實際上它比它慢得多。而且,衝動速度使硬帽達到材料提供的速度。就像聲音在水中比在空氣中傳播更快一樣,電脈沖在例如石墨烯中比在矽中傳播得更快。這導致了原材料。就其電性能而言,石墨烯是偉大的。它會為構建CPU提供更好的材料,遺憾的是它很難大量生產。


5
2017-08-15 15:49





說(作為一個不切實際的例子,但仍然應該得到重點)你有一個運行在100F的CPU。多核通常如何工作是通過以100F運行的CPU的時鐘頻率來降低它,從而降低速度。因為它不再像熱一樣運行,所以它們可以在它旁邊放置第二個,第三個甚至第四個,而不會顯著影響CPU的整體溫度,並從多核中獲益。這顯然帶來了一些開銷,因為核心仍然需要從一個地方控制一個核心。您添加的核心越多,開銷就越大。至於單核心,你加速它們的速度越快,它們產生的熱量就越多。這顯然有物理限制(即在某一點之後,它開始變得對性能有害,如果它運行太熱則甚至是危險的)

隨著時間的推移,他們已經找到了減少CPU物理尺寸的方法,這就是為什麼我們還沒有真正遇到需要更多空間的要求,但是例如,16核心CPU並不存在(在由於物理尺寸的限制,服務器級設備之外的服務器級設備之外,因為服務器級CPU的物理尺寸明顯大於標準消費級。


2
2017-08-15 14:30





CPU =汽車發動機:製造一款功率更大的汽車更容易製造16門汽車,即蘭博基尼,而不是高轉速汽車,它將有一個巨大的汽缸/汽缸在100 000轉/分鐘。

原因是物理和化學,矽需要用計算火箭燃料代替,以改變核心數和核心速度之間的平衡。


2
2017-08-17 07:58





我會說計算能力限制的主要限制主要與我們將電子通過電路移動的速度限制有關(光速 電子漂移)。你提到的還有很多因素。

添加額外的內核不會使處理器更快,儘管它允許它在相同的時間內處理更多。

摩爾定律 是一篇非常有趣且內容豐富的讀物。這句話特別適用於此:

還可以限制質量為1千克,體積為1升的相當實用的“終極筆記本電腦”的理論性能。這是通過考慮光速,量子尺度,重力常數和玻爾茲曼常數來完成的,性能為5.4258⋅1050 每秒大約10次的邏輯運算31 位。


2
2017-08-15 14:38



順便提及,電子實際上非常緩慢地移動(“漂移速度”),大約為每秒毫米IIRC。你更多的是指速度 電場 傳播。 - Bob
我知道我不應該像我最輕微地理解物理一樣。 :)感謝您對此進行更正/通知。 - jredd
此外,傳播速度將產生顯著影響的實際時鐘速度更接近10+ GHz。現代處理器在更高時鐘上更喜歡多核,還有其他原因。 - Bob


長篇故事甚至更短:

我們真的不需要更快的CPU。除了一些高度專業化的用途之外* CPU多年來一直不是瓶頸 - 所有外圍設備如存儲器,存儲器和網絡通常會使CPU等待數百萬個時鐘週期,在此期間它可以執行其他操作。第二個核心可以做更多“其他事情”,從而產生對用戶更高性能的感知。

許多移動設備,筆記本電腦等都會降低CPU頻率,以延長電池使用壽命和降低溫度。如果您的主要客戶以1.3GHz運行它,那麼開發3.5GHz ARM內核的動力不大。

  • 那些專門的用途並不足以證明開發5GHz核心的合理性。他們也不關心熱量或功率 - 購買最快的,超頻它和螺栓在水冷散熱器大小的烤麵包機。

1
2017-08-16 05:36



這不是“感知”,而是“更好的延遲”。我認為這是我們遇到的主要問題之一;強大的單線程吞吐量​​,不惜一切代價心態。消費者操作系統還不是面向實時的,也不是從根本上面向並發或併行的。 - Rob
@peter你提出了一個很好的觀點,並感謝你解釋。這是我作為程序員需要記住的東西。 :)儘管如此,這個問題的目的仍然是一個側面問題。我的問題是為什麼我們 不能 獲得更快的時鐘速度;你的答案是關於我們目前不需要的原因。 - Nathan Long
@NathanLong“不能”和“不需要”有聯繫。您無法獲得更快的處理器,因為沒有人願意投入開發它所需的十億或五個(5GHz可能無論如何都在推動物理限制)。沒有人願意投資,因為當整體處理器速度趨於下降時沒有現實的市場 - 一些目前的製造台式機處於1.5GHz級別(10年前的頂級產品),因為它更便宜,更酷,更快,適合該市場分割。 - peter