HBM會取代DDR成為電腦記憶體嗎?

作者 : 黃燁峰,EE Times China

與HBM搭配的CPU並非不存在,富士通的超級電腦富嶽(Fugaku)內部所用的晶片,就搭配了HBM2。另外Intel即將發佈的Sapphire RapidsXeon處理器明年就會有HBM版,還有其他…

高頻寬記憶體(High Bandwidth Memory,HBM)作為一種GPU顯示記憶體存在時,現在似乎已經不算罕見。很多人可能都知道HBM成本高昂,所以即便不罕見,也只能在高階產品上見到它。例如Nvidia針對資料中心推出的GPU;不過,AMD在消費級GPU上用HBM是比較少見的例子。

部分遊戲玩家應該知道,HBM是一種頻寬遠超越DDR/GDDR的高速記憶體,而且內部結構使用3D堆疊的SRAM,聽起來就十分高檔。有PC使用者曾經想過,要是HBM能用到一般的PC、筆記型電腦產品上,和一般的CPU搭配,豈不是太棒了嗎——雖然成本高,但GPU不是就在用HBM嗎?

 

AMD Radeon R9 Nano顯示卡旁的四顆封裝元件就是HBM。

 

HBM記憶體和CPU搭配如何?

其實與HBM搭配的CPU並不是不存在,富士通(Fujitsu)的超級電腦富嶽(Fugaku)內部所用的晶片A64FX,就搭配了HBM2。另外英特爾(Intel)即將發佈的Sapphire RapidsXeon處理器明年就會有內建HBM版;還有像是NEC SX-Aurora TSUBASA之類的產品。

如此可知,CPU搭配HBM起碼是可行的(雖然可能從嚴格意義來看,A64FX之類的晶片已經超越了CPU的範疇),只不過這些產品怎麼說都還是鎖定資料中心或者HPC應用。那是否因為價格高,所以才沒有下放到消費級市場呢?這可能是一個重要或相對接近源頭的原因。本文就借著淺談HBM的機會,來聊聊這種記憶體的特性和使用場景,以及它未來會不會取代現在電腦上十分常見的DDR記憶體。

 

從上方來看HBM。

(來源:富士通)

 

就HBM常見的形態來看,它通常以從表面看起來幾顆裸晶(封裝)的方式存在,和主晶片(如CPU、GPU)靠得很近。比如上圖,A64FX就長這樣,周圍的那4顆封裝元件都是HBM記憶體。這樣的存在形態,與一般的DDR記憶體就存在著比較大的區別。

HBM的特點之一,也是以相比DDR/GDDR更小的尺寸、更高的效率(部分)實現更高的傳輸頻寬。而且實際上每個HBM封裝內部是疊了好多層DRAM裸晶,所以也是3D結構;DRAM裸晶之間以矽通孔(TSV)和microbump連接;除了堆疊的DRAM裸晶以外,下層會有HBM控制器邏輯裸晶。然後最下層透過底層晶片(base die),如矽仲介(silicon interposer)來與CPU/GPU等互連。

從側面來看HBM。

(來源:AMD)

 

從這種結構不難發現,其互連寬度遠大DDR/GDDR,下方互連的觸點數量也遠遠多於DDR記憶體連接到CPU的線路數量。HBM2的PHY介面實施規模,和DDR介面不在同一個層面上,因HBM2的連接密度高出太多。從傳輸位元寬度的角度來看,每層DRAM裸晶是2個128bit通道,4層DRAM裸晶高度的HBM總共就是1,024bit。很多GPU、CPU周圍都有4片這樣的HBM記憶體,則總位元寬就是4,096bit。

作為對比,GDDR5記憶體每通道位元寬32bit,16通道的話總共就是512bit;DDR4的總位寬就更不用多談了。事實上,現在主流的第二代HBM2每個堆疊可以堆至多8層DRAM裸晶,在容量和速度方面又更為提升。HBM2的每個堆疊支援最多1,024個資料pin,每pin的傳輸速率可以達到2,000Mbps,那麼總頻寬就是256GBps;在2,400Mbps的每pin傳輸速率之下,一個HBM2堆疊封裝的頻寬就是307GBps。

 

DDR、LPDDR、GDDR和HBM的比較。

(來源:Synopsys)

 

