FPGA的系統(tǒng)架構組成和器件互聯(lián)問題
通常來講,“一個好漢三個幫”,一個完整的嵌入式系統(tǒng)中由單獨一個FPGA使用的情況較少。通常由多個器件組合完成,例如由一個FPGA+CPU來構成。通常為一個FPGA+ARM,ARM負責軟件配置管理,界面輸入外設操作等操作,FPGA負責大數據量運算,可以看做CPU的專用協(xié)處理器來使用,也常會用于擴展外部接口。常用的有ARM+FPGA,DSP+FPGA,或者網絡處理器+FPGA等種種架構形式,這些架構形式構成整個高速嵌入式設備的處理形態(tài)。
本文引用地址:http://butianyuan.cn/article/279519.htm不得不說的是,隨著技術的進步,現在CPU中集成的單元也隨之增加,例如TI的 “達芬奇”架構的處理器內部通常由ARM+DSP構成。同時異構的處理器形態(tài)業(yè)逐漸流行,如ARM9+ARM7的結構。這類一個主要處理系統(tǒng)(ARM9) 外帶輔助處理系統(tǒng)(ARM7)的設計,同樣成為現在處理器設計的流行方向。主處理系統(tǒng)運行嵌入式操作系統(tǒng),而輔助處理單元則專注某一些的專用領域的處理。這些系統(tǒng)的應用減少了FPGA作為CPU協(xié)處理單元的領域。因為畢竟FPGA相比ARM等流行嵌入式處理器價格要相對較高。
在這種情形下,FPGA的廠商似乎也感受到了壓力,不約而同推出了帶ARM硬核的FPGA,例如ALTERA的和XILINX的ZYNQ和ALTERA的SOC FPGA。這是即是互相競爭的需要,也是同眾多CPU廠商一掰手腕的杰作。即使在這兩種在趨勢下,經典的處理器+FPGA的設計仍然可看做為高性能嵌入式系統(tǒng)的典型配置。
經典的處理器+FPGA的配置中有多種的架構形式,即多個處理器單元,可能是ARM,MIPS,或者DSP,FPGA也可能是多片的配置,具體架構形式于具體處理的業(yè)務相關和目標設備的定位也相關。因為FPGA作為簡單業(yè)務流大數據量的處理形態(tài)仍然是CPU無可比擬的優(yōu)勢,FPGA內部可以開發(fā)大量業(yè)務數據并行,從而實現高速的數據處理。
在實現高速處理方面,CPU的另一個發(fā)展趨勢是多核,多核處理器也能處理大數據量的業(yè)務的并行,例如業(yè)界TERILA已推出64核的多核處理器,采用 MIPS處理器,通過二維MASH網絡連接在一起,形成NOC的結構。在性能上已經和現有的高速FPGA的處理能力上不相上下。但是多核處理器的不得不說的問題就是,同一業(yè)務流分配到多核處理上后,如需交互,例如訪問同一資源,就會造成讀寫的緩存一致的問題,解決的這一問題的天然思路是加鎖,即在變量訪問上加自旋鎖,但是帶來的問題就是處理性能的急劇下降。而FPGA無論并行處理和同一變量的訪問,都可以變成工程師的設計水平的問題,沒有原理性的挑戰(zhàn)。
FPGA的幾種熱門應用
沒有一種器件可以滿足全人類的眾多需求,因此不用擔心FPGA沒有用武之地。必定是一系列產品的組合。下面主要介紹一下FPGA可以作為現今熱門場景的幾種應用。
(1)網絡存儲產品,特別是現在的NAS,或者SAN設備上,其存儲的時間、接口、安全性等都要求較高,而FPGA無論處理性能還是擴展接口的能力都使其在這一領域大有作為?,F在高端FPGA單片就可以擴展32個或者更多4G或者8G的FC接口。并且其協(xié)議處理相對的固定,也使FPGA在這一領域有大量的可能應用。
(2)高速網絡設備,現在高速網絡設備10G、40/100G以太網設備領域,同樣FPGA也是關鍵的處理部件。特別是IPv6的商用化及大數據對于基礎設施的高要求,都使這一領域的處理應用會逐漸廣泛,這一領域通常是高速網絡處理器(NP)+FPGA的典型架構。
(3)4G等通信設備,對于新一代通信基站的信號處理,FPGA+DSP陣列的架構就是絕配。特別是在專用處理芯片面世之前,這樣的架構可以保證新一代通信基礎設施的迅速研發(fā)和部署。
沒有完美的架構,只有合適的組合,各種芯片和架構都是為應用服務,互相的滲透是趨勢,也是必然。FPGA相對處理器的可編程領域,仍然屬于小眾(雖然人數也不少)。但是正像一則笑話所說:大腿雖然比根命根子粗,但決沒有命子重要。這算開個玩笑。FPGA的實現為以后的芯片化留下了許多可能和想象空間,從而在應用大量爆發(fā)時通過芯片化來大幅降低成本,這這也正是其他可編程器件所不能比擬的。
FPGA與各組成器件之間互聯(lián)
系統(tǒng)架構確定,下一步就是FPGA與各組成器件之間互聯(lián)的問題了。通常來說,CPU和FPGA的互聯(lián)接口,主要取決兩個要素:
(1)CPU所支持的接口。
(2)交互的業(yè)務。
通常來說,FPGA一般支持與CPU連接的數字接口,其常用的有EMIF,PCI,PCI-E,UPP,網口(MII/GMII/RGMII),DDR等接口。作為總線類接口,FPGA通常作為從設備與CPU連接,CPU作為主設備通過訪問直接映射的地址對FPGA進行訪問。根據是否有時鐘同步,通??偩€訪問分為同步或異步的總線,根據CPU外部總線協(xié)議有所不同,但數據、地址、控制信號基本是總線訪問類型中總線信號所不能省略的。CPU手冊中會對信號定義和時序控制有著詳細的說明,FPGA需要根據這些詳細說明來實現相應的邏輯。同時CPU還可以對訪問時序進行設置,比如最快時鐘,甚至所需的最小建立時間和保持時間,這些一般CPU都可以進行設置,而這些具體參數,不僅影響FPGA的實現,也決定總線訪問的速度和效率。對于同步總線,只需要根據輸入時鐘進行采樣處理即可,但對于異步總線,則需要的對進入的控制信號進行同步化處理,通常處理方式是寄存兩拍,去掉毛刺。因此用于采樣的時鐘就與CPU所設置的總線參數相關,如采樣時鐘較低,等控制信號穩(wěn)定后在譯碼后輸出,一個總線操作周期的時間就會相對較長,其處理的效率也相對較低;假如采樣時鐘過快,則對關鍵路徑又是一個挑戰(zhàn),因此合理設定采樣頻率,便于接口的移植并接口的效率是設計的關鍵點和平衡點。
對于總線型的訪問來說,數據信號通常為三態(tài)信號,用于輸入和輸出。這種設計的目的是為了減少外部連線的數量。因為數據信號相對較多一般為8/16/32位數據總線??偩€的訪問的優(yōu)勢是直接映射到系統(tǒng)的地址區(qū)間,訪問較為直觀。但相對傳輸速率不高,通常在幾十到100Mbps以下。這種原因的造成主要為以下因素(1)受制總線訪問的間隔,總線操作周期等因素,總線訪問間隔即兩次訪問之間總線空閑的時間,而總線操作周期為從發(fā)起到相應的時間。(2)不支持雙向傳輸,并且FPGA需主動發(fā)起對CPU操作時,一般只有發(fā)起CPU的中斷處理一種方式。這種總線型操作特點,使其可以用作系統(tǒng)的管理操作,例如FPGA內部寄存器配置,運行過程中所需參數配置,以及數據流量較小的信息交互等操作。這些操作數據量和所需帶寬適中,可以應對普通的嵌入式系統(tǒng)的處理需求。
對于大數據流量的數據交互,一般采用專用的總線交互,其特點是,支持雙向傳輸,總線傳輸速率較快,例如GMII/RGMII、Upp、專用LVDS接口,及SERDES接口。專用SERDES接口一般支持的有PCI-E,XAUI,SGMII,SATA,Interlaken接口等接口。 GMII/RGMII,專用LVDS接口一般處理在1GbpS一下的業(yè)務形式,而PCI-E,根據其型號不同,支持幾Gbps的傳輸速率。而XAUI可支持到10Gbps的傳輸速率,lnterlaken接口可支持到40Gbps的業(yè)務傳輸。
對于不同所需的業(yè)務形式及處理器的類型,則可選擇相應的接口形式,來傳輸具體的業(yè)務。現今主流FPGA中都提供的各種接口的IP。選擇FPGA與各型 CPU互聯(lián)接口,一般選擇主流的應用交互方案,特殊的接口缺少支撐IP,導致開發(fā)、調試、維護和兼容性的成本都較大,同時注意系統(tǒng)的持續(xù)演進的需要,如只在本項目使用一次,而下一項目或開發(fā)階段已摒棄此類接口,則需提前規(guī)劃技術路線。畢竟一個穩(wěn)定、高效的接口互聯(lián)是一個項目成功的基礎。
不是所有的嵌入式系統(tǒng)都需要“高大上”的接口形式,各類低速的穩(wěn)定接口也同樣在FPGA的接口互聯(lián)中有著重要的角色,其中UART、SPI、I2C等連接形式也非常的常見。畢竟,一個優(yōu)秀的設計不是“高大上”的堆積,而是對需求最小成本的滿足。適合的才是最美的。
評論