本文來(lái)自“FPGA專題:萬(wàn)能芯片點(diǎn)燃新動(dòng)力,國(guó)產(chǎn)替代未來(lái)可期(2023)”,F(xiàn)PGA又稱現(xiàn)場(chǎng)可編程門(mén)陣列,是在硅片上預(yù)先設(shè)計(jì)實(shí)現(xiàn)的具有可編程特性的集成電路,用戶在使用過(guò)程中可以通過(guò)軟件重新配置芯片內(nèi)部的資源實(shí)現(xiàn)不同功能。通俗意義上講,F(xiàn)PGA 芯片類(lèi)似于集成電路中的積木,用戶可根據(jù)各自的需求和想法,將其拼搭成不同的功能、特性的電路結(jié)構(gòu),以滿足不同場(chǎng)景的應(yīng)用需求。鑒于上述特性,F(xiàn)PGA 芯片又被稱作“萬(wàn)能”芯片。

FPGA 芯片由可編程的邏輯單元(Logic Cell,LC)、輸入輸出單元(Input Output Block,IO)和開(kāi)關(guān)連線陣列(Switch Box,SB)三個(gè)部分構(gòu)成:
(1)邏輯單元:通過(guò)數(shù)據(jù)查找表(Look-up Table,LUT)中存放的二進(jìn)制數(shù)據(jù)來(lái)實(shí)現(xiàn)不同的電路功能。LUT 的本質(zhì)是一種靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,SRAM),其大小是由輸入端的信號(hào)數(shù)量決定的,常用的查找表電路是四輸入查找表(4-input LUT,LUT4)、五輸入查找表(5-input LUT,LUT5)和六輸入查找表(6-input LUT,LUT6)。查找表輸入端越多,可以實(shí)現(xiàn)的邏輯電路越復(fù)雜,因此邏輯容量越大,但是查找表的面積和輸入端數(shù)量成指數(shù)關(guān)系,輸入端數(shù)量增加一個(gè),查找表使用的 SRAM 存儲(chǔ)電路面積增加約一倍。不同的邏輯單元結(jié)構(gòu)可以使用不同大小的查找表,或者是不同查找表類(lèi)型的組合。此外,邏輯單元內(nèi)部還包含選擇器、進(jìn)位鏈和觸發(fā)器等其他組件。為了提高芯片架構(gòu)效率,若干邏輯單元可以進(jìn)一步組成邏輯塊(Logic Block),邏輯塊內(nèi)部提供快速局部資源,從而形成層次化芯片架構(gòu)。
(2)輸入輸出單元:是芯片與外界電路的接口部分,用于實(shí)現(xiàn)不同條件下對(duì)輸入/輸出信號(hào)的驅(qū)動(dòng)與匹配要求。
(3)開(kāi)關(guān)陣列:能夠通過(guò)內(nèi)部 MOS 管的開(kāi)關(guān)控制信號(hào)連線的走向。

FPGA 從 Xilinx 公司 1985 年推出世界首款 FPGA 芯片“XC2064”經(jīng)歷過(guò)數(shù)十年發(fā)展,在硬件架構(gòu)上大致經(jīng)歷了四個(gè)階段:從 PROM 階段(簡(jiǎn)單的數(shù)字邏輯)到 PAL/GAL 階段(“與”&“或”陣列)再到 CPLD/FPGA 階段(超大規(guī)模電路),到如今 FPGA 與 ASIC 技術(shù)融合、向系統(tǒng)級(jí)發(fā)展的 SoC FPGA/eFPGA 階段。硬件水平整體趨向更大規(guī)模、更高靈活性、更優(yōu)性能。

FPGA 芯片屬于邏輯芯片大類(lèi)。邏輯芯片按功能可分為四大類(lèi)芯片:通用處理器芯片(包含中央處理芯片 CPU、圖形處理芯片 GPU,數(shù)字信號(hào)處理芯片 DSP等)、存儲(chǔ)器芯片(Memory)、專用集成電路芯片(ASIC)和現(xiàn)場(chǎng)可編程邏輯陣列芯片(FPGA)。

