1. 概述
隨著互聯(lián)網(wǎng)時代的到來,人類所產(chǎn)生的數(shù)據(jù)發(fā)生了前所未有的、爆炸性的增長。IDC預(yù)測,全球數(shù)據(jù)總量將從2019年的45ZB增長到2025年的175ZB[1]。同時,全球數(shù)據(jù)中近30%將需要實時處理,因而帶來了對FPGA等硬件數(shù)據(jù)處理加速器的需求。如圖1所示。
圖1 全球數(shù)據(jù)增長預(yù)測
在這樣的數(shù)據(jù)高速增長的情況下,用于傳輸數(shù)據(jù)的網(wǎng)絡(luò)帶寬和處理數(shù)據(jù)所需要的算力也必須急速增長。傳統(tǒng)的CPU已經(jīng)越來越不堪重負(fù),所以用硬件加速來減輕CPU的負(fù)擔(dān)是滿足未來性能需求的重要發(fā)展方向。未來的硬件發(fā)展需求對于用于加速的硬件平臺提出了越來越高的要求,可以概括為三個方面:算力、數(shù)據(jù)傳輸帶寬和存儲器帶寬。
Achronix的新一代采用臺積電7nm工藝的Speedster 7t FPGA芯片根據(jù)未來硬件加速和網(wǎng)絡(luò)加速的需求,在這三個方面都做了優(yōu)化,消除了傳統(tǒng)FPGA的瓶頸。下面我們重點說一說為了提高存儲器帶寬,Achronix通過采用硬核GDDR6控制器所帶來的優(yōu)勢。
2. GDDR6的發(fā)展
在GDDR的設(shè)計之初,其定位是針對圖形顯示卡所特別優(yōu)化的一種DDR內(nèi)存。因為2000年后電腦游戲特別是3D游戲的發(fā)展和火爆,使運行電腦游戲的顯卡需要有大量的高速圖像數(shù)據(jù)交互需求,GDDR在這種情況下應(yīng)運而生。第一個GDDR標(biāo)準(zhǔn)是基于DDR的GDDR2,隨后發(fā)展到了基于DDR3的GDDR5,在一段時間中非常流行。
2016年,GDDR5X正式發(fā)布,它引入了具有16n預(yù)取的四倍數(shù)據(jù)速率模式,但代價是訪問粒度從GDDR5的32Byte提高到了64Byte。2018年,GDDR6發(fā)布,數(shù)據(jù)速率達(dá)到了16Gbps,帶寬幾乎是GDDR5X的兩倍,同時采用了雙通道設(shè)計,訪問粒度和GDDR5一樣是32Byte。
3. GDDR6 和 DDR4/5的比較
GDDR一直以來是針對圖形顯示卡所優(yōu)化的一種DDR內(nèi)存。因為顯卡處理圖像數(shù)據(jù),特別是3D圖像數(shù)據(jù)對顯存帶寬的要求更高,GPU和GDDR之間的數(shù)據(jù)交換非常頻繁。而DDR內(nèi)存專注于與CPU進行數(shù)據(jù)交換的效率,因此對于整體存取性能、低延遲更為看重,所以在CPU和傳統(tǒng)的FPGA中基本都是用DDR4。
隨著硬件加速需求對于存儲器的帶寬提出了越來越高的要求,傳統(tǒng)的DDR4帶寬顯然已經(jīng)無法滿足要求,Achronix看重了GDDR6在數(shù)據(jù)存儲中的帶寬優(yōu)勢,創(chuàng)新地將GDDR6引入到了FPGA,徹底解決了傳統(tǒng)FPGA存儲帶寬不夠的瓶頸。
2020年7月15日,JEDEC存儲協(xié)會正式發(fā)布了DDR5 SDRAM的標(biāo)準(zhǔn)(JESD79-5),內(nèi)存的頻率相對DDR4的標(biāo)準(zhǔn)頻率有了大幅的提升,總傳輸帶寬也提升了38%,但是還是和GDDR6的帶寬有一定的差距。如圖2所示[2],GDDR6和DDR4/5的帶寬對比。
圖2 GDDR與DDR帶寬發(fā)展對比
如果實現(xiàn)同一個大帶寬存儲的應(yīng)用,在提供相同的存儲器帶寬的情況下,無論在設(shè)計復(fù)雜度,PCB占用面積,還是在功耗方面,與DDR4相比,GDDR6的性能都有很大的提高,如圖3所示[2]。
圖3 GDDR6和DDR4性能對比
4. GDDR6 和 HBM2的比較
HBM全稱High Bandwidth Memory,最初的標(biāo)準(zhǔn)是由JEDEC在2013年發(fā)布。2016年1月,HBM的第二代HBM2正式成為工業(yè)標(biāo)準(zhǔn)。HBM的出現(xiàn)也是為了解決存儲器帶寬問題。與GDDR6不同的是,HBM內(nèi)存一般是由4個或者8個HBM的Die堆疊形成,我們稱之為一個Stack。如圖4所示[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 = 512 GB/s,略高于帶HBM2的FPGA存儲器帶寬。
從成本上來看,目前GDDR6與HBM2相比有著很大的優(yōu)勢,HBM2技術(shù)工藝要求高,目前芯片的良率和產(chǎn)量都會受到很大的影響。同時GDDR6使用起來更靈活,使用片外的DRAM,可以根據(jù)應(yīng)用要求,選擇不同速率,不同容量的GDDR6顆粒。HBM2的優(yōu)勢在于集成度高,不占用PCB板的面積。圖5是DDR4、GDDR6和HBM2在成本上的一個綜合比較。
圖5 DDR4 vs GDDR6 vs HBM2
5. GDDR6 技術(shù)細(xì)節(jié)以及Clamshell模式
GDDR6結(jié)構(gòu)如圖6所示[3]。它是采用16n Prefetch結(jié)構(gòu),一次寫操作或者讀操作的數(shù)據(jù)是16n。每個GDDR6顆粒有兩個獨立的通道,每個獨立的通道訪問獨立的內(nèi)存空間。對于每個通道,讀或者寫的位寬是256bit或者32Byte。P-to-S converter是一個并變串的轉(zhuǎn)換器,把每個256bit位寬的數(shù)據(jù)轉(zhuǎn)換成16位總線,每位總線上傳輸16bit的數(shù)據(jù)。這樣GDDR6每個通道最小的訪問粒度是256bit或者32Byte。
根據(jù)GDDR6這樣16n 預(yù)取結(jié)構(gòu),內(nèi)部存儲陣列如果訪問周期是1ns,則I/O上的數(shù)據(jù)率則是16Gbps。
圖6 GDDR6顆粒結(jié)構(gòu)
一個GDDR6控制器支持兩個獨立通道,一個GDDR6顆粒也是兩個獨立的通道,所以在通常模式下,一個GDDR6控制器對應(yīng)一個GDDR6的顆粒,用x16模式,實現(xiàn)最高512Gb/s的帶寬。
因為目前市面上GDDR6顆粒的最大容量是16Gb,在有些應(yīng)用中如果對容量有一定的要求,可以使用一種叫Clamshell的連接方式,如圖7[5]所示,每個GDDR6控制器連接兩個GDDR6顆粒,每個GDDR6的顆粒用x8模式,這樣在這種Clamshell模式下,帶寬不變,但是支持的GDDR6的容量翻倍了。
圖7 GDDR6的Clamshell模式
6. GDDR6 在7t1500上的讀寫效率
最后,我們測試一下7t1500上GDDR6控制器的讀寫效率,所有的測試結(jié)果基于仿真數(shù)據(jù)。測試環(huán)境如圖8所示。因為7t1500包含了片上網(wǎng)絡(luò)(NoC),并且NoC已經(jīng)實現(xiàn)了仲裁,時鐘域轉(zhuǎn)換的邏輯,我們用三個用戶邏輯通過NoC去訪問同一個GDDR6 Channel,得到的綜合讀寫效率更能反映用戶實際運用中的場景。
圖8 GDDR6讀寫效率測試架構(gòu)
在不同的突發(fā)長度和不同的地址訪問方式下的測試結(jié)果如圖9所示。
圖9 GDDR6讀寫效率
參考文獻:
1.The Digitization of the World From Edge to Core 2018
2.Extending the Benefits of GDDR Beyond Graphics by Micron
3.TN-ED-03: GDDR6: The Next-Generation Graphics DRAM Memory Array Prefetch and Access Granularity
4.Samsung網(wǎng)站:www.samsung.com
5.Micron網(wǎng)站:www.micron.com
6.Achronix網(wǎng)站:www.achronix.com