專利名稱:一種動(dòng)態(tài)配置C-State方法和通信設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種動(dòng)態(tài)配置C-State方法和通信設(shè)備。
背景技術(shù):
隨著節(jié)能在IT業(yè)中越來越被重視,C-State作為一種節(jié)能技術(shù)在x86架構(gòu)服務(wù) 器和個(gè)人計(jì)算機(jī)中的應(yīng)用也越來越廣泛。在ACPI (Advanced Configurationand Power Interface Specification,高級(jí)配置和電源接口規(guī)則)定義的系統(tǒng)處理器電源狀態(tài)中,電 源狀態(tài)被設(shè)計(jì)為C0、C1、C2、C3. . . Cn等多個(gè)狀態(tài),統(tǒng)稱為Cltate。其中,電源狀態(tài)CO是活 躍狀態(tài),表示CPU執(zhí)行指令。Cl到Cn都是CPU睡眠狀態(tài),操作系統(tǒng)在CPU空閑時(shí),可以將其 置于其中一個(gè)睡眠狀態(tài)中,在該狀態(tài)下,CPU不執(zhí)行任何指令;與CO狀態(tài)相比,處于睡眠狀 態(tài)的CPU消耗更少的能源且釋放更少的熱量;η值越大,表示睡眠程度越深,耗能更少,發(fā)熱 也更少。η > 3的Cn狀態(tài)稱之深度C-Mate,深度C-State具有非常明顯的節(jié)能效果。在 進(jìn)入或退出每個(gè)睡眠狀態(tài)時(shí),都有一個(gè)時(shí)間延遲,一般來說,睡眠程序越深,進(jìn)入或退出該 睡眠狀態(tài)的延遲時(shí)間也越長。dtate 的支持需要由以 CPU 為主的硬件、BIOS (Basic Input Output System,基 本輸入輸出系統(tǒng))、OS^perating System,操作系統(tǒng))三者共同完成。CPU提供硬件支持, BIOS在ACPI數(shù)據(jù)結(jié)構(gòu)里面提供C-State描述信息(如_CST、CSD等對(duì)象),C-State描述 信息的內(nèi)容包括如何進(jìn)出各個(gè)C-Mate,支持哪些C-Mate,進(jìn)出各個(gè)C-State的延時(shí),各個(gè) C-State下CPU的功耗等。OS根據(jù)BIOS的描述知道當(dāng)前CPU支持哪些dtate,根據(jù)CPU 是否空閑以及空閑時(shí)間片的間隔來決定進(jìn)入哪種CPU C-Mate,從而以CPU能耗進(jìn)行更好 的控制。隨著C-State技術(shù)的發(fā)展,新出現(xiàn)的深度C-State技術(shù)與一些操作系統(tǒng)(如較老 版本的0S)配合時(shí)會(huì)出現(xiàn)兼容性問題。例如,在系統(tǒng)啟動(dòng)過程或者休眠喚醒過程中,當(dāng)CPU 有一定的時(shí)間空間時(shí),會(huì)通過加載ACPI驅(qū)動(dòng)程序,根據(jù)ACPI數(shù)據(jù)結(jié)構(gòu)里的描述表讓CPU 進(jìn)入深度C-Mate,以實(shí)現(xiàn)最大程序的節(jié)能,但由于進(jìn)出各個(gè)C-State存在著不同程度的時(shí) 延,而一些對(duì)時(shí)延敏感的設(shè)備驅(qū)動(dòng)無法適應(yīng)這種時(shí)延,從而導(dǎo)致驅(qū)動(dòng)加載失敗,造成系統(tǒng)死 機(jī)、藍(lán)屏等故障。現(xiàn)有技術(shù)解決通過禁用C-State —些狀態(tài)來解決啟動(dòng)或睡眠喚醒過程中的死機(jī) 問題,例如,在BIOS里設(shè)置一個(gè)選項(xiàng)來使能或禁止C-Mate功能,當(dāng)發(fā)生系統(tǒng)設(shè)備在啟動(dòng)或 睡眠喚醒過程中會(huì)出現(xiàn)死機(jī)時(shí),則在BIOS將C-State功能禁止,OS在啟動(dòng)過程中檢查BIOS 上報(bào)的信息,如果不支持,則不會(huì)讓CPU進(jìn)入深度C-Mate,從而規(guī)避了啟動(dòng)或睡眠喚醒過 程中出現(xiàn)死機(jī)的問題。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下缺點(diǎn)由于采用禁止深度C-Mate的方法來解決因兼容性問題產(chǎn)生的啟動(dòng)或睡眠喚醒 過程中的死機(jī)問題,使得在系統(tǒng)運(yùn)行過程中將無法使用深度C-State這項(xiàng)節(jié)能技術(shù)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種動(dòng)態(tài)配置C-State方法和通信設(shè)備,用于避免操作系統(tǒng)在 啟動(dòng)過程中出現(xiàn)不兼容問題,并可使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。其中,本發(fā)明實(shí)施例提供了一種動(dòng)態(tài)配置C-State方法,包括如下步驟操作系統(tǒng)在啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述 信息中的內(nèi)容讓CPU在只支持淺度estate的狀態(tài)下啟動(dòng);所述操作系統(tǒng)在啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS執(zhí)行相關(guān)中斷程序,修改 所述C-State描述信息,在所述C-State描述信息中允許CPU支持深度Cltate ;所述操作系統(tǒng)接收所述BIOS修改所述C-Mate描述信息后發(fā)送的通知消息,根據(jù) 所述通知消息讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息中的內(nèi)容 使能CPU支持深度Cltate的功能。本發(fā)明實(shí)施例還提供了 一種通信設(shè)備,包括基本輸入輸出系統(tǒng)處理BIOS處理單元,操作系統(tǒng)處理單元OS ;所述OS處理單元用于在OS啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根據(jù)所 述C-State描述信息中的內(nèi)容讓CPU在只支持淺度Cltate的狀態(tài)下啟動(dòng);所述OS處理單元還用于在OS啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS處理單元執(zhí) 行相關(guān)中斷程序;所述BIOS處理單元通過執(zhí)行相關(guān)中斷程序修改所述C-State描述信息,在所述 C-State描述信息中允許CPU支持深度Cltate ;所述BIOS處理單元修改完所述C-Mate描述信息后通知所述OS處理單元;所述OS處理單元收到所述通知后讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述 C-State描述信息中的內(nèi)容使能CPU支持深度Cltate的功能。上述技術(shù)方案中具有如下的優(yōu)點(diǎn)本發(fā)明實(shí)施例通過在OS啟動(dòng)前填寫C-State描述信息讓OS在啟動(dòng)時(shí)讓CPU只支 持淺度C-Mate ;當(dāng)OS啟動(dòng)后,通過中斷調(diào)用BIOS程序修改C-State描述信息,BIOS修改 完后通知0S,使得OS收到通知后再次讀取BIOS信息使能CPU支持深度C-Mate,從而既避 免了在啟動(dòng)過程中出現(xiàn)的不兼容問題,又能使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些 實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一方法流程示意圖;圖2為本發(fā)明實(shí)施例二方法流程示意圖;圖3為本發(fā)明實(shí)施例三通信設(shè)備結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例三通信設(shè)備具體應(yīng)用時(shí)一種應(yīng)用結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下將通過具體實(shí)施例和相 關(guān)附圖,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。實(shí)施例一本發(fā)明實(shí)施例一提供了一種動(dòng)態(tài)配置C-Mate的方法,包括如下步驟S11、操作系統(tǒng)在啟動(dòng)過程中,讀取C-Mate描述信息中的內(nèi)容,根據(jù)所述C-Mate 描述信息中的內(nèi)容讓CPU在只支持淺度estate的狀態(tài)下啟動(dòng);其中,在操作系統(tǒng)啟動(dòng)之前,BIOS先填寫ACPI數(shù)據(jù)結(jié)構(gòu)中的Cltate描述信息,在 C-State描述信息中只允許CPU支持淺度C-State ;操作系統(tǒng)在啟動(dòng)過程中,讀取C-State描述 信息中的內(nèi)容,使得操作系統(tǒng)根據(jù)這一信息在CPU只支持淺度C-State的狀態(tài)下啟動(dòng),這樣可以 避免操作系統(tǒng)因深度C-State而造成的一些不兼容問題的發(fā)生(如死機(jī)、藍(lán)屏等)。這里的淺度和深度是一個(gè)相對(duì)的概念,例如,在實(shí)際應(yīng)用中,如果操作系統(tǒng)在啟動(dòng) 過程中容易在C5狀態(tài)下發(fā)生死機(jī),而在C4狀態(tài)下不會(huì)發(fā)生,那么,這里的深度C-State可 以理解為C5及其以后的一些狀態(tài),而C4之前的狀態(tài)可以理解為淺度C-Mate。同理,如果在 C4狀態(tài)下容易死機(jī)而C3不會(huì)出現(xiàn)死機(jī)的情況,那么深度C-State可以理解為C4及其以后 的一些狀態(tài)(如C5、C6...),淺度C-State可以理解為C4之前的一些狀態(tài)(如C3、C2...)。 實(shí)際應(yīng)用中,可以根據(jù)系統(tǒng)的實(shí)際情況對(duì)淺度C-State和深度C-State進(jìn)行定義。S12、所述操作系統(tǒng)在啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS執(zhí)行相關(guān)中斷程序, 修改所述C-State描述信息,在所述C-State描述信息中允許CPU支持深度Cltate ;具體的,可以通過SCI (System Control hterrupt,系統(tǒng)控制中斷)來觸發(fā)中斷, SCI觸發(fā)中斷的方式并不唯一,包括(1)通過定時(shí)器觸發(fā)例如,通過設(shè)置相關(guān)寄存器的值,讓相關(guān)硬件產(chǎn)生定時(shí)器中斷;在操作系統(tǒng)啟動(dòng)一 定時(shí)間后觸發(fā)該中斷。(2)通過 GPIO 觸發(fā)例如,南橋的一些GPIO引腳狀態(tài)改變時(shí)的動(dòng)作可以被定義為是否觸發(fā)中斷,因 此,可以將其中一個(gè)或多個(gè)GPIO允許觸發(fā)中斷,并在系統(tǒng)運(yùn)行過程當(dāng)中,通過改變GPIO引 腳電平來觸發(fā)中斷;改變GPIO電平可以由BMC (BoardbaseManagement Controller,單板管 理控制器)來執(zhí)行,BMC為一單板管理單元,用于對(duì)單板進(jìn)行管理。當(dāng)產(chǎn)生中斷后,OS會(huì)收到中斷通知,并判斷中斷的類型(如定時(shí)器中斷或GPIO中 斷等),根據(jù)中斷的類型調(diào)用相關(guān)中斷程序,修改C-State描述信息,在所述C-State描述信 息中允許CPU支持深度dtate。S13、所述操作系統(tǒng)接收所述BIOS修改所述C-Mate描述信息后發(fā)送的通知消息, 根據(jù)所述通知消息讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息中的 內(nèi)容使能CPU支持深度C-Mate的功能。在BIOS修改完C-State描述信息后,操作系統(tǒng)并不知道C-State描述信息已經(jīng)發(fā) 生改變,此時(shí),操作系統(tǒng)仍然只使能CPU支持淺度C-Mate。為了讓操作系統(tǒng)得到Cltate 描述信息更新信息,BIOS在修改完后發(fā)送通知給操作系統(tǒng),操作系統(tǒng)收到通知消息后會(huì)重 新查找C-State描述信息,根據(jù)C-State描述信息里的內(nèi)容使能CPU支持深度Cltate的功能。本發(fā)明實(shí)施例通過在OS啟動(dòng)前填寫C-State描述信息讓OS在啟動(dòng)時(shí)讓CPU只支 持淺度C-Mate ;當(dāng)OS啟動(dòng)后,通過中斷調(diào)用BIOS程序修改C-State描述信息,BIOS修改 完后通知0S,使得OS收到通知后再次讀取BIOS信息使能CPU支持深度C-Mate,從而既避 免了在啟動(dòng)過程中出現(xiàn)的不兼容問題,又能使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。此外,當(dāng)系統(tǒng)處理休眠喚醒狀態(tài)時(shí),喚醒過程與啟動(dòng)過程類似,完成可以參考上述 流程來進(jìn)行休眠喚醒操作,從而既避免了在休眠喚醒過程中出現(xiàn)的不兼容問題,又能使系 統(tǒng)在休眠喚醒后使用深度C-State節(jié)能策略。實(shí)施例二本發(fā)明實(shí)施例基于實(shí)施例一提供了一種動(dòng)態(tài)配置C-Mate的方法,參見圖2,包括 如下步驟S2UBI0S在OS啟動(dòng)前修改C-State描述信息,在Cltate描述信息中只允許CPU 支持淺度C-Mate ;系統(tǒng)在OS啟動(dòng)前先執(zhí)行BIOS程序,BIOS通過修改C-State描述信息(例如修 改C-State描述信息中的CST、CSD等對(duì)象),在C-State描述信息中只允許CPU支持淺度 C-Mate,具體的淺度C-State等級(jí)(如Cl、C2等)可以根據(jù)實(shí)際應(yīng)用情況確定,例如系統(tǒng) 啟動(dòng)過程中如果容易在C3以及以上狀態(tài)出現(xiàn)兼容性問題,則可在描述表中設(shè)置只允許CPU 支持C2以其以下dtate。S22、0S啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容;S23、0S根據(jù)C-State描述信息中的內(nèi)容在CPU只支持淺度C-State狀態(tài)下啟動(dòng);在步驟S21中BIOS已經(jīng)填寫C-State描述信息讓CPU只支持淺度Cltate,步驟 S22、S23通過讀取C-State描述信息,根據(jù)表中的信息在CPU只支持淺度C-State狀態(tài)下 啟動(dòng),可以避免CPU因進(jìn)入深度C-Mate時(shí)出現(xiàn)的兼容性問題(如藍(lán)屏、死機(jī)等)。S24、OS啟動(dòng)后根據(jù)觸發(fā)的中斷調(diào)用所述BIOS執(zhí)行相關(guān)中斷程序,修改所述 C-State描述信息;在OS正常啟動(dòng)后,此時(shí)的OS還是只能支持淺度C-Mate,而不能支持深度 C-State,也無法實(shí)現(xiàn)更進(jìn)一步的節(jié)能。為了讓OS支持深度Cltate,OS先通過觸發(fā)的中斷 調(diào)用BIOS中的中斷程序修改C-State描述信息;這里觸發(fā)的中斷為SCI中斷,具體可以為定時(shí)中斷,或者GPIO引腳狀態(tài)改變時(shí)觸 發(fā)的中斷;BIOS中存儲(chǔ)有SCI中斷相關(guān)的中斷程序;OS收到中斷通知后先判斷是哪種中斷 類型,然后調(diào)用BIOS中相應(yīng)的中斷程序。S25、BIOS通過中斷程序修改C-State描述信息,在C-State描述信息中允許CPU 支持深度C-Mate ;S26、BIOS 通知 OS 已更改 Cltate ;在BIOS中斷程序中,當(dāng)修改完C-State描述信息后,需要通知OS ;否則OS不會(huì)得 到已更改C-Mate描述信息的內(nèi)容,仍會(huì)使用舊C-State描述信息中的內(nèi)容,只支持淺度 C-State0S27、0S收到通知后讀取C-State描述信息中的內(nèi)容,使能CPU支持深度Cltate。本發(fā)明實(shí)施例通過在OS啟動(dòng)前填寫C-State描述信息讓OS在啟動(dòng)時(shí)讓CPU只支持淺度C-Mate ;當(dāng)OS啟動(dòng)后,通過中斷調(diào)用BIOS程序修改C-State描述信息,BIOS修改 完后通知0S,使得OS收到通知后再次讀取BIOS信息使能CPU支持深度C-Mate,從而既避 免了在啟動(dòng)過程中出現(xiàn)的不兼容問題,又能使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。實(shí)施例三本發(fā)明實(shí)施例還提供了一種通信設(shè)備,參見圖3,包括基本輸入輸出系統(tǒng)BIOS處 理單元31,操作系統(tǒng)OS處理單元32 ;所述OS處理單元31用于在OS啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根 據(jù)所述C-Mate描述信息中的內(nèi)容讓CPU在只支持淺度Cltate的狀態(tài)下啟動(dòng);所述OS處理單元還用于在OS啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS處理單元執(zhí) 行相關(guān)中斷程序;所述BIOS處理單元通過執(zhí)行相關(guān)中斷程序修改所述C-State描述信息,在所述 C-State描述信息中允許CPU支持深度Cltate ;所述BIOS處理單元修改完所述C-Mate描述信息后通知所述OS處理單元;所述OS處理單元收到所述通知后讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述 C-State描述信息中的內(nèi)容使能CPU支持深度Cltate的功能。本發(fā)明實(shí)施例BIOS處理單元在OS啟動(dòng)前,還用于填寫C-State描述信息,在描述 信息中只允許CPU支持淺度C-Mate。本發(fā)明實(shí)施例中,上述觸發(fā)的中斷可以為SCI中的定時(shí)中斷,或者GPIO中斷,發(fā)生 中斷后,OS處理單元會(huì)判斷是哪種中斷程序,并調(diào)用BIOS處理單元執(zhí)行相關(guān)的中斷程序。 此外,本發(fā)明實(shí)施例還可以包括BMC單元33,用于實(shí)現(xiàn)管理功能,也可以改變GPIO引腳電平 來觸發(fā)GPIO中斷。本發(fā)明實(shí)施例中,BIOS處理單元以及OS處理單元可以通過各種硬件處理單元及 結(jié)合相關(guān)硬件器件來實(shí)現(xiàn),參見圖4,為本發(fā)明實(shí)施例具體應(yīng)用時(shí)的一個(gè)示意圖,包括業(yè)務(wù)處理單元41,BMC單元42,其他單元43 ;業(yè)務(wù)處理單元41具體包括處理器411,F(xiàn)lash Rom412,硬盤413,以及內(nèi)存、外設(shè)、 總線等器件414;其中,處理器411用于執(zhí)行相應(yīng)的程序,完成業(yè)務(wù)處理單元的處理功能;Flash Rom412用于存儲(chǔ)BIOS程序,BIOS程序包括正常啟動(dòng)所需的程序、OS啟動(dòng)前填寫C-State 描述信息的程序以及OS啟動(dòng)后修改C-State描述信息的中斷程序;其中,C-State描述信 息也位于Flash Rom412當(dāng)中,在系統(tǒng)啟動(dòng)時(shí),C-State描述信息會(huì)加載到內(nèi)存中,OS啟動(dòng)過 程中及啟動(dòng)后從內(nèi)存讀取C-Mate信息;硬盤413用于存儲(chǔ)OS程序以及相應(yīng)的業(yè)務(wù)處理程 序;內(nèi)存、外設(shè)、總線等器件413用于提供相應(yīng)的功能,在此不再贅述。可以將處理器411及Flash Rom412看成是本發(fā)明實(shí)施例中的BIOS處理單元;將 處理器411及硬盤413看成是本發(fā)明實(shí)施例中的OS處理單元;需要說明的是,上述硬件形 式并不唯一,實(shí)際應(yīng)用中也可以采用具有類似功能的硬件設(shè)備來實(shí)現(xiàn)本發(fā)明實(shí)施例。BMC單元42用于完成對(duì)業(yè)務(wù)處理單元41及其他單元43的控制管理,其他單元可 以是散熱、電源、監(jiān)控等單元,在此不再贅述。本發(fā)明實(shí)施例通信設(shè)備具體可以為服務(wù)器或者PC機(jī)(Personal Computer,個(gè)人 計(jì)算機(jī))。
本發(fā)明實(shí)施例當(dāng)設(shè)備上電后,處理器首先運(yùn)行BIOS程序,修改C-State描述信 息,在描述信息中只允許CPU支持淺度C-Mate ;接著,CPU運(yùn)行OS程序,讀取修改后的 C-State描述信息,在只支持淺度Cltate的狀態(tài)下啟動(dòng),以避免出現(xiàn)不兼容的情況;OS啟 動(dòng)后,接收相關(guān)中斷,判斷中斷類型,并調(diào)用BIOS中的相應(yīng)中斷程序,BIOS通過中斷程序修 改C-State描述信息,在描述信息中允許CPU支持深度Cltate,修改完成后通知OS,OS收 到通知后再讀取C-State描述信息,使能CPU支持深度Cltate。本發(fā)明實(shí)施例通過在OS啟動(dòng)前填寫C-State描述信息讓OS在啟動(dòng)時(shí)讓CPU只支 持淺度C-Mate ;當(dāng)OS啟動(dòng)后,通過中斷調(diào)用BIOS程序修改C-State描述信息,BIOS修改 完后通知0S,使得OS收到通知后再次讀取BIOS信息使能CPU支持深度C-Mate,從而既避 免了在啟動(dòng)過程中出現(xiàn)的不兼容問題,又能使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。上列較佳實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng) 理解的是,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種動(dòng)態(tài)配置C-State方法,其特征在于,包括如下步驟操作系統(tǒng)在啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息 中的內(nèi)容讓CPU在只支持淺度C-State的狀態(tài)下啟動(dòng);所述操作系統(tǒng)在啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS執(zhí)行相關(guān)中斷程序,修改所述 C-State描述信息,在所述C-State描述信息中允許CPU支持深度C-State ;所述操作系統(tǒng)接收所述BIOS修改所述C-State描述信息后發(fā)送的通知消息,根據(jù)所述 通知消息讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息中的內(nèi)容使能 CPU支持深度C-State的功能。
2.如權(quán)利要求1所述的動(dòng)態(tài)配置C-State方法,其特征在于,還包括在所述操作系統(tǒng)啟動(dòng)前,所述BIOS填寫所述C-State描述信息,在所述C-State描述 信息中只允許CPU支持淺度C-State。
3.如權(quán)利要求1所述的動(dòng)態(tài)配置C-State方法,其特征在于所述觸發(fā)的中斷為系統(tǒng)控制中斷SCI ;所述SCI為定時(shí)器中斷,或者所述SCI為通用輸 入輸出引腳GPIO中斷。
4.一種通信設(shè)備,其特征在于,包括基本輸入輸出系統(tǒng)處理BIOS處理單元,操作系統(tǒng)處理單元OS ; 所述OS處理單元用于在OS啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根據(jù)所述 C-State描述信息中的內(nèi)容讓CPU在只支持淺度C-State的狀態(tài)下啟動(dòng);所述OS處理單元還用于在OS啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS處理單元執(zhí)行相 關(guān)中斷程序;所述BIOS處理單元通過執(zhí)行相關(guān)中斷程序修改所述C-State描述信息,在所述 C-State描述信息中允許CPU支持深度C-State ;所述BIOS處理單元修改完所述C-State描述信息后通知所述OS處理單元; 所述OS處理單元收到所述通知后讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述 C-State描述信息中的內(nèi)容使能CPU支持深度C-State的功能。
5.如權(quán)利要求4所述的通信設(shè)備,其特征在于所述BIOS處理單元在OS啟動(dòng)前,還用于填寫C-State描述信息,在描述信息中只允許 CPU支持淺度C-State。
6.如權(quán)利要求4所述的通信設(shè)備,其特征在于所述觸發(fā)的中斷為系統(tǒng)控制中斷SCI ;所述SCI為定時(shí)器中斷,或者所述SCI為通用輸 入輸出引腳GPIO中斷。
7.如權(quán)利要求4所述的通信設(shè)備,其特征在于,還包括單板管理控制器BMC單元,用于改變GPIO引腳電平來觸發(fā)GPIO中斷。
8.如權(quán)利要求4所述的通信設(shè)備,其特征在于 所述通信設(shè)備為服務(wù)器,或者個(gè)人計(jì)算機(jī)。
全文摘要
本發(fā)明實(shí)施例公開了一種動(dòng)態(tài)配置C-State方法和通信設(shè)備,其中,所述動(dòng)態(tài)配置C-State方法包括如下步驟操作系統(tǒng)在啟動(dòng)過程中,讀取C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息中的內(nèi)容讓CPU在只支持淺度C-State的狀態(tài)下啟動(dòng);所述操作系統(tǒng)在啟動(dòng)后,根據(jù)觸發(fā)的中斷調(diào)用所述BIOS執(zhí)行相關(guān)中斷程序,修改所述C-State描述信息,在所述C-State描述信息中允許CPU支持深度C-State;所述操作系統(tǒng)接收所述BIOS修改所述C-State描述信息后發(fā)送的通知消息,根據(jù)所述通知消息讀取所述C-State描述信息中的內(nèi)容,根據(jù)所述C-State描述信息中的內(nèi)容使能CPU支持深度C-State的功能。本發(fā)明實(shí)施例通過在OS啟動(dòng)前填寫C-State描述信息讓OS在啟動(dòng)時(shí)讓CPU只支持淺度C-State;當(dāng)OS啟動(dòng)后,通過中斷調(diào)用BIOS程序修改C-State描述信息,BIOS修改完后通知OS,使得OS收到通知后再次讀取BIOS信息使能CPU支持深度C-State,從而既避免了在啟動(dòng)過程中出現(xiàn)的不兼容問題,又能使系統(tǒng)在啟動(dòng)后使用深度C-State節(jié)能策略。
文檔編號(hào)G06F9/445GK102141920SQ20101010325
公開日2011年8月3日 申請(qǐng)日期2010年1月28日 優(yōu)先權(quán)日2010年1月28日
發(fā)明者常琳, 李羿, 王飛舟, 陶林 申請(qǐng)人:華為技術(shù)有限公司