冀峰
摘要:針對OMAP架構處理器中Linux操作系統(tǒng)無法滿足強實時性應用的技術難題,提出了一種通用可靠、實時性強的雙核通信設計方法。通過事件同步和自陷中斷的方式提高了處理器的響應速度,通過乒乓緩沖設計實現(xiàn)了數(shù)據(jù)的零拷貝,顯著提高了操作系統(tǒng)的實時響應速度和穩(wěn)定度,為雙核通信機制提供了一種標準化的設計方法,對于低成本、高性能無線終端的研制,具有積極的參考意義。
關鍵詞:OMAP架構;雙核通信;優(yōu)化
中圖分類號:TN912.3文獻標志碼:A文章編號:1008-1739(2022)01-56-4
0引言
隨著PDT及LTE等通信技術的日益成熟,基于無線通信方式的終端應用需求也變得越來越廣泛[1-2],其中,TI公司的OMAP架構是以DSP為基礎的開放式多媒體應用框架,采用雙核設計,把高運算性能的DSP核與控制性能強的ARM核結合起來,既可以實現(xiàn)多任務的調(diào)度管理,又可以滿足高算力的需求,在終端的設計中得到了廣泛應用[3-4]。
但是,針對無線通信而言,隨著時隙長度的縮小,其對空中接口的時延敏感度要求也更加嚴苛,因此,高可靠、低延遲的雙核通信機制設計成為制約終端業(yè)務性能的關鍵環(huán)節(jié)[5]。業(yè)內(nèi)相關的研究主要集中在2個方面:一是更換操作系統(tǒng),如采用美國風河公司的商用實時操作系統(tǒng)VxWorks來提高系統(tǒng)響應速度[6-7];二是新增Linux實時補丁,但是由于占用較多的系統(tǒng)資源,對通信終端的實時性與業(yè)務性能都有一定的影響[8-9]。
因此,研究和設計原生、可靠、實時性高的雙核通信方式,是提高無線終端業(yè)務性能、降低設計成本的重要手段[10]。
1基于OMAP架構的終端雙核通信設計
1.1基于OMAP架構的終端軟件架構設計
采用集成SoC的硬件設計模式,選取異構雙核工業(yè)級處理器OMAPLI38作為無線終端的主處理器。
在OMAP芯片的設計中,非實時性任務和系統(tǒng)控制工作由ARM核完成,實時性任務一般由DSP核完成。ARM核和DSP核分別承擔應用處理(AP)和基帶處理(BP)的相應功能,二者具有獨立的快速指令緩沖存儲器、數(shù)據(jù)快速緩沖存儲器和DRAM,并帶有存儲器管理單元。此外,芯片還設計了統(tǒng)一的時鐘電源控制單元控制,可對芯片獨立進行時鐘和電源管理。
基于上述芯片的功能和特性,無線終端軟件架構設計如圖1所示。
ARM核作為無線終端的主控處理器,主要完成人機交互、界面呈現(xiàn)、外設控制、呼叫控制及用戶配置等功能。DSP核作為協(xié)議棧Layer1和音頻信號處理器,主要完成協(xié)議物理層處理和音頻處理等功能,完成中頻信號采集、信令編解碼、底層協(xié)議解析、音頻和空口數(shù)據(jù)收發(fā)控制等功能。
ARM核與DSP核之間通過DSP/BIOSlink進行通信。無線終端功能設計如圖2所示。
在OMAP架構下,ARM核與DSP核通過DSP/BIOS實現(xiàn)了雙核的無縫連接。首先ARM內(nèi)核通過嵌入式Linux操作系統(tǒng)被開放,從而實現(xiàn)了外部應用通過操作系統(tǒng)API調(diào)用內(nèi)部資源的需求。同時,通過DSP/BIOS接口,使得DSP的內(nèi)部資源如ARM外設一樣,實現(xiàn)了整個芯片的資源共享。
1.2雙核通信機制及DSPLINK
OMAP架構的芯片中,DSPLINK組件提供了一套通用的API,從應用層抽象出ARM與DSP的物理連接特性。在ARM端,DSPLINK作為驅動層的一部分,用戶控件只需要調(diào)用DSPLINK組件提供的接口API就可以實現(xiàn)和DSP之間的通信。在DSP端,DSPLINK Driver是操作系統(tǒng)DSP/BIOS中驅動的一部分,只負責基于物理連接之上與ARM之間的交互。DSP端沒有提供基于組件DSPLINK的接口API,通信功能的發(fā)起是基于DSP/BIOS中的SIO,GIO,MSGQ等模塊來實現(xiàn)的。
1.3基于NOTIFY事件同步的雙核通信設計
在DSPLINK組件中,NOTIFY是作用于ARM和DSP雙核之間的通信事件,該事件可以同時傳遞32 bit的信息,一般作為核間通信的同步事件[11]。
在傳統(tǒng)的設計中,基于DSP/BIOS及DSPLINK,ARM與DSP的通信機制采用共享內(nèi)存的方式進行數(shù)據(jù)交換,同時選擇使用NOTIFY事件進行處理器間的信息同步和處理[12-13],雙核通信設計如圖3所示。
核間通信的共享內(nèi)存分配在DSP的RAM地址空間中,該地址空間物理上位于Shared Memory存儲器中。在ARM端,對共享內(nèi)存的讀寫采用PROC_write與PROC_read兩個接口API進行,在DSP端對共享內(nèi)存的讀寫采用物理內(nèi)存直接讀寫方式進行。
2雙核通信的緩沖及同步機制的優(yōu)化
由于ARM上運行的嵌入式Linux操作系統(tǒng)并不是一個實時操作系統(tǒng),因此在對實時性要求較高的通信設備中使用會受到較多限制,如在DSP核頻繁地向ARM核發(fā)起中斷時,可能出現(xiàn)響應不及時的情況。
以PDT無線數(shù)字集群通信終端為例,空口數(shù)據(jù)的時隙長度為30 ms,在實際的系統(tǒng)測試中,發(fā)現(xiàn)了多次的數(shù)據(jù)傳輸擁塞,導致空中接口的數(shù)據(jù)傳輸延遲、信令響應錯亂等問題。為提升無線終端的實時響應性能,設計做了如下改進。
2.1數(shù)據(jù)接收乒乓緩沖區(qū)切換
在接收空口數(shù)據(jù)側,由EDMA根據(jù)發(fā)送數(shù)據(jù)傳輸結束產(chǎn)生的內(nèi)部中斷事件,作為發(fā)送語音緩沖區(qū)乒乓切換的信號。在中斷服務程序中根據(jù)乒乓標志對EDMA的源地址進行重新配置,源地址指向新的緩沖區(qū),開始搬移新時隙的語音數(shù)據(jù);而聲碼器新解碼的語音數(shù)據(jù)則根據(jù)乒乓標志放到另外一個緩沖區(qū)。乒乓緩沖區(qū)設置如圖4所示。
同時,針對較大數(shù)據(jù)量的傳輸,將接收緩沖區(qū)內(nèi)的數(shù)據(jù)直接進行解碼處理,實現(xiàn)了數(shù)據(jù)的零拷貝,避免了內(nèi)存的2次讀取和復制,提高了空口數(shù)據(jù)的處理效率,空口數(shù)據(jù)處理的乒乓機制如圖5所示。
2.2自陷軟中斷
在DSPLINK中,通過NOTIFY組件的事件通知(Notification)注冊功能,DSP應用程序通過發(fā)送事件同步通知ARM處理器。但是在Linux操作系統(tǒng)層面,事件的優(yōu)先級要低于中斷,在實際測試中,存在CPU因調(diào)度繁忙而響應延遲的情況。
因此,本文通過將空口數(shù)據(jù)接收完成的事件觸發(fā)ARM核的高優(yōu)先級中斷,以此來提高響應的優(yōu)先級,在Linux內(nèi)核中,將NOTIFY事件與軟中斷類型HI_SOFTIRQ相關聯(lián),采用open_softirq(HI_SOFTIRQ,run_airdata_softirq)完成事件通知與中斷服務程序的綁定。
當NOTIFY事件產(chǎn)生時,內(nèi)核自動通過raise_softirq(HI_SOFTIRQ)觸發(fā)軟中斷,進而進行空口數(shù)據(jù)的實時處理。在該設計中,操作系統(tǒng)通過高優(yōu)先級系統(tǒng)調(diào)用的執(zhí)行使用戶程序陷入內(nèi)核,提高ARM核的處理優(yōu)先級,保證響應的實時性。
2.3雙核通信的維護接口設計
為保證無線終端在運行過程中的穩(wěn)定性及可靠性,設計中增加了相應的維護接口。
(1)心跳監(jiān)測接口(KeepAlive)
為保證ARM與DSP兩個獨立處理器之間的功能同步正常,需要設置系統(tǒng)心跳接口。本文共享內(nèi)存區(qū)開辟1個Word的空間,由DSP維護一個心跳計數(shù)器,按照接收空口時隙的數(shù)量進行計數(shù),用于ARM核和DSP核之間的心跳監(jiān)測。
(2)調(diào)試日志接口
基于DSPLINK的MSGQ接口,利用多線程實現(xiàn)DSP向ARM輸出日志的通道,由ARM核在低實時響應的條件下將調(diào)試日志輸出,避免了頻繁的日志輸出中斷對ARM核性能的影響,提供了全面的調(diào)試日志接口,解決了黑盒調(diào)試DSP的難題。
3試驗驗證
為驗證本文提出的雙核通信設計方法的可行性和有效性,在PDT窄帶無線數(shù)字集群終端上進行雙核通信實時性的相關試驗。在PDT的通信體制下,空口的時隙長度為30 ms,以此作為基準,通過測量集群終端處理器ARM端實際輸出的響應時間,來驗證雙核通信的實時性能。試驗結果如圖6和圖7所示。
圖6中,采用傳統(tǒng)的雙核通信方式,雙核之間通過NOTIFY事件同步,通過試驗結果可以看出,ARM端輸出的響應時間在30 ms上下波動,個別時刻抖動比較嚴重,峰值延遲達到5 ms左右,說明ARM核響應空中接口的實時性較差,無法保證持續(xù)、平穩(wěn)、及時地響應DSP核的時隙驅動節(jié)拍,特別是在ARM端的負荷較重、多任務并發(fā)調(diào)度的情況下,經(jīng)常會出現(xiàn)空口響應滯后,數(shù)據(jù)延遲等現(xiàn)象。
從圖7可以看出,采用改進的雙核通信方式,ARM端輸出的響應時間維持在30 ms,峰值波動范圍在±1 ms以內(nèi),相對于傳統(tǒng)的雙核通信方式,具有更好的連續(xù)性和平穩(wěn)度。試驗證明,基于該模式的設計,無線終端對于空口時隙驅動響應時間維持在較高的水平,基本達到了實時響應的要求。
4結束語
本文提出的雙核通信改進設計方法已經(jīng)在數(shù)字集群移動通信終端上完成工程應用,經(jīng)過長時間的實際使用,雙核之間的通信穩(wěn)定、可靠、實時性高,終端的通信效果良好,滿足OMAP架構下,DSP核與ARM核之間的大數(shù)據(jù)量、高頻度、強實時的通信要求。因此,改進后的雙核通信設計方法,為高性能、低成本的裝備和應用提供了設計思路,具有重要的工程參考意義。
參考文獻
[1]申梓昂.通信技術的應用與發(fā)展[J].通訊世界,2018(7): 106-107.
[2]劉洪玉.PDT警用數(shù)字集群技術發(fā)展及應用[J].信息安全與技術,2013,4(7):13-14,17.
[3]張貴庭.4G網(wǎng)絡發(fā)展的關鍵技術及前景[J].電子技術與軟件工程,2015(2):15-16.
[4]龍志偉.基于4G技術在數(shù)據(jù)通信中的應用與發(fā)展分析[J].通訊世界,2017(9):92-93.
[5]周創(chuàng)業(yè).基于OMAP-L138的DMR數(shù)字集群通信協(xié)議基帶設計[D].成都:電子科技大學,2016.
[6]林淦,劉建群,許東偉,等.OMAPL138的雙核通信設計[J].機床與液壓,2014,42(22):146-149,193.
[7]馮強,胡毅,于東,等.基于OMAP處理器的核間通信機制設計與實現(xiàn)[J].計算機工程,2014,40(4):281-286.
[8]楊劍波,趙東標,劉念.基于OMAP3530數(shù)控系統(tǒng)的雙核通信設計[J].電子技術應用,2015,41(9):33-35,38.
[9]羅云宜,奭陳,付威威,等.OMAP-L138核間通信高吞吐量圖像處理平臺及應用[J].單片機與嵌入式系統(tǒng)應用,2016,16(10):36-39.
[10]陳劍飛,劉勝旺.嵌入式虛擬化實時系統(tǒng)的研究與應用[J].機電信息,2019(24):54-55.
[11]盧一光.基于OMAP-L138的六關節(jié)噴涂機器人控制系統(tǒng)研究與開發(fā)[D].廣州:廣東工業(yè)大學,2020.
[12]葛科勇,陳堅,傅正財.基于直接中斷觸發(fā)的OMAP-L138雙核通信設計[J].現(xiàn)代電子技術,2018,41(21):16-20.
[13]付雪飛.基于OMAP-L138處理器的啟動驅動開發(fā)———雙核啟動NorFlash[J].數(shù)字技術與應用,2018,36(4):166-167.