FPGA研發(2) FPGA和他那些小夥伴們 (一) 架構組成。
通常來講,“一個好漢三個幫”,一個完整的嵌入式系統中由單獨一個FPGA使用的情況較少。通常由多個器件組合完成,例如由一個FPGA+CPU來構成。通常為一個FPGA+ARM,ARM負責軟體配置管理,介面輸入外設操作等操作,FPGA負責大資料量運算,可以看做CPU的專用協處理器來使用,也常會用於擴充套件外部介面。常用的有ARM+FPGA,DSP+FPGA,或者網路處理器+FPGA等種種架構形式,這些架構形式構成整個高速嵌入式裝置的處理形態。
不得不說的是,隨著技術的進步,現在CPU中整合的單元也隨之增加,例如TI的“達芬奇”架構的處理器內部通常由ARM+DSP構成。同時異構的處理器形態業逐漸流行,如ARM9+ARM7的結構。這類一個主要處理系統(ARM9)外帶輔助處理系統(ARM7)的設計,同樣成為現在處理器設計的流行方向。主處理系統執行嵌入式作業系統,而輔助處理單元則專注某一些的專用領域的處理。這些系統的應用減少了FPGA作為CPU協處理單元的領域。因為畢竟FPGA相比ARM等流行嵌入式處理器價格要相對較高。
在這種情形下,FPGA的廠商似乎也感受到了壓力,不約而同推出了帶ARM硬核的FPGA,例如ALTERA的 和XILINX的ZYNQ和ALTERA的SOC FPGA。這是即是互相競爭的需要,也是同眾多CPU廠商一掰手腕的傑總。即使在這兩種在趨勢下,經典的處理器+FPGA的設計仍然可看做為高效能嵌入式系統的典型配置。
經典的處理器+FPGA的配置中有多種的架構形式,即多個處理器單元,可能是ARM,MIPS,或者DSP,FPGA也可能是多片的配置,具體架構形式於具體處理的業務相關和目標裝置的定位也相關。因為FPGA作為簡單業務流大資料量的處理形態仍然是CPU無可比擬的優勢,FPGA內部可以開發大量業務資料並行,從而實現高速的資料處理。
在實現高速處理方面,CPU的另一個發展趨勢是多核,多核處理器也能處理大資料量的業務的並行,例如業界TERILA已推出64核的多核處理器,採用MIPS處理器,通過二維MASH網路連線在一起,形成NOC的結構。在效能上已經和現有的高速FPGA的處理能力上不相上下。但是多核處理器的不得不說的問題就是,同一業務流分配到多核處理上後,如需互動,例如訪問同一資源,就會造成讀寫的快取一致的問題,解決的這一問題的天然思路是加鎖,即在變數訪問上加自旋鎖,但是帶來的問題就是處理效能的急劇下降。而FPGA無論並行處理和同一變數的訪問,都可以變成工程師的設計水平的問題,沒有原理性的挑戰。
沒有一種器件可以滿足全人類的眾多需求,因此不用擔心FPGA沒有用武之地。必定是一系列產品的組合。下面主要介紹一下FPGA可以作為現今熱門場景的幾種應用。
(1)網路儲存產品,特別是現在的NAS,或者SAN裝置上,其儲存的時間、介面、安全性等都要求較高,而FPGA無論處理效能還是擴充套件介面的能力都使其在這一領域大有作為。現在高階FPGA單片就可以擴充套件32個或者更多4G或者8G的FC介面。並且其協議處理相對的固定,也使FPGA在這一領域有大量的可能應用。
(2)高速網路裝置,現在高速網路裝置10G、40/100G乙太網裝置領域,同樣FPGA也是關鍵的處理部件。特別是IPv6的商用化及大資料對於基礎設施的高要求,都使這一領域的處理應用會逐漸廣泛,這一領域通常是高速網路處理器(NP)+FPGA的典型架構。
(3)4G等通訊裝置,對於新一代通訊基站的訊號處理,FPGA+DSP陣列的架構就是絕配。特別是在專用處理芯片面世之前,這樣的架構可以保證新一代通訊基礎設施的迅速研發和部署。
沒有完美的架構,只有合適的組合,各種晶片和架構都是為應用服務,互相的滲透是趨勢,也是必然。FPGA相對處理器的可程式設計領域,仍然屬於小眾(雖然人數也不少)。但是正像一則笑話所說:大腿雖然比根命根子粗,但決沒有命子重要。這算開個玩笑。FPGA的實現為以後的晶片化留下了許多可能和想象空間,從而在應用大量爆發時通過晶片化來大幅降低成本,這這也正是其他可程式設計器件所不能比擬的。