在蜂窩式無(wú)線電基礎(chǔ)架構(gòu)中實(shí)現(xiàn)軟件可編程數(shù)字預(yù)失真
蜂窩網(wǎng)絡(luò)運(yùn)營(yíng)商正努力通過(guò)使用最新空中接口、采用最新傳輸頻率、提高帶寬以及增加天線數(shù)量和蜂窩基站數(shù)量的方式提高網(wǎng)絡(luò)容量,為此他們需要大量削減設(shè)備成本。此外,運(yùn)營(yíng)商們還要提高設(shè)備效率和網(wǎng)絡(luò)集成度,以便減少運(yùn)營(yíng)成本。為了提供可滿足這些不同需求的設(shè)備,無(wú)線基礎(chǔ)設(shè)施設(shè)備制造商正在尋找具備更高集成度、性能和靈活性且功耗與成本更低的解決方案。另外,設(shè)備制造商在實(shí)現(xiàn)以上目標(biāo)的同時(shí)還要縮短產(chǎn)品上市時(shí)間。
本文引用地址:http://butianyuan.cn/article/201610/306448.htm減少設(shè)備總體成本的關(guān)鍵是集成,但減少運(yùn)營(yíng)成本則需要采用高級(jí)數(shù)字算法來(lái)改善功率放大器效率。其中最常用的一種算法就是數(shù)字預(yù)失真(DPD)。在設(shè)備配置變得越發(fā)復(fù)雜的同時(shí)提高設(shè)備效率,這本身就是一種挑戰(zhàn)。無(wú)線電傳輸帶寬憑借先進(jìn)的長(zhǎng)期演進(jìn)(LTE-A)技術(shù)正在接近100MHz,而且隨著廠商試圖在一個(gè)非連續(xù)頻譜中采用多個(gè)空中接口,這一數(shù)字甚至?xí)?。同時(shí)有源天線陣列(AAA)和支持MIMO的遠(yuǎn)端射頻單元(RRU)也不斷對(duì)算法的計(jì)算帶寬提出更高要求。本文我們將研究如何利用Zynq-7000 All Programmable SoC(AP SoC)來(lái)提高當(dāng)前及未來(lái)DPD系統(tǒng)的性能,同時(shí)為設(shè)備廠商提供具有完全可編程功能的低成本、低功耗解決方案,幫助他們以最快的速度向市場(chǎng)推出產(chǎn)品。
實(shí)現(xiàn)蜂窩無(wú)線電
AP SoC采用包含串行收發(fā)器(SERDES)和DSP模塊的高性能可編程邏輯(PL)架構(gòu)和一個(gè)與其緊密集成的硬化處理子系統(tǒng)(PS)。該處理子系統(tǒng)又包含一個(gè)雙核ARM Cortex A9、浮點(diǎn)單元(FPU)和NEON媒體加速器,并配有實(shí)現(xiàn)完整無(wú)線電操作和控制所必需的UART、SPI、I2C、以太網(wǎng)和存儲(chǔ)控制器等多種外設(shè)。與外部通用處理器或DSP處理器不同,由于PL與PS之間有大量的連接,因此其間的接口需要極高的帶寬,這是單個(gè)解決方案所無(wú)法實(shí)現(xiàn)的。憑借這些軟/硬件組合,AP SoC器件能夠在單個(gè)芯片上實(shí)現(xiàn)RRU所需的全部功能,如圖1所示。
PL中豐富的DSP資源可用于實(shí)現(xiàn)數(shù)字上變頻(DUC)、數(shù)字下變頻(DDC)、峰值因數(shù)降低(CFR)和DPD等數(shù)字信號(hào)處理功能。此外,SERDES能夠支持9.8Gbps CPRI和12.5Gbps JESD204B接口,分別用于連接基帶轉(zhuǎn)換器和數(shù)字轉(zhuǎn)換器。PS支持對(duì)稱多處理(SMP)和非對(duì)稱多處理(AMP)。在本案例中,假設(shè)采用AMP模式,其中的一個(gè)ARM A9處理器用于實(shí)現(xiàn)下傳消息、調(diào)度、校準(zhǔn)和警報(bào)等板級(jí)控制功能,用以運(yùn)行裸金屬架構(gòu),更可能的是Linux等操作系統(tǒng)。而另一個(gè)處理器則用于實(shí)現(xiàn)部分所需的DPD算法,因?yàn)椴⒎撬惴ǖ乃胁糠侄贾С旨冇布鉀Q方案。
DPD可通過(guò)擴(kuò)大線性范圍來(lái)提高功率放大器效率。加強(qiáng)對(duì)放大器的驅(qū)動(dòng)以改善輸出功率,從而提高效率,同時(shí)靜態(tài)功耗保持相對(duì)不變。為了擴(kuò)大線性范圍,DPD利用放大器的模擬反饋路徑以及大量信號(hào)處理操作來(lái)計(jì)算系數(shù)(該系數(shù)為放大器非線性的倒數(shù));然后利用這些系數(shù)對(duì)所發(fā)送的功率放大器驅(qū)動(dòng)信號(hào)進(jìn)行預(yù)修正,最終達(dá)到擴(kuò)大放大器線性范圍的目的。
DPD算法可分解為如下多個(gè)功能塊,如圖2所示。
DPD是一個(gè)閉環(huán)系統(tǒng),可捕捉之前發(fā)送的信號(hào),以確定放大器根據(jù)發(fā)送信號(hào)所表現(xiàn)出的行為。DPD的首個(gè)任務(wù)是在校準(zhǔn)模塊(alignment block)中將放大器的輸出與之前的發(fā)送信號(hào)進(jìn)行校準(zhǔn)。在開(kāi)始任何后續(xù)算法操作之前,需要利用存儲(chǔ)器來(lái)校準(zhǔn)數(shù)據(jù)。一旦數(shù)據(jù)校準(zhǔn)后,就可用自相關(guān)矩陣計(jì)算(AMC)和系數(shù)計(jì)算(CC)算法來(lái)創(chuàng)建代表PA非線性倒數(shù)近似值的系數(shù);獲得系數(shù)后,數(shù)據(jù)路徑預(yù)失真器會(huì)利用這些數(shù)據(jù)對(duì)發(fā)送到PA的信號(hào)進(jìn)行預(yù)修正。
加速DPD系數(shù)估算
這些功能可以通過(guò)多種不同方式來(lái)實(shí)現(xiàn)。有的功能適合用軟件,有的則適合用硬件,還有的則既可用軟件也可用硬件來(lái)實(shí)現(xiàn),但最終還是由性能來(lái)決定采用何種實(shí)現(xiàn)方式。有了AP SoC器件,設(shè)計(jì)人員就可自主決定采用硬件還是軟件來(lái)實(shí)現(xiàn)功能。對(duì)于DPD算法而言,包含高速濾波功能的數(shù)據(jù)路徑預(yù)失真器由于需要極高的采樣率,一般應(yīng)在PL中實(shí)現(xiàn),而用于生成DPD系數(shù)的校準(zhǔn)引擎與估算引擎則可以在PS中的ARM A9上運(yùn)行。
為了確定到底用軟件還是硬件來(lái)實(shí)現(xiàn)功能,必須首先對(duì)軟件進(jìn)行特性分析,確定其耗時(shí)情況。圖3顯示了圖2中DPD算法用于實(shí)現(xiàn)三個(gè)可識(shí)別功能的軟件特性。根據(jù)分析結(jié)果顯示,賽靈思DPD算法中97%的時(shí)間都用于AMC處理,因此首先對(duì)該功能進(jìn)行加速意義最大。
ARM A9可用于執(zhí)行一些附加功能,這樣也有助于提高這類(lèi)應(yīng)用的性能。例如,作為PS的一部分,每個(gè)ARM A9都有一個(gè)浮點(diǎn)單元和一個(gè)NEON媒體加速器。NEON單元是一種128位單指令多數(shù)據(jù)(SIMD)矢量協(xié)處理器,可同時(shí)執(zhí)行兩個(gè)32x32b乘法運(yùn)算,非常適合以乘法累加(MAC)運(yùn)算為主的AMC功能的要求。充分利用NEON模塊,就能發(fā)揮軟件的內(nèi)在優(yōu)勢(shì),從而無(wú)需用匯編語(yǔ)言進(jìn)行低層次編程。
因此,相對(duì)采用Microblaze或外部DSP等軟處理器而言,使用PS中的附加功能可以顯著提高性能。
為了進(jìn)一步提高DPD性能,最好將這些功能移植到采用PL的硬件內(nèi)。然而軟件由C或C++編寫(xiě),要將C或C++轉(zhuǎn)換為能夠在采用VHDL或Verilog語(yǔ)言的PL中運(yùn)行的硬件內(nèi),需要花費(fèi)一些時(shí)間。
隨著高層次綜合(HLS)工具(例如C-to-RTL)的推出,這個(gè)問(wèn)題現(xiàn)在已經(jīng)得到解決。這些工具讓有C/C++編程經(jīng)驗(yàn)的程序員能夠以FPGA的形式進(jìn)行硬件轉(zhuǎn)換。Vivado HLS工具使設(shè)計(jì)人員和系統(tǒng)架構(gòu)師可以輕松將C/C++代碼映射到可編程邏輯,以實(shí)現(xiàn)代碼重用、盡可能移植以及簡(jiǎn)單的設(shè)計(jì)空間探索機(jī)制,從而最大限度地提高生產(chǎn)力。
圖4顯示了C/C++的典型Vivado HLS高層次綜合設(shè)計(jì)流程。該工具的輸出為RTL,能夠輕松地與現(xiàn)有硬件設(shè)計(jì)集成,例如數(shù)據(jù)路徑預(yù)失真器或上游處理部分,當(dāng)然還包括數(shù)據(jù)轉(zhuǎn)換器接口。
利用這種工具可以將算法快速移植到硬件,在這里算法必須通過(guò)AXI接口與PS連接,如圖5所示。
在PL中以高時(shí)鐘速率運(yùn)行AMC算法能夠顯著提高性能(如圖6所示),與在軟件中實(shí)現(xiàn)相同的功能相比,可以實(shí)現(xiàn)70倍的性能提升,且只占用不到3%的AP SoC器件邏輯資源。
對(duì)原始C/C++參考代碼進(jìn)行基本的優(yōu)化后,新代碼在ARM A9處理器上的運(yùn)行更加高效,將純軟件實(shí)現(xiàn)方案的性能提升至原始代碼的至少2至3倍。此時(shí),啟用NEON媒體協(xié)處理器,可以獲得額外的性能優(yōu)勢(shì)。圖6的最終結(jié)果是通過(guò)在可編程邏輯中運(yùn)行AMC算法(參見(jiàn)圖5)獲得的,其與最初的軟件法相比,僅AMC功能就實(shí)現(xiàn)了高達(dá)70倍的總體性能提升。
最終是由無(wú)線電性能定義所需DPD在硬件與軟件之間的分區(qū)。追求更高級(jí)別的頻譜修正可以實(shí)現(xiàn)更高的效率,這可能會(huì)成為影響性能的一個(gè)因素。由于提高了用于表達(dá)放大器非線性的精確度,因而實(shí)現(xiàn)更高的修正水平需要更強(qiáng)大的處理能力。其他影響性能的因素是更大的傳輸帶寬或在多個(gè)天線之間共享估算引擎。這種方式僅需一個(gè)處理器外加可選的硬件加速器即可為多個(gè)數(shù)據(jù)路徑預(yù)失真器計(jì)算系數(shù),從而實(shí)現(xiàn)面積(和成本)方面的節(jié)省。
在某些情況下,在ARM A9 + NEON單元上運(yùn)行軟件所獲得的性能就足夠了,例如窄帶傳輸帶寬配置,或在設(shè)計(jì)中只有1或2個(gè)天線路徑需要進(jìn)行數(shù)據(jù)處理的情況,這既可以減少無(wú)線電配置的面積也可降低成本。
為了將性能進(jìn)一步提升至圖6以上的水平,可為AMC功能的實(shí)現(xiàn)添加額外并行機(jī)制,但這需要以增加邏輯實(shí)現(xiàn)為代價(jià)才能縮短更新時(shí)間。此外,對(duì)軟件進(jìn)行更深入的分析可能會(huì)表明算法中其他可從硬件加速受益的部分。無(wú)論要求是什么,現(xiàn)在的工具和芯片都能幫助設(shè)計(jì)人員在追求更高效率的過(guò)程中輕而易舉地在性能、面積以及功耗之間進(jìn)行利弊取舍,而且不必受特定分立器件或編程風(fēng)格的制約。
總結(jié)
無(wú)線電基礎(chǔ)設(shè)施要求低成本、低功耗和高可靠性,而集成則是實(shí)現(xiàn)這些目標(biāo)的關(guān)鍵,但直到現(xiàn)在也無(wú)法在不降低靈活性或減慢上市進(jìn)程的前提下做到。此外,寬帶無(wú)線電和對(duì)更高效率的追求正在促使處理要求不斷提升。憑借雙核處理器子系統(tǒng)、高性能和低功耗可編程邏輯優(yōu)勢(shì),Zynq-7000 All Programmable SoC已成為能充分滿足當(dāng)前和未來(lái)無(wú)線電需求的解決方案。
無(wú)論是遠(yuǎn)程無(wú)線電設(shè)備還是有源天線陣列,設(shè)計(jì)人員都能以更高的生產(chǎn)力創(chuàng)建產(chǎn)品,同時(shí)實(shí)現(xiàn)比現(xiàn)有解決方案(如ASSP或ASIC)更高的靈活性和性能。軟件與硬件之間的界限已不再清晰,這為需要更多高級(jí)算法以實(shí)現(xiàn)產(chǎn)品差異化的設(shè)計(jì)人員開(kāi)啟了無(wú)限可能性。
評(píng)論