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