|
|
| <!--插入廣告JS代碼--> |
關鍵詞: 實時圖像處理系統 多DSP LINK口 模塊化
1 引言
實時圖像處理技術在工業、醫學、軍事和商業等領域有著廣泛的應用前景,然而,由于需要處理的數據量非常大,并且一些高層次的圖像分析系統常常包含有諸如分割、檢測、標記和識別等比較復雜的算法,因此,對圖像進行實時處理不可避免地要采用多DSP構成的并行處理系統來完成[1-8]。
應用于高層次的圖像分析(尤其是序列圖像)其并行處理方式有別于一般如FFT、卷積之類單純用于科學計算的并行處理,一方面系統執行的圖像處理任務往往包含多個子過程,如濾波、直方圖均衡、分割、標記、特征提取和識別等,并不僅僅是某一個單純的科學計算,而每一個圖像處理任務在執行時已由算法研究人員確定了該任務包含哪些子過程;另一方面算法研究人員可根據算法的特點在執行該算法前對算法作并行化分析,選擇合適并行化處理結構。在一個實際圖像處理過程中往往會包括多個步驟才能獲得最終結果,不同的步驟會用到不同的算法, 不同的算法采用不同的并行機制才可以獲得各自最佳的性能,這就要求并行處理系統能適應不同算法的并行處理結構,或者出現新算法時,整個系統不需要重新設計,因此有必要發展一種拓撲結構可重構的、可擴展的通用高速圖像信號處理系統,一方面可以通過靈活的軟件編程來適應處理問題的變化和算法的發展;另一方面可以通過簡單的硬件擴展來適應處理規模的變化。文獻[2,3,6]都不是模塊化結構,不支持計算能力擴展,并且還不支持拓撲結構的動態可重構。文獻 [5,6]的主DSP和從DSP雖然實現了共享總線通信,但從DSP多了以后,通信效率變低。文獻[7]也采用了模塊化結構和多總線結構,但使用的DSP 是ADSP21060,工作頻率只有40MHz。而本系統采用模塊化設計和多總線結構,使用的DSP是TMS320C6400,工作頻率達到600MHz (預計達到1.2GHz),是TI公司的主推產品。本系統通過使用FPGA設計了一種LINKs作為專用圖像數據通道,其傳輸速度可達到3.2Gbps。使用DSP的McBSP作為命令傳輸總線,簡單可靠,且傳輸速度可達到100Mbps。并且每一個DSP通過本地總線掛有SDRAM和FLASH以及雙口 RAM,本地總線傳輸速度也可以達到3.2Gbps。這個系統的數據通信能力完全可以和DSP的高速計算能力相匹配。各通道和總線具有很強的可擴展性能力,可以很方便的增加擴展板以達到所需求的計算能力,并且還具有拓撲結構動態可重構能力,通過軟件編程就可使各個DSP之間既可以實現SPMD、又可以實現MPMD和MPID。
2 硬件系統設計
TMS320C6414是TI公司最新的DSP,也是目前速度最快的定點DSP,其最大峰值速度為4800MIPS。一個高性能的可擴展的多DSP系統除了各個DSP具有高速的運算能力,還應該具有優良的數據交換能力,也就是說數據流應該和計算能力相匹配。一般來說全局的和本地的通信能力除以系統的計算能力大于或得等于1。基于共享總線的計算機系統也具有可擴展性,如PCI總線。在PCI總線中,所有的總線通信都劃分為4到16個字的分組傳輸。在每一組之間會插入一些時鐘間隙,這些時鐘間隙允許其他的總線申請者使用總線,這樣就引起了通道競爭問題。如果擴展的CPU多了以后會給PCI總線或VME總線帶來很大壓力。因此如果只使用一個總線通道,這種通信瓶頸問題不會得到改變,勢必會使該系統的通信能力和計算能力不匹配。在PICMG組織推出的面向電信市場的PICMG 3.X規范中已不采用單一共享總線結構,而是采用了“SWITCH FABRICS”結構。在DSP領域中,ADSP21060有6路LINK口,具有出色的并行通信能力,因此我們仿造ADSP21060的結構使用 FPGA芯片構造了LINKs,使所有DSP之間都可以通過LINK口連接,這樣既增加了數據傳輸能力,也可以通過這種點到點的連接方式組成多片DSP各種拓撲結構。
2.1 模塊化結構
該系統有三種基本模塊組成:主控模塊,擴展模塊和顯示模快。主控模塊是用來接收圖像,進行非均勻性校正預處理,負責系統監控、接收上位機的命令,和進行圖像處理計算。顯示模塊的任務是在調試時顯示處理后的圖像。如果主控模塊的計算能力不夠,可以再添加擴展模塊。擴展模塊的任務比較單純,主要用來計算。
系統總體框圖如圖1所示。在圖1中,每個模塊之間的連接有兩種通道構成:數字圖像通道和控制總線。數字圖像通道上傳輸的是數據量很大的數字圖像,由 LINK口構成。控制總線上傳輸的是數據量很小的各DSP之間的握手信號和命令消息,由DSP的串口構成。擴展模塊的兩個DSP之間的通信通過FIFO實現。圖像數據首先輸入主控板,通過由FPGA構成的預處理模塊進行非均勻性校正預處理,再送到主控DSP進行計算,如果主控DSP能完成計算,那么該系統就只使用主控DSP,如果主控DSP不能在規定的時間內算完一幅圖像,那么再添加擴展板。用多個DSP組成SPMD或MPMD或流水線結構進行并行計算。最后由主控DSP把結果傳給上位機,同時還通過圖像數據通道把處理完的圖像傳給顯示板進行顯示。