上圖是Synopsys提出的DDR、LPDDR、GDDR和HBM比較,可以看看Max I/F BW這一欄其他選手的能力,與HBM2壓根不在一個量級。這麼高的頻寬,在高度平行運算、科學運算、電腦視覺、人工智慧(AI)之類的應用上,簡直就是無人能及。且從直覺上來看,HBM和主晶片靠得那麼近,理論上可以獲得更高的傳輸效率才對(從每bit資料傳輸消耗的能量來看,HMB2的確有很大優勢)。

感覺HBM除了成本和記憶體總容量落了下風,要真的用在PC上,豈不完美?

HBM缺點1:靈活性欠佳

真的是這樣嗎?HBM這類型的記憶體,最早是由AMD於2008年發起。AMD提出HBM的初衷就是對電腦記憶體做出功耗、尺寸方面的變革,後續多年時間中,AMD一直在嘗試解決裸晶堆疊的技術問題,後來找到了業界具備儲存介質堆疊經驗的合作夥伴,包括SK Hynix,以及interposer、封裝領域的廠商,才得以克服。

HBM在2013年,由SK Hynix首度製造問世,而且這一年HBM被JEDEC的JESD235標準採用。第一顆應用了HBM儲存的GPU是2015年的AMD Fiji (Radeon R9 Fury X);次年三星(Samsung)開始大規模量產HBM2——NvidiaTesla P100是最早採用HBM2的GPU。

從HBM的形態就不難發現其第一個缺點:系統搭配缺乏靈活性。對於早年的PC而言,記憶體容量的擴展是比較常規的能力。而HBM與主晶片封裝,不存在容量擴展的可能,在出廠時就已經將規格定死。而且它和現在筆記型電腦上,DDR記憶體焊死在主機板上還不一樣,HBM是由晶片製造商整合到晶片上的——其靈活性會更弱,對OEM而言尤其如此(雖然現在某些高階系統,可能存在HBM+DDR的解決方案,兩種記憶體作為不同層級的儲存系統來調配)。

對於絕大部分晶片製造商而言針對大眾市場(包括基礎設施市場)推展處理器,基於包括成本在內的各方面考慮,也不大可能推出各種記憶體容量的晶片SKU型號。這些廠商所推的處理器本身就有各種配置型號(如Intel Core處理器有各種型號)——如果再考慮細分記憶體容量的不同,製造成本恐怕也很難支撐。

 

Intel Lakefield處理器的記憶體疊在晶片上方。

(來源:Intel)

 

不過在消費市場上,更注重便攜性的使用者可能並不是很在意記憶體的擴展性。比如蘋果(Apple) M1就是其中的典型代表,8GB/16GB記憶體是靠在M1晶片一側。消費級產品中,為數不多會將記憶體都封裝到晶片上的產品,還有Intel Lakefield。這兩顆晶片的確都犧牲了記憶體的擴展性,但即便是奢侈如蘋果M1和Intel Lakefield,其實也都沒有採用HBM記憶體(當然這兩者的封裝方式也不是採用silicon poser這種晶圓級2.5D封裝)。

HBM缺點2:容量偏小

HBM的第二個問題就是,記憶體容量相比DDR會更受局限。雖說一片HBM封裝就可以堆8層DRAM裸晶,但實際上每層也就8Gbit,那麼8層就是8GByte。像A64FX這種超算晶片留4個HBM介面,也就是4個HBM堆疊封裝,則一顆晶片也就是總共32GByte容量。

這樣的容量,在DDR面前還是太小了。消費市場上普通PC堆疊大於32GByte的記憶體太常見了。不僅是PC、伺服器主機板上可擴展的記憶體插槽一大堆,某些DDR4/5 DIMM顆粒也在進行DRAM裸晶的堆疊。採用比較高階的DRAM裸晶堆疊,2-rank的RDIMM (registered DIMM)就能做到128GByte容量——考慮高階伺服器96個DIMM插槽,那就是最多12TByte的容量。

當然,HBM和DDR可以混合著一起用,HBM2負責高頻寬但小容量,DDR4負責稍低的頻寬但大容量。從系統設計的角度來說,HBM2在處理器這裡就更像是L4快取了。

 

HBM的DRAM裸晶。

(來源:Wikipedia)

 

HBM缺點3:訪問延遲高

對於PC而言,HBM一直都沒有應用於CPU主記憶體的一個重要原因在於其延遲很高。就延遲的問題,雖然很多科普文章會說HBM延遲表現不錯,或者像賽靈思(Xilinx)針對搭載HBM的FPGA形容其延遲與DDR相似,但可能很多文章談的「延遲」並不是同一個延遲。

