基于复杂度的嵌入式软件功耗模型
j相对应。n个Ii对应形成一个该函数的模型参数矩阵。
通过底层指令级模型分析得到该函数在每组参数Ii情况下的功耗。
其中然后通过矩阵运算即可回归出参数向量C。
3基于复杂度的插入排序函数软件功耗建模
以下将以Integrator/CM7TDMI评估板的ARM7TDMI微处理器为基础,对插入排序函数来构建基于复杂度的嵌入式软件功耗模型。
假设某运行在ARM7TDMI处理器上的函数,对一长度为n的整形数组a[n]使用简单插入排序算法进行排序。算法的C语言代码与其经过ARMCC编译器编译后的汇编代码如下:
voidins_sort(inta[],intn){
intx,i,j;
for(i=1;i<n;i++)
for(j=0;j<i;j++){
if(a[i]<a[j]){
x=a[j];
a[j]=a[i];
a[i]=x;
}
}
}
ins_sortPROC
STRlr,[sp,#-4]!
MOVr3,#1
B|L1.56|
|L1.12|MOVr2,#0
B|L1.44|
|L1.20|LDRr12,[r0,r3,LSL#2]
LDRlr,[r0,r2,LSL#2]
CMPr12,lr
STRLTr12,[r0,r2,LSL#2]
STRLlr,[r0,r3,LSL#2]
ADDr2,r2,#1
|L1.44|CMPr2,r3
BLT|L1.20|
ADDr3,r3,#1
|L1.56|CMPr3,r1
BLT|L1.12|
LDRpc,|sp|,#4
3.1基于复杂度的功耗模型
简单插入排序算法平均复杂度为O(n2)。该函数的软件功耗模型可用如下线性公式描述:
其中,n为数组的长度,E为在输入数组长度的n的情况下函数的功耗。
3.2获得系数cj
在这一步骤中,主要以Integrator/CM7TDMI评估板的三段流水线、不设cache的ARM7TDMI处理器的指令级功耗模型为基础,分析该插入排序函数分别在输入数组长度n=10、20、40情况下的功耗情
通过底层指令级模型分析得到该函数在每组参数Ii情况下的功耗。
其中然后通过矩阵运算即可回归出参数向量C。
3基于复杂度的插入排序函数软件功耗建模
以下将以Integrator/CM7TDMI评估板的ARM7TDMI微处理器为基础,对插入排序函数来构建基于复杂度的嵌入式软件功耗模型。
假设某运行在ARM7TDMI处理器上的函数,对一长度为n的整形数组a[n]使用简单插入排序算法进行排序。算法的C语言代码与其经过ARMCC编译器编译后的汇编代码如下:
voidins_sort(inta[],intn){
intx,i,j;
for(i=1;i<n;i++)
for(j=0;j<i;j++){
if(a[i]<a[j]){
x=a[j];
a[j]=a[i];
a[i]=x;
}
}
}
ins_sortPROC
STRlr,[sp,#-4]!
MOVr3,#1
B|L1.56|
|L1.12|MOVr2,#0
B|L1.44|
|L1.20|LDRr12,[r0,r3,LSL#2]
LDRlr,[r0,r2,LSL#2]
CMPr12,lr
STRLTr12,[r0,r2,LSL#2]
STRLlr,[r0,r3,LSL#2]
ADDr2,r2,#1
|L1.44|CMPr2,r3
BLT|L1.20|
ADDr3,r3,#1
|L1.56|CMPr3,r1
BLT|L1.12|
LDRpc,|sp|,#4
3.1基于复杂度的功耗模型
简单插入排序算法平均复杂度为O(n2)。该函数的软件功耗模型可用如下线性公式描述:
其中,n为数组的长度,E为在输入数组长度的n的情况下函数的功耗。
3.2获得系数cj
在这一步骤中,主要以Integrator/CM7TDMI评估板的三段流水线、不设cache的ARM7TDMI处理器的指令级功耗模型为基础,分析该插入排序函数分别在输入数组长度n=10、20、40情况下的功耗情
- 上一篇论文: 嵌入式MPEG—4解码系统的设计与实现
- 下一篇论文: 32位ARM内核微处理器W90N740及其应用