用于便携式设备动态电源管理的嵌入式Linux技术
发布时间:2008/5/27 0:00:00 访问次数:410
    
    
    任何拥有笔记本电脑的人都会察觉,当依靠电池供电时,其便携设备的行为与使用交流主电源供电时不同——显示屏变暗、处理器的时钟变慢、系统只要有可能就会转入待机或睡眠状态。pda用户也发现,在停止使用一段时间后显示屏将变暗,设备甚至进入睡眠状态。蜂窝电话用户也已经注意到,背景光和按键照明在完成拨号之后会熄灭。事实上,这些可见行为的背后是软硬件技术和节电机制在发挥作用。
    
    
    全速运行、待机和睡眠等宏观行为利用cpu的固有能力通过降低工作电压或时钟频率来节省功耗。除了全面地改变系统状态外,大多数设备用户察觉不到的是,实际的电源管理也能够逐渐地改变系统状态,这种情况在一秒之内可以发生数百次。
    
    
    任何动态电源管理策略的基础都是调整便携式设备中一个或多个处理器内核的工作电压和频率,此外,在高集成度的powerpc、arm和基于x86的系统中经常包含一个dsp或智能基带处理器。的确,诸如英特尔的strongarm和xscale处理器、ti的omap处理器系列以及ibm最近发布的powerpc 405lp和transmeta crusoe等cpu都提供内核电压和频率的动态调节功能。不过,现代的嵌入式处理器具有非常高的电源效率,以至于cpu并不总是最主要的耗能器件,其它高耗能的器件包括高性能存储器、彩色显示器和射频接口等。因此,如果动态电源管理系统只能调节处理器内核的电压和频率,那么它的用途将有限。
    
    
    一个真正有用的动态电源管理方案应该可以采用与cpu内核运行相协调或相独立的方式,支持对一系列电压和时钟的快速调节。
    
    
    
    
    dpm架构
    
    linux软件堆栈。
    
    
    两个现有的电源管理方案分别来自于pc和笔记本电脑领域:一个是传统的高级电源管理(apm)方案,它目前仍然使用在许多基于linux的便携设备中,但在基于微软操作系统的笔记本电脑和手持设备中已经被逐步淘汰;另一个是高级配置和电源接口(acpi)方案,它是英特尔、东芝和其他一些公司支持的现行标准。在pc、笔记本电脑、服务器、甚至刀片式通信设备等商业硬件中,类似acpi的系统是人们的首选,但它强烈依赖于流行的x86/ia-32 bios 架构。
    
    
    嵌入式系统通常没有类似于pc中的bios,而且通常不具备那么高的机器抽象水平,能够把操作系统与低层次的设备和电源管理活动隔离开来。与其它瞄准电池供电应用的操作系统类似,在嵌入式linux中,电源管理活动需要对操作系统内核和设备驱动程序进行特殊的干预。不过,需要重点强调的是,虽然低层次的动态电源管理是驻留在操作系统内核中,但电源管理策略和机制是来源于中间件和用户应用代码。
    
    
    接口和api
    
    
    理想的电源管理系统应尽可能对更多软件堆栈层达到几乎完全透明的程度。事实上,这是transmeta公司在其crusoe架构中所遵循的路线,而且已经成为基于bios的现有电源管理方案追求的目标。然而,具备手持设备设计经验的开发人员证实,系统内部各部分之间需要某种程度的直接合作,具体描述如下:
    
    
    内核接口
    
    
    在面向linux的dpm架构中,内核中的dpm子系统负责维持整个系统的电源状态,并把dpm系统的不同电源管理模块联系在一起。如果内核的任何其它部分需要与dpm直接对话(尽管这种情况相对较少),那么最好把dpm看成是为驱动程序、中间件和应用程序提供服务的元素。
    
    
    驱动程序接口
    
    
    支持dpm功能的设备驱动程序比默认的驱动程序更了解系统状态:它们在外部事件的驱使下通过设定不同的状态来反映或遵循那
    
    
    任何拥有笔记本电脑的人都会察觉,当依靠电池供电时,其便携设备的行为与使用交流主电源供电时不同——显示屏变暗、处理器的时钟变慢、系统只要有可能就会转入待机或睡眠状态。pda用户也发现,在停止使用一段时间后显示屏将变暗,设备甚至进入睡眠状态。蜂窝电话用户也已经注意到,背景光和按键照明在完成拨号之后会熄灭。事实上,这些可见行为的背后是软硬件技术和节电机制在发挥作用。
    
    
    全速运行、待机和睡眠等宏观行为利用cpu的固有能力通过降低工作电压或时钟频率来节省功耗。除了全面地改变系统状态外,大多数设备用户察觉不到的是,实际的电源管理也能够逐渐地改变系统状态,这种情况在一秒之内可以发生数百次。
    
    
    任何动态电源管理策略的基础都是调整便携式设备中一个或多个处理器内核的工作电压和频率,此外,在高集成度的powerpc、arm和基于x86的系统中经常包含一个dsp或智能基带处理器。的确,诸如英特尔的strongarm和xscale处理器、ti的omap处理器系列以及ibm最近发布的powerpc 405lp和transmeta crusoe等cpu都提供内核电压和频率的动态调节功能。不过,现代的嵌入式处理器具有非常高的电源效率,以至于cpu并不总是最主要的耗能器件,其它高耗能的器件包括高性能存储器、彩色显示器和射频接口等。因此,如果动态电源管理系统只能调节处理器内核的电压和频率,那么它的用途将有限。
    
    
    一个真正有用的动态电源管理方案应该可以采用与cpu内核运行相协调或相独立的方式,支持对一系列电压和时钟的快速调节。
    
    
    
    
    dpm架构
    
    linux软件堆栈。
    
    
    两个现有的电源管理方案分别来自于pc和笔记本电脑领域:一个是传统的高级电源管理(apm)方案,它目前仍然使用在许多基于linux的便携设备中,但在基于微软操作系统的笔记本电脑和手持设备中已经被逐步淘汰;另一个是高级配置和电源接口(acpi)方案,它是英特尔、东芝和其他一些公司支持的现行标准。在pc、笔记本电脑、服务器、甚至刀片式通信设备等商业硬件中,类似acpi的系统是人们的首选,但它强烈依赖于流行的x86/ia-32 bios 架构。
    
    
    嵌入式系统通常没有类似于pc中的bios,而且通常不具备那么高的机器抽象水平,能够把操作系统与低层次的设备和电源管理活动隔离开来。与其它瞄准电池供电应用的操作系统类似,在嵌入式linux中,电源管理活动需要对操作系统内核和设备驱动程序进行特殊的干预。不过,需要重点强调的是,虽然低层次的动态电源管理是驻留在操作系统内核中,但电源管理策略和机制是来源于中间件和用户应用代码。
    
    
    接口和api
    
    
    理想的电源管理系统应尽可能对更多软件堆栈层达到几乎完全透明的程度。事实上,这是transmeta公司在其crusoe架构中所遵循的路线,而且已经成为基于bios的现有电源管理方案追求的目标。然而,具备手持设备设计经验的开发人员证实,系统内部各部分之间需要某种程度的直接合作,具体描述如下:
    
    
    内核接口
    
    
    在面向linux的dpm架构中,内核中的dpm子系统负责维持整个系统的电源状态,并把dpm系统的不同电源管理模块联系在一起。如果内核的任何其它部分需要与dpm直接对话(尽管这种情况相对较少),那么最好把dpm看成是为驱动程序、中间件和应用程序提供服务的元素。
    
    
    驱动程序接口
    
    
    支持dpm功能的设备驱动程序比默认的驱动程序更了解系统状态:它们在外部事件的驱使下通过设定不同的状态来反映或遵循那
上一篇:高性能、低饱和线性稳压器的开发