郭 璐,任家富
(成都理工大學信息科學與技術學院,成都610059)
AVS視頻壓縮標準具有很高的編碼效率,但也有較高的算法復雜度。編碼過程由于數(shù)據(jù)的重復使用不可避免的會產生大量數(shù)據(jù)的搬移,加重了DSP的負擔并耗費了很多時間。另外移植的嵌入式操作系統(tǒng)也占用部分內存,待處理的視頻數(shù)據(jù)不得不放在外部存儲器中。提高編解碼速度必須解決數(shù)據(jù)存儲問題,本文采用的TMS320DM6446[1]是TI最新推出的面向多媒體處理的數(shù)字信號處理器(DSP)。它的增強型直接內存存取(EDMA)對DSP圖像處理系統(tǒng)非常重要,可以在沒有CPU參與的情況下完成映射存儲空間中數(shù)據(jù)搬移從而減輕了DSP負擔。靈活使用EDMA可以大大提高數(shù)據(jù)傳輸效率。本文研究了用DSP將數(shù)據(jù)從SDRAM到內部存儲器的快速搬移以及數(shù)據(jù)從內部存儲器到顯示終端的快速傳輸問題,提高了實時圖像處理系統(tǒng)的實時性。
增強的直接存儲器訪問控制器主要包括傳輸控制器EDMATC和通道控制器EDMACC兩個主要部分:
1)傳輸控制器處理片內L2高速緩沖存儲器的外部存儲設備之間的數(shù)據(jù)傳輸,包括EDMA通道控制器傳輸,EMIF接口存儲器和緩沖之間的傳輸,以及非高速緩沖存儲器訪問等。
2)通道控制器是EDMA中用戶編程的一部分,支持一系列復雜的傳輸,包括一維和二維傳輸,事件觸發(fā)的傳輸和CPU觸發(fā)的傳輸,并支持PING-PONG緩沖[2]的復雜載入和編址模式,如環(huán)形緩存,幀提取和分類等。
EDMA的傳輸原理[3]:每個數(shù)據(jù)傳輸都由傳輸請求TR(Transfer Request)觸發(fā)。傳輸請求具有完成傳輸任務所需要的所有信息:源地址、目的地址、傳輸優(yōu)先級和單元計數(shù)等。傳輸時,根據(jù)優(yōu)先級對傳輸請求進行排列。隊首的任務首先占用EDMA傳輸控制器的隊列寄存器,然后按照傳輸要求進行真實的數(shù)據(jù)傳輸。傳輸過程中,傳輸遞交、優(yōu)先級排列、數(shù)據(jù)傳輸環(huán)節(jié)的運行和CPU頻率相同。外部設備的數(shù)據(jù)傳輸速度由外部設備決定,外部設備均有緩沖區(qū)以匹配高速度的EDMA。EDMA具有高效的傳輸機制,可以同時承擔多個傳輸數(shù)據(jù)任務。DSP中的3個常用的請求器為L2緩存/存儲控制器、EDMA通道和HPI,不同的傳輸任務也有不同的請求。然而,無論哪種請求器發(fā)出請求,EDMA傳輸控制器處理每個傳輸請求的方式都是一樣的。當傳輸請求被提交后,就由傳輸框架TC為其設定優(yōu)先級。TC擁有和外部設備獨立的讀總線,優(yōu)先級設置后的傳輸請求TR進入請求隊列等待處理,傳輸請求的優(yōu)先級決定了哪個TR先被提交。
圖像處理系統(tǒng)在兩處數(shù)據(jù)傳輸中采用了EDMA傳輸方式:外部SDRAM到DSP內部L2Cache的數(shù)據(jù)傳輸;McBSP0到顯示終端的數(shù)據(jù)傳輸。EDMA實現(xiàn)數(shù)據(jù)搬移的工作流程圖如圖1所示。
圖1 EDMA實現(xiàn)數(shù)據(jù)搬移的工作流程圖
搬移的數(shù)據(jù)為2維圖像數(shù)據(jù),圖像來自視頻采集板卡的數(shù)據(jù)圖像,該圖像存儲在SDRAM中,因此DSP是通過EDMA從SDRAM中將數(shù)據(jù)傳輸?shù)紻SP內部存儲器,然后DSP進行相應的圖像處理。因此EDMA采用2-D數(shù)據(jù)傳輸模式。
2.1.1 同步傳輸模式
一個EDMA通道的同步傳輸有兩種方式[4]:
1)讀/寫同步(FS=0):EDMA通道在收到同步事件后,對于non-2D,向目的地址傳輸一個數(shù)據(jù)單元;對于2D傳輸,向目的地址傳輸一個陣列的數(shù)據(jù)。
2)幀/塊同步(FS=1):對于non-2D傳輸,同步事件回觸發(fā)一幀數(shù)據(jù)的傳輸;對于2D傳輸,幀同步將傳輸整個數(shù)據(jù)塊(一組陣列)。
2.1.2 傳輸?shù)刂返母?/p>
EDMA傳輸參數(shù)中有SUM/DUM參數(shù)字段[5],可以控制源/目標地址的更新方式,地址更新是指在一個數(shù)據(jù)塊的傳輸過程中,源/目標地址的自動修正。不同的地址更新模式使得用戶可以創(chuàng)建多種數(shù)據(jù)結構。
向CPU產生的傳輸完成中斷主要由EDMA控制器完成。但EDMA代表所有16個通道只向CPU產生一個中斷(EDMA_INT)[6]。各種控制器寄存器和位段方便EDMA中斷的產生。當一個EDMA通道設置OPT寄存器的TCINT位為1,并且提供一個特定的傳輸完成代碼(TCC)時,EDMA控制器便會設置通道中斷掛起寄存器(CIPR)的某一位。
編程設置的TCC值指定被置位的CIPR位數(shù),最后向CPU產生的EDMA_INT信號。為了實現(xiàn)這些操作,通道中斷使能寄存器(CIER)的CIEn位設置為1,OPT寄存器的TCINT位設置為1,TCC位設置為n。
EDMA控制器能夠跟蹤EDMA通道傳輸?shù)耐瓿?,并按照指定的傳輸完成代碼設置CIPR的合適位。CPU的ISR將會讀取CIPR并決定通道是否已經完成,并執(zhí)行那些必要的操作。當服務器中斷時,ISR會清除CIPR中的位,從而能進一步識別中斷。
在視頻數(shù)據(jù)信號的傳輸和處理過程中,CPU數(shù)據(jù)處理必須與EDMA數(shù)據(jù)傳輸保持同步,也就是要保證在CPU訪問之前EDMA把數(shù)據(jù)傳輸?shù)骄彌_區(qū)中,而在EDMA輸出數(shù)據(jù)之前CPU完成緩沖區(qū)中的數(shù)據(jù)處理[7]。CPU數(shù)據(jù)處理與EDMA數(shù)據(jù)傳輸?shù)耐娇梢圆捎肞ing_pong雙緩沖技術來實現(xiàn)。實現(xiàn)方法如下[8]:在片內存儲器L2中開辟兩個大小相同的緩沖區(qū)Ping_buffer和Pong_buffer,兩個緩沖區(qū)輪流交替工作。當EDMA傳輸數(shù)據(jù)到Ping_buffer時,CPU處理Pong_buffer中的數(shù)據(jù);當CPU和EDMA操作完畢,Ping_buffer和Pong_buffer緩沖區(qū)互換,EDMA繼續(xù)傳輸數(shù)據(jù)覆蓋Pong_buffer中的數(shù)據(jù),CPU處理Ping_buffer中的數(shù)據(jù)。
Ping_pong雙緩沖區(qū)操作可以通過EDMA的連接來實現(xiàn)。EDMA的連接功能將不同的EDMA傳輸控制參數(shù)連接在一起,組成一個參數(shù)鏈,為同一個通道服務。在實現(xiàn)Ping_pong緩沖技術時,EDMA完成一次數(shù)據(jù)傳輸任務時,產生中斷通知CPU處理新的數(shù)據(jù)。設置ping和pong參數(shù)組選項參數(shù)的連接使能為1,中斷使能位為1,這樣,在等待EDMA完成數(shù)據(jù)傳輸時,CPU可以繼續(xù)處理后臺事務。當FIFO滿標志IR發(fā)生事件,發(fā)送中斷信號啟動ping將數(shù)據(jù)搬移到Ping_buffer,則Ping_buffer的FFT運算將由CPU在ping通道中斷服務程序中完成,同時,EDMA利用初始化功能從參數(shù)RAM中加載pong參數(shù)組,將數(shù)據(jù)搬移到Pong_buffer中,CPU在Pong通道完成中斷服務程序中對Pong_buffer中的數(shù)據(jù)的FFT運算并連接ping通道,如此循環(huán),使系統(tǒng)數(shù)據(jù)搬移和處理能連續(xù)進行。
大批量的圖像數(shù)據(jù)傳輸和復雜算法的處理一直是高速數(shù)字圖像處理器的瓶頸,利用DSP的EDMA功能可以在不中斷信號處理器工作的同時完成圖像數(shù)據(jù)的搬移,極大地提高了系統(tǒng)的并行性能。
[1] Texas Instruments,TMS320DM644x DMSoC Enhanced Direct Memory Access(EDMA)Controller.2008:67-89.
[2] Texas Instruments,TMS320C6000 DSP Cache User’s Guide.2003:24-77.
[3]于鳳芹,張慶榮,吉訓生,等.TMS320C6000結構原理與硬件設計[M].北京:北京航天航空出版社,2008:65-67.
[4]劉向宇.DSP嵌入式常用模塊與綜合系統(tǒng)設計實例精講[M].北京:電子工業(yè)出版社,2009:126-140.
[5]TMS320C6713 Fixed-point Digital Signal Processor Data Manual[M].TI Corporation,2004:203-278.
[6]李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理與應用[M].北京:電子工業(yè)出版社,2003:390-408.
[7] Texas Instruments Incorporated Applications using the TMS320C6000 enhanced DMA[R].2006:103-270.
[8]Applications Using the TMS320C6000 Enhanced DMA[M].TI Corporation,2001:121-199.