十一月_FPGA專題|全球FPGA技術發展概況剖析(上)
市面上有許多不同類型的FPGA,其基礎架構主要包含可程式邏輯單元、可程式輸出入單元和內部連接線等三部分,可程式邏輯單元是由一組查閱資料表Look up Table(LUT)組成,並使用如SRAM或Flash保存布林函數,每個LUT都連接到一個多工器和觸發器寄存器以支援時序電路,還可構建多個LUT以處理複雜函數。
圖1、FPGA基礎架構示意圖

資料來源 : Logic Fruit Technologies (2021)
根據高效能計算機的分類方式(費林分類法),資訊流(information stream)可分成指令(Instruction)和資料(Data)兩種,因此計算機類型可分為SISD[單一指令流單一資料流];SIMD[單一指令流多資料流];MISD[多指令流單一資料流];MIMD[多指令流多資料流],如下圖2。
圖2. 費林分類法(Flynn’s Taxonomy)

資料來源:維基百科
以此分類來看目前用於市售的主流處理器類型有CPU、GPU、FPGA與ASIC。CPU為通用處理器,執行指令時主要採取序列處理的SISD模式,其硬體架構是邏輯控制單元較多而計算單元數目較少,一般情況下各占晶片總面積的6:4,所以擅長決策和控制任務,但資料處理能力弱,且因序列計算模式的執行周期較長導致延遲與功耗較大;GPU為執行複雜數學和幾何計算的處理器,通常也是在執行指令時也是採取序列處理的SISD模式,其硬體架構變成邏輯控制單元較少而計算單元較多,往往各占晶片總面積的4:6甚至3:7,所以執行複雜邏輯判斷任務效率較差,但適合處理大量數據的平行計算。FPGA是由使用者透過程式化自訂處理流程,可以執行SISD、SIMD、MIMD等多種模式。它是由特定邏輯電路直接執行指令而無需讀取、編譯等程序,故資料處理的延遲性且功耗較低。不過因為單一邏輯區域的計算能力較弱,須倚靠平行處理提升計算能力;ASIC是為特定算法設計的處理器,因為沒有冗餘電路故處理速度最快,不過一旦算法改變時會導致計算效率大幅下降、甚至無法運作。綜前所述,因為CPU的使用率越高會造成延遲性越大,而FPGA的延遲性不會受利用率而改變,所以其相對於CPU之優勢是僅有十分之一的延遲性;由於GPU運算時頻繁使用外部暫存記憶體DRAM,而FPGA只使用如SRAM的內部記憶體,故其相對於GPU的優勢是僅有十分之一的功耗。此外,GPU只能資料平行(Data Parallelism)處理,FPGA具備資料平行與管線平行(Pipeline Parallelism)處理能力,故其另一個相對於CPU的優勢是僅有百分之一的延遲性;FPGA相對於ASIC的優勢是靈活度高,計算能力不會因算法調整而改變。
目前FPGA使用的記憶體包括SRAM、Flash與反熔絲結構。Xilinx、Altera和市面上大多數FPGA產品採用SRAM,其優點是可用較低成本達到高的可程式邏輯單元密度和運作性能,缺點是斷電後SRAM會抹除程式,導致每次接電後都需要使用燒錄器重新寫入程式,其過程可能受到外界干擾而失敗,也容易被截取。
但因為製作成本最低而使其銷量最大,大多數用於消費性產品。代表性產品有Xilinx的Spartan和Virtex系列、Altera的Cyclone和Stratix系列;採用反熔絲結構的FPGA只能程式化一次,之後功能如同ASIC。雖然失去可程式的靈活性,但是大大提高穩定與保密性,適合應用在操作環境嚴苛的軍事、航太領域。此外,它接電後可以很快進入工作狀態,適合用於恢復時間要求較短的系統。代表性產品有Actel的Axcelerator、SX-A、EX與MX系列,以及QuickLogic的Eclipse和Polar Pro系列;因為Flash具備可重複讀寫與非揮發特性,所以兼顧SRAM架構的靈活性和反融絲架構的可靠性,因而成為近幾年發展的FPGA新技術。Flash FPGA的優勢包括:(1).硬體出錯機率小而具有更高安全性,能夠透過公共網路進行產品遠端升級,藉此減少現場解決問題所需的昂貴開銷。(2).Flash FPGA使用率通常可超過95%,而SRAM FPGA僅有70%~75%。(3).Flash FPGA運作所需的瞬間尖峰與靜態電流都比SRAM FPGA低,例如40萬閘數之Flash FPGA常需要20mA的靜態電流,然而相同規模之SRAM FPGA則需要100mA,所以後者的高功耗迫使系統設計者不得不增加供電電流而讓系統架構變得複雜。Flash FPGA的主要缺點是生產成本偏高,以致於迄今尚無大規模應用,代表性產品是Actel的ProASIC3系列。此外,目前安裝在部分消費性與車用電子產品的FPGA採用容量較小的EEPROM以儲存安全通信所需的金鑰,其功能與Flash類似。






