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

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

审核编辑:郭婷

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

    关注

    5060

    文章

    18975

    浏览量

    302126
  • 存储器
    +关注

    关注

    38

    文章

    7435

    浏览量

    163526
  • 计算机
    +关注

    关注

    19

    文章

    7372

    浏览量

    87639
收藏 人收藏

    评论

    相关推荐

    嵌入式系统的未来趋势有哪些?

    (ML)技术的快速发展,嵌入式系统将更多地整合这些先进技术,以支持智能决策和自动化。在设备上直接运行AI和ML模型,进行图像识别、自然语言处理、预测分析等任务,将极大提升
    发表于 09-12 15:42

    嵌入式C编程常用的异常错误处理

    嵌入式C编程中,异常错误处理是确保系统稳定性和可靠性的重要部分。以下是一些常见的异常错误处理方法及其详细说明和示例: 1. 断言 (Assertions) 断言用于在开发阶段捕获程序中的逻辑错误
    发表于 08-06 14:32

    有助于提高网络设备性能的FRAM SF25C20(MB85RS2MT)

    有助于提高网络设备性能的FRAM SF25C20(MB85RS2MT)
    的头像 发表于 07-25 09:49 236次阅读
    <b class='flag-5'>有助于</b>提高网络设备<b class='flag-5'>性能</b>的FRAM SF25C20(MB85RS2MT)

    嵌入式热门领域有哪些?

    分析。随着人们对健康需求的不断增长,智能医疗领域对嵌入式系统工程师的需求不断上升,呈现出广阔的发展空间。 针对嵌入式领域来说,聚焦物联网、智能家居、
    发表于 07-16 09:23

    爱普生的高精度传感技术有助于监控自动

    Epson、JREast和NaganoKeiki联合开发了一种适用于铁路运营商的实用挠度监测设备-爱普生的高精度传感技术有助于监控自动化-SeikoEpsonCorporation(TSE:6724
    的头像 发表于 06-27 10:53 292次阅读
    爱普生的高精度传感技术<b class='flag-5'>有助于</b>监控<b class='flag-5'>自动</b>化

    嵌入式系统软硬件基础知识大全

    可以存储临时数据。了解这些存储器的特点和层次结构,有助于我们优化嵌入式系统性能和存储需求。嵌入式系统
    发表于 05-09 14:12

    嵌入式热门发展方向有哪些?

    感器网络数据的实时分析、数据融合及预警服务。在智慧工厂及工业自动化方面,嵌入式人工智能可以改进传统的工业生产模式,提升生产能力及优化工厂运行。 3.工业自动化:
    发表于 04-11 14:17

    给大家讲讲嵌入式系统中I²C总线的时序

    I²C总线在嵌入式系统中很常见,今天就来给大家讲讲I²C总线的时序
    的头像 发表于 02-23 09:47 1532次阅读
    给大家讲讲<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中I²C总线的<b class='flag-5'>时序</b>

    嵌入式系统发展前景?

    、舒适的生活体验。 工业自动化和智能制造是嵌入式系统的重要应用领域。未来,随着工业4.0的推进,嵌入式系统将更为广泛地应用于生产设备、机器人
    发表于 02-22 14:09

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的
    的头像 发表于 02-04 11:35 603次阅读

    嵌入式自学好书推荐

    嵌入式自学好书推荐 在数字时代的浪潮中,嵌入式系统一直是数字电子产品中的重要组成部分。无论是家用电器、工业控制、汽车电子、医疗保健、军事应用还是物联网,
    发表于 01-11 15:13

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2347次阅读

    嵌入式开发为什么需要输出调试信息?

    嵌入式开发为什么需要输出调试信息? 因为输出调试信息是嵌入式开发中一项非常重要的实践,它有助于保证软件的可靠性、稳定性和性能,也是故障排查的关键工具之一。
    发表于 11-28 16:46

    ADI全新集成电路有助于监测心率

    电子发烧友网站提供《ADI全新集成电路有助于监测心率.pdf》资料免费下载
    发表于 11-24 10:38 0次下载
    ADI全新集成电路<b class='flag-5'>有助于</b>监测心率

    多层pcb生产,更有助于高精度布线

    多层pcb生产,更有助于高精度布线
    的头像 发表于 11-15 11:02 499次阅读