基于GPP SDR的LTE系统RLC协议层实现研究

时间:2022-08-02 11:05:37

基于GPP SDR的LTE系统RLC协议层实现研究

【摘要】文章基于通用处理器(GPP)和Windows操作系统,研究了LTE系统RLC协议层的软件无线电(SDR)实现,设计了适合通用处理器架构的高效内存管理模块和格式解析模块。这些核心模块显著减少了内存处理,提供了高自由度的可复用能力,能够有效地简化实现算法,提高系统运行效率。

【关键词】LTE RLC GPP SDR 内存管理 格式解析

1 引言

近年来,移动终端设备数量的快速增长以及无线高速数据应用的迫切需求促进了下一代移动通信系统的高速发展[1],由3GPP倡导提出的LTE成为了3G的主流演进方向之一。LTE引入的一系列新型无线传输技术,包括正交频分复用(OFDM)、单载波频分复用(SC-FDMA)、多输入多输出(MIMO)、高阶调制技术(如64-QAM)等,反映了无线通信领域的最新进展,使其能够在上/下行占用20MHz带宽的情况下达到100Mbps/50Mbps的峰值传输速率,大大扩展了移动通信的应用前景[2]。

软件无线电(SDR,Software Defined Radio)技术最早由Joseph Mitola在1991年提出,其核心思想是利用软件实现信号处理算法,实现最大程度的无线电平台灵活性[3]。目前主流的SDR平台大致分为两类:基于可编程硬件,如现场可编程门阵列(FPGA)或数字信号处理器(DSP);基于通用处理器(GPP,General Purpose Processor),如X86 CPU、ARM、GPU等。前者处理能力高、实时性强,容易满足现代宽带通信系统的延时和吞吐率要求,但开发难度大,需要巨大的人力和资金投入。相比之下,GPP结合通用操作系统(如Windows、Linux),以其方便完善的开发环境和强大的可重配置能力,日益受到关注。各种基于GPP SDR的研究和实现层出不穷,例如自由软件组织GNU Radio的USRP平台、微软公司的SoRa平台等。

宽带通信系统中的密集信号处理算法包含大量内存处理,如读取指令和数据、保存结果以及传递数据到其它模块等。另外,LTE的无线链路控制(RLC,Radio Link Control)协议层中最频繁的处理是对数据包的解析、拆分(Segmentation)和连接(Concatenation)。因此与3G标准相比,LTE需要更高效的RLC协议层实现以满足其高速率要求。然而,在GPP和Windows操作系统组成的软硬件体系中,内存读写需要通过数据总线进行,没有FPGA架构支持的直接访问方式。同时其寻址方式也相对单一,没有DSP架构支持的回环寻址、比特反转寻址等适于信号处理的寻址方式。内存管理模块与格式解析模块的有效性,使基于GPP SDR的RLC协议层系统性能的实现成为可能。

目前国内外相关研究一般侧重于RLC协议机制的分析和改进,很少涉及核心模块的设计与实现结构[4]。本文基于GPP SDR平台和Windows操作系统,考虑了LTE RLC协议层的实现方案和关键技术,创新性地设计了高效的内存管理模块和格式解析模块,并给出了测试结果。

2 RLC协议层实现框架

2.1 GPP SDR平台

由于GPP架构对信号处理功能支持的缺陷、数据接口吞吐率的限制以及传统软件结构实时性的不足,GPP SDR自上世纪90年代提出以后发展一直比较缓慢,至今还没有成熟的实际应用。然而,随着近年来GPP信号处理指令的加强、多核技术的广泛应用和并行计算研究的兴起,GPP SDR已经具备了大规模的实际应用的条件[3]。

GPP SDR最显著的优势在于其灵活性和适用性。首先,系统的整个研发周期,包括建模、开发、测试、验证、维护和升级,都更易于实现和控制,节省了人力物力。其次,借助于软件的加载和切换,同一软硬件平台可以兼容集成多种通信协议。最后,结合Windows操作系统,GPP SDR可以与普通用户应用程序共享计算资源,不仅提升了用户体验,也使得基于GPP SDR的移动终端的价格具有进一步降低的潜力。

图1给出了典型的GPP SDR平台结构。该平台由三部分组成:通用硬件单元,GPP及它们之间的高速数据接口。通用硬件单元包含数模转换器和模数转换器,支持可变带宽和可变采样速率,以满足多种通信协议标准。GPP执行信号处理算法和协议处理流程。高速数据接口则完成硬件单元与GPP之间的数据交互。

2.2 RLC层协议实现框架

