2014-04-03 15 views
1

我正在尋找一個windows函數,結構,控制處理器的總線速度乘法器的API。換句話說,我試圖通過改變倍頻來調整CPU的頻率。目前,我正在通過使用以下函數修改電源方案來調整CPU速度。如何調整處理器總線乘法器

PowerWriteDCValueIndex(…,…,…,…) 

並調節

 THROTTLE_MAXIMUM; & THROTTLE_MINIMUM; 

然而,這可以讓我改變處理器速度%,這是不準確的。 希望我的問題很清楚,你可以幫忙。

謝謝。

+1

我不認爲你會在這方面得到Windows中的任何東西。你需要一個(主板)供應商特定的軟件/驅動程序來做到這一點。 –

回答

1

OS中的電源狀態處理由內核驅動程序模塊處理,內核驅動程序模塊至少針對特定CPU供應商,有時也針對CPU模型(例如,操作在64位AMD處理器,而不是在32位AMD處理器中,我曾經使用Linux驅動程序來設置AMD處理器的時鐘速度)。

此驅動程序將由一個「調控器」進程控制,該進程將輸入您已使用的配置設置(策略),CPU上的當前負載(通常還有一些「負載歷史」),以減少許多開關)和其他來源,如CPU溫度,電池剩餘電量(如果適用)。 [在移動設備中,CPU的溫度肯定是輸入到等式中的,因爲大多數現代CPU和GPU都可以吸收比設備耗散更多的功率,因此如果功率設置保持在較高的水平,芯片會過熱設置時間太長]

不幸的是,您需要知道比「我想快速運行」更多的細節,然後才能做到這一點。有一些BIOS表格(ACPI和/或其他供應商特定的表格)可以定義在什麼頻率下使用什麼樣的電壓,並且您需要先設置電壓,然後設置時鐘速度,然後提高時鐘速度電壓下降時的速度。這些表格通常不包含CPU可以運行的所有速度,而是「全速」,「中速」和「慢速」設置。 [對於不同類型的CPU,會有多個表格,因爲BIOS不知道構建系統的人是否會使用高功率,高速CPU或低速,低功耗的CPU]。

還有一些寄存器需要編程以確定CPU在切換到新速度之前應該「休眠」多長時間,以使PLL(控制時鐘乘法器)穩定下來。這意味着你不想經常切換。

系統還需要知道時鐘頻率發生了變化,以便可以調整任何取決於CPU速度的處理(例如,使用x86上的RDTSC instruciton測量短時間的事情需要調整它們基於新設置的時間)。如果你沒有完全掌握所有這些東西,那麼你將會遇到一個不穩定的系統(並且在移動設備中,你甚至可以「炒」芯片或者用戶!)。

目前尚不清楚你打算做什麼,但總的來說,最好把這些東西留給已經在系統中的管理員,而不是試圖建立一個更好的系統 - 幾乎所有的嘗試都是爲了使這個「更好「 將失敗。

+0

感謝您的寶貴迴應,但我認爲我可以做得更好:) – Yasz