FPGA 兼具靈活性和并行性兩大特點(diǎn)。
(1)靈活性:FPGA芯片擁有更高的靈活性和更豐富的選擇性,通過(guò)對(duì) FPGA 編程,用戶可隨時(shí)改變芯片內(nèi)部的連接結(jié)構(gòu),實(shí)現(xiàn)任何邏輯功能。尤其是在技術(shù)標(biāo)準(zhǔn)尚未成熟或發(fā)展更迭速度快的行業(yè)領(lǐng)域,F(xiàn)PGA 能有效幫助企業(yè)降低投資風(fēng)險(xiǎn)及沉沒(méi)成本,是一種兼具功能性和經(jīng)濟(jì)效益的選擇。

(2)并行性:CPU、GPU 在執(zhí)行任務(wù)時(shí),執(zhí)行單元需按順序通過(guò)取指、譯碼、執(zhí)行、訪存以及寫(xiě)回等一系列流程完成數(shù)據(jù)處理,且多方共享內(nèi)存導(dǎo)致部分任務(wù)需經(jīng)訪問(wèn)仲裁,從而產(chǎn)生任務(wù)延時(shí)。而 FPGA 每個(gè)邏輯單元與周?chē)壿媶卧倪B接構(gòu)造在重編程(燒寫(xiě))時(shí)就已經(jīng)確定,寄存器和片上內(nèi)存屬于各自的控制邏輯,無(wú)需通過(guò)指令譯碼、共享內(nèi)存來(lái)通信,各硬件邏輯可同時(shí)并行工作,大幅提升數(shù)據(jù)處理效率。尤其是在執(zhí)行重復(fù)率較高的大數(shù)據(jù)量處理任務(wù)時(shí),F(xiàn)PGA 相比 CPU 等優(yōu)勢(shì)明顯。

相較于其他邏輯芯片而言,F(xiàn)PGA 在靈活性、性能、功耗、成本之間具有較好的平衡:
(1)相較于 GPU,F(xiàn)PGA 在功耗和靈活性等方面具備優(yōu)勢(shì)。一方面,由于GPU 采用大量的處理單元并且大量訪問(wèn)片外存儲(chǔ) SDRAM,其計(jì)算峰值更高,同時(shí)功耗也較高,F(xiàn)PGA 的平均功耗(10W)遠(yuǎn)低于 GPU 的平均功耗(200W),可有效改善散熱問(wèn)題;另一方面,GPU 在設(shè)計(jì)完成后無(wú)法改動(dòng)硬件資源,而 FPGA根據(jù)特定應(yīng)用對(duì)硬件進(jìn)行編程,更具靈活性。機(jī)器學(xué)習(xí)使用多條指令平行處理單一數(shù)據(jù),F(xiàn)PGA 的定制化能力更能滿足精確度較低、分散、非常規(guī)深度神經(jīng)網(wǎng)絡(luò)計(jì)算需求。

