朱志慧,陳 曈
(浙江音樂學(xué)院 公共基礎(chǔ)部,浙江 杭州 310024)
?
TERRA集群DSP Core平衡算法
朱志慧,陳 曈
(浙江音樂學(xué)院 公共基礎(chǔ)部,浙江 杭州 310024)
摘 要:TETRA系統(tǒng)基于DSP的硬件平臺中,信道編碼需要大量的運算,而且需要在1ms以內(nèi)完成。為了改進(jìn)DSP core的利用率,文章提出一種改進(jìn)的算法,該算法基于MPR,對于已分配好的編碼字在做新的分配之前,進(jìn)行簡單的core調(diào)整。論文描述了算法的實現(xiàn)以及如何分配PDSCH資源,與固定的資源分配的方法相比,對一些多用戶多流模擬結(jié)果顯示DSP core利用率得到了改進(jìn)。
關(guān)鍵字:DSP Core;傳輸塊大小;利用率
陸地集群無線電系統(tǒng)(TETRA),包括雙向無線電對講機、移動電話、字符報文傳送等方面,是面向下一代數(shù)字式移動通信的開放式標(biāo)準(zhǔn)之一。在TETRA系統(tǒng)中,信道編碼是由兩個DSP core完成的。而DSP不可能在每一個core上用一個編碼字來編碼全速率的數(shù)據(jù)[1],PDSCH分配過程中,調(diào)度者選擇調(diào)制編碼機制MCS為每個用戶選擇一定數(shù)量資源塊。要在每個邏輯信道上完成這個分配,同時邏輯信道最大數(shù)量為80,因此需要找到一種簡單有效的方法來實現(xiàn)core上負(fù)載的平衡,以使得兩個DSP core得到充分利用又不會出現(xiàn)過載的問題。
在TETRA系統(tǒng)中每個DSP core的編碼能力假定為MAX_ CORE_TBS。一個用戶僅使用一個編碼字,在DSP傳輸塊大小的能力范圍內(nèi),編碼字可以被分配到任何core上,而且兩個傳輸塊可以一起被分配到一個core上或者兩個不同的core,而且每個core上分配的傳輸塊不能大于MAX_CORE_ TBS。
目前現(xiàn)有兩種的簡單實現(xiàn)方法,一種為在選好MCS和一個編碼字的傳輸塊大小得到確定以后,在DSP達(dá)到MAX_ CORE_TBS之前,放編碼字到一個DSP core中,然后再試著放剩下的編碼字到另外一個core中。這個方法的缺點是一個編碼字的傳輸塊大小或許會超過DSP core的能力范圍,這樣就得重新選擇MCS。一個改進(jìn)的方法是在MCS選擇之前,記錄下比較大剩余的傳輸塊大小以及把它作為MCS重新選擇的限制條件。然而受限制的用戶有兩個編碼字,卻僅能把他們分配到一個core上,而不能同時使用兩個DSP core。
另外一個方法是,固定分配編碼字1給DSP core1和固定分配編碼字2給DSP core2。這樣就會造成:用戶僅有一個編碼字,core1總將給它編碼,卻不能充分利用core2[2]。對有著兩個編碼字的用戶來說,假如其中一個DSP core僅有少量的傳輸塊大小,另一個core有非常大的傳輸塊大小,卻都僅僅只能允許分配非常小的MCS以及得到非常少的傳輸塊大小。
2.1 改進(jìn)的算法
為了充分利用兩個DSP core,提出一種改進(jìn)的算法來解決現(xiàn)有方法中遇到的難題。假如提前分配好這些需要分配的編碼字以及使它適合下次分配的話,下次分配將變得相對容易。
圖1 core1少剩余以及core2多空余
對于僅有一個編碼字的用戶來說,僅需要兩個core擁有比較大傳輸塊大小的那個core。如圖1所示,Core1上大部分都已經(jīng)分配完了編碼字,而core2上有大量的空閑傳輸塊可以用于下次傳輸。
圖2 約等于MPR1/MPR2的core狀態(tài)
對于有兩個編碼字的用戶來說,需要兩個core剩余的傳輸塊大小TBScore1/TBScore2。它大約等于MPR1/MPR2。這是因為兩個編碼字有它們各自的信道質(zhì)量。根據(jù)信道質(zhì)量的不同,調(diào)度者將會為每個編碼字選擇不同編碼率。MPR是評估編碼率的參數(shù)。兩個編碼字將會使用相同的資源塊編號來進(jìn)行分配,因此它們分配的傳輸塊大小TBScw1/TBScw2基本上和MPR1/MPR2相同。例如,假如編碼字節(jié)1分配到X*MPR1字節(jié),編碼字2將分配到大約X*MPR2。圖2展示了預(yù)分配的結(jié)果:core1上空閑的傳輸塊大小和core2上空閑的傳輸塊大小比例大約為5/4,同時MPR1/MPR2 = 5/3。Core2將有少量的傳輸塊大小不能使用在下次分配上。假如core1上空閑的傳輸塊大小和core2上空閑的傳輸塊大小比例大約為5/3,它看似可能充分利用兩個core。
然而,事實上它也沒有充分利用core。因此,進(jìn)一步的優(yōu)化方案是必要的,同時提前分配算法不應(yīng)該太復(fù)雜,應(yīng)該容易實現(xiàn)才行。
2.2 實現(xiàn)方法
使用兩個list來記錄已經(jīng)分配給兩個core的編碼字。List按照它們分配的傳輸塊大小升序排列。假如下一個分配的用戶僅有一個編碼字,首先在list1上放所有的編碼字,直到core1超過了限制。然后再移動第一個編碼字(用最小的傳輸塊大?。┑絣ist2。提前分配可以使得core2擁有最大化的空閑傳輸塊大小,這樣方便下次傳輸。
假設(shè)下一個分配的用戶有兩個編碼字,首先運算空閑TBS1/空閑TBS2,同時比較MPR1/MPR2。如果開始時空閑TBS1/空閑TBS2 得到一個最小化的abs(FreeTBS1/FreeTBS2-MPR1/ MPR2) 雖然不是最完美的方法,但是它非常接近于完美。然而它也將花費一定運算時間。因為全部調(diào)度時間不應(yīng)該超過0.5ms,DSP還需要花費時間去做其他事情,所以必須做到時間和結(jié)果之間的平衡。 圖3 提前分配算法流程 TERRA系統(tǒng)有非常寶貴的傳輸塊大小資源。所以DSP完成編碼操作時充分利用資源就顯得非常重要。文章分析了現(xiàn)有的兩種DSP core上傳輸塊分配方法的缺點,提出了一種改進(jìn)的算法來解決未充分利用兩個DSP core的難題,同時在兩個DSP core利用率和確保未超過DSP core自身限制之間找到了很好的平衡。 [參考文獻(xiàn)] [1]朱延釗.一種語音混沌保密通信方案的DSP實現(xiàn)[J].計算機工程,2010(15):151-152. [2]趙繼勇.基于DSP的甚低速率語音編碼算法及其實現(xiàn)[J].計算機工程,2011(21):261-263. New TETRA Trunked Algorithm for DSP Core Balance Zhu Zhihui,Chen Tong Abstract:In TETRA system hardware platform based on DSP,the channel coding needs a great amount of calculation and should be finished within 1ms. It gives an algorithm to improve the DSP cores’ usage. The algorithm which is based on MPR attempts to do a simple core adjustment for already allocated codewords before doing the new allocation. It describes the procedure in detail,including the implementation and how it works with PDSCH resource allocation together. It also provides some simulation result under multi-Ue with multi flow situation compared with fix allocation to show how it improves the usage. Key words:DSP Core;transmit block size;usage 作者簡介:朱志慧(1982-),女,河南安陽。3 結(jié)語
(Zhejiang Conservatory of Music,Department of Public Infrastructure,Hangzhou 310024,China)