嵌入式软硬件低功耗优化

(整期优先)网络出版时间:2022-07-15
/ 2

嵌入式软硬件低功耗优化

王杰

浙江和达科技股份有限公司  浙江省嘉兴市  邮编:314001

摘要:本文通过软件层次、硬件层次分析功耗的不同研究方向,结合相应影响因素,提出可行性评价,在编译优化角度中,实现高级语言与低级语言的编译,选择相应低功耗指令以及循环优化,有效降低系统功耗。

关键词:嵌入式;软件;硬件;功耗;优化

1嵌入式系统的特点

从构成上看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统;从外观上看,嵌入式系统像是一个“可编程”的电子“器件”;从功能上看,它是对目标系统(宿主对象)进行控制,使其智能化的控制器。从用户和开发人员的不同角度来看,与普通计算机相比较,嵌入式系统具有如下特点。

1.1专用性强

由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件,尤其是软件,都是为特定用户群设计的,通常具有某种专用性的特点。

1.2体积小型化

嵌入式计算机把通用计算机系统中许多由板卡完成的任务集成在芯片内部,从而有利于实现小型化,方便将嵌入式系统嵌入目标系统中。

1.3实时性好

嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制,所以对嵌入式系统有或多或少的实时性要求。例如,对武器中的嵌入式系统,某些工业控制装置中的控制系统等的实时性要求就极高。有些系统对实时性要求也并不是很高,例如,近年来发展速度比较快的掌上电脑等。但总体来说,实时性是对嵌入式系统的普遍要求,是设计者和用户应重点考虑的一个重要指标。

1.4可裁剪性好

从嵌入式系统专用性的特点来看,嵌入式系统的供应者理应提供各式各样的硬件和软件以备选用,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中更具竞争力。

1.5可靠性高

由于有些嵌入式系统所承担的计算任务涉及被控产品的关键质量、人身设备安全,甚至国家机密等重大事务,且有些嵌入式系统的宿主对象工作在无人值守的场合,如在危险性高的工业环境和恶劣的野外环境中的监控装置。所以,与普通系统相比较,嵌入式系统对可靠性的要求极高。

1.6功耗低

有许多嵌入式系统的宿主对象是一些小型应用系统,如移动电话、MP3、数码相机等,这些设备不可能配置交流电源或容量较大的电源,因此低功耗一直是嵌入式系统追求的目标。

1.7具备自我开发能力

嵌入式系统本身不具备自我开发能力,必须借助通用计算机平台来开发。嵌入式系统设计完成以后,普通用户通常没有办法对其中的程序或硬件结构进行修改,必须有一套开发工具和环境才能进行。

1.8软硬件协同设计

嵌入式系统通常采用“软硬件协同设计”的方法实现。早期的嵌入式系统设计方法经常采用的是“硬件优先”原则,即在只粗略估计软件任务需求的情况下,首先进行硬件设计与实现,然后在此硬件平台之上进行软件设计。如果采用传统的设计方法,则一旦在测试中发现问题,需要对设计进行修改时,整个设计流程将重新进行,对成本和设计周期的影响很大。系统的设计在很大程度上依赖于设计者的经验。20世纪90年代以来,随着电子和芯片等相关技术的发展,嵌入式系统的设计和实现出现了软硬件协同设计方法,即使用统一的方法和工具对软件和硬件进行描述、综合和验证。在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,协同设计软硬件体系结构,以最大限度地挖掘系统软硬件能力,避免由于独立设计软硬件体系结构而带来的种种弊病,得到高性能、低代价的优化设计方案。

2嵌入式软硬件低功耗优化

2.1硬件部分

首先,嵌入式硬件是整体系统运行的基础部分,因此使用的低功耗软件技术需要硬件部分的帮助和支持。在嵌入式系统运行过程中,主要硬件构成有嵌入式微处理器以及外围设备等,前者属于系统的核心部分,在系统使用初期阶段,低功耗优化技术主要实施部分是硬件,因此,这一技术在硬件层次上较为成熟,其低功耗优化技术产品在市场上较为常见。硬件层次部分使用的低功耗技术主要工艺有电路级以及微结构优化,优化级别具有层次性,主要是从低级到高级。现阶段,由于技术水平不断提高,硬件层次使用的低功耗优化技术发展相较于其他技术来说,速度较慢,但研究其优化技术发展,硬件层次依然在整体系统优化技术上发挥基础性作用。

