ZYNQ嵌入式處理器與FPGA整合,開(kāi)辟行業(yè)新篇章
Xilinx的EPP(可擴(kuò)展處理平臺(tái))——Zynq-7000系列將業(yè)界標(biāo)準(zhǔn)的ARM雙核Cortex-A9 MPCore處理系統(tǒng)與Xilinx可擴(kuò)展的28nm FPGA架構(gòu)整合在一起,在單一芯片上集成了“嵌入式處理器+FPGA”等性能。
引言
全球可編程平臺(tái)領(lǐng)導(dǎo)廠(chǎng)商賽靈思(Xilinx)公司今年的市場(chǎng)重點(diǎn)是28nm的7系列產(chǎn)品及Zynq。不久前,Xilinx公司才宣布開(kāi)始向客戶(hù)出貨首款 Zynq可擴(kuò)展處理平臺(tái)(EPP)。那么,Zynq是什么樣的產(chǎn)品?為何Xilinx稱(chēng)“Zynq為Xilinx打開(kāi)了新的篇章,同時(shí)為整個(gè)嵌入式行業(yè)和FPGA業(yè)也打開(kāi)了新的篇章”?
28nm FPGA的優(yōu)勢(shì)
首先,Zynq是基于28nm制程的FPGA。Xilinx的全球總裁兼CEO Moshe Gavrielov指出[1],以28nm制程來(lái)看,ASIC與ASSP的一次性費(fèi)用(NRE)將高達(dá)5000萬(wàn)美元,若重新設(shè)計(jì)還得再付擔(dān)原費(fèi)用的50%。此外,隨著全球化趨勢(shì)及網(wǎng)絡(luò)的普及,競(jìng)爭(zhēng)者不再只是本國(guó)而是來(lái)自全世界的搶食,系統(tǒng)對(duì)產(chǎn)品設(shè)計(jì)性?xún)r(jià)比的考量也更加嚴(yán)峻。因此,獨(dú)特性及靈活性成為大多數(shù)廠(chǎng)商設(shè)計(jì)考量的著眼點(diǎn)。
因此,以靈活性、上市快及較低成本取勝的FPGA處于健康的增長(zhǎng)態(tài)勢(shì)(圖1)。
ARM的A9 MPCore受到熱捧
Xilinx為何選擇了跟 ARM 合作,來(lái)開(kāi)發(fā)一個(gè)雙核的Cortex-A9 MPCore 處理器?因?yàn)锳RM處理器在業(yè)界領(lǐng)先,已被客戶(hù)廣泛采用,還有其總體生態(tài)環(huán)境、支持工具都比較成熟。
經(jīng)過(guò)20年的發(fā)展,在處理器世界中,盡管處理器的用量越來(lái)越大,但主流平臺(tái)的數(shù)量越來(lái)越少,美國(guó)《Microprocessor Forum》雜志認(rèn)為,1992年活躍著眾多的處理器平臺(tái)(圖2),但是2009年只有四大主流平臺(tái):ARM,x86,PPC(PowerPC)和MIPS平臺(tái)。其中ARM以生態(tài)環(huán)境豐富成為矚目的熱點(diǎn)之一。ARM總裁Tudor Brown稱(chēng),ARM全球有合作伙伴900家企業(yè),合作伙伴的勢(shì)頭發(fā)展良好(圖3)。并承諾:“今后,ARM將持續(xù)地在產(chǎn)品路線(xiàn)圖上和伙伴關(guān)系上投資,保證客戶(hù)有強(qiáng)大的渠道和生態(tài)系統(tǒng)。”
盡管ARM9和ARM7是ARM全世界授權(quán)量最多的(圖4) ,也是出貨量最大的;但是Cortex-A系列是所有系列里面增長(zhǎng)速度最快的,甚至超過(guò)M系列。
除了Xilinx的Zynq家族外,很多公司已經(jīng)或正在做基于Cortex-A9的創(chuàng)新,智能手機(jī)、平板電腦、3D TV;網(wǎng)絡(luò)SoC(系統(tǒng)芯片)、網(wǎng)絡(luò)服務(wù)器、超級(jí)計(jì)算機(jī)……。
這些企業(yè)之所以選擇A9,因?yàn)樗茿RM處理器系列中較高性能的一款產(chǎn)品,采用了ARMv7架構(gòu)。A9處理器的設(shè)計(jì)是基于先進(jìn)的推測(cè)型八級(jí)流水線(xiàn)(speculating 8-stage pipeline),該流水線(xiàn)具有高效、動(dòng)態(tài)長(zhǎng)度、多發(fā)射超標(biāo)量及無(wú)序完成特征,因此這款處理器的性能、功效和功能均達(dá)到了高水平,能夠滿(mǎn)足消費(fèi)、網(wǎng)絡(luò)、企業(yè)和移動(dòng)應(yīng)用等領(lǐng)域尖端產(chǎn)品的要求。
處理器+FPGA整合:1+1>2
市場(chǎng)調(diào)查表明,F(xiàn)PGA目前在全部嵌入式系統(tǒng)中的使用比例占50%~70%[4]。因此這個(gè)市場(chǎng)非常巨大,而通常的工程方案是“嵌入式處理器+FPGA”。“但是我們的客戶(hù)并不滿(mǎn)足于此,或者說(shuō)在客戶(hù)的應(yīng)用里目前的器件都不能滿(mǎn)足他們的需求,無(wú)論是傳統(tǒng)的單個(gè)處理器、單個(gè)FPGA、ASIC或者是ASSP,特別是對(duì)于軟件開(kāi)發(fā)公司來(lái)說(shuō),對(duì)FPGA編程相當(dāng)困難。我們發(fā)現(xiàn)到2014年有約127億美元的市場(chǎng)是傳統(tǒng)FPGA沒(méi)法服務(wù)的。”Xilinx全球市場(chǎng)營(yíng)銷(xiāo)高級(jí)副總裁Vin Ratford說(shuō)道。
當(dāng)前的四大挑戰(zhàn)是:提高系統(tǒng)性能,降低系統(tǒng)功耗,減少電路板的面積,降低總體系統(tǒng)的成本。
[!--empirenews.page--]
而一塊Zynq器件就可以實(shí)現(xiàn)“嵌入式處理器+FPGA”功能。尤其Zynq不是僅僅把 FPGA 跟處理器簡(jiǎn)單地集成在一起,更是兩者的有機(jī)結(jié)合。如圖5,傳統(tǒng)的FPGA與處理器之間的互聯(lián)是PCIe等,而Zynq采用了AXI4連接總線(xiàn),這樣的布局可以在FPGA 與處理器之間形成很寬的帶寬。圖5上方是雙芯片方案??梢钥吹紽PGA與處理器中間互聯(lián)利用 PCIe的互聯(lián)帶寬較窄,而且PCIe通道也較少,這意味著有時(shí)超過(guò)一半的FPGA會(huì)用來(lái)支持帶寬;并且兩個(gè)器件分別接著外帶的存儲(chǔ)器。圖5下方可以看到使用Zynq后,可以把中間的PCIe連接取走,再加上存儲(chǔ)器可以和FPGA 分享,這樣可以大大降低成本和功耗?! ?/p>
ARM中國(guó)總裁吳雄昂指出:“眾所周知,新一代的系統(tǒng)處理,不只是CPU的功能,接口的處理能力在很大程度上決定了整個(gè)系統(tǒng)的應(yīng)用能力。所以我們往往看到同樣一個(gè)設(shè)計(jì),因?yàn)榱己玫慕涌诘娜诤?,功能?huì)相差50%。我們很高興Xilinx的Zynq在新的AMBA AXI4 (Advanced eXtensible Interface 4) 接口上達(dá)到了很高的數(shù)據(jù)吞吐能力。”
Zynq以ARM為核心
Zynq盡管是由FPGA廠(chǎng)商—Xilinx主導(dǎo)的,但Xilinx稱(chēng)其是全新的EPP(可擴(kuò)展處理平臺(tái)),應(yīng)用時(shí),Zynq上電后處理系統(tǒng)會(huì)自動(dòng)啟動(dòng),而不會(huì)是FPGA先啟動(dòng)。
實(shí)際上,Zynq-7000系列具有完整的ARM處理系統(tǒng)(圖6),是以ARM Cortex-A9 MPCore為中心,還集成了存儲(chǔ)器控制器和外設(shè);另外,緊密集成可編程邏輯方面,圖6的黃色部分是FPGA,它們之間約有3000個(gè)內(nèi)部互連,內(nèi)部互連十倍于現(xiàn)有的雙芯片方案;除此之外,有靈活的I/O陣列,包括處理器專(zhuān)用I/O,可以支持多重標(biāo)準(zhǔn)的I/O,還集成了高性能串行收發(fā)器,雙12位的模數(shù)轉(zhuǎn)換器的輸入部分,輸入可以直接接到器件混模的架構(gòu)里。
該器件的軟硬件都可以編程,如果是處理器的開(kāi)發(fā)人員,可以用處理器軟件來(lái)做開(kāi)發(fā),擴(kuò)展到它的硬件FPGA的部分;如果是硬件的工程師,可以用FPGA做硬件加速器。
Zynq-7000的ARM處理系統(tǒng)
包括ARM雙Cortex-A9 MPCore、存儲(chǔ)器接口和通用外設(shè)三部分,并用AXI4實(shí)現(xiàn)開(kāi)放式的標(biāo)準(zhǔn)互聯(lián)。
具體來(lái)看,Zynq處理器的ARM內(nèi)核架構(gòu)帶NEON擴(kuò)展的雙ARM Cortex-A9 MPCore,這種架構(gòu)專(zhuān)門(mén)用于支持圖形應(yīng)用或者是圖形加速器,支持單、雙精度浮點(diǎn)運(yùn)算,工作頻率可達(dá)到800MHz。
存儲(chǔ)器的接口也是對(duì)應(yīng)可以支持DDR2、DDR3、LPDDR2、ZxQSPI、NOR、NAND閃存,內(nèi)含了L1和L2的高速緩存,總量可以達(dá)到512KB,同時(shí)還有片上的256KB存儲(chǔ)器。
通用外設(shè)具有集成的存儲(chǔ)器映射外設(shè)。另外還有強(qiáng)大的AXI4開(kāi)放式標(biāo)準(zhǔn)互聯(lián)。AXI4是高帶寬、低延時(shí)的行業(yè)標(biāo)準(zhǔn),是ARM自己定義的AMBA第四代總線(xiàn)架構(gòu),專(zhuān)門(mén)用作連接ARM的處理器、外設(shè)和FPGA。而且?guī)в蠥CP的端口,此端口讓開(kāi)發(fā)工程師可以增加更多的軟核處理器。整個(gè)處理系統(tǒng)是可以單獨(dú)啟動(dòng)的,也就是說(shuō),軟件工程師可以完全地對(duì)處理器編程,而不需要硬件工程師的協(xié)助。
Zynq的應(yīng)用
在Zynq的四個(gè)系列里,7010和7020針對(duì)較低端的應(yīng)用,像消費(fèi)類(lèi)或者是汽車(chē)輔助駕駛應(yīng)用等,7030和7045針對(duì)工業(yè)、通訊、國(guó)防、廣播級(jí)的應(yīng)用等。
其中,2011年初暫定為Zynq-7040的型號(hào)現(xiàn)被7045取代,主要是為了滿(mǎn)足有線(xiàn)、無(wú)線(xiàn)和視頻廣播市場(chǎng)領(lǐng)域客戶(hù)新的高端應(yīng)用需求,并將當(dāng)前該系列采用12.5 Gbps技術(shù)的收發(fā)器數(shù)量增加至16個(gè)。這將實(shí)現(xiàn)更多的橋接應(yīng)用,并實(shí)現(xiàn)更寬的高速DAC/ADC連接。新增的可編程邏輯功能(DSP、BRAM 和邏輯)可為設(shè)計(jì)人員帶來(lái)更高的信號(hào)處理能力,以滿(mǎn)足濾波、數(shù)字轉(zhuǎn)換以及其它功能要求,同時(shí)還能靈活地定制各種特定功能。Zynq-7045是Zynq系列的首款高端器件,其應(yīng)用范圍從下可以擁有30,000邏輯單元,專(zhuān)門(mén)針對(duì)成本敏感型應(yīng)用如工業(yè)、汽車(chē)電子以及消費(fèi)類(lèi)電子,從上邏輯單元可達(dá)350,000個(gè),幫助客戶(hù)在單一可擴(kuò)展平臺(tái)上,實(shí)現(xiàn)需要最高容量及性能的多種應(yīng)用。
“客戶(hù)會(huì)根據(jù)不同的應(yīng)用選用不同的器件,甚至同時(shí)選用多個(gè)器件,這就體現(xiàn)了在Xilinx的7系列里,統(tǒng)一架構(gòu)的優(yōu)勢(shì)可以在不同的平臺(tái)上無(wú)縫移植IP。”Vin說(shuō)道。而Zynq器件最便宜的低于15美元。
具體應(yīng)用方案,以Zynq用于汽車(chē)駕駛員輔助為例(圖7),據(jù)統(tǒng)計(jì),駕駛員20分鐘就會(huì)有疲勞現(xiàn)象,效率降低,智能的好處可以兼顧多畫(huà)面和攝像頭。例如一些汽車(chē)?yán)锏?ldquo;鳥(niǎo)眼”360°控制雷達(dá),可以把很多圖像連在一起,開(kāi)車(chē)時(shí)駕駛員可以觀(guān)察到360°廣角的情況。Zynq可以支持包括用視頻攝像頭去配合紅外傳感器和雷達(dá)傳感器看不同的路面狀況,比如是否壓線(xiàn)、走出路面等,然后做出調(diào)整。“無(wú)論是價(jià)格低廉的大眾還是高端的奔馳類(lèi)汽車(chē),7010和7020都可以發(fā)揮效能。”Vin稱(chēng)。
在工廠(chǎng)自動(dòng)化方面,Zynq的靈活性可以滿(mǎn)足系統(tǒng)上市時(shí)間的需求,同時(shí)提供系統(tǒng)內(nèi)編程的功能,讓客戶(hù)在單一的平臺(tái)上可以支持更多的標(biāo)準(zhǔn),而功耗和成本可以滿(mǎn)足需求。從性能來(lái)講,它可以實(shí)施工業(yè)聯(lián)網(wǎng)和電機(jī)控制硬件加速器,并提供高帶寬、低延時(shí)。
[!--empirenews.page--]
Cortex-A9與MicroBlaze互補(bǔ)
那么,Xilinx的傳統(tǒng)處理器核——MicroBlaze軟核與PowerPC硬核的未來(lái)會(huì)如何?據(jù)悉,Xilinx的32位軟核MicroBlaze還在使用,但與ARM Cortex-A9定位不同。MicroBlaze是相對(duì)較小、性能較低的核,二者所針對(duì)的應(yīng)用領(lǐng)域也不一樣。Xilinx將繼續(xù)發(fā)展MicroBlaze。
未來(lái)PowerPC不會(huì)在Xilinx的新產(chǎn)品中出現(xiàn),但是現(xiàn)在還會(huì)繼續(xù)支持原有的客戶(hù)。
Zynq定位更高的應(yīng)用價(jià)值
Zynq會(huì)與其他Cortex-A9 ASSP競(jìng)爭(zhēng)嗎?Xilinx認(rèn)為不會(huì)直接競(jìng)爭(zhēng),因?yàn)?ldquo;不是Xilinx的目標(biāo)市場(chǎng)”。Xilinx全球高級(jí)副總裁兼亞太區(qū)執(zhí)行總裁湯立人稱(chēng)。“Xilinx的產(chǎn)品是可擴(kuò)展處理平臺(tái)(EPP)。而傳統(tǒng)的A9產(chǎn)品已經(jīng)是定制好的,例如已經(jīng)集成了一定的存儲(chǔ)、PCIe等。”但由于Zynq把FPGA邏輯與ARM連接在一起,用戶(hù)可以集中精力在算法而不是硬件方面,并隨時(shí)將這套算法移植到其他硬件上,用戶(hù)只需要掌握相關(guān)應(yīng)用領(lǐng)域的技能就可以設(shè)計(jì)了。
傳統(tǒng)A9的程序可以直接轉(zhuǎn)到Zynq上;一些傳統(tǒng)的A9 無(wú)法實(shí)現(xiàn)的功能,例如高清轉(zhuǎn)化,仍然可以轉(zhuǎn)到Zynq上,并且將復(fù)雜的轉(zhuǎn)化部分放到FPGA中進(jìn)行,來(lái)實(shí)現(xiàn)傳統(tǒng)方法達(dá)不到的功能。
多核與單核架構(gòu)的優(yōu)勢(shì)
Cortex-A9微架構(gòu)提供兩種選項(xiàng):可擴(kuò)展的Cortex-A9 MPCore多核處理器,或較為傳統(tǒng)的Cortex-A9單核處理器。
ARM吳雄昂指出,采用多核處理器架構(gòu)不但能夠解決峰值性能的要求,而且其設(shè)計(jì)也能夠大大降低功耗。多核設(shè)備具有性能可擴(kuò)展性高和功耗低的特點(diǎn),為設(shè)計(jì)提供了極大的靈活性。
多核今后一個(gè)重要的挑戰(zhàn)就是怎樣從應(yīng)用軟件上來(lái)利用多核的優(yōu)勢(shì)。就好比人有兩個(gè)大腦半球/區(qū),所謂一心二用,所以如果你的軟件系統(tǒng)沒(méi)法真的是一心二用,多核的意義就不是很大的。另外一個(gè)問(wèn)題是針對(duì)你做事情的類(lèi)型,如果是做一個(gè)比較連續(xù)性的計(jì)算,后面的結(jié)果一定要根據(jù)前面計(jì)算的結(jié)果才能往下走。這種情況下多核的幫助是非常小的。所以Cortex-A8和A9的最大區(qū)別,是像A9這種設(shè)計(jì)本來(lái)就是給多核的,它有SMP(對(duì)稱(chēng)多處理技術(shù)),對(duì)于A(yíng)ndroid等操作系統(tǒng)(OS),可以自動(dòng)在軟件上來(lái)做負(fù)載均衡,以分配需要工作的任務(wù)。因?yàn)橛泻芏嗖煌幚砣蝿?wù)在后臺(tái),你可通過(guò)SMP共享一個(gè)物理存儲(chǔ)的cache(緩存)。這樣用戶(hù)的軟件的性能才能夠比較有效地利用。例如對(duì)于雙核的網(wǎng)絡(luò)應(yīng)用,如果有SMP,基本利用率會(huì)達(dá)到80%~90%,即放了兩個(gè)核,雙核的處理能力實(shí)際上提高到了1.8~1.9倍。如果放了4核以后,那么現(xiàn)在環(huán)境OS對(duì)4核的支持是相對(duì)比較弱的,可能實(shí)際上最后只有3甚至不到,因?yàn)槠滠浖灰?jiàn)得有能力去充分利用4核;同時(shí)你做的事情也不見(jiàn)得正好有4項(xiàng)是同時(shí)進(jìn)行的,所以一方面取決于你去執(zhí)行的任務(wù),一方面取決于系統(tǒng)架構(gòu)。所以多核CPU本身設(shè)計(jì)時(shí)已有SMP,從OS角度已經(jīng)基本被認(rèn)同,應(yīng)用者不需要再做任何的編程工作。
但是如果放3個(gè)A8以后,很大的問(wèn)題就是OS只認(rèn)一個(gè),所以其它兩個(gè)核很難分享負(fù)載,因?yàn)槟銢](méi)法去改軟件應(yīng)用。
軟件/開(kāi)發(fā)工具的創(chuàng)新
可見(jiàn),平臺(tái)軟件和工具軟件也是實(shí)現(xiàn)芯片性能的重要一關(guān)。尤其在處理平臺(tái)趨同與整合后,軟件的復(fù)雜度越來(lái)越高,遠(yuǎn)遠(yuǎn)超過(guò)了硬件。軟件工程師數(shù)量也已超過(guò)硬件工程師數(shù)量的Xilinx公司,非常注重在工具和軟件上的創(chuàng)新。2012年其開(kāi)發(fā)工具將更新?lián)Q代,推出更加智能、圖形化的流程;Xilinx還會(huì)加強(qiáng)推廣AutoESL高層次綜合設(shè)計(jì)流程(注:2011年Xilinx收購(gòu)了AutoESL)。
例如,智能交通管理系統(tǒng)通過(guò)攝像頭拍下畫(huà)面,之后需要視頻分析算法,將標(biāo)清視頻轉(zhuǎn)換為高清視頻。這是一個(gè)動(dòng)態(tài)實(shí)施的過(guò)程,需要用FPGA硬件加速來(lái)實(shí)現(xiàn)。而傳統(tǒng)是通過(guò)硬件描述語(yǔ)言(HDL)來(lái)實(shí)現(xiàn),開(kāi)發(fā)流程很長(zhǎng)?,F(xiàn)在,通過(guò)AutoESL的工具,用C、C++ 建立模型,并將模型轉(zhuǎn)換為具體的應(yīng)用。
那么Zynq開(kāi)發(fā)的時(shí)候,用ARM開(kāi)發(fā)、導(dǎo)入FPGA進(jìn)行硬件加速,需要用到什么工具?Xilinx高級(jí)總監(jiān)Devadas Varma稱(chēng),傳統(tǒng)流程就可以實(shí)現(xiàn),不過(guò)AutoESL的AutoPilot工具可使效率大為提升。因?yàn)閭鹘y(tǒng)的硬件開(kāi)發(fā)流程,硬件工作組做一個(gè)項(xiàng)目要花長(zhǎng)達(dá)數(shù)月的時(shí)間,甚至1年。而AutoESL大大節(jié)約了資源,現(xiàn)在FPGA邏輯門(mén)越來(lái)越多,用戶(hù)充分利用這些資源,就需要提高生產(chǎn)率。如果還采用傳統(tǒng)的方法,那么也許你所期待的一些功能來(lái)不及放進(jìn)去,就已經(jīng)錯(cuò)失了上市時(shí)間。
小結(jié)
我國(guó)正從“中國(guó)制造”向“中國(guó)‘智’造”轉(zhuǎn)變。“智”造更多指的是idea(主意),比智力、創(chuàng)新和差異化。Xilinx的28nm FPGA+ARM Cortex-A9 MPCore單芯片方案,使嵌入式產(chǎn)品設(shè)計(jì)師把主要精力放在應(yīng)用層面,可加快“智”造時(shí)間、降低產(chǎn)品成本。