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