蜂窩網(wǎng)絡(luò)業(yè)者設(shè)法通過全新傳輸接口、傳輸頻率、更高帶寬以及增加天線的數(shù)量和更多無線基站提升網(wǎng)絡(luò)密度,因此需要大幅降低設(shè)備的成本。另外,這些業(yè)者為降低營運(yùn)成本,也需要更高運(yùn)作效率和網(wǎng)絡(luò)集成度的設(shè)備。無線基礎(chǔ)設(shè)備制造商為提供可以符合不同要求的設(shè)備,皆在尋求更高集成度、更佳性能和靈活度高的解決方案,并且同時降低功耗和成本。
集成度是降低整體設(shè)備成本的關(guān)鍵,然而這必須依賴可提升功率放大器效率的高階數(shù)字算法來降低各項運(yùn)作成本,其中一項最常用的算法是數(shù)字預(yù)失真(DPD)。由于設(shè)備的配置越來越復(fù)雜,因此提升設(shè)備運(yùn)作效率是一項很大的挑戰(zhàn)。藉由先進(jìn)長程演進(jìn)計劃(LTE-Advanced)傳輸技術(shù),無線傳輸帶寬可達(dá)到100MHz,如果廠商試圖用連續(xù)頻譜配置結(jié)合多種傳輸接口,帶寬甚至可以更高。主動天線數(shù)組(AAA)和支持多重輸入/輸出(MIMO)技術(shù)的遠(yuǎn)程無線單元(RRU)所需的算法對帶寬的要求越來越高。本文將探討業(yè)界完全可編程系統(tǒng)單芯片(All Programmable SoC)組件如何為目前和未來的數(shù)字預(yù)失真系統(tǒng)提升性能增益,同時也可為設(shè)備廠商提供充裕的可編程能力、低成本和低功耗,并加快產(chǎn)品上市時程。
創(chuàng)建蜂窩式無線網(wǎng)絡(luò)
業(yè)界完全可編程SoC組件結(jié)合高性能可編程邏輯(PL)架構(gòu),其中包含串行器/解串器(SERDES)和集成硬件處理子系統(tǒng)(PS)的數(shù)字信號處理器(DSP)模塊。這個硬件處理子系統(tǒng)內(nèi)含一個雙核ARM Cortex-A9處理器、浮點運(yùn)算單元(FPU)和NEON多媒體加速器及一系列豐富的外圍功能,包括通用異步收發(fā)器(UART)、串行外設(shè)接口(SPI)、內(nèi)部集成電路總線(I2C)、以太網(wǎng)(Ethernet)和內(nèi)存控制器等完整無線傳輸所需的外圍功能。有別于外部通用處理器或DSP,可編程邏輯和硬件處理子系統(tǒng)間的接口有大量連接,因此其帶寬可以非常高;但如要用獨(dú)立式解決方案處理這些連接,卻不可行。此外,完全可編程SoC組件還包含硬件和軟件數(shù)組,因此可在單一芯片內(nèi)創(chuàng)建遠(yuǎn)程無線單元所需的功能,如圖1所示。
可編程邏輯中豐富的DSP資源可用于創(chuàng)建數(shù)字上行轉(zhuǎn)換(DUC)、數(shù)字下行轉(zhuǎn)換(DDC)、峰波因子抑制(CFR)與數(shù)字預(yù)失真(DPD)等數(shù)字信號處理功能。此外,SERDES可支持9.8bit/s的通用型公共射頻接口(CPRI)和12.5bit/s JESD204B,分別用于連接基頻和數(shù)據(jù)轉(zhuǎn)換器。
硬件處理子系統(tǒng)同時支持對稱式多重處理技術(shù)(SMP)和非對稱式多重處理技術(shù)(AMP)。在這個案例中預(yù)定會采用非對稱式多重處理模式,因為其中一顆ARM Cortex-A9處理器被用于創(chuàng)建基板層級的控制功能,例如信息終止、排程、設(shè)定等級以及警示執(zhí)行(裸機(jī)或更有可能是如Linux等操作系統(tǒng))。而另一顆ARM Cortex-A9處理器則用以創(chuàng)建部分?jǐn)?shù)字預(yù)失真算法,因為數(shù)字預(yù)失真算法并不保證整體都是硬件的解決方案。
數(shù)字預(yù)失真可藉由擴(kuò)大其線性范圍提升功率放大器效率;當(dāng)驅(qū)動放大器進(jìn)一步增加輸出功率時,即可提升運(yùn)作效率,而靜態(tài)功耗會相對維持正常。數(shù)字預(yù)失真為擴(kuò)充其線性范圍,會使用放大器中的模擬反饋路徑和大量數(shù)字處理功能計算放大器的逆向非線性系數(shù)。然后利用這些系數(shù)預(yù)先校正與驅(qū)動功率放大器的傳輸信號,最終可增加放大器的線性范圍。
數(shù)字預(yù)失真是一個封閉回路系統(tǒng),其會擷取先前的傳輸信號來決定放大器與這些傳輸信號的傳輸方法。數(shù)字預(yù)失真的第一個任務(wù)是要讓放大器與先前的傳輸信號達(dá)成一致,這個過程會在一個校準(zhǔn)模塊中進(jìn)行。在執(zhí)行任何算法運(yùn)算前,系統(tǒng)會用內(nèi)存來校準(zhǔn)數(shù)據(jù);數(shù)據(jù)一旦妥善校準(zhǔn)后即可運(yùn)用自動相關(guān)矩陣運(yùn)算(AMC)和系數(shù)運(yùn)算(CC)算法,建立代表功率放大器逆向非線性系數(shù)的最近值。一旦產(chǎn)出系數(shù)后,數(shù)據(jù)路徑前置失真器即運(yùn)用數(shù)據(jù)預(yù)校準(zhǔn)被傳輸?shù)焦β史糯笃鞯男盘枴?/p>
加速估計數(shù)字預(yù)失真系數(shù)
當(dāng)然,這些功能可以透過許多不同的方法建立。有些比較適合用軟件的方法,而有些則適用硬件,同時也有是軟硬件皆適用;然而,最終還是要以所需的性能決定創(chuàng)建的方法。采用完全可編程SoC組件可讓系統(tǒng)設(shè)計人員自由支配硬件和軟件的最適度使用情況。就數(shù)字預(yù)失真的情況而言,由于需要非常高的采樣率,因此內(nèi)含高速過濾功能的數(shù)據(jù)路徑預(yù)失真器通常會創(chuàng)建在可編程邏輯中,而產(chǎn)生數(shù)字預(yù)失真系數(shù)的校準(zhǔn)和估算引擎則可于硬件處理子系統(tǒng)中的ARM Cortex-A9處理器中執(zhí)行。
為決定什么須要采用硬件或軟件創(chuàng)建方法,首先必須設(shè)定哪些部分需要軟件。圖3展示數(shù)字預(yù)失真算法中設(shè)定需要軟件的部分,以期達(dá)到圖2所示的三種功能。根據(jù)圖3設(shè)定,不難理解數(shù)字預(yù)失真算法有97%的時間用在執(zhí)行自動相關(guān)矩陣運(yùn)算,所以很自然地加速這項過程成為首要任務(wù)。
ARM Cortex-A9處理器藉由豐富的運(yùn)算資源可執(zhí)行更多功能,而這些資源有助提升性能。舉例而言,在硬件處理子系統(tǒng)中,每個ARM Cortex-A9處理器都內(nèi)含一個浮點運(yùn)算單元和一個NEON多媒體加速器。NEON單元是一個128位的單一指令多重數(shù)據(jù)(SIMD)向量協(xié)處理器,可同時執(zhí)行兩個32×32b乘法指令;由于NEON單元皆用于乘法累積(MAC)運(yùn)算,因此非常符合自動相關(guān)矩陣運(yùn)算功能所需。透過NEON模塊可運(yùn)用軟件Intrinsics,這可以在系統(tǒng)組裝時免除編寫低階程序的需求。因此,運(yùn)用硬件處理子系統(tǒng)中更多的功能,可以比Microblaze等軟件處理器或外接式DSP處理器大幅提升性能。
為提升數(shù)字預(yù)失真性能,設(shè)計人員須進(jìn)一步利用可編程邏輯將這些功能移到硬件上。然而,由于軟件是以C/C++編寫,工程師需要一些時間將C/C++語言轉(zhuǎn)換成可在可編程邏輯中運(yùn)用VHDL或Verilog執(zhí)行的硬件。
這個問題現(xiàn)在已可藉由各種高階合成(HLS)工具(例如C語言至緩存器轉(zhuǎn)移層級工具,C-to-RTL工具)得以解決。這些工具讓具備C/C++程序經(jīng)驗的程序設(shè)計人員透過現(xiàn)場可編程門陣列(FPGA)擁有硬件能力。業(yè)界高階合成工具可讓軟件和系統(tǒng)設(shè)計人員更容易將C/C++程序代碼對應(yīng)到可編程邏輯,讓程序代碼得以重用,并提供最佳可移植性和自由設(shè)計空間,最終達(dá)成最高生產(chǎn)力。
圖4展示運(yùn)用高階合成工具的典型C/C++設(shè)計流程。這工具的輸出是緩存器轉(zhuǎn)移層級(RTL),可輕松與數(shù)據(jù)路徑預(yù)失真器或上游制程等既有的硬件設(shè)計進(jìn)行集成,當(dāng)然也可連至數(shù)據(jù)轉(zhuǎn)換器。運(yùn)用這項工具,算法可快速轉(zhuǎn)移至硬件,其中這項工具會使用AXI接口連至硬件處理子系統(tǒng),如圖5所示。
在可編程邏輯中以高頻率執(zhí)行自動相關(guān)矩陣運(yùn)算算法,可對性能產(chǎn)生重大的效益,僅針對這項功能而言,其性能增益就可比軟件創(chuàng)建的功能多七十倍,而且僅用完全可編程SoC組件中3%的邏輯。
從原來參考的C/C++程序代碼進(jìn)行基本優(yōu)化,并運(yùn)用ARM Cortex-A9處理器更有效地執(zhí)行運(yùn)算,結(jié)果顯示僅用軟件進(jìn)行優(yōu)化所得的性能則比沒有變動的程序代碼高出二至三倍。再使用NEON多媒體協(xié)處理器就能產(chǎn)生更多的性能增益。圖5為自動相關(guān)矩陣運(yùn)算架構(gòu)。其中針對相關(guān)矩陣運(yùn)算功能,其整體性能增益比軟件創(chuàng)建的功能多七十倍。
最終,無線傳輸性能決定硬件和軟件間所需的數(shù)字預(yù)失真功能分區(qū)。藉由調(diào)高頻譜校準(zhǔn)程度以達(dá)到更佳效率的做法可能影響性能,原因在于要達(dá)到這種校準(zhǔn)程度需要更高的處理性能。其他影響性能的因素也可能是更多的傳輸帶寬或是多個天線共享預(yù)測引擎。這只能針對單一的處理器節(jié)省空間和成本,加上采用另外的硬件加速器為許多數(shù)據(jù)路徑預(yù)失真器計算系數(shù)。
在一些情況中,用ARM Cortex-A9處理器配合NEON單元執(zhí)行的軟件性能可能已足夠,例如帶寬較窄的傳輸配置或只有一或兩個天線路徑處理數(shù)據(jù)的設(shè)計,可以為那些無線傳輸配置降低組件占用面積和物料成本。
為將性能提升至更高的水平,設(shè)計人員可在創(chuàng)建自動相關(guān)矩陣運(yùn)算功能時加入更多平行運(yùn)算機(jī)制,只要增加支持邏輯的創(chuàng)建則可達(dá)到更快的更新時間。進(jìn)一步的軟件設(shè)定也可顯示從硬件加速受惠的算法的其他面向。無論有任何需求,現(xiàn)在的工具和芯片都可讓設(shè)計人員去探索在性能、面積和功耗間的各種取舍方法,在不受限于特定獨(dú)立型組件或程序設(shè)計方式的情況下,可用最少的力氣達(dá)成更高的運(yùn)作效率。
無線傳輸基礎(chǔ)設(shè)備需要低成本、低功耗和高可靠性。集成是達(dá)到這些目標(biāo)的關(guān)鍵,但時至今日業(yè)界仍須在靈活度或產(chǎn)品上市時程方面做某種程度的讓步。此外,在處理性能方面仍持續(xù)對寬帶無線傳輸和更高作業(yè)效率有更多的要求。完全可編程SoC組件具備雙核心處理器子系統(tǒng)、高性能和低功耗的可編程邏輯,可為目前和未來的無線傳輸需求提供可行解決方案。
無論是遠(yuǎn)程無線設(shè)備或者是主動式天線數(shù)組,設(shè)計人員可以打造具備更高生產(chǎn)力的產(chǎn)品,同時提供比現(xiàn)有的特定應(yīng)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)或特定應(yīng)用集成電路(ASIC)方案更高的靈活度和性能。