多媒體應用平臺OMAP5910雙核通訊技
DSP MMU可以將DSP外部存儲空間(字節地址0x050000--0XFF7FFF或0x050000--0XFFFFFF)的任意塊映射到OMAP5910的三個存儲區上,塊大小(1KB、4KB、64KB、1MB)可軟件設置。
DSP MMU的核心結構就是32個CAM和32個RAM以及相關的幾個控制、狀態寄存器,其中CAM用來存放DSP的外部存儲器虛擬地址及有關控制位信息;RAM用于存放OMAP5910的實際物理地址和訪問允許控制位。DSP MMU使能后,當DSP訪問外部存儲器時,相應虛擬地址就會被送到DSP MMU處,如果虛擬地址的有效高位(當頁大小為1KB、4KB、64KB、1MB時,對應的地址有效高位數分別為14、12、8、4)命中CAM,并且相應RAM中的訪問允許控制位有效,那么相應RAM中的物理地址高位就和虛擬地址偏移一塊兒被送到OMAP TC處,從而實現虛擬地址到物理地址的映射,然后就可以進行相關讀寫操作。如果虛擬地址的有效高位沒有命中CAM或者相應RAM中的訪問允許控制位無效,系統就會產生頁錯誤或訪問權限錯誤,并向ARM發起中斷,在中斷程序中ARM可通過查看DSP MMU有關狀態寄存器來進一步了解錯誤原因。
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中對于存儲系統的操作,ARM處理器采用小端模式,而DSP則采用大端模式,因此當DSP訪問OMAP5910的系統存儲空間時,就需要進行大小端模式之間的轉換。在ARM程序中對寄存器ENDIANISM進行適當設置就可以靈活地控制DSP訪問OMAP5910存儲空間時的數據格式。
3.4 DSP DMA
對于通過DSP的MMU和EMIF實現雙核通訊來講,當雙核間通訊的數據量比較大而DSP又比較忙的時候,利用DSP DMA來實現數據的傳輸可以減輕DSP CPU的負擔,提高整個DSP子系統運行的效率,而不會打斷DSP CPU的工作。
在關于OMAP5910的工程實際中較為典型的應用,通常是由ARM控制外圍器件獲取一組數據后,先交給DSP進行處理,處理后的數據再返回給ARM進行存儲、顯示、輸出等。為了實現雙核之間的數據通訊的可靠性,使用郵箱寄存器來傳遞雙核間的握手協議,當一方需要聯系另一方時只需向相應的郵箱命令寄存器寫入數據即可中斷對方,不同的數據代表不同的信號,使得握手及時可靠。當數據量比較大而DSP或ARM任務又比較多時,相應地使用DMA來進行數據傳輸可以減輕處理器負擔,提高程序運行的效率。實現此方案的程序示意圖如下:

5 結束語
由于OMAP5910芯片具有高性能、低功耗、優化的雙核結構、豐富的外圍設備接口等顯著優點,所以在便攜式儀器領域中它的應用前景也將十分廣闊。而OMAP5910中雙核間通訊技術的研究對于進一步開發OMAP5910,實現復雜的操作任務,協調雙核工作具有非常重要的作用,為其在便攜式儀器中發揮雙核優勢奠定了堅實的基礎。











評論