热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何确保安全关键领域多核嵌入式系统中的软件时序

汽车安全关键领域的嵌入式系统开发需要多年的时间积累和数以亿计的资金投入,而安全作为重中之重,无疑是软件开发初期架构和设计的核心。车辆的行驶安全与手刹、尾

汽车安全关键领域的嵌入式系统开发需要多年的时间积累和数以亿计的资金投入,而安全作为重中之重,无疑是软件开发初期架构和设计的核心。车辆的行驶安全与手刹、尾灯等部件息息相关,这些部件不仅是由人和机械控制,更是由运行在多核复杂异构处理器上的嵌入式软件控制——它们控制着汽车驾驶及动力转向,并以几微秒的时间间隙给出控制信号。开发多核处理器的挑战往往在于软件的时序,软件时序不仅受软件运行和输入的影响,还会受到其他处理器核心上运行软件的影响。

本文将从多核时序分析入手,探讨汽车领域嵌入式软件安全问题的解决方案。


01.机动车检验标志电子化

 “多核时序分析”英文全称为Multicore Timing Analysis(以下简称MTA),指多核处理器的软件时序分析。虽然在理论上,多核处理器惊人的计算能力能使嵌入式系统更加强大和高效,但其软件执行速度受运行在其他处理器核心上的软件影响的风险也陡然增加。总线、内存、缓存、设备、运行在其他处理器核心上的FPGA(Field Programmable Gate Array,现场可编程门阵列)和GPU(Graphics Processing Unit,图形处理器)等共享资源,而资源占用所造成的干扰则会导致软件可能需要更长的执行时间。

如何量化这种干扰的影响?当软件在多核平台上运行时,如何进行分析、测试并获得具体的数据,以证明安全关键的软件的执行时间处于可被接受的时限内?

巴塞罗那超级计算中心(Barcelona Supercomputing Center,以下简称BSC)、Rapita公司(Rapita Systems Ltd)、雷神技术公司(Raytheon Technologies Corporation,RTRC)和马瑞利公司(Marelli Europe,MAR)的专家们多年来一直在研究这些问题的答案。使用专业工具和自动化技术是解决这些问题的关键,但专业工具的使用存在一定要求与限制。


02.专业工具

支持时序分析的商用专业工具对于简单(单核)电子器件是有效的,但无法扩展以满足当前新出现的多核特定认证要求和建议。

1、静态时序分析解决方案面临着一堵“复杂的墙”:既不能有效对日益复杂的硬件进行建模,也不能有效处理异常复杂的软件功能结构和语法特征。

2、基于测量的解决方案在单核分析市场渗透率较高,但无法完全解决引入多核带来的问题。这些解决方案通常专注于由综合功能测试策略确定的测量场景,但缺乏基于硬件专业知识的测试方法——这种方法有助于为多核中运行的任务推导出可信的时序界限,并提供必要的支持信息和足够的可追溯性。


03.干扰的分析和量化

结构化测试方法使用软硬件专家提供的多核时序数据。BSC的一项专业技术(被称为多核微基准测试技术或MμBT)能够让系统设计人员通过创建额外的干扰场景来对多核处理器的不同部分进行压力测试,从而分析和量化基于多核应用程序的干扰程度。

微基准测试(Micro-benchmarks)是基准测试中的一种方法,用来测试微小代码单元的性能。通常,这个微小代码单元可以是一段算法,一个方法或一个数据结构。微基准测试揭示了干扰通道对软件时序的影响,可以通过部署微基准测试对特定应用程序造成可配置和可量化的压力。微基准测试被专门设计用于展示单个明确定义的行为,并对特定硬件资源产生预期影响,同时尽可能防止在其他干扰通道上产生争用。微基准测试的主要功能包括:

1. 对特定的共享资源施加可量化的压力;

2. 其行为可通过事件监视器进行验证;

3. 捕获与时间相关的特定要求。例如,为控制争用而采取的缓解措施是否有效。

▲图1:微基准测试在干扰分析中的应用


04.测试设计方法

工程师可遵循标准软件V字形开发流程的七步设计及测试过程,从而更充分地了解软件在多核资源调用中受干扰的程度。

1. 多核处理器关键配置设置、干扰通道和事件监视器分析。硬件专家帮助确定关键配置的设置,建立框架,并在框架中确定干扰通道以及缓解措施。硬件事件监视器的识别也有助于为以下所有步骤提供验证方法。

2. 确定时序需求。开发人员需帮助最终用户识别系统的具体需求、时序要求、风险和系统安全问题。例如,验证任一硬件隔离方法的性能,以最大限度地减少干扰。

3. 测试用例设计。开发特定的测试用例以验证支持用户需求的假设集,包括定义在干扰通道分析中提供证据所需的MμBT项目。这涉及隔离执行(无干扰),根据微基准测试执行以评估应用程序的执行时间和硬件在不同可量化压力场景下的干扰敏感度。

4. 执行测试程序。该步骤可构建由测试框架、微基准和测量探头组成的测试程序,用来记录/跟踪结果。

5. 证据收集(测试)。测试程序在平台上执行以收集测试数据。

6. 结果分析。由技术专家审查测试结果,确认测试结果如何验证需求。

​7. 验证结果并生成文档。对需求进行最终评审,生成文件和确认结果,以支持系统的安全性论证。客户可以直接使用完整的报告和分析工件来认证运行在多核上的软件。

▲图2:MTA验证步骤

图2所示的验证步骤旨在实现软件开发过程的可追溯性,并满足CAST-32A航空电子系统多核处理标准和ISO 26262《道路车辆功能安全》国际标准。


05.多核时序分析国产解决方案

想要详解软件多核时序行为中的干扰效应,既要了解多核体系结构的组件,又要了解软件中的调度和资源分配系统,对工程师的开发经验要求较高。

天目全数字实时仿真软件SkyEye,作为一款虚拟化技术仿真的专业工具,支持多核处理器仿真,可以通过硬件配置脚本为每个处理器核心创建包含有CPU独立资源(L1-Cache和寄存器)的模块。SkyEye采用统一的时钟调度机制来管理虚拟目标系统的时间,可以保证仿真的时序和真实目标系统是等比例的关系,确定性的时序状态和各处理器核心寄存器的实时状态监控可以帮助工程师进行多核时序的分析。处理器仿真时间和处理器寄存器监视如下图所示:

▲图3:处理器寄存器监视

另外,SkyEye还支持图形化构建目标系统,无需在意系统底层实现的细节。开发经验较少的工程师也能够快速上手并搭建复杂的硬件模型,进行软件的设计与开发。以P2020双核处理器目标系统搭建为例:

▲图4:P2020双核处理器搭建

工程师通过简单的拖拽便可快速搭建所需的虚拟目标系统,大大缩短产品研发周期,提高软件调试效率,解决多核时序分析的难题。

参考链接

https://www.embedded.com/ensuring-software-timing-behavior-in-critical-multicore-based-embedded-systems/


推荐阅读
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • iOS 小组件开发指南
    本文详细介绍了iOS小部件(Widget)的开发流程,从环境搭建、证书配置到业务逻辑实现,提供了一系列实用的技术指导与代码示例。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 解决远程桌面连接时的身份验证错误问题
    本文介绍了如何解决在尝试远程访问服务器时遇到的身份验证错误,特别是当系统提示‘要求的函数不受支持’时的具体解决步骤。通过调整Windows注册表设置,您可以轻松解决这一常见问题。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
author-avatar
卝軎亟_621
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有