基于HMP架构CPU的民机多安全级别系统实现方法

2020年12月第51卷第4期
航空电子技术
AVIONICS TECHNOLOGY
Dec.2020
Vol.51No.4
www.avionicstech***********************
D0l:10.12175/j.issn.l006-141X.2020.04.05
基于HMP架构CPU的民机多安全级别系统实现方法
赵羚钧,晋良银
(中电科航空电子有限公司,成都610015)
[摘要]提出了一种基于HMP异构多核CPU和资源域控制器的设计方案,可部署在同一物理CPU上并满
足DO178C标准的多安全级别软件运行要求。首先讨论了HMP异构多核CPU和资源域控制器的相关概念及作用,接着介绍了多安全级别系统的实现方案,最后在N X PiMX6系统平台上进行设计和实现。结果表明,该方案可成功地实现在机载设备上将不同安全级别的软件部署在同一物理CPU上的需求,方案具有灵活、成本低廉和功能可靠的优点。
[关键词]多安全级别软件;资源域控制器;异构多核;机载软件
[中图分类号]TP332[文献标识码]A[文章编号]1006-141X(2020)04-0026-06 HMP CPU-Based Multi-Security Level Software Implementation Solution
ZHAO Ling-jun,JIN Liang-yin
(CETC AVIONICS CO.LTD,ChengDu610015,China)
Abstract:A design scheme based on HMP heterogeneous multi-core CPU and resource domain controller is proposed, which can be deployed on the same physical CPU and meets the multi-security level software operation requirements of the DO178C standard.First,the related concepts and roles of HMP heterogeneous multi-core CPU and resource do­main controller are discussed,then the implementation of multi-security software is introduced,and finally designs and implementation ar羞耻心
e carried out on the NXP iMX6system platform.The results show that the solution can successfully implement the requirements of deploying software of different security levels on the same physical CPU on the airborne equipment.The solution has the advantages of flexibility,low cost and reliable functions.
Key words:multi-security software;resource domain controller;heterogeneous multi-core;airborne software
民用航空机载电子设备对适航安全性要求严格,
目前国际上普遍采用DO-178C标准对机载软件的适
航安全等级进行分类和认证。不同适航安全级别软
收稿日期:2020-07-10
作者简介:赵羚钧(1984—),性别:男,学位:学士,职称:作者邮箱:****************
件适航认证难度和复杂度不同。不同适航安全级别软件适航认证难度和复杂度不同。根据DO-178C规范,机载设备软件由于安全级别的不同被划分为设
工程师,研究方向:航空电子。
基金项目:四川省重大科技专项课题(基金编号2018GZDZX0021)
引用格式:赵羚钧,晋良银.基于HMP架构CPU的民机多安全级别系统实现方法[J].航空电子技术,2020,51(4):26-31.
赵羚钧,等:基于HMP架构CPU的民机多安全级别系统实现方法第4期
计保障等级(DAL Design assurance Level)E>DAL D、
DALC、DAL B,DAL A五种安全等级叫从DAL
E到DAL A软件安全级别依次递增;其中DALA是
最高安全级别,该安全级别软件出现异常将可能导
致飞机出现灾难性的事故,例如飞机坠毁。而DAL
E是最低安全级别,该安全级别软件出现异常将不
会影响飞机的正常运行也不会增加飞行员的工作量。
目前不同安全级别软件通常运行在不同的CPU
上或采用满足ARINC653标准的分区操作系统上,
以便让软件设计研发更容易满足DO178C标准[2-3,o
这两种方法均有一定的缺点,ARINC653分区操作
系统存在着对Linux支持不好和价格昂贵的缺点,
而部署在不同CPU上势必会增加设备体积、重量和
功耗。在机载客舱系统中开源免费的Linux操作系
统是目前最广泛的选择,使用Linux操作系统的客
舱设备通常设计为DALE级别。但是部分客舱设备
存在大多数需求只需要满足DALE,而极少功能需
要设计为DAL D或更高级别同。由于ARINC653
分区操作系统对Linux的不友好支持特性,我们尽
量避免在此情况下使用。针对上述功能特点,目前
的解决方案一是将功能分别部署到两个设备上分别
使用独立的CPU,二是将Linux系统认证为DAL D
或更高级别的安全等级。Linux系统具有上千万行代
码,并且客舱设备功能偏消费娱乐,系统升级快,
因此对Linux进行适航认证将是一件非常困难的事
情,因此目前通用的解决方法是部署到不同的设备
上。
如能将低安全级别软件与高安全级别软件部署
在同一设备的同一物理CPU上,显然具有成本、功
耗和体积优势。本文提供了一种新的解决方案,该
方案首先选用具有异构多核处理器(HMP:Hetero­
geneous Multi-Processing)和资源域控制器(RDC:
Resource Domain Controller)的CPU芯片,然后对
机载设备上的外围设备控制器以CPU核为中心进行
安全域划分。将不同安全等级的功能所使用的硬件
资源在逻辑上相互独立和隔离,然后将不同安全级
别软件放在不同的逻辑域中运行,方案满足符合DO
178C适航标准,最后给出了软件的设计过程。
1异构多核处理器
一般桌面PC采用多核处理器,每个核的处理能27
力是一样的,并且多核之间共享L2/L3缓存(Cached HMP的概念最早出现在ARM架构中。ARM架构在解决手持设备性能和省电的这两个矛盾时,引入了big.LITTLE处理器架构。big是指CPU的大核,LITTLE是指小核,big的处理能力比LITTLE的更强,它们集成在同一颗物理CPU上。当手持设备需要高性能工作时使用大核,不需要高性能时使用功耗较小的LITTLE小核进行工作,从而达到性能和功耗的相对平衡。由于多核处理器每个核的能力是一样的,这种架构就被称作为HMPW
HMP架构的最终实现形式取决于芯片的供应商,并在实际中产生了一定的演化,如面向手机的CPU采用Cortex A53做为大核,Cortex A7做为小核,而NXP(恩智浦)针对汽车使用环境推出了iMX6SOLOX CPU,它的Cortex A9做为大核,Cortex M4做为高可靠执行环境的小核。Cortex A系列是ARM的高端系列,其主要使用在高性能应用场景,Cortex M系列是低端系列面向工业控制等。在iMX6SOLOX的这款CPU中,Cortex A9主频为1GHz,Cortex M4为200M Hz,Cortex M4主要用做控制用。iMX6SOLOX的Cortex A7和Cortex M4这两个核都分别拥有自己完全独立的Cache和取址总线,因此相比于共享L2/L3Cache的多核CPU来说,它的大小核之间拥有完全隔离的计算资源,不会出现因为共享L2/L3Cache而带来的执行不确定性。避免多核CPU间共享Cache带来的执行不确定性,是开发满足DO178C标准的多安全级别软件的一个重要考虑,也是ARINC653分区操作系统实现的一个难点。采用ARM中这种特有的HMP架构,大小核拥有完全隔离的计算资源,从源头上规避了多核间执行不确定性这个问题,避免了在DO178C认证过程中带来的挑战。如果设备只有两个安全级别功能,把它们分别部署到大小核上,使用HMP架构的CPU具有明显的成本低和设计灵活的优势。
2资源域控制器
RDC资源域控制器是NXP公司IMX6/IMX7/ IMX8系列部分CPU上特有的一个SoC片上控制器。虽然采用HMP架构的CPU大小核拥有完全隔离的计算资源,但在实际使用中,只有计算功能远
28航空电子技术2020年
远不够,必需配合相应的外设控制器来完成。如网络通信需要网卡控制器,串口通信需要通用异步收发传输器(UART:Universal Asynchronous Receiver/ Transmitter)等。因此要实现大小核执行环境的完全逻辑性隔离,还要一个可以对CPU外设进行按需隔离的机制。NXP公司设计RDC资源域控制器的初衷是提高处理器性能和灵活性,因为在某些情况下,每个内核运行不同功能的软件,每个内核上的软件可以由不同的提供商开发。为了向不同的软件提供商提供互不影响和受控通信的软件运行环境,RDC 应运而生。
RDC将CPU±所有的控制器(如网口控制器,UART,GPIO)和大小处理器核心都看成一个个独立的逻辑资源项目,由用户按需对这些逻辑资源项目以CPU核为中心进行组合划分,组合的结果称为访问域,不同域之间不能相互访问。同时出于效率和灵活原因,大小核可各自独占外设资源也可共享芯片资源。在独立的处理域之间共享芯片资源可能造成数据冲突,例如其中一个内核上的进程存储在外围设备或内存中的信息可能会被另一内核上运行的软件覆盖。如果两个操作系统之间没有良好的同步机
制,可能会导致意外的故障或性能下降。针对不同内核之间资源冲突的问题,RDC提供了一套完整的机制,该机制允许系统在启动时配置RDC,将内核、总线主机、外围设备和内存区域等资源分配给域标识符以建立资源域。配置完成后,系统将监视总线事务,以将内核和总线主控器发起的访问限制于每个域各自的外围设备和内存中。对于需要共享的外围设备,RDC提供了基于信号量的硬件锁定机制,使得在域中的软件使用外围设备时提供暂时的排他性。一旦某个域的软件完成了任务,可能会释放硬件信号量使外围设备可用于另一域,否则另一个域的访问会被RDC所阻塞。
利用RDC对多安全级别功能所需的外围设备控制器以大小核为中心进行域划分,可以实现不同域上的硬件资源在逻辑上是相互独立相互隔离的,对部分需要共享的硬件资源可以配置为低安全级功能硬件访问属性为只读属性,从硬件上完全避免不同域软件运行期间的相互影响切。RDC带来的不同的域上软件运行互不影响的新特性,是解决多种安全级别软件在同一物理CPU上运行的关键方法和新手段。
3系统设计
根据民机硬件适航标准DO254标准,本系统设计不选用具有可编程功能的芯片,硬件方案按所需功能中最高等级来设计,同时硬件设计上对不同安全等级的功能所需的外设进行隔离设计(如串口电平转化芯片,CAN总线),保证它们相互独立。这样的硬件设计可最大程度降低硬件适航的难度和工作量。目前同时集成RDC资源域控制器和HMP架构的CPU芯片为NXP公司IMX6/IMX7/IMX8系列的部分CPU,本系统设计选用iMX6SoloX|8-9)…
为了实现将不同安全级别的功能部署到同一CPU±,需充分考虑RDC的资源域区分粒度和软件如何部署的问题。本方案针对客舱设备典型的具有两个安全等级功能进行示意设计。
图1是多安全级别机载设备硬件架构图,该系统由异构多核CPU、电源、RAM、EMMC、nor flash.开关设备、串口以及CAN接口等设备组成。在该方案中详细构成如下:
低安全级别系统硬件组成:由大核(ARM Cor-tex-A系列Core)>外部RAM、EMMC、串口(1)、网络接口(1)等设备组成的子系统用于运行低安全级别的Linux操作系统,该子系统主要提供Linux 系统硬件运行环境;
高安全级别系统硬件组成:小核(Cortex-M4 Core)、nor flash,串口(0)、CAN接口(0)等设备组成的子系统用于运行高安全级别的控制系统,使用的RAM为内部Cortex-M4核自带TCAM内存。该系统主要用于接收并执行高安全级系统的功能,例如Cortex-M4Core核解析控制指令后通过GPIO 控制飞机一些重要开关的闭合。
咏箸其中电源模块为共用,两个系统的受电控制(包括外部按键复位)由外部硬件设计来保证相互隔离。
4软件设计
图2是基于HMP架构CPU的民机多安全级别软件上电加载示意图,系统加电后CPU的ARM Cortex-A系
列核开始运行,此时ARM Cortex-M核处于复位态未运行。Cortex-A 核完成系统部分设备
第4期赵羚钧,等:基于HMP架构CPU的民机多安全级别系统实现方法29
电源
RAM eMMC Nor flash
高安全级别系统
低安全级别系统
CPU
(0)中国长江航运集团金陵船厂
小核(Cortex-M4
Core)
系列
GPIO
Ethemet(O)
I2C
CAN(0)
大核(ARM
Cortex-A系列
Core)
UART(0)
多安全级别机载设备硬件架构图
开关
串口⑴
威海市城里中学网卡
CAN(l)接口
图1多安全级别机载设备硬件架构图
和寄存器初始化后开始执行系统引导程序。系统引导程序中重要的工作是设置资源域控制器,对各个资源域中的硬件资源进行按域分配与隔离。图3是基于系统设计中所要求的系统功能对CPU片上外设的逻辑划分,通过配置RDC寄存器对外设以内核为中心进行域划分;将ARM Cortex-A核设置为域0,将ARM Cortex-M4设置为域1。配置RDC相应寄存器设置UART(l),Ethemet(l)以及部分GPIO的域为1。同理设置UART(O),Ethemet(O),外部RAM 为设备域为0。对系统资源进行资源域划分之后,ARM Cortex-A系列核只能访问域0的设备及资源,而无法访问属于域1的UART(l),Ethemet(l)等设备同时,ARM Cortex-M4核只能访问属于域1的设备及资源,而无法访问属于域0的设备。
RDC设置及系统初始化完成后,系统引导程序分别启动资源域1中的高安全软件与资源域0中的低安全级软件。此后高安全级与低安全级软件同时在同一物理CPU上运行,但资源域0与资源1中的资源相互独立,无法相互访问。其中RDC设置是划分高安全级域与低安全级域的关键点,其设置程序必须包含在高安全级别软件范围内并与其一同取证,而RDC设置工作仅从技术上来讲可放在如图2中的ARM Cortex-A或ARM Cortex-M4任意核中执行,因此实际工程中可从降低适航工作量出发进行权衡选择。
由于系统上电的引导程序只能运行在ARM Cor-tex-A核上,因此DO178C软件认证包括两部分工作,一个是认证运行在Cortex-M的高安全级别软件,另一个是运行在Cortex-A上的引导程序。高安全级别软件的认证工作是必选的,而运行在Cortex-A上的引导程序因为它需要加载高安全级别软件需要被动认证。这会带来额外的适航认证工作量,但是引导程序本身体积很小,而且功能固定,相比于把低安全级程序整体认证为高等级来说,这个工作量可忽略不计。另外,在Cortex-M核中运行高安全级别系统中可以使用安全认证操作系统,但符合DO178C 软件认证的操作系统必须针对具体芯片型号进行适航取证,目前未见针对该款芯片满足适航认证的操作系统。因此在单任务处理不能满足系统需求,必须在Cortex-M核中使用操作系统时,需要用户进行相应的开发和适航取证工作
30航空电子技术2020年
线粒体dna
图2基于HMP架构CPU的民机多安全级别软件流程图
高安全级别系统物理CPU
资源域1
uuqed
IP-IMS
m
x
<
pue
-x
<ARM CortexM4Platform
中国社区医师杂志Cortex-M4Core
MPU FPM
TCM
图3异构多核CPU片上硬件资源分配示意图

本文发布于:2024-09-24 13:19:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/241368.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:安全级别   系统   软件   资源   进行   运行
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议