多核处理器在综合模块化航空电子系统中的应用
2016-06-13赵光
赵光
【摘 要】随着综合模块化航空电子系统(IMA)的广泛应用,对IMA的开发和概念解读也随之变得重要。目前,在实现了第一代IMA平台的基础上,下一代IMA平台的架构已提上日程。本文分析了利用虚拟化技术将多核处理器应用于航空电子系统的设计,利用虚拟机系统来实现硬件资源的共享管理和软件子系统的划分,并符合 ARINC653规范的要求——模块化、可靠性、隔离性与开放性。构建由多核心硬件平台、虚拟机监视器(VMM,Virtual Machine Monitor)和分区操作系统、航电应用软件所组成的软件架构,可以满足综合模块化航电系统(IMA,Integrated Modular Avionics)的功能要求与接口要求。其中,为实现符合 ARINC653要求的VMM,传统分区操作系统需要进行多项关键性调整,包括处理器特权级和特权指令、中断、内存地址空间 分配、设备驱动等方面,从而可以构造基于VMM的综合化航空电子系统。
【关键词】综合模块化航空电子系统;虚拟化;多核处理器
航空电子系统是飞机的重要组成部分,其系统结构不断演变,经历了分立式、联合式、综合化到高度综合化的发展过程。综合模块化航空电子系统(IMA)则是目前需求发展的最新成果,IMA具有模块化、系统容错、鲁棒分离和动态重构、支持多传感器综合和信息融合等突出的技术特征;提高了系统的可靠性、集成性、维修性、任务能力等;从而大幅度提高了飞机的整体性能,减少了机载设备的重量、体积,降低了成本。
国外根据新一代航电的技术特点,提出了高安全、高可靠的实时操作系统的概念,并给出相应的标准,如美国航电委员会编制的ARINC653以及北约组织的联合标准航空电子系统结构委员会ASAAC制定的软件标准DO-178B等。为解决实时系统中共享计算资源的各任务模块之间保护的问题,前者对航电系统提出了新要求,引入了分区(partition)的概念;后者则主要对系统的安全等级评价建立了一系列评估和测试的标准,航电系统软件必须通过上述规范的测试,才能被进一步实用化。目前国外已开发出符合上述标准的成熟系统,并应用在新一代飞机的航电系统中。但是,当前的综合模块化航空电子系统的运行平台均构建在单核处理器之上。
多核处理器在日常生活中已经得到了广泛的使用,但在航空航天、火车、汽车等安全关键领域中单核处理器仍占据主流位置。阻止多核处理器在安全关键领域里运用的主要障碍是系统容错性无法得到保障。将多核处理器引入到机载实时系统的设计中来,可以进一步提高航电系统的集成度,压缩航电系统的体积和重量。
1 现有航空电子系统软件接口标准
制定和实施合适的航空电子系统软件接口标准,可提高航空电子应用软件的可移植性,有效缩短开发周期,并降低成本。航空电子应用软件与机载实时操作系统接口的标准化、规范化,使得基础软件(操作系统)与应用软件相对隔离,有利于实现软件的模块化设计,提高系统的可靠性。我国有关部门和单位参照美国航电委员会编制的ARINC653制定了《航空电子应用软件接口要求》,该标准主要描述了综合模块化航空电子系统(IMA,Integrated Modular Avionics)中应用软件和操作系统之间的接口要求,主要包括功能要求和接口服务定义。下面对该标准进行简要介绍。
1.1 标准在功能上的要求
标准首先对航电系统软硬件结构进行描述,提出分区管理的概念,各个分区间利用存储管理实现空间上的隔离,利用时间窗口轮转实现时间上的隔离,空间隔离用来保证一个分区中应用程序的执行不会干扰到另一个分区中其它应用程序的内存或数据;时间隔离用来保证一个分区中的应用程序的行为不会影响到另一个分区中应用程序的时间特性。除分区隔离机制外,标准还对航电系统的进程、通信和健康监控(health monitor)机制进行了规范。
1.2 标准定义的接口服务类型
标准中定义了如下几类接口服务:分区管理,进程管理,时间管理,存储器管理,分区内通信,分区间通信和健康监控等。
综合模块化航空电子系统的可靠性、集成性等特点主要体现在接口服务的定义方面。ARINC-653规范定义的软件接口为软件模块化打下了基础,而模块化的设计概念又保证了整个系统的容错性。举例来说,某一特定分区的故障无法导致驻留在同一运行平台的其它分区产生任何故障。系统容错性是通过运行平台(硬件和操作系统)来保障的,这不仅是综合模块化航空电子系统的基础,还减轻了系统开发过程中校验、验证和认证的难度。
2 高性能的多核处理器
多核处理器是在一个处理器芯片上集成2至8个计算内核,每个内核一般都包括共享或独有一级或二级专用指令和数据缓存,以及连接主内存的通用总线。由于这种处理器结构可以实现多核间的资源共享,所以它具有很高的集成度和卓越的性能。使用多核处理器后,可提升运算能力,并可有效减轻飞机重量。同时,这种更加灵活、轻便的多核处理器结构也为更为负责的飞行控制系统的嵌入提供了便利。随着多核处理器的广泛应用,单核处理模块的使用量逐渐减少,所以单核处理器在IMA结构中的使用成本日益增加。因此,多核处理器将逐步替代单核处理器,并且在未来IMA系统中的应用也是不可避免的。
多核处理器包括一系列具有专用存储器(高速缓存)的处理单元(或称内核),通过互联单元,这些内核可以与片上存储器资源(如L2或L3高速缓存)、外部存储控制器(如动态随机存取控制器,DRAM)和输入输出控制器互联和共享它们的资源。
多核结构设计倾向于内核之间的直接通信。多核芯片包括多个内核,这些内核具有分布式存储器以及一个基于片上网络(NoC)技术的复杂通信网络。内核之间的通信通过软件来管理,具有较好的可预测性。但是,由于间接访问缓存的主存储会造成失误,网络上的冲突仍有可能发生,所以多核平台在资源共享的管理上很难保证时间的可预测性。
由于单核处理器平台上的操作系统本身已经可以保证整个系统容错性,所以虚拟化技术一直未在关键领域里得到足够的重视。现有支持ARINC 653的航电系统软件均是在单核处理器平台上开发的,从开发成本以及安全性角度方面考虑,将现存ARINC 653系统移植到多核处理器运行平台上是较优的方案,而虚拟化技术可以为只能在单核处理器平台上运行的ARINC 653系统在多核平台上提供一个虚拟的单核处理器运行环境,同时保证每个ARINC 653的系统调度以及资源分配是独立的,以此满足系统的硬实时需求。
3 虚拟化在航电系统中的应用
早在20世纪60年代,IBM公司就提出了虚拟化(virtualization)的概念。虚拟化的基本思想就是在对底层硬件资源进行管理的同时,为用户提供多个独立的分区映像,每个映像中都包含了完整的虚拟硬件执行环境,包括处理器、存储器、外围设备等,用户可以在其所属分区内运行各自的操作系统。多个分区共享主机系统的硬件资源,并由虚拟机监视器(VMM,Virtual Machine Monitor)实现对硬件资源的分配和管理[1]。现有支持 ARINC653标准的航电系统软件,大都是基于操作系统的应用级分区[2]。利用虚拟化技术将多核处理器应用于航空电子系统,可以构建出具有分区管理、进程管理等功能,符合航空电子应用软件接口(APEX,Application Executive)要求,并具备综合化、模块化与开放性特征的航空电子系统软件。
在不修改现有成熟的航电应用的前提下,将其移植到虚拟环境下运行,是虚拟机系统要解决的一个重要问题。采用泛虚拟化技术的虚拟机平台,支持应用程序不经修改即在虚拟机平台运行,可以避免大量现有应用的重新开发工作。
为适应泛虚拟化的执行环境,操作系统在被移植时,需要在以下几个方面进行调整:特权指令的执行,内存的管理,设备的访问。
3.1 处理器特权级分配出于隔离和保护的目的,现代处理器都会提供多个特权等级,如 PowerPC提供了2个特权等级,一般操作系统运行在最高特权级,应用程序运行在最低特权级。在虚拟机系统中,负责管理资源和提供分区映像的是VMM,需要运行在最高特权级,分区操作系统需要进行修改以适应新的特权级。
3.2 内存管理
目前航电应用中有所使用的PowerPC处理器为e600系列(G4)[3],基于传统的PowerPC架 构,不支持软件管理的转换查找缓冲器(TLB, Translation Lookaside Buffer);因此当发生TLB失效时,处理器会自动对页表进行查询并执行替换操作,而地址空间的切换需要刷新整个TLB。为改善性能,可以将 VMM置于虚拟内存空间最顶部的一段范围内,从而避免应用程序或分区操作系统陷入VMM时导致TLB刷新操作。
3.3 设备的访问
I/O 设备驱动,在航电系统中,分区调度一般采用固定时间片轮转的方式,传统虚拟机系统的前后端驱动或专用驱动分区的方式,可能出现因驱动程序所在分区未被调度而影响其它分区的设备访问的情况,这在硬实时应用的环境下是不允许的;此外,航电系统外设数量有限,且类型相对固定,因此可以考虑把设备驱动作为独立的功能模块在VMM内部实现,由其直接对设备进行I/O 操作。
综上所述,在实现VMM的过程中不仅要借鉴现有虚拟机系统的设计思路,还要充分考虑硬件平台的特性和航电应用的特殊需求,在此基础上,才能设计出性能优异、且符合航电系统要求的VMM,以此实现ARINC653系统向多核处理器平台的移植。
4 结论
向多核平台的迁移对综合模块化航电系统提出了进一步综合化和模块化的要求,这些要求可以通过应用虚拟化技术来实现,从而集中解决分区隔离、实时调度、容错和健康监控等关键问题,为新一代综合模块化航电系统的设计和实现打下基础。这些技术中最为关键也需要首先研究的是面向航电系统的VMM实现支撑技术,从而有效地实现面向航电系统的虚拟化平台分区机制。根据本文的分析,这些技术有很好的实现基础和可行性,但多核平台会在不同内核上运行的并行分区见产生额外的硬件和软件冲突通道,这需要通过巧妙的系统软件设计来消除。
【参考文献】
[1]Chrisnall D.The definitive guide to the Xen hypervisor[M]. Boston:PrenticeHall,2007: 219-221.
[2]Rushby J.Partitioning in avionics architectures: Requirements, mechanisms, and assurance[R]. DOT/FAA/AR-99/ 58 & NASA/CR-1999-209347, 2000.
[3]Julien Delange and Laurent Lec. Pok, an arinc653-compliant operating system released under the bsd license. In 13th Real-Time Linux Workshop, 2011[Z].
[责任编辑:杨玉洁]