多核 CPU 和多個 CPU 有何區別?

原文來自:http://www.solves.com.cn/it/yj/CPU/2019-06-24/1122.htmlhtml

 

 

多核CPU和多CPU的區別主要在於性能和成本。多核CPU性能最好,但成本最高;多CPU成本小,便宜,但性能相對較差。咱們來看一個例子:若是咱們須要組成一個48核的計算機,咱們能夠有這麼三種選擇:服務器

  1. 把48個核所有作到一個大Die上,Die很大。這個Die加上一些外圍電路組成一個單Die多核CPU。
  2. 弄4個小Die,每一個Die 12個內核,每一個Die很小。把這4個Die,加上互聯總線和外圍電路,所有封裝(Packaging)到一個多Die多核CPU中。
  3. 仍是弄4個Die,每一個Die 12個內核,每一個Die很小。每一個Die加上外圍電路封裝成一個單獨的CPU,4個CPU再經過總線組成一個多路(way/socket)系統。

咱們來看看他們的性能差距和成本差距。socket

 

性能差距

爲了很好的理解三者之間的區別,咱們經過一個生活中的場景分別指代三種方式。咱們想像每一個Die是一棟大樓,Die裏面的內核們,內存控制器們、PCIe控制器們和其餘功能模塊是其中的一個個房間。數據流和指令流在它們之間的流動看做房間裏面的人們互相串門,這種串門的方便程度和走廊寬度決定了人們願不肯意和多少人能夠同時串門,也就指代了數據的延遲和帶寬。工具

好了,有了這種方便的比喻,咱們來看看三種狀況分別是什麼。性能

48核的大Die是Intel至強系列的標準作法:優化

 

 這種方法就是既然須要這麼多房間,業主有錢,就建一個大樓,每層都是超級大平層:操作系統

 

 

走廊衆多,這裏堵了,換個路過去,反正方向對了就行,總能到的。因此人們能夠很方便的串門,也能夠有不少人同時串門。因此延遲小,帶寬高。3d

一個CPU pacakge裏面包了4個小Die的作法是AMD的標準作法,也有部分Intel也這樣:htm

 

 這種作法能夠看做業主沒錢搞大平層,但也要這麼多房間,怎麼辦呢?在原地相鄰得建4個小高層,再把小高層連起來,房間數目不變。怎麼把它們連起來呢?比較現代的作法有兩種:blog

 

 

這種作法也叫作MCM(Multi-Chip-Module),詳細內容能夠看個人這篇文章:

如何像搭積木同樣構建CPU?Intel和AMD都是怎麼作的?

其中AMD採用硅中介(Interposer),也就是上面那種;Intel採用EMIB(Embedded Multi-die Interconnect Bridge),是下面那種。

硅中介的作法能夠看做爲了兩個樓互通,咱們把地下都挖空了,搞了個換乘大廳。而EMIB能夠當作在兩個樓之間挖了一個地下通道。顯然挖通道更省錢省力,但由於通道是兩兩互聯的,若是大樓多了,還不如換乘大廳方便。

好了,那咱們的串門問題怎麼解決呢?由於樓和樓(Die和Die)之間只有地下互通,要串門的人都要作電梯到地下一層,經過地道或者換乘大廳到另外一個大樓地下,再作電梯去想要的樓層。路途遙遠,好多人都不想串門了,同時若是串門人太多,會擠爆電梯,不得不串門聯繫工做的人們在電梯口排起了長隊。顯然,建築四個相鄰小高層的辦法,延遲和帶寬都比較差。

那麼多CPU呢?

 

 

仍是沒錢蓋大平層,此次更慘,由於4層小高層間隔比較遠,爲了方便人們串門,不得不在園區裏面搞了班車,用於跨樓通勤。由於班車開停須要時間,人們串門更加麻煩了。

藉助這個比喻,咱們應該可以得出結論,這三種方式提供48核的算力,延遲和帶寬是依次降低的。降低的幅度和須要進行的work load有關,不能一律而論。你們能夠藉助一個工具[1]來具體測量一下內存的延遲:

 

 

成本差距

既然大平層這麼好,爲何還有人蓋小高層呢?存在都是合理的,固然是成本高了。我在這篇文章中講述了爲何Die大了成本就高:

CPU製造的那些事之二:Die的大小和良品率

簡單來講,晶圓在製造過程當中老是避免不了缺陷,這些缺陷就像撒芝麻粒,分佈在整個Wafer上:

 

 

若是考慮缺陷,Die的大小會嚴重影響良率:

 

 

上圖你們能夠點開看(圖比較大),其中不太清楚的紅色小點是晶圓的缺陷,在Die很大時,有很大機率它的範圍內會缺陷,而只要有缺陷該Die就報廢了(簡化處理);在Die比較小的時候,它含有缺陷的可能性就大大下降了。如圖中,隨着Die的減少,良率從第一個的35.7%提升到了95.2%!咱們舉個極端的例子,整個Wafer就一個Die,那麼良率只有0%了,生產一個報廢一個。誰還幹這麼傻的事!

這種成本增長不是線性的,而是指數性增長,具體的數字是廠商的核心機密,不爲外人道。但總的來講,結合前面的例子來講就是:

1個大Die成本 > 4個小Die+互聯線路總成本

那麼方式2和方式3成本誰高呢?實際上方式2節約了主板上大量佈線和VR等成本,總成本更低,也是主板和服務器廠商喜聞樂見的形式;而方式3每每用於堆出更多的內核和須要更多內存的狀況。

結論

相信讀到這裏,同窗們已經有了答案,結論開頭已經說明,就再也不贅述了。多核CPU和多Die乃至多路CPU,對操做系統等來看,區別不大,BIOS都報告了一樣多的不少CPU供他們調度。區別主要在於性能上面,大Die多核性能最好,也最貴。多Die性能降低,但經濟實惠。

最後要注意,這些性能區別有些是操做系統能夠感知的,如經過NUMA等方式,操做系統能夠具體作出優化。但也有部分是操做系統不可以知道的,只有經過各類真實的workload,用戶那裏纔會感受有明顯的不一樣。

相關文章
相關標籤/搜索