在這篇文章中,小編將為大家?guī)?a href="/tags/FPGA" target="_blank">FPGA的相關報道。如果你對本文即將要講解的內容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、FPGA
從本質上講,FPGA(Field-Programmable Gate Array,可編程門陣列)是一種半導體設備,由可配置的邏輯塊和互連組成,可以編程實現各種數字電路。
FPGA常常與專用集成電路(ASIC)和微控制器進行比較。ASIC專門為特定任務定制,提供了優(yōu)化的性能,但缺乏靈活性。另一方面,微控制器是通用設備,通常用于較簡單的任務,并通過軟件控制。
FPGA的優(yōu)勢在于其在保持高性能的同時適應各種任務的能力。FPGA可以動態(tài)重新配置,非常適合需要靈活性和快速開發(fā)周期的應用。
FPGA主要由以下部分組成:
1、邏輯塊
邏輯塊是FPGA的基本構建塊,包含可編程邏輯元素,可以配置為執(zhí)行各種數字功能,如與、或和異或門。這些邏輯塊可以通過編程來定義其功能和連接方式,從而實現所需的數字電路。
邏輯塊的可編程性是FPGA的特點之一,這使FPGA具備了高度的靈活性和可定制性。
2、互連
互連是將邏輯塊連接在一起的"線路"。它們構成可編程的路由矩陣,允許不同的邏輯塊之間進行靈活的連接,并最終定義FPGA的功能。
3、輸入/輸出塊
輸入/輸出(I/O)塊使FPGA能夠與外部設備(如傳感器、開關或其他集成電路)進行通信。它們可配置以支持各種電壓級別、標準和協(xié)議。
4、配置存儲器
配置存儲器存儲定義FPGA的邏輯塊和互連如何配置的編程數據。當FPGA上電時,這些數據被加載到設備中,使其能夠執(zhí)行其預定功能。
CPU和GPU都屬于馮·諾依曼結構,指令譯碼執(zhí)行,共享內存。FPGA之所以比CPU、GPU更快,本質上是因為其無指令,無共享內存的體系結構所決定的。
馮氏結構中,由于執(zhí)行單元可能執(zhí)行任意指令,就需要有指令存儲器、譯碼器、各種指令的運算器、分支跳轉處理邏輯。而FPGA的每個邏輯單元的功能在重編程時就已經確定,不需要指令。
馮氏結構中使用內存有兩種作用:①保存狀態(tài)。②執(zhí)行單元間的通信。
1)保存狀態(tài):FPGA中的寄存器和片上內存(BRAM)是屬于各自的控制邏輯的,無需不必要的仲裁和緩存。
2)通信需求:FPGA每個邏輯單元與周圍邏輯單元的連接在重編程時就已經確定了,并不需要通過共享內存來通信。
計算密集型任務中:
在數據中心,FPGA相比GPU的核心優(yōu)勢在于延遲。FPGA為什么比GPU的延遲低很多?本質上是體系結構的區(qū)別。FPGA同時擁有流水線并行和數據并行,而GPU幾乎只有數據并行(流水線深度受限)。
處理一個數據包有10個步驟,FPGA可以搭建一個10級流水線,流水線的不同級在處理不同的數據包,每個數據包流經10級之后處理完成。每個處理完成的數據包可以馬上輸出。而GPU的數據并行方法是做10個計算單元,每個計算單元也在處理不同的數據包,但是所有的計算單元必須按照統(tǒng)一的步調,做相同的事情(SIMD)。這就要求10個數據包必須同進同出。當任務是逐個而非成批到達的時候,流水線并行比數據并行可實現更低的延遲。因此對流水式計算的任務,FPGA比GPU天生有延遲方面的優(yōu)勢。
ASIC在吞吐量、延遲、功耗單個方面都是最優(yōu)秀的。但是其研發(fā)成本高,周期長。FPGA的靈活性可以保護資產。數據中心是租給不同租戶使用的。有的機器上有神經網絡加速卡,有的有bing搜索加速卡,有的有網絡虛擬加速卡,任務的調度和運維會很麻煩。使用FPGA可以保持數據中心的同構性。
通信密集型任務中,FPGA相比GPU、CPU的優(yōu)勢更大。
①吞吐量:FPGA可以直接接上40Gbps或者100Gbps的網線,以線速處理任意大小的數據包;而CPU則需要網卡把數據包接收過來;GPU也可以高性能處理數據包,但GPU沒有網口,同樣需要網卡,這樣吞吐量受到網卡和(或)者CPU的限制。
②延遲:網卡把數據傳給CPU,CPU處理后傳給網卡,再加上系統(tǒng)中的時鐘中斷和任務調度增加了延遲的不穩(wěn)定性。
綜上所述,在數據中心里 FPGA 的主要優(yōu)勢是穩(wěn)定又極低的延遲,適用于流式的計算密集型任務和通信密集型任務。
上述所有信息便是小編這次為大家推薦的有關FPGA的內容,希望大家能夠喜歡,想了解更多有關它的信息或者其它內容,請關注我們網站哦。





