《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > 超高數(shù)據(jù)流通量FPGA新品類中的Block RAM級聯(lián)架構(gòu)

超高數(shù)據(jù)流通量FPGA新品類中的Block RAM級聯(lián)架構(gòu)

2022-07-08
作者:黃侖,Achronix高級現(xiàn)場應(yīng)用工程師
來源:Achronix
關(guān)鍵詞: Achronix FPGA BlockRAM

概述

隨著數(shù)據(jù)中心,、人工智能,、自動駕駛,、5G,、計算存儲和先進測試等應(yīng)用的數(shù)據(jù)量和數(shù)據(jù)流量不斷增大,,不僅需要引入高性能,、高密度FPGA來發(fā)揮其并行計算和可編程硬件加速功能,,而且還對大量數(shù)據(jù)在FPGA芯片內(nèi)外流動提出了更高的要求,。于是,,在FPGA芯片中集成包括片上二維網(wǎng)絡(luò)(2D NoC)和各種最新高速接口的新品類FPGA芯片應(yīng)運而生,成為FPGA產(chǎn)業(yè)和相關(guān)應(yīng)用的新熱點,。

拉開這場FPGA芯片創(chuàng)新大幕的是全球最大的獨立FPGA技術(shù)和產(chǎn)品提供商Achronix半導(dǎo)體公司,,其采用7nm工藝打造的Achronix Speedster7t FPGA不僅擁有諸多高性能外圍Hard IP,,而且是全球首次在FPGA的邏輯陣列上集成了2D NoC,一經(jīng)推出就在市場得到了積極的響應(yīng),,并引來競爭對手的模仿和跟隨,。

Speedster7t這款專門針對人工智能/機器學(xué)習(xí)(AI / ML)和高帶寬應(yīng)用進行優(yōu)化的高性能、高密度FPGA,,包括了革命性的二維片上網(wǎng)絡(luò)(2D NoC),、新型機器學(xué)習(xí)處理器(MLP)、400G以太網(wǎng)和PCIe Gen5端口,,以及高帶寬GDDR6和DDR4/5存儲控制器,。Speedster7t FPGA架構(gòu)如圖1所示。


proxy1.png

圖1  Speedster7t FPGA結(jié)構(gòu)圖

Achronix Speedster7t FPGA除了在外圍Hard IP上都采用目前業(yè)內(nèi)領(lǐng)先的大帶寬高速率IP,,在內(nèi)部的可編程邏輯的架構(gòu)中也做了大量的優(yōu)化去進一步提高內(nèi)部可編程邏輯的性能,,從而適配外圍IP超高帶寬需求。本文首先談?wù)凷peedster7t FPGA的片上SRAM,,也就是Block RAM針對傳統(tǒng)的結(jié)構(gòu)所做出的一些優(yōu)化,。

Speedster7t FPGA中可編程邏輯的架構(gòu)

Speedster7t FPGA中內(nèi)部的可編程資源是按列排布,包括LUT,、FF,、ALU、MUX,、MLP,、Block RAM、Logic RAM,。如圖2所示,。


proxy2.png

圖2  Speedster7t FPGA可編程邏輯結(jié)構(gòu)

其中MLP、Block RAM,、Logic RAM是集成在一起,,他們之間的連接用的是專有的走線,不占用可編程邏輯走線資源,,這樣做的目的主要是為了提高性能,,同時也可以節(jié)省可編程邏輯走線資源,這個架構(gòu)對于AI,,還有需要用到MLP的一些復(fù)雜算法的性能優(yōu)化是非常明顯的,,在我們的MLP系列文章中會詳細(xì)講到,這里我們只重點說一下Block RAM,。

Speedster7t FPGA的Block RAM特點

Speedster7t FPGA內(nèi)部的Block RAM是一個容量為72k bit的簡單雙端口RAM,,有一個讀端口,一個寫端口。兩個端口的時鐘完全獨立,,并且可以完全獨立的配置讀寫位寬,。它可以靈活的配置成簡單雙端口RAM或者ROM。

Block RAM的主要特性如表1所示,。

proxy3.png

表1  Block RAM的關(guān)鍵特性


Block RAM框圖如圖3所示,。


proxy4.png

圖3  Block RAM內(nèi)部結(jié)構(gòu)

Speedster7t FPGA的Block RAM級聯(lián)結(jié)構(gòu)

Speedster7t FPGA的Block RAM最大的特點是增加了Block RAM間的級聯(lián)走線,級聯(lián)走線是BRAM間專有的連線,,不占用可編程邏輯的走線資源,,可以極大的提升多個Block RAM級聯(lián)的性能。圖4顯示了Block RAM間級聯(lián)走線的架構(gòu),。


proxy5.png

圖4  Block RAM級聯(lián)結(jié)構(gòu)

由圖4可以看出,,讀寫地址線和數(shù)據(jù)線都有專有的級聯(lián)線連接。這樣的架構(gòu)在一些場景中都會有應(yīng)用,,比如:需要從外部端口接收數(shù)據(jù)或者從GDDR6讀數(shù)據(jù)去初始化大量Block RAM的場景,,AI的神經(jīng)網(wǎng)絡(luò)就是一個典型的應(yīng)用,在每一層的卷積算法中,,系統(tǒng)都會從GDDR6讀出圖像數(shù)據(jù)和權(quán)重數(shù)據(jù)放入每個引擎的Block RAM中,,引擎計算完畢以后再存入到GDDR6中供下一次運算使用。

有了這樣的級聯(lián)架構(gòu),,我們在寫入數(shù)據(jù)去初始化大量Block RAM的時候不需要外部數(shù)據(jù)有很大的扇出,直接通過同一列Block RAM的級聯(lián)線就可以輕松完成,,具體實現(xiàn)可以參考Achronix MLP_Conv2D參考設(shè)計,。另外一個例子就是在需要多個Block RAM去構(gòu)成更大容量的RAM的時候,如果利用級聯(lián)線可以大大提升系統(tǒng)的性能,。我們針對這個專門做了一個工程比較一下,,生成一個位寬64bit,深度16384的一個簡單雙端口RAM,,需要用到16個Block RAM,。我們分別用專有級聯(lián)線和內(nèi)部可編程邏輯去拼深度兩種方法來對比??梢钥吹接脤S械募壜?lián)線資源更省,,而且性能有了很大的提高。

使用專有的級聯(lián)線資源占用和性能:

proxy 6.png proxy8.png

使用可編程邏輯資源占用和性能:

 proxy.pngproxy7.png

后面我們會繼續(xù)深入了解Speedster7t FPGA可編程邏輯的各種特性,,并且會用一些例子來說明如何更高效的利用這些特性,,以將Speedster7t這款業(yè)界首創(chuàng)的高數(shù)據(jù)帶寬FPGA芯片與更多的創(chuàng)新智能化應(yīng)用結(jié)合起來。

此外,,Achronix也提供Speedcore嵌入式FPGA硅知識產(chǎn)權(quán)(IP)產(chǎn)品,,用來幫助用戶在應(yīng)用規(guī)模進一步擴大后,去開發(fā)帶有eFPGA邏輯陣列的ASIC或者SoC產(chǎn)品,它們由Achronix的ACE FPGA開發(fā)工具提供支持,,從而可以重用FPGA開發(fā)成果,,這是Achronix在率先引入2D NoC和MLP之外,另一個層面上的創(chuàng)新,。


參考文獻:

1.Achronix website www.achronix.com

2.Achronix Speedster7t IP component UG090

AETweidian.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]