AMD64 CPU根據需要降低頻率和電壓--在debian下的實現方法(轉)

worldblog發表於2007-08-10
AMD64 CPU根據需要降低頻率和電壓--在debian下的實現方法(轉)[@more@]

  提要:使用Cool'n'Quiet技術的AMD Opetron/Athlon64CPU 可以在空載時降低頻率和電壓(風扇轉速的降低依賴於主機板,而和CPU無關。Epox 9nda3+主機板支援根據cpu溫度動態調節風扇轉速,從5000rpm-1000rpm,噪音減少的十分明顯。)

  現在我們就讓這個功能在debian裡起作用。以下使用debian/arch-pure64, 2.6.9核心

  首先確保以下被滿足

  * Power Management Support 電源管理支援

  * CPU Frequency Scaling 可進行頻率調整的CPU

  * 'usrspace' cpufreq policy governor 使用者態CPU頻率控制策略

  * AMD Opteron/Athlon64 PowerNow PowerNow支援

  首先檢查必須模組是否載入:

  pure64[~]cat /proc/modules |grep freq

cpufreq_userspace 6216 2 - Live 0xffffffffa0272000

cpufreq_powersave 2240 0 - Live 0xffffffffa0270000

freq_table 5064 1 powernow_k8, Live 0xffffffffa01bf000

pure64[~]cat /proc/modules |grep k8

powernow_k8 10440 0 - Live 0xffffffffa01c2000

  然後 apt-get install powernowd

  設定開機自動執行powernowd就行了,一般不用加引數

  (powernowd的manpage上寫同樣支援任何使用powernow的AMD CPU 和使用speedstep技術的Intel CPU.不過未經驗證)。

  cat /proc/cpufreq可以看CPU調速的策略

  pure64[~]cat /proc/cpufreq

     minimum CPU frequency - maximum CPU frequency - policy

CPU 0 1000000 kHz ( 55 %) - 1800000 kHz (100 %) - userspace

  cat /proc/cpuinfo看當前CPU Mhz和bogomips

  pure64[~]cat /proc/cpuinfo

processor : 0

vendor_id : AuthenticAMD

cpu family : 15

model : 31

model name : AMD Athlon(tm) 64 Processor 3000+

stepping : 0

cpu MHz : 1004.598

cache size : 512 KB

fpu : yes

fpu_exception : yes

cpuid level : 1

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow

bogomips : 1988.83

TLB size : 1088 4K pages

clflush size : 64

cache_alignment : 64

address sizes : 40 bits physical, 48 bits virtual

power management: ts fid vid ttp

  可以看見空載的時候自動降低頻率到1000Mhz左右,同樣電壓也會降低.

  滿載時頻率自動提升,可以測試一下

  $cat /dev/urandom > /dev/null

$cat /proc/cpuinfo

pure64[~]cat /proc/cpuinfo

processor : 0

vendor_id : AuthenticAMD

cpu family : 15

model : 31

model name : AMD Athlon(tm) 64 Processor 3000+

stepping : 0

cpu MHz : 1808.277

cache size : 512 KB

fpu : yes

fpu_exception : yes

cpuid level : 1

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow

bogomips : 3579.90

TLB size : 1088 4K pages

clflush size : 64

cache_alignment : 64

address sizes : 40 bits physical, 48 bits virtual

power management: ts fid vid ttp

  看每個頻率對應電壓可以dmesg|grep powernow-k8

  pure64[~]dmesg |grep k8

Linux version 2.6.11-9-amd64-k8 (root@athlon.lowpingbastards.de) (gcc version 3.4.4 20050314 (prerelease) (Debian 3.4.3-12)) #1 Sun Mar 27 12:58:31 CEST 2005

powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09e)

powernow-k8: 0 : fid 0xa (1800 MHz), vid 0x6 (1400 mV)

powernow-k8: 1 : fid 0x2 (1000 MHz), vid 0x12 (1100 mV)

  可以看到省電模式下CPU電壓由1.4V降到1.1V.

  手動控制CPU的頻率。

  高速模式(對應1800Mhz)

  echo performance>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

  省電模式(對應1000Mhz)

  echo powersave>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

  回到powernowd控制的自動模式

  echo userspace>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

  P.S.升級至2.6.11後

  2.6.11多出了ondemand模式,使用這個模式就不用使用powernowd軟體了。

  echo ondemand>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940436/,如需轉載,請註明出處,否則將追究法律責任。

相關文章