推荐文档列表

基于复杂度的嵌入式软件功耗模型

时间:2021-10-01 09:40:33 计算机论文 我要投稿

基于复杂度的嵌入式软件功耗模型

摘要:系统功耗是嵌入式系统的一个重要方向,功耗很大程度上取决于执行的软件。传统的底层指令级模型功耗分析方法虽然能比较准确地估算出嵌入式系统的功耗,但是这种方法所需要的时间过长。本文介绍一种高层嵌入式软件功耗分析估测方法,以对象函数所使用的算法的复杂度来对该函数构建功耗模型,从而根据此功耗模型能快速估算出该函数在各种输入情形下的功耗情况。

    关键词:算法复杂度 嵌入式系统 软件功耗模型

1 嵌入式软件功耗

嵌入式系统的功耗主要来自微处理器的功耗与外围部件的功耗。虽然能量的水泵最终发生在底层硬件,但是微处理器的功耗很大程度上取决于其所执行的软件。因此,对嵌入式系统的功耗分析越来越多地转移到软件的角度上来,将能量的消耗过程视作软件执行过程。

目前的嵌入式软件功耗分析大多数都是基于指令级功耗模型的分析方法。在这种模型中,嵌入式软件程序的功耗由单条指令的基本功耗开销、连续执行不同类型的指令造成的功耗开销以及额外的功耗开销(如流水线断流、Cache不命中)等构成。虽然这种底层的嵌入式软件功耗的分析方法的准确性较高,但是其分析过程需要在特定微处理器平台上将程序翻译成汇编指令,然后通过逐条指令功耗分析和综合因素考虑,最后才能估算出该程序在某种微处理器上执行的系统功能,需要相当长的分析时间。

2 基于复杂度的嵌入式软件功耗模型

针对指令级功耗模型的瓶颈,本文介绍一种基于复杂度的嵌入式软件功耗模型,利用现有条件能快速估算出某函数的功耗情况。

在嵌入式软件应用中大量使用的多媒体计算和其它数据密集型计算中,经常用到诸如查找、排序、矩阵运算等算法。由于这些算法的平均复杂度都是已知的,因此复杂度成为这些嵌入式软件程序的一个重要特征,同样也能够成为分析和估测嵌入式软件功耗的一种重要依据。基于复杂度的嵌入式软件功耗模型以具体函数所使用的算法的复杂度为建模的参数,选取该函数的典型输入,并利用现有指令级模型分析方法获得该函数在这些典型输入情况下的功耗,利用回归算法出该函数软件功耗模型的系数,从而获得完事的该函数软件功耗模型,并可以用于快速估算该函数在任何输入情况下的软件功耗。

在某函数的算法复杂度是已知的或较容易获得的情况下,假设该函数的执行所需功耗与其复杂度有关,则可以使用一个线性公式来描述该函数的软件功耗:

其中Pj为模型的参数与函数的算法复杂度与函数的输入相关;cj为相应的系数;p是参数个数。

构建模型的第一步是决定描述功耗模型的参数Pj。参数的选择与具体的函数所使用的算法密度相关。几种比较常见的算法的功耗模型可以表1中的线性公式来描述。

表1 基于复杂度的软件功耗模型

[1] [2] [3] [4] [5] [6]