FPGA這兩年為什麼突然火起來了?

FPGA的發明就是提高數字電路的重複利用性,通過可編程的方式實現不同的電路邏輯功能。隨著FPGA結構的不斷演變和工藝的不斷提升,在FPGA內部集成了越來多的資源,比如BRAM、PLL、DSP、Transceiver、 DDR IP以及處理器ARM等,可以說功能變得越來越強大,用來輔助CPU計算,也獲得了協處理器的名稱。


FPGA這兩年的火爆,主要有以下原因:

1)與處理器的對比:FPGA與處理器是不一樣的硬件結構,所以無法直接進行對比,FPGA是以可編程的數字電路為設計理念(通過編程改變內部電路邏輯),而CPU是以邏輯計算為設計出發點。FPGA擅長的領域是數字信號處理,兼容多電平標準的接口可以互聯各種高速電子器件,比如高速ADC和DAC、光纖收發器等,同時豐富的IP資源保證了有豐富的外設,比如SDRAM、PCIE接口、以太網PHY、SATA接口等等。從外設上看,FPGA可搭載的外設和CPU區別的不是太大,該有的都有了。

2)與GPU的對比:FPGA可以和GPU在並行計算上進行對比,更確切的說是GPGPU(通用計算GPU)。FPGA的並行處理體現在邏輯單元的併發性和流水線的處理方式上。併發性指的是各個邏輯模塊相互獨立處理,依賴各自的電路資源同時工作;流水線的處理方式就是將任務切片,同一時刻可以多任務執行(FPGA的並行優勢更多的體現於此)。此外FPGA帶有豐富的片上存儲資源,可以大大減少訪問片外存儲的延遲,提高計算性能(訪問SDRAM儲存大約是訪問寄存器存儲延遲的幾百倍以上)。GPU的並行性體現在多核上,計算任務通過編譯器編譯完成之後分配到每個計算單元,每個計算單元同時工作,計算完成之後通過多級內存管理(一般為三級,private memory, local memory和global memory,映射到FPGA可以為register file, BRAM 和外部DDR存儲)回到CPU,GPU的多核類似於CPU的多核,但是GPU的核僅僅是負責計算的核,以支持多bit的向量計算見長。

3)FPGA未來的發展:FPGA之前一直應用於高速數字信號領域和ASIC驗證,比如數字信號採集,工業控制,航天,軍工,很多人講過,不一而足。最近幾年,個人感覺從2012年伴隨著Vivada開發套件的推出(以Xilinx推出Vivado作為參考,Vivado工具支持高級語言綜合(High Level synthesis),支持C語言到RTL的映射,以及開始支持億級以上門電路的設計),FPGA作為協處理器慢慢走上正軌,有了工具的支持才使得CPU上的算法移植到RTL語言變得的簡單,億級門電路保證了豐富的邏輯資源。現在FPGA在機器學習和硬件加速上得到越來越多的重視(2015年底 Intel收購Altera),也做出了不少具有開創性的作品,但同時也存在諸多問題,比如1)什麼樣的算法適合FPGA進行加速,2)FPGA的加速性如何提升,是靠邏輯資源來取勝還是靠真正的算法優化,3)FPGA能不能擺託對CPU的依賴(現在加速採用異構的方式進行,CPU作為Host,FPGA作為device),4)FPGA的編譯器能不能發生革命性的變革? 總而言之:一個越是充滿不確定性的領域,越可能是發生革命性的變革(熵很大)。

4) 建議:若想從事電子領域,應當先學好單片機,精通單片機基本可以做到窺一斑而知全豹吧。

FPGA這兩年為什麼突然火起來了?


分享到:


相關文章: