Linux 电信基站系统解决方案
Ofweek 2022-09-28

  自从1991年Linux第一次面世以来,任何人也不会想到这个不起眼的操作系统现在会应用得如此广泛。无论是从嵌入式领域的智能手机到大型计算服务器都可以找到它的身影,而且无论什么工作它都完成得非常出色,因为Linux的开放性决定了其自身可以根据使用领域而高度定制。作为一个开源软件,当前业界的工业标准可以最快地支持任何刚发布的硬件产品。同时,被世界各地的商业公司和志愿者一起参与开发和测试,它也变成了十分稳定的操作系统之一。

  Linux的设计原则决定了它的无所不能,但是对于特定领域它并不是最优的解决方案。同样对于嵌入式电信领域来说,为了追求满足电信领域的高实时性和高吞吐量要求,大家一般都采用传统的RTOS+Linux+运行环境。

  在传统架构中(参见图1),数据面处理采用RTOS+CPU/DSP方式,主要处理底层协议数据业务,通过RTOS的高实时性及多核CPU/DSP来达到性能需求。Linux自身的实时性较差,但是比较适合于高负载的复杂协议处理,因此一般用于完成用户控制平面协议的处理和IP转发等功能。这个方案在性能上可以保证电信产品的使用需求,但系统中存在多个处理器和多个不同操作系统平台,对于用户的维护和后续升级管理带来很大负担,同时也无法满足当前的低成本和低功耗要求。

 

图1:典型的电信基站系统结构图

  随着近年来处理器硬件技术的飞速发展,处理器的能力越来越强,多核平台已经广泛地应用在电信领域,尤其是在ARM公司将 Cortex A15引入电信基站领域后,整合单芯片解决方案将成为业界主流。但是软件领域的发展相对滞后,尤其是如何在SoC单芯片硬件环境下保证用户已有成熟业务软件的继承使用,是每一个电信设备制造商关心的问题。

  最简单的解决方案是如图2将Linux和RTOS按照AMP方式独立运行在多核CPU的不同核上。这种方案可以保证高实时能力,同时可以避免用户应用软件的修改。但是该方案最大的问题是两个操作系统要求在硬件资源使用上独占,需要在使用前静态分配好,系统运行后则无法动态分配,没有办法做到资源共享。同一个硬件环境下同时运行两个独立的系统也带来了运行安全方面的隐患。综上所述,AMP方案前期设计简单,方便于先前成熟软件集成,但是后期维护成本较高,同时造成了硬件资源的浪费。

 

图2:AMP解决方案架构图

  Linux KVM是基于Linux内核的虚拟机制,通过KVM可以在其上虚拟出原有RTOS所需要的运行环境(参见图3)。例如我们可以将原有业务软件以及原有的RTOS一同移植到KVM的虚拟环境中,这种方式对业务应用软件不需要任何修改。同时,整个系统硬件资源也由Linux统一分配,相对AMP方案避免了硬件资源的浪费。KVM机制可以做到系统的安全隔离,保证了电信系统的运行安全。但是该方案存在实时性较差(尤其是运行在Linux内核上RTOS的实时性),很难应用于电信协议等时隙要求较高的场合。

 

图3:Linux KVM解决方案

 

  如何在Linux基础上提供更加高效的实时处理能力,同时又简化多操作系统并存带来的软件复杂性?为此,Enea(宜能)公司在用户空间实现了LWRT(Light-weight Run-time Threading,轻量级运行环境)。LWRT是针对多核使用场景设计的,它基于Linux用户空间的标准Pthread作为运行载体,并在此基础上实现了可确定的调度方式、信号机制和内存管理。通过这种方式,LWRT内部的线程切换和信号处理不再依靠Linux内核调度机制,而是完全在用户态的LWRT内部实现。这在减少系统开销的同时,也实现了严格意义上的实时切换。图4描述了基于LWRT电信基站软件架构。

 