(2)相較于 ASIC 芯片,F(xiàn)PGA 在項(xiàng)目初期具備短周期、高性價(jià)比的優(yōu)勢(shì)。ASIC 需從標(biāo)準(zhǔn)單元進(jìn)行設(shè)計(jì),當(dāng)芯片的功能及性能需求發(fā)生變化時(shí)或者工藝進(jìn)步時(shí),ASIC 需重新投片,由此帶來(lái)較高的沉沒(méi)成本以及較長(zhǎng)的開(kāi)發(fā)周期;而 FPGA具有編程、除錯(cuò)、再編程和重復(fù)操作等優(yōu)點(diǎn),可實(shí)現(xiàn)芯片功能重新配置,因此早期 FPGA 常作為定制化 ASIC 領(lǐng)域的半定制電路出現(xiàn),被業(yè)內(nèi)認(rèn)為是構(gòu)建原型和開(kāi)發(fā)設(shè)計(jì)的較快推進(jìn)的路徑之一。
FPGA邏輯結(jié)構(gòu)中的內(nèi)存大致分為三個(gè)層次(以Intel Agilex-M FPGA為例),包括超本地化片上內(nèi)存、以 HBM2e 堆棧形式提供的本地封裝內(nèi)存,以及 DDR5和 LPDDR5 等外部?jī)?nèi)存架構(gòu)和接口。
片上內(nèi)存(MLAB 模塊和 M20K 模塊):最本地化的內(nèi)存;
封裝內(nèi)存(HBM):彌合內(nèi)存層次結(jié)構(gòu)中關(guān)鍵缺口的內(nèi)存,其容量遠(yuǎn)大于片上內(nèi)存(兩個(gè)數(shù)量級(jí)以上),同時(shí)帶寬又遠(yuǎn)大于片外內(nèi)存(兩個(gè)數(shù)量級(jí)以上);
片外內(nèi)存(DDR5、LPDDR5 等):對(duì)于超出 HBM2e 容量的應(yīng)用,或?qū)Κ?dú)立內(nèi)存的靈活性有要求時(shí),需要 DDR5 和 LPDDR5 以及其他主流的內(nèi)存架構(gòu)。
HBM2e 與 FPGA 裸片集成在同一封裝中可以在小尺寸外形規(guī)格中實(shí)現(xiàn)更高帶寬、更低功耗、更低時(shí)延。
(1)內(nèi)存容量方面:每個(gè) HBM2e 堆??砂?4 層或 8 層,每層提供 2GB 內(nèi)存,因此單個(gè) Intel Agilex-M 系列 FPGA 可包含 16GB或 32 GB 的高帶寬內(nèi)存;
(2)帶寬方面:HBM2e 可實(shí)現(xiàn)每堆棧高達(dá) 410Gbps 的內(nèi)存帶寬,較 DDR5 組件的帶寬提升高達(dá) 18 倍,較 GDDR6 組件提升 7 倍。兩個(gè) HBM2e 堆棧加起來(lái)可提供高達(dá) 820Gbps 的峰值內(nèi)存帶寬;
(3)功耗和時(shí)延方面:由于 HBM2e 集成在封裝中,因此也不需要使用外部 I/O 引腳,從而節(jié)省了電路板空間,并消除了它們會(huì)帶來(lái)的功耗和互連時(shí)延。

片上網(wǎng)絡(luò)(NoC,Network on Chip)是指在單芯片上集成大量的計(jì)算資源以及連接這些資源的片上通信網(wǎng)絡(luò),用于在可編程邏輯(PL)、處理器系統(tǒng)(PS)和其它硬核塊中的 IP 端點(diǎn)之間共享數(shù)據(jù)。
與之對(duì)應(yīng)的概念——片上系統(tǒng)(SoC)則是包含一整套多樣化和互連單元的單芯片,旨在解決一定范圍的任務(wù)。傳統(tǒng)上,SoC 包括幾個(gè)計(jì)算內(nèi)核、內(nèi)存控制器、I/O 子系統(tǒng)以及它們之間的連接與切換方式(總線、交叉開(kāi)關(guān)、NoC 元件)。

片上網(wǎng)絡(luò) NoC 包括計(jì)算和通信兩個(gè)子系統(tǒng)。計(jì)算子系統(tǒng)(由 PE,Processing Element 構(gòu)成的子系統(tǒng))完成廣義的“計(jì)算”任務(wù),PE 既可以是現(xiàn)有意義上的CPU、SoC,也可以是各種專用功能的 IP 核或存儲(chǔ)器陣列、可重構(gòu)硬件等。通信子系統(tǒng)(由 Switch 組成的子系統(tǒng))負(fù)責(zé)連接 PE,實(shí)現(xiàn)計(jì)算資源之間的高速通信。通信節(jié)點(diǎn)及其間的互連線所構(gòu)成的網(wǎng)絡(luò)即為片上通信網(wǎng)絡(luò)。

