0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自动性能测量和时序分析有助于军事嵌入式系统避免过早过时

星星科技指导员 来源:嵌入式计算设计 作者:ANDREW COOMBES 2022-11-08 11:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

陆地、海洋和空中军事嵌入式系统的持续成功取决于修改系统以满足新兴需求的能力。随着时间的推移,对基于软件的系统累积的修改会导致该系统的性能下降。最终,由此产生的性能下降使系统开发人员可以选择放弃计划的新功能或更换硬件并接受早期过时。还有另一种选择。自动性能测量和时序分析技术为开发人员提供了优化累积修改导致的大部分性能下降的工具,从而避免放弃功能或过早过时。

军事嵌入式系统在其生命周期中通常会多次增强。其中许多增强功能都是软件更新。随着时间的推移,软件更新累积起来增加了对计算平台的需求。这可能导致硬件的功能不足以满足应用程序需求,并可能导致间歇性故障。

然后,系统开发人员面临着艰难的选择,要么放弃计划的新功能,导致功能衰减,要么更换硬件(即早期过时)。

一个可行的替代方案需要确定高影响、低风险的策略来优化软件,从而最大限度地延长计算平台的使用寿命。此替代方案包括自动性能测量和时序分析。

性能问题

军用嵌入式系统,尤其是航空电子系统,如BAE系统鹰的任务控制计算机,通常是实时嵌入式系统。实时系统是不同的,因为它们的正确行为既取决于其操作在逻辑上是否正确,也取决于执行这些操作的时间。开发这些系统的工程师必须能够提供令人信服的证据,证明软件始终在其时间限制内执行。

软件的本质意味着每次执行时,它都可能采用不同的代码路径,从而导致不同的执行时间。即使以相同的方式使用系统,内部状态的差异也可能意味着用户看到的执行时间差异很大。正因为如此,完全有可能在不发现任何时序问题的情况下严格测试软件,然后在实际使用中遇到导致重大时序问题的情况。因此,为了确保系统始终满足其执行时间,有必要建立其最坏情况执行时间(WCET),这也是DO-178B的考虑因素。

查找最坏情况的执行时间

测量是一种通常用来获得实时系统定时行为置信度的方法。为了测量时序,工程师通常将检测点放在他们想要测量的代码段的开头和结尾。这些点通过切换输出端口(通过示波器或逻辑分析仪监控)或通过读取片内定时器并将生成的时间戳记录在存储器中来记录经过的时间。

遗憾的是,这些高水位线可能无法反映代码执行所需的最长时间。当测试尚未执行通过代码的最长路径时,就会发生这种情况,如图 1 所示。运行两个测试,如图 1 所示,由绿色路径和蓝色路径表示。从这些测试中观察到的执行时间分别为 110 和 85。尽管这些测试执行了软件中的所有代码,但仍有第三条路径(以红色显示),其执行时间为 140,使其成为最长路径。

图1:执行路径:高水位线可能不反映代码执行可能需要的最长时间。当测试尚未执行通过代码的最长路径时,会发生这种情况。

pYYBAGNpzuiAT2eoAADCXmJttkQ340.jpg

此示例表明,仅执行所有代码不足以执行最长路径。对于非平凡的代码,很难设计出肯定会使代码沿着最长路径行驶的测试。通过在代码中的每个决策点添加检测点,可以避免这种情况。每当执行检测点时,都会记录其 ID 和时间戳。在系统上运行一系列测试会导致创建计时跟踪。将跟踪中的计时信息与有关代码结构的信息相结合,可以查找有关软件计时行为的信息,包括 WCET 的预测。

对于可能涉及数百万行代码的典型军事应用,手动检测程序将非常费力;此外,通常生成的跟踪数据量使得手动尝试将跟踪数据与程序结构信息相结合变得不可行。幸运的是,程序检测、跟踪处理、将跟踪数据与程序结构信息相结合以及数据挖掘/表示等任务都可以实现自动化。Rapita Systems 的 RapiTime 是一种自动化性能测量和时序分析技术,有助于解决获取以 C、C++Ada 实现的大型军事嵌入式系统的详细时序信息的挑战。

性能优化

了解 WCET 只是解决方案的一部分:当面临软件组件超出其执行时间预算的问题时,必须采取系统、科学的方法来优化组件的性能。

软件性能优化需要回答三个问题:

优化的最佳位置在哪里?

建议的优化是否在改进?

可以做出多大的改进?

优化的最佳位置在哪里?

在典型的复杂应用中:

(1)大多数子程序实际上并不处于最坏情况的路径上;它们对最坏情况的执行时间没有任何贡献。优化这些子计划根本不会减少WCET。

(2)许多子计划对WCET的贡献很小,因此不能代表优化的良好候选者。优化这些子计划所付出的努力不会构成对资源的有效利用。

(3)少数子计划占整个WCET的很大一部分(图2)。因此,子程序是优化的潜在候选者。

图2:分项计划对整个WCET的累计贡献

poYBAGNpzumAQ196AABOpAhgVTg384.jpg

通过检查WCET信息,工程师可以轻松识别相对较少的组件,在这些组件中,优化可能会对整体最坏情况的执行时间产生重大影响。

我在改进事情吗?

有时,试图通过猜测最坏情况的热点在哪里,优化该代码,然后查看效果来缩短分析过程是很诱人的。然而,软件优化的经验告诉我们,即使是对他们的代码有深入了解的高技能软件工程师,如果不访问详细的时间信息,也几乎不可能确定WCET的重要贡献者,从而确定优化的最佳候选者。

