摘 要: 機(jī)載顯示器分辨率越來越高,顯示內(nèi)容越來越復(fù)雜,這對(duì)圖形生成電路提出了更高的要求。提出了一種基于雙處理器系統(tǒng)的圖形生成電路實(shí)現(xiàn)方法,以兩片DSP處理器作為繪圖核心,配合FPGA和SDRAM幀存構(gòu)建硬件平臺(tái),由主DSP進(jìn)行繪圖任務(wù)分配,并將任務(wù)分配結(jié)果通過Linkport口傳遞給從DSP,主從DSP根據(jù)任務(wù)分配結(jié)果并行完成圖形生成算法運(yùn)算,從DSP通過Linkport口向主DSP發(fā)送圖形數(shù)據(jù),主DSP將圖形數(shù)據(jù)寫入SDRAM幀存中,配合FPGA對(duì)SDRAM進(jìn)行乒乓操作完成圖形數(shù)據(jù)的實(shí)時(shí)生成與顯示。實(shí)驗(yàn)結(jié)果表明,該方法與單處理器方案相比,在功耗僅增加15%的情況下圖形生成效率可提高53%以上,生成一幅1024×768的EFIS電子飛行顯示系統(tǒng)畫面幀率可達(dá)86 f/s。
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ù)越來越依賴于圖形顯示[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)無法完成指定分辨率字符圖形的生成計(jì)算。由于上述因素的制約,使用單DSP進(jìn)行字符圖形生成的傳統(tǒng)方法已不能滿足未來機(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é)果保存下來,待任務(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)信息)保存下來。
?
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ù)
未來日益提高的顯示器畫面分辨率和顯示實(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)來確認(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)功耗增加并不明顯。
評(píng)論
查看更多