黃承波


摘? ?要:文章提出了一種基于BSC9132芯片的DSP軟件設計方法,在芯片的DSP核心SC3850上進行軟件開發設計,針對核間交互、算法優化等方面給出詳細介紹,為在此平臺上進行DSP軟件開發提供參考。
關鍵詞:BSC9132芯片;SC3850;異步交互
1? ? BSC9132芯片研發背景
BSC9132芯片是Freescale公司專為Small Cell定制的芯片,為高性能、低功耗、高密度的集成器件,可用于實現無線收發傳輸信號的基帶處理,現階段主要用于微基站解決方案。在BSC9132芯片上開發軟件前,首先,需對該芯片的架構,各個核心的資源、處理性能等方面進行研究,同時,作為基帶芯片,需充分研究其對射頻、時序等的控制,為實現系統設計提供支持。
2? ? BSC9132芯片介紹
BSC9132芯片集成4個核心,兩個SC3850的DSP核心,兩個e500的CPU核心。另外,協處理器MAPLE集成LTE物理層上下行處理單元,實時性好,功能強大。協處理器版本為MAPLE-B2P,是Multi-Accelerator Platform Engine Baseband 2 for Pico的縮寫,其是專門為Pico Cell基帶設計的多加速平臺引擎,可以實現信道編碼/譯碼、傅里葉變換、通用移動通信系統(Universal Mobile Telecommunications System,UMTS)碼片速率處理、通用移動通信技術的長期演進(Long Term Evolution,LTE)上行信道處理、循環冗余校核(Cyclic Redundancy Check,CRC)檢測等,由卷積、濾波、Turbo編碼、Viterbi譯碼、碼片速率處理和MIMO各模塊處理器組成。
BSC9132芯片的射頻相關接口可分為兩大類:串口、并口。串口主要為通用公共無線電接口(Common Public Radio Interface,CPRI),可實現將基帶處理單元基帶處理單元(Building Base band Unit,BBU)與射頻處理單元射頻拉遠單元(Remote Radio Unit,RRU)的通信。并口主要為模擬接口電路(Analog Interface Circuit,AIC)射頻接口,可以和ADI AD9631無縫連接,并且可以直接通過直接存貯器訪問(Direct Memory Access,DMA)訪問MAPLE-B2P協處理器。在此僅簡要介紹CPRI的使用。
BSC9132芯片支持CPRI V4.0版本協議,Cpri基本幀長:1 chip=1/3.84 MHz= 260.416 667 ns。一個基本幀包含16個字:W=0∶15,字長T依賴于比特率,BSC9132芯片支持的CPRI線速較好。
3? ? DSP多核使用
BSC9132芯片集成了兩個SC3850的DSP核心,兩個核心間一般作為同步模式使用,但針對特殊波形的處理,可考慮將兩個核心作為異步使用,同時,進行兩個通信波形物理層的開發設計,而兩個波形的接入控制等在CPU核心中進行統一調度,由此BSC9132芯片上的軟件部署如圖1所示。
BSC9132芯片是針對微基站設計的,其協處理器是針對公網協議進行的匹配,若想在此芯片上實現特殊波形(協議自定)的開發設計,需對芯片進行更深一步的了解,可使用協處理器中的通用部分,如傅里葉變換、Turbo編解碼等。另外,對于通信波形的物理層處理,尤其是算法模塊部分,需在DSP核心上進行處理,由此DSP核心的運算能力就顯得尤為重要,在進行芯片選擇時一定要針對波形的運算量及芯片的能力來綜合決定。
3.1? 核間交互
BSC9132芯片CPU核心與DSP核心之間的交互可采用逐級交互機制,即CPU核心與主DSP核心交互,主DSP核心與從DSP核心交互,交互方式可分為兩類:一類是共享內存加中斷觸發的方式,另一類是使用IPC接口的方式。共享內存分為上下行信令交互區和數據交互區,交互區可定義在共享內存M3或外部存儲空間雙倍速率(Double Data Rate,DDR)上,并且可通過DMA來進行數據存取,中斷觸發用于通知核心進行信令解析及數據使用。IPC接口由兩個交互的核心共同維護,底層觸發方式有兩種,一是中斷,二是輪詢。波形開發時可根據具體的需求來選擇合適的核間交互方式。
在開發波形時,需根據波形的協議及功能模塊的部署來決定交互方式。波形的協議及功能模塊的部署決定了核間交互的數據量及交互頻率,開發波形前需進行詳細驗證,以確保能夠滿足開發需求。
3.2? DSP核開發
SC3850 DSP核心開發環境使用CodeWarrior IDE v10.7.2,開發時對存儲空間的規劃在鏈接器命令文件(Linker Command File,LCF)中,文件后綴為l3k。值得注意的是LCF文件中可對共享內存M3和外部存儲空間雙倍速率內存定義為兩種類型,一種是私有類型,使用關鍵字private限定;另一種是共享類型,使用關鍵字shared限定。通過簡單的運算測試發現,數據存儲在片上M2,私有M3,儲存在私有DDR內存上時,運算速度相當。數據存儲在共享M3上的運行速度快于數據存儲在共享DDR上,但都比片上M2上慢[1]。
波形開發時,使用兩個核心為異步工作模式,則不同的核需定義不同的變量和函數,但在初始化時需使用相同的變量名和函數名。若各個核心的處理不同,需放置在私有空間,兩個核心都為其開辟空間,此時需編譯的變量或函數虛擬地址相同,否則編譯會提示錯誤。各個核心單獨使用的變量和函數需在LCF中進行特殊限定。
基帶模塊與射頻模塊交互使用CPRI協議,此種交互的優點是交互統一,可將BBU與RRU模塊分離,缺點是波形開發靈活性差、控制時序嚴格。CPRI使用的難點在于收發雙方時鐘的對齊。
3.3? 算法實現優化
BSC9132芯片上有兩個DSP核心SC3850,SC3850有4種單元,數據算術邏輯單元(Data Arithmetic and Logic Unit,DALU),地址產成單元(Address Generation Unit,AGU),程序控制單元(Program Control Unit,PCU),資源暫停單元(Resource Stall Unit,RSU)。DALU包括4個并行的算術邏輯單元(Arithmetic Logic Units,ALU),在此單元上處理算術及邏輯運算,每個ALU的每cycle可執行2個16 bit數據的乘累加操作;有兩個64 bit的數據總線。AGU包括2個地址算術單元(Address Arithmetic Units,AAU),可進行有效的地址計算[2]。
從圖2中可以看出當同時使用2AGU+4DALU時,可以達到芯片所能處理的最大能力。若想同時使用4個DALU,則數據取用時需按64 bit進行,即數據存儲的首地址按8 Byte對齊。
在波形實現過程中,一般需進行數據接收與已知序列的相關運算,接收數據存儲格式為16 bit實部、16 bit虛部,由此在運算時無法同步使用2AGU+4DALU,從而無法發揮芯片最大的運算能力,在進行波形開發時需根據數據的特點及芯片的能力將波形功能模塊進行優化,從而滿足使用需求。
4? ? 結語
Freescale公司的BSC9132芯片主要應用于微型基站,本文簡要介紹芯片組成,并從DSP核心SC3850出發,討論核間交互方法、SC3850核心的開發使用、編程性能優化等,為在此芯片上開發特殊波形提供DSP方面的參考。
[參考文獻]
[1]趙景濤,朱宇霞.基于BSC9132的PRACH檢測DSP優化實現[J].電子設計工程,2018(1):121-125.
[2]BSC9132.QorIQ qonverge multicore baseband processor reference manual[J].Review,2012(6):223-225.