从模型驱动软件开发视角实现嵌入式系统功耗优化
1 引言
随着物联网(IoT)和工业物联网(IIoT)的持续发展,嵌入式系统的部署数量预计将大幅增加。到2030年,嵌入式设备数量预计将从2020年的80亿增长到超过250亿。到2023年,物联网连接设备数量预计将达到数百亿,同年,物联网设备预计将占所有联网设备的50%。到2025年,所有物联网连接设备的待机能耗预计将达到46 TWh。
这些嵌入式系统通常用于环境监测、智慧城市、农业和智能工厂等应用,其预期使用寿命从数周到数十年不等。对于电池供电且部署在恶劣环境或地下的设备,供电成为一个重大挑战,因为在许多情况下,维护(如充电或更换电池)是不可能、不切实际或成本较高的。
在硬件层面,开发者和研究人员已经很好地解决了功耗问题,使得硬件组件更加节能。然而,软件层面的功耗问题往往被忽视,因为软件开发人员通常不清楚如何指定、实现和评估节能应用。对于电池供电的设备,与功耗相关的非功能需求(NFRs)变得越来越重要。此外,现代软件应用功能的增加、算法复杂度的提高,以及微控制器单元(MCUs)、传感器、执行器和通信接口的多样性,给软件开发人员在指定和评估与功耗相关的NFRs时带来了额外的挑战。同时,检测和消除能量漏洞也很重要。
能量漏洞是指导致意外能量消耗的行为,这种消耗对于执行实际任务并非必要。典型的能量漏洞来源包括复杂的软硬件交互、外围设备的错误使用以及软件设计中的缺陷。与传统软件漏洞不同,能量漏洞不一定会导致软件本身的行为异常,而且现场测试或老化测试无法检测到这种基于应用的异常行为,因此需要在早期开发阶段通过精确模拟或在实验室环境中对全功能硬件平台进行详细的功耗测量来解决。
当使用电池供电设备时,软件应