发明名称 一种针对ARM指令集的层次分类功耗测量方法
摘要 本发明公布了一种适用于ARM指令集的功耗测量方法—层次分类功耗测量方法。首先将ARM指令集按照指令类型分成四类,然后再对各类指令按照寻址方式进行分类,最后按照不同寻址方式下操作数的不同进行分类。通过在ARM7TDMI处理器进行实验,根据测试结果完善指令集功耗仿真器HMSim,使仿真测试环境更加接近实际硬件环境,从而为嵌入式软件的功耗测量提供更方便、精确的测试环境。本发明提出的层次分类功耗测量方法应用在HMSim功耗模拟器上之后,应用程序在HMSim上运行的功耗值与实际硬件环境相比,误差在10%以内。
申请公布号 CN101881995A 申请公布日期 2010.11.10
申请号 CN201010191793.1 申请日期 2010.06.04
申请人 四川大学 发明人 郭兵;沈艳;廖海艳;任磊;王继禾;伍元胜;罗刚
分类号 G06F1/32(2006.01)I;G06F9/46(2006.01)I 主分类号 G06F1/32(2006.01)I
代理机构 代理人
主权项 一种针对ARM指令集的层次分类功耗测量方法,其特征在于该方法的步骤如下:1)首先,将ARM指令集的九类指令归纳为数据处理类、存储加载交换类、状态寄存器访问和跳转类、协处理器指令类四类;2)其次,根据指令寻址方式对四类指令二次分类,数据处理类指令主要采用立即寻址和寄存器寻址,对存储加载和交换类指令主要采用基址变址寻址和多寄存器寻址,对状态寄存器访问和跳转类指令主要采用相对寻址;3)然后,根据立即数类型对寻址方式三次分类,立即数类型将影响立即寻址和寄存器寻址,立即数类型可分为四类,每一类对指令功耗和周期数的影响相同,因此,采用等价类划分方法进行测量;4)经上述分类测量后,将每一种指令不同形式的电流值做加权平均,即为该指令的电流基准值;5)获得指令的电流基准值之后,使用如下公式计算指令功耗: <mrow> <msub> <mi>E</mi> <mi>instr</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msub> <mi>I</mi> <mi>instr</mi> </msub> <mo>*</mo> <mi>V</mi> </mrow> <mi>f</mi> </mfrac> <mo>*</mo> <mi>a</mi> <msub> <mi>C</mi> <mi>cycle</mi> </msub> <mo>+</mo> <msub> <mi>D</mi> <mi>ij</mi> </msub> </mrow>其中,a表示三级流水线对指令周期数的影响因子,Iinstr表示单条指令的基准电流值,即单条指令在1个时钟周期内所需的电流值,V表示ARM处理器的电压,f表示ARM处理器的频率,Ccycle表示执行该条指令所需的时钟周期数,Dij表示指令对功耗;6)步骤5)公式中Ccycle按照下面的公式计算:Ccycle=k1+2k2+k3+k4其中,系数k1,k2,k3,k4>=0为整数,分别表示执行一条指令所需内部周期(I)、非连续的周期(N)、连续的周期(S)和协处理器寄存器传输周期(C)四种存储周期的个数。
地址 610065 四川省成都市武侯区一环路南一段24号