摘 要: 機載顯示器分辨率越來越高,顯示內(nèi)容越來越復雜,這對圖形生成電路提出了更高的要求。提出了一種基于雙處理器系統(tǒng)的圖形生成電路實現(xiàn)方法,以兩片DSP處理器作為繪圖核心,配合FPGA和SDRAM幀存構建硬件平臺,由主DSP進行繪圖任務分配,并將任務分配結果通過Linkport口傳遞給從DSP,主從DSP根據(jù)任務分配結果并行完成圖形生成算法運算,從DSP通過Linkport口向主DSP發(fā)送圖形數(shù)據(jù),主DSP將圖形數(shù)據(jù)寫入SDRAM幀存中,配合FPGA對SDRAM進行乒乓操作完成圖形數(shù)據(jù)的實時生成與顯示。實驗結果表明,該方法與單處理器方案相比,在功耗僅增加15%的情況下圖形生成效率可提高53%以上,生成一幅1024×768的EFIS電子飛行顯示系統(tǒng)畫面幀率可達86 f/s。
0 引言
現(xiàn)代飛機座艙顯示系統(tǒng)向駕駛員提供飛行器、發(fā)動機和其他系統(tǒng)所測試的參數(shù),包括從起飛、導航、著陸等全過程所需要的各種信息[1]。隨著電子技術的不斷發(fā)展,座艙顯示系統(tǒng)需要處理的實時信息量不斷增加,對機載顯示處理系統(tǒng)的實時性、有效性和快速圖形處理能力提出了更高的要求[2],主顯示器尺寸不斷加大,分辨率不斷提高,并日益朝著大屏幕化、綜合化、信息化和智能化方向發(fā)展,向飛行員傳遞的飛機參數(shù)越來越依賴于圖形顯示[3-5]。
圖形生成電路是座艙顯示系統(tǒng)的核心部分,其主要功能是根據(jù)飛機任務、飛機狀態(tài)和周邊態(tài)勢等信息生成相應的顯示畫面,以供飛行員進行觀察。軍用飛機在做戰(zhàn)術動作時,畫面變換速度快,要求圖形的更新速度也必須很快,至少要比幀或場的刷新速度快,才可以避免畫面的斷續(xù)[6-7]。目前,在役各型飛機的機載顯示器一般采用單個DSP+FPGA的架構完成圖形生成功能。其中DSP負責圖形生成指令的發(fā)起和圖形生成算法的實現(xiàn),F(xiàn)PGA負責將DSP圖形生成的結果輸出顯示。由于某些字符圖形顯示內(nèi)容(天地球、全羅盤等)生成步驟復雜,且對生成圖形質(zhì)量要求很高(要求反走樣等),導致在生成一幀顯示圖形時單個DSP的計算量過大,造成機載顯示器字符圖形生成周期過長,數(shù)據(jù)刷新的實時性不能得到保證;或者在面臨較高分辨率的字符圖形生成任務時,在要求的數(shù)據(jù)刷新周期(例如25 ms)內(nèi)無法完成指定分辨率字符圖形的生成計算。由于上述因素的制約,使用單DSP進行字符圖形生成的傳統(tǒng)方法已不能滿足未來機載顯示器字符圖形的生成需求,研制出一種具有更高性能的機載顯示器圖形生成裝置勢在必行。
本文提出一種基于雙DSP處理器+FPGA架構的圖形生成電路實現(xiàn)方法,利用雙DSP協(xié)同進行圖形生成運算處理,可以顯著提高圖形生成效率和系統(tǒng)能效比,滿足機載顯示器高分辨率圖形實時生成與顯示需求。
1 系統(tǒng)原理
1.1 硬件構成
本系統(tǒng)硬件原理框圖如圖1所示。
?
系統(tǒng)主要由主從雙片DSP、FPGA、SDRAM、Flash、EPROM等模塊組成,其中,主從雙片DSP負責繪圖運算,通過Linkport通信接口完成數(shù)據(jù)交互。SDRAM是系統(tǒng)幀存部件,用于存放繪圖運算結果數(shù)據(jù)。FPGA是系統(tǒng)數(shù)據(jù)的交互和控制中心,配合主DSP對SDRAM幀存以乒乓操作的方式完成繪圖數(shù)據(jù)的讀寫處理。Flash用于存儲畫面顯示軟件,EPROM用于存儲FPGA程序。
1.2 顯示軟件
系統(tǒng)作圖時,根據(jù)畫面內(nèi)容要求,主DSP(DSP1)將作圖任務劃分成若干個基本作圖單元,并根據(jù)各任務計算量和通信時間等因素的約束,將部分任務分配給從DSP(DSP2)計算。這時DSP1向DSP2發(fā)送任務編號或者根據(jù)任務預先分配結果發(fā)送開始作圖標志,DSP2收到相應內(nèi)容后,啟動作圖任務,并將作圖結果保存下來,待任務完成后DSP2將計算結果通過Linkport端口發(fā)送至DSP1進行同步顯示。雙DSP軟件的接口關系如圖2所示。
?
雙DSP圖形畫面顯示軟件由主DSP(DSP1)和從DSP(DSP2)的兩部分軟件組成。其功能模塊框圖如圖3所示。DSP1畫面顯示軟件主要包括初始化模塊和主模塊,初始化模塊完成DSP系統(tǒng)寄存器、SDRAM、Linkport接口、調(diào)色板等初始化功能,主模塊由Linkport通信與數(shù)據(jù)傳輸模塊和畫面顯示模塊組成,其中通信與數(shù)據(jù)傳輸模塊完成與從DSP的LinkPort通信、任務分配與同步等功能,畫面顯示模塊完成DSP1的作圖計算與顯示等功能。從DSP由初始化模塊及主模塊組成,初始化模塊主要完成DSP系統(tǒng)寄存器和LinkPort接口等初始化任務,主模塊由通信與數(shù)據(jù)傳輸模塊和作圖計算模塊等組成,通信與數(shù)據(jù)傳輸模塊完成接收主DSP的控制命令和將作圖計算結果發(fā)送給主DSP等兩項功能;作圖處理模塊完成分配的作圖任務,并將相應的計算結果(對應像素點信息)保存下來。
?
2 Linkport通信端口
本文采用的DSP芯片為ADI公司的ADSP-TS201,TS201專門為高速通信設計了基于LVDS技術的Linkport,解決了DSP之間的通信瓶頸問題[8]。TS201帶有4路Linkport口,信號通過LVDS形式以DDR數(shù)據(jù)格式傳輸,時鐘上升沿和下降沿均有數(shù)據(jù)。每一路都可以同時進行發(fā)送和接收操作。通過Linkport口,系統(tǒng)內(nèi)多片DSP之間可以實現(xiàn)點對點通信[9]。每個鏈路口的最高單向傳輸速率是500 MB/s,可以非常方便并行系統(tǒng)中處理器之間的通信[10]。
2.1 Linkport通信協(xié)議
Linkport口可以配置為4位模式(對應于4路Linkport口)和1位模式(對應于1路Linkport口),模型如圖4和圖5所示,Linkport口結構如圖6所示。
?
?
圖6中Tx buffer為發(fā)送緩沖,Tx SHIFT register為發(fā)送端移位寄存器,Rx buffer為接收緩沖,Rx temporary buffer為接收端臨時緩沖,Rx SHIFT register為接收端移位寄存器。
?
Linkport口通信協(xié)議如下:
(1)Linkport口數(shù)據(jù)以突發(fā)方式傳輸,每發(fā)起一次傳輸最小傳輸數(shù)據(jù)量為128 bit。
(2)傳輸?shù)牡谝粋€數(shù)據(jù)(1 bit或4 bit)在Link口時鐘的上升沿傳輸。
(3)傳輸?shù)淖詈笠粋€數(shù)據(jù)(1 bit或4 bit)在Link口時鐘的下降沿傳輸。
(4)Link口處于空閑狀態(tài)時時鐘一直為低電平,也即有數(shù)據(jù)傳輸時才有時鐘信號,時鐘信號是不連續(xù)的。
2.2 DSP間Linkport通信
ADSP-TS201之間進行Linkport通信時,除了直接采用Linkport內(nèi)核通信方式外,還支持Linkport采用DMA方式進行通信。
雙DSP之間的Linkport通信采用了單向循環(huán)通訊方式進行測試。DSP1完成Linkport的控制寄存器配置后首先啟動發(fā)送,發(fā)送完成后進入接收等待狀態(tài),等待DSP2將數(shù)據(jù)返回。DSP2在寄存器配置后首先進入接收等待狀態(tài),等待DSP1發(fā)出的數(shù)據(jù)。在接收到DSP1的數(shù)據(jù)后,再將數(shù)據(jù)發(fā)回至DSP1。然后DSP1再啟動下一組數(shù)據(jù)的發(fā)送,如此循環(huán),通信流程圖如圖7所示。
?
2.3 雙DSP之間的LinkDMA內(nèi)核通信
LinkDMA傳輸需要配置的寄存器是128 bit的傳輸控制塊寄存器(TCB),TCB包含了4個32 bit寄存器:DMA地址索引寄存器DI、DX寄存器、DY寄存器、DP寄存器。其中DI指明了DMA傳輸?shù)脑椿蛘吣康钠鹗嫉刂罚珼X寄存器的高16 bit用于指定DMA傳輸?shù)淖謹?shù),低16 bit用于指定地址的修改量,DY寄存器用于二維DMA傳輸,DP寄存器包含了DMA傳輸時所有的控制信息。
對于LinkDMA傳輸方式,DI設定為傳輸緩沖區(qū)的地址,發(fā)送時為源緩沖地址,接收時為目的緩沖區(qū)地址。DX中傳輸字數(shù)可以根據(jù)傳輸數(shù)據(jù)大小決定,地址修改量必須為4。DY必須為0。DP中需要配置操作數(shù)據(jù)長度為4字方式,指定DMA設備種類(內(nèi)存、外存等),還需要確定是否需要DMA中斷。
DSP1和DSP2在完成LinkPort控制寄存器配置后,DMA通信方式還需要配置LinkPort端口的DMA發(fā)送通道DC7與DMA接收通道DC11。選定DC7通道TCB的源地址為內(nèi)存數(shù)據(jù)起始地址,地址修改量為4,數(shù)據(jù)長度為4字模式,設備類型為INTMEM(內(nèi)部存儲器),并使能DMA7的中斷。DC11的配置處將數(shù)據(jù)地址改為內(nèi)存中接收緩沖首地址外,其他配置與DC7相同。然后還需要在IMASK寄存器中將DMA7和DMA11的中斷控制位使能。
3 雙DSP并行處理和同步顯示技術
未來日益提高的顯示器畫面分辨率和顯示實時性的需求,使得單個DSP在進行高分辨率的畫面圖形繪制時難以滿足要求。因此,采用雙DSP或者多個DSP進行作圖任務分工,協(xié)同并行處理是滿足這一需求的有效途徑。
雙DSP的作圖畫面選擇典型的EFIS畫面,包括天地球和全羅盤顯示內(nèi)容。為了實現(xiàn)雙DSP并行作圖計算和同步顯示,需實現(xiàn)基于Linkport通信的任務分配和任務同步的策略。雙DSP之間任務分配的合理程度直接影響著雙DSP共同作圖的總的計算時間,而雙DSP計算結果的最終合成以及同步顯示則直接影響著顯示器畫面的顯示效果。
3.1 任務分配策略
雙DSP任務分配是以對所繪制畫面的合理功能模塊劃分為基礎的。根據(jù)典型畫面軟件模塊組成,在進行雙DSP的任務分配時,首先將典型畫面分割成如下若干個繪圖模塊單元,如圖8所示。
?
根據(jù)以上繪圖單元的劃分方式,在進行雙DSP繪圖時,分別采用了以下幾種任務分配方法:
(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)同步策略
每幀畫面計算顯示之初,主DSP(DSP1)首先將畫圖任務分配結果發(fā)送給從DSP(DSP2),然后二者同時進行作圖計算,DSP1的作圖結果直接寫入顯存SDRAM,DSP2的作圖計算結果暫時保存在內(nèi)存緩沖區(qū)中,待作圖完成后,通過LinkPort端口采用DMA方式發(fā)送給DSP1。DSP1收到DSP2的作圖計算結果后,將計算結果寫入SDRAM,然后通過改變通用輸入輸出引腳FLAG0的輸出狀態(tài)通知FPGA進行顯存的刷新。
為了保證兩個DSP的作圖結果可以同步顯示,主DSP在完成作圖任務并將結果寫入SDRAM后,必須等待接收從DSP的作圖結果,確認收到后,才翻轉FLAG0的狀態(tài)開始啟動畫面顯示,這樣就可以保證DSP1和DSP2的畫面可以同步顯示。
3.3 軟件設計流程
DSP1作為系統(tǒng)主DSP,首先需要通過判讀通用輸入輸出引腳FLAG1的輸入狀態(tài)來確認FPGA已經(jīng)完成SDRAM顯存的刷新,然后才啟動LinkDMA將預先分配好的任務發(fā)送給DSP2。DSP1發(fā)送完成后開始作圖,DSP2接收到任務后也同時開始作圖。待DSP1作圖完成后,如果DSP2也已經(jīng)作圖完成并且已經(jīng)將作圖結果發(fā)回,則DSP1直接將數(shù)據(jù)寫入顯存,寫完后將FLAG0的輸出狀態(tài)翻轉使FPGA進入操作狀態(tài)。雙DSP并行圖形處理與同步顯示軟件的流程圖如圖9所示。
?
圖10為DSP1和DSP2在任務執(zhí)行時時間分配的示意圖。在軟件執(zhí)行過程中,DSP2任務分配的多少將會影響整幅畫面的處理時間。如果DSP2的任務分配過少,主要的處理工作都由主DSP1完成,則系統(tǒng)總的處理時間減少并不明顯;但如果DSP2任務分配過多,在DSP1完成作圖任務后DSP2仍未完成,則DSP1的等待時間也會拉長畫面整個處理時間。合理的任務分配應該使得DSP2在完成作圖計算并將計算結果發(fā)回后,DSP1也正好畫面處理結束,這時整幅畫面的作圖處理時間最短,作圖效率最高。
?
實際應用時由于受到作圖任務的限制,兩個DSP的任務分配難以達到理想狀態(tài),但應該盡量保證二者時間上的并發(fā)性,以減少總的作圖時間。
4 能效測算
在繪制1 024×768分辨率的典型畫面時,兩個DSP的系統(tǒng)輸入時鐘為125 MHz,內(nèi)核時鐘均為500 MHz。鏈路口時鐘、SDRAM輸入時鐘均為125 MHz。
對3.1中所述的幾種任務分配模式下雙DSP的作圖時間、幀率和系統(tǒng)功耗進行測試,結果如表1所示。
?
經(jīng)過對比可以看出,在采用雙DSP共同作圖計算時,不同的任務分配情況,畫面總的作圖時間和系統(tǒng)功耗也有所不同。在分配的時間相對均勻條件下,雙DSP并行處理比單個DSP單獨處理效率提升53.6%,而功耗僅上升15.1%。
5 結論
本文針對傳統(tǒng)的單DSP作圖性能不足的問題,提出了一種雙DSP并行作圖解決方案,利用DSP間的Linkport端口傳遞作圖參數(shù)和數(shù)據(jù),并完成作圖數(shù)據(jù)同步顯示,結果顯示,在采取有效的任務分配策略后,可以大幅地提高作圖效率,減少系統(tǒng)繪圖時間,而系統(tǒng)功耗增加并不明顯。
評論
查看更多