图4:LWRT多核解决方案

  为了保证整个LWRT的实时性,我们需要将其承载的容器Linux Pthread绑定到一个物理内核上,通过这种方式使LWRT像单独运行在这个物理内核的传统RTOS一样。同时,我们在LWRT上设计了用户态中断处理模型,将整个中断处理过程放在用户态进行。在Linux内核只需要在上半部中向LWRT发出中断信号,而所有的下半部处理完全实现在用户态的LWRT中。整个中断处理不再有内核互斥锁的影响,从而保证了高实时处理能力。

  先进的设计保证了高效的性能,在一个实际测试环境中对于一个简单的“信号触发-线程切换-信号接收”的线程切换模型,LWRT可以在不超过200个周期内完成,且该数据不会随着CPU占用率增高而受到影响,而在同一硬件条件下,采用Linux标准线程完成同样的切换动作需要大约3500个时钟周期,测试解决见图5.整个切换过程达到了高实时性要求。Linux上将不再只是运行控制面代码,用户完全可以将数据面处理迁移到Linux上。基于这种方案我们将不再需要RTOS,而是将RTOS的功能基于LWRT来提供。

 

图5:LWRT线程切换和Pthread线程切换对比

  目前整个电信领域向IP化发展,针对于IP数据处理,Enea实现了PAX(数据包加速基础)解决方案。PAX同样运行在Linux的用户态。

  它实现了基于图形方式现实的IP报文分析处理流程,在PAX中可以完成IP转发、IPSec、流量控制和ARP/WLAN网桥,以及数据包检查DPI等IP通讯中最消耗资源的处理。针对于数据面的这些处理过程不再依赖于原有Linux内核IP协议栈实现,而是由PAX及其相关的硬件加速器一起完成。这样便将原有Linux IP转发能力提高数倍,而非常适合于可扩展、高吞吐量和低时延的IP协议处理,尤其适用于基于IP的无线基站、控制器、智能防火墙、入侵检测系统和防病毒扫描网关等产品中。同时,PAX提供的图像化追踪(tracing)和分析(profiling)功能可以方面用户找出系统瓶颈所在,进行针对性优化。

 

图6:PAX数据处理流程图

  电信级应用对产品的可靠性和稳定性的要求极高,为此Enea将多年成熟的软件开发流程引入了Linux的开发和维护中。这样保证了所有用户的可选软件包都是在不同硬件平台下严格验证过的。作为开源社区成员,我们也密切监视开源社区的安全漏洞和Bugfix修复情况,并在全面验证后将其纳入Enea Linux产品中。为了更好地保护用户在软件领域的投资,在Enea Linux的升级版本中可以保证Enea IPR的向后兼容。这将确保对每一个硬件平台的Linux内核进行长期支持。另外,所有目标平台均采用Linux 3.0.x系列内核,并且每18个月更新一次内核版本。根据与客户达成的协议,Enea也可更加频繁地更新内核版本。

  在Enea Linux提供的中,用户依然可以找到熟悉的Opitma调试分析工具。这缩短了用户学习新开发工具的时间,同时也集成了LTTng、oProfile、Gcov&gprof、valgrind等常用开源分析工具和Qemu主机仿真环境。

  Enea作为一家全球领先的3G和4G基础架构操作系统解决方案供应商,拥有40年通信驱动产品解决方案研发经验,同时,Enea也是高可靠性和性能要求极高的软件平台开发的全球引领者。Enea在实时操作系统和高可靠性中间件方面,必将会将其具有的丰富经验分享给客户,解决客户面临的问题。并且在成就客户的同时,实现自己的价值也是Enea公司一直追求的不变承诺。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • 基于C51单片机实现汽车座椅自动控制系统的软硬件设计

    引言 随着人们生活水平的提高,对汽车座椅的舒适性要求也越来越高,要求对汽车座椅地调节能够更加简单、方便、快捷。目前,汽车座椅位置的调节多采用基于手动调节方式的机械和电动控制两种方式。汽车座椅位置的调节...

    昨天
  • MCS51单片机程序设计时堆栈的计算方法解析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己...

    昨天
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    昨天
  • 51单片机学习单片机之路总结

    学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。 我想,再看本...

    昨天
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    前天
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    前天
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    前天
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
下载排行榜
更多
评测报告
更多
广告