论文部分内容阅读
摘要:长期演进(LTE)系统对调度时延提出了非常严格的时间要求,并且LTE的空口速率很大,这对处理基带部分的器件提出了非常高的要求,原来的单核处理器已经不能满足系统的需求。本文利用多核处理器实现LTE上行解调、译码的并行处理,并设计了多核并行处理方法,通过测试结果的分析,这种方法取得了很好的效果。
关键词:LTE;PUSCH 信道;解调;译码;多核处理器
Abstract: Long Time Evolution (LTE) is strict with the system processing time, and the peak uplink and downlink speed of air interface is very high, so the requirements for the baseband processing chip are high. The use of three-core processor could be 2.6 times faster than single-core processor, it is shown that the LTE uplink demodulation and decoding time is greatly reduced by multi-core parallel processing.
Key words:LTE; PUSCH channel; demodulate; decode; multi-core processor
长期演进(LTE) 为3G的长期演进,根据LTE协议中对于上行混合自动重传请求(HARQ)时延的要求,eNodeB从接收完物理上行共享信道(PUSCH)子帧到下行开始发送相应的数据包译码正确(ACK)或数据包译码错误(NACK)响应的时间为3 ms。经过测试,如果直接利用单核处理器来串行处理上行的解调、译码,在用户设备(UE)类型为能力级5(Category5),传输块(TB)大小为75 056 bit,上行采用虚拟多输入多输出(MIMO),空中接口流量达到150 Mb/s时,总的处理时延将无法满足协议要求。因此,为了减小处理时延,考虑利用多核处理器来进行并行处理上行解调和译码,缩短处理时间以满足协议规定的3 ms的处理时延。[1-6]
1 多核处理器架构和原理
1.1 多核处理器架构
多核处理器技术是最近CPU设计中的一项新兴技术,它把两个或两个以上的处理器核集成在一块芯片上,以增强芯片的处理能力。本文用到的多核处理器将3个处理器核(Core)集成在1枚芯片上,各个处理器核之间共享内存和其他外部设备,3个处理器核分别叫作Core0、Core1、Core2,每个处理器核上都设置有独立的高速二级缓存,以减小多核处理器在并行访问内存时的瓶颈效应。对任何共享资源(例如DDR2中的某一段共享代码或数据)均可以通过信号量来实现多核之间的共享和互斥。每一个处理器核上都运行一个独立的实时操作系统(RTOS),而各个处理器核之间通过信号量进行通信。运行在一个处理器核上的任务可以和运行在同一处理器核上的任务通信,这样,任务间就可以通过协同通信来完成特定的应用。而通过将应用划分为不同的可以并行运行的任务而运行在不同的处理器核上,就可以并行地处理数据,从而达到提高系统处理能力的目的。
1.2 多核并行处理原理分析
在单核中进行的串行处理如何转换为多核中进行的并行处理呢?假定串行处理分为3个模块A、B、C,单核处理3个模块的时间为T1、T2、T3,如果采用多核并行处理,可以采用的方法包括以下几种。
1.2.1 流水线方式
A、B、C这3个模块分别在Core0、Core1、Core2处理。
将A模块分解成子过程A1、A2、A3,B模块分解成子过程B1、B2、B3,C模块分解成C1、C2、C3子过程,A模块每处理完一个子过程就交给B模块处理,然后B模块每处理完一个子过程再交给C模块处理,这样形成流水处理方式,流水图样如图1所示。流程后面处理的核不用等到前面处理的核把这个模块做完才开始处理,而是前面一个核在完成模块的一个子过程后就交给下个核进行处理,这样就可以流水起来,达到并行处理的目的。
1.2.2 分布式处理
每个Core都处理A、B、C模块,对于一个UE,在单个Core对A、B、C模块的处理满足时延要求时,把一个UE的A、B、C 模块在Core0、Core1、Core2上进行分布式处理。由于每个Core都处理A、B、C模块,那么可以把多个UE分在不同的Core上进行负荷分担,达到并行处理的目的。处理图样如图2所示:
图2中(a)和(b)的区别在于:(a)图中模块B需要等模块A的所有子过程处理完之后才能处理,(b)图中模块A和模块B可以同时进行。
2 LTE PUSCH信道解调译码多核并行处理分析和设计
2.1 PUSCH信道介绍
PUSCH用于传输业务数据,多UE共享,通过媒体接入控制(MAC)调度器来进行调度。
在UE侧,PUSCH信道的处理流程如图3所示。
PUSCH信道的解调译码流程如图4所示。
2.2 系统时延要求
2.2.1 LTE上行HARQ处理时延要求
LTE在混合自动重传请求(HARQ)的上行,由于HARQ 是同步的,eNodeB在收到上行共享信道(UL-SCH)的数据包后,经过信道估计、MIMO解码、离散傅里叶逆变换(IDFT)、解调、译码等,然后在给定的时间在空中接口下ACK或NACK,eNodeB处理的所有时间为3 ms。
2.2.2 单核的测试情况
采用单核处理器,处理器CPU主频为1 GHz。测试例为:一个20 MHz带宽的小区,1 200个子载波,eNodeB有4天线接收,UE由2天线发射,上行接收采用虚拟MIMO,即4×2的MU-MIMO, 2个码字, 传输块的大小为75 056 bit,采用64QAM调制方式,峰值流量为150 Mb/s。测试数据如表1所示,总的时间为5.92 ms,大于给定的3 ms的处理时间,所以采用单核的处理器已经不能满足系统的时延要求。
2.3 解调译码多核并行处理可行性分析
对于解调,可以从时域按照调制符号来进行多核之间的拆分,不必等到所有调制符号都得到就可以开始处理。
对于解扰,可以从时域按照软比特来进行多核之间的拆分,每个核都需要产生整个扰码序列,不必等到所有软比特都得到就可以开始处理。
对于控制和数据解复用,多核之间的拆分只能按照用户来进行,不同的用户可以在不同的Core上处理。将同一个用户的解复用分到不同的核上处理实现复杂度非常高,并且由于解复用的过程还包含一个传输间隔(TTI)内不同SC-FDMA符号之间的解交织,因此必须是在一个TTI收齐之后才能开始处理。
对于解速率匹配,多核之间的拆分可以按照码块进行,即不同的用户可以在不同的Core上处理,同一个用户的不同码块也可以在不同的Core上处理。
对于编码块CRC校验,多核之间的拆分可以按照码块进行,即不同的用户可以在不同的Core上处理,同一个用户的不同码块也可以在不同的Core上处理。某个编码块译码完成之后就可以进行编码块CRC,不必等待所有码块都译码完成。
对于码块连接,多核之间的拆分只能按照用户来进行,同一个用户只能在一个Core上处理。某个编码块译码完成之后就可以进行码块连接,不必等待所有码块都译码完成。
对于传输块CRC校验,多核之间的拆分只能按照用户来进行,同一个用户只能在一个Core上处理。只能等待所有码块都译码完成才能开始处理。
2.4 多核解调译码并行处理设计
解调译码并行处理如图5所示。
Core0作为调度核,Core1和Core2为非调度核。调度核调度的原则是:新增用户如果需要的处理资源不超过单核的限制,按照UE进行在各个Core间进行负荷分担;新增用户需要的处理资源超过单核处理能力,对占用资源最大的用户进行子过程分解进行并行处理。
2.4.1 调度核处理方案
对每个处理函数,以ProcessFunc为例,再外包一层ProcessDispatch函数,调度核Core0的ProcessDispatch函数的流程图如图6所示。
首先对该Process进行调度,如果Core0可以自己完成,那么直接调用ProcessFunc函数处理。如果需要分派,则将参数打包放到Core1和Core2的参数池内,通知Core1和Core2开始处理,同时调用Core0的ProcessFunc处理分派给自己的部分,然后Core0等待收集处理完的数据,收集齐之后ProcessFunc处理完毕。
2.4.2非调度核方案
非调度核增加一个优先级较高的任务DispatchTsk,专门处理调度核Core0分派的子过程,该任务由调度核触发。DispatchTsk从参数池内取出ProcessFunc的入口参数,调用ProcessFunc函数处理,完成后将该子过程设置完成标志,并通知调度核Core0。为了减少调度核Core0的等待时间,将DispatchTsk的优先级设置成比本核的业务处理任务高,使DispatchTsk得到及时响应。在DispatchTsk没有得到控制权时,非调度核处理本核的业务处理任务。这一处理流程如图7所示。
3 结果分析
以解速率匹配为例进行单核串行和多核并行处理测试,测试数据如表2所示。
表2的测试数据表明采用3核并行处理,可以得到大部分情况下多核比单核处理快2.6倍以上的处理速度,可见利用多核进行并行处理可以大大的缩短LTE上行解调、译码的处理时间。这种多核并行处理的方法也为无线通信系统的设计提供了一种新的思路。
4 结束语
将来的通信系统要求能支持的空中接口峰值速率越来越大,而对系统处理的处理时延要求却越来越短,如何提高系统的处理速度和处理能力,降低系统的处理时延是通信系统的一个关键[7-12]。本文分析了多核并行处理思路,提出了一种利用多核处理器架构来进行LTE 上行解调和译码并行处理的方法,解速率匹配的测试结果表明,这种设计方法取得了很好的效果。
5 参考文献
[1] 3GPP TSG RAN1#50bis.Timing and HARQ [S]. 2007.
[2] 3GPP TS36.212 v8.1.0. Multiplexing and Channel Coding[S]. 2007.
[3] 3GPP TS36.211 v8.1.0. Physical Channels and Modulation[S]. 2007.
[4] 3GPP TS36.201 v8.1.0. Physical Layer: General Description[S]. 2007.
[5] 3GPP TS36.204 v8.0.0. Base Station (BS) Radio Transmission and Reception[S].2007.
[6] 3GPP TS36.306 v8.0.0. User Equipment (UE) Radio Access Capabilities[S]. 2007.
[7] 佟学俭,同涛. OFDM移动通信技术原理与应用[M]. 北京:人民邮电出版社,2000.
[8] 曹志刚,钱亚生. 现代通信原理[M].北京:清华大学出版社,1992.
[9] TANENBAUM A S.现代操作系统[M]. 陈向群,等译. 北京:机械工业出版社,1999.
[10] HOLMA H, TOSKALA A. WCDMA for UMTS-HSPA evolution AND LTE[M]. 4th ed. New York,NY,USA:John Wiley & Sons ltd, 2007.
[11] 王念旭. DSP 基础与应用系统设计[M].北京:北京航天航空大学出版社,2001.
[12] 申敏,郑建宏,刘栋. DSP原理及其在移动通信中的应用[M].北京:人民邮电出版社,2001.
收稿日期:2008-02-22
张自然,毕业于电子科技大学。现任中兴通讯股份有限公司高级工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。已发表论文5篇,提交专利2篇。
李俊,毕业于华中科技大学。现任中兴通讯股份有限公司高级工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。
李长啸,毕业于电子科技大学。现任中兴通讯股份有限公司工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。
关键词:LTE;PUSCH 信道;解调;译码;多核处理器
Abstract: Long Time Evolution (LTE) is strict with the system processing time, and the peak uplink and downlink speed of air interface is very high, so the requirements for the baseband processing chip are high. The use of three-core processor could be 2.6 times faster than single-core processor, it is shown that the LTE uplink demodulation and decoding time is greatly reduced by multi-core parallel processing.
Key words:LTE; PUSCH channel; demodulate; decode; multi-core processor
长期演进(LTE) 为3G的长期演进,根据LTE协议中对于上行混合自动重传请求(HARQ)时延的要求,eNodeB从接收完物理上行共享信道(PUSCH)子帧到下行开始发送相应的数据包译码正确(ACK)或数据包译码错误(NACK)响应的时间为3 ms。经过测试,如果直接利用单核处理器来串行处理上行的解调、译码,在用户设备(UE)类型为能力级5(Category5),传输块(TB)大小为75 056 bit,上行采用虚拟多输入多输出(MIMO),空中接口流量达到150 Mb/s时,总的处理时延将无法满足协议要求。因此,为了减小处理时延,考虑利用多核处理器来进行并行处理上行解调和译码,缩短处理时间以满足协议规定的3 ms的处理时延。[1-6]
1 多核处理器架构和原理
1.1 多核处理器架构
多核处理器技术是最近CPU设计中的一项新兴技术,它把两个或两个以上的处理器核集成在一块芯片上,以增强芯片的处理能力。本文用到的多核处理器将3个处理器核(Core)集成在1枚芯片上,各个处理器核之间共享内存和其他外部设备,3个处理器核分别叫作Core0、Core1、Core2,每个处理器核上都设置有独立的高速二级缓存,以减小多核处理器在并行访问内存时的瓶颈效应。对任何共享资源(例如DDR2中的某一段共享代码或数据)均可以通过信号量来实现多核之间的共享和互斥。每一个处理器核上都运行一个独立的实时操作系统(RTOS),而各个处理器核之间通过信号量进行通信。运行在一个处理器核上的任务可以和运行在同一处理器核上的任务通信,这样,任务间就可以通过协同通信来完成特定的应用。而通过将应用划分为不同的可以并行运行的任务而运行在不同的处理器核上,就可以并行地处理数据,从而达到提高系统处理能力的目的。
1.2 多核并行处理原理分析
在单核中进行的串行处理如何转换为多核中进行的并行处理呢?假定串行处理分为3个模块A、B、C,单核处理3个模块的时间为T1、T2、T3,如果采用多核并行处理,可以采用的方法包括以下几种。
1.2.1 流水线方式
A、B、C这3个模块分别在Core0、Core1、Core2处理。
将A模块分解成子过程A1、A2、A3,B模块分解成子过程B1、B2、B3,C模块分解成C1、C2、C3子过程,A模块每处理完一个子过程就交给B模块处理,然后B模块每处理完一个子过程再交给C模块处理,这样形成流水处理方式,流水图样如图1所示。流程后面处理的核不用等到前面处理的核把这个模块做完才开始处理,而是前面一个核在完成模块的一个子过程后就交给下个核进行处理,这样就可以流水起来,达到并行处理的目的。
1.2.2 分布式处理
每个Core都处理A、B、C模块,对于一个UE,在单个Core对A、B、C模块的处理满足时延要求时,把一个UE的A、B、C 模块在Core0、Core1、Core2上进行分布式处理。由于每个Core都处理A、B、C模块,那么可以把多个UE分在不同的Core上进行负荷分担,达到并行处理的目的。处理图样如图2所示:
图2中(a)和(b)的区别在于:(a)图中模块B需要等模块A的所有子过程处理完之后才能处理,(b)图中模块A和模块B可以同时进行。
2 LTE PUSCH信道解调译码多核并行处理分析和设计
2.1 PUSCH信道介绍
PUSCH用于传输业务数据,多UE共享,通过媒体接入控制(MAC)调度器来进行调度。
在UE侧,PUSCH信道的处理流程如图3所示。
PUSCH信道的解调译码流程如图4所示。
2.2 系统时延要求
2.2.1 LTE上行HARQ处理时延要求
LTE在混合自动重传请求(HARQ)的上行,由于HARQ 是同步的,eNodeB在收到上行共享信道(UL-SCH)的数据包后,经过信道估计、MIMO解码、离散傅里叶逆变换(IDFT)、解调、译码等,然后在给定的时间在空中接口下ACK或NACK,eNodeB处理的所有时间为3 ms。
2.2.2 单核的测试情况
采用单核处理器,处理器CPU主频为1 GHz。测试例为:一个20 MHz带宽的小区,1 200个子载波,eNodeB有4天线接收,UE由2天线发射,上行接收采用虚拟MIMO,即4×2的MU-MIMO, 2个码字, 传输块的大小为75 056 bit,采用64QAM调制方式,峰值流量为150 Mb/s。测试数据如表1所示,总的时间为5.92 ms,大于给定的3 ms的处理时间,所以采用单核的处理器已经不能满足系统的时延要求。
2.3 解调译码多核并行处理可行性分析
对于解调,可以从时域按照调制符号来进行多核之间的拆分,不必等到所有调制符号都得到就可以开始处理。
对于解扰,可以从时域按照软比特来进行多核之间的拆分,每个核都需要产生整个扰码序列,不必等到所有软比特都得到就可以开始处理。
对于控制和数据解复用,多核之间的拆分只能按照用户来进行,不同的用户可以在不同的Core上处理。将同一个用户的解复用分到不同的核上处理实现复杂度非常高,并且由于解复用的过程还包含一个传输间隔(TTI)内不同SC-FDMA符号之间的解交织,因此必须是在一个TTI收齐之后才能开始处理。
对于解速率匹配,多核之间的拆分可以按照码块进行,即不同的用户可以在不同的Core上处理,同一个用户的不同码块也可以在不同的Core上处理。
对于编码块CRC校验,多核之间的拆分可以按照码块进行,即不同的用户可以在不同的Core上处理,同一个用户的不同码块也可以在不同的Core上处理。某个编码块译码完成之后就可以进行编码块CRC,不必等待所有码块都译码完成。
对于码块连接,多核之间的拆分只能按照用户来进行,同一个用户只能在一个Core上处理。某个编码块译码完成之后就可以进行码块连接,不必等待所有码块都译码完成。
对于传输块CRC校验,多核之间的拆分只能按照用户来进行,同一个用户只能在一个Core上处理。只能等待所有码块都译码完成才能开始处理。
2.4 多核解调译码并行处理设计
解调译码并行处理如图5所示。
Core0作为调度核,Core1和Core2为非调度核。调度核调度的原则是:新增用户如果需要的处理资源不超过单核的限制,按照UE进行在各个Core间进行负荷分担;新增用户需要的处理资源超过单核处理能力,对占用资源最大的用户进行子过程分解进行并行处理。
2.4.1 调度核处理方案
对每个处理函数,以ProcessFunc为例,再外包一层ProcessDispatch函数,调度核Core0的ProcessDispatch函数的流程图如图6所示。
首先对该Process进行调度,如果Core0可以自己完成,那么直接调用ProcessFunc函数处理。如果需要分派,则将参数打包放到Core1和Core2的参数池内,通知Core1和Core2开始处理,同时调用Core0的ProcessFunc处理分派给自己的部分,然后Core0等待收集处理完的数据,收集齐之后ProcessFunc处理完毕。
2.4.2非调度核方案
非调度核增加一个优先级较高的任务DispatchTsk,专门处理调度核Core0分派的子过程,该任务由调度核触发。DispatchTsk从参数池内取出ProcessFunc的入口参数,调用ProcessFunc函数处理,完成后将该子过程设置完成标志,并通知调度核Core0。为了减少调度核Core0的等待时间,将DispatchTsk的优先级设置成比本核的业务处理任务高,使DispatchTsk得到及时响应。在DispatchTsk没有得到控制权时,非调度核处理本核的业务处理任务。这一处理流程如图7所示。
3 结果分析
以解速率匹配为例进行单核串行和多核并行处理测试,测试数据如表2所示。
表2的测试数据表明采用3核并行处理,可以得到大部分情况下多核比单核处理快2.6倍以上的处理速度,可见利用多核进行并行处理可以大大的缩短LTE上行解调、译码的处理时间。这种多核并行处理的方法也为无线通信系统的设计提供了一种新的思路。
4 结束语
将来的通信系统要求能支持的空中接口峰值速率越来越大,而对系统处理的处理时延要求却越来越短,如何提高系统的处理速度和处理能力,降低系统的处理时延是通信系统的一个关键[7-12]。本文分析了多核并行处理思路,提出了一种利用多核处理器架构来进行LTE 上行解调和译码并行处理的方法,解速率匹配的测试结果表明,这种设计方法取得了很好的效果。
5 参考文献
[1] 3GPP TSG RAN1#50bis.Timing and HARQ [S]. 2007.
[2] 3GPP TS36.212 v8.1.0. Multiplexing and Channel Coding[S]. 2007.
[3] 3GPP TS36.211 v8.1.0. Physical Channels and Modulation[S]. 2007.
[4] 3GPP TS36.201 v8.1.0. Physical Layer: General Description[S]. 2007.
[5] 3GPP TS36.204 v8.0.0. Base Station (BS) Radio Transmission and Reception[S].2007.
[6] 3GPP TS36.306 v8.0.0. User Equipment (UE) Radio Access Capabilities[S]. 2007.
[7] 佟学俭,同涛. OFDM移动通信技术原理与应用[M]. 北京:人民邮电出版社,2000.
[8] 曹志刚,钱亚生. 现代通信原理[M].北京:清华大学出版社,1992.
[9] TANENBAUM A S.现代操作系统[M]. 陈向群,等译. 北京:机械工业出版社,1999.
[10] HOLMA H, TOSKALA A. WCDMA for UMTS-HSPA evolution AND LTE[M]. 4th ed. New York,NY,USA:John Wiley & Sons ltd, 2007.
[11] 王念旭. DSP 基础与应用系统设计[M].北京:北京航天航空大学出版社,2001.
[12] 申敏,郑建宏,刘栋. DSP原理及其在移动通信中的应用[M].北京:人民邮电出版社,2001.
收稿日期:2008-02-22
张自然,毕业于电子科技大学。现任中兴通讯股份有限公司高级工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。已发表论文5篇,提交专利2篇。
李俊,毕业于华中科技大学。现任中兴通讯股份有限公司高级工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。
李长啸,毕业于电子科技大学。现任中兴通讯股份有限公司工程师,主要从事UMTS、LTE等无线通信系统的前沿技术研究工作。