动态电压和频率缩放API

时间:2012-01-24 13:55:52

标签: c linux api cpu

Linux上是否存在API(C语言)以允许进程动态更改其运行的核心的电压或频率?

3 个答案:

答案 0 :(得分:1)

可能有这样的库,但即使它没有,您也可以随时打开配置CPU行为的/ sys / devices / system / cpu下的文件。
看一下/ sys / devices / system / cpu / cpuX / cpufreq下的文件。

答案 1 :(得分:0)

您可以通过写入来更改频率电压对: / sys / devices / system / cpu / cpu%d / cpufreq / scaling_setspeed文件。每个硬件线程都有一个文件。但是,您只能更改整个芯片(所有内核)的频率。您可以从以下位置找到可用的频率: / SYS /装置/系统/ CPU / CPU0 / CPU频率/ scaling_available_frequencies

如果您没有此文件夹,请检查您的处理器是否具有增强型英特尔®SpeedStep®技术。如果有,请转到BIOS并启用它,您将看到该文件夹​​。 还有一件事,您可能需要启用/安装cpufreq模块。

希望它可以帮助某人,因为原来的位置已经过时了。

答案 2 :(得分:0)

CPU动态电压 - 频率调整示例:

# See availables operation performance points
cat /sys/class/devices/system/cpu/cpu0/scaling_available_frequencies
384000 460800 600000 672000 768000 864000 960000 1248000 1344000 1478400 1555200

# See current core frequency
cat /sys/devices/system/cpu/cpu0/scaling_cur_freq
384000

# See current core voltage
cat /sys/class/regulator/regulator.3/microvolts
785000

# Change CPU speed to 1248000 MHz
echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

cat /sys/devices/system/cpu/cpu0/scaling_cur_freq
1248000

cat /sys/class/regulator/regulator.3/microvolts
980000
相关问题