ARM11的TD-LTE多模基帶平臺中的跟蹤技術(shù)分析
2.3 傳輸控制機制
實時跟蹤系統(tǒng)通過串口在PC端和ARM子系統(tǒng)之間進行通信,采用DMA總線控制器進行跟蹤信息搬移。DMA是一種不經(jīng)過ARM處理器的CPU,可直接從內(nèi)存中存取數(shù)據(jù)的數(shù)據(jù)交換模式。在DMA模式下,CPU只需向DMA總線控制器下達指令,就可使其處理數(shù)據(jù)的傳送,接收數(shù)據(jù)傳送完畢的反饋信息,從而大大降低了CPU資源占有率。傳輸控制單元采取DMA同步中斷發(fā)送跟蹤信息,每次以等長字節(jié)傳輸,將跟蹤信息搬移至串口發(fā)送寄存器中,再通過配置串口發(fā)送寄存器,將跟蹤信息發(fā)送至PC端解析顯示單元。
3 優(yōu)化后跟蹤方案
3.1 新跟蹤緩存的管理
本設(shè)計方案采用的緩存機制是利用所有跟蹤函數(shù)在進入跟蹤時,均能夠確切知道當(dāng)前跟蹤信息所需存儲空間長度的特點,為當(dāng)前跟蹤信息預(yù)留出所需要的存儲空間。當(dāng)?shù)蛢?yōu)先級任務(wù)的跟蹤信息被高優(yōu)先級任務(wù)跟蹤信息搶占時,內(nèi)存中已經(jīng)為低優(yōu)先級任務(wù)的跟蹤信息預(yù)留了存儲空間,不會導(dǎo)致跟蹤信息丟失和錯亂的情況,新緩存機制圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/148383.htm
通過維護兩個寫索引和一個全局讀索引來管理緩存,其中兩個寫索引分別為全局寫索引和當(dāng)前寫索引,全局寫索引用來與全局讀索引進行匹配,通過這兩個索引來計算緩存的剩余空間和已用空間,從而判斷何時發(fā)送和寫入跟蹤信息;而當(dāng)前寫索引的作用就是為當(dāng)前的跟蹤信息預(yù)留空間。在本設(shè)計中摒棄了svnprintf函數(shù),采用memcpy函數(shù)直接將跟蹤信息寫入緩存中,并且采用固定參數(shù)的跟蹤接口,跟蹤源根據(jù)跟蹤信息的不同需求,調(diào)用相應(yīng)變量的跟蹤接口。
3.2 新跟蹤控制機制
新跟蹤控制機制的所有控制都由各個模塊的跟蹤源以函數(shù)宏定義的形式對跟蹤接口進行重新封裝,將跟蹤信息的判斷放在跟蹤接口的外部。跟蹤控制的場景不再進行詳細的劃分,考慮采用橫向和縱向兩個方面來對跟蹤進行控制。橫向的控制通過對跟蹤信息的重要程度來劃分,包括全開放、半開放、速率測試、用戶釋放和測試終端等方面;縱向的控制是系統(tǒng)中各個模塊的跟蹤信息的控制,當(dāng)開發(fā)人員需要查看某個或某些模塊的跟蹤信息時,通過設(shè)置相應(yīng)的值來輸出預(yù)想模塊的跟蹤信息。新跟蹤控制圖如圖5所示。
4 性能對比分析
通過原始跟蹤方案與新跟蹤方案的性能測試與對比分析得出,新跟蹤方案提高了ARM執(zhí)行效率表現(xiàn)在3個方面:
①在跟蹤控制方面,原始跟蹤方案的跟蹤控制過于細致,跟蹤判斷過程過于復(fù)雜繁瑣,多層的switch…case嵌套判斷消耗了一些處理器的時間;新跟蹤的控制采用跟蹤接口外部控制,若當(dāng)前跟蹤不需要打印時,則當(dāng)前任務(wù)不會進入跟蹤接口,直接丟棄本條跟蹤,這樣避免了函數(shù)上下文切換的過程,減少了任務(wù)棧的切換,從而提高了執(zhí)行效率。
②緩存管理方面,原始跟蹤方案采用嵌套緩存,高優(yōu)先級任務(wù)的跟蹤信息寫入嵌套緩存中,當(dāng)需要輸出跟蹤信息時,需要將嵌套緩存中的數(shù)據(jù)回拷到全局跟蹤信息緩存,在回拷的過程中白白地消耗了處理器的時間。而新跟蹤緩存中,將所有的跟蹤信息全部存儲到一個緩存中,直接將跟蹤信息輸出,節(jié)省了回拷過程的時間,從而為處理器處理其他事件提高了效率。
③新跟蹤方案在跟蹤接口內(nèi)部摒棄了svnprintf函數(shù),直接將跟蹤數(shù)據(jù)memcpy轉(zhuǎn)移到跟蹤緩存中。原始方案中,跟蹤數(shù)據(jù)的原始碼流通過svnprintf函數(shù)在ARM內(nèi)部進行字符串的轉(zhuǎn)化過程,再通過PC端的解碼軟件來解析原始碼流,從而轉(zhuǎn)化成可見字符串,省去了函數(shù)遍歷參數(shù)的過程(該過程消耗了ARM的執(zhí)行時間)。從變參的跟蹤接口優(yōu)化成定參跟蹤接口,這種方式大大地提高了ARM的執(zhí)行效率。
對于兩種跟蹤方案的測試分析,采用調(diào)用一條相同的跟蹤信息所消耗的TD-LTE中一個子幀的時間片來統(tǒng)計時間,從而對比原始跟蹤方案與新跟蹤方案的效率提高程度。TD-LTE的一個無線幀長為10 ms,一個無線子幀又分為兩個5 ms的半幀,每個半幀中有5個1 ms子幀,每個子幀有0x7800個時間片。
跟蹤性能分析圖如圖6所示,在原始跟蹤方案中調(diào)用5次跟蹤接口打印字符串”ts_00_tra01_01tdynamicTrace01”及相應(yīng)個數(shù)的變量的值,跟蹤信息消耗的時間為T_old=(0x5679-0x481C)×(1/0x7800)=0.119 7 ms。在新跟蹤方案中,同樣調(diào)用5次新跟蹤方案,跟蹤接口打印同樣字符串的內(nèi)容及相應(yīng)個數(shù)的變量的值,跟蹤信息消耗的時間為T_new=(0x4809-0x4188)×(1/0x7800)=0.052 6 ms。由此可見,T_old的消耗時間大約是T_new的2倍,新跟蹤方案節(jié)省了一半以上的時間,然后又多次對各種跟蹤接口進行驗證、測試、對比后,再次確認了新跟蹤方案對ARM的執(zhí)行效率有很大的提高。
結(jié)語
在多?;鶐У母櫡桨钢?,由于跟蹤的傳輸通道只有一個,不能在不同的系統(tǒng)模式下采用不同的跟蹤方案,并且TD_LTE多模方案中不僅要求跟蹤信息的可靠性、時序性和正確性,對跟蹤方案在ARM子系統(tǒng)中的執(zhí)行效率也有所要求,不能影響TD-LTE的高速率的業(yè)務(wù)需求。綜上考慮,本項目中采用新的跟蹤方案可以滿足TD-LTE多?;鶐脚_下ARM子系統(tǒng)的執(zhí)行效率要求和數(shù)據(jù)業(yè)務(wù)的速率要求。
評論