TERRA集群DSP Core平衡算法
2016-07-07朱志慧
朱志慧,陈 曈
(浙江音乐学院 公共基础部,浙江 杭州 310024)
TERRA集群DSP Core平衡算法
朱志慧,陈 曈
(浙江音乐学院 公共基础部,浙江 杭州 310024)
摘 要:TETRA系统基于DSP的硬件平台中,信道编码需要大量的运算,而且需要在1ms以内完成。为了改进DSP core的利用率,文章提出一种改进的算法,该算法基于MPR,对于已分配好的编码字在做新的分配之前,进行简单的core调整。论文描述了算法的实现以及如何分配PDSCH资源,与固定的资源分配的方法相比,对一些多用户多流模拟结果显示DSP core利用率得到了改进。
关键字:DSP Core;传输块大小;利用率
1 概述
陆地集群无线电系统(TETRA),包括双向无线电对讲机、移动电话、字符报文传送等方面,是面向下一代数字式移动通信的开放式标准之一。在TETRA系统中,信道编码是由两个DSP core完成的。而DSP不可能在每一个core上用一个编码字来编码全速率的数据[1],PDSCH分配过程中,调度者选择调制编码机制MCS为每个用户选择一定数量资源块。要在每个逻辑信道上完成这个分配,同时逻辑信道最大数量为80,因此需要找到一种简单有效的方法来实现core上负载的平衡,以使得两个DSP core得到充分利用又不会出现过载的问题。
在TETRA系统中每个DSP core的编码能力假定为MAX_ CORE_TBS。一个用户仅使用一个编码字,在DSP传输块大小的能力范围内,编码字可以被分配到任何core上,而且两个传输块可以一起被分配到一个core上或者两个不同的core,而且每个core上分配的传输块不能大于MAX_CORE_ TBS。
2 两种现有方法
目前现有两种的简单实现方法,一种为在选好MCS和一个编码字的传输块大小得到确定以后,在DSP达到MAX_ CORE_TBS之前,放编码字到一个DSP core中,然后再试着放剩下的编码字到另外一个core中。这个方法的缺点是一个编码字的传输块大小或许会超过DSP core的能力范围,这样就得重新选择MCS。一个改进的方法是在MCS选择之前,记录下比较大剩余的传输块大小以及把它作为MCS重新选择的限制条件。然而受限制的用户有两个编码字,却仅能把他们分配到一个core上,而不能同时使用两个DSP core。
另外一个方法是,固定分配编码字1给DSP core1和固定分配编码字2给DSP core2。这样就会造成:用户仅有一个编码字,core1总将给它编码,却不能充分利用core2[2]。对有着两个编码字的用户来说,假如其中一个DSP core仅有少量的传输块大小,另一个core有非常大的传输块大小,却都仅仅只能允许分配非常小的MCS以及得到非常少的传输块大小。
2.1 改进的算法
为了充分利用两个DSP core,提出一种改进的算法来解决现有方法中遇到的难题。假如提前分配好这些需要分配的编码字以及使它适合下次分配的话,下次分配将变得相对容易。
图1 core1少剩余以及core2多空余
对于仅有一个编码字的用户来说,仅需要两个core拥有比较大传输块大小的那个core。如图1所示,Core1上大部分都已经分配完了编码字,而core2上有大量的空闲传输块可以用于下次传输。
图2 约等于MPR1/MPR2的core状态
对于有两个编码字的用户来说,需要两个core剩余的传输块大小TBScore1/TBScore2。它大约等于MPR1/MPR2。这是因为两个编码字有它们各自的信道质量。根据信道质量的不同,调度者将会为每个编码字选择不同编码率。MPR是评估编码率的参数。两个编码字将会使用相同的资源块编号来进行分配,因此它们分配的传输块大小TBScw1/TBScw2基本上和MPR1/MPR2相同。例如,假如编码字节1分配到X*MPR1字节,编码字2将分配到大约X*MPR2。图2展示了预分配的结果:core1上空闲的传输块大小和core2上空闲的传输块大小比例大约为5/4,同时MPR1/MPR2 = 5/3。Core2将有少量的传输块大小不能使用在下次分配上。假如core1上空闲的传输块大小和core2上空闲的传输块大小比例大约为5/3,它看似可能充分利用两个core。
然而,事实上它也没有充分利用core。因此,进一步的优化方案是必要的,同时提前分配算法不应该太复杂,应该容易实现才行。
2.2 实现方法
使用两个list来记录已经分配给两个core的编码字。List按照它们分配的传输块大小升序排列。假如下一个分配的用户仅有一个编码字,首先在list1上放所有的编码字,直到core1超过了限制。然后再移动第一个编码字(用最小的传输块大小)到list2。提前分配可以使得core2拥有最大化的空闲传输块大小,这样方便下次传输。
假设下一个分配的用户有两个编码字,首先运算空闲TBS1/空闲TBS2,同时比较MPR1/MPR2。如果开始时空闲TBS1/空闲TBS2 得到一个最小化的abs(FreeTBS1/FreeTBS2-MPR1/ MPR2) 虽然不是最完美的方法,但是它非常接近于完美。然而它也将花费一定运算时间。因为全部调度时间不应该超过0.5ms,DSP还需要花费时间去做其他事情,所以必须做到时间和结果之间的平衡。 图3 提前分配算法流程 TERRA系统有非常宝贵的传输块大小资源。所以DSP完成编码操作时充分利用资源就显得非常重要。文章分析了现有的两种DSP core上传输块分配方法的缺点,提出了一种改进的算法来解决未充分利用两个DSP core的难题,同时在两个DSP core利用率和确保未超过DSP core自身限制之间找到了很好的平衡。 [参考文献] [1]朱延钊.一种语音混沌保密通信方案的DSP实现[J].计算机工程,2010(15):151-152. [2]赵继勇.基于DSP的甚低速率语音编码算法及其实现[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 结语
(Zhejiang Conservatory of Music,Department of Public Infrastructure,Hangzhou 310024,China)