羅云宜,陳奭,付威威,周哲,馮馳
(1.南京理工大學電子工程與光電技術學院,南京210000;2.中國科學院蘇州生物醫(yī)學工程技術研究所)
OMAP-L138核間通信高吞吐量圖像處理平臺及應用
羅云宜1,2,陳奭2,付威威2,周哲2,馮馳1,2
(1.南京理工大學電子工程與光電技術學院,南京210000;2.中國科學院蘇州生物醫(yī)學工程技術研究所)
異構雙核芯片AMR+DSP具有強大的任務管理、人機交互和數(shù)據(jù)處理功能,為嵌入式圖像處理領域提供了一種新的架構。為了減少開發(fā)人員對底層驅動的設計,TI研發(fā)了Syslink驅動用于核間通信,包括Notify、MessageQ協(xié)議等,其中基于MessageQ的通信協(xié)議常用于核間圖像傳輸,但其占用資源較多、延遲高。本文對TI公司的達芬奇架構OMAP-L138處理器的多核通信理論進行研究,利用核間中斷寄存器和共享內存隊列存儲機制進行數(shù)據(jù)交互,實現(xiàn)了一種高吞吐量的圖像處理平臺。
OMAP-L138;核間通信;共享內存隊列機制設計
隨著電子技術和圖像處理技術的快速發(fā)展,數(shù)字圖像處理技術已廣泛應用于軍事、工業(yè)視覺、醫(yī)療器械、汽車和無人機等領域。實際應用中,考慮能夠運行復雜圖像處理算法和大數(shù)據(jù)量的傳輸作為圖像處理平臺穩(wěn)定運行的前提,采用PC機平臺能夠很好地滿足上述條件,但存在系統(tǒng)過于龐大和成本較高等缺點。因此,現(xiàn)階段基于ARM+ DSP異構雙核的嵌入式圖像處理平臺應運而生[1-2],能夠很好滿足對系統(tǒng)體積、功耗和實時性要求,充分發(fā)揮了ARM的任務管理、人機交互特性和DSP的高速數(shù)據(jù)處理特性。然而在異構雙核處理中,兩核的數(shù)據(jù)通信和同步變得尤為重要,采用德州儀器(TI)官方提供的Syslink[3]工具包能夠滿足系統(tǒng)的需要,但存在占用資源較多、延遲高的缺點。本文對TI一款低成本、性能較高的OMAPL138芯片的核間通信理論進行研究,提出了一種基于核間中斷和共享的內存通信方法,實現(xiàn)了一種高吞吐量的圖像處理平臺。
OMAP-L138雙核處理器包含ARM926EJ-S和TMS320C6748內核[4]。ARM926EJ-S采用增強的32位RISC指令集,內部采用多級流水線,加快了處理器的運算速率,ARM與DSP均采用了兩級高速緩存架構,二者均可獨立操作片載外設資源。本圖像處理平臺中,ARM負責進行人機交互和流程控制,DSP負責圖像數(shù)據(jù)的接收、處理及處理結果的發(fā)送。
1.1 系統(tǒng)組成
圖1所示為系統(tǒng)組成框架圖,OMAP-L138片上系統(tǒng)包含ARM核心及DSP核心各一個,并包含有常用接口(RS232,I2C,SPI等),用于系統(tǒng)擴展。
視頻信號經(jīng)VPIF接口(Video Port Inter Face)由DSP接收并進行處理,ARM與DSP雙核之間通過核間中斷和共享內存進行數(shù)據(jù)交互,然后ARM將接收到的處理結果傳輸?shù)饺藱C界面輸出處理結果,若系統(tǒng)需要,還可以將處理結果進行本地或遠程存儲。
圖1 系統(tǒng)框架圖
1.2 內存劃分
ARM與DSP雙核通信系統(tǒng)基于外部128 MB DDR,由于ARM端運行Linux系統(tǒng),DSP端根據(jù)需要運行SYSBIOS實時操作系統(tǒng)或裸機,其運行環(huán)境和數(shù)據(jù)都存儲在DDR中,因此需要進行DDR物理地址劃分,用于Linux系統(tǒng)、雙核通信共享內存以及DSP,如圖2所示。
圖2 內存分配
地址0xC200 0000到0xC2FF FFFF的16 MB空間用于雙核通信,根據(jù)需要包括通信組件和共享內存;地址0xC300 0000到0xC3FF FFFF空間用于DSP,其余空間用于Linux系統(tǒng)。
本系統(tǒng)中OMAP-L138處理器ARM端搭載Linux,通過Qt開發(fā)界面及流程處理程序;DSP端采用SYSBIOS實時系統(tǒng)或裸機程序用于算法處理[5-6]。
2.1 ARM軟件系統(tǒng)
圖3 Linux體系結構
由于Linux系統(tǒng)可以免費獲取、可自由裁減,具有出色的任務管理和人機交互界面,已廣泛應用于服務器和嵌入式領域。圖3為Linux體系結構圖,包括內核空間和用戶空間。其中,內核空間包括系統(tǒng)調用、內核和平臺架構相關代碼。用戶程序通過系統(tǒng)調用訪問內核資源和服務,同時通過內核來執(zhí)行平臺相關驅動代碼。
2.2 DSP軟件系統(tǒng)
2.2.1 基于Syslink核間通信
Syslink工具包是通用處理器ARM與DSP進行核間通信的驅動程序。Syslink有一套通用的API函數(shù),從應用層虛擬了ARM與DSP之間的物理連接,降低了程序開發(fā)的復雜度?;赟yslink的軟件架構圖如圖4所示。
圖4 基于Syslink軟件結構圖
圖像處理算法運行于DSP,通過Syslink來實現(xiàn)ARM 和DSP之間的通信與同步。核間通信模塊Syslink為處理器間通信提供了對等的軟件協(xié)議(如Notify、MessageQ 等)。MessageQ協(xié)議基于隊列,常用來傳輸視頻數(shù)據(jù)。
圖5所示為基于MessageQ的軟件代碼流程圖。
圖5 基于MessageQ的軟件代碼流程圖
軟件設計中,定義DSP處理器ID為0,ARM處理器ID為1,分別調用MultiPro_getID()得到對方的ID,然后通過Ipc_control()、Ipc_start()和Ipc_attach()來實現(xiàn)ARM與DSP的連接和握手,最后調用相關MessageQ的API實現(xiàn)雙核通信。
2.2.2 基于高吞吐量核間通信
OMAP-L138處理器提供了核間通信的消息觸發(fā)機制,本系統(tǒng)采用核間中斷寄存器和共享內存機制來實現(xiàn)雙核間數(shù)據(jù)的收發(fā)。設定CHIPSIG(中斷寄存器)和CHIPSIG_CLR(中斷清除寄存器)的0~1位為ARM中斷,2~4位為DSP中斷,通過置位相應位來產(chǎn)生硬件中斷。通過編寫中斷服務程序來處理接收到的消息,以建立握手協(xié)議。圖6為通信握手協(xié)議。
圖6 通信握手協(xié)議
通信握手協(xié)議建立以后,ARM和DSP端都獲得了共享內存基地址和圖像數(shù)據(jù)大小。如圖7所示,ARM和DSP端采用隊列形式實現(xiàn)圖像數(shù)據(jù)傳輸,采用單變量增減方式實現(xiàn)隊列資源計數(shù)。為了快速實現(xiàn)數(shù)據(jù)的存取,本文將共享地址前12字節(jié)作為全局共享數(shù)據(jù)結構,定義如下數(shù)據(jù)結構:
圖7 圖像數(shù)據(jù)隊列結構傳輸
msgCnt為隊列資源計數(shù)器,armCnt為ARM讀指針在共享內存中讀取圖像數(shù)據(jù)偏移量,dspCnt為DSP寫指針在共享內存中存放圖像數(shù)據(jù)偏移量。例如,設置隊列資源最大為10個,當DSP存放數(shù)據(jù)在第一個位置后,msgCnt加1同時觸發(fā)ARM核,DSP讀取一組數(shù)據(jù)后并觸發(fā)DSP,msgCnt減1,相應的armCnt和dspCnt加1,當有一個達到最大值10時,相應的指針回到原點,并清零相應的地址偏移計數(shù)器。
(1)通信機制設計
通信機制如圖8所示,圖像傳感器采集的視頻信號通過DMA通道傳輸?shù)紻DR,啟動Cache機制,加速DDR與1級、2級緩存之間的數(shù)據(jù)傳輸,DSP處理完成后將數(shù)據(jù)存放到共享內存的隊列中,同時將隊列資源計數(shù)器加1,然后觸發(fā)ARM核;ARM核根據(jù)資源計數(shù)器值大小讀取數(shù)據(jù)并觸發(fā)DSP,隊列資源計數(shù)器減1。
圖8 通信機制整體框圖
(2)ARM與DSP驅動設計
ARM端Linux系統(tǒng)由于受到保護機制的制約,不能直接訪問實際內存地址,可以通過虛擬內存映射機制來實現(xiàn)物理寄存器和共享內存基地址的間接訪問。觸發(fā)DSP中斷時,先將CHIPSIG寄存器地址虛擬映射到用戶空間,然后置位CHIPSIG[2]或CHIPSIG[3]為1,最后由硬件機制觸發(fā)DSP中斷,核心代碼如下:
映射成功后的虛擬地址可以直接賦值置位核間中斷寄存器,如:*virt_addr=1<<2。ARM端以輪詢方式查詢外部核間中斷寄存器值是否置1,最后根據(jù)read()的input event事件判斷是哪個中斷位,并作出相應的操作。
通過CMD文件配置,DSP程序可以直接訪問物理地址,將DSP處理后的數(shù)據(jù)直接放到共享內存中。DSP中斷需開啟DSP中斷、全局中斷、映射中斷函數(shù)到指定中斷號以便使能中斷等操作。其中DSP接收ARM的中斷處
理函數(shù)如下:
(3)軟件工作流程
軟件流程如圖9、圖10所示,雙核握手之后開始協(xié)同運行。與人機交互相關的全局變量Process_over控制整個軟件的運行,通過核間中斷觸發(fā)來控制msgCnt值,DSP 與ARM分別根據(jù)偏移量大小存放和讀取數(shù)據(jù)。
圖9 ARM端軟件流程
圖10 DSP端軟件流程
圖11為實驗所測得的數(shù)據(jù),可以看出,在傳輸圖像數(shù)據(jù)時,高吞吐量要比Syslink工具包中MessageQ組件節(jié)省大量的時間。在圖像為320×240×16位色分辨率時,對比Syslink與本系統(tǒng)實現(xiàn)的高速核間數(shù)據(jù)通信,其耗時相差3倍左右,隨著圖像分辨率和數(shù)據(jù)量的增加,系統(tǒng)延時差別逐漸減小,至1280×1024×16位色時,系統(tǒng)延時雖然十分接近,但仍然有接近3.7 ms左右的時差。因此,本方法實現(xiàn)的核間數(shù)據(jù)通信,非常適合突發(fā)式、大批次、小數(shù)據(jù)量的數(shù)據(jù)傳輸。
圖11 Syslink與高吞吐量時間延遲
為了滿足ARM與DSP核間通信數(shù)據(jù)延遲的需要,本文提出了一種自定義的核間通信方法,通過硬件中斷消息機制實現(xiàn)握手協(xié)議和數(shù)據(jù)傳輸協(xié)議。隨后,通過實驗對比可知,該方法比Syslink延遲要小得多,能夠滿足實時性的要求?;诤碎g觸發(fā)中斷機制和共享內存實現(xiàn)雙核通信,為更高端的異構芯片提供了一種方案,在工程上具有一定的應用價值。
[1]謝維波,賀文強.基于OMAPL138的視頻監(jiān)控煙霧檢測系統(tǒng)[J].計算機工程與應用,2015,51(20):183-187.
[2]馮強,胡毅,于東,等.基于OMAP處理器的核間通信機制設計與實現(xiàn)[J].計算機工程,2014,40(4):281-286.
[3]Texas Instruments.Building Syslink Applications Version 2. 21.01.05,2012.
[4]Texas Instruments.OMAP-L138 DSP+ARM Processor Technical Reference Manual,2011.
[5]趙加祥.DSP系統(tǒng)設計和BIOS編程應用實例[M].北京:機械工業(yè)出版社,2008.
[6]劉紀紅,葉檸,尚奎,等.DSP+ARM雙核處理器OMAPL138開發(fā)入門[M].北京:清華大學出版社,2013.
羅云宜(碩士研究生),主要研究方向為嵌入式系統(tǒng)與圖像處理應用;陳奭(助理研究員),主要研究方向為嵌入式系統(tǒng)與圖像算法研究;馮馳(碩士研究生),主要研究方向為嵌入式軟件與光學設計。
High-throughput Capacity Image-processing Platform Based on OMAP-Ll38 Inter-core Communication
Luo Yunyi1,2,Chen Shi2,Fu Weiwei2,Zhou Zhe2,Feng Chi1,2
(1.School of Electronic Engineering and Optoelectronic Technology,Nanjing University Science and Technology,Nanjing 210000,China; 2.Suzhou Institute of Biomedical Engineering and Technology Chinese Academy of Science)
The heterogeneous dual-core chip AMR+DSP has a powerful function of task management,human-computer interaction and data processing,which also provides a new framework for embedded image processing.In order to reduce the underlying driven design for developers,TI has developed Syslink driver for inter-core communications,including Notify,MessageQ protocols and so on,among which the communication protocol based on MessageQ is commonly used in inter-core image transmission design,but it has resource intensive and high latency.In the paper,we focus on the multi-core communication theory of OMAP-L138 processor which has the Da Vinci framework,taking advantage of the inter-core interrupt registers and the shared memory queue storage mechanism to realize the data interaction,and finally a high-throughput image processing platform is achieved.
OMAP-L138;inter-core communication;shared memory queue mechanism
TP317
A
(責任編輯:薛士然2016-05-09)