通常看起来如此明显 - “一定是进行所有这些浮点计算的代码部分是优化的最佳候选者” - 而实际上,一些看似无害的赋值隐藏了一个几乎占用所有时间的内存副本。这个问题的答案很简单:不要猜测,测量。然后重复测量以量化改进(或缺乏改进)。

可以做出多大的改进?

表 1 显示了通过简单的软件优化过程可以获得的最坏情况执行时间的改进水平。这些结果是使用RapiTime技术在BAE系统鹰的任务计算机上提供详细的计时信息来实现的。这些优化导致WCET总体下降了23%。

表 1:BAE系统鹰任务计算机的优化改进

pYYBAGNpzuqAThGSAAA8oltZJrA766.jpg

WCET 和性能优化的好处

在军事嵌入式系统修改期间访问自动性能测量和详细的时序分析可以为开发人员提供许多优势:

1. 采用系统科学的方法获取系统定时行为的信心。

2. 有关最坏情况执行时间的详细信息可以快速确定优化的候选对象。

3. 自动测量可以评估候选优化的有效性。

能够进行最佳时序优化意味着避免不必要地过时硬件,并消除放弃计划的新功能或更换硬件并接受早期过时的需求。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20679

    浏览量

    337305
  • 存储器
    +关注

    关注

    39

    文章

    7758

    浏览量

    172253
  • 计算机
    +关注

    关注

    19

    文章

    7841

    浏览量

    93489
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32开发中的五大嵌入式系统

    。 优点: 1.开源免费:eCos是开源的,可以免费获取并在商业项目中使用,有助于降低项目的开发成本。 2.小巧高效:Cos的内核设计精简高效,占用资源较少,适用于资源受限的嵌入式系统。 3.可移植性强
    发表于 01-21 10:48

    什么是嵌入式应用开发?

    、实现和部署,还包括硬件选择、软件设计、测试、集成和维护等流程‌。 定义和背景 嵌入式应用开发是指将软件部署到嵌入式系统中,这些系统广泛应用于消费电子和工业
    发表于 01-12 16:13

    arm嵌入式主板优缺点

    Windows CE、Linux等主流的嵌入式操作系统。   ARM的优点   一、高可靠性、高稳定性:在工业控制领域,性能稳定可靠是自动控制基本的要求,ARM
    发表于 01-08 07:08

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    语言使用率超过90%。从智能家居温控系统到汽车ECU控制单元,从工业机器人到医疗设备,C语言仍然是嵌入式开发的首选语言。 C语言在嵌入式开发中的核心优势包括: ‌高效性能****‌:C
    发表于 12-18 11:46

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解, 一
    发表于 12-09 10:33

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本高、开发难。二者融合的SoC器件正成为未来趋势,平衡性能
    发表于 11-19 06:55

    嵌入式系统的定义和应用领域

    都采用了嵌入式系统。同样,军事及航天类产品如四轴飞行器、雷达和作战机器人也离不开嵌入式系统的支持。此外,家电类产品如数字电视、扫地机器人和智
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    通常具有以下特点: 快速响应:实时嵌入式操作系统能够迅速响应外部事件或任务请求,以满足实时任务的时间要求。 稳定性和可靠性:实时嵌入式操作系统要求
    发表于 11-13 06:30

    嵌入式软件测试与专业测试工具的必要性深度解析

    性能的要求尤为苛刻。 ‌资源高度受限‌:嵌入式系统通常在有限的内存、存储空间和处理能力下运行,测试需关注内存管理、算法效率等资源优化问题。内存有限性迫使开发者采用malloc和free等精细内存管理
    发表于 09-28 17:42

    嵌入式工程师为什么要学QT?

    受限的环境。 Qt的实现主要是采用p-impl手法,实现接口与实现分离,它有很好的消息循环机制,有助于在资源受限的嵌入式设备上运行。 提升代码质量 Qt的设计理念和架构可以帮助嵌入式工程师编写更加
    发表于 08-14 15:15

    盘点嵌入式就业所需要的技能有哪些?

    基础,能够进行高性能计算和数据处理。 - 了解自动驾驶技术的基本原理,如传感器融合、路径规划等。 - 具备良好的沟通能力和团队合作精神,能够与不同领域的工程师协作。 2.智能手机行业: - 熟悉嵌入式编程
    发表于 08-11 15:43

    普源示波器MSO5074在嵌入式系统联合调试中的高效实践

    、断点调试)在面对复杂系统时效率低下,尤其在处理多信号同步、时序分析及瞬态故障时,难以精准定位问题。示波器作为电子信号观测与分析的核心工具,其高性能
    的头像 发表于 06-20 13:45 890次阅读
    普源示波器MSO5074在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>联合调试中的高效实践

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将Linux操作系统运行在
    发表于 06-20 09:46

    嵌入式直驱力矩电机设计及其系统仿真分析

    摘要:针对所要设计的转塔刀架嵌入式直驱力矩电机的应用领域和技术指标,计算确定了嵌入式直驱力矩电机的初步尺寸及各项性能参数,分别建立了基于 AnsofRMxpr 的力矩电机系统仿真模型
    发表于 06-11 15:11

    一文看懂:嵌入式与壁挂工控机安装方式的关键差异

    在工业自动化领域,工控机作为核心控制设备,其安装方式的选择直接影响设备运行稳定性与后期维护便捷性。嵌入式工控机和壁挂工控机是常见的两种类型,它们的安装方式存在诸多关键差异。深入了解这些差异,
    的头像 发表于 05-14 14:40 1205次阅读