- 1 -
中国科技论文在线
TD-LTE 系统并行处理方案研究
林云,牛凯**
作者简介:林云,(1987-),男,硕士,主要研究方向:移动通信。
通信联系人:牛凯,男,北京邮电大学信息与通信工程学院副教授,研究生导师,主要研究方向:移动通
信
(北京邮电大学信息与通信工程学院,北京 100876)
摘要:为了解决移动通信网络的升级维护、基站资源共享、基站选址及节能等问题,我们可5
以采用基带池技术,在通用处理器上实现 PHY层基带处理的软实现,而这项技术所面临的挑
战就是如何进行高速信号的实时处理,以满足信号处理的高吞吐率及低时延要求。本文中对
TD-LTE 系统中的并行处理方案作了相应的研究,并测试分析了该系统的性能。
关键词:信号与信息处理;TD-LTE;并行处理;SIMD;LUT
中图分类号:TN92 10
Research on Parallel Processing of TD-LTE System
LIN Yun, NUI Kai
(School of Information and Communications Engineering, Beijing University of Posts and
Telecommunications, Beijing 100876) 15
Abstract: To solve the problem of sharing resource among base stations, selection of station
location and energy conservation, we can use the base-band pool technology to complete the
base-band signal processing on platform base on general processor, while the challenge is the
real-time signal processing. In this paper, we descript the schedule and optimization mothod to
make the real-time processing of base band signal, and test the performance of the system. 20
Keywords: information and signal processing; TD-LTE; Parallel Processing; SIMD; LUT
0 引言
如今,LTE标准已接近完成,该系统支持最大 20MHz带宽,200Mbps的峰值速率和更
短的时延,是一项重大的革新[1]。此外,每一次技术的演变所带来的网络的升级都是一次更25
大的投入与挑战。基站的不断增多造成极大的电力消耗,据中国移动 2009年统计,近 5年
内基站数量从 20万个增加到 20万个,其电力消耗翻了一倍,达到 100亿人民币;基站资源
各自独立而不能共享资源,不能有效应对动态变化的网络负载,导致基站平均利用率过低,
浪费大量的电力及资源;密集部署的基站带来的干扰问题也将严重影响网络的规划和建设。
因此需要从无线接入网架构的优化方面寻求有效的解决方案。 30
为了解决上述问题,新的网络规划方案将试图采用软基站技术。软基站架构主要分为基
带处理单元 BBU(Building Base band Unit)与射频拉远单元 RRU(Radio Remote Unit)两
部分,它们之间通过光纤连接传输数据。
BBU 为一个集中的室内的中央处理单元,采用通用的处理器集群,通过软件处理完成
基站的基带信号处理工作。然而信号的软件处理相比传统的 DSP和 FPGA硬件处理,最大35
的局限性就在于信号处理的速率。由于单个计算单元(CPU)的处理速度已经无法再有质的
的提升,因此要应对 TD-LTE中高速信号的实时处理,就需要采用指令并行及多核并行等处
理方式,对信号处理过程进行优化,以达到 TD-LTE系统的高吞吐率低时延要求。
1 信号处理优化方法
在多核处理器上进行软件开发的主要问题在于如何充分挖掘并发性,同时在多个维度上40
- 2 -
中国科技论文在线
有效地利用多核计算资源。
为了满足 TD-LTE系统的吞吐率和时延性能,可以在采用多种不同级别的优化策略来提
升信号处理速率。充分利用多核 CPU架构,例如在算法级别上广泛采用查找预置表(Lookup
Table, LUT)的方法;在指令级别上可以使用 CPU的 SIMD 扩展指令;在模块级别可以考
虑多核上的处理流程划分,等等。 45
模块并行优化
模块级优化是将 TD-LTE信号的处理是分布在多核多 CPU上,根据各个基本处理单元
的运算需求和时延特性,进行合理的规划,从而在模块级别上提高系统实时性。
对于合理的模块规划,一方面可以通过组合归并吞吐率和时延要求较低的多个模块,降
低潜在的通信与同步开销;另一方面,对于运算量很大的模块,如果只在单个计算单元上处50
理,必然会以时间为代价,为了提高实时性,可以考虑将其分解为多个子模块,分布到多个
计算单元(其他 PC或其他 CPU/Core)上。
要合理的进行模块的划分就需要找出可以并发执行的串行代码,并将代码分解为多个并
行的任务,此时要新遵循以下原则[2]:
1) 任务数量最少应该等于线程(或者处理器核)的数量 55
2) 在每个任务中的计算量(即粒度)必须足够大,以弥补在管理这些任务和线程时付
出的开销。
对于 TD-LTE系统的中模块划分,可以按照数据的并行性,进行平行划分。本系统中对
于一个 TTI内有多个用户需要发送数据的情况,将每个用户的数据包即 TB块按其大小划分
为多组,使单个组的包大小总和与单个计算单元的处理能力尽量相匹配,然后由调度器分别60
将每个 TB块组调度到 CPU核上,进行 PHY层的基带处理。如下图所示:
图 1 多用户数据并行处理
此外,PHY层的基带处理也按照功能的并行性,进行流水线性的划分。对于 PHY层链65
路,根据各个模块的处理时延,将其部署在多个核上进行流水线处理,如下图所示:
- 3 -
中国科技论文在线
图 2 PHY层功能流水线并行处理
指令并行优化 70
并行信号处理的一种典型形式就是数据并行,即在不同的数据片上同时执行相同的处
理。这与 SIMD[3]并行计算和矢量计算模型是一致的。TD-LTE 系统的信号处理中存在大量
的数据并行性,即可将待处理的数据划分为若干个互不相关的并行的数据流向量,采用 SSE
指令同时对这多个数据流执行相同的运算。
SSE指令并行的关键在于,要将作相同操作的数据在内存中连续放置,在 TD-LTE中,75
多个用户可能具有某些相同的处理过程,这些过程中具有相同的指令流程,不同的是处理的
数据因各用户而不同。
本系统的信号处理过程中,数据多组织为 32 比特格式,这样对于对于 128 位的 XMM
寄存器,一次 SSE指令操作可同时处理 4个 32比特数据。如下图所示,有 4个用户,每个
用户依次要对各自的 6个位数据分别进行加、减、乘、除、指数、对数 6步操作。如果将每80
个用户各自的数据连续放置如下图左图所示,那么每次只能进行一个用户的一步操作,总的
操作步骤为 24步;而如果将各用户的数据间隔放置,而将具有相同操作的数据连续放置,
如下图右图所示,每一个 SSE指令可同时对 4个 32位的数据进行操作,那么总的操作步骤
只需要 6步,将处理的速度提高了 4倍。在本系统中,对于多个用户相同的信号处理过程,
均采用 SSE指令并行处理,对系统的处理效率有很大的提高。 85
图 3 SSE指令并行处理示意图
- 4 -
中国科技论文在线
缓存优化
不同于专用信号处理硬件,通用 CPU架构拥有大容量的高速缓存,例如 Intel的 Core 290
系列通用 CPU的二级缓存(L2)一般都有数兆(MB),读写时延也很低(10~20 cycles)。基于这
样容量可观的高速缓存空间,使用 LUT方法对某些处理的优化效果是相当显著的。
采用建立查找表(LUT)的方法来代替运行时的指数、对数等计算,可以大大的减少计
算的时间,根据数据的并行性对要处理的数据进行分组,然后利用 CPU的 SIMD指令实现
各分组数据的并行化处理,针对 SIMD能力进行合理的分组,可使优化效果最大化。 95
在 TD-LTE系统的信号处理中,会涉及到大量的数学计算,其中的除法运算、指数运算
以及对数运算是相当耗时的,本系统中采用查找表(LUT)方法,对这些每一种耗时的运算
建立一个 LUT表,在信号处理过程中频繁使用这些表时,CPU的缓存机制会将这些表导入
到 cache中,使每次对该表的访问时间大大减少,从而有效的提高的信号处理的效率,降低
了时延。 100
2 多核并行调度策略
由于处理能力有限,单个核的性能远远满足不了 TD-LTE系统的实时性要求,需要采用
多核、多 CPU 甚至多 PC 协作处理来完成系统的各项功能,因此有效调度通用计算资源,
满足系统实时性是建构软件信号处理系统的主要目标。
对于通信系统这种一个任务的多个处理模块之间的数据相关性较大的情况,可以将这多105
个模块分配到同一 PC 上的多个核中并行执行,它们之间的数据交互通过核间的同步 FIFO
完成。调度算法只需要根据任务的具体信息,如模块结构、各模块的计算量或计算时间、PC
上的计算资源等,将各模块的分配于多个核上,在整个任务执行期间,该分配方案是不变的,
不需要动态的对各个模块进行临时分配。该方法需要的额外开销是对 FIFO的读写操作,为
尽可以的降低此操作带来的时延,我们利用 L1/L2 Cache来对 FIFO进行优化,让需要频繁110
访问的数据能加载到 Cache中,以加快 FIFO的读写操作。同时这种方案在任务处理过程中
不需要进行各模块之间的调度工作,给调度算法的设计降低了一定的复杂度,也大大的减小
的调度的开销。调度过程如下图所示:
图 4 FIFO同步与计算资源调度 115
它将一个任务划分为 4个流水线模块,然后当需要处理该任务时,将这 4个流水线模块
- 5 -
中国科技论文在线
分配到 4个核上,核与 FIFO 直接相连,不再经过调度单元时实调度,它们可从 FIFO 中读
出数据,或向 FIFO 中写入数据。即使每个模块只处理很小的数据单元,各模块之间存在大
量而频繁的数据交互,该方法也能够很好的降低调度开销以及有效控制数据交互的开销。 120
3 操作系统实时性支持
由于一般的通用操作系统为多任务抢占式操作系统,其中的用户进程会被其它同优先级
进程或是系统进程抢占,计算资源在多个进程之间是由操作系统调度分配的,用户进程会因
无法独占固定的资源而被其它进程打断,从而严重影响其实时性,因此一般要获得实时性支
持都采用实时操作系统。但是实时操作系统并非实验环境下常用的操作系统,因此其安装、125
使用和管理都有许多不便。文献 sora[4]中指出了一种独占线程 ethread(exclusive thread)方
案,来实现线程执行的实时性。
通过创建内核线程并配置使其独占 CPU,可以实现实时线程支持。独占线程的创建必
须在系统内核中进行,否则,若采用用户线程,即使将其优先级的置于最高,也会被系统线
程或中断打断。一种创建内核线程的方法就是在驱动程序中调用相应的线程库来创建内核线130
程。在 Windows 操作系统下可以采用其驱动程序开发包 WDK 所提供的编程接口在驱动程
序中创建内核线程[5]。
在创建内核线程之后,为了实现其独占 CPU 核以到到实时处理的效果,还需要对该线
程作一些设置。
首先需要将其优先级设为实时优先级,实时优先级与普通优先级的最大区别在于相同优135
先级进程的运行不按照时间片轮转,而是先运行的进程就先控制 CPU核,如果它不主动放
弃控制,同级或低优先级的进程就无法运行。那么,也就是说如果我们让该线程一直有指令
执行,而不让其进行等待或睡眠等操作,那么系统就会让该线程一直在其相关联的 CPU 核
上运行,而不会让其它进程抢占。
其次还需要设置内核线程的中断请求级别。前面设置了内核线程的优先级只能保证其不140
被其它进程打断,但还是会被系统中的软中断和硬件中断打断而暂停,转去运行中断响应程
序,这在一定程序上也会影响线程的实时性。要让线程不受软中断影响需要设置其中断响应
级别 IRQL,将其 DISPATCH_LEVEL即可。设置好软中断之后,内核线程中会被硬件中断
打断,而实际情况下,硬件中断对线程实时性的影响不大,可以不予考虑,不过如果需要严
格让内核线程独占 CPU核,也可以在内核线程中屏蔽掉硬件中断。 145
最后还需要注意的是,IRQL处于 DISPATCH_LEVEL的线程不能访问分页内存。因为
当一个程序访问某段分页内存里的数据时,系统会产生一个中断中止该访问过程,然后执行
相应的中断响应程序将所要访问的那段分页内存调入实际的内存中,然后中断返回后继续执
行程序对该段内存中数据的访问操作。但是由于将内核线程的 IRQL 提高到
DISPATCH_LEVEL已经屏蔽掉其所有的软中断,因此当其访问到一段非分页内存,而又不150
能通过中断将该段分页内存调到实际内存中,就会导致系统崩溃。解决此问题的方法就是将
内核线程的代码以及其用到的数据全部加载到非分页内存中。
4 并行处理性能测试及分析
串行处理即为传统的通信系统仿真的处理方式,由单个进程依次完成一个基站内的信号
处理工作,由于 TD-LTE系统中的高速信号处理计算量非常大,串行处理的时延远远超出了155
系统的时延要求,因此串行处理只能用于系统的仿真,而若要实时对的信号进行处理,则需
- 6 -
中国科技论文在线
要采用并行的处理方式。
并行处理将单个基站内的处理过程按照前述模块并行优化方法,规划为多个并行处理的
模块,模块间及每个模块内部,将不同的模块分配到不同的核上进行处理,多个模块间可进
行并行的同步计算,同时也根据前述指令并行优化方法,实现不同数据相同操作之间的指令160
并行处理。
本文对单个基站的处理过程在不同核数量下的处理结果进行了测试,下图不同核数量
下,系统吞吐率与处理时间的关系图,该图指示了分别在单核串行,2、4、6核并行处理下,
对应不同的吞吐率所需要处理时延。
165
图 5 吞吐率-处理时间关系图
从上图可又看出对于某一种核数量情况下,当吞吐率增加时,其处理时延大致呈线性增
加,而对于不同核数量的情况,由于多核并行处理需要一定的同步及调度开销,因此,当传
输速率较小,即计算时间较小,此时调度开销所占比例较大,而多核处理并未体现出其优势;170
而当吞吐率增大时,相对于调度开销,计算时间逐渐占主要地位,此时核的数量的增加对计
算时间的减少就非常显著。
下面针对不同核数量,对于不同吞吐率,测试完成一个 TTI内的信息处理任务时,CPU
的平均利用率。
- 7 -
中国科技论文在线
175
图 6 吞吐率-CPU利用率关系图
上图可看出,当吞吐率小于 20时,4种情况均能在 1个 TTI时间内完成其信号处理,
但是由于多核情况下,会消耗较多的 CPU 时间用于多核的同步及调度,而对于用于信号处
理的 CPU 时间,单核情况下所占比例最高,此时单核处理为最佳选择;当吞吐率在 20 到180
40之时,单核已经无法在 1个 TTI时间内完成其信号处理,而剩下 3种情况,2核的 CPU
利用率最高,因此用 2 核来处理最佳;同理,当吞吐率在 40 到 70 之间时 4 核最佳,而在
70到 100之间时 6核最佳。
5 结论
本文为了辅助研究 TD-LTE基带池技术,给出了在通用多核处理器上实现 TD-LTE系统185
的信号并行处理方案,并分别测试了在核数量分别为 1,2,4,6下,不同传输速率下所需
要处理时延,以及在一个 TTI时间内完成其信号处理时的 CPU的利用率,对测试结果的分
析可以看出,由于多核并行处理存在同步及调度开销的原因,对于吞吐率较高的情况,适当
的增加核的数量可又有效的减少信号处理时延,而对于吞吐率较低的情况,使用单核处理性
能更佳;此外,对于吞吐率适中的情况,虽然适当增加核的数量也能有效的减少处理时延,190
然而却会降低 CPU 的平均利用率,造成资源的浪费,因此,可以采用资源动态分配,通过
根据各基站当前的吞吐率,对基带池中的资源的动态分配,从而实时基带池资源的高效利用。
[参考文献] (References)
[1] 沈嘉. 3GPP长期演进(LTE)技术原理与系统设计[M]. 北京:人民邮电出版社,2009. 195
[2] Clay Breshears. 并发的艺术[M]. 聂雪军. 北京:机械工业出版社,2010.
[3] Paul Cockshott, Kenneth Renfrew. SIMD Programming Manual for Linux and Windows[M]. Germany:
Springer, 2004
[4] Kun Tan. Sora: High Performance Software Radio Using General Purpose Multi-core Processors[A]. USENIX
Symposium on Network Systems Design and Implementation[C],2009. 75-90. 200
[5] 潘爱民. Windows内核原理与实现[M]. 北京:电子工业出版社,2010