文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.002
中文引用格式: 高偉林,,曹峰,,郭超. 基于雙處理器系統(tǒng)的圖形生成電路研究與應(yīng)用[J].電子技術(shù)應(yīng)用,2016,,42(2):9-13.
英文引用格式: Gao Weilin,,Cao Feng,Guo Chao. Research and implementation of graphics generation circuit based on double processor[J].Application of Electronic Technique,,2016,,42(2):9-13.
0 引言
現(xiàn)代飛機(jī)座艙顯示系統(tǒng)向駕駛員提供飛行器,、發(fā)動(dòng)機(jī)和其他系統(tǒng)所測(cè)試的參數(shù),,包括從起飛、導(dǎo)航,、著陸等全過程所需要的各種信息[1],。隨著電子技術(shù)的不斷發(fā)展,座艙顯示系統(tǒng)需要處理的實(shí)時(shí)信息量不斷增加,,對(duì)機(jī)載顯示處理系統(tǒng)的實(shí)時(shí)性,、有效性和快速圖形處理能力提出了更高的要求[2],主顯示器尺寸不斷加大,,分辨率不斷提高,,并日益朝著大屏幕化、綜合化,、信息化和智能化方向發(fā)展,向飛行員傳遞的飛機(jī)參數(shù)越來(lái)越依賴于圖形顯示[3-5],。
圖形生成電路是座艙顯示系統(tǒng)的核心部分,其主要功能是根據(jù)飛機(jī)任務(wù),、飛機(jī)狀態(tài)和周邊態(tài)勢(shì)等信息生成相應(yīng)的顯示畫面,,以供飛行員進(jìn)行觀察。軍用飛機(jī)在做戰(zhàn)術(shù)動(dòng)作時(shí),畫面變換速度快,要求圖形的更新速度也必須很快,至少要比幀或場(chǎng)的刷新速度快,才可以避免畫面的斷續(xù)[6-7],。目前,,在役各型飛機(jī)的機(jī)載顯示器一般采用單個(gè)DSP+FPGA的架構(gòu)完成圖形生成功能,。其中DSP負(fù)責(zé)圖形生成指令的發(fā)起和圖形生成算法的實(shí)現(xiàn),,F(xiàn)PGA負(fù)責(zé)將DSP圖形生成的結(jié)果輸出顯示,。由于某些字符圖形顯示內(nèi)容(天地球、全羅盤等)生成步驟復(fù)雜,,且對(duì)生成圖形質(zhì)量要求很高(要求反走樣等),,導(dǎo)致在生成一幀顯示圖形時(shí)單個(gè)DSP的計(jì)算量過大,造成機(jī)載顯示器字符圖形生成周期過長(zhǎng),,數(shù)據(jù)刷新的實(shí)時(shí)性不能得到保證,;或者在面臨較高分辨率的字符圖形生成任務(wù)時(shí),在要求的數(shù)據(jù)刷新周期(例如25 ms)內(nèi)無(wú)法完成指定分辨率字符圖形的生成計(jì)算,。由于上述因素的制約,,使用單DSP進(jìn)行字符圖形生成的傳統(tǒng)方法已不能滿足未來(lái)機(jī)載顯示器字符圖形的生成需求,研制出一種具有更高性能的機(jī)載顯示器圖形生成裝置勢(shì)在必行,。
本文提出一種基于雙DSP處理器+FPGA架構(gòu)的圖形生成電路實(shí)現(xiàn)方法,,利用雙DSP協(xié)同進(jìn)行圖形生成運(yùn)算處理,可以顯著提高圖形生成效率和系統(tǒng)能效比,,滿足機(jī)載顯示器高分辨率圖形實(shí)時(shí)生成與顯示需求,。
1 系統(tǒng)原理
1.1 硬件構(gòu)成
本系統(tǒng)硬件原理框圖如圖1所示。
系統(tǒng)主要由主從雙片DSP,、FPGA,、SDRAM、Flash,、EPROM等模塊組成,,其中,主從雙片DSP負(fù)責(zé)繪圖運(yùn)算,,通過Linkport通信接口完成數(shù)據(jù)交互,。SDRAM是系統(tǒng)幀存部件,用于存放繪圖運(yùn)算結(jié)果數(shù)據(jù),。FPGA是系統(tǒng)數(shù)據(jù)的交互和控制中心,,配合主DSP對(duì)SDRAM幀存以乒乓操作的方式完成繪圖數(shù)據(jù)的讀寫處理。Flash用于存儲(chǔ)畫面顯示軟件,,EPROM用于存儲(chǔ)FPGA程序,。
1.2 顯示軟件
系統(tǒng)作圖時(shí),根據(jù)畫面內(nèi)容要求,,主DSP(DSP1)將作圖任務(wù)劃分成若干個(gè)基本作圖單元,,并根據(jù)各任務(wù)計(jì)算量和通信時(shí)間等因素的約束,將部分任務(wù)分配給從DSP(DSP2)計(jì)算,。這時(shí)DSP1向DSP2發(fā)送任務(wù)編號(hào)或者根據(jù)任務(wù)預(yù)先分配結(jié)果發(fā)送開始作圖標(biāo)志,,DSP2收到相應(yīng)內(nèi)容后,,啟動(dòng)作圖任務(wù),并將作圖結(jié)果保存下來(lái),,待任務(wù)完成后DSP2將計(jì)算結(jié)果通過Linkport端口發(fā)送至DSP1進(jìn)行同步顯示,。雙DSP軟件的接口關(guān)系如圖2所示。
雙DSP圖形畫面顯示軟件由主DSP(DSP1)和從DSP(DSP2)的兩部分軟件組成,。其功能模塊框圖如圖3所示,。DSP1畫面顯示軟件主要包括初始化模塊和主模塊,初始化模塊完成DSP系統(tǒng)寄存器,、SDRAM,、Linkport接口、調(diào)色板等初始化功能,,主模塊由Linkport通信與數(shù)據(jù)傳輸模塊和畫面顯示模塊組成,,其中通信與數(shù)據(jù)傳輸模塊完成與從DSP的LinkPort通信、任務(wù)分配與同步等功能,,畫面顯示模塊完成DSP1的作圖計(jì)算與顯示等功能,。從DSP由初始化模塊及主模塊組成,初始化模塊主要完成DSP系統(tǒng)寄存器和LinkPort接口等初始化任務(wù),,主模塊由通信與數(shù)據(jù)傳輸模塊和作圖計(jì)算模塊等組成,,通信與數(shù)據(jù)傳輸模塊完成接收主DSP的控制命令和將作圖計(jì)算結(jié)果發(fā)送給主DSP等兩項(xiàng)功能;作圖處理模塊完成分配的作圖任務(wù),,并將相應(yīng)的計(jì)算結(jié)果(對(duì)應(yīng)像素點(diǎn)信息)保存下來(lái),。
2 Linkport通信端口
本文采用的DSP芯片為ADI公司的ADSP-TS201,TS201專門為高速通信設(shè)計(jì)了基于LVDS技術(shù)的Linkport,,解決了DSP之間的通信瓶頸問題[8],。TS201帶有4路Linkport口,信號(hào)通過LVDS形式以DDR數(shù)據(jù)格式傳輸,,時(shí)鐘上升沿和下降沿均有數(shù)據(jù),。每一路都可以同時(shí)進(jìn)行發(fā)送和接收操作。通過Linkport口,,系統(tǒng)內(nèi)多片DSP之間可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信[9],。每個(gè)鏈路口的最高單向傳輸速率是500 MB/s,可以非常方便并行系統(tǒng)中處理器之間的通信[10],。
2.1 Linkport通信協(xié)議
Linkport口可以配置為4位模式(對(duì)應(yīng)于4路Linkport口)和1位模式(對(duì)應(yīng)于1路Linkport口),,模型如圖4和圖5所示,Linkport口結(jié)構(gòu)如圖6所示,。
圖6中Tx buffer為發(fā)送緩沖,,Tx SHIFT register為發(fā)送端移位寄存器,Rx buffer為接收緩沖,,Rx temporary buffer為接收端臨時(shí)緩沖,,Rx SHIFT register為接收端移位寄存器,。
Linkport口通信協(xié)議如下:
(1)Linkport口數(shù)據(jù)以突發(fā)方式傳輸,每發(fā)起一次傳輸最小傳輸數(shù)據(jù)量為128 bit,。
(2)傳輸?shù)牡谝粋€(gè)數(shù)據(jù)(1 bit或4 bit)在Link口時(shí)鐘的上升沿傳輸,。
(3)傳輸?shù)淖詈笠粋€(gè)數(shù)據(jù)(1 bit或4 bit)在Link口時(shí)鐘的下降沿傳輸。
(4)Link口處于空閑狀態(tài)時(shí)時(shí)鐘一直為低電平,,也即有數(shù)據(jù)傳輸時(shí)才有時(shí)鐘信號(hào),,時(shí)鐘信號(hào)是不連續(xù)的,。
2.2 DSP間Linkport通信
ADSP-TS201之間進(jìn)行Linkport通信時(shí),,除了直接采用Linkport內(nèi)核通信方式外,還支持Linkport采用DMA方式進(jìn)行通信,。
雙DSP之間的Linkport通信采用了單向循環(huán)通訊方式進(jìn)行測(cè)試,。DSP1完成Linkport的控制寄存器配置后首先啟動(dòng)發(fā)送,發(fā)送完成后進(jìn)入接收等待狀態(tài),,等待DSP2將數(shù)據(jù)返回,。DSP2在寄存器配置后首先進(jìn)入接收等待狀態(tài),等待DSP1發(fā)出的數(shù)據(jù),。在接收到DSP1的數(shù)據(jù)后,,再將數(shù)據(jù)發(fā)回至DSP1。然后DSP1再啟動(dòng)下一組數(shù)據(jù)的發(fā)送,,如此循環(huán),,通信流程圖如圖7所示。
2.3 雙DSP之間的LinkDMA內(nèi)核通信
LinkDMA傳輸需要配置的寄存器是128 bit的傳輸控制塊寄存器(TCB),,TCB包含了4個(gè)32 bit寄存器:DMA地址索引寄存器DI,、DX寄存器、DY寄存器,、DP寄存器,。其中DI指明了DMA傳輸?shù)脑椿蛘吣康钠鹗嫉刂罚珼X寄存器的高16 bit用于指定DMA傳輸?shù)淖謹(jǐn)?shù),,低16 bit用于指定地址的修改量,,DY寄存器用于二維DMA傳輸,DP寄存器包含了DMA傳輸時(shí)所有的控制信息,。
對(duì)于LinkDMA傳輸方式,,DI設(shè)定為傳輸緩沖區(qū)的地址,發(fā)送時(shí)為源緩沖地址,,接收時(shí)為目的緩沖區(qū)地址,。DX中傳輸字?jǐn)?shù)可以根據(jù)傳輸數(shù)據(jù)大小決定,地址修改量必須為4,。DY必須為0,。DP中需要配置操作數(shù)據(jù)長(zhǎng)度為4字方式,,指定DMA設(shè)備種類(內(nèi)存、外存等),,還需要確定是否需要DMA中斷,。
DSP1和DSP2在完成LinkPort控制寄存器配置后,DMA通信方式還需要配置LinkPort端口的DMA發(fā)送通道DC7與DMA接收通道DC11,。選定DC7通道TCB的源地址為內(nèi)存數(shù)據(jù)起始地址,,地址修改量為4,數(shù)據(jù)長(zhǎng)度為4字模式,,設(shè)備類型為INTMEM(內(nèi)部存儲(chǔ)器),,并使能DMA7的中斷。DC11的配置處將數(shù)據(jù)地址改為內(nèi)存中接收緩沖首地址外,,其他配置與DC7相同,。然后還需要在IMASK寄存器中將DMA7和DMA11的中斷控制位使能。
3 雙DSP并行處理和同步顯示技術(shù)
未來(lái)日益提高的顯示器畫面分辨率和顯示實(shí)時(shí)性的需求,,使得單個(gè)DSP在進(jìn)行高分辨率的畫面圖形繪制時(shí)難以滿足要求,。因此,采用雙DSP或者多個(gè)DSP進(jìn)行作圖任務(wù)分工,,協(xié)同并行處理是滿足這一需求的有效途徑,。
雙DSP的作圖畫面選擇典型的EFIS畫面,包括天地球和全羅盤顯示內(nèi)容,。為了實(shí)現(xiàn)雙DSP并行作圖計(jì)算和同步顯示,,需實(shí)現(xiàn)基于Linkport通信的任務(wù)分配和任務(wù)同步的策略。雙DSP之間任務(wù)分配的合理程度直接影響著雙DSP共同作圖的總的計(jì)算時(shí)間,,而雙DSP計(jì)算結(jié)果的最終合成以及同步顯示則直接影響著顯示器畫面的顯示效果,。
3.1 任務(wù)分配策略
雙DSP任務(wù)分配是以對(duì)所繪制畫面的合理功能模塊劃分為基礎(chǔ)的。根據(jù)典型畫面軟件模塊組成,,在進(jìn)行雙DSP的任務(wù)分配時(shí),,首先將典型畫面分割成如下若干個(gè)繪圖模塊單元,如圖8所示,。
根據(jù)以上繪圖單元的劃分方式,,在進(jìn)行雙DSP繪圖時(shí),分別采用了以下幾種任務(wù)分配方法:
(1)DSP1(主DSP)繪制全部畫面,,DSP2(從DSP)空閑,;
(2)DSP2(從DSP)繪制畫面單元2(全羅盤),DSP1(主DSP)繪制其余全部畫面,;
(3)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元6(氣壓高度),,DSP1(主DSP)繪制其余全部畫面;
(4)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元3(靜態(tài)背景畫面),,DSP1(主DSP)繪制其余全部畫面,;
(5)DSP2(從DSP)繪制畫面單元2(全羅盤)和畫面單元5(信息框文字),,DSP1(主DSP)繪制其余全部畫面;
(6)DSP2(從DSP)繪制畫面單元2(全羅盤),、畫面單元5(信息框文字),、畫面單元4(頂部文字菜單),DSP1(主DSP)繪制其余全部畫面,;
(7)DSP2(從DSP)繪制畫面單元2(全羅盤),、畫面單元6(氣壓高度)、畫面單元5(信息框文字),、畫面單元4(頂部文字菜單),,DSP1(主DSP)繪制其余全部畫面。
3.2 系統(tǒng)同步策略
每幀畫面計(jì)算顯示之初,,主DSP(DSP1)首先將畫圖任務(wù)分配結(jié)果發(fā)送給從DSP(DSP2),,然后二者同時(shí)進(jìn)行作圖計(jì)算,,DSP1的作圖結(jié)果直接寫入顯存SDRAM,,DSP2的作圖計(jì)算結(jié)果暫時(shí)保存在內(nèi)存緩沖區(qū)中,待作圖完成后,,通過LinkPort端口采用DMA方式發(fā)送給DSP1,。DSP1收到DSP2的作圖計(jì)算結(jié)果后,將計(jì)算結(jié)果寫入SDRAM,,然后通過改變通用輸入輸出引腳FLAG0的輸出狀態(tài)通知FPGA進(jìn)行顯存的刷新,。
為了保證兩個(gè)DSP的作圖結(jié)果可以同步顯示,主DSP在完成作圖任務(wù)并將結(jié)果寫入SDRAM后,,必須等待接收從DSP的作圖結(jié)果,,確認(rèn)收到后,才翻轉(zhuǎn)FLAG0的狀態(tài)開始啟動(dòng)畫面顯示,,這樣就可以保證DSP1和DSP2的畫面可以同步顯示,。
3.3 軟件設(shè)計(jì)流程
DSP1作為系統(tǒng)主DSP,首先需要通過判讀通用輸入輸出引腳FLAG1的輸入狀態(tài)來(lái)確認(rèn)FPGA已經(jīng)完成SDRAM顯存的刷新,,然后才啟動(dòng)LinkDMA將預(yù)先分配好的任務(wù)發(fā)送給DSP2,。DSP1發(fā)送完成后開始作圖,DSP2接收到任務(wù)后也同時(shí)開始作圖,。待DSP1作圖完成后,,如果DSP2也已經(jīng)作圖完成并且已經(jīng)將作圖結(jié)果發(fā)回,則DSP1直接將數(shù)據(jù)寫入顯存,,寫完后將FLAG0的輸出狀態(tài)翻轉(zhuǎn)使FPGA進(jìn)入操作狀態(tài),。雙DSP并行圖形處理與同步顯示軟件的流程圖如圖9所示。
圖10為DSP1和DSP2在任務(wù)執(zhí)行時(shí)時(shí)間分配的示意圖,。在軟件執(zhí)行過程中,,DSP2任務(wù)分配的多少將會(huì)影響整幅畫面的處理時(shí)間,。如果DSP2的任務(wù)分配過少,主要的處理工作都由主DSP1完成,,則系統(tǒng)總的處理時(shí)間減少并不明顯,;但如果DSP2任務(wù)分配過多,在DSP1完成作圖任務(wù)后DSP2仍未完成,,則DSP1的等待時(shí)間也會(huì)拉長(zhǎng)畫面整個(gè)處理時(shí)間,。合理的任務(wù)分配應(yīng)該使得DSP2在完成作圖計(jì)算并將計(jì)算結(jié)果發(fā)回后,DSP1也正好畫面處理結(jié)束,,這時(shí)整幅畫面的作圖處理時(shí)間最短,,作圖效率最高。
實(shí)際應(yīng)用時(shí)由于受到作圖任務(wù)的限制,,兩個(gè)DSP的任務(wù)分配難以達(dá)到理想狀態(tài),,但應(yīng)該盡量保證二者時(shí)間上的并發(fā)性,以減少總的作圖時(shí)間,。
4 能效測(cè)算
在繪制1 024×768分辨率的典型畫面時(shí),,兩個(gè)DSP的系統(tǒng)輸入時(shí)鐘為125 MHz,內(nèi)核時(shí)鐘均為500 MHz,。鏈路口時(shí)鐘,、SDRAM輸入時(shí)鐘均為125 MHz。
對(duì)3.1中所述的幾種任務(wù)分配模式下雙DSP的作圖時(shí)間,、幀率和系統(tǒng)功耗進(jìn)行測(cè)試,,結(jié)果如表1所示。
經(jīng)過對(duì)比可以看出,,在采用雙DSP共同作圖計(jì)算時(shí),,不同的任務(wù)分配情況,畫面總的作圖時(shí)間和系統(tǒng)功耗也有所不同,。在分配的時(shí)間相對(duì)均勻條件下,,雙DSP并行處理比單個(gè)DSP單獨(dú)處理效率提升53.6%,而功耗僅上升15.1%,。
5 結(jié)論
本文針對(duì)傳統(tǒng)的單DSP作圖性能不足的問題,,提出了一種雙DSP并行作圖解決方案,利用DSP間的Linkport端口傳遞作圖參數(shù)和數(shù)據(jù),,并完成作圖數(shù)據(jù)同步顯示,,結(jié)果顯示,在采取有效的任務(wù)分配策略后,,可以大幅地提高作圖效率,,減少系統(tǒng)繪圖時(shí)間,而系統(tǒng)功耗增加并不明顯。
參考文獻(xiàn)
[1] 賈銀亮.基于FPGA+DSP的飛機(jī)座艙綜合圖形顯示技術(shù)研究[D].南京:南京航空航天大學(xué),,2011.
[2] 李孟華,,牛文生,裴靜靜.DSP+FPGA結(jié)構(gòu)的嵌入式圖形處理設(shè)計(jì)[J].航空計(jì)算技術(shù),,2013,,43(1):120-122.
[3] 邢新強(qiáng),李國(guó)超,,肖鋒.機(jī)載座艙顯示發(fā)展趨勢(shì)分析[J].飛機(jī)設(shè)計(jì),,2010,30(2):34-36.
[4] 朱耀東,,張煥春,,經(jīng)亞枝.FPGA在飛行儀表字符圖形產(chǎn)生器設(shè)計(jì)中的應(yīng)用[J].數(shù)據(jù)采集與處理,2003,,18(2):185-188.
[5] 胡小龍,,周俊明,夏顯忠.飛機(jī)座艙圖形顯示加速系統(tǒng)設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),,2008,,39(5):1042-1048.
[6] 姜丹丹,李成貴.基于ARM與FPGA的主飛行儀顯示系統(tǒng)的設(shè)計(jì)[J].計(jì)量與測(cè)試技術(shù),,2009,,36(1):50-51.
[7] 谷勇,艾德峰,,魏延巖,等.飛機(jī)座艙顯示系統(tǒng)畫面顯示質(zhì)量的研究[J].海軍航空工程學(xué)院學(xué)報(bào),,2009,,24(6):631-634.
[8] 曹榮祥.多DSP系統(tǒng)間LinkPort數(shù)據(jù)同步傳輸技術(shù)研究[J].計(jì)算機(jī)工程應(yīng)用技術(shù),2011,,7(5):1155-1157,,1169.
[9] Analog Devices.ADSP-TS201 TigerSHARC processor hardware reference[Z].2004.
[10] 朱美能,李德華,,金良海,,等.基于多DSP的并行實(shí)時(shí)視頻處理系統(tǒng)[J].計(jì)算機(jī)與數(shù)字工程,2007,,35(8):41-44.