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. 自动测量可以评估候选优化的有效性。

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

审核编辑:郭婷

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

    关注

    5186

    文章

    20161

    浏览量

    329029
  • 存储器
    +关注

    关注

    39

    文章

    7715

    浏览量

    170879
  • 计算机
    +关注

    关注

    19

    文章

    7764

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式和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

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

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

    入行嵌入式难度大不大?

    技术的不断进步,嵌入式工程师需要不断学习新的技术,如人工智能、物联网等。同时,提升自己的项目经验和解决问题的能力,也有助于提高薪资待遇和职业发展空间。 (四)感兴趣入行 如果你对嵌入式领域感兴趣,那么
    发表于 04-17 10:14

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、
    发表于 03-12 13:58

    IAR分析嵌入式系统的市场前景

    作为全球领先的嵌入式系统开发软件解决方案供应商,IAR始终致力于为客户提供高性能与高安全性的开发工具,支持不同行业的嵌入式产品开发。
    的头像 发表于 02-26 15:34 905次阅读

    嵌入式系统中的代码优化与压缩技术

    。开发人员在编写代码时,应注重代码的模块化和复用性,避免不必要的重复代码编写。 嵌入式系统中的代码优化与压缩技术相辅相成,通过合理运用各种优化策略和压缩技术,开发人员能够在有限的资源条件下,打造出高
    发表于 02-26 15:00

    如何提高嵌入式代码质量?

    的情况下也必须保持稳定的性能。 3. 硬件依赖:嵌入式软件紧密依赖硬件平台,需要充分理解硬件特性才能编写高效且稳定的代码。 了解这些特点有助于开发人员在编写代码时有针对性地优化和调整,以满足
    发表于 01-15 10:48

    为什么嵌入式驱动开发工程师可以拿高薪?

    。 这些基础知识有助于更好地理解嵌入式系统的工作原理。 2)精通编程语言: 在嵌入式开发中,C语言是最重要的编程语言,它高效、灵活,能够直接操作硬件资源。此外,了解C++和汇编语言也
    发表于 01-07 16:56

    自动零件分析仪的原理和应用

    。这有助于确保投入生产的原材料符合工艺要求,避免因原材料质量问题导致后续产品性能不佳。 加工过程监测:在金属加工过程中,分析仪能够持续监测金属的组织结构变化。例如,在锻造、轧制等热加工
    发表于 12-23 15:22

    新手怎么学嵌入式?

    的基础上增加了面向对象编程的特性,有助于编写更复杂的嵌入式程序。 3. 学习硬件知识 嵌入式技术与硬件紧密相关,因此你需要了解一些基本的硬件知识。比如微控制器(MCU)、微处理器(MPU)的工作原理,了解
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能的目标是使嵌入式系统具备智能化的感知、分析和响应能力,从而实现自主决策、自适应学习和智能交互等功能,以提高系统
    的头像 发表于 12-11 09:23 1525次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能