cpu爲什麼要堆那麼多的核?做成一個性能超強的單核不行嗎?

愛吃香蕉的小仙女


技術路線的選擇要考慮可行性,所謂可行性不僅僅包括能否實現,還包括實現難度是不是在可接受的範圍,實現的成本是不是可以承擔。而題主說的把CPU做成一個性能超強的單核,技術難度大,成本也高,並不實用。

CPU之所以選擇了多核心發展,就是因為單核心很難繼續做下去,無法持續穩定提高性能,廠商才做的多核心。

單核性能的提高遇到了瓶頸,多核處理器技術的成熟共同決定了多核處理器成為技術發展的主流選擇,而單核處理器被拋棄。

我們看看當年的幾代入門級處理器的性能,就會發現,單核性能的提升已經進入了瓶頸期。第四代入門級的 i3 4130 CPU,單核性能成績為 1982。上一代入門級的 i3 3220 CPU,單核性能成績為 1759。再上一代入門級的 i3 2130 CPU,其單核性能成績為 1744。經歷三代升級,性能的提繩微乎其微。一般認為,只有性能提升五成以上才會有比較直觀的感受。因此,單核性能的突破是一個難以克服的困難,不一定說完全不能實現,但至少是一件非常困難的事情。從理論上來說,從1990年左右開始,提高芯片的性能主要方法有兩種:

1.在有限面積內加入更多的場效應管。

2.提高時鐘。

經過二十多年的發展之後,我們已經幾乎把這兩種方法應用得爐火純青,單核CPU想要繼續突破面臨著難以克服的功耗和發熱問題,而時鐘也會受到限制。相比之下,多核CPU可以通過並行計算實現降低時鐘的目的,與此同時維持原有的計算能力。而多核處理器的協同能力則隨著技術成熟而變得穩定高效,在這個情況下,迴歸單核路線,嘗試做一個超強的單核處理器是不符合現實需求的做法。

而從另外一個角度來說,就算我們繼續發展單核技術,不計代價投入,不計成本生產出來。但是,理論來說,單核處理器的性能是會有上限的,這個上限一定會比多核處理器低。這就好比一個人可以通過鍛鍊提高身體力量,但是你再能打,來十個二十個人,你也夠嗆能對付吧?所以,個體的提高很重要,但是多人合作,良好的協作才是提高戰鬥力更有效更現實的選擇。同樣的道理,當多核處理器可以良好協作的時候,取代單核處理器成為技術選擇的主流也是情理之中的事情。超強單核的技術構想則不實用,太昂貴,並不存在實際可行性。


鎂客網


多核CPU就是因為如今的單核CPU已經難以大幅度提升性能才誕生的,像X86和ARM這類通用處理器架構,一旦進入成熟期想通過修改架構來提升性能難度非常大,相比為了單核性能而消耗的時間和人力成本是相當不划算的,可以參考下奔騰4當年為了提升單核性能而造成的失敗後果。

單核性能的提升除了架構以外很重要的一點是取決於頻率和緩存,而頻率限於CPU溫度和功耗不可能增長太快,緩存限於CPU面積和成本同樣不能快速增長,這樣頻率和緩存只能依靠半導體工藝的進步來逐步提升。

最無奈的是,如今半導體工藝進步的越來越緩慢,單單是英特爾從14nm到10nm就用了好幾年的時間,工藝進步慢,CPU的單核性能和效率就難以大幅度提高,英特爾又不可能把X86架構大幅改動,即使ARM處理器工藝進化更快,但是受限於手機對續航和芯片面積的要求,CPU的單核性能仍然無法大幅提高。

相比之下,CPU通過增加核心數的方式來提升性能是效率最高的,因為CPU每個核心幾乎都是相同的,只要整體架構定型,設計製造起來相對容易得多,而應用程序通過多線程優化可以有效利用到多核CPU,最高甚至能達到翻倍的提升,這可不是單核簡單提升一下頻率和架構就可以達到的幅度,比純粹做單核的性價比高多了。

就這樣隨著多核CPU普及,支持多核的應用程序也越來越多,多核CPU也就越來越吃香,當然如果拿多核CPU的晶體管來做一顆超強單核也未必不可,但是這對製造商的良品率要求太高了,因為是單核CPU,一旦晶圓和芯片上有一點瑕疵就可能使CPU報廢,而多核CPU可以通過屏蔽核心來降級銷售,成本和利潤自然無法相比。

