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