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