基于DSP多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境的設計
關(guān)鍵詞:多處理器;實(shí)時(shí);Eclipse
1 引言
隨著(zhù)電子技術(shù)的發(fā)展和芯片處理能力的增強,數字信號處理技術(shù)[1]獲得了空前的發(fā)展。由多處理芯片組成的陣列信號處理系統,使通訊、雷達、聲納進(jìn)入數字化飛速發(fā)展的時(shí)代。但如何基于多處理芯片的信號處理系統建立實(shí)時(shí)的軟件開(kāi)發(fā)環(huán)境一直是個(gè)難題。以往的軟件開(kāi)發(fā)環(huán)境一般都與DSPCPU芯片緊密結合在一起,每一型DSPCPU芯片都配備了專(zhuān)用的開(kāi)發(fā)環(huán)境。這些開(kāi)發(fā)環(huán)境一般都針對單獨處理器進(jìn)行開(kāi)發(fā),而且相互之間互不兼容,當一個(gè)系統中使用了多種類(lèi)型的DSPCPU芯片時(shí),往往無(wú)法同時(shí)使用這些開(kāi)發(fā)環(huán)境,也就無(wú)法進(jìn)行系統級開(kāi)發(fā)。對于此,我們開(kāi)發(fā)了一種系統級的軟件開(kāi)發(fā)工具,它可以支持多型處理器同時(shí)開(kāi)發(fā),使系統級開(kāi)發(fā)變得簡(jiǎn)單易行。這種統一的軟件開(kāi)發(fā)環(huán)境使開(kāi)發(fā)人員始終面向同一個(gè)開(kāi)發(fā)環(huán)境,易學(xué)易用,提高了開(kāi)發(fā)效率。
多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境建立在以開(kāi)放的Eclipse平臺[2,3]為框架的基礎之上,所以其主要的設計思路緊密結合了Eclipse平臺及其插件進(jìn)行構建及其設計,采用以配置文件為中心的支撐框架,各個(gè)功能模塊圍繞配置文件展開(kāi)設計與實(shí)現。也就是說(shuō),通過(guò)配置文件構建起硬件平臺的描述、數據流處理的描述、工程環(huán)境的描述等等,然后各個(gè)功能模塊根據相關(guān)的描述進(jìn)行設計與實(shí)現??梢钥闯?,配置文件的設計在多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境中的重要性,對配置文件的改動(dòng)涉及到功能模塊實(shí)現的改動(dòng)。
2 配置文件說(shuō)明
配置文件采用XML格式[4]進(jìn)行描述。以配置文件為中心的設計思路是軟件標準化的途徑。通過(guò)配置文件描述多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境所有可配置的內容,包括目標硬件的描述、工程的描述、開(kāi)發(fā)環(huán)境的描述等等,然后圍繞配置文件展開(kāi)軟件的設計與開(kāi)發(fā),實(shí)現具體的執行邏輯。這種軟件設計思路具有很好的目標硬件可擴展、可維護性、可定制性等特點(diǎn)。下面具體說(shuō)明一下硬件拓撲的配置文件。
在多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境項目建立的過(guò)程中,硬件拓撲圖描述文件將被建立起來(lái),作為基于該項目開(kāi)發(fā)的起點(diǎn)與基礎。硬件拓撲圖文件主要描述了項目中可編程的硬件單元及其互連關(guān)系,可編程硬件單元一般包括處理器、存儲器、路由器等。硬件拓撲圖描述文件名定義為HardTopology.xml。下面給出硬件拓撲配置文件的部分信息:
?xml version="1.0"?> XML文件版本
HardTopology>
Name>Hard Topology/Name> 硬件拓撲圖名稱(chēng)
Information/> 硬件拓撲圖描述信息
Issuer>by ZKHX/Issuer> 發(fā)行者
Version>1.0/Version> 版本
Router portnum="" id=""> 路由器(端口數量、ID
Portn> 端口n
Connect type="processor" id=""> 鏈接的硬件單元
Class/> 硬件單元的類(lèi)別
Speed/> 數據流通信速度
/Connect>
/Portn>
/Router>
Processor portnum="" linknum="" id=""> 處理器(端口數量、ID)
Portn> 端口n
Connect type="router" id=""> 鏈接的硬件單元
Class/> 硬件單元的類(lèi)別
Speed/> 數據流通信速度
/Connect>
/Portn>
/ Processor>
Memory portnum="" id=""> 存儲器(端口數量、ID)
Portn> 端口n
Connect type="router" id="">
Class/>
Speed/>
/Connect>
/Portn>
/ Memory >
/HardTopology>
……
3 系統總體設計
多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境分為三層框架體系結構,目標層為目標程序運行的多型號、多處理器硬件平臺及其軟件結構,通信層為主機開(kāi)發(fā)環(huán)境與目標機程序通信的結構,主機開(kāi)發(fā)環(huán)境層為實(shí)時(shí)開(kāi)發(fā)環(huán)境的軟件結構。多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境構建在Eclipse框架下,其各個(gè)功能模塊以Eclipse插件或者可執行工具的形式存在。為了滿(mǎn)足需求中對多型號、多處理器的支持,以及良好擴展性的支持,實(shí)時(shí)開(kāi)發(fā)環(huán)境設計為開(kāi)放式的框架結構。系統總體結構如圖1所示:
圖1系統總體設計圖
對于不同型號、多處理器硬件平臺運行的目標程序可能不同,實(shí)時(shí)操作系統、處理器算法程序應一一對應于不同型號、多處理器硬件平臺。通信層負責主機開(kāi)發(fā)環(huán)境與目標機程序之間的通信,對于不同型號、多處理器平臺提供不同的主機-目標機驅動(dòng)程序,并在驅動(dòng)程序之上封裝一層主機-目標機通信抽象層,達到主機與目標機通信協(xié)議的統一,這樣建立在通信抽象層的主機開(kāi)發(fā)環(huán)境不針對于某型號多處理器硬件平臺,具有良好的適用性。同時(shí)在通信層提供遠程調試模塊,支持多處理器程序的遠程開(kāi)發(fā)與調試。主機開(kāi)發(fā)環(huán)境為開(kāi)發(fā)人員提供基于Eclipse框架下統一的開(kāi)發(fā)環(huán)境,開(kāi)發(fā)人員在多處理器拓撲圖及其源代碼框架上進(jìn)行開(kāi)發(fā),而無(wú)需過(guò)多關(guān)心多型號、多處理器硬件平臺及其配置。
4 以代碼建模為中心的開(kāi)發(fā)模式
根據硬件平臺的配置文件,實(shí)時(shí)開(kāi)發(fā)環(huán)境可以構建出多處理器拓撲圖,開(kāi)發(fā)人員可以在多處理器拓撲圖上進(jìn)行開(kāi)發(fā),可以完成開(kāi)發(fā)階段的如下工作:
1.定義數據流處理的鏈路,既數據流在多處理器之間的流動(dòng)方向及其流入、流出尺寸規格,同時(shí)定義用于數據流的內存分配,對于流入或者流出的數據可以定義單緩存或者雙緩存方案。對于周期處理算法,還可以定義每個(gè)處理器節點(diǎn)的處理周期。
2.定義處理器節點(diǎn)的任務(wù),既處理器可以調度的執行單元,可以定義任務(wù)的名稱(chēng)及其參數、任務(wù)堆棧的大小、任務(wù)執行的優(yōu)先級等。
3.定義處理器節點(diǎn)的資源,如信號量、郵箱等。
4.定義任務(wù)或者處理算法的內存分配,既處理器節點(diǎn)變量的定義。在內存定義分配時(shí),實(shí)時(shí)開(kāi)發(fā)環(huán)境可以根據硬件配置文件實(shí)時(shí)判斷內存分配的可行與否,給出提示信息。
5.定義目標程序(處理器節點(diǎn)的任務(wù))調試的方案,在目標代碼中生成調試程序。
在多處理器拓撲圖上完成開(kāi)發(fā)階段的工作后,即可自動(dòng)生成代碼框架,然后開(kāi)發(fā)人員在生成的代碼框架上繼續開(kāi)發(fā)。在代碼框架自動(dòng)生成的環(huán)境中,事先定義好代碼框架生成的模板,同時(shí)開(kāi)放代碼框架模板并給出說(shuō)明,這樣開(kāi)發(fā)人員可以自行定義不同類(lèi)型多處理器硬件平臺、及其操作系統的代碼框架模板。代碼框架模板的內容主要包括:支持的數據類(lèi)型、數據流通信的代碼、郵箱代碼、信號量代碼、中斷代碼、調試程序代碼等。
以代碼建模為中心的開(kāi)發(fā)模式分順序開(kāi)發(fā)流程和增量開(kāi)發(fā)流程,如下圖2和圖3所示:
圖2 順序開(kāi)發(fā)流程 |
圖3 增量開(kāi)發(fā)流程 |
在多處理器程序調試階段,除了傳統的調試視圖,還可以增加多處理器拓撲圖的調試視圖??梢酝ㄟ^(guò)多處理器拓撲圖的調試視圖觀(guān)察多處理器程序執行的情況,包括數據流通信情況、處理器節點(diǎn)任務(wù)的執行時(shí)間、內存使用情況等。
在目標機硬件診斷階段,也可以通過(guò)多處理器拓撲圖動(dòng)態(tài)顯示硬件的診斷結果,既直觀(guān)又容易定位。
可以看出,在多處理器程序開(kāi)發(fā)的主要步驟都可以圍繞多處理器拓撲圖進(jìn)行,同時(shí)多處理器拓撲圖也是很好的目標程序說(shuō)明文檔。這種開(kāi)發(fā)模式稱(chēng)為以代碼建模為中心的開(kāi)發(fā)模式[5]。
5 結論
本文作者創(chuàng )新點(diǎn):本文設計的多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境是一款開(kāi)放式、基于標準的多處理器實(shí)時(shí)開(kāi)發(fā)環(huán)境。在通用環(huán)境下,使得多處理器軟件開(kāi)發(fā)的各個(gè)階段更趨標準化,它不僅能夠顯著(zhù)提高開(kāi)發(fā)人員、項目團隊的工作效率,而且能夠帶來(lái)性能、集成以及實(shí)用型的獨特組合,適合于多型號、多處理器目標系統的開(kāi)發(fā),包括了軟、硬件系統仿真功能,工程管理和系統構建,版本管理,編輯器,命令解釋器,調試工具,系統分析工具,系統觀(guān)察工具等功能模塊。這種統一的軟件開(kāi)發(fā)環(huán)境使在基于多處理器目標機的系統級開(kāi)發(fā)變得簡(jiǎn)單易行。
致謝: 該文得到了湖北省科技攻關(guān)計劃項目基金(編號:2004AA210B01)的支持,在此特予致謝。本文的研究是做為該項目的一個(gè)子課題來(lái)進(jìn)行的,其中第一作者參與了該項目的具體開(kāi)發(fā)。
參考文獻
[1]許家玉,經(jīng)亞枝.基于DSP+FPGA的遺傳算法硬件實(shí)現[J].微計算機信息,2005,(01) .
[2]劉洪星,謝玉山.Eclipse開(kāi)發(fā)平臺及其應用[J].武漢理工大學(xué)學(xué)報(信息與管理工程版),2005,(02)
[3]黃凱.基于Eclipse體系的構件開(kāi)發(fā)管理平臺的設計實(shí)現[J].科學(xué)技術(shù)與工程,2005,(14)
[4]魏曉云,陳杰,曾云. DSP技術(shù)的最新發(fā)展及其應用現狀[J].半導體技術(shù),2003,(09)
[5] 張進(jìn)軍,張維勇,薛來(lái)文.一種基于插件的軟件體系結構[J].合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2005,(04)
評論