一種操作系統(tǒng)下獲取cpu溫度的方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及服務(wù)器領(lǐng)域,特別涉及操作系統(tǒng)下獲取CPU溫度的方法。
【背景技術(shù)】
[0002]在服務(wù)器領(lǐng)域,隨著服務(wù)器的集成度越來越高,越來越普及,廠商和用戶對(duì)散熱系統(tǒng)也越來越重視。不同的散熱系統(tǒng),獲取準(zhǔn)確的CPU溫度是散熱的必要條件之一。目前BMC控制的風(fēng)扇散熱系統(tǒng),獲取CPU溫度的方式,是通過ME來完成的。首先,ME以PECI方式的讀取CPU溫度,然后BMC再和ME通信,發(fā)送一系列命令請(qǐng)求及ME的應(yīng)答,最終獲取溫度值,如圖1所示。
[0003]現(xiàn)有的BMC獲取溫度的方式,絕大多是情況是沒有問題的,但是小概率會(huì)出現(xiàn)問題,BMC和ME通信的時(shí),如果BMC發(fā)送命令后沒有按時(shí)收到ME的應(yīng)答,BMC仍然會(huì)繼續(xù)發(fā)送下一條命令,此時(shí)BMC收到上一條命令的應(yīng)答,就會(huì)造成命令和應(yīng)答不一致的錯(cuò)亂,最終獲取的溫度值就是錯(cuò)誤的,導(dǎo)致整個(gè)散熱系統(tǒng)失效。這種失效的表現(xiàn)是,風(fēng)扇全部全速旋轉(zhuǎn),噪音非常大,整個(gè)系統(tǒng)的功耗也會(huì)增加,而且這種故障失效不可自動(dòng)消除,需要給系統(tǒng)斷電,再上電系統(tǒng)才能消除,也不確定故障是否會(huì)再次發(fā)生。因此需要一種備選方案,來解決當(dāng)獲取溫度異常時(shí),仍能通過備選方案來給散熱系統(tǒng)提供準(zhǔn)確的CPU溫度值,保證散熱系統(tǒng)穩(wěn)走性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種操作系統(tǒng)下獲取CPU溫度的方法,采用增加CPU獲取溫度途徑的方式,保證BMC獲取到的CPU溫度值的正確性,解決現(xiàn)有技術(shù)中獲取CPU溫度時(shí)會(huì)造成命令和應(yīng)答不一致的錯(cuò)亂,最終獲取的溫度值就是錯(cuò)誤的,導(dǎo)致整個(gè)散熱系統(tǒng)失效的技術(shù)問題。
[0005]本發(fā)明為解決上述技術(shù)問題而設(shè)計(jì)的這種操作系統(tǒng)下獲取CPU溫度的方法包括以下步驟:A.BMC判斷從ME獲得的CPU溫度是否正確;步驟A中還包括以下分步驟:Al.所述BMC判斷獲取的溫度值是否超過CPU Tjmax,獲取的溫度值超過所述CPU Tjmax為錯(cuò)誤值,低于所述CPU Tjmax為正確值;A2.所述BMC判斷獲取的溫度值是否低于零攝氏度,獲取的溫度值超過零攝氏度為正確值,低于零攝氏度為錯(cuò)誤值;A3.所述BMC判斷獲取的溫度值與上一個(gè)獲取到的溫度值相差是否偏離理論值,即獲取的溫度值與上一個(gè)獲取到的溫度值相差CPU Tjmax 一半以上為錯(cuò)誤值,獲取的溫度值與上一個(gè)獲取到的溫度值相差CPU Tjmax 一半以下為正確值;B.如果從所述ME獲得的所述CPU溫度正確,將所述溫度值用于散熱系統(tǒng);C.如果從所述ME獲得的所述CPU溫度不正確,所述BMC通過B1S獲取所述CPU溫度;步驟C中還包括以下分步驟:Cl.BMC將電平信號(hào)變化傳遞給PCH的特定GP1 ; C2.觸發(fā)一個(gè)SCI中斷;C31.0S執(zhí)行所述步驟C2中所述SCI中斷對(duì)應(yīng)的EventASL程序;C32.在Event ASL程序中通過SMI命令端口,再觸發(fā)一個(gè)Soft SMI中斷,系統(tǒng)進(jìn)入SMM模式;C4.從B1S獲取所述CPU溫度值,并將該溫度值傳遞給所述BMC ;步驟C4中還包括以下分步驟:C41.B1S開始執(zhí)行對(duì)應(yīng)的SMI Hander程序,在程序中獲取CPU的溫度值,并將CPU溫度值寫入SMI數(shù)據(jù)端口 ; C42.退出SMM模式,返回到ASL程序中,OS讀取SMI數(shù)據(jù)端口獲取的CPU溫度值;C43.0S使用ASL程序與BMC進(jìn)行通信,將CPU溫度值傳遞給BMC。
[0006]本方法,針對(duì)目前BMC獲取溫度方案所存在的問題,進(jìn)行的了改進(jìn)優(yōu)化,增加了備選方案,通過兩種方案可選,來獲取CPU溫度值,判斷校驗(yàn)溫度值的正確性,某一方案獲取值失效時(shí),立即切換到另外一個(gè)方案來運(yùn)行,確保提供給散熱系統(tǒng)溫度值的準(zhǔn)確性,使散熱系統(tǒng)正常運(yùn)行,增加了散熱系統(tǒng)的可靠性,同時(shí)避免無效溫度導(dǎo)致的風(fēng)扇噪聲污染,及能耗浪費(fèi)。
【附圖說明】
[0007]圖1是本發(fā)明之前的BMC獲取CPU溫度的方式簡(jiǎn)化圖。
[0008]圖2是本發(fā)明BMC獲取CPU溫度的方式簡(jiǎn)化圖。
[0009]圖3是本發(fā)明BMC獲取CPU溫度的流程圖。
[0010]圖4是本發(fā)明BMC從B1S獲取CPU溫度值的流程圖。
【具體實(shí)施方式】
[0011]名詞解釋:
IPM1:智能平臺(tái)管理接口(Intelligent Platform Management Interface)是一種開放標(biāo)準(zhǔn)的硬件管理接口規(guī)格,定義了嵌入式管理子系統(tǒng)進(jìn)行通信的特定方法。IPMI信息通過基板管理控制器BMC (位于IPMI規(guī)格的硬件組件上)進(jìn)行交流。使用低級(jí)硬件智能管理而不使用操作系統(tǒng)進(jìn)行管理,用戶可以利用IPMI監(jiān)視服務(wù)器的物理健康特征,如溫度、電壓、風(fēng)扇工作狀態(tài)、電源狀態(tài)等。而且更為重要的是IPMI是一個(gè)開放的免費(fèi)標(biāo)準(zhǔn),用戶無需為使用該標(biāo)準(zhǔn)而支付額外的費(fèi)用。具有兩個(gè)主要優(yōu)點(diǎn):首先,此配置允許進(jìn)行帶外服務(wù)器管理;其次,操作系統(tǒng)不必負(fù)擔(dān)傳輸系統(tǒng)狀態(tài)數(shù)據(jù)的任務(wù)。
[0012]BMC:基板管理控制器(Baseboard Management Controller)。一般內(nèi)置在主板上,支持行業(yè)標(biāo)準(zhǔn)的IPMI規(guī)范。BMC提供的功能包括:本地和遠(yuǎn)程診斷、控制臺(tái)支持、配置管理、硬件管理和故障排除。
[0013]OS:操作系統(tǒng)(Operating System,簡(jiǎn)稱OS)是管理和控制計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,是直接運(yùn)行在“裸機(jī)”上的最基本的系統(tǒng)軟件,任何其他軟件都必須在操作系統(tǒng)的支持下才能運(yùn)行。
[0014]ME: Management Engine (英特爾管理引擎)該驅(qū)動(dòng)為Intel針對(duì)其桌面系列芯片組推出的一款熱能管理驅(qū)動(dòng)。它介于固件和系統(tǒng)驅(qū)動(dòng)之間,類似于一種接口(Interface),通過這個(gè)接口,系統(tǒng)可以和固件之間相互作用,從而達(dá)到改善熱能管理的目的。
[0015]CPU:中央處理器(CPU,Central Processing Unit)是一塊超大規(guī)模的集成電路,是一臺(tái)計(jì)算機(jī)的運(yùn)算核心(Core)和控制核心(Control Unit)。它的功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。
[0016]PCH: (Platform Controller Hub) Intel 公司的集成南橋。
[0017]B1S: (Basic Input Output System)基本輸入輸出系統(tǒng),主要用于計(jì)算機(jī)開機(jī)過程中各種硬件設(shè)備的初始化和檢測(cè)。
[0018]SC1: (System Control Interrupt)系統(tǒng)控制中斷,用于通知 OS 執(zhí)行 Event 程序。
[0019]SM1: (System Management Interrupt)系統(tǒng)管理中斷。
[0020]SMM: (System Management Mode)系統(tǒng)管理模式。
[0021]GP1: (General Purpose Input Output)通用輸入 / 輸出。
[0022]ASL: (ACPI Source Language) ACPI 語言。
[0023]MSR: (Model Specific Register)特殊模塊寄存器。它是一組給操作系統(tǒng)或者特權(quán)程序使用的寄存器,用于設(shè)置CPU的工作環(huán)境和標(biāo)示CPU的工作狀態(tài),包括溫度控制,性能監(jiān)控等。
[0024]PEC1: (Platform Environment Control Interface)平臺(tái)環(huán)境式控制接口,它是存在于處理器與其他芯片或系統(tǒng)穩(wěn)定性監(jiān)控設(shè)備之間的專用單線型總線。
[0025]CPU Tjmax的意思是B1S設(shè)置的允許最高CPU溫度,這個(gè)不是當(dāng)前溫度,而是溫度上限。
[0026]下面詳細(xì)說明本發(fā)明的具體實(shí)施方案。
[0027]這種操作系統(tǒng)下獲取CPU溫度的方法包括以下步驟:A.BMC判斷從ME獲得的CPU溫度是否正確;步驟A中還包括以下分步驟:Al.所述BMC判斷獲取的溫度值是否超過CPU Tjmax,獲取的溫度值超過所述CPU Tjmax為錯(cuò)誤值,低于所述CPU Tjmax為正確值;A2.所述BMC判斷獲