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