FPGA新興應(yīng)用趨勢(shì)洞悉
——
但就技術(shù)角度來(lái)看,FPGA的應(yīng)用拓展就更為多樣且具意義,這包括用FPGA加速高效運(yùn)算、用FPGA加速電路設(shè)計(jì)驗(yàn)證、用FPGA取代大量性的DSP運(yùn)算。
由于掩膜成本的指數(shù)性攀升,許多中等用量規(guī)模(約50萬(wàn)顆以下)的芯片無(wú)法如過(guò)去般以ASIC方式投產(chǎn),且不得不改以FPGA投產(chǎn),如此使近年來(lái)FPGA的市場(chǎng)不斷增長(zhǎng)。
FPGA侵蝕原有ASIC市場(chǎng)的用量極為可觀的,此也成為近年來(lái)眾人關(guān)注FPGA的首要焦點(diǎn),不過(guò)也因?yàn)檫^(guò)于聚焦在高用量、大市場(chǎng)的觀察,使FPGA的其它新應(yīng)用發(fā)展被人所忽略,但這些應(yīng)用卻也極具意義。所以,以下本文將針對(duì)FPGA的新應(yīng)用進(jìn)行更多的了解與說(shuō)明。
高效運(yùn)算(High Performance Computing;HPC)
高效運(yùn)算所指的即是軍方、政府機(jī)關(guān)、學(xué)術(shù)研究單位所用的超級(jí)計(jì)算機(jī)(Supercomputer),另外部分企業(yè)內(nèi)的工程、科技運(yùn)算也含括在內(nèi),這類型的計(jì)算機(jī)擁有極高的運(yùn)算效能,然近年來(lái)為了進(jìn)一步提升系統(tǒng)效能,因此開始將FPGA運(yùn)用于系統(tǒng)中。
首先是Cray Research,該公司的超級(jí)計(jì)算機(jī):XD1就有用上FPGA,XD1用的是Xilinx(賽靈思)公司的VIRTEX系列FPGA。XD1機(jī)內(nèi)有所謂的FPGA應(yīng)用程序加速模塊(FPGA Application Acceleration Module),模塊等于是機(jī)內(nèi)的一個(gè)小型輔助運(yùn)算系統(tǒng),VIRTEX是模塊內(nèi)的主控芯片,等于是一個(gè)協(xié)同處理器(Co-Processor),只不過(guò)這個(gè)協(xié)同處理器與ASIC型式的協(xié)同處理器不同,F(xiàn)PGA具有可程序化的功效,因此VIRTEX是一顆可程序化的協(xié)同處理器。
運(yùn)算模塊內(nèi)除了有FPGA的協(xié)同處理器外,處理器也必須搭配內(nèi)存才能行使運(yùn)算,所以FPGA會(huì)再連接4顆QDR II SRAM(極高速性的內(nèi)存),然后模塊一方面用HyperTransport與XD1的主處理器相連,另一方面也連往XD1的特有高速I/O界面:RapidArray。
接著,由于高效運(yùn)算多是執(zhí)行大量重復(fù)性的運(yùn)算,例如氣象預(yù)測(cè)、風(fēng)洞測(cè)試等,所以可以將執(zhí)行的應(yīng)用程序轉(zhuǎn)化成FPGA內(nèi)的組態(tài)(Configuration,中國(guó)內(nèi)地方面稱為:配置)程序,以硬件線路方式來(lái)執(zhí)行運(yùn)算,如此將比過(guò)往用純軟件方式執(zhí)行快上數(shù)倍至數(shù)十倍的效能,甚至在特定的應(yīng)用運(yùn)算上能達(dá)一百倍以上的效能。
更仔細(xì)而言,其實(shí)是將整個(gè)應(yīng)用程序中重復(fù)性最高、且最經(jīng)常呼用(Call,呼叫使用,中國(guó)內(nèi)地方面稱為:調(diào)用)的函式庫(kù)(Library,中國(guó)內(nèi)地方面稱為:庫(kù))進(jìn)行轉(zhuǎn)化,改以FPGA的硬件線路執(zhí)行,如此就能夠以最小的轉(zhuǎn)化心力獲得最大的加速效果。
Cray如此,與Cray同為高效運(yùn)算市場(chǎng)的另一家業(yè)者:SGI(視算科技)也實(shí)行相同的作法,SGI提出所謂的RASC(Reconfigurable Application Specific Computing;RASC),中文可稱為:可組態(tài)化應(yīng)用程序性運(yùn)算,RASC也是以模塊方式讓原有的超級(jí)計(jì)算機(jī)能獲得加速效果。
SGI的作法與Cray有部分相同也有部分不同,Cray是將模塊設(shè)置在原有超級(jí)計(jì)算機(jī)的機(jī)內(nèi),而SGI則是運(yùn)用既有超級(jí)計(jì)算機(jī)機(jī)箱的上部來(lái)加搭加速模塊,不過(guò)就功效機(jī)制而言兩者異曲同工,此外兩者都使用Xilinx的VIRTEX系列FPGA,但是內(nèi)存與I/O部分兩家也實(shí)行不同的設(shè)計(jì),Cray是使用QDR II SRAM,SGI則是可實(shí)行QDR SRAM,或者也可用DDR2 SDRAM,前者容量少(80MB)但速度快,后者容量大(20GB)而速度慢,提供兩種選擇的原因是可依據(jù)不同的應(yīng)用程序特性來(lái)選用。
另外,高效運(yùn)算業(yè)者通常有獨(dú)門的機(jī)內(nèi)通訊傳輸技術(shù),RapidArray即是Cray的獨(dú)家技術(shù),而SGI自身也有獨(dú)家的傳輸技術(shù),即NUMAlink 4(已是第四代技術(shù)),所以SGI的RASC不是使用RapidArray,而是使用NUMAlink 4。
其實(shí)Cray系統(tǒng)內(nèi)所用的FPGA模塊是與DRC Computer公司技術(shù)合作而成,因此DRC Computer自身也有提供相近方案,DRC的RPU(Reconfigurable Processor Units)同樣也是用FPGA來(lái)加速,一樣是用Xilinx VIRTEX FPGA,但與主系統(tǒng)間的連接接口改成AMD Opteron處理器的接座接口,如此一般使用AMD Opteron處理器的x86服務(wù)器也可以加裝RPU來(lái)提升高效運(yùn)算的效能。
芯片開發(fā)時(shí)的邏輯功效驗(yàn)證
FPGA的另一個(gè)新應(yīng)用是芯片開發(fā)時(shí)的邏輯功效驗(yàn)證。過(guò)去數(shù)字芯片在設(shè)計(jì)開發(fā)時(shí),每開發(fā)至一個(gè)階段就必須對(duì)已經(jīng)完成的電路進(jìn)行邏輯上、機(jī)制上的功效驗(yàn)證,以了解設(shè)計(jì)是否有誤,關(guān)于此多是用計(jì)算機(jī)軟件程序來(lái)進(jìn)行邏輯推演(Simulation),不過(guò)用計(jì)算機(jī)程序來(lái)進(jìn)行驗(yàn)證,其推演速度相當(dāng)慢,所以每一項(xiàng)驗(yàn)證都要經(jīng)過(guò)漫長(zhǎng)等待才能知道結(jié)果。
對(duì)此或許有人會(huì)說(shuō):可以使用更快速的計(jì)算機(jī)來(lái)加快驗(yàn)證,但這其實(shí)是雞與蛋的問(wèn)題,計(jì)算機(jī)效能提升其實(shí)是因?yàn)樾酒苡鷣?lái)愈高,芯片效能愈來(lái)愈高原因可用摩爾定律來(lái)解釋,在摩爾定律下,芯片開發(fā)速度變快、同時(shí)也讓芯片更復(fù)雜,所以「計(jì)算機(jī)的更快速」與「芯片的更復(fù)雜」是連動(dòng)的,使用了更快速的計(jì)算機(jī),也意味著要推演、驗(yàn)證更復(fù)雜設(shè)計(jì)的芯片,最根本的問(wèn)題并還沒有真正解決。
不過(guò),由于FPGA的電路密度、運(yùn)作效能在近年來(lái)大幅提升,所以開始有人提議用FPGA來(lái)取代純計(jì)算機(jī)執(zhí)行的驗(yàn)證軟件,如此推演速度就可以獲得大幅提升。舉例來(lái)說(shuō),IBM、Sony、Toshiba三家業(yè)者所共同合作開發(fā)的Cell芯片,當(dāng)芯片還在開發(fā)階段時(shí)就已經(jīng)使用FPGA來(lái)推演驗(yàn)證,以加速了解設(shè)計(jì)上的正確性。更具體來(lái)說(shuō),就是將新芯片的邏輯電路加載到FPGA,讓FPGA充當(dāng)新芯片來(lái)執(zhí)行。
改采FPGA方式來(lái)驗(yàn)證,其優(yōu)點(diǎn)不僅是加速驗(yàn)證程序,也可以節(jié)省驗(yàn)證成本,過(guò)去為了加速驗(yàn)證,必須動(dòng)用大量的計(jì)算機(jī),讓眾多的計(jì)算機(jī)同時(shí)都執(zhí)行驗(yàn)證程序,才能讓驗(yàn)證速度提升,有時(shí)其計(jì)算機(jī)的用量甚至要用及整個(gè)運(yùn)算機(jī)房?jī)?nèi)的計(jì)算機(jī),而今改成FPGA方式驗(yàn)證后,計(jì)算機(jī)用量就可大幅減少。
要注意的是,由于芯片的電路愈來(lái)愈復(fù)雜,即便使用高階、大容量(邏輯閘)的FPGA,都很難單獨(dú)用一顆FPGA就仿真出整個(gè)新芯片,所以通常是同時(shí)用上多顆FPGA芯片,每顆FPGA芯片仿真部份的新芯片電路,然后再將多個(gè)FPGA芯片進(jìn)行串連,用多個(gè)芯片來(lái)同時(shí)仿真一顆新芯片。
另外,F(xiàn)PGA雖可以進(jìn)行芯片設(shè)計(jì)的功效驗(yàn)證,但并不代表整個(gè)芯片的設(shè)計(jì)開發(fā)流程都可以加速,芯片電路設(shè)計(jì)的部份依舊需要工程師人工設(shè)計(jì),只有功效驗(yàn)證上可以獲得加速。再者,功效驗(yàn)證完全正確后并不代表芯片就此設(shè)計(jì)完成(除非該芯片確定直接以FPGA方式出貨),后續(xù)在正式投產(chǎn)之前,還要經(jīng)過(guò)頻率收斂、電路化簡(jiǎn)等其它實(shí)體電路特性的調(diào)修,這方面FPGA也無(wú)從給予幫助。
數(shù)字信號(hào)處理器(DSP)
FPGA另一個(gè)新應(yīng)用是取代DSP,由于FPGA適合規(guī)劃成可同時(shí)大量平行運(yùn)算組態(tài),如此可加速數(shù)字信號(hào)運(yùn)算。
所謂的「取代」,其實(shí)牽涉到價(jià)格效能比(Price Performance Rate,中國(guó)內(nèi)地方面稱為:性價(jià)比,性能價(jià)格比)問(wèn)題,相同的數(shù)字信號(hào)運(yùn)算工作可以用FPGA運(yùn)算,也可以用DSP運(yùn)算,重點(diǎn)在于芯片成本,一般而言FPGA的芯片價(jià)格貴過(guò)DSP,但FPGA同時(shí)間可平行執(zhí)行的數(shù)字信號(hào)運(yùn)算量比DSP大,當(dāng)數(shù)字信號(hào)運(yùn)算的需求量夠大時(shí),F(xiàn)PGA在價(jià)格效能比上就會(huì)超越DSP。
若更具體說(shuō)明,一顆高效能的DSP約要30至200美元,而一顆高階的FPGA則約200美元,高效能的DSP同時(shí)間可以處理4個(gè)信道的數(shù)字信號(hào),而高階的FPGA則可因應(yīng)20至40個(gè)信道以上的信號(hào)運(yùn)算,如此簡(jiǎn)單將信道數(shù)與價(jià)格相除,可明顯看出在同時(shí)多組運(yùn)算時(shí)FPGA的成本低于DSP。
當(dāng)然,先決條件是應(yīng)用需求上需要同時(shí)間的多組運(yùn)算,并非所有的應(yīng)用都需要大量的數(shù)字信號(hào)運(yùn)算,不過(guò)無(wú)線基地臺(tái)方面確實(shí)有此種需求,但無(wú)線基地臺(tái)前端的用戶裝置則沒有這類的需求,事實(shí)上現(xiàn)在確實(shí)有諸多的無(wú)線基地臺(tái),已從過(guò)去完全只用DSP方式來(lái)進(jìn)行信號(hào)收發(fā)解析處理,改成部份使用DSP、部份使用FPGA。
但是這也并非絕對(duì),原因有二,一是FPGA仍在積極降價(jià)中,未來(lái)的價(jià)格性能比會(huì)持續(xù)提升,目前只有大量的數(shù)字信號(hào)運(yùn)算是屬于FPGA較合算,但日后也會(huì)逐漸往中階、初階發(fā)展,接下來(lái)可能小規(guī)模性的基地臺(tái)(如Pico Cell、Femto Cell等)也會(huì)使用。
另一是前端用戶的數(shù)字信號(hào)運(yùn)算量也在增加,特別是MIMO技術(shù)已經(jīng)進(jìn)入到末端用戶產(chǎn)品上(如IEEE 802.11n標(biāo)準(zhǔn)),同時(shí)2個(gè)、3個(gè)天線的收發(fā)將使數(shù)字信號(hào)的運(yùn)算量增加,加上愈來(lái)愈多無(wú)線技術(shù)是使用OFDM調(diào)變,而OFDM的調(diào)變?yōu)楦叨绕叫谢倪\(yùn)算,使用FPGA將可獲得不錯(cuò)的效益。
雖然許多人看好FPGA取代DSP的后續(xù)發(fā)展,但是FPGA也并非全然無(wú)威脅,目前許多芯片業(yè)者正積極發(fā)展多核心處理器,例如Tilera公司的Tile64處理器擁有64個(gè)執(zhí)行核心,一樣可以提供大量平行的運(yùn)算,而不需要使用FPGA或DSP。
如冰山般「厚實(shí)、緩慢」的推進(jìn)
上述三種FPGA的新應(yīng)用,筆者個(gè)人認(rèn)為往后只會(huì)更擴(kuò)展、更深入地運(yùn)用,而不可能回退,高效運(yùn)算系統(tǒng)未來(lái)只會(huì)愈來(lái)愈常使用FPGA,芯片設(shè)計(jì)上的邏輯功效驗(yàn)證也會(huì)愈來(lái)愈常用使用FPGA,并減少使用推演軟件(或稱:仿真軟件),基地臺(tái)等應(yīng)用也是如此。
所以FPGA是厚實(shí)地?fù)碛辛诉@三項(xiàng)新應(yīng)用,未來(lái)用量與運(yùn)用程度只會(huì)增加,但會(huì)慢慢地增加,因?yàn)镕PGA的電路密度(或稱:晶體管數(shù)量)只會(huì)愈來(lái)愈密、運(yùn)作效能只會(huì)愈來(lái)愈快,同時(shí)價(jià)格也將愈來(lái)愈低。如同冰山一樣:緩慢擴(kuò)展,但每一英寸擴(kuò)展卻都相當(dāng)?shù)貓?jiān)厚而難以回退。
△圖說(shuō):Cray XD1超級(jí)計(jì)算機(jī)內(nèi)的應(yīng)用程序加速模塊是用FPGA做協(xié)處理器,接著透過(guò)RapidArray接口連接至RapidArray的接口處理器(簡(jiǎn)稱:RAP),RAP另一端再以HyperTransport(簡(jiǎn)稱:HT)接口與超級(jí)計(jì)算機(jī)的主處理器連接。(www.Cray.com)
△圖說(shuō):Cray XD1超級(jí)計(jì)算機(jī)應(yīng)用程序加速模塊部分的更仔細(xì)線路圖,其中Xilinx VIRTEX FPGA與4顆QDR II SRAM相連,同時(shí)自身也能與其它相鄰運(yùn)算模塊溝通傳輸,另外也與RAP相連。(www.Cray.com)
△圖說(shuō):SGI的RASC應(yīng)用程序加速模塊,可直接加裝在SGI超級(jí)計(jì)算機(jī)機(jī)箱的上端,并透過(guò)NUMAlink 4接口與超級(jí)計(jì)算機(jī)相連,以加速原有超級(jí)計(jì)算機(jī)的應(yīng)用程序運(yùn)算。(www.SGI.com)
△圖說(shuō):SGI RASC加速模塊的內(nèi)部圖,中間部位的銅質(zhì)散熱片下方即是FPGA芯片,設(shè)置于周旁的則是內(nèi)存模塊,后端的黑色連接器即是NUMAlink 4接口,2組連接器表示RASC具有2組NUMAlink 4接口。(www.SGI.com)
△圖說(shuō):另一款SGI RASC:RASC RC100 Blade,圖中可見大量的DDR2 SDRAM內(nèi)存模塊,容量最高可至20GB,適合在大數(shù)據(jù)量的高效運(yùn)算。(www.SGI.com)
△圖說(shuō):Cell寬帶引擎芯片還在電路的開發(fā)設(shè)計(jì)階段時(shí),是先運(yùn)用數(shù)顆FPGA芯片組兜出Cell的仿真電路,然后推演、驗(yàn)證其功效邏輯及機(jī)制是否正確無(wú)誤,圖為Cell芯片的裸晶與一般文具圖釘?shù)捏w積比較。(www.IBM.com)
△圖說(shuō):無(wú)線收發(fā)基地臺(tái)端有著同時(shí)多組數(shù)字信號(hào)的運(yùn)算需求,此時(shí)就價(jià)格效能比而言使用FPGA將比使用多顆DSP合算,圖中為WiMAX基地臺(tái)端的模塊化運(yùn)算機(jī)箱(東訊TECOM公司的WM5070),機(jī)箱內(nèi)負(fù)責(zé)無(wú)線傳輸?shù)氖瞻l(fā)信號(hào)解析與演算,若WiMAX基地臺(tái)使用方位性天線,則同時(shí)間內(nèi)所需要運(yùn)算的信號(hào)組數(shù)也會(huì)增加。
評(píng)論