微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > Linux2.6内核中最新电源管理技术分析及未来发展

Linux2.6内核中最新电源管理技术分析及未来发展

时间:12-07 来源:互联网 点击:

可选频率中一次性选择出可以保证 CPU 工作在 80% 以上负荷的频率,当然如果没有任何一个可选频率满足要求的话则会选择 CPU 支持的最低运行频率。大量用户的测试结果表明这种新的算法可以在不影响系统性能的前提下做到更高效的节能。在算法改进后, ondemand governor 的名字并没有改变,而 ondemand governor 最初的实现也保存了下来,并且由于其算法的保守性而得名conservative 。

支持 Intel Enhanced Speedstep 技术的 CPU 驱动程序的实现前文在讨论cpufreq 的软件结构时已经指出, cpufreq 从设计上将 CPU 变频的 policy 与mechanism 分离开来

并由上层的governor 负责决定 CPU 合适的工作频率。但是在governor根据系统负载的变化决定调整 CPU 的运行频率时,最终还是需要底层与 CPU 相关的特定驱动程序完成设置 CPU 运行频率的任务。这里向读者介绍一下支持 Intel 最新的Enhanced Speedstep 技术的 CPU 驱动程序的实现原理,关注的重点是如何对 CPU 进行变频设置。实际上支持 Intel Enhanced Speedstep 技术的处理器为用户提供了非常简单的编程接口,对 CPU 运行频率进行设置是通过一个名为 IA32_PERF_CTL 的MSR 寄存器进行的,另外还有一个名为 IA32_PERF_STATUS 的MSR 寄存器可供检查 CPU 当前所处的运行频率。当用户需要对CPU 运行频率进行设置时只需按照 Intel 开发手册的说明向IA32_PERF_CTL MSR 寄存器中写入规定的数值即可。

  总结及未来的发展方向

  本文为读者介绍了变频技术在 CPU 硬件上的出现以及 Linux 内核中最初的实现存在的各种问题,并由此导致了 cpufreq 这一新的内核子系统的诞生。虽然早期的cpufreq模块所提供的三种 governors 能够在一定程度下满足用户的需要并且提供了一定的灵活性,但是由于受到当时 CPU 硬件技术水平的限制,仍然有很多不尽如人意的地方。之后随着 CPU 变频硬件技术的不断发展,尤其是 Intel Enhanced Speedstep 技术的出现,原有的技术障碍被打破,随之而来的是 cpufreq 内核子系统有了一个全新的更加完善而高效的 ondemand governor 。

  由此不难看出,内核中的 cpufreq 子系统是由于 CPU 硬件变频技术的出现而出现,同时也在随着 CPU 硬件变频技术的发展而发展。这其实也预示着内核中 cpufreq 子系统未来的发展方向,即继续跟随 CPU 硬件变频技术的发展脚步与时俱进。在本文的最后简单为读者介绍一下在 Intel 最新的 CPU 中针对硬件变频支持的一项新技术。前文提到在支持 Intel 最新的Enhanced Speedstep 技术的 CPU 中提供了名字分别为IA32_MPERF 和 IA32_APERF 的两个 MSR 寄存器,以便为cpufreq 模块所使用的 governor 动态收集系统的负载情况提供直接的硬件支持。其中 IA32_APERF MSR 寄存器当 CPU 处在ACPI C0 状态下时按照 CPU 硬件当前的实际运行频率每隔一个时钟周期加一。 Intel 最新的处理器中进一步考虑了CPU 在运行过程中由于访问内存或 IO 等原因可能会出现流水线停摆的状况时, IA32_APERF 以前这种简单的按照 CPU 当前实际运行频率每隔一个时钟周期加一的做法并不能完全准确的反映CPU 的负载情况。在 Intel 最新的处理器中如果出现流水线停摆的情况, IA32_APERF 将暂时停止累加,而是在对用户真正“有用”的时间周期才会递增,这样 CPU 硬件就可以为cpufreq 模块所使用的 governor 提供比以前更加准确的系统负载统计信息。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top