GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

經常有網友問“GPU都DDR6了為什麼CPU還在用DDR4?”,如果簡單的回答說你漏看了一個G字,似乎並不能令人滿意。問題接踵而來,GDDR6比DDR4如何?6這個數字顯然看起來比4牛了不少。如果我們用一個用於GPU,一個用於CPU來分野,也似乎十分蒼白。DDR可以用於顯卡。同一個GPU核心,往往低端顯卡用DDR內存,高端用GDDR內存,再高端用HMB2內存;GDDR也可以用於主存。PS4和Xbox One用了同樣的AMD CPU,但一個用了GDDR,另一個用了DDR。GDDR和DDR的應用場景模糊了起來,那麼是什麼原因,為什麼電腦主存都是DDR,而顯存大多是GDDR?

儘管GDDR6的6說明不了什麼,但如果我們來觀察市面上最新的內存產品:GDDR6和DDR4,就會發現GDDR6似乎佔盡優勢。脫胎於DDR3的GDDR5/GDDR5x和GDDR6以高帶寬著稱,同時功耗也相當低,更加省電:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

(注:LP4是指LPDDR4)

似乎暗示我們GDDR才是未來的發展方向,是這樣嗎?答案是否定的。為了讓大家知其然,也知其所以然,我將GDDR的冤家HBM2也放進來,來個一鍋燉,綜合介紹一下他們的區別。對技術不感興趣的同學可以直接看結論部分。

我前面已經介紹了大量的DDR相關內容,篇幅所限,不再重複。沒有看過的同學可以移步那裡,它們是讀懂本文的基礎。我們重點放在GDDR和HMB的技術細節,以及和它們和DDR的比較。

GDDR5/GDDR5x/GDDR6

GDDR3已DDR3為基礎,慢慢發展到GDDR6,已立四代。名字裡面的G字,表明了它是為了顯示優化而來。它的內存顆粒區別於DDR的DRAM,叫做SGRAM (synchronous graphics random access memory)。

它的內存訪問方式也和DDR(Double Data Rate)一樣,在時鐘上下沿各採樣一次,對得起名字中的Double字樣。DDR4也是如此,所以我們看傳輸率是時鐘的兩倍:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

注意紅框和籃框部分的比較

但我們看GDDR5的參數就會發現不同:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

7Gpbs是1750MHz的4倍而不是2倍,這是怎麼回事呢?秘密就隱藏在GDDR對DDR的改變上:引入了WCK/WCK#(word clock),它的速度是CK/CK#的兩倍,而數據DQ的採樣是在WCK而不是在CK的上升沿和下降沿採樣。此改動將傳輸速度憑空提高了一倍,從而主要拉開了和DDR的差距。相比差不多的DDR4 1600MHz,只提供3200MT/s,而1750MHz的GDDR5,則提供7000MT/s的傳輸率。

GDDR5單顆顆粒提供x32的位寬,如上圖籃框所示,提供:7G × 32bit / 8bit = 28GB/s的帶寬。最高可以達到32GB/s。加上GDDR的控制器Channel往往比DDR多很多,整體傳輸率是十分大的。

GDDR5x在此基礎上引入了QDR(quad data rate):

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

又在此基礎上再次翻倍,在WCK的週期採樣四次!嚴格意義上已經不是DDR了。這讓它的傳輸率可以高達14Gbps(保留上衝16Gps),單顆粒可以高達56GB/s。GDDR6再次提高,最高可以單顆粒提供72GB/s的超高帶寬。

GDDR從LPDDR,也就是手機等低功耗設備的標準中吸取了不少內容。這有助於讓顯存相當省電,電壓相對DDR來說更低。

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

HBM和HBM2

HBM全稱High Bandwidth Memory。一般一個HBM內存是由4個HBM的Die堆疊形成:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

我們叫做一個Stack。Stack和Stack之間是獨立的,各自有自己的地址空間。每個Die都有獨立的兩個128bit的Channel,4個Die就有8個Channel總共1024bit的位寬

這樣儘管HBM的頻率並不高,一般只有500MHz,但也是DDR方式訪問,所以帶寬總共:

500 × 2 × 1024 / 8 = 128GB/s

一出現就已經超過了當時的GDDR5x,甚至最新的GDDR6都自嘆不如。HBM2更將頻率提高一倍,整體單Stack帶寬高達256GB/s!更是從4層Die,變成了8層,容量可以更大:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

像不像三星自己的開發大樓?:)

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

HBM還有個優勢是封裝相當小,同樣容量比GDDR6小很多,這就是3D封裝的好處:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

注意GDDR5是小b,而HBM2是大B,容量是GDDR的4倍,但更小。小封裝讓GPU的顯卡更小,一個典型的GPU對比:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

HBM顯然更加小巧。我們比較一下兩者的帶寬:

GDDR5:12 channel ×28GB/s = 336GB/s

HMB: 4 stack × 128 = 512GB/s

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

HMB相對GDDR來說,帶寬高,更省電,封裝更小,簡直完美?那GDDR為啥還存在?

為什麼DDR和GDDR還存在?HBM有啥弱點?

似乎DDR完全沒有存在的必要,較GDDR帶寬低功耗高:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

而我們知道DDR不僅活著還在緊鑼密鼓的張羅馬上就要上市的DDR5,這是為什麼呢?GDDR為了圖像顯示和渲染,帶寬很大,更省電,但有四個重要的缺點:

1.延遲高。也就是CAS的Latency高,這讓GDDR更適合圖像處理這種高併發的,大塊搬移內存的操作。而像CPU這種幾乎完全隨機的訪問,延遲更加重要。

2.容量小。我們知道 X幾對內存容量是十分重要的。GDDR一般X32甚至X64,不容易組成大容量內存。

3.價格貴。工藝要求高,時序複雜,更貴。

4. 不適合CPU cacheline。這個我就不展開講了,大家可以參考我講的為什麼DDR4是8n prefech來考慮這個問題。

HBM的缺點呢?那就是更貴,貴的多。堆疊技術讓傳輸速度快,信號質量好,更近更省電,但1024個bit的位寬是個大麻煩:

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

注意TSV,也叫做硅通道。它負責穿透堆疊的Die來傳輸數據和信號。別看示意圖中就幾個,實際上1024個bit的位寬這種通道可以達到超過4000個!製作工藝十分複雜。也很貴,這是HBM不能鋪開的最主要原因。

結論

東西雖好也怕貴啊,只有合適的才是最好的。HBM雖好,但是太貴了。DDR還是會存在相當長的一段時間。但如果Intel和AMD的CPU上HBM2,也應該只出現在高端和服務器CPU中。

GDDR6 vs DDR4 vs HBM2?為什麼CPU還不用GDDR?

如果引入HBM在內存系統中,加上DIMM類型的傲騰內存,我們就可能有三種內存共存的情況,每種內存都有自己的好處:HBM快,但是少;DDR內存多些,居中;傲騰內存最慢,但是容量大,而且內容不會丟失。三種內存可以形成互相cache的關係,也可以都報告給操作系統,讓操作系統根據它們的特性和任務的特性,來主動選擇具體存在哪裡。如此,就形成了異構內存系統,這是內存發展的方向。

"


分享到:


相關文章: