你是否有錢的可以了解Intel處理器的高端玩法了嗎?

本文是Skylake/Cascade/Cooper/Icelake-X/SP的基本介紹以及雜談。

Ringbus & Mesh​

​在Intel的CPU產品線中,主要使用的總線結構為兩種,Ringbus和Mesh。Ringbus主要是給消費級的處理器使用,而Mesh則是給服務器的CPU使用。

在Skylake中,Ringbus上的節點配置是:1個GPU核心,1個SA模塊 SA模塊包含了PCIE RAM等一堆IO控制器,剩下就是每一個Skylake Core佔據一個節點,即是X+2的配置。因此Skylake家族最低是4個節點的Ringbus,最高是10個節點的Ringbus。 一個Skylake Core有著32B的讀和32B寫的寬度,也就是讀寫寬帶分別是32*Ringbus Clock,例如是3G的Rinbus頻率,就是96GB/s的單向寬帶。GPU則是64B(但是沒查清楚是單向的還是雙向的,且似乎使用GPU的頻率計算),SA節點的寬帶我查不到,不過無論怎樣,可以把這個96GB/s理解為每個Ringbus節點至少能達到的寬帶速度。

你是否有錢的可以瞭解Intel處理器的高端玩法了嗎?



​Ringbus的延遲是線性的,核心數量越高,延遲也就越大,並不適合較多的核心數(一般認為10核心附近是一個Ringbus的上限)。超過了10核心後,就需要一些其他的結構了,Broadwell-E和之前的服務器端採用了多重Ringbus,而Skylake後採用了全新的Mesh結構。 Mesh 是一個2-D的網絡結構,其複雜度是 根號n的複雜度。


你是否有錢的可以瞭解Intel處理器的高端玩法了嗎?


根據Intel的描述,一個Skylake-X的核心其訪問LLC的寬度翻倍到了64B,此時假設Mesh頻率仍然是3G,那麼其單向寬帶就到了192GB/s。 Skylake有三種核心佈局:​

LCC:2個3通道內存控制器​+10個核心+3個PCIE 16控制器(其中一個為16+4DMI的)+ 加上4個節點的North Gap (包含2*UPI 20,2*PCIE 16, PCIE*16+4等控制器),因此一共16個節點,4*4佈局。

HCC:相比於LCC多了8個核心,所以一共24個節點,佈局為6*4。​

XCC:XCC的核心規模是最大的,​28個核心+2個內存構成了5*6的核心佈局,加上6個節點的North Gap 就是6*6的佈局了。 XCC的North Gap多了一個UPI X20控制器和一個PCIE 16控制器。 3個UPI保證了XCC核心在4路服務器的時候每個核心都可以直接互聯,並且可以支持8路的連接。 HCC和LCC理論上只能4路,並且對角線位置無法連接。 至於多出來的一個PCIE X16控制器,則是拿去連接額外芯片的(如FPGA),並不會開放給用戶。

你是否有錢的可以瞭解Intel處理器的高端玩法了嗎?



Mesh​

在Skylake-X上,Mesh的帶寬高了很多,理論延時跳數也低了很多。 不過由於單個跳數的開銷增加,實際10核心的Skylake-X延遲比較感人,還是比較適合多核心場景。​

根據每個核心的寬帶至少有192GB/s, 而North Gap附近的IO總寬帶以及內存寬帶明顯低於這個數值可以推測的是,以後內存控制器即便保持為2個節點,也足夠支撐4通道和更高的寬帶了。​對應的更多的PCIE通道支持也是沒有問題的,都不需要破壞核心佈局。​

Mesh並不要求嚴格的正方形,目前根據IO的不同,Intel分別有寬度為4和6的兩種。只不過受限於14nm,XCC的核心面積已經接近700了,不能再增加了。

但是假若10nm量產了,即便縮水了,但是也基本能保住2倍的密度。 那麼Icelake-SP的XCC核心可能會到8*6,因為第二個6是要保證IO佈局變動不大 且要是偶數,增加IO不如增加長度,所以就是在現有XCC上上下增加各一行,最終48個節點,42核心。 42核心對於剛剛出爐的10nm非常合適,核心增多,面積也縮小了。

Cascade Lake-X 只是工藝優化,佈局不會改變。 Cooper Lake理論上和Icelake SP兼容插槽,但是因為還是14nm,所以傾向於還是28核心。

膠水AP

由於AMD EPYC2要打核戰(喪心病狂的9個膠水Die的64核心)Intel這邊也是準備玩膠水了。 可能Cascade-X就會有膠水,出現Cascade-AP(之後Cooper和Icelake SP同理)的型號,膠水兩片XCC核心。 那麼怎麼膠水呢?

如果Intel沒有隱藏、也不修改IO,那麼Cascade-AP可以使用XCC多餘的一條UPI 互聯,物理上走EMIB。這樣其實互聯完後就有96可用+32條隱藏PCIE 4個空餘UPI了。 要是Intel肯修改的話,可以把另外一個多出來的PCIE16拿出來改造成第四個UPI,畢竟Die2Die的帶寬要求比較高,那麼同樣不需要修改佈局,同樣剩餘96個PCIE和4個空餘UPI。

幻想

如果,如果,Intel按照現在EPYC的方式互聯,那麼我們其實可以看到一個112核心的巨無霸,每個Die的3個UPI拿來做互聯,然後Socket2Socket用PCIE連接。 或者一個Socket裡面每個核心拿兩個UPI互聯,這樣一個Socket剩餘4個空餘UPI,再拿來Socket2Socket互聯就好了。

總結

簡單總結和展望下Intel Mesh CPU,可能存在諸多問題,目前就當做第一個版本 V0.1。 後續隨時修正。 走過路過千萬不要忘了關注。


分享到:


相關文章: