论文研究-嵌入式软硬件低功耗优化研究综述.pdf

所需积分/C币:9 2019-07-22 23:39:20 333KB .PDF
收藏 收藏
举报

随着时代的进步,制约着嵌入式设备广泛应用的障碍不再是处理器的速度、芯片的工艺,而是设备功耗。如何在相同能量的供给情况下工作时间最长、完成的任务最多,或者是运行相同的程序使用较少的能量成为嵌入式领域备受关注的研究方向。从硬件级、指令级和编译过程三个层次,由各层次相应公式的各个参数展开,对国内外的功耗优化研究现状进行综述和评价,并最终结合实验室SPARC仿真项目,提出基于SPARC仿真功耗优化研究的三个方向。
第2期 周宽久,等:嵌入式软硬件低功耗优化研究综述 ·425 文献中设置了对数据流进行分析,通过对整个程序的分析,找2.1低功耗编译指令(参数∑/×N1) 出应该放置电源门控的点,放置相应的电源门控操作指令。 不同的指令,其功耗特性是不同的。编译时可以通过采用 赵晓莺等人(23利用输入向量控制技术,采用遗传算法作低功耗的指令替代高功耗的指令作为程序的实现,达到降低功 为求解手段,在遗传算法中利用电路状态差异度作为适应度函耗的目的。指令选取标准是指令的基本功耗,这种思想是由 数,对CMOS组合电路的静态功耗进行优化。实验结果表明 Tiwari提出的,他认为含有存储器操作数的指令功耗比只有寄 使用该方法明显优化了静态功耗。贺小川等人2针对可变电 存器操作数的指令大得多,尽量使用只含寄存器操作数的指令 压处理器的静态功耗运用抢占阈值调度策略的周期性任务集 可以降低程序功耗。随着多媒体应用的迅猛发展,许多硬 合,将节能调度和延迟调度结合起来,提出了一种两阶段节能 件现在都支持SIMD指令或短向量指令,使用这类指令可以大 调度算法。首先使用离线算法来计算每个任务的最优处理器 大地提刀性能和降低功耗2。应当说明,支持SMD指令的 执行速度,而后使用在线模拟调度算法来计算每个任务的延迟 时间,从而动念判断处理器开启和关闭时刻。张承义等人21编译与一般的向量化编译并不一样,通常这些支持SMD指令 在 cache功耗优化方向上,提出」LRU- assist算法,利用∫既有 的硬件并没有独立的向量部件,SMD指令也是由标量部件完 的IRU信息,在不影响处理器性能的前提下,cahe的平均关 成的。SIMD指令可以通过库函数的形式提供给编译器使用 闭率可达53%,大大地降低了漏电流功耗。随着集成电路制 但这影响了代码的可移植性,加重了开发人员的鱼担。如何从 造工艺进入超深亚微米阶段,静态功耗的影响越来越显著,尤 著,尤代码中将多个短数据操作合并为单个长数据操作是进行SIMD 编译研究的主要内容 其是片上二级 cache。张承义等人2还提出了一种ADSR算 法,在保证处理器性能的前提下,能够大幅度降低二缴 cache Sreraman等人针对lnte的多媒体扩展(MMX)指令,以 的静态功耗 SUTF编译器为基础,实现了一个向量化编译器。它主要是通 过对代码中的标量数据和数组依赖性进行分析来识别数据的 掉制 并行性。为了提高向量化程度,还采用许多循环变换技术,如 strip mining、 scalar expansion、 grouping and reduction、 loop fission and distribution。 程序计数器 指令译码器 Lorenz等人∞9提出的使用SM指令进行低功耗编译的 方法,其实现策略与文献[27]的基本相同,但针对M3-DSP特 浮点 浮点 浮点 ALU运 殊的存储结构和寻址方式,对于如何优化数组和标量数据的存 算部件 乘法器加法器乘江器 储地址分配进行了研究。 Lepers在经典的树模式匹配和 动态规划代码生成算法的基础⊥,提出了在代码选择(coce 整型 浮点 selection)阶段进行SMD指令转换的方法。为了从中间代 寄存器 寄存器 码中识别尽可能多的SIMD指令, Lepers采用的是图模式匹 电源门控 PGCR 配,而且在模式匹配时可以有多条规则作为备选。图模式匹配 图1电源门控 完毕后,使用整数线性规划对于代码选择的约束条件进行建 2指令级功耗模型 模,规划的目标区数使得sMD指令的转换最大化 2.2指令低功耗调度(参数∑0×N,) 指令级功耗模型赋予每一条指令一定的功耗值,不同的指 调度就是在不改变程序语义的前提下,重新安排指令执行 令操作可能访问寄存器也可能访问存储器,因此不同的指令功的顺序,这样通过调度可以改变程序运行的功耗,为了减少程 耗值是按照实际情况给出,然后配合模拟器执行可以得到软件序执行的功耗低功耗调度通常是通过适当安排指令执行的顺 的功耗。基本的指令级功耗模型是由Twan提出来的,他认为序减少指令间效应造成的功耗,对应在使件上就是减少程序在 个程序执行完毕所耗费的能量分为三部分:每条指令的能量执行部件、通信部件和存储部件因电路信号翻转造成的功耗 和该指令执行次数的积:指令问效应造成的附加能量与执行次在Ⅵw体系结构中虽然有多个执行部件,但大多数情况下每 数的乘积;由于资源限制或者流水线停顿所造成的附加能量 拍流出的指令数是不同的,因此每一拍的功率也是不一样 可用式(2)表示。 的。相邻拍之问的功率差—级差功率( step power)和峰值功 E=∑×N1+∑0×N2+∑E (2) 率( peak power)对丁处理器的可靠性会有很大的影响。Ym等 其屮:E表示程序执行完毕所耗費的能量;表示某条指令;N1人3提出了功率敏感模调度算法,在不牺牲性能的情况下,调 表示该指令执行的次数;表示逅历程序中所有的指令;表示整模调度算法通常使用的ASAP( as early as possible)策略,使 某两条指令之间的附加能量;N表示该两条指令邻近出现的得调度后每一拍流出的指令数尽可能一致,从而达到大幅降低 次数和k表示遍历所有相邻的两条指令的情况;E。表示造成级差功率和峰值功率的目的。 流水线停顿和访问 cache不命中等情况造成的附加能量;o表 Panda等人提出一种用于VLW的高性能处理器的功 示遍历所有由这种情况造成附加能量的指令5 率敏感的模调度算法。概括地讲,该算法是在基本不损失性能 基于指令级功耗模型提出的相关因素,很多学者都从这的情况下,通过构造一个在各个周期吏加半衡的调度结果来减 个方面的某一个细节深入进去,找寻不降低程序性能或者是稍少单功率和峰值功率。Ym等人3是以Rm的迭代模调 微降低程序性能但能大幅度降低功耗的算法和结构模型。 度算法为原型作了适当的修改。 26 计算机应用研究 工力生等人提到,运行某一特定程序的处理器的功率次寄存器访问的哈明距变小,以减少寄存器译码部分和指令总 P=1×V。(/为平均电流,V为给定的电压),则程序的功耗线的信号翻转,从而降低功耗。与传统的着色图寄存器分配算 E=Pxt(t为程序的执行时间);同时,t=N×T(T为指令周法不同, Gebotys等人4将寄器的分配映射为网络流问题, 期,即为主频的倒数,N为程序执行的周期数)。Va和T都是以变量的生命周期为顶点、以寄存器中变量的转换为边、以变 已知量,因此程序消耗的电能E与电流和程序周期数N的乘量转换所带来的功耗为边的权,使用最小費用网络流算法实现 积成正比。综上所述,可以利用嵌入式处理器中的多数据存储低功耗的寄存器分配。 Zhang yun-min等人4在此基础上,对 区域的特性实现数据的并行处理,通过对指令的排序,减少指程序中存在分支、合并、循环等控制机构时,如何使用最小费用 令的执行周期,从而达到降低功耗的目的。采用带有两个权值刈络流算法实现低功耗的全局寄存器分配进行了研究。 的数据依赖图,第一个权值表示该指令在数据依赖图的深 在嵌入式系统中,除了常见的存储器、 cache等,近年来开 度,也是优先级的体现,第二个权值表示当前指令需要用到什始出现了新的存储形式—高速暂存区(SPM)7。与 cache 么器件;然后根据数据依赖图,利用指令顺序的调整算法调整不同,SPM是由编译器完全控制的,它的出现,除了可以提高 指令能够最大限度地使用逻辑器件ALU、乘除汰模块,增加并性能外,还克服了 cache的存在造成的程序不可预测性,这 行度,减少指令的执行周期,从而降低功耗。 点对实时系统尤其重要。 Steinke等人对如何优化Sn的 2.3存储部件(参数∑En) 分配算汏降低程序功耗作∫研究,其基本思想是将指令和数撫 现在一般硬件的存储部件主要有寄存器、 cache和存储器放入SPM所节省的功耗为收益,把可以获得最大收益的指令 三种形式。实际上,在硬件执行程序的过程中,存储系统占整和效据放入sPMn 个功耗的很大一部分,有时甚至比训算部件的功耗还要大。现3编译优化(循环优化、内联) 代微处理器中 cache已经成为不可缺少的重要部件,其功耗约 占整个芯片功耗的30%-60%M,如何减少 cache的功耗 对于某个使件来说,执行程序所产生的功耗取决于它的机 已成为当今 cache设计者关注的焦点。夏宏等人提出了一器代码,假设不考虑操作系统的影响,而机器代码是从源代码 种基于 cache可重维技术以及数据符号压缩技术的低功耗D.编译而来的,可以说编译过程也影响了硬件的功耗。既然编译 cice-设计方法,其技术关键在于动态调整cⅶslh的组织结构,器可以很大程度上控制硬件的运行钆迹,除了传统的优化目 并且改变 cache-line中数据的存储方式来降低 cache功耗 标——性能之外,编译器也可以通过适当的优化使得硬件执行 虽然对于cche和存储器编译优化的研究山来已久,但对某一个程序时的功耗变小。 于专门实现 cache和存储器等存储部件低功耗编译技术的硏3.1循环优化 究是近三四年才刚刚开始的。传统编译器对于存储系统进行 编译优化中,能删除源代码中冗余操作的优化无疑对降低 的优化词度,中心思想是提高代码的局部性,减少程序运行时功耗是有好处的,但是多数编译优化技术对功耗的影响还没有 间,这些优化通常也可以起到降低功耗的作用。 Kandemir等得到全面、合理的评价。事实上,对编译优化的科学评价,对于 人对于当前流行的循环优化技术,如循环展开、循环合并、功耗敏感的编译器中优化种类的选择,现有优化技术面向低功 循环交换、标量扩展等,对功耗的影响作出了评估。他认为这耗的改进和提出新的降低功耗的编译优化都是十分有用的。 些优化技术令计算部件的负载增大,减少了对 cache和储器 Yang Hong-bo等人通过分析和实验给出了一些高层循环优 的访问,从而使得 cache和存储器的功耗减小,计算部件的功化对功耗的影响。 耗增大,但总的功耗降低了。 般来说,编译优化在提高性能的同时,对于降低功耗可 方亮等人提出片上 cache是处理器芯片中的主要功耗以分为两个方面:一方面因为这些优化能使整体执行时间减 源之一,采用低功耗cahe可有效降低处理器整体功耗。他们少,所以从这方面来说对降低功耗是有帮助的;另一方面,某些 对低功耗 cache设计进行了研究,介绍了当前低功耗 cache设优化对降低功耗又有不利的影响,如开发指令级并行的某些多 计的主要方法和一种低功耗可重构的数据 cache的体系结构数优化都会增加单位时间的功耗。所以在进行功耗优化时需 及相应的重构算法,给岀了一种新的重构算法—aw-high要在提高性能和增加功耗两者之间杈衠。高层循环优化(如 boundary(IHB)算法。实验表明LHB算法在性能和功耗上均循环置换、循环分块等)和低层循环优化(如循环展开、软流 优于原算法。蒋湘涛等人提出用各种编译器导向方法来静水等)对于功耗的影响是紧密相关的,所以不应当单独地评 态或动态地管理SPM内容,其关键问题是如何最大化地重复价某种优化的作用,而是应当综合评价这些优化。其实在前 访问SPM中的内容。针对此叫题,通过分析程序调用序列,构部分的指令级功耗模型的综述中,有些方法就是从编译的过 造低功耗编译优化,使无调用关联的局部变量共享全局存储单程中来考虑降低整个软件的功耗,像低功耗编译技术就是从 元,以降低程序运行时对内存的需求。金晶等人“3在片上存编译的角度来选取低功耗指令代替高功耗指令完成编译的 储器领域,结合基于IP采用细化后的 Knapsack算法,提出 整体效果。 种针对功耗优化的SoC片上存储器分配策略,并通过仿真结果 概括地说,循环展开因为能充分发掘不同迭代之间的指令 表明该方法能够显著降低行储子系统功耗。 级并行性,并且能减少循环控制语句的执行次数以及语句的跳 减少寄存器文件的功耗是通过改进寄存器分配算法实现转,所以能减少整体的执行时间,从而降低功耗。软件流水也 的。传统上,寄存器分配的主要目的是最大限度地利用寄存可以通过减少整体的执行时间而对降低功耗有帮助。但是实 器,减少溢出代码。 Mehta等人“提出了低功耗的寄存器分配验证明,软流水对功耗的影响很大程度上依赖于它之前执行的 算法,这个算法建立在通过调整相邻寄存器访问,使得前后两高层循环变换。 第2期 周宽久,等:嵌入式软硬件低功耗优化研究综述 427 循坏置换、循坼分块、循坼合并等高层优化能够明显地降参考文献 低功耗,因为这些优化既能减少总体的执行时间,又能够改普1]陈吉华,李少青,孙绪红,等,Ⅵ的门级低功耗设计优化技术 cache命中和 cache中不必要的存人和移除 J.计算机应用,2000.20(增刊):6 3.2内联优化 [2 BEEREL P A, MENG T H Y. Automatic gate-level synthesis of 当然在编译过程中不单是单个过程中的循环能够采取循 speed-independent circuits[C//Proc of Intemational Conference on Compuler Aided Design. Los Alamitos: IEEE Cumputer Sociely 环交换、循环合并,语句的移动以及循环屮数组访问的下标对 1992:581-586. 齐等方法对循坏进行优化,对于不同过程中的调用连接也可以[3] MUNCH M, WURTH B. Automating RT. level operand isolation to 按照一定的标准进行优化。过程的调用需要保存现场、保存变 minimize power consumption in datapaths[ C]//Proc of Conference on 量、保存内容到寄存器或堆栈,然后进行PC的跳转,这样必然 Design Automation and Test. 2000: 624-633 需要耗费能量。然而可以采用內联的方法去除这部分功耗,当[4]李住,徐男,李晓维,等,体系结构级功耗分析方法[J],计算机 然并不是所有的过程调用都直接内联,需要给出内联标准,因 仿真学报,2004,16(12):2821-2827 为不合理的內联会使程序的代码量急刚的增加,从而增加系统 [5 KIM N S, AUSTIN T, BLAAUW D, et al. Leakage current: Moore 's law meets static power[ J. Computer, 2003, 36(12): 68-75 将程序读入內存执行过程中的功耗。具体是否对过程调用采 [6]骆祖莹,潘月斗.CMUS电路品体管级功耗凭亿方法[J].计算杌 取内联的标准为 研究与发展,2008,45(4):734-740 a)对于被用的过程,被调用的频率高并且内联之后单7] PANDA P R, DUTT N, NICOLAU A. Efficient utilization of scratch 个过程不会超过指令rdhe的大小,这样能够十分明显地降低 pad memory in embedded processor applications C //Proc of Confe 凋用过程中的保存现场和恢复现场所耗费的功耗。 rence on Design, Automation and Test in Europe. 1997 b)如果过程被调用的次数较少也可以被直接内联,如一181 SU Ching-long, TSUI Chi-ying, DESPAIN A M. Low power archited 次或者两次,视具体程序来调整该部分“少”的定义。 ture design and compilation techniques for high-performance proces- scrs[ C]//Proc cf COMPCON. 1994: 489-498 )另外被词用的过程代码量少,调用和返回指令保存现 [9]陈嘉,董渊,杨阳,等基于指令聚类与指令调度的嵌入式软件功 场所占据的空间比被调用过程本身所占用的空间大。 耗伏化研究[J.小型微型计算机系统,2006,27(1):175-179 [10董鹏,陈胜利,王晚东,等.纳米/亚微米级粒度标准物质的研究 4总结与展望 [J].中国粉体工业,2006(6):19-22 随着嵌入式设备的不断发展,功耗问题成为一个严重制约 [II夏军,郑建宏,嵌入式系统的动态源管理架构[J].单片机与嵌 入式系统应用,2005(1):8-10,24 其发展的因素,因此在不降低系统性能或者很少的性能损耗前 12. XIE Fen, MARTONOSI M, MALIK S. Compile-time dynamic voltage 提下,实现功耗优化研究有很大的实用价值。本文从硬件级 scaling settings: opportunities and limits[ C]//Proc of ACM SIGPLAN 指令级和编译级二个层次阐述了功耗优化领域各个研究方向 Conference on Programming Language Design and Implementation 的进展。主要根据Twan提出的公式展开,从公式的各个影响 New York, ACM Press. 2003. 49-62 因子来综述该方向的研究方法并给出其可行性评价,并从编译113 HSU C H, KREMER U. HSIAO M. Compiler-directed dynamic volt- 的角度来讨论,因为从高级语言到低级语言的编泽过程中,存 age/frequency scheduling for energy reduction in microprocessors 在低功耗指令的选取循坏的优化和过程的内联等都能够很好 [C//Proc of International Symposium on Low Power Electronics and Design. New York: ACM Press, 2001: 275-278 地降低系统的功耗。 14 HSU C H. Compiler-directed dynamic voltage and frequency scaling 另外,笔者所在实验室基本完成了 SPARC处理器芯片的 for CPU power and energy reduction D]. New Brunswick: State 仿真,功耗优化也是 SPARC仿真器需要考虑的关键问题之 University of New Jersey, 2003 SPARC是一款拥有寄存器窗口结构,并且具有ARM所没有的[15 FAN XIao-bo, ELLIS C S, LEBECK R, The synergy between pow 除法指令和浮点数处理指令的特殊RISC芯片,其功耗优化在 er-aware memory systems and processor voltage scaling[C]//Proc of 国内外研究很少。讨论分析功耗优化方法,吸取优点,针对 the 3 rd Workshop on Power-Aware Computer System. Berli SPARC的特点和实际应用,找出适合 SPARC的功耗优化方法 er,2003:164-179 并将具集成到实验室仿真项日,完成针对 SPARC的功耗优化[16马彦霞,陈玉国,司爱国LC中将格雷码转换成二进制码一种运 算方法[J].徽计算机信息,2006,22(28):100-101 研究。 [ 17. TIWARI V, MALIK S, WOLFE A. Compilation techniques for low 可考虑的方向有三个:a)基于汇编指令级的优化,访问存 energy: an overview[C//Proe of IEEE Symposium on Low Pcwer 储器的功耗比访问寄存器多得多,而 SPARC芯片具有寄存器 Electronics. 1929.38-39 窗口结构,每层寄行器窗口都有局部寄行器、输入寄亻器、输岀「18ˉ陈燕,重世娜,赵宏杰.影响电解电容器漏电流的因素[J].电子 寄存器和公用的全局寄存器,具有庞大的寄存器组结构,因此 产品可靠性与环境试验,2007,25(6):64-66 主要考虑如何最大限度地痉免访存,用访问寄存器代替访存来[19.刘丽妹,姜惠君,莫文玲,等,FN结正向电流一电压关系的一种简 降低功耗;b) cache的命中率问题;c)在源码级别考虑循环、内 洁阐述|J|.物理与工程,2008,18(3):62-65 [20. YOU Yi-ping, LEE Chin-gren, LEE J K. Compilers for leakage pow- 联和递归的优化,通过循环优化来减少指令的执行时间,内联 er reduction[ J]. ACM Trans on Design Automation of Electronic 减少程序调用过稈中的能量消耗。然后将优化的方法应用到 Systems,2006,11(1):147-164 已经完成的 SPARC仿真系统并进行结果分析,体现出实际应[21赵晓莺,易江芳,佟东,等,利用遗传箕法实现CMS组合电路静 用价值。 态功耗优化[J.北京大学学报:自然科学版,2007,43(3):421

...展开详情
试读 5P 论文研究-嵌入式软硬件低功耗优化研究综述.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 至尊王者

    成功上传501个资源即可获取
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
论文研究-嵌入式软硬件低功耗优化研究综述.pdf 9积分/C币 立即下载
1/5
论文研究-嵌入式软硬件低功耗优化研究综述.pdf第1页

试读结束, 可继续读1页

9积分/C币 立即下载 >