2.2系统软件部分

嵌入式系统在实际应用中,低功耗问题一直是系统中的重点问题,实现其有效设计,也是系统中的难点问题,设计人员需要在整体设计过程中分析不同的影响因素,保证综合性,以此降低功耗。在硬件层次上需要使用低功耗优化方式,实现系统有效优化,在软件层次上也要设计相应的嵌入式软件。系统自身特点影响,嵌入式系统中的软件基本是处于固化状态,因此软件部分也是优化技术中难以替代的部分。嵌入式系统中的软件功耗问题是整体系统中的重要组成部分,设计人员需要依靠平台,在开发过程中创新低功耗软件,保证硬件层次与软件层次的同时优化,降低系统功耗。

2.3编译优化过程

2.3.1循环优化过程

通常情况下,编译优化过程在性能提高同时,实现功耗降低主要致力于两方面,其一是优化缩短执行时间,对功耗降低具有重要作用;其二是优化措施对功耗降低也会产生一定弊端,在指令开发过程中,存在大多数优化,会增加单位时间损伤的功耗问题。实际功耗优化过程中,需要平衡性能与功耗之间的关系。实施高层循环优化措施以及低层循环优化,对功耗会产生相应影响,因此不能仅仅局限于单一优化功能作用,需要保持综合性的目光看待优化。分析指令级功能优化过程中,一部分方法是从编译过程获得的,降低软件整体功耗问题,使用的低功耗编译技术是选择低功能指令取代高功能指令,以此提高整体编译效果。循环开展优化可以发掘不同部分之间的指令级,实现有效并行,降低循环控制中语句的执行次数,实现语句跳转,缩短整体执行时间,对功耗降低具有重要作用。软件使用过程中,实现流水过程,也能够缩短执行时间,降低功耗。经过相关实验研究,软件流水可对功耗产生的影响在一定程度上与高层循环变化具有联系,产生依赖作用。高层优化方法可以选择循环置换以及循环分块等,降低功耗,有效优化之后能够缩短整体执行时间。

2.3.2内联优化过程

编译过程中,并不是指单一过程循环,可以选择循环交换或者是循环合并方式,实现循环优化,也可以移动语句或者是循环数组访问下标对齐等方式。在不同优化过程中,使用调用连接可以依据相应的标准优化。这一过程需要保存现场,变量以及内容均需保存,实现PC跳转,消耗一定能量。使用内联方式消除这一部分的功耗,但并不需要所有的过程都直接使用内联方式,需要制定相应的标准,在实际使用中,内联方式的不合理性会造成代码数量的增加,对系统中的程序读取环节增加功耗。使用功耗的标准:首先调用过程中,其频率较高,实施内联后单个过程也不会超过相应指令大小,具有较为明显的降低现象,在现场保存以及恢复过程中会发生相应的损耗,有效降低相应功耗;在过程中调用次数较少会直接内联,存在一次或者是两次,根据具体程序调整少数定义;在调用过程中,代码量较少情况下,使用调用或者是返回指令现场保存时间相比于调用本身,占用空间较大。

3结束语

在现阶段生产生活领域中,制约嵌入式设备发展速度的因素不仅仅局限于处理器的速度以及芯片工艺水平,最为重要的是设备本身的功耗问题。为促进其发展,需要加强对其的研究,以有效降低系统功耗。

参考文献

[1]林建明.机顶盒系统芯片中GPU性能功耗的优化策略及算法[J].集成电路应用,2017,34(6):37-41.

[2]刘源,周家绪,杨燕鎏,龚国成.NB-IoT模组的低功耗控制软件的设计和实现[J].中国新通信,2018,20(14):51-53.