英特爾、高通、聯發科都是企業,必須要權衡成本和利潤,綜合來看,做多核CPU的好處自然更符合它們的利益,即使是蘋果,也是在不斷增加A芯片的核心數,所以多核CPU是大勢所趨。


嘟嘟聊數碼


我並不是專家,我大概一下,我個人的看法

理論上是可以,可以設計一個非常大的單核架構,把單核心的面積放大,頻率可能可以很高。

但是我們看幾乎所有做處理器的廠商,無論手機還是電腦,都沒有人願意這樣做。

雖然說蘋果手機的處理器單核心是放大了,但是由於ARM指令集的限制,實際上蘋果手機的單核心與電腦的單核,跑分上蘋果可以超越英特爾,但是實際用起來的時候,英特爾的速度絕對會比蘋果的處理器快上很多倍,只是跑分上看就可以超越罷了,因為英特爾是X86指令集

即便是英特爾,都沒有一味的把單核心放大,它還是採取多核心,我個人認為可能是受到工藝和發熱功耗的影響。而且如果只是單核心的話,在多任務處理方面,可能效率並不高。

就像你請了一個員工,非常厲害,可以同時做很多份工作,一心多用,但是呢,相比之下,你請五個人,每個人一心一用這樣每個人都可以專心做一件事情,而不是一個人同時做5,6樣事情

如果只是一個非常強大的單核心處理器,在多任務方面,他就是一心多用,可能會出現錯誤,效率降低,我想大概就是這個意思,所以幾乎沒有一個處理器廠商願意無限的放大核心面積。

即便是蘋果手機的處理器,他雖然單核面積非常大,但是他到最後還是採取多核心。

以上是我個人的觀點,畢竟我不是處理器專家,我只能大概解釋一下


張招忠號導彈驅逐艦


我給你解釋一下...你使勁理解一下...

...

計算機處理器有個參數叫頻率...什麼2.4G 4.5G啊...這個是指一秒鐘有多少個時鐘週期...不是指令週期...指令週期一般為1-12個時鐘週期甚至更多...一般只有內部寄存器讀寫指令.加減乘指令能做到1時鐘週期...而內存存取指令的週期數很高...所有數據都在內存...根本無法有效減少內存讀寫指令...需要注意的是內存讀寫速度基本是恆定的...也就是CPU快沒用...比如假如在2.4G的處理器中讀內存中的數據為6個時鐘週期.那麼在4.8G的處理器就需要12個時鐘週期.也就是說在0.4G的處理器裡是一週期...所以單純提高頻率提高性能微乎其微...

...

最先想到的就是利用CPU在等待讀內存數據的週期中提前讀下一個內存中的數據...這一系列技術最早叫預讀.但代碼有條件跳轉.能判斷條件跳轉的預讀叫分支預測.預讀的層深叫流水線...

...

流水線並不完美...在多任務操作系統中..操作系統的時間片是通過保存和恢復整個寄存器實現的.術語叫保存恢復現場...這樣切換會嚴重破壞預讀的成功率...影響預讀命中率...導致CPU仍然需要等待讀取數據...解決這個問題的辦法...就是兩個處理器核心分別處理兩個進程...當進程為3-4個的時候...在單核處理器上程序一定會正常運行...但破壞預讀性能...運行效率很低...也就是說1個4G的核跑4線速度不如4個1G的核跑4線....

...

所以提高頻率完全不會顯著提高處理器性能...而提高核數會提高性能很明顯...


ACME63610374577


性能超強?何為性能超強,運算速度快嗎?

就用最簡單的加法指令來說,32位的加法器,用到的邏輯電路就是那麼個原理,再怎麼升級,也就那樣了。單個加法器的速度只能靠時鐘頻率來提升,但是太高了,會引起異常。比如邏輯門電平轉換跟不上時鐘的速度了,就會完成計算錯誤。

提升時鐘頻率這條路不行了,那怎麼辦,增加多個計算單元嗎?可是光增加計算單元也沒什麼用啊,一堆計算單元排著隊等著控制單元分配任務嗎?感覺還是有點兒治標不治本。於是只能再增加一個核心了。兩個不夠,那就四個。四個不夠,那就八個。

