??? 摘? 要: 為了滿足圖像處理系統(tǒng)對圖像處理能力和圖像數(shù)據(jù)通信能力的實時要求,在分析多DSP系統(tǒng)的架構(gòu)以及多DSP核之間通信機制的基礎(chǔ)上,提出了一種基于非共享存儲的同構(gòu)多DSP系統(tǒng)設(shè)計,。在硬件系統(tǒng)設(shè)計的基礎(chǔ)上,根據(jù)實時系統(tǒng)的層次體系思想,,實現(xiàn)了基于實時微內(nèi)核的實時分布式操作系統(tǒng)DSP/BIOS,。?
??? 關(guān)鍵詞: 圖像處理;多DSP系統(tǒng),;系統(tǒng)架構(gòu),;通信機制
?
??? 隨著計算機產(chǎn)品應(yīng)用領(lǐng)域的日趨廣泛,數(shù)字信號處理器(DSP)得到了迅猛發(fā)展,,采用現(xiàn)有的單核DSP系統(tǒng)已經(jīng)無法滿足對信號處理速度和運算量越來越高的需求,。采用同構(gòu)或異構(gòu)多DSP系統(tǒng)是解決信號處理瓶頸問題的主要途徑,即在功耗增長不大的前提下可大幅度提高性能,,具備強大的實時多任務(wù)處理能力[1],。目前,多DSP系統(tǒng)的應(yīng)用廣泛,,其中包括醫(yī)學(xué),、圖像處理、軍事,、工業(yè)控制,、電信等許多領(lǐng)域。?
??? 實時圖像處理系統(tǒng)要求必須具有大數(shù)據(jù)量的處理能力,,以保證系統(tǒng)的實時性,;對系統(tǒng)的體積、功耗等也有較嚴(yán)格的要求,。一個典型的數(shù)字圖像處理系統(tǒng)主要包括圖像預(yù)處理,、圖像分割,、特征計算、模板匹配,、識別和歸類,、運動分析、目標(biāo)跟蹤等基本功能,。在硬件上采用高速的DSP可以在實時條件下實現(xiàn)目標(biāo)的檢測,、提取、識別,、跟蹤技術(shù),。為了進一步提高準(zhǔn)確性和實時性,采用多DSP完成數(shù)字圖像處理已經(jīng)成為一個主要技術(shù)途徑[2-5],。本文在分析多DSP系統(tǒng)架構(gòu)的基礎(chǔ)上,,提出了一種可以提高圖像處理能力的非共享存儲多核DSP系統(tǒng)的設(shè)計。其中每一個DSP均有各自獨立的存儲器,、I/O接口,。此外,本文還分析了多DSP核之間的通信機制,。在硬件系統(tǒng)設(shè)計的基礎(chǔ)上,,基于實時系統(tǒng)的層次體系思想,分析實現(xiàn)了基于實時微內(nèi)核的實時分布式操作系統(tǒng)DSP/BIOS,。?
1 多DSP系統(tǒng)架構(gòu)的分析?
1.1 多DSP系統(tǒng)架構(gòu)?
??? 為了滿足實時圖像處理,、任務(wù)調(diào)度的需要,本文設(shè)計了主從結(jié)構(gòu)的多DSP系統(tǒng)架構(gòu),,如圖1所示。設(shè)圖像匹配處理算法P可以分離為m個子任務(wù),,則系統(tǒng)由主控制器(PowerPC),、m個DSP處理器和FPGA組成。主控制器負(fù)責(zé)系統(tǒng)的加載,、系統(tǒng)任務(wù)的分配,、調(diào)度、管理,、多DSP之間的同步以及狀態(tài)的檢測等,。DSP0~DSPm的主要任務(wù)是響應(yīng)主控CPU的命令,完成相關(guān)算法計算,。FPGA主要完成圖像數(shù)據(jù)的接收,、主控CPU和DSP之間的數(shù)據(jù)傳輸以及控制邏輯等。?
?
?
??? 為了防止共享數(shù)據(jù)沖突,,主控CPU和每一個DSP子系統(tǒng)分別配置獨立的存儲系統(tǒng),,包括SDRAM內(nèi)存和FLASH存儲器,。每個處理器只能訪問自己的存儲空間,不能對其他處理器的存儲空間進行訪問,。這種非共享方式存儲結(jié)構(gòu)完全保證了數(shù)據(jù)的可靠性和數(shù)據(jù)的一致性,,并具有良好的系統(tǒng)擴展性。?
??? 本文設(shè)計的主控CPU選用飛思卡爾公司的高性能PowerPC MPC8260處理器,,DSP選用TI公司的TMS320C6414處理器,,F(xiàn)PGA選用XILINX公司的Virtex4系列FPGA。?
1.2 系統(tǒng)結(jié)構(gòu)性能分析?
??? 在評估一個多處理器并行系統(tǒng)的性能時,,最常用的性能指標(biāo)是加速比和系統(tǒng)效率,。系統(tǒng)加速比其中:p為處理器的個數(shù),ts為用單處理器完成算法運算的時間,,tp為 p個處理器完成算法運算的時間,。系統(tǒng)效率?
??? 本架構(gòu)中,在算法的計算量隨數(shù)據(jù)量的增加呈線性增加的前提下,,設(shè)數(shù)據(jù)在單DSP上需要的處理時間ts近似為單DSP處理1/m塊該數(shù)據(jù)需要的耗時ts/m,;并假設(shè)數(shù)據(jù)傳輸需要耗時tc,主控CPU分配任務(wù)和綜合結(jié)果耗時ta,,從而得到m個DSP完成算法所需時間:?
????? tm=(ts/m)+tc+ta?
????? 則系統(tǒng)的數(shù)據(jù)加速比為:?
???????
????? 如果主控DSP分配任務(wù)和綜合結(jié)果的時間可以忽略不計,,即(ta/ts)<<1,則可以得到系統(tǒng)效率?
????? 從上面的式子可以看到,,通信計算比tc/ts是影響性能的主要因素, 特別是在圖像處理應(yīng)用中,,通常數(shù)據(jù)傳輸量很大, 這會使得整個多DSP系統(tǒng)的效率非常低。因此提高處理器與DSP之間,、DSP與DSP之間的傳輸效率,、減少傳輸時間是提高系統(tǒng)性能的有效途徑。?
1.3 DSP間數(shù)據(jù)通信設(shè)計與分析?
??? DSP之間的通信控制及數(shù)據(jù)交換是DSP 并行處理系統(tǒng)的核心,,也是任務(wù)調(diào)度分配及數(shù)據(jù)共享的關(guān)鍵,。一般DSP 并行處理系統(tǒng)可有以下5種結(jié)構(gòu)形式:共享總線式、基于Link接口式,、基于同步串口接口式,、基于主機接口式和基于數(shù)據(jù)交換式。本設(shè)計為了充分發(fā)揮多DSP的并行性,、提高圖像處理速度,,采用了基于同步串口式、主機接口式以及基于數(shù)據(jù)交換式結(jié)合的方案,。?
??? (1)基于同步串口?
??? 隨著DSP 器件技術(shù)的發(fā)展,,多通道串口(McBSP)作為標(biāo)準(zhǔn)外設(shè)出現(xiàn)在各種型號的DSP 中。由于McBSP口強大的標(biāo)準(zhǔn)化功能,、靈活的使用性以及互聯(lián)的簡單性,,使其在DSP與DSP之間的數(shù)據(jù)流通信中占有重要的地位,。每個同步串行通信口一般有6根信號線,可以同時進行雙向數(shù)據(jù)發(fā)送和接收,。多通道模式使同步串口以時分復(fù)用(TDM)方式進行多通道通信,,允許最多32通道時分多址數(shù)據(jù)收發(fā)。對每個通道,, 串口可以將其設(shè)置為:發(fā)送數(shù)據(jù),、接收數(shù)據(jù)、同時發(fā)送和接收數(shù)據(jù),、不作操作,。在多通道模式下,收發(fā)雙方應(yīng)有同一個時間基準(zhǔn)RFS和串行時鐘,。?
??? 在本設(shè)計中,,各DSP以主從方式工作在多通道模式下,所有通信進程由主CPU控制,, 各從DSP以TDM方式掛接在總線上,,各自有唯一的通道號。主CPU可任意選擇某一指定通道建立雙向數(shù)據(jù)通信,, 亦可用“廣播寫”的方式同時向各從DSP發(fā)送數(shù)據(jù),,主要完成任務(wù)調(diào)度中的命令交互,其最高傳輸速率可達16 Mb/s,。?
??? (2)基于主機接口?
??? 主機接口(HPI)是DSP的一個16/32 bit寬的對外接口,。外部主機可通過HPI訪問DSP所有地址空間,復(fù)位時向DSP加載程序,,對DSP進行控制,。外部主機是HPI的主方,DSP是HPI的從方,。一旦主機獲得了總線控制權(quán),,DSP使自身的外部數(shù)據(jù)/ 地址總線均處于高阻狀態(tài),主機就可對DSP內(nèi)部寄存器直接讀寫,,利用相關(guān)的寄存器來控制DSP或者建立DMA傳輸。主機可通過HPI訪問DSP,,但DSP不能通過HPI向外部發(fā)起訪問,。?
??? 主處理器通過譯碼控制產(chǎn)生HPI接口訪問控制信號線, 以獲得外部總線控制權(quán)的方式管理各個DSP,,實現(xiàn)主從DSP之間的并行任務(wù)分配,、訪問控制、程序的加載以及數(shù)據(jù),、狀態(tài)信息的高速交換,。?
??? (3)基于數(shù)據(jù)交換?
??? DSP的處理速度越來越快,,TMS320C6214的峰值處理能力可達6 800 MI/s。然而在通過McBSP和HPI連接的多DSP系統(tǒng)中,,由于McBSP最高速度僅為16 MHz,,且HPI為異步接口,數(shù)據(jù)傳輸速率有限,,各個傳輸速率之和≤50 MB/s,,因此數(shù)據(jù)傳輸有時會成為系統(tǒng)處理能力提高的瓶頸,使得CPU或圖像處理產(chǎn)生的大量數(shù)據(jù)流無法及時送到多個DSP,。在多DSP分布式處理系統(tǒng)中,,DSP相互之間需進行大量的數(shù)據(jù)傳輸,然而TI的DSP沒有高速的片間無縫傳輸機制,,使得相關(guān)的任務(wù)因等待數(shù)據(jù)而被延遲,,造成系統(tǒng)整體效率降低。?
??? 本文提出了一種基于環(huán)形雙向FIFO的方案,。各個DSP與主機之間通過一個環(huán)形雙向FIFO和一個專用互聯(lián)模塊來實現(xiàn)高速互聯(lián),,如圖1所示?;ヂ?lián)模塊提供了一個按照包路由協(xié)議進行尋址交換的機制,,提供多個異步讀寫FIFO接口,完成到外部器件的連接和數(shù)據(jù)包的路由轉(zhuǎn)發(fā)功能,。當(dāng)DSP通過EMIF總線或主機通過主機相應(yīng)的總線訪問對應(yīng)端口的環(huán)形雙向FIFO時,,互聯(lián)模塊根據(jù)地址信息選擇目的FIFO,建立兩兩通路,,進行數(shù)據(jù)傳輸,。當(dāng)有多個處理器產(chǎn)生請求時,互聯(lián)模塊根據(jù)產(chǎn)生請求的時間,,組成請求隊列,,依次鏈接傳輸。由此數(shù)據(jù)可傳輸?shù)街付ǖ腄SP,,同時也可傳輸?shù)街鳈C中,。環(huán)形雙向FIFO為兩個處理器之間狀態(tài)信息交換和海量數(shù)據(jù)傳輸提供了一個高速緩沖區(qū)。?
??? 本方案中互聯(lián)模塊由FPGA實現(xiàn),,每個端口上的環(huán)形雙口FIFO也由FPGA內(nèi)部邏輯實現(xiàn),。?
2 多DSP系統(tǒng)軟件分析?
??? 系統(tǒng)有1個主控CPU和m個DSP處理器,故需要為m+1個處理器分別編寫程序,,以最大限度地保證系統(tǒng)并行性,,滿足實時數(shù)據(jù)的處理。具體分工如下:?
??? (1)主控CPU主要完成系統(tǒng)的總體控制,包括上電啟動,、程序加載,、任務(wù)分配調(diào)度、任務(wù)管理,、資源管理,、目標(biāo)跟蹤分析控制、DSP間信息同步,、輸入輸出交互等,。?
??? (2)DSP0~DSPm按照主控CPU的任務(wù)分配完成圖像的相關(guān)處理運算,包括圖像分割,、特征計算,、圖像匹配運算、響應(yīng)主控CPU發(fā)出的相應(yīng)命令控制等,。同時DSP0還負(fù)責(zé)系統(tǒng)的結(jié)果綜合和圖像壓縮等任務(wù),。?
2.1 系統(tǒng)BootLoader?
??? 為了防止程序和數(shù)據(jù)沖突,防止誤操作,,系統(tǒng)程序加載方式采用順序加載的方式,,即所有的程序代碼,包括主控CPU和DSP的程序代碼均存入主控CPU的FLASH中,。當(dāng)系統(tǒng)上電或復(fù)位后,,主控CPU首先從FLASH中讀取程序并啟動,完成自身的初始化之后,,利用主機接口HPI對m個DSP按照從0到m的順序進行程序裝載,,并在裝載完成之后,啟動所有DSP的運行,。由于HPI接口和主控CPU的接口控制電路并不兼容,,需要FPGA進行邏輯轉(zhuǎn)換,故FPGA的配置插入在DSP配置之前,。系統(tǒng)Bootloader的流程如圖2所示,。?
?
?
2.2 DSP 操作系統(tǒng)?
??? DSP/BIOS是一個簡易的針對DSP的嵌入式操作系統(tǒng),主要為需要實時線程調(diào)度,、同步以及主機與目標(biāo)系統(tǒng)通信以及實時監(jiān)測的應(yīng)用而設(shè)計的,。DSP/BIOS集成在CCS中,不需要額外費用,,但不提供源碼,。它是TI公司倡導(dǎo)的eXpressDSP技術(shù)的重要組成部分。DSP/BIOS本身占用資源很少,,而且可裁剪,它只把直接或間接調(diào)用的模塊和API連接到目標(biāo)文件中。它提供底層的應(yīng)用程序接口,,支持系統(tǒng)實時分析,、線程管理、調(diào)用軟件中斷,、周期函數(shù)與后臺運行函數(shù)以及外部硬件中斷與多種外設(shè)的管理,。利用DSP/BIOS編寫代碼,借助CCS提供的多種分析與評估工具,,如代碼執(zhí)行時間統(tǒng)計,、顯示輸出、各線程占用CPU的時間統(tǒng)計等,,可以直觀地了解各部分代碼的運行開銷,,高效地調(diào)試實時應(yīng)用程序、縮短軟件開發(fā)時間,,而且DSP/BIOS是構(gòu)建于已被證實為有效的技術(shù)之上的,,創(chuàng)建的應(yīng)用程序穩(wěn)定性好、軟件標(biāo)準(zhǔn)化程度高,、可重復(fù)使用,,這也減少了軟件的維護費用。?
??? DSP/BIOS組件由以下三部分組成:?
??? (1)DSP/BIOS API:用戶在PC機上使用C,、C++或匯編語言編寫調(diào)用DSP/BIOS API函數(shù)的應(yīng)用程序,。?
??? (2)DSP/BIOS 配置:用戶創(chuàng)建一個DSP/BIOS配置,定義了程序中要使用的靜態(tài)對象,。該配置會生成相應(yīng)的代碼文件,,和應(yīng)用程序一起進行編譯鏈接。?
??? (3)DSP/BIOS分析工具:CCS中的分析工具使用戶可以測試和分析目標(biāo)DSP上應(yīng)用程序的運行,,包括對CPU負(fù)荷,、日志、線程執(zhí)行情況的監(jiān)測等,。?
??? 為了更好地處理多任務(wù)調(diào)度,,接受主控CPU控制和進行圖像運算,在每個DSP中均設(shè)計實現(xiàn)了DSP/BIOS,。其抽象結(jié)構(gòu)如圖3所示,。硬件抽象層實現(xiàn)對系統(tǒng)中各種外部設(shè)備的驅(qū)動,從而向上層提供各種邏輯設(shè)備,。通過加入硬件抽象層,,一方面保證了設(shè)備驅(qū)動模塊是整個系統(tǒng)中唯一的直接讀寫某個具體設(shè)備的控制狀態(tài)寄存器的軟件;另一方面使得硬件平臺相對系統(tǒng)內(nèi)核是透明的,,系統(tǒng)內(nèi)核只需要進行邏輯操作而不需要知道硬件的實現(xiàn)過程,。通過對硬件抽象層和系統(tǒng)核心層的設(shè)計,,實際上也實現(xiàn)了向上層用戶層程序提供應(yīng)用編程接口的功能。用戶程序(如每個DSP分配的算法程序,、數(shù)據(jù)通信程序)可以通過調(diào)用系統(tǒng)所提供的API函數(shù)來創(chuàng)建任務(wù),、訪問下層硬件設(shè)備。由于系統(tǒng)的API 函數(shù)屏蔽了下層的硬件環(huán)境,,因而可以較好地保證上層用戶程序的硬件獨立性和可移植性,,使得上層的程序可以在其他計算機平臺上開發(fā)。?
?
?
2.3 圖像匹配算法調(diào)度?
??? 相關(guān)匹配是實時圖像處理的關(guān)鍵,。歸一化去均值互相關(guān)匹配算法是一種用于圖像匹配的經(jīng)典算法[3],,設(shè)參考圖為Gr,其大小為Mr×Nr,,實時圖為Gs,,其大小為Ms×Ns,且應(yīng)使Mr>Ms,,Nr>Ns,。Ms×Ns的子圖Gr(u,v) 與實時圖Gs間的相關(guān)度ρ(u,,v)定義為:?
??? 式中Gr(u,,v)和Gs分別為Gr(u,v)和Gs的灰度均值,。之后,,再從計算出的匹配相關(guān)面數(shù)據(jù)ρ(u,v)中選取極值點得到匹配定位點,,故互相關(guān)匹配算法的運算量主要集中在相關(guān)面數(shù)據(jù)ρ(u,,v)的計算上。?
??? 從式中可以看出,,實時圖Gs的均值Gs只需計算一次, 參考圖子圖Gr(u,,v)的均值Gr(u,v)和標(biāo)準(zhǔn)差可以預(yù)先計算并載入各DSP獨立的FLASH存儲器中,,這樣相關(guān)匹配算法運算量主要集中在即參考圖子圖Gr(u,,v)與實時圖Gs的點積計算。?
??? 計算點積的運算量很大,,遠(yuǎn)遠(yuǎn)超過了其他參數(shù)的計算時間,,且實驗證明單幀圖像的匹配處理時間很長,不能滿足實時系統(tǒng)的需要,,故不適合將單幀圖像放在一個DSP中處理,,而需要一個降低單幀圖像處理時間的方法。?
??? 點積計算實際上是圖像上各個點和參考圖相關(guān)點的乘加運算,,故可以根據(jù)點積計算公式采用空間并行的方法,,將采集的實時圖分割成m個區(qū)域,,即為m個子塊,每個DSP的FLASH存儲器均存入?yún)⒖紙D,,每個DSP完成一個子塊的點積運算,。主控CPU在所有子塊計算完畢后,將數(shù)據(jù)整合發(fā)送給DSP0,,并由DSP0計算求取相關(guān)面, 并求匹配定位點位置。?
??? 本文介紹了基于多核DSP的實時圖像匹配處理系統(tǒng),。通過合理的軟硬件劃分和并行處理,,系統(tǒng)在充分發(fā)揮多核DSP的快速處理能力的同時,使得多核DSP 間的數(shù)據(jù)傳輸能力得到擴展,,從而保證了系統(tǒng)的處理能力和通信能力,。在硬件系統(tǒng)的基礎(chǔ)上,還專門開發(fā)了應(yīng)用于DSP系統(tǒng)的分布式實時操作系統(tǒng)DSP/BIOS,,使得硬件系統(tǒng)對于算法設(shè)計者而言是透明的,。測試結(jié)果表明,該系統(tǒng)能夠滿足實時匹配圖像處理的要求,。?
參考文獻?
[1] HUANG Kai,,XU Zhi Wei.Scalable parallel computers for?real time signal processing. IEEE Signal Processing Magazine,1996,,13(4):50-66.?
[2] LIU Peng,,YAO Qing Dong.Design and implementation of?real-time image processing parallel operating system?microkernel[J].Acta Electronica Sinica,1999,,27(7):42-46.?
[3] 沈勝宏,,韓月秋.基于多DSP 和FPGA的高速并行互相關(guān)圖像跟蹤技術(shù).北京理工大學(xué)學(xué)報,2000,,20(1):98-101.?
[4] 王岳環(huán),,汪國有,張?zhí)煨?一種模塊化多DSP 實時圖像處理系統(tǒng).華中科技大學(xué)學(xué)報,,2000,,28(3):63-64.?
[5] 曹治國,王岳環(huán),,左崢嶸,,等.多總線多DSP 實時圖像處理操作系統(tǒng)的設(shè)計與實現(xiàn).計算機學(xué)報,2002,,25(7):708-715.?
[6] TMS320C6414,、TMS320C6415、TMS320C6416 Fixed-point?Digital Signal Processors[Z].Texas Instruments Inc.,,2003.