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