全部博文(436)
分类: LINUX
2012-12-03 15:07:00
系统设计者的重要目标之一就是开发低能耗软件
软件低能耗技术分为能耗优化和能耗估算
能耗优化包括:指令级优化、算法级优化、软件体系结构优化。
面向运行系统的软件低能耗技术:面临的主要问题是在满足系统功能和性能约束的前提下,如何设置硬件单元在低功耗状态下工作,达到降低系统能耗的目的
面向开发阶段的软件低能耗技术:面临的主要问题首先是评估软件如何影响系统能耗,其次是如何在满足系统功能和性能约束的前提下优化软件,达到降低系统能耗的目的。
本文主要关注面向开发阶段的软件低能耗技术,这类技术主要研究软件的指令序列、算法以及软件体系结构的特征与系统能耗之间的关系,并围绕这些特征来优化软件,降低系统能耗。
软件能耗的定义:软件执行过程中涉及到的硬件部件能耗之和称之为~
软件能耗估算定义:把软件执行过程中涉及到的硬件部件能耗之和映射到软件组成部分(指令、例程、服务、构件等)称之为~
一、能耗优化
1、 指令级优化:指令级优化主要在编译层面展开,性能优化编译技术,如代码优化、代码调度、寄存器选择等
低能耗编译优化关注软件的基本构成元素——指令。方法:优化指令序列,降低处理器和访存能耗,减少指令执行时间和降低硬件功耗都能降低系统能耗,删除冗余操作指令、代码变换。降低硬件功耗,如降低处理器、存储系统的动态功耗和静态功耗.降低处理器动态功耗的编译优化方法包括采用低功耗指令代替高功耗指令、调节调度算法降低峰值功耗、调节指令执行占用的部件以及编译制导的动态电压?频率调节等
(1) 存储系统的动态功耗:的基本方法是采用传统的存储访问优化方法,减少对Cache和存储器的访问.此外还包括改进寄存器文件分配算法,减少寄存器译码和指令总线信号翻转,优化数据和指令预取方法。
2、 算法级优化:
(1)可以通过选用低能耗的任务间通信方式(存储方式例如:队列,栈,线性表)或改进虚拟内存管理策略来降低系统能耗
(2)Java虚拟机能耗优化近年来受到重视需要特别关注的是垃圾收集器大量访存(垃圾收集器会重新安排所有东西,使其成为一个高速、无限自由的堆模型,同时游刃有余地分配存储空间。)造成的能耗
3、 软件体系结构优化:(体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等)
软件体系结构为构造软件系统的结构、行为和关键属性提供了设计模型和指导,是满足软件质量需求的重要因素,软件体系结构风格决定软件中各组成部分的相互关系,对分布式系统软件的系统能耗有显著影响通过提炼关键特征参数,导出硬件平台能耗与软件体系结构特征间的映射关系,结合特定应用软件场景实例,得到用于评估和优化软件体系结构的软件能耗模型,在评估基础上,可以利用提取的软件体系结构图(SAG),通过替换、合并软件构件,合并任务、调整任务间通信模式来降低系统能耗.此外,通过扩展控制数据流程图优化进程并发管理过程,如合并进程、传输数据批量化、计算迁移、选择高效通信方式等方法,也是降低系统能耗的有效方法
二、软件能耗估算:
软件能耗估算是低能耗软件优化的关键支撑技术之一
1) 现有的软件能耗评估方法主要有实测方法和基于能耗模型的方法.实测方法在实际运行的系统上利用专用测量分析仪器获得程序运行时系统或者某些部件的能耗
2) 基于能耗模型的评估方法首要解决的问题是软件能耗的估算,即利用能耗模型算出所关注的软件组成部分的能耗.基于模拟器的软件能耗估算在模拟运行软件的基础上加入能耗模型来估算软件能耗,其核心问题是建立高效准确的软件能耗模型
3) 软件能耗模型:根据抽象层次不同,面向处理器的软件能耗估算技术可以划分为基于指令级模型、基于体系结构级模型以及更高抽象层次、脱离硬件能耗模型的宏模型.
4) 软件能耗估算的关注范围也逐渐扩大,从只考虑处理器能耗,扩展到内存、外围部件以及全系统;被评估的软件从单个用户程序扩展到操作系统及完整的软件系统(应用程序、中间件和操作系统).
1、 面向处理器的软件能耗估算:其核心问题是建立程序在微处理器上执行及其访存操作的能耗模型.
1) 基于指令级模型的能耗估算: 指令级能耗模型把一个程序的能耗看作是该程序所有指令能耗之和. 需要对整个指令集体系结构(instructions set architecture)的每一条指令,以及每一对指令序列都进行能耗测算.,构造一个大小为O(N2)的指令能耗基础数据表,关键问题是建立相应体系结构指令集对应的指令能耗数据库.
2) 基于处理器体系结构的能耗估算:在体系结构级处理器能耗模型中,处理器的单时钟周期能耗是在该周期中所有活动单元能耗的总和.一个程序的能耗则是在程序执行过程中所有时钟周期内处理器的单时钟周期能耗总和.
3) 基于宏模型的能耗估算:面临的主要问题是找到适当的特征参数和宏模型.
①. 基于软件特征的宏模型方法完全脱离硬件功耗参数,直接建立高层软件特征和能耗的量化关系,把程序模块当作“黑盒”,根据感兴趣的软件特征构造相应的宏模型.
②.基于系统运行参数的宏模型:型主要利用处理器中的性能计数器和事件计数器提供的系统状态参数
2、 面向全系统的软件能耗估算
1) 基于系统模拟器的软件能耗估算:在系统功能模拟器上增加系统部件的能耗模型,估算包括OS在内的软件能耗,这类方法易于建立软件的指令、例程等细粒度组成部分与系统能耗之间的映射,得到广泛的重视
尚待研究的问题
1) 如何提高低能耗软件优化的系统化和自动化程度
2) 如何提高运行时系统的“能耗感知”和“自适应管理”系统能耗的能力
3) 如何与硬件低能耗技术的快速发展同步,更好地发挥硬件的特性.
我的问题:不太理解 什么叫软件体系结构,在我们实际编程中,哪里用到了软件体系结构我再网上查找了一下定义:体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等
这是其中的一个定义,网上没有很统一的一个定义。