cpu的控制核心給計算核心分配任務時,它不知道它取得下一個指令是什麼,是加?是減?是移位?是存儲?還是去控制io?所以他的計算核心是龐大且功能全面的。而gpu封裝了大量的小型計算單元,專門就是就是為了同時計算十萬個加法(舉個例子)而存在的。

所以cpu目前在時鐘頻率提高不了的情況下,只能通過堆核心,但不是堆一堆核心的方法來提高速度了。


蓬鬆的蛋糕


現代操作系統都是多任務系統,即便是IOS單任務指的也是APP,系統本身也是多任務,比如你可以邊聽歌邊看網頁。先看看早期的單核CPU是如何處理多任務的,聽歌和看網頁其實並不是同時候進行的,CPU在兩個任務之間不斷切換,形成兩個時間片,那任務之間切換肯定會影響應用的實時性,雖然CPU已經快到感覺不到延遲,但這個性能損耗是客觀存在的。到了雙核時代就不同了,可以把聽歌讓第一個核心處理,上網讓第二個核心處理,完全實時處理,當然操作系統本身還有很多進程在跑,所以也算不上實時處理,但比起單核性能起碼就提升了一倍。所以多核芯是CPU很重要的一項技術,畢竟單任務系統已經滅絕了。


光明右使8787


理論上工廠建一個超級大的生產線就可以,那為什麼要修好多廠房和生產車間呢?

一條生產線建的再大,也只能保證用最快的速度生產完一個批次的產品。如果要同時生產好幾個批次和品種的產品呢?那是選擇用這個超大生產線一個一個批次生產,還是建幾個生產線同時生產更好呢?

同樣的,做一個超級大核只能保證用最快的時間完成一個任務。但是,如果你的電腦要同時完成幾個任務呢?你是選擇讓這個超級大核一個個任務去做,還是選擇做幾個小核分別去做?

結論:

大多數時候手機和電腦要同時處理的是很多個任務,這時候讓多個小核分別處理比讓一個大核排隊處理更高效。而一個大核的製造工藝更麻煩,發熱功耗比幾個小核更難散熱。

再舉個不恰當的例子,你要從北京送一個火箭去西昌,只能用火車拉,但是你要從食堂送幾份盒飯到宿舍樓,最好還是叫幾個快遞小哥騎電動車給你送吧。我們日常使用手機和電腦遇到很多小任務的場景遠比需要處理大任務的場景多,所以做很多小核遠比做一個大核更實用。畢竟不是每個人一天到晚都有火箭需要送到西昌。但是幾乎每天都有人需要訂外賣。


陳江軒


不同的構架、工藝、指令集都會造成CPU性能不同,主頻可比作CPU每秒可以工作多少次,核心數表示多少人每秒可以工作多少次,單核主頻越高就會產生更高的熱量,對散熱造成壓力,可超頻的CPU這液氮下都可以超到7、8GHZ,但在風冷下5GHZ都快受不了了,所以每個CPU多集成幾個核心一起工作比廢時費力地提高那一點點頻率更划算。

而那些說什麼單核秒多核的是系統不同指令集不同性能表現也不同,工作效率的不同。


loading78506868


1.單核性能提升幅度有限,頻率有5G瓶頸,再高頻率有電子隧道效應,功耗直線上升,穩定性下降;

2.單核在一時刻只能做一件事情,沒辦法讓任務流起來,即使有指令流水線,也只是縮短了指令的平均執行週期,一個時刻仍舊最多隻有一個指令被執行;

3.多核CPU可以讓多個任務同時執行,軟件優化後還可以讓一個任務拆解在多個核心上運行,大大提高執行效率


啊歐阿嘔


CPU就是中央處理器,用於各種數據運算。提高CPU運行效率的辦法有兩種:1、提高單核運行速率;2、把要運算的東西分發不同CPU去處理,降低時間片輪循。

其中,提高單核運行速率的方法,一是提高頻率(本身頻率高,或通過超頻),頻率越高,發熱越大,能耗消耗大,現在講究低能耗,這種方式不是很可取,二是提高納米級工藝,這個就難度太大了,提高一點就是技術突破,通過這個方式沒法滿足市場的快速增長的需求。所以就剩下多核方式了。


分享到:


相關文章: