1 引言
開放式多媒體應(yīng)用平臺OMAP5910為一種獨特的雙核結(jié)構(gòu),它將高性能低功耗的TMS320C55xDSP核與控制性能很強的ARM925微處理器結(jié)合起來,適合便攜式手持設(shè)備綜合處理能力的需求。ARM長于控制,DSP長于算法,但要想使二者協(xié)調(diào)配合起來產(chǎn)生最大的整體效能,雙核之間的通訊技術(shù)研究就必不可少。
2 OMAP5910的雙核結(jié)構(gòu)簡介
如圖一所示,OMAP5910的雙核結(jié)構(gòu)主要包括增強型ARM925核、TMS320C55xDSP核、交換控制器、系統(tǒng)DMA控制器、時鐘復(fù)位管理模塊、內(nèi)部SRAM和外部設(shè)備應(yīng)用接口等模塊。
增強型ARM925核是一種先進(jìn)的32位精簡指令集計算機處理器,工作在150Mhz的主頻上,它可以執(zhí)行32位或16位指令,處理32位、16位、8位數(shù)據(jù)。作為OMAP5910的主機ARM925可以訪問多達(dá)4G的空間。
TMS320C55xDSP核工作主頻為150Mhz,內(nèi)部有32K字的DASRAM、48K字的SARAM、16K字的ROM和12K字的高速指令緩存存儲器。還有用于地址變換的存儲器管理單元、兩級中斷管理器等模塊。功能非常強大,而功耗卻相當(dāng)?shù)?,在目前TMS320 DSP家族中最為省電。
交換控制器主要用于提供ARM、DSP、系統(tǒng)DMA等對OMAP5910系統(tǒng)存儲資源(包括192K字節(jié)的內(nèi)部SRAM、64M字節(jié)的外部SDRAM和128M字節(jié)的外部FLASH)進(jìn)行的異步操作。系統(tǒng)DMA控制器經(jīng)過低功耗設(shè)計,支持外部存儲器、ARM925、外圍之間的8位、16位、32位數(shù)據(jù)傳輸,有突發(fā)傳送和數(shù)據(jù)打包等功能。
時鐘復(fù)位管理模塊可以靈活地設(shè)置和管理ARM部分、DSP部分、交換控制器的時鐘,使各單元能夠工作在不同的省電模式下,從而最大限度地降低整個系統(tǒng)的功耗。
內(nèi)部192K字節(jié)32位數(shù)據(jù)寬度的SRAM為液晶顯示等應(yīng)用提供了較大的數(shù)據(jù)和代碼存儲空間。外圍設(shè)備應(yīng)用接口為OMAP5910在片外連接液晶、攝像頭、空中接口、USB等提供了方便。
3 OMAP5910的雙核通訊機制
OMAP5910通過三種方式來支持內(nèi)部雙核間的通訊。第一種方式是通過雙核共享郵箱寄存器Mailbox來實現(xiàn),雙核間可以互相中斷并通過郵箱寄存器傳遞少量數(shù)據(jù)。第二種方式是ARM通過主機接口獲得對DSP存儲空間和I/O空間的訪問權(quán),然后由ARM來完成數(shù)據(jù)在雙核間的搬移。第三種方式就是通過ARM對DSP存儲器管理單元的設(shè)置將DSP的外部存儲空間映射到OMAP5910系統(tǒng)存儲資源中,由DSP來完成雙核間數(shù)據(jù)的搬移。
三種通訊方式各有千秋。第一種方式傳輸?shù)臄?shù)據(jù)量較小,但是傳遞信息可靠及時,非常適合在雙核通訊中完成握手聯(lián)絡(luò)。后兩中方式都適合在雙核之間傳輸大量數(shù)據(jù),但數(shù)據(jù)傳輸?shù)目刂普卟煌?,第二種方式由ARM控制完成,第三種方式由DSP控制完成。在一些相對復(fù)雜的應(yīng)用中ARM常常忙于對許多外圍設(shè)備的控制,沒有更多的時間來完成雙核間的數(shù)據(jù)傳輸,這時利用第三種方式來完成數(shù)據(jù)搬移必然是最理想的選擇?;谶@種考慮,下面對第三種方式進(jìn)行一個介紹。
3.1 原理框圖
雙核間通過DSP的存儲器管理單元MMU和外部存儲器接口EMIF實現(xiàn)通訊的實質(zhì)是利用DSP MMU將DSP的外部存儲器映射在OMAP5910的內(nèi)部SARAM、外部SDRAM和FLASH上,使ARM,DSP及DSP DMA都能訪問這三個存儲區(qū)域從而實現(xiàn)數(shù)據(jù)共享??驁D如下:
[!--empirenews.page--]3.2 DSP MMU
DSP MMU可以將DSP外部存儲空間(字節(jié)地址0x050000--0XFF7FFF或0x050000--0XFFFFFF)的任意塊映射到OMAP5910的三個存儲區(qū)上,塊大小(1KB、4KB、64KB、1MB)可軟件設(shè)置。
DSP MMU的核心結(jié)構(gòu)就是32個CAM和32個RAM以及相關(guān)的幾個控制、狀態(tài)寄存器,其中CAM用來存放DSP的外部存儲器虛擬地址及有關(guān)控制位信息;RAM用于存放OMAP5910的實際物理地址和訪問允許控制位。DSP MMU使能后,當(dāng)DSP訪問外部存儲器時,相應(yīng)虛擬地址就會被送到DSP MMU處,如果虛擬地址的有效高位(當(dāng)頁大小為1KB、4KB、64KB、1MB時,對應(yīng)的地址有效高位數(shù)分別為14、12、8、4)命中CAM,并且相應(yīng)RAM中的訪問允許控制位有效,那么相應(yīng)RAM中的物理地址高位就和虛擬地址偏移一塊兒被送到OMAP TC處,從而實現(xiàn)虛擬地址到物理地址的映射,然后就可以進(jìn)行相關(guān)讀寫操作。如果虛擬地址的有效高位沒有命中CAM或者相應(yīng)RAM中的訪問允許控制位無效,系統(tǒng)就會產(chǎn)生頁錯誤或訪問權(quán)限錯誤,并向ARM發(fā)起中斷,在中斷程序中ARM可通過查看DSP MMU有關(guān)狀態(tài)寄存器來進(jìn)一步了解錯誤原因。
DSP MMU的設(shè)置過程如下:
a. 釋放 DSP MMU 的復(fù)位
b. 寫 CAM_REG_H 和 CAM_REG_L 寄存器
c. 寫 RAM_REG_H 和 RAM_REG_L 寄存器
d. 寫 Lock Counter 寄存器
e. 將 LD_TLB_REG 寄存器寫1,裝載DSP MMU參數(shù)
f.使能 DSP MMU
3.3 存儲模式轉(zhuǎn)換
由于在OMAP5910中對于存儲系統(tǒng)的操作,ARM處理器采用小端模式,而DSP則采用大端模式,因此當(dāng)DSP訪問OMAP5910的系統(tǒng)存儲空間時,就需要進(jìn)行大小端模式之間的轉(zhuǎn)換。在ARM程序中對寄存器ENDIANISM進(jìn)行適當(dāng)設(shè)置就可以靈活地控制DSP訪問OMAP5910存儲空間時的數(shù)據(jù)格式。
3.4 DSP DMA
對于通過DSP的MMU和EMIF實現(xiàn)雙核通訊來講,當(dāng)雙核間通訊的數(shù)據(jù)量比較大而DSP又比較忙的時候,利用DSP DMA來實現(xiàn)數(shù)據(jù)的傳輸可以減輕DSP CPU的負(fù)擔(dān),提高整個DSP子系統(tǒng)運行的效率,而不會打斷DSP CPU的工作。
4 實現(xiàn)雙核通訊的一種方案
在關(guān)于OMAP5910的工程實際中較為典型的應(yīng)用,通常是由ARM控制外圍器件獲取一組數(shù)據(jù)后,先交給DSP進(jìn)行處理,處理后的數(shù)據(jù)再返回給ARM進(jìn)行存儲、顯示、輸出等。為了實現(xiàn)雙核之間的數(shù)據(jù)通訊的可靠性,使用郵箱寄存器來傳遞雙核間的握手協(xié)議,當(dāng)一方需要聯(lián)系另一方時只需向相應(yīng)的郵箱命令寄存器寫入數(shù)據(jù)即可中斷對方,不同的數(shù)據(jù)代表不同的信號,使得握手及時可靠。當(dāng)數(shù)據(jù)量比較大而DSP或ARM任務(wù)又比較多時,相應(yīng)地使用DMA來進(jìn)行數(shù)據(jù)傳輸可以減輕處理器負(fù)擔(dān),提高程序運行的效率。實現(xiàn)此方案的程序示意圖如下:
5 結(jié)束語
由于OMAP5910芯片具有高性能、低功耗、優(yōu)化的雙核結(jié)構(gòu)、豐富的外圍設(shè)備接口等顯著優(yōu)點,所以在便攜式儀器領(lǐng)域中它的應(yīng)用前景也將十分廣闊。而OMAP5910中雙核間通訊技術(shù)的研究對于進(jìn)一步開發(fā)OMAP5910,實現(xiàn)復(fù)雜的操作任務(wù),協(xié)調(diào)雙核工作具有非常重要的作用,為其在便攜式儀器中發(fā)揮雙核優(yōu)勢奠定了堅實的基礎(chǔ)。