類(lèi)比城市高速公路網(wǎng)絡(luò),NoC 架構(gòu)簡(jiǎn)化互連路徑,提高 FPGA 傳輸速率。Achronix 基于臺(tái)積電(TSMC)的 7nm FinFET 工藝的 Speedster7t FPGA 器件包含了 2D NoC 架構(gòu),為 FPGA 外部高速接口和內(nèi)部可編程邏輯的數(shù)據(jù)傳輸提供了超高帶寬(~27Tbps)。NoC 使用一系列高速的行和列網(wǎng)絡(luò)通路(水平和垂直方式)在整個(gè) FPGA 內(nèi)部分發(fā)數(shù)據(jù),每一行或每一列都有兩個(gè) 256 位的、單向的、行業(yè)標(biāo)準(zhǔn)的 AXI 通道,可以在每個(gè)方向上以 512Gbps(256bit x 2GHz)的傳輸速率運(yùn)行。

NoC 為 FPGA 設(shè)計(jì)提供了幾項(xiàng)重要優(yōu)勢(shì),包括:(1)提高設(shè)計(jì)的性能;(2)減少邏輯資源閑置,在高資源占用設(shè)計(jì)中降低布局布線擁塞的風(fēng)險(xiǎn);(3)減小功耗;(4)簡(jiǎn)化邏輯設(shè)計(jì),由 NoC 去替代傳統(tǒng)的邏輯去做高速接口和總線管理;(5)實(shí)現(xiàn)真正的模塊化設(shè)計(jì)。

Intel(Altera)利用 NoC 架構(gòu)實(shí)現(xiàn)內(nèi)存和可編程邏輯結(jié)構(gòu)之間的現(xiàn)高帶寬數(shù)據(jù)傳輸。如下圖所示,每個(gè)片上 HBM2e 堆棧通過(guò) UIB 與其 NoC 通信。片外內(nèi)存(DDR4、DDR5 等)則通過(guò) IO96 子系統(tǒng)與 NoC 通信。NoC 通過(guò)一個(gè)由交換機(jī)(路由器)、互連鏈路(導(dǎo)線)、發(fā)起程序(I)和目標(biāo)(T)組成的網(wǎng)絡(luò),將數(shù)據(jù)從數(shù)據(jù)源傳輸?shù)侥康牡?。每個(gè) NoC 都提供一個(gè)橫向網(wǎng)絡(luò),通過(guò) AXI4 發(fā)起程序?qū)⒖删幊踢壿嫿Y(jié)構(gòu)中的邏輯連接到集成 NoC 的目標(biāo)內(nèi)存。此外,每個(gè) NoC 也都提供一個(gè)縱向網(wǎng)絡(luò),通過(guò)優(yōu)化的路由將橫向網(wǎng)絡(luò)路徑讀取的內(nèi)存數(shù)據(jù)分發(fā)到 FPGA的可編程邏輯結(jié)構(gòu)深處(可編程邏輯結(jié)構(gòu)和/或 M20K 模塊)。


AMD(Xilinx)在 AI 引擎和可編程邏輯之間部署 NoC 架構(gòu),可大幅降低功耗。AMD Versal 產(chǎn)品最突出的優(yōu)勢(shì)之一,是能夠在自適應(yīng)引擎中將 AI 引擎陣列與可編程邏輯(PL)結(jié)合使用,由 AI 引擎陣列接口連接 AI 引擎陣列和可編程邏輯。這樣的資源結(jié)合為在最佳資源、AI 引擎、自適應(yīng)引擎或標(biāo)量引擎中實(shí)現(xiàn)功能提供了極大的靈活性。該方案與傳統(tǒng)可編程邏輯 DSP 和 ML 實(shí)現(xiàn)方案相比,可將芯片面積計(jì)算密度提高達(dá) 8 倍,從而在額定值情況下,可將功耗降低 40%。
審核編輯:湯梓紅
電子發(fā)燒友App






評(píng)論