圖1 硬件系統總體框圖
2.2 變化拓撲結構的能力
并行算法主要有兩種軟件并行性:控制并行性和數據并行性。控制并行性是指多個處理機同時完成多個不同的操作,最典型的例子是流水線;而數據并行性是指多個處理機同時對不同數據集實現幾乎相同的操作。不同的并行算法要求硬件用不同的拓撲結構來支持,而本系統采用的多DSP并行計算結構則可以動態地改變其邏輯拓撲結構以適應算法的要求。這時如果算法采用數據并行性,主控DSP負責分配運算任務,將圖像數據通過LINK口送給其他的DSP,并合理調度各個DSP 協同完成算法。擴展板的運算DSP之間可以采取SPMD(Single Program Stream&Multiple Data Stream)的方式,也可以采取MPMD(Multiple Program Sream&Multiple Data Stream)的方式進行并行計算,這取決于具體應用和具體算法。SPMD有一點類似于SIMD(Single Instruction Stream$Multiple Data Stream),它們都是對不同的數據集執行同一運算,但SPMD的各個處理器由各自的程序計數器控制其程序流程,相互之間不需要嚴格同步;MPMD則可以對不同的數據集進行不同的處理。這種拓撲結構具有較強的通用性,很多應用問題都具有此類的并行算法。如果算法采用控制并行性,即流水線結構,每一級處理器接收前一級處理器的計算結果,完成算法特定的一部分,并將處理結果送給下一級處理器。級間的數據傳輸可以采用LINK口或FIFIO實現。
2.3 擴展性
該系統有很強的可擴展性,具體表現在:
(1) 系統可裁減。由于該系統采用模塊化結構,每個模塊都是獨立的,有很好的可裁減性。
(2) Link口可擴展。由于Link使用FPGA實現,從原理上說可以提供任意多個Link口,實際上Link口數目受到FPGA資源的限制。在該系統中,我們使用ALTERA的FPGA實現了6路LINK口。各路Link口可以獨立、同時工作。并且這些LINK口的傳輸采用LVDS信號。由于每對數據線上的傳輸速率可達到800Mbit/S,而每路Link口有5對線組成:4對數據線和一對時鐘線CLK,這樣每路LINK口的速度可以達到 3.2Gbit/s。任一對模塊之間都可以用LINK口連接。
(3) 控制總線可擴展。控制總線由DSP的同步串行口構成, 6414的串口是多通道緩沖串口,能進行全雙工通信,可以和多達128個通道進行收發。用這種通信方式可以組成各種各樣的通信模式。每個DSP既可以和任意一個DSP通信,也可以和任意多個DSP通信。還可以通過該總線增加模塊實現多個并行計算結構并行工作。
3 系統監控軟件的設計
在軟件設計上,為了便于開發與維護,把軟件劃分為系統監控軟件和圖像處理算法兩大部分。監控系統的作用就是與硬件平臺一起,為圖像處理算法提供一個可靠、高效、方便的工作平臺。文獻[1-6]都沒有涉及到監控系統的設計,文獻[8]借助一個自己定義的運行在微機上的協議軟件提供給算法研究人員來實現任務的分解,解決了任務分配、進程間的通信與同步等問題,能夠適應不同并行結構的要求并支持系統計算能力的擴展。但它沒有對應用層提供API函數,使用及維護比較麻煩,同時,也沒有提供超時管理機制。目前國內外還有很多公司開發了許多時實時操作系統,如國外的VSPWorks、ecos、psos、國內的“道系統”,但大多只支持微處理器或ARM,不支持DSP。 VSPWorks雖然是基于DSP的實時操作系統,但是它的源碼不公開,不能實現任意級別的裁減,而在一些國防應用中,必須使用源碼公開的軟件,因此自己實現實時監控系統具有很大的意義。本文所實現的監控系統是具有自己的內核的多任務監控系統。它進一步分為主控DSP上的系統監控程序和協處理DSP上的系統監控程序。主控DSP監控需要完成系統初始化、算法任務調度、資源分配和管理、系統的全局狀態監控、系統異常處理、與上位機數據交換以及圖像數據傳輸等工作。協處理DSP監控程序完成算法任務調度、資源管理、算法加載、系統局部狀態監控、命令響應和數據通信。
為了保證監控系統軟件的可裁減性、可移植性、實時性和模塊化(以便于調試),也為了保證算法與系統硬件的相對獨立性,我們采用實時系統的層次體系思想來設計監控系統,如圖2,這樣保證了系統軟件盡可能不受硬件系統改變和算法改變的影響。

