标签:RTOS+CPU/DSP 电信基站
自从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)功用能够方面用户找出体系瓶颈地点,进行针对性优化。