多核嵌入式实时操作系统(RTOS)综述
2015-07-18张朝
张朝
摘 要:从1981年第一个商业嵌入式实时操作系统VRTX/OS的出现,嵌入式实时操作系统已经过三十多年的发展。本文对嵌入式相关的文献进行了调研,发现随着嵌入式芯片多核技术的日趋成熟和广泛应用,嵌入式实时操作系统对多核处理器提供了一定的支持,包括对称多核(SMP)和非对称多核(AMP),但也仍然存在多核并发控制、任务调度等问题。在分析RTOS的研究现状后,得出了今后RTOS的研究热点有异构多核支持和物联网应用。
关键词: 嵌入式系统;实时操作系统;对称多核;非对称多核
中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2015)12-0248-03
A Survey on Multi-Core Real-Time Operating System (RTOS)
ZHANG Zhao
(The Institute of Computer Application,China Academy of Engineering Physics,Mianyang 621900,China)
Abstract:The RTOS has been developed over three decades till now after the first available commercial RTOS which named VTRX/OS .After the study on embedded related literatures, it shows that with the development of Multi-core technology and widely use of Multi-core chips, the RTOS is becoming to support the Multi-core features include SMP and AMP, in order to fully use the potential of hardware, but still have some problem such as concurrency control and task allocation. So the next hot research filed of RTOS is the support of Heterogeneous multiprocessor. Besides the IOT also could be an important application filed for RTOS.
Key words:EOS; RTOS; SMP; AMP
早期的嵌入式应用由于嵌入式处理器运算能力低,所以功能单一,主要使用死循环代码实现。随着大规模集成电路技术的发展和摩尔定律(Moore Law)的驱使,嵌入式处理器的性能越来越强,如今已经可匹敌桌面电脑。现在的嵌入式应用已经十分复杂,往往一个嵌入式应用需要集成数个功能,这种多任务环境的嵌入式应用已经离不开嵌入式操作系统的支持。针对特定的实时性要求严格的应用场景,比如工业控制、军事武器,更需要嵌入式实时操作系统的支持。当通提升过主频来提升处理器性能达到瓶颈时,多核技术的出现解决了单核芯片的性能瓶颈,使得处理性能的提升有了新的发展方向,尤其是异构多核技术同时保障了性能和功耗。然而多核技术却为嵌入式实时操作系统的设计者带来了不少的挑战。
1 正文
1.1 多核处理器的硬件结构
多核处理器指一个芯片内有多个计算核心,多核处理器也称为片上多处理器 (chip multi-processor , CMP), 或单芯片多处理器。根据核心的类型可将多核处理器分为同构多核处理器(Homogeneous multiprocessor)和异构多核处理器(Heterogeneous multiprocessor)或者对称多核处理器(Symmetric Multi-Processing , SMP)和非对称多核处理器(Asymmetric Multi-Processing , AMP)。
同构是指处理器内部每个核心的结构和指令架构都完全一样,如图 1 Hydra CMP。这种处理器结构的内部核
心地位完全对等,可以将其视为多个单核芯片通过内部总线相连,这种情况可以在每个核上运行相同的操作系统。
异构是指处理器内部的运算核心具有差异,一般分为主核和从核。如图 2 同指令集异构处理器,该处理器虽然都是ARM核心,但是架构不同。还有一种情况是存在两类或者多个类型的不同指令集的核心,也称作完全异构处理器,如图 3 完全异构处理器包含ARM核心和DSP核心。
1.2 多核处理器对RTOS设计带来的挑战
单核处理器虽然在宏观上呈现的是多任务的并行运行,但是在指令级仍是串行的执行过程,这种情况下共享资源的互斥访问使用原语就能控制。然而由于多核处理器具有多个运算核心,在指令级不同核上可能同时运行着对同一资源读写的指令,这使得操作系统的并发控制更难。因此RTOS在多核处理器上将面临比单核处理器更多的技术挑战,如:多核处理器的操作系统组织、多核间的负载平衡、多核间并发控制、任务分配、功耗控制、高效核间通信[1]等。
1.3 RTOS对多核处理的支持
在多核芯片技术的发展过程最早应用的是IBM的服务器芯片(POWER4),这时的多核处理器只是单纯地把多个相同的核心集成到一个CPU上,也就是同构多核处理器。最先发展的是同构多核技术,OS在同构多核的支持上也比较早和成熟,如在Linux 2.0开始就支持了对称多核(SMP)[2]。在嵌入式领域最开始应用的也是同构多核,接着出现了异构多核技术。异构多核的出现使得某些计算任务可以给专用的核心来执行。这样不仅可以减轻主核的运算压力,而且还因为专用核心的计算效率更高,可以在整体上降低系统的功耗。近几年异构多核的应用越来越广泛,尤其是在流媒体和通信等对数据计算量很大的领域,这些异构处理器通常会集成DSP核心来达到计算性能的要求。
操作系统对同构多核处理器的兼容,最早使用的是单操作系统单内核架构,在一个处理核心上运行内核作为主核,其他的核作为运算设备,早期的Linux使用了这种架构[2]。该架构的特点是实现简单,无需对操作系统进行大的改动。但是只有一个核心运行了内核,所以只对用户态的任务起到了多核加速,内核依旧是单核运行状态,RTOS早期也有用到这种架构。
对于微内核架构的RTOS可以在同构多核处理器上使用单操作系统多内核架构[3],在每个处理核心上加载运行操作系统内核,每个内核都有本地的调度队列,该架构每个处理器核的地位是同等的[3][4]。这种架构的优点是在微内核的上层提供一个全局的任务分配机制就可以做到核间的负载平衡,充分发挥多核的性能。
异构多核处理器多使用主从的多RTOS架构,主核上运行一个主控的OS,异构核运行同样的OS[4]或者不同OS[1]。论文[1]中是现在比较典型的异构多核的实现方式,芯片中的通用核运行诸如Linux的非实时操作系统支持丰富的应用,专用核运行诸如uc/os II的RTOS给实时要求高的运算提供服务,作为协处理器运行。这种架构的好处是可以让嵌入式设备兼具通用性和专用性。
嵌入式OS实现多核芯片支持除了上面的技术,现在使用虚拟化技术也是最常见的一种。首先,虚拟化是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,这样通过虚拟化这一中间层完全屏蔽了底层的硬件。使得在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率和安全性。Hypervisor[5]是风河公司提供的虚拟化方法,它是一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。如图4 风河公司的虚拟化结构。
虚拟化技术不仅可以在将每个核模拟成一个虚拟计算机还可以将单个核模拟成多个计算机。这种技术可以简化操作系统的设计,在多核处理器上直接使用现有的很多操作系统资源。
除了上述如何组织多核处理器操作系统的研究,为了发挥异构多核在功耗上的优势,RTOS研究人员在内核的调度上进行了相关的研究[6]-[8]。主要有:异构多核中任务调度的任务划分[7] ,解决如何将任务中计算量需求大且在通用处理核心上耗时的任务划分出来给专有的核心;对固定截止时间任务进行异构多核资源的动态分配将任务的错过率降到最低[6];以及综合考虑任务最早结束时间、核心负载均衡和低功耗的调度算法[8],在以往只考虑任务截止时间单个因素的算法基础上针对异构处理器增加了功耗控制。
2 总结
RTOS的发展与微电子和集成电路的发展息息相关,现在市场已经有具有八个核心的嵌入式处理,但是同构多核的性能不能完全适应嵌入式的应用,在嵌入式领域中更加具有应用前景的是异构多核[9],给通用核心配上专用核心来提高系统性能和降低系统功耗。
物联网是近年来IT产业发展的一个热点,最新的VxWorks 7已经被风河公司定义为专为物联网设计的RTOS,并称RTOS由此进入真正的模块化、可升级平台时代,可广泛支撑各种物联网设备,从消费者可穿戴设备到大型网络设备皆可应用[10]。这个市场的应用量将非常大,大到航空航天小到各种穿戴设备。
参考文献:
[1] Chen J, Chang D W, Young C P, et al. Building a Multi-kernel Embedded System with High Performance IPC Mechanism[C]//High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011: 506-511.
[2] 李彬, 任国林. Linux 内核基于对称多处理机的实现分析[J]. 计算机技术与发展, 2006(1).
[3] 张荫芾, 应忍冬, 周玲玲. 支持多核架构的微内核操作系统设计[J]. 计算机工程, 2009, 35(23): 249-251.
[4] 蒋建春, 汪同庆. 一种异构多核处理器嵌入式实时操作系统构架设计[J]. 计算机科学, 2011, 38(6): 298-302.
[5] Wikipedia. Hypervisor [EB/OL]. http://en.wikipedia.org/wiki/Hypervisor.
[6] Tang H K, Rupnow K, Ramanathan P, et al. Dynamic binding and scheduling of firm-deadline tasks on heterogeneous compute resources[C]//Embedded and Real-Time Computing Systems and Applications (RTCSA), 2010 IEEE 16th International Conference on. IEEE, 2010: 275-280.
[7] Saha S, Deogun J S, Lu Y. Adaptive energy-efficient task partitioning for heterogeneous multi-core multiprocessor real-time systems[C]//High Performance Computing and Simulation (HPCS), 2012 International Conference on. IEEE, 2012: 147-153.
[8] Wenjing L, Lisheng W. Energy-considered scheduling algorithm based on heterogeneous multi-core processor[C]//Mechatronic Science, Electric Engineering and Computer (MEC), 2011 International Conference on. IEEE, 2011: 1151-1154.
[9] 黄国睿, 张平, 魏广博. 多核处理器的关键技术及其发展趋势[J]. 计算机工程与设计, 2009 (10): 2414-2418.
[10] Windrive. 风河推出新一代物联网应用实时操作系统 VxWorks 7 [EB/OL]. http://www.windriver.com.cn/news/press/newsdetail.aspx?newsid=178.