圖2 系統的層次結構圖
4 結束語
本文使用目前最新最快的DSP芯片TMS320C6414構成通用高速實時圖像信號處理系統。使用FPGA芯片為該DSP設計了一種LINK口。從而為模塊化的可擴展的多DSP系統的實現打下了堅實的基礎。使得該系統的數據通信能力和DSP的運算能力很好的匹配。并輔以多通道串口作為傳遞命令控制消息,使該系統具有靈活多樣的通信方式,能靈活地改變拓撲結構,運算能力強,I/O帶寬大,可擴展,通用性強等特點。并以此硬件結構為基礎設計相應的系統監控軟件,為圖像處理算法提供一個可靠、高效、方便的工作平臺,簡化了系統研制階段的工作。實驗表明,這種并行計算結構的構造簡單,效率高,并且工作穩定可靠。
今后,筆者還將作如下改進,研究系統的容錯性,以保證在某個節點機或某個信道失效時,系統不至于癱瘓,應該立刻可以將其工作任務分配到其他的節點機上或其它的信道上。
參考文獻
[1] Huang Kai, Xu Zhiwei, Scalable Parallel Computers for Real-Time Signal Processing. IEEE Signal Processing Magazine. 1996:50-66
[2] 沈勝宏,韓月秋. 基于多DSP和FPGA的高速并行互相關圖像跟蹤技術. 北京理工大學學報,2000,(2):98-101
[3] 趙保軍,史彩成,韓月秋,毛二可. 利用FPGA和DSP結合實現雷達多目標實時檢測電子學報,2001,(8):1145-1147
[4] Mark H Linderman,Richard W Linderman. Real-Time STAP Demonstration on an Embedded High Performance Computer. IEEE Aerospace and Electronic Systems Magazine. 1998,13(3)
[5] 陳虎成,安 琪,陳家琴,王硯方. 高速多DSP數字語音處理卡的研制. 數據采集與處理,2000,(12):508-510
[6] 嚴勝剛,沈翠羽,李林山,李志舜,高速信號處理系統的體系結構研究,西北工業大學學報,1996,11:554-557
[7] 王岳環,汪國有,張天序. 一種模塊化多DSP實時圖像處理系統. 2000,(3):63-64
[8] 曹治國,王岳環,左崢嶸等. 多總線多DSP實時圖象處理操作系統的設計與實現. 計算機學報,2002,25(7):708-715