GDDR6為FPGA帶來記憶體頻寬優勢

作者 : 黃崙,Achronix資深應用工程師

傳統的CPU已越來越不堪重負,以硬體加速減輕CPU的負擔,是滿足未來性能需求的重要發展方向。硬體發展的需求對用於加速的硬體平台提出了越來越高的要求,可以概括為三個方面:運算能力、數據傳輸頻寬以及記憶體頻寬...

隨著網際網路時代的到來,人類所產生的資料量發生了前所未有的爆發式成長。 根據IDC預測,全球資料量將從2019年的45ZB快速增加到2025年的175ZB。同時,全球資料中心近30%將需要即時處理,因而帶來了對FPGA等硬體資料處理加速器的需求。如圖1所示。

圖1:全球數據成長預測。

在此資料量高速成長的情況下,用於傳輸數據的網路頻寬和處理數據所需要的運算能力也必須急速增加。傳統的CPU已經越來越不堪重負,所以用硬體加速來減輕CPU的負擔,是滿足未來性能需求的重要發展方向。未來的硬體發展需求對用於加速的硬體平台提出了越來越高的要求,可以概括為三個方面:運算能力、數據傳輸頻寬以及記憶體頻寬。

例如,Achronix新一代Speedster 7t FPGA,採用台積電(TSMC)的7nm製程技術,即根據未來硬體加速和網路加速的需求,針對這三個方面都做了最佳化,消除了傳統FPGA的瓶頸。特別是為了提高記憶體頻寬,Achronix透過採用硬核GDDR6控制器帶來更多優勢。

GDDR6的發展

在GDDR的設計之初,其定位是專為繪圖顯示卡最佳化的一種DDR記憶體。因為2000年後電腦遊戲,特別是3D遊戲的發展如火如荼,使運行電腦遊戲的顯卡需要有大量的高速影像資料交互需求,GDDR在這種情況下應運而生。第一個GDDR標準是基於DDR的GDDR2,隨後發展到基於DDR3的GDDR5,在一段時間中非常流行。

2016年,GDDR5X正式發佈,導入了具有16n預取(Prefetch)的四倍資料速率模式,但代價是存取粒度從GDDR5的32Byte提高到了64Byte。 2018年,GDDR6發佈,資料速率達到了16Gbps,頻寬幾乎是GDDR5X的兩倍,同時採用了雙通道設計,存取粒度和GDDR5一樣是32Byte。

GDDR6和DDR4/5的比較

GDDR一直以來是針對繪圖顯示卡所最佳化的一種DDR記憶體。因為顯卡處理影像數據,特別是3D影像數據對記憶體頻寬的要求更高,GPU和GDDR之間的數據交換非常頻繁。而DDR記憶體專注於與CPU進行數據交換的效率,因此對於整體存取性能、低延遲更為看重,所以在CPU和傳統的FPGA中基本都是用DDR4。

隨著硬體加速需求對於記憶體的頻寬提出了越來越高的要求,傳統的DDR4頻寬顯然已經無法滿足。2020年7月15日,JEDEC儲存協會正式發布了DDR5 SDRAM的標準(JESD79-5),記憶體頻率相對DDR4的標準頻率有了大幅的提升,總傳輸頻寬也提升了38%,但是還是和GDDR6的頻寬有一定的差距。如圖2所示,GDDR6和DDR4/5的頻寬比較。

圖2:GDDR與DDR頻寬發展比較。

如果實現同一個大頻寬儲存的應用,在提供相同記憶體頻寬的情況下,無論在設計複雜度、PCB佔用面積,還是在功耗方面,與DDR4相比,GDDR6的性能都有很大的提高,如圖3所示。

圖3:GDDR6和DDR4性能比較。

GDDR6和HBM2的比較

高頻寬記憶體(High Bandwidth Memory,HBM),最初的標準是由JEDEC在2013年發佈。 2016年1月,HBM的第二代HBM2正式成為工業標準。 HBM的出現也是為了解決記憶體頻寬問題。與GDDR6不同的是,HBM記憶體一般是由4個或者8個HBM的Die堆疊形成,我們稱之為一個Stack。如圖4所示。

圖4: HBM Die的堆疊。

以市面上帶有HBM2的高階FPGA為例,這個系列的FPGA整合了1~2個這樣的HBM2 Stack。兩個Stack之間是相互獨立的,各自有自己的位址空間。每個Die都有獨立的兩個128bit Channel,所以4個Die 8個通道就是1024bit位元頻寬,HBM2的頻率是900MHz,按DDR的方式存取,一個Stack總共頻寬是900(MHz) x 2 (DDR) x 1024(位寬)/8 = 230GB/s,兩個Stack最高可以達到460GB/s頻寬。

例如,Achronix的Speedster 7t FPGA整合了8個GDDR6硬核,每個GDDR6的硬核支援雙通道。總頻寬是 16Gbps x 16 (位寬) x 2 (通道) x 8 (控制器)/8 = 512GB/s,略高於帶HBM2的FPGA記憶體頻寬。

從成本上來看,目前GDDR6與HBM2相比有著很大的優勢,HBM2製程技術要求高,目前晶片的良率和產量都會受到很大的影響。同時GDDR6使用起來更靈活,使用晶片外的DRAM,可以根據應用要求,選擇不同速率、不同容量的GDDR6顆粒。

HBM2的優勢在於整合度高,不佔用PCB板的面積。圖5是DDR4、GDDR6和HBM2在成本上的一個綜合比較。

圖5:DDR4 vs GDDR6 vs HBM2。

GDDR6技術細節以及Clamshell模式

GDDR6結構如圖6所示。它採用16n預取結構,一次寫入操作或者讀取操作的數據是16n。每個GDDR6顆粒有兩個獨立的通道,每個獨立的通道存取獨立的儲存空間。對於每個通道,讀或者寫的位寬是256bit或者32Byte。P-to-S converter是一個並變串的轉換器,把每個256bit位寬的數據轉換成16位總線,每位總線上傳輸16bit的數據。這樣GDDR6每個通道最小的存取粒度是256bit或者32Byte。

根據GDDR6這樣16n預取結構,內部儲存陣列如果周期是1ns,則I/O上的數據率則是16Gbps。

圖6:GDDR6顆粒結構。

一個GDDR6控制器支援兩個獨立通道,一個GDDR6顆粒也是兩個獨立的通道,所以在通常模式下,一個GDDR6控制器對應一個GDDR6的顆粒,用x16模式,實現最高512Gb/s的頻寬。

因為目前市面上GDDR6顆粒的最大容量是16Gb,在有些應用中如果對容量有一定的要求,可以使用一種叫Clamshell的連接方式,如圖7所示,每個GDDR6控制器連接兩個GDDR6顆粒,每個GDDR6的顆粒用x8模式,這樣在這種Clamshell模式下,頻寬不變,但是所支援的GDDR6的容量倍增了。

圖7:GDDR6的Clamshell模式。

GDDR6在7t1500上的讀寫效率
最後,我們測試7t1500上GDDR6控制器的讀寫效率,所有的測試結果基於模擬數據。測試環境如圖8所示。因為7t1500包含了晶片上網路(NoC),並且NoC已經實現了仲裁,時脈域轉換的邏輯,我們用三個用戶邏輯透過NoC存取同一個GDDR6 Channel,得到的綜合讀寫效率更能反映用戶實際運用中的場景。

圖8:GDDR6讀寫效率測試架構。

在不同的突發長度和不同的位址存取方式下的測試結果如圖9所示。

圖9:GDDR6讀寫效率。

本文原刊登於EDN China網站

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

發表評論