基于ARM和DSP架構(gòu)的多處理器高速通訊協(xié)議設(shè)計
關(guān)鍵詞:RISC processor(精簡指令集處理器),DSP(數(shù)字信號處理器), ARM, Trimedia,RTOS(嵌入式操作系統(tǒng)),數(shù)字視頻,STB(機頂盒),PCI, 通訊
目前,建立在寬帶網(wǎng)絡(luò)的多媒體應(yīng)用日漸增多,高性能的DSP也不斷推陳出新,由于DSP具備非常靈活的編程運算能力,針對不同的編碼標(biāo)準,采用不同的編碼軟件,加上合適的芯片價位,在視頻會議終端、視頻監(jiān)控服務(wù)器、IP數(shù)字機頂盒等產(chǎn)品中已被普遍采用。雖然DSP具備眾多的優(yōu)點, 但卻不適合作系統(tǒng)控制,因為DSP通常沒有強大的操作系統(tǒng),沒有完備的網(wǎng)絡(luò)協(xié)議棧和可靠的文件系統(tǒng),DSP架構(gòu)在作控制指令時無法并行處理,分支判斷和高速緩存沒命中(cache miss)都會使運行效率極大降低。而這些正好是嵌入式RISC處理器的強項,比如ARM和MIPS系列,所以現(xiàn)在很多國際知名的半導(dǎo)體公司如 PHILIPS和TI都推出了整合了RISC處理器和DSP的SOC芯片,如PNX8550、PNX8525、OMAP等。
高性能的DSP在進行媒體處理時會產(chǎn)生和消費大量的音視頻數(shù)據(jù),這些數(shù)據(jù)需要在RISC 和DSP兩個處理器之間高速、穩(wěn)定地交換數(shù)據(jù),另外,RISC處理器也要經(jīng)常給DSP發(fā)送指令,并且還要支持來自DSP的RPC調(diào)用。下面本文將要介紹一種基于多處理器之間的高速通訊機制,并且已在實踐中得到商業(yè)化的應(yīng)用。
本方案采用了SAMSUNG的S3C2510(ARM940T內(nèi)核)和PHILIPS的Trimedia1300(TM1300) 數(shù)字信號處理器,ARM940T內(nèi)置了PCI2.1規(guī)范的總線接口,Trimedia1300可以作為PCI的MASTER和SLAVE,基本架構(gòu)如圖 -1。
圖-1
基于上述的硬件架構(gòu),在ARM和Trimedia1300處理器上分別采用了WindRiver的實時嵌入式操作系統(tǒng)(RTOS)vxWorks和 pSos2.5,本通訊協(xié)議的基本思路為,在ARM的內(nèi)存空間上開辟一塊共享內(nèi)存,并能使TRIMEDIA能夠訪問,數(shù)據(jù)通訊的握手協(xié)議通過兩個處理器的中斷來實現(xiàn),配合信號量的使用,可以達到高速、高效通訊的目的,其軟件架構(gòu)如圖-2。
圖-2
該通訊協(xié)議采用分層分布,兩個處理器基本處于對稱狀態(tài),因此,主要軟件模塊是公用的,有區(qū)別的是硬件抽象層和操作系統(tǒng)抽象層,與硬件和操作系統(tǒng)相關(guān)的模塊比如中斷驅(qū)動、信號量同步處理都分別提煉出來,單獨放在這些模塊文件中,減少軟件開發(fā)和維護的工作量。下面對圖-2中的軟件模塊進行說明:
1. 硬件抽象層:該層主要完成對不同處理器的硬件的抽象,比如地址映射、中斷處理、 PCI配置空間的訪問,IO寄存器的訪問等功能。將兩個處理器之間的硬件差異隱藏起來,以便上一層統(tǒng)一管理接口。
2. 操作系統(tǒng)抽象層:該層主要完成對不同操作系統(tǒng)之間的抽象,提供vxWorks和pSos兩個操作系統(tǒng)的統(tǒng)一接口,主要是同步、信號量、關(guān)鍵代碼的互斥保護機制等功能。
3. 通道及同步事件管理層:為了建立多處理器之間的多通道通訊和同步機制,該層支持多個通道獨立通訊能力,每個通道都有唯一的句柄用于訪問,通道的打開、使用、關(guān)閉相互獨立。該層同時也支持命名的同步事件,可用于處理器之間的同步等待功能。
4. 消息處理管理層:該層完成多通道的指定長度分組包通訊功能,支持小數(shù)據(jù)量的通訊數(shù)據(jù),并支持同步機制,DSP的控制指令可以采用這種方式進行通訊。
5. 共享緩存:支持多通道命名共享緩存,其中的數(shù)據(jù)可以同時被兩個處理器訪問,配合同步事件機制,流式數(shù)據(jù)可以采用這種方式進行高速、高效通訊。
6. 同步事件:支持多通道可命名的處理器之間的同步事件功能,ARM或DSP可以讓對方等待同步事件,用于精確控制同步處理共享資源。
7. RPC(遠程過程調(diào)用)層:在消息處理管理層和同步事件的基礎(chǔ)上,當(dāng)DSP處理器有時需要打印調(diào)試信息,或者讀取HOST的資源時,比如調(diào)用 printf、fopen、fread等標(biāo)準c輸入輸出函數(shù),通過該層處理后,ARM會調(diào)用相關(guān)函數(shù)完成指定的任務(wù),并將結(jié)果返回給 Trimedia1300。
在這里我們還要專門的描述的是位于硬件抽象層里的共享內(nèi)存,它只在HOST的一方存在,所有需要兩個處理器共享的數(shù)據(jù)都存儲在該區(qū)域里,包括高層的共享緩存、消息、同步事件、通道信息等數(shù)據(jù),因此需要主機維護物理連續(xù)的、一定大小的內(nèi)存,并且是處理器非cacheable的區(qū)域。
下面本文將描述典型的控制指令傳輸方式,具體的過程見圖-3
圖-3
過程說明:本端處理器作初始化,創(chuàng)建同步事件,打開消息通訊句柄, 同步事件用于讀取數(shù)據(jù)時任務(wù)阻塞,然后創(chuàng)建通訊數(shù)據(jù)包并且發(fā)送,發(fā)送例程將數(shù)據(jù)存儲在共享緩沖區(qū)內(nèi),最后觸發(fā)對方中斷。對端處理器進入中斷響應(yīng),首先中斷例程分析共享數(shù)據(jù)區(qū)的通訊數(shù)據(jù)狀態(tài),發(fā)現(xiàn)某通道有新的未處理數(shù)據(jù)后,將其拷貝至自己的私有內(nèi)存空間,并清理自己的共享數(shù)據(jù)區(qū)狀態(tài),然后釋放在等待中的通訊任務(wù)的信號量,使讀通訊數(shù)據(jù)包的任務(wù)解除阻塞狀態(tài),從私有數(shù)據(jù)區(qū)讀取通訊數(shù)據(jù)包并作相應(yīng)處理。
數(shù)據(jù)流通訊與數(shù)據(jù)包通訊類似,不過方法更簡單,在創(chuàng)建共享緩存和同步事件后,一方寫入數(shù)據(jù)后,出發(fā)同步事件,另一方等到同步事件解除后讀取數(shù)據(jù),效率很高而處理器開銷節(jié)省至最低。
處理器之間的同步事件功能可以有效地對共享資源進行保護,防止多處理器同時對某一個共享資源訪問,導(dǎo)致數(shù)據(jù)不完整。RPC(遠程過程調(diào)用)功能能方便的用于系統(tǒng)調(diào)試和利用主處理器資源,能方便產(chǎn)品的調(diào)試和功能開發(fā)。
以上是簡化的多處理器通訊模型,方法適用于大多數(shù)RISC+DSP的架構(gòu),另外為了實現(xiàn)該通訊機制,還必須先完成三個前提,下面將簡單對此進行描述。
1. 位于HOST的共享內(nèi)存必須是物理連續(xù)、非緩沖(none-cacheable)的一段內(nèi)存,否則,兩個處理器因為本身都帶有數(shù)據(jù)高速緩存,會使數(shù)據(jù)的完整性無法保障,因此需要對兩個處理器進行配置,對這段內(nèi)存的訪問關(guān)閉cache操作,具體操作過程不再贅述。
2. 在編譯Trimedia1300程序的時候,將指向共享內(nèi)存的指針設(shè)置為下載時解析,并且要將Trimedia1300的下載程序移植到vxWorks操作系統(tǒng),再下載解析該指針時將其指向ARM已分配給好的物理連續(xù)內(nèi)存,Trimedia1300程序開始運行后就可以立即對共享內(nèi)存初始化并進行通訊。
3. 該通訊協(xié)議以vxWorks的BSP(板級支持包)的方式提供接口,并創(chuàng)建標(biāo)準的vxWorks設(shè)備,便于安裝、使用。
該通訊規(guī)范已經(jīng)在實用化的商業(yè)多媒體機頂盒中運行,該產(chǎn)品的數(shù)據(jù)流量較大,對時延要求很高,控制命令非常密集,從總體評價來看,采用該通訊協(xié)議后,無論是其效率、延時、處理器占用時間、靈活性、穩(wěn)定性、可拓展性均獲得很好的表現(xiàn),希望本文也能對正在開發(fā)類似產(chǎn)品的人員起一定的提示作用,能加快相關(guān)產(chǎn)品的研發(fā)。 想繼續(xù)了解更多內(nèi)容,請點擊“重慶監(jiān)控”進行查詢。
2004-7-8
參考文獻:
Tornado Online Manuals by Windriver
Trimedia SDE Documents by Philips Semiconductor
pSOS Manuals by Integrated Systems, Inc.
S3c2510A User’s manuals by Samsung Electronics
PCI Local Bus Specification by PCI Special Interest Group
瀏覽次數(shù):4016時間:2013/11/12 15:09:08
熱點新聞更多
- 安裝監(jiān)控攝像頭還需求其他什么設(shè)備呢?2021/2/3 1
- 監(jiān)控攝像頭有哪些分類2021/1/26
- 網(wǎng)線和監(jiān)控線一樣嗎2020/12/8
- 監(jiān)控攝像頭哪個牌子好?2020/11/13
- 監(jiān)控攝像頭多少錢一個2020/10/26
- 隨處可見的監(jiān)控攝像2020/9/2 1
- 監(jiān)控攝像頭的區(qū)別分類2020/9/2 1
- 安裝監(jiān)控要求有哪些2020/8/24
- 樓宇小區(qū)等安保系統(tǒng)如何組成2020/8/24
- 攝像頭安裝環(huán)境應(yīng)該怎么選2020/8/13
- 安防監(jiān)控系統(tǒng)使用注意事項2020/8/13
- 對監(jiān)控系統(tǒng)故障的解決方法?2020/7/23
- 重慶購買網(wǎng)絡(luò)攝像機需要注意什么?2020/7/23
- 監(jiān)控安防系統(tǒng)常見問題及解決方法2020/7/15
- 智能小區(qū)安防防盜報警常見問題有哪些2020/7/15
- 白光攝像機和紅外攝像機的區(qū)別講解2020/7/3 9
- 影響網(wǎng)絡(luò)監(jiān)控攝像機帶寬的因素有哪些?2020/7/2 1
- 視頻監(jiān)控系統(tǒng)使用前注意事項和維護保養(yǎng)2020/7/1 1
- 民用監(jiān)控攝像機有哪些種類?2020/7/1 1
- 如何提高監(jiān)控攝像機防破壞能力?2020/6/30