當代的DDR記憶體,在規格上普遍也都會標CL (CAS延遲,列定址所需的時脈週期,表示讀取延遲的長短)。這裡所說的CAS延遲,是指從讀取指令(與Column Address Strobe)發出,到資料準備就緒的過程中間的一個等待時間。

在記憶體控制器告訴記憶體,需要訪問某個特定位置的資料後,需要若干個週期的時間以後才能抵達該位置並執行控制器發出的指令。CL是記憶體延遲中最重要的參數。就延遲長短來說,這裡的「週期」其實還需要乘以每週期的時間(越高的整體工作頻率,則表示每週期時間越短)。

 

 

對於HBM而言,如前所述其特性之一就是互連寬度超寬(或者說平行的傳輸線路超多,雖然市面上似乎也有更低位元寬度的版本)。這就決定了HBM的傳輸頻率不能太高,否則總功耗和發熱撐不住(而且也並不需要那麼高的總頻寬)。

HBM的頻率的確會比DDR/GDDR低很多,三星之前的Flarebolt HBM2每pin的傳輸頻寬是2Gbps,差不多是1GHz的頻率;後來有加壓提頻到1.2GHz的產品。三星當時提到這個過程還需要考慮降低超過5000個TSV之間的平行時脈干擾;而且要增加DRAM裸晶之間的散熱bump數量,來緩解發熱問題。上圖中AMD在列出HBM的頻率其實才500MHz。

先前浙江大學、蘇黎世聯邦理工學院有發一篇題為「Benchmarking High Bandwidth Memory on FPGA」的報告。這篇報告主要是研究HBM在FPGA上的細節特性,以及如何基於這些特性來提高FPGA的工作效率。這項研究是基於賽靈思Alveo U280進行的——這款FPGA上就有兩個堆疊的HBM子系統。

 

(來源:Benchmarking High Bandwidth Memory on FPGA)

 

這篇報告特別提到了:「HBM延遲遠高於DDR4。HBM晶片與對應FPGA的連接是透過串列I/O連接進行,需要針對平行-串列-平行轉換的處理。」上表是這項研究中呈現的HBM與DDR4閒時記憶體訪問延遲,這裡的page hit是指在記憶體列訪問之前不需要Precharge和Activate指令(訪問時,bank處於open狀態),可達成最小延遲的狀態。page closed/miss等詳情可以參見報告原文。

 

(來源:Benchmarking High Bandwidth Memory on FPGA)

 

可能從系統的角度來看,Alveo U280存在一定的特殊性,不過應該還是能夠說明問題。這裡的每個HBM堆疊都分成了8個獨立的記憶體通道(前面提到的疊4層DRAM裸晶),每個記憶體通道又進一步切分成了2個64bit的偽通道(pseudo channels)。似乎其他包含HBM的系統也是類似的構成方式。

在總共16條記憶體通道上,有32個AXI通道與使用者邏輯互動:每個AXI通道提供針對FPGA程式設計的標準介面,每個AXI通道只允許訪問各自的記憶體區域。為了讓每條AXI通道都能訪問完整的HBM空間,賽靈思導入了通道之間的切換。網路上還有更多針對HBM延遲的研究。更寬的位元寬,以及更複雜的系統始終是造成HBM訪問延遲更高的重要因素。

HBM適合用於PC嗎?

高頻寬、高延遲這個特性,決定了HBM非常適用於GPU顯示記憶體,因為遊戲、繪圖處理本身就是較大程度可預測的高併發工作任務。這類負載的特點就是需要高頻寬,而對延遲並沒有那麼敏感,所以HBM會出現在高階GPU產品上。根據這個道理,其實也決定了HBM非常適合HPC高性能運算、AI運算,所以A64FX和下一代Xeon處理器雖然是CPU,但也會選擇考慮用HBM作記憶體。

但對於PC來說,CPU要處理的任務具有極大的不可預測性,要求各種隨機儲存訪問,對延遲天生有更高的敏感度;而且對低延遲的要求往往還高於對高頻寬的要求。更何況HBM成本也很高,這就決定了至少就短期來看,HBM很難在PC上替代DDR,這個問題似乎也和GDDR是否可應用於PC類似。

不過就長遠來看,情況是誰也無法預料的。就如可以考慮混合方案;而且不同層級的儲存資源正在發生顯著的變化。對於裸晶內快取這種本來就在隱藏外部儲存延遲的組成部分而言,可能隨著處理器晶片上的快取越來越大,對系統記憶體的延遲要求反倒沒那麼高了。

本文原刊登於EE Times China網站

 

 

 

 

加入LINE@,最新消息一手掌握!

發表評論