在3G和LTE中,RLC层位于物理层(PHY,Physical)和媒体接入控制层(MAC,Media Access Control)之上,为无线链路提供可靠的数据传输。LTE标准中描述了RLC需要支持的三种传输模式:透明模式(TM,Transparent Mode),非确认模式(UM,Unacknowledged Mode)和确认模式(AM,Acknowledged Mode)[5]。简单来说,TM完成数据包的透传,主要针对长度较短的高层信令;UM完成数据包的拆分发送和连接重组接收;AM则在UM基础上增加了自动重传请求控制(ARQ)。每一种模式都定义了其特有的数据包格式和处理流程,并根据高层控制信令与一个逻辑信道相关联,也就是说需要对RLC传输模式进行动态重配置。

利用C++语言中虚函数支持的动态绑定技术(dynamic binding),本文设计了图2所示的类层次框架结构。抽象基类RlcInterface规范了RLC层的公共交互操作接口,并定义了两个虚函数SendProcedure和RecvProcedure。三种传输模式的具体子类――TMEntity、UMEntity、AMEntity分别继承RlcInterface,在虚函数中实现其协议相关的处理流程。子类通过继承保持了基类定义的统一接口,因此可以在运行时完成传输模式的动态绑定,而不影响其余协议层的运行。

通过松耦合的设计模式,可以获得系统功能灵活的动态切换和重配置能力,这充分展现了GPP SDR的优势。

3 基于GPP SDR的RLC关键技术

如引言所述,优化内存处理和格式解析是提高GPP SDR系统性能的关键。本节将就RLC协议层实现中采用的关键技术展开深入讨论。

3.1 内存管理模块

数据包是LTE高层协议的主要处理单元。如果简单地在内存中连续存放,数据包的拆分、连接、填充和传递将会导致频繁的内存申请、释放和拷贝操作,不仅浪费内存资源、消耗处理器时间,还可能产生内存碎片、内存枯竭的问题,严重降低系统性能。由于协议处理流程可以抽象为改变数据包的组织方式或者添加新的信息内容,因此可以通过设计精巧的数据包存储结构来避免上述问题。VxWorks操作系统下的网络设备驱动库netBufLib为嵌入式开发提供了高效的内存管理方案[6],但在Windows操作系统下,还没有对等的资源可供利用。参考netBufLib结构,本文针对Windows设计了结合内存池结构和链表操作的内存管理模块LteMemPool,图3描述了其组织结构:

它的基本思想是初始化时预先向操作系统申请不同大小的内存块若干,运行中由内存池管理这些内存块的分配与回收,相当于替代了操作系统的内存管理。同时它还引用计数机制实现内存数据的安全共享,利用链表操作支持动态可变长内存使用。

LteMemPool的基本内存分配单元是“元组”。它由三个结构组成,分别说明如下:

元簇:固定容量的连续内存块,用于直接存储数据,需要时向内存池申请,使用完毕后释放回内存池。

元信息:与元簇唯一关联,记录它的引用计数,即有多少不同的用户正在使用它。只有当所有用户都释放该元簇,即引用计数归零时,内存空间才会被内存池回收。引用计数机制保证单个用户的释放操作不会导致仍在引用共享数据的其他用户工作异常,从而实现了多用户间的安全数据共享,消除了模块间数据传递的复制操作,即实现了数据“零拷贝”。

元块:与元信息构成多对一映射关系,记录了单个用户对关联元簇的使用信息。指向同一个元信息的多个元块通过携带的不同使用信息提供了对共享数据的不同逻辑视图映射,类似于多个用户同时打开同一个文件,每个用户都可以查看文件的不同部份。元块具有链表结构,通过链表的切割和链接,能够支持动态变长的内存使用策略。

LteMemPool实现了高效的内存循环利用和数据安全共享,有效地消除了冗余的内存处理,第4节的测试结果将说明这一点。

3.2 数据包格式解析模块

LTE高层协议通常需要处理不同的数据包格式信息。为了减小开销,格式信息中的字段以比特为长度单位,不满足字节边界对齐。而GPP内存读写的最小粒度为字节,比特操作依靠间接的整数位运算。GPP上传统的格式解析方法有两种:

逐字段寻址方式。直接寻址到每个字段所在的地址,读取完整包含该字段的连续字节数据到寄存器,执行移位、按位与操作提取指定的比特字段。这种方式的优点是简单直观,缺点是需要逐字段进行寻址、读取和运算,运行效率较低,不易复用。

“位段”访问方式。C/C++语言支持“位段”语法,由编译器提供对比特字段的直接访问。由于“位段”的组织结构和读写访问控制需要在编译阶段就完全确定,因此它只适于解析具有固定长度和格式的字段,如TCP/IP头。RLC中UM和TM的数据包含变长格式字段,不能使用“位段”访问方式。

我们注意到格式解析时,只需要顺序读写数据流,不需要随机访问,且LTE格式字段长度均不超过32比特。借鉴C++标准库中文件读写流的结构,本文设计了一种比特粒度的内存读写流Bitstream,利用比特缓冲区充当外部读写请求和内存数据之间的中介者,提高运行效率和可复用性。

如图4,比特缓冲区本质上是一个支持位运算的整数变量,其位宽不超过处理器位宽,但需要保证不小于最大字段位数加8(一个字节的比特数)。对于读请求,Bitstream从缓冲区中移出相应长度的比特,若缓存不够,则从内存中读取一定字节数(以不溢出为限)的新数据补充缓冲区。反之,对于写请求,Bitstream将字段写入缓冲区,若缓冲区满,则将缓存内容按先入先出顺序写入到内存中。一方面,缓冲区只有在空或者满的时候才读写内存,显著减少了内存寻址和读取的次数,简化了字段跨字节边界情况的处理,并且能够轻松实现某些字段要求的空白填充;另一方面,缓冲区将外部读写行为与内部数据处理解耦合,放松了对读写行为的约束,因而适用于任意字段格式的解析。

图5是典型RLC UM数据包格式的扩展部分。对于字节4~6包含的4个字段,若采用逐字段寻址方式,需要4次寻址和读取,并处理字段LI1、LI2跨字节边界的情况。而在缓冲区拥有足够空闲空间时,Bitstream可以一次性读入这3个字节到比特缓冲区中(缓冲区大小为8字节),然后从缓冲区直接提取字段,从而提高了效率,简化了逻辑。

Bitstream通过设计合理的中间层,实现了简单通用的交互接口,提供了极大自由度的模块复用能力。利用Bitstream,LTE高层协议规定的数据包格式都可以按照统一的方式高效地完成解析,减少了潜在的错误来源。

4 测试与评估

体系化的测试流程是GPP SDR系统质量的重要保证。软件测试的方法及原则已经成为一门细致的工程方法学[7]。一般而言,测试验证的目标包括功能实现正确、异常处理恰当、性能满足需求、用户接口良好等。为了验证RLC实现正确,本文设计了如下测试场景:

对某一文件,每次读取一段随机大小的内容作为发送数据,经过RLC、MAC和PHY的协议处理,测试接收端是否能够完全恢复原数据文件,并统计内存复用情况。该场景不仅能够确认RLC协议层功能及其上下层交互接口,也可以测试本文设计的内存管理模块的性能和效率。

表1中第二栏为程序初始化时向操作系统一次性申请的各种大小内存块的数目,第三栏为运行时实际使用次数。结果表明,内存管理模块实现了内存循环利用,显著减少了实际内存消耗。只要初始申请足够内存,便可以为GPP SDR系统提供“源源不断”的内存空间。

在上述测试场景中,内存管理模块LteMemPool消耗的时间为6ms。若采用一般的向操作系统申请内存的方法,RLC协议层的数据包拆分重组操作将导致至少一次的数据复制操作。进一步比对测试实验表明,相同测试场景下,采用操作系统内存调用需耗时20ms,即仅对于RLC协议层,LteMemPool便可以节省约2/3的处理器时间。对于整个LTE协议栈系统的实现来说,LteMemPool将带来更大的性能增益。

5 结论

本文在GPP SDR平台和Windows操作系统上,实现了RLC协议层的主要功能。针对GPP架构的特点,设计了适用于GPP SDR的高效内存管理模块和格式解析模块。经测试验证,这些模块能够有效地减少内存处理,实现内存复用,为基于GPP SDR的宽带无线通信系统的研究提供了有益的参考。同时本文设计的系统框架具有松耦合、可复用性强的特点,充分体现出了GPP SDR的优势。

参考文献

[1]Mcqueen D. The Momentum Behind LTE Adoption[J]. IEEE Communications Magazine, 2009,47(2): 44-45.

[2]Astely D, Dahlman E,et al. LTE: The Evolution of Mobile Broadband[J]. IEEE Communications Magazine, 2009,47(4): 44-51.

[3]Parul Gupta, et al. Software Radio: A Review of Design Considerations and Digital Hardware Choices[C]. Proceedings of the First International Workshop on Software Radio Technology, 2008.

[4]Jiarong Xi, Huaying Shu, Qian Chen. Implementation Scheme and Performance Analysis of RLC in TD-SCDMA[C]. WiCOM 2006: 1-4.

[5]3GPP TS 36.322. Radio Link Control(RLC) protocol specification[S].

[6]Wind River Systems, Inc,著. 王金刚,等译. VxWorks网络程序员指南[M]. 北京: 清华大学出版社,2003.

[7]Pfleeger, Shari Lawrence. Software engineering: theory and practice[M]. Higher Education Press, 2009.

上一篇:CDMA运营效益和主要问题分析 下一篇:用户感知系统的技术研究与实现