





摘 要: 針對由GPP/DSP/FPGA組成的軟件無線電異構處理器平臺中不同處理器間組件移植性差和軟件開發復雜度高的問題,設計了符合調制解調級硬件抽象層(MHAL)規范并與軟件通信體系結構(SCA)兼容的異構處理器平臺互連架構,通過對硬件接口進行抽象和封裝為應用軟件提供一致的編程接口和通信機制,從而實現軟硬件的分離,增強應用軟件可移植性。
關鍵詞: 軟件無線電; 異構處理器平臺; 調制解調級硬件抽象層; 軟件通信體系結構
中圖分類號: TN962?34 文獻標識碼: A 文章編號: 1004?373X(2013)15?0041?04
0 引 言
軟件無線電[1](Software Defined Radio ,SDR)是一種新型的無線電體系結構,在理想狀態下可以通過下載適合的通信波形實現以任意頻率、帶寬、調制方式和數據數率進行通信[2],即可以通過軟件定義來完成不同功能。SDR平臺對多種無線通信體制的支持,尤其是3G,4G,WLAN,WIMAX等計算密集型通信體制的出現,對硬件平臺的處理能力以及硬件和軟件框架的可重構能力提出更高的要求,無線電平臺設計在功耗、可編程性、計算能力、尺寸、重量等方面面臨新的挑戰[3]。
1 主要技術背景
軟件通信體系結構[4](Software Communications Architecture,SCA)是美軍在聯合戰術無線電系統(Joint Tactical Radio System,JTRS)計劃中提出的,旨在提供一種標準的、開放的、可互操作的軟件平臺。波形是為了實現信息的無線傳輸對信息的一系列變換,包括無線通信雙方為實現信息傳輸而采用的所有協議。實現一套完整功能的軟件模塊或單元稱為組件。SCA的架構如圖1所示。
SCA使用CORBA中間件技術屏蔽了操作系統、編程語言的差異為軟件開發提供了一個統一的編程環境,實現軟件無線通信中各種軟件組件的移植和重用,但是受處理器件特性和開發復雜度等因素的限制,在SHP上不運行CORBA中間件。
在SDR的信號處理中,數據流信號處理任務(濾波、編碼等)適合在DSP和FPGA等專用處理器(Specialized Hardware Processor,SHP)上實現,這些任務在許多的SDR應用都會用到,只需要對相關頻率進行調整就可以在不同SDR波形實現中復用,因此可以通過將處理任務分配到異構處理器平臺上執行來提高計算性能、降低功耗。但是異構處理器平臺中計算性能的提升和功耗的降低是以軟件開發的復雜性的增加為代價的[5]。軟件無線電的分層結構圖如圖2所示。
為了使不同平臺實現無縫通信并為上層軟件屏蔽底層通信接口的差異性,有效地支持向SHP上部署波形組件,實現消息的透明傳輸,需要設計異構處理器上的互聯架構屏蔽底層硬件差異為軟件應用提供透明的消息傳輸機制;實現軟件開發與硬件平臺設計的分離,提高系統開發效率,以提供對異構處理器平臺上的軟硬件資源的抽象和管理,支持軟件框架對硬件設備的管理和控制。
JTRS先后提出了幾種硬件互聯結構,包括HAL?C[6],CP289[7],MHAL[8],MOCB[9]等,其中MHAL方案考慮了硬件的抽象和組件互聯是較為完善的解決方案。為波形組件和其他組件之間數據和控制流信息交互提供與SCA兼容的通信服務,但是由于國際武器管制組織的管制,MHAL方案的具體內容不對外公開,為硬件抽象層的實現增大了難度。
2 主要設計思想
異構處理器互連架構的實現首先要對硬件模塊的對外接口進行抽象,將其與外界的交互進行獨立設計,即要實現底層屏蔽功能并為波形組件提供異構處理器環境下透明的消息傳輸機制的硬件抽象層。帶有硬件抽象層的硬件平臺能為軟硬件開發提供便利的條件,能實現系統設計中軟件開發與硬件平臺設計的分離,降低系統開發的復雜程度和重要軟件組件接口的重新編寫,提高系統開發效率。針對GPP、DSP、FPGA組成的異構處理器互連架構設計的硬件抽象層如圖3所示。
第二,要實現傳遞數據在異構處理器環境中的數據路由功能。由于專用處理器之間、專用處理器與通用處理器之間采用邏輯地址(logical Destination,LD)進行數據和控制信息的交換,因此硬件抽象層必須提供對傳遞數據的封裝、解析和分發功能。
第三,要支持配置查詢功能,SDR系統中一塊處理器上可能需運行多個組件,由于不同組件所需的端口數量、連接方式和消息長度等都有所不同,因此需要通過動態配置的方式使硬件抽象層能夠適應不同的組件需求,同時支持配置結果和運行狀態的動態查詢。
3 互連架構的實現
在互聯架構中,硬件抽象層通過屏蔽硬件平臺相關的底層通信機制、封裝標準的通信接口,實現波形組件間通信方式與硬件平臺的分離,提高了波形應用在異構硬件平臺間的跨平臺可移植性;硬件抽象層收發模塊不關心收發數據的格式,對數據的封裝由硬件抽象層API采用統一報文格式進行封裝,調用硬件抽象層API收發數據;應用組件通過硬件抽象層API實現對組件的控制管理、寄存器尋址和數據端口間通信,支持應用組件的可復用、可移植和應用的動態部署。
3.1 數據報的構造
為了支持異構處理器中裝配控制器與組件控制端口、組件數據端口之間的互連互通,需要指定組件端口間傳輸數據的統一格式;保證不同硬件處理器能以相同的語義理解數據,以根據收到的數據進行正確的響應。
為了與MHAL規范兼容,硬件抽象層消息幀格式采用MHAL的幀格式如圖4所示。
每個處理單元上的每個波形組件都會提供若干信源函數和信宿函數,信源函數是發布硬件抽象層消息的線程,負責請求其他處理單元上的信宿函數執行特定的操作,或返回本地處理單元上特定函數的執行結果,信宿函數對硬件抽象層消息進行解析并執行相關操作,每個信宿函數都由一個LD進行惟一的標識,從而使硬件抽象層通信函數能夠進行正確的路由轉發。硬件抽象層負責接收波形組件數據,并將報文發送到LD相匹配的目的處理器。同樣,從I/O接口驅動接收到數據后,將數據分發到與LD相匹配的波形組件上。
3.2 流量控制
硬件抽象層通信的流量控制在數據發送端實現,發送端根據傳輸鏈路中的數據量調整發送數據包的時間。硬件抽象層的實現中設計一個用于監測通信鏈路狀態的線程,當通信鏈路中的數據包過于密集時向發送端發送消息,發送端經過一個隨機延遲后再發送數據。
4 各處理器上互連架構的設計
為了靈活地支持多種波形及不同的業務類型,提高物理信道的復用率,降低時延,提高傳輸效率,互連架構的實現需要支持多線程、多優先級并提供配置接口,基于包交換的互連架構分層結構如圖5所示。
硬件抽象層位于應用層之下,驅動層之上,由通信函數和接口組件兩部分組成:接口組件提供消息傳輸功能,負責將硬件抽象層消息通過外部傳輸鏈路向外部發送,或者從外部傳輸鏈路中接收硬件抽象層消息。GPP和DSP硬件抽象層接口組件為硬件驅動程序,FPGA硬件抽象層接口組件為硬件接口實體模塊;通信函數提供硬件抽象層消息的路由功能,負責將接口組件接收到的硬件抽象層消息或解析后的數據轉發到特定的信宿函數,或者將特定信源函數傳遞過來的硬件抽象層消息或數據封裝并通過接口組件向外發送。
4.1 GPP硬件抽象層設計
硬件抽象層設備提供的接口通過硬件抽象層設備組件進行封裝,為上層GPP波形組件提供數據收發和路由功能。GPP硬件抽象層的實現如圖6所示。
硬件抽象層設備根據目的組件的LD和物理通道的映射關系,通過相應的設備驅動將數據發送到與LD對應的處理器MHAL接口;反之,從與之互連的處理器的接口接收到數據后,根據接收數據與LD的映射關系,將報文轉發給與LD相匹配的GPP波形組件上。
4.2 DSP硬件抽象層設計
DSP硬件抽象層設備可以看做對DSP各種外圍設備接口提供的設備間通信機制的封裝, DSP上的不同物理通信接口(PCI、rapidIO、以太網、EMIF、異構處理器I、GPIO等)提供的通信方式不盡相同,在速率、接口規范等方面有較大差異,因此需要對其進行不同方式的封裝。提供接口配置、驅動、容錯處理等機制,為DSP上的波形應用提供符合QoS要求的通信API。
4.3 DSP硬件抽象層模塊
DSP硬件抽象層如圖7所示,DSP硬件抽象層通過I/O接口驅動實現數據收發:當有數據從I/O接口到達時,MHAL設備從相應I/O接口驅動中接收這些數據,對其進行適當解析,根據LD將其分發給本地的波形組件;當本地的波形組件有數據要向外發送時,硬件抽象層設備對數據封裝,然后將處理后的數據通過I/O接口驅動向外部發送。
硬件平臺開發者實現DSP硬件抽象層中定義的標準接口函數。DSP上的波形應用通過將DSP硬件抽象層實體在編譯時聯編到波形應用中,實現DSP上的完整功能。
4.4 FPGA硬件抽象層設計
FPGA硬件抽象層應實現對外部I/O接口和外部存儲器訪問接口驅動的封裝,為FPGA波形組件提供一套標準的硬件抽象層接口時序,從而為波形組件提供異構處理器環境下透明的消息傳輸機制,硬件抽象層對傳遞數據進行封裝、解析和分發,能夠對到達數據進行解析,根據LD分發到對應的組件,同時對等待發送的數據進行適當封裝,發往LD所指定的組件。
硬件平臺開發人員負責提供FPGA中硬件抽象層的實體模塊,FPGA波形應用開發人員通過將FPGA硬件抽象層實體模塊例化到自己的設計中,實現完整的FPGA功能,經過一起編譯后形成統一的映像加載到FPGA中運行。一個FPGA片內只需要設計一個硬件抽象層設備,所有的波形組件與I/O接口驅動均連接到硬件抽象層設備。軟件無線電系統中同一塊FPGA上可能需運行多個組件,由于不同組件所需的端口數量、連接方式和消息長度等都有所不同,FPGA硬件抽象層通過動態配置的方式適應不同的組件需求,同時支持配置結果和運行狀態的動態查詢。
5 結 語
異構多處理器平臺互連架構通過硬件抽象層為波形應用提供了統一接口,實現了軟硬件的分離和組件間無縫通信,一般而言,對硬件接口的抽象層次越高,組件移植性越強,但可能存在復雜度高而性能降低的不足。尋找更加有效的軟硬件分離方法以及對接口抽象與性能之間關系的建模和量化研究將有助于異構處理器互連架構的設計。
參考文獻
[1]MITOLA J. The software radio architecture [J]. IEEE Communication Magazine, 1995, 33(5): 26?38.
[2]ULVERSOY T. Software defined radio: challenges and opportunities [J]. IEEE communications Surveys and Tutorials, 2010,12(4): 531?550.
[3]GOMEZ I. MAROJEVIC, V, GELONCH, A. ALOE: an Open?Source SDR execution environment with cognitive computing resource management capabilities [J]. IEEE Communications Magazine, 2011, 49(9): 76?83.
[4]Anon. JTRS support and rationale document for the software communications architecture specification (version:2.2.2) [S]. Joint Tactical Radio System (JTRS) Joint Program Office, 2001.
[5]BIEBERLY F. Heterogeneous processing in software de?ned radio: flexible implementation and optimal resource mapping [D]. Blacksburg: the Virginia Polytechnic Institute and State University, 2012.
[6]JTR Joint. Specialized hardware supplement to the software communication architecture(SCA) specification [S]. [S.l.]: [s.n.], 2004.
[7]JTRS JPO. Extension for component portability for specialized hardware processor(SHP)?change proposal 289 (CP289) [S]. [S.l.]: [s.n.], 2005.
[8]JTRS JPO. Joint Tactical radio system (JTRS) standard modem hardware abstraction layer application program interface(API) [S]. [S.l.]: [s.n.], 2007.