新聞中心

EEPW首頁 > 汽車電子 > 學(xué)習(xí)方法與實踐 > FPGA新興應(yīng)用趨勢洞悉

FPGA新興應(yīng)用趨勢洞悉

——
作者:郭長佑 時間:2007-12-25 來源:DIGITIMES 收藏
       以市場觀點(diǎn)來看,許多人只會重視的大量型,例如用取代ASIC。

        但就技術(shù)角度來看,拓展就更為多樣且具意義,這包括用FPGA加速高效運(yùn)算、用FPGA加速電路設(shè)計驗證、用FPGA取代大量性的DSP運(yùn)算。

       由于掩膜成本的指數(shù)性攀升,許多中等用量規(guī)模(約50萬顆以下)的芯片無法如過去般以ASIC方式投產(chǎn),且不得不改以FPGA投產(chǎn),如此使近年來FPGA的市場不斷增長。

       FPGA侵蝕原有ASIC市場的用量極為可觀的,此也成為近年來眾人關(guān)注FPGA的首要焦點(diǎn),不過也因為過于聚焦在高用量、大市場的觀察,使FPGA的其它新發(fā)展被人所忽略,但這些應(yīng)用卻也極具意義。所以,以下本文將針對FPGA的新應(yīng)用進(jìn)行更多的了解與說明。

      高效運(yùn)算(High Performance Computing;HPC)

      高效運(yùn)算所指的即是軍方、政府機(jī)關(guān)、學(xué)術(shù)研究單位所用的超級計算機(jī)(Supercomputer),另外部分企業(yè)內(nèi)的工程、科技運(yùn)算也含括在內(nèi),這類型的計算機(jī)擁有極高的運(yùn)算效能,然近年來為了進(jìn)一步提升系統(tǒng)效能,因此開始將FPGA運(yùn)用于系統(tǒng)中。

      首先是Cray Research,該公司的超級計算機(jī):XD1就有用上FPGA,XD1用的是Xilinx(賽靈思)公司的VIRTEX系列FPGA。XD1機(jī)內(nèi)有所謂的FPGA應(yīng)用程序加速模塊(FPGA Application Acceleration Module),模塊等于是機(jī)內(nèi)的一個小型輔助運(yùn)算系統(tǒng),VIRTEX是模塊內(nèi)的主控芯片,等于是一個協(xié)同處理器(Co-Processor),只不過這個協(xié)同處理器與ASIC型式的協(xié)同處理器不同,F(xiàn)PGA具有可程序化的功效,因此VIRTEX是一顆可程序化的協(xié)同處理器。

      運(yùn)算模塊內(nèi)除了有FPGA的協(xié)同處理器外,處理器也必須搭配內(nèi)存才能行使運(yùn)算,所以FPGA會再連接4顆QDR II SRAM(極高速性的內(nèi)存),然后模塊一方面用HyperTransport與XD1的主處理器相連,另一方面也連往XD1的特有高速I/O界面:RapidArray。

      接著,由于高效運(yùn)算多是執(zhí)行大量重復(fù)性的運(yùn)算,例如氣象預(yù)測、風(fēng)洞測試等,所以可以將執(zhí)行的應(yīng)用程序轉(zhuǎn)化成FPGA內(nèi)的組態(tài)(Configuration,中國內(nèi)地方面稱為:配置)程序,以硬件線路方式來執(zhí)行運(yùn)算,如此將比過往用純軟件方式執(zhí)行快上數(shù)倍至數(shù)十倍的效能,甚至在特定的應(yīng)用運(yùn)算上能達(dá)一百倍以上的效能。

      更仔細(xì)而言,其實是將整個應(yīng)用程序中重復(fù)性最高、且最經(jīng)常呼用(Call,呼叫使用,中國內(nèi)地方面稱為:調(diào)用)的函式庫(Library,中國內(nèi)地方面稱為:庫)進(jìn)行轉(zhuǎn)化,改以FPGA的硬件線路執(zhí)行,如此就能夠以最小的轉(zhuǎn)化心力獲得最大的加速效果。

      Cray如此,與Cray同為高效運(yùn)算市場的另一家業(yè)者:SGI(視算科技)也實行相同的作法,SGI提出所謂的RASC(Reconfigurable Application Specific Computing;RASC),中文可稱為:可組態(tài)化應(yīng)用程序性運(yùn)算,RASC也是以模塊方式讓原有的超級計算機(jī)能獲得加速效果。

      SGI的作法與Cray有部分相同也有部分不同,Cray是將模塊設(shè)置在原有超級計算機(jī)的機(jī)內(nèi),而SGI則是運(yùn)用既有超級計算機(jī)機(jī)箱的上部來加搭加速模塊,不過就功效機(jī)制而言兩者異曲同工,此外兩者都使用Xilinx的VIRTEX系列FPGA,但是內(nèi)存與I/O部分兩家也實行不同的設(shè)計,Cray是使用QDR II SRAM,SGI則是可實行QDR SRAM,或者也可用DDR2 SDRAM,前者容量少(80MB)但速度快,后者容量大(20GB)而速度慢,提供兩種選擇的原因是可依據(jù)不同的應(yīng)用程序特性來選用。

      另外,高效運(yùn)算業(yè)者通常有獨(dú)門的機(jī)內(nèi)通訊傳輸技術(shù),RapidArray即是Cray的獨(dú)家技術(shù),而SGI自身也有獨(dú)家的傳輸技術(shù),即NUMAlink 4(已是第四代技術(shù)),所以SGI的RASC不是使用RapidArray,而是使用NUMAlink 4。

      其實Cray系統(tǒng)內(nèi)所用的FPGA模塊是與DRC Computer公司技術(shù)合作而成,因此DRC Computer自身也有提供相近方案,DRC的RPU(Reconfigurable Processor Units)同樣也是用FPGA來加速,一樣是用Xilinx VIRTEX FPGA,但與主系統(tǒng)間的連接接口改成AMD Opteron處理器的接座接口,如此一般使用AMD Opteron處理器的x86服務(wù)器也可以加裝RPU來提升高效運(yùn)算的效能。

      芯片開發(fā)時的邏輯功效驗證

      FPGA的另一個新應(yīng)用是芯片開發(fā)時的邏輯功效驗證。過去數(shù)字芯片在設(shè)計開發(fā)時,每開發(fā)至一個階段就必須對已經(jīng)完成的電路進(jìn)行邏輯上、機(jī)制上的功效驗證,以了解設(shè)計是否有誤,關(guān)于此多是用計算機(jī)軟件程序來進(jìn)行邏輯推演(Simulation),不過用計算機(jī)程序來進(jìn)行驗證,其推演速度相當(dāng)慢,所以每一項驗證都要經(jīng)過漫長等待才能知道結(jié)果。

      對此或許有人會說:可以使用更快速的計算機(jī)來加快驗證,但這其實是雞與蛋的問題,計算機(jī)效能提升其實是因為芯片效能愈來愈高,芯片效能愈來愈高原因可用摩爾定律來解釋,在摩爾定律下,芯片開發(fā)速度變快、同時也讓芯片更復(fù)雜,所以「計算機(jī)的更快速」與「芯片的更復(fù)雜」是連動的,使用了更快速的計算機(jī),也意味著要推演、驗證更復(fù)雜設(shè)計的芯片,最根本的問題并還沒有真正解決。

      不過,由于FPGA的電路密度、運(yùn)作效能在近年來大幅提升,所以開始有人提議用FPGA來取代純計算機(jī)執(zhí)行的驗證軟件,如此推演速度就可以獲得大幅提升。舉例來說,IBM、Sony、Toshiba三家業(yè)者所共同合作開發(fā)的Cell芯片,當(dāng)芯片還在開發(fā)階段時就已經(jīng)使用FPGA來推演驗證,以加速了解設(shè)計上的正確性。更具體來說,就是將新芯片的邏輯電路加載到FPGA,讓FPGA充當(dāng)新芯片來執(zhí)行。

      改采FPGA方式來驗證,其優(yōu)點(diǎn)不僅是加速驗證程序,也可以節(jié)省驗證成本,過去為了加速驗證,必須動用大量的計算機(jī),讓眾多的計算機(jī)同時都執(zhí)行驗證程序,才能讓驗證速度提升,有時其計算機(jī)的用量甚至要用及整個運(yùn)算機(jī)房內(nèi)的計算機(jī),而今改成FPGA方式驗證后,計算機(jī)用量就可大幅減少。

      要注意的是,由于芯片的電路愈來愈復(fù)雜,即便使用高階、大容量(邏輯閘)的FPGA,都很難單獨(dú)用一顆FPGA就仿真出整個新芯片,所以通常是同時用上多顆FPGA芯片,每顆FPGA芯片仿真部份的新芯片電路,然后再將多個FPGA芯片進(jìn)行串連,用多個芯片來同時仿真一顆新芯片。

      另外,F(xiàn)PGA雖可以進(jìn)行芯片設(shè)計的功效驗證,但并不代表整個芯片的設(shè)計開發(fā)流程都可以加速,芯片電路設(shè)計的部份依舊需要工程師人工設(shè)計,只有功效驗證上可以獲得加速。再者,功效驗證完全正確后并不代表芯片就此設(shè)計完成(除非該芯片確定直接以FPGA方式出貨),后續(xù)在正式投產(chǎn)之前,還要經(jīng)過頻率收斂、電路化簡等其它實體電路特性的調(diào)修,這方面FPGA也無從給予幫助。

      數(shù)字信號處理器(DSP)

      FPGA另一個新應(yīng)用是取代DSP,由于FPGA適合規(guī)劃成可同時大量平行運(yùn)算組態(tài),如此可加速數(shù)字信號運(yùn)算。

      所謂的「取代」,其實牽涉到價格效能比(Price Performance Rate,中國內(nèi)地方面稱為:性價比,性能價格比)問題,相同的數(shù)字信號運(yùn)算工作可以用FPGA運(yùn)算,也可以用DSP運(yùn)算,重點(diǎn)在于芯片成本,一般而言FPGA的芯片價格貴過DSP,但FPGA同時間可平行執(zhí)行的數(shù)字信號運(yùn)算量比DSP大,當(dāng)數(shù)字信號運(yùn)算的需求量夠大時,F(xiàn)PGA在價格效能比上就會超越DSP。

      若更具體說明,一顆高效能的DSP約要30至200美元,而一顆高階的FPGA則約200美元,高效能的DSP同時間可以處理4個信道的數(shù)字信號,而高階的FPGA則可因應(yīng)20至40個信道以上的信號運(yùn)算,如此簡單將信道數(shù)與價格相除,可明顯看出在同時多組運(yùn)算時FPGA的成本低于DSP。

      當(dāng)然,先決條件是應(yīng)用需求上需要同時間的多組運(yùn)算,并非所有的應(yīng)用都需要大量的數(shù)字信號運(yùn)算,不過無線基地臺方面確實有此種需求,但無線基地臺前端的用戶裝置則沒有這類的需求,事實上現(xiàn)在確實有諸多的無線基地臺,已從過去完全只用DSP方式來進(jìn)行信號收發(fā)解析處理,改成部份使用DSP、部份使用FPGA。

      但是這也并非絕對,原因有二,一是FPGA仍在積極降價中,未來的價格性能比會持續(xù)提升,目前只有大量的數(shù)字信號運(yùn)算是屬于FPGA較合算,但日后也會逐漸往中階、初階發(fā)展,接下來可能小規(guī)模性的基地臺(如Pico Cell、Femto Cell等)也會使用。

      另一是前端用戶的數(shù)字信號運(yùn)算量也在增加,特別是MIMO技術(shù)已經(jīng)進(jìn)入到末端用戶產(chǎn)品上(如IEEE 802.11n標(biāo)準(zhǔn)),同時2個、3個天線的收發(fā)將使數(shù)字信號的運(yùn)算量增加,加上愈來愈多無線技術(shù)是使用OFDM調(diào)變,而OFDM的調(diào)變?yōu)楦叨绕叫谢倪\(yùn)算,使用FPGA將可獲得不錯的效益。

      雖然許多人看好FPGA取代DSP的后續(xù)發(fā)展,但是FPGA也并非全然無威脅,目前許多芯片業(yè)者正積極發(fā)展多核心處理器,例如Tilera公司的Tile64處理器擁有64個執(zhí)行核心,一樣可以提供大量平行的運(yùn)算,而不需要使用FPGA或DSP。

      如冰山般「厚實、緩慢」的推進(jìn)

      上述三種FPGA的新應(yīng)用,筆者個人認(rèn)為往后只會更擴(kuò)展、更深入地運(yùn)用,而不可能回退,高效運(yùn)算系統(tǒng)未來只會愈來愈常使用FPGA,芯片設(shè)計上的邏輯功效驗證也會愈來愈常用使用FPGA,并減少使用推演軟件(或稱:仿真軟件),基地臺等應(yīng)用也是如此。

      所以FPGA是厚實地?fù)碛辛诉@三項新應(yīng)用,未來用量與運(yùn)用程度只會增加,但會慢慢地增加,因為FPGA的電路密度(或稱:晶體管數(shù)量)只會愈來愈密、運(yùn)作效能只會愈來愈快,同時價格也將愈來愈低。如同冰山一樣:緩慢擴(kuò)展,但每一英寸擴(kuò)展卻都相當(dāng)?shù)貓院穸y以回退。 

  
    


      △圖說:Cray XD1超級計算機(jī)內(nèi)的應(yīng)用程序加速模塊是用FPGA做協(xié)處理器,接著透過RapidArray接口連接至RapidArray的接口處理器(簡稱:RAP),RAP另一端再以HyperTransport(簡稱:HT)接口與超級計算機(jī)的主處理器連接。(www.Cray.com)



      △圖說:Cray XD1超級計算機(jī)應(yīng)用程序加速模塊部分的更仔細(xì)線路圖,其中Xilinx VIRTEX FPGA與4顆QDR II SRAM相連,同時自身也能與其它相鄰運(yùn)算模塊溝通傳輸,另外也與RAP相連。(www.Cray.com) 

 
        


      △圖說:SGI的RASC應(yīng)用程序加速模塊,可直接加裝在SGI超級計算機(jī)機(jī)箱的上端,并透過NUMAlink 4接口與超級計算機(jī)相連,以加速原有超級計算機(jī)的應(yīng)用程序運(yùn)算。(www.SGI.com)

      

      △圖說:SGI RASC加速模塊的內(nèi)部圖,中間部位的銅質(zhì)散熱片下方即是FPGA芯片,設(shè)置于周旁的則是內(nèi)存模塊,后端的黑色連接器即是NUMAlink 4接口,2組連接器表示RASC具有2組NUMAlink 4接口。(www.SGI.com) 

 
       


      △圖說:另一款SGI RASC:RASC RC100 Blade,圖中可見大量的DDR2 SDRAM內(nèi)存模塊,容量最高可至20GB,適合在大數(shù)據(jù)量的高效運(yùn)算。(www.SGI.com)
                 


      △圖說:Cell寬帶引擎芯片還在電路的開發(fā)設(shè)計階段時,是先運(yùn)用數(shù)顆FPGA芯片組兜出Cell的仿真電路,然后推演、驗證其功效邏輯及機(jī)制是否正確無誤,圖為Cell芯片的裸晶與一般文具圖釘?shù)捏w積比較。(www.IBM.com) 

  
           


      △圖說:無線收發(fā)基地臺端有著同時多組數(shù)字信號的運(yùn)算需求,此時就價格效能比而言使用FPGA將比使用多顆DSP合算,圖中為WiMAX基地臺端的模塊化運(yùn)算機(jī)箱(東訊TECOM公司的WM5070),機(jī)箱內(nèi)負(fù)責(zé)無線傳輸?shù)氖瞻l(fā)信號解析與演算,若WiMAX基地臺使用方位性天線,則同時間內(nèi)所需要運(yùn)算的信號組數(shù)也會增加。



關(guān)鍵詞: FPGA 應(yīng)用 趨勢 其他IC 制程

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