【UEFI】---關於BIOS,EIST和PState&CState和CPU主頻變化得關系


Intel處理器都支持Turbo和EIST,且一般情況下,各家廠商在BIOS中都會設置EIST和PState的開關,那么這些開關與CPU的頻率的關系是什么呢?今天對此做個總結:

按照國際慣例,本次梳理將會解決下列問題:

1. EIST是什么?

2. EIST與Turbo與PState和CPU頻率得關系

3. 如何在linux下使用Pwr工具查看CPU頻率,以及Linux系統安裝MSR相關的驅動接口

4. BIOS關閉了EIST,為何Linux系統下CPU主頻會降低?

 

EIST是什么?

EIST---全稱為“Enhanced Intel SpeedStep Technology”,是Intel開發的專門為移動平台和服務器平台處理器開發的一種節電技術。它能夠根據不同的系統工作量自動調節處理器的電壓和頻率,以減少耗電量和發熱量。這樣一來,我們就不需要大功率散熱器散熱,也不用擔心長時間使用電腦會不穩定,而且更加節能。

 

EIST與Turbo與PState的關系

Turbo是睿頻開關,顧名思義,如果設為Enable,則CPU可以睿頻運行。一般來說,EIST作為智能降頻開關,優先級較高,如果EIST設為diable,則不允許CPU節能,CPU正常運行主頻應當一直在標頻。Turbo為睿頻開關,當EIST設為disable后則Turbo應當加灰失效。

PState屬於ACPI中得一個概念,本節不是主要介紹ACPI,因此再此不多贅述,PState標志着CPU節能等級,如果PState被設置為Enable后,則CPU將會在不同得PState狀態之間進行切換,一般應用較多得是P0-P4,后面還可以到P10。CPU在P狀態之間進行切換時,CPU的頻率,CPU內部核心電壓,Cache緩存的數據量以及喚醒時間會有所變化,總之最終得目的亦是為了節省能耗。

EIST與Turbo和Pstate三者之間得關系:僅關注CPU主頻角度來看得話,EIST是總開關,如果設為Disable則Pstate也會設為Disable,體現在BIOS中你可以看到,Pstate得開關會隨着EIST得disable而加灰,意思是禁止PState。此時進入到OS后,CPU得主頻應該穩定在標頻運行,此時Turbo開關也會隨着EIST而加灰無效,意為不可睿頻,此時即使使用PTU工具加壓,也只會穩定在標頻。但若EIST設為Enable,情況還稍微復雜下,但也基本是反着來得。我用下面得表格加以說明:

 

如何在linux下使用Pwr工具查看CPU頻率,以及Linux系統安裝MSR相關的驅動接口

Linux系統下可以通過‘cat /proc/cpuinfo’命令來看CPU各個核心得頻率是多少,同時Intel也提供了PTU加壓與查看主頻得工具包可以直接使用。以筆者使用得Broadwell De得處理器為例,在intel官網上直接下載工具包后,在Linux系統下運行即可。這里補充一個小問題,有時可能會遇到Pwr得工具無法運行,報錯顯示MSR得driver沒有提供。如下圖

 

 

針對這個問題,方法其實很簡單:

  1)  查看/dev/cpu/路徑下,按理來說應該有CPU每個core訪問MSR得驅動接口才對,如果沒有,可以用如下指令:

  2)  modprobe msr

  3)運行完后,再查看/dev/cpu/路徑下,應該會多點什么東西,如下圖:

 

 這時候再運行PWR工具即可直接運行,

 

BIOS關閉了EIST,為何Linux系統下CPU主頻會降低?

有時候可能遇到BIOS中管別EIST,此時PState也失效了,但是在系統下查看CPU主頻發現,頻率還是在波動,這個是什么原因呢?

答: Linux內核在加載得時候,有可能會把BIOS關閉得PState重新打開,導致CPU仍開啟節能模式,CPU主頻會波動,解決方式有兩個:

  1) 如果有OS源碼,直接找到這個地方,關閉即可。

  2) 在GRUB添加配置項,load OS時關閉PState即可,以筆者得為例:

    a. 在GRUB界面,選擇即將加載得os選項,然后按e,進入到開機參數編輯界面

    b. 添加指令 ‘intel_pstate=disable’

                  

    c. 按下F10保存開機即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM