核心驅動 fam15h_power¶
支援的晶片
AMD Family 15h 處理器
AMD Family 16h 處理器
字首:‘fam15h_power’
掃描地址:PCI 空間
資料手冊
AMD Family 15h 處理器 BIOS 和核心開發者指南 (BKDG)
AMD Family 16h 處理器 BIOS 和核心開發者指南 (BKDG)
AMD64 架構程式設計師手冊第 2 卷:系統程式設計
作者:Andreas Herrmann <herrmann.der.user@googlemail.com>
描述¶
處理器 TDP(散熱設計功耗)
在固定頻率和電壓下,處理器的功耗根據正在執行的工作負載而變化。降額功耗是在執行特定應用程式時消耗的功率。散熱設計功耗 (TDP) 是降額功耗的一個例子。
此驅動程式允許透過 TDP 演算法讀取提供 AMD Family 15h 和 16h 處理器功耗資訊的暫存器。
對於 AMD Family 15h 和 16h 處理器,可以使用不同的處理器北橋功能暫存器計算以下功耗值
- BasePwrWatts
指定處理器 NB 和核心外部邏輯消耗的最大功率(瓦)。
- ProcessorPwrWatts
指定處理器可以支援的最大功率(瓦)。
- CurrPwrWatts
指定處理器當前消耗的功率(瓦)。
此驅動程式提供 ProcessorPwrWatts 和 CurrPwrWatts
power1_crit (ProcessorPwrWatts)
power1_input (CurrPwrWatts)
在多節點處理器上,計算值適用於整個封裝,而不適用於單個節點。 因此,驅動程式僅為多節點處理器的內部 node0 建立 sysfs 屬性。
累計功耗機制
此驅動程式還引入了一種演算法,該演算法應用於計算在測量間隔 Tm 內處理器消耗的平均功率。 累計功耗機制的特性由 CPUID Fn8000_0007_EDX[12] 指示。
- Tsample
計算單元功耗累加器取樣週期
- Tref
PTSC 計數器週期
- PTSC
效能時間戳計數器
- N
計算單元功耗累加器取樣週期與 PTSC 週期的比率
- Jmax
最大計算單元累計功率,由 MaxCpuSwPwrAcc MSR C001007b 指示
- Jx/Jy
計算單元累計功率,由 CpuSwPwrAcc MSR C001007a 指示
- Tx/Ty
效能時間戳計數器的值,由 CU_PTSC MSR C0010280 指示
- PwrCPUave
CPU 平均功率
透過執行 CPUID Fn8000_0007 確定 Tsample 與 Tref 的比率。
N = CPUID Fn8000_0007_ECX[CpuPwrSampleTimeRatio[15:0]] 的值。
從新的 MSR MaxCpuSwPwrAcc 讀取累積能量值的完整範圍。
Jmax = 返回值。
在時間 x,SW 讀取 CpuSwPwrAcc MSR 並採樣 PTSC。
Jx = 從 CpuSwPwrAcc 讀取的值,Tx = 從 PTSC 讀取的值。
在時間 y,SW 讀取 CpuSwPwrAcc MSR 並採樣 PTSC。
Jy = 從 CpuSwPwrAcc 讀取的值,Ty = 從 PTSC 讀取的值。
計算在時間段 (y-x) 內計算單元的平均功耗。結果單位為 uWatt
if (Jy < Jx) // Rollover has occurred Jdelta = (Jy + Jmax) - Jx else Jdelta = Jy - Jx PwrCPUave = N * Jdelta * 1000 / (Ty - Tx)
此驅動程式提供 PwrCPUave 和 interval(預設為 10 毫秒,最大為 1 秒)
power1_average (PwrCPUave)
power1_average_interval (Interval)
可以在 /etc/sensors3.conf 檔案中更新 power1_average_interval,如下所示
- chip fam15h_power-*
set power1_average_interval 0.01
然後使用 “sensors -s” 儲存它。