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

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

3天内不再提示

软件引起的硬件过时:重大修复

星星科技指导员 来源:嵌入式计算设计 作者:DR. ANDREW COOMBES 2022-11-08 15:06 次阅读

军事应用中的嵌入式系统由于其较长的使用寿命和使用过程中经历的要求变化,特别容易出现软件老化,这可能导致性能下降。反过来,这可能会导致昂贵的计划外硬件升级。避免这些升级的一种方法是对过时的软件应用优化。

与其他关键的实时嵌入式系统不同,军用航空电子系统的使用寿命长达数十年,在此期间,它们会定期更新。这些定期更新产生于计划中的变革,也产生于为满足不断变化的军事需求而对业务要求的改变。

变化(在初始设计中无法预测)与多年来发生的升级相结合,不可避免地导致软件对底层计算平台的需求增加。这种需求的增加可能导致性能下降和由于时序超支而导致的间歇性故障。避免这种情况的一种方法是频繁、昂贵的硬件升级。

另一种方法依赖于自动检测旧软件中的“时序优化机会”。这种时序优化方法也可以在旧版软件环境中工作。

软件老化:神话还是事实?

最初,软件老化似乎是一种矛盾:一旦编写了代码,它就不会物理降级 - 不像硬件,硬件受随机物理过程的影响,导致组件的性能随着时间的推移而下降。

当然,前者是基于软件不会改变的假设。在长期存在的军事系统中,这可能是一个不真实的假设:作战需求将发生变化,而这些变化将不可避免地导致软件老化。

软件老化影响冗长的项目主要有四个原因:

在很长的项目过程中,建筑设计决策背后的基本原理将消失在时间的迷雾中。

随着越来越多的决策与原始架构不一致,软件的原始“形状”就会丢失。

软件开发中不断变化的时尚将把架构拉向不同的方向。

即使使用最好的架构,也不可能提前预测可能需要的所有可能的更改。

这种软件老化的净效应是软件性能会随着时间的推移而下降。

软件引起的硬件过时

在过去的四十年中,一个默认的假设是电子/计算性能不可避免地会随着时间的推移而提高。这种“现实”导致定期硬件升级被内置到军事系统等长期运行的程序中,目的是利用性能改进。

与这些周期性的性能改进相抵触的是软件老化问题:功能要求增加,功能增益很少。当软件老化导致除了计划的升级之外还需要额外的硬件升级时,就会发生软件引起的硬件过时。

推回时间的蹂躏

计划外升级的替代方法是提高软件性能,这是通过仔细优化来实现的。在实时系统的情况下,这通常侧重于最坏情况下的性能,或软件执行给定功能所需的最长时间。

在理想情况下,优化可以通过采用现有架构并根据新需求将其重构为更高效的结构来实现。鉴于软件老化导致软件架构不可避免的退化,这需要对整个系统进行广泛的重新开发不太可能是一个可接受的选择。相反,优化必须是一种更“机会主义”的活动——在没有对底层架构有深刻理解的情况下识别改进并应用它们。

优化遵循三个主要步骤:

确定贡献(确定代码库中的哪个位置可以集中优化工作)。

优化(确定现有代码的替代方案)。

冲洗并重复(测量改进,如果有的话,并继续直到工作完成)。

确定贡献

在决定将优化工作重点放在何处时,最重要的一个因素是了解每个软件组件对整体系统性能的贡献。

这里的“贡献”用于表示执行特定代码段所花费的时间百分比。它来自两个值:代码段的最长执行时间和执行次数。

查找特定模块的贡献依赖于首先通过代码找到最坏情况的路径,然后查看每个代码子程序在该路径上花费的时间。(请参阅图 1。

图1:按子计划划分的最坏情况执行时间(WCET)的贡献。

pYYBAGNqABCAS02yAABfw-8yZI0273.jpg

如图所示,有些代码对最坏情况的路径没有贡献,而有些代码的贡献很小;第三,还有一些代码做出了重大贡献。正是最后一个类别提供了优化的最佳候选者。

不建议尝试通过手动检查代码来确定优化的候选对象,因为这会耗费大量精力,并可能导致浪费优化工作;例如,通过尝试优化属于“无贡献”类别的代码。最好的方法是通过测量代码的执行时间来识别优化候选者。

优化,确定替代方案

一旦确定了优化候选对象,下一步就是优化它们。这项活动是整个过程的核心,依赖于工程团队的技能和经验。

优化的一个重要来源是在最坏情况下多次执行的模块。每个可以删除此类代码的循环都受益于对整个路径的乘数效应。

冲洗并重复

进行优化后,有必要再次测量执行时间。此步骤将确定系统现在是否满足其性能目标。

如果在此阶段仍需要进一步改进,则重复识别优化候选者的练习可能会出现新的位置来集中优化工作。

上述三个步骤中的两个需要测量代码的最坏情况执行时间。

通常,测量执行时间涉及:

将测量点(也称为检测)添加到源代码。

收集测量值。

分析测量值。

对于大型系统,这很快就会成为一项耗时的活动。通过内部开发的工具支持或通过RapiTime等商业工具,可以大大减少上述三项活动所需的工作量。

将此类工具支持集成到构建-测试过程中意味着可以在每个构建-测试周期中自动进行时序测量。这使设计人员能够查看优化活动在每一步中的进展情况,而不是等待优化活动结束。

遗留系统呢?

许多需要优化的系统将属于“遗留系统”类别:其年龄意味着在软件工具和连接到它们的硬件方面对计算平台的支持有限。

处理此类系统的一个关键方面是时序分析方法的灵活性。例如,可能无法使用新式调试接口或其他特定硬件接口。因此,进行定时测量的方法必须能够适应可用的设施。同时,必须尽可能减少任何检测代码的影响,以避免在测量活动期间耗尽资源(例如,内存或 CPU 容量)。

军用航空电子系统软件不可避免地会“老化”,这可能导致昂贵的计划外硬件升级。另一种方法是优化老化的软件,这只能通过测量、优化和审查程序来实际执行。

自动测量软件性能可最大程度地减少所涉及的工作量,并且还允许测量以展示软件性能的增量改进。

审核编辑:郭婷

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

    关注

    5059

    文章

    18972

    浏览量

    301932
  • 航空电子
    +关注

    关注

    15

    文章

    488

    浏览量

    45141
收藏 人收藏

    评论

    相关推荐

    硬件防火墙和软件防火墙区别

    电子发烧友网站提供《硬件防火墙和软件防火墙区别.doc》资料免费下载
    发表于 10-21 11:03 0次下载

    揭秘:单片机硬件软件延时之大不同!

    在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时?它们又有什么区别呢?今天就来讲讲关于硬件延时和软件延时的内容,
    的头像 发表于 07-25 08:11 647次阅读
    揭秘:单片机<b class='flag-5'>硬件</b>与<b class='flag-5'>软件</b>延时之大不同!

    嵌入式硬件VS软件,到底哪个更难?

    在嵌入式系统开发中,硬件软件是密不可分的两个方面。但是,究竟是硬件开发更具挑战性,还是软件开发更难以应对呢?本文将就这一问题展开讨论,探究嵌入式
    的头像 发表于 06-13 08:10 1071次阅读
    嵌入式<b class='flag-5'>硬件</b>VS<b class='flag-5'>软件</b>,到底哪个更难?

    苹果将iPhone 5s列入过时产品列表

    苹果公司近日宣布,iPhone 5s正式被添加到其过时产品列表中。这标志着苹果及其授权服务提供商将不再为这款曾经备受追捧的设备提供任何维修或其他硬件服务。
    的头像 发表于 06-05 09:49 473次阅读

    微软PowerToys发布0.80.1版,修复多项BUG提升软件稳定性

    微软日前发布PowerToys 0.80.1稳定版更新,该版无新增功能,其主要目的在于修复先前版本所遗留的若干问题,提升软件运作稳定性。
    的头像 发表于 04-11 10:50 1554次阅读

    苹果发布iOS/iPadOS 17.4.1修复版,修复未知错误

    苹果在官方更新记录中声称,此更新针对重大错误修复及安全问题作了改进,强烈建议广大用户予以安装。尽管苹果公司并未披露具体修正了何种差错,但其官方支持网站暂无更新服务。IT之家会持续追踪相关动态,对此进行后续报道。
    的头像 发表于 03-27 15:48 1397次阅读

    fpga是硬件还是软件

    FPGA(现场可编程门阵列)本质上是一种硬件设备,但它在功能实现上结合了硬件软件的特性。
    的头像 发表于 03-27 14:14 871次阅读

    fpga是硬件还是软件

    FPGA(现场可编程门阵列)属于硬件设备,而不是软件。它是一种可编程的硬件设备,由大量的逻辑单元、存储单元和互连资源组成,能够实现复杂的数字电路和系统设计。
    的头像 发表于 03-14 17:08 1676次阅读

    修复烘缸轴磨损如何修复

    电子发烧友网站提供《修复烘缸轴磨损如何修复.docx》资料免费下载
    发表于 02-29 09:34 0次下载

    修复煤磨辊体磨损怎么修复

    电子发烧友网站提供《修复煤磨辊体磨损怎么修复.docx》资料免费下载
    发表于 02-03 15:23 0次下载

    硬件spi和软件spi的区别

    硬件SPI(串行外设接口)和软件SPI是两种不同的SPI传输方式。SPI是一种同步串行数据通信协议,通常用于连接微控制器和外部设备,如存储器、传感器和显示屏等。 硬件SPI是通过专用的硬件
    的头像 发表于 12-26 16:55 5445次阅读

    Apple Watch禁售在即,苹果寻求软件修复及和解

    预料到这一禁令即将实行,苹果已开始计划应对措施。据知情人士透露,苹果科学家们正针对测量用户血氧级别的算法进行修复,该功能被马斯奥指控侵犯其专利权益。这项修复工作预计将使Apple Watch能够重新上市。
    的头像 发表于 12-19 14:37 668次阅读

    嵌入式硬件软件哪个好?

    嵌入式硬件软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    油浸式变压器“大修”&amp;“小修”是指什么?

    电气试验与油化验显示结果不合格时,需要进行大修,根据现场情况判断变压器是否有进行吊芯检查的条件,再进行相关检修操作。
    的头像 发表于 12-02 09:32 1376次阅读