專利名稱::計算機系統(tǒng)及其中央處理器的電源管理的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及虛擬機的電源管理
技術(shù)領(lǐng)域:
,具體涉及一種計算機系統(tǒng)及其中中央處理器(CPU,CentralProcessingUnit)的電源管理的方法。
背景技術(shù):
:現(xiàn)有技術(shù)的規(guī)范中,CPU電源管理定義了包括Cx狀態(tài)(如Cl、C2........C7)和Px狀態(tài)的電源管理狀態(tài)。其中,Cx是指CPU低功耗狀態(tài),Cx狀態(tài)下,CPU通過不同深度的睡眠(Sle印)以節(jié)約功耗。I3X是指性能狀態(tài)(performancestate),I3X狀態(tài)下,通過改變CPU電壓/頻率來控制CPU功耗。目前,虛擬機系統(tǒng)中通常是虛擬機管理器(VMM,VirtualMachineMonitor)負責物理CPU的電源管理,VMM會根據(jù)當前CPU的使用情況,制定一定的策略,使CPU進入Cx狀態(tài)或I3X狀態(tài),因此現(xiàn)有技術(shù)僅能在VMM控制臺才能調(diào)整其電源管理策略。而在客戶操作系統(tǒng)(GuestOS)下,用戶通過GuestOS自帶的電源管理策略進行CPU的電源管理時,并不能對物理CPU進行電源管理操作,即客戶操作系統(tǒng)下的電源管理操作是無效的。
發(fā)明內(nèi)容本發(fā)明實施例所要解決的技術(shù)問題是提供一種計算機系統(tǒng)及其CPU的電源管理的方法,使得客戶操作系統(tǒng)能夠?qū)ξ锢鞢PU進行真實的電源管理操作。為解決上述技術(shù)問題,本發(fā)明實施例提供方案如下一種計算機系統(tǒng)中CPU電源管理的方法,包括為第一客戶操作系統(tǒng)模擬虛擬中央處理器VCPU;根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源;在所述第一客戶操作系統(tǒng)的啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài);在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。優(yōu)選地,上述方法中,所述根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),包括配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同;配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同。優(yōu)選地,上述方法中,所述根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),包括根據(jù)預(yù)定的VCPU支持的第一低功耗狀態(tài),虛擬所述第一客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和虛擬所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述第一客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);根據(jù)預(yù)定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。優(yōu)選地,上述方法中,所述對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)的相關(guān)處理資源,包括配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為直接硬件訪問DHA模式;所述執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源狀態(tài),包括根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行相應(yīng)的電源管理操作,控制所述物理CPU的當前電源狀態(tài)。優(yōu)選地,上述方法中,所述對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)的相關(guān)處理資源,包括注冊所述電源管理狀態(tài)涉及的處理程序;所述執(zhí)行相應(yīng)的CPU電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源狀態(tài),包括攔截所述第一客戶操作系統(tǒng)針對所述VCPU的電源管理操作,并調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,控制所述物理CPU的當前電源狀態(tài)。優(yōu)選地,上述方法中,所述注冊所述電源管理狀態(tài)涉及的處理程序,包括注冊所述第一低功耗狀態(tài)涉及的第一處理程序;和/或,注冊所述第一性能管理功能對應(yīng)的性能狀態(tài)涉及的第二處理程序。優(yōu)選地,上述方法中,在所述執(zhí)行相應(yīng)的CPU電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)之后,所述方法還包括控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。本發(fā)明實施例還提供了一種計算機系統(tǒng),包括硬件平臺,所述硬件平臺至少包括物理CPU;運行在所述硬件平臺上的虛擬機管理器;以及,運行在所述虛擬機管理器上的第一客戶操作系統(tǒng);所述計算機系統(tǒng)還包括模擬模塊,用于為所述第一客戶操作系統(tǒng)模擬虛擬中央處理器VCPU;狀態(tài)配置模塊,用于根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源;匯報模塊,用于在所述第一客戶操作系統(tǒng)啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài);電源管理模塊,用于在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。優(yōu)選地,上述的計算機系統(tǒng)中,所述狀態(tài)配置模塊包括第一配置模塊,用于配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同;第二配置模塊用于配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同。優(yōu)選地,上述的計算機系統(tǒng)中,所述狀態(tài)配置模塊包括第三配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一低功耗狀態(tài),虛擬所述第一客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和虛擬所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述第一客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);第四配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。優(yōu)選地,上述的計算機系統(tǒng)中,所述狀態(tài)配置模塊還包括訪問模式配置模塊,用于在啟動所述第一客戶操作系統(tǒng)之前,配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為直接硬件訪問DHA模式;所述電源管理模塊包括直接訪問模塊,用于通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行電源管理操作,控制所述物理CPU的當前電源狀態(tài)。優(yōu)選地,上述的計算機系統(tǒng)中,所述狀態(tài)配置模塊還包括注冊模塊,用于注冊所述電源管理狀態(tài)涉及的處理程序;所述電源管理模塊包括攔截模塊,用于攔截所述第一客戶操作系統(tǒng)針對所述VCPU的電源管理操作;調(diào)用模塊,用于調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,控制所述物理CPU的當前電源狀態(tài)。優(yōu)選地,上述的計算機系統(tǒng)中,還包括除所述第一客戶操作系統(tǒng)外的其它客戶操作系統(tǒng);狀態(tài)同步模塊,用于控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。從以上所述可以看出,本發(fā)明實施例提供的計算機系統(tǒng)及其CPU的電源管理的方法,通過配置客戶操作系統(tǒng)的VCPU支持的電源管理狀態(tài),在客戶操作系統(tǒng)的啟動過程中,通過掃描VCPU支持的電源管理狀態(tài),獲取其支持的電源管理狀態(tài)(Cx,1^),從而在客戶操作系統(tǒng)運行過程中,能夠根據(jù)當前設(shè)置的電源管理策略,對物理CPU進行真實的電源管理操作,方便了客戶操作系統(tǒng)的電源管理,使得用戶使用虛擬機系統(tǒng)的體驗與使用非虛擬機系統(tǒng)的體驗相一致,從而改善了用戶使用虛擬機系統(tǒng)的體驗。并且,本發(fā)明實施例還提供了DHA直接訪問和虛擬機管理器攔截兩種方式,實現(xiàn)電源管理操作。圖1為本發(fā)明實施例所述計算機系統(tǒng)中CPU電源管理的方法的流程圖;圖2為本發(fā)明實施例1所述計算機系統(tǒng)中CPU電源管理的方法的流程圖;圖3為本發(fā)明實施例2所述計算機系統(tǒng)中CPU電源管理的方法的流程圖4為本發(fā)明實施例3所述計算機系統(tǒng)的結(jié)構(gòu)示意圖。具體實施例方式如圖1所示,本發(fā)明實施例所述計算機系統(tǒng)中CPU電源管理的方法,包括以下步驟步驟11,在虛擬機啟動過程中,為第一客戶操作系統(tǒng)模擬虛擬中央處理器(VCPU,VirtualCPU)。步驟12,根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源。這里,所述相關(guān)資源,是第一客戶操作系統(tǒng)下所述VCPU進行與所述電源管理狀態(tài)相關(guān)的電源管理所使用的資源。步驟13,在所述第一客戶操作系統(tǒng)的啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài)。步驟14,在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。即,根據(jù)第一電源管理策略,對所述VCPU執(zhí)行相應(yīng)的電源管理,進而通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。從以上所述可以看出,本發(fā)明實施例在VMM的啟動過程中,配置客戶操作系統(tǒng)的虛擬CPU(VCPU,VirtualCPU)支持的電源管理狀態(tài),并開放了相關(guān)處理資源;在客戶操作系統(tǒng)的啟動過程中,向客戶操作系統(tǒng)匯報VCPU支持的電源管理狀態(tài),使得客戶操作系統(tǒng)獲取VCPU支持的電源管理狀態(tài),從而在客戶操作系統(tǒng)進行電源管理時,例如,根據(jù)用戶設(shè)定的電源管理策略(最高性能、最長電池壽命等),對VCPU執(zhí)行電源管理時,由于相關(guān)電源管理狀態(tài)相關(guān)的處理資源已經(jīng)開放給該客戶操作系統(tǒng),因此,該客戶操作系統(tǒng)在對VCPU進行電源管理時,就能夠?qū)ξ锢鞢PU進行真實的電源管理操作,從而能夠提高用戶使用虛擬機系統(tǒng)的體驗。以下將結(jié)合附圖,通過具體實施例對本發(fā)明作進一步的說明。<實施例1>本實施例中采用攔截方式截獲客戶操作系統(tǒng)的電源管理操作,進而轉(zhuǎn)換為真實CPU的電源管理操作。請參照圖2,本實施例所述計算機系統(tǒng)中CPU電源管理的方法,包括以下步驟步驟21,在虛擬機啟動過程中,通過虛擬機管理器為客戶操作系統(tǒng)模擬虛擬中央處理器VCPU。這里,計算機系統(tǒng)在上電后,按照現(xiàn)有技術(shù)相同的啟動流程啟動。首先計算機系統(tǒng)物理BIOS模塊啟動,對計算機系統(tǒng)進行一系列的硬件設(shè)備檢測以及初始化配置工作;計算機系統(tǒng)物理BIOS模塊的工作執(zhí)行完畢后,將系統(tǒng)控制權(quán)交給引導加載程序模塊。引導加載程序模塊加載預(yù)先制定的包含客戶操作系統(tǒng)硬件信息的配置文件,并引導虛擬機管理器啟動;虛擬機管理器為客戶操作系統(tǒng)創(chuàng)建虛擬機(VM,VirtualMachine),為客戶操作系統(tǒng)生成虛擬硬件平臺,其中包括為客戶操作系統(tǒng)模擬一虛擬的CPU,即VCPU。步驟22,根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并注冊所述電源管理狀態(tài)涉及的處理程序。這里,本實施例預(yù)先制定了客戶操作系統(tǒng)的電源管理需求并保存在計算機系統(tǒng)中。虛擬機管理器根據(jù)該電源管理需求,配置VCPU支持的電源管理狀態(tài)。本實施例中,假設(shè)該電源管理需求是希望VCPU支持的低功耗狀態(tài)和性能狀態(tài)都與物理CPU相同,此時配置VCPU支持的電源管理狀態(tài),包括(1)配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同,具體配置方式可以是在虛擬客戶操作系統(tǒng)的高級配置與電源接口(ACPI,AdvancedConfigurationandPowerInterface)表時,使用計算機系統(tǒng)的物理基本輸入輸出系統(tǒng)(BIOS,BasicInputOutputSystem)模塊提供的ACPI表中與低功耗狀態(tài)相關(guān)的表項,作為客戶操作系統(tǒng)的ACPI表對應(yīng)的表項;以及,虛擬所述客戶操作系統(tǒng)的特別模塊寄存器(MSR,Model-SpecificRegister)中與所述第一低功耗狀態(tài)(包括低功耗狀態(tài)中的C4C7等)相關(guān)的MSR。由于ACPI表指定的固定ACPI描述表(FADT,F(xiàn)ixedACPIDescriptionTable)中包含有CPU支持的低功耗狀態(tài)(包括C2、C3)的信息,因此,客戶操作系統(tǒng)通過使用與物理BIOS提供的ACPI表相同的ACPI表、以及虛擬相關(guān)MSR,從而使得VCPU支持的低功耗狀態(tài)與物理CPU相同。這里,還通過修改CPUID匯報,使VCPU支持mwait指令,從而使得客戶操作系統(tǒng)能夠通過mwait指令,使VCPU進入相應(yīng)Cx狀態(tài)。(2)配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同,具體配置方式可以是根據(jù)所述第二性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持的第一性能管理功能,與第二性能管理功能相同。CPUID匯報用于返回CPU屬性,其中包括CPU支持的性能管理功能,如增強型htelSpeedStep技術(shù)(EIST,EnhancedIntelSpeedStepTechnology)。CPU的性能狀態(tài)Px通過EIST技術(shù)實現(xiàn)。上述步驟22中,還要通過向虛擬機管理器注冊VCPU支持的電源管理狀態(tài)涉及的應(yīng)用程序,用以對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源,具體包括(1)注冊所述第一低功耗狀態(tài)Cx涉及的第一處理程序,所述第一處理程序包括所述第一低功耗狀態(tài)Cx使用到的讀1/0端口的處理程序、和mwait指令處理程序。對于不同的操作系統(tǒng),其低功耗狀態(tài)涉及的處理程序有所不同。例如,對于視窗操作系統(tǒng)WindowsXP,其低功耗狀態(tài)涉及的處理程序是讀1/0端口的處理程序,WindowsXP操作系統(tǒng)通過使用讀1/0端口的方法,控制CPU進入對應(yīng)的低功耗狀態(tài)(Cx狀態(tài))。對應(yīng)Vista,ffin7操作系統(tǒng),通常使用mwait指令處理程序,控制CPU進入對應(yīng)的低功耗狀態(tài)(Cx狀態(tài))。(2)注冊所述第一性能管理功能對應(yīng)的性能狀態(tài)I3X涉及的第二處理程序,所述第二處理程序包括所述第一性能管理功能對應(yīng)的性能狀態(tài)I^x使用到的特別模塊寄存器(MSR,Model-SpecificRegister)讀寫程序。操作系統(tǒng)通常可以通過MSR讀寫程序,讀取或控制CPU的性能狀態(tài)。步驟23,啟動所述客戶操作系統(tǒng),并在所述客戶操作系統(tǒng)啟動過程中,所述客戶操作系統(tǒng)通過掃描VCPU支持的電源管理狀態(tài);虛擬機響應(yīng)該掃描,向客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài),從而客戶操作系統(tǒng)得以獲取所述VCPU支持的電源管理狀態(tài)。這里,掃描包括讀MSR、發(fā)CPUID指令、讀ACPItable等。這里,虛擬機管理器啟動完成后,引導客戶操作系統(tǒng)啟動。本實施例中,客戶操作系統(tǒng)在啟動過程中,按照現(xiàn)有技術(shù)相同的處理方式,掃描獲取所述VCPU支持的電源管理狀態(tài),包括客戶操作系統(tǒng)在啟動過程中,讀取客戶操作系統(tǒng)的ACPI表和相關(guān)MSR,從中獲取VCPU支持的第一低功耗狀態(tài);以及客戶操作系統(tǒng)在啟動過程中,發(fā)出CPUID指令,進而讀取到VCPU的CPUID匯報,從而根據(jù)VCPU的CPUID匯報,獲取VCPU支持的第一性能管理功能,得到VCPU支持的第一性能狀態(tài)。在獲得VCPU支持的第一低功耗狀態(tài)和第一性能狀態(tài)后,即獲取到客戶操作系統(tǒng)支持的電源管理策略,即,客戶操作系統(tǒng)能夠支持哪些電源管理指令,進行哪些電源管理操作。步驟M,在所述客戶操作系統(tǒng)的運行過程中,所述客戶操作系統(tǒng)根據(jù)當前設(shè)置的第一電源管理策略(可以是默認的電源管理策略,也可以是用戶設(shè)置的電源管理策略),對所述VCPU執(zhí)行相應(yīng)的電源管理操作;虛擬機管理器攔截所述客戶操作系統(tǒng)針對所述VCPU的電源管理操作,并調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,進而控制所述物理CPU的當前電源狀態(tài)。這里,客戶操作系統(tǒng)在啟動過程中獲知自身能夠支持哪些電源管理操作,于是在其運行過程中,可以根據(jù)當前設(shè)定的策略進行對應(yīng)的電源管理操作。虛擬機管理器負責攔截客戶操作系統(tǒng)針對所述VCPU的電源管理操作,并調(diào)用事先注冊的處理程序,對物理CPU執(zhí)行相應(yīng)的電源管理操作,從而控制物理CPU的低功耗狀態(tài)和/或性能狀態(tài),具體包括(1)虛擬機管理器攔截到客戶操作系統(tǒng)發(fā)出的性能狀態(tài)對應(yīng)的MSR讀寫操作時,直接對物理CPU進行相應(yīng)的讀寫操作,讀取或控制物理CPU的性能狀態(tài);(2)虛擬機管理器攔截到客戶操作系統(tǒng)發(fā)出的低功耗狀態(tài)I/O端口讀操作時,直接對物理CPU進行I/O端口讀操作,控制物理CPU的所有核都進入對應(yīng)的低功耗狀態(tài);(3)虛擬機管理器在攔截到客戶操作系統(tǒng)發(fā)出的mwait指令時,將該mwait指令轉(zhuǎn)換成I/O端口讀命令,對物理CPU進行I/O端口讀操作,控制物理CPU的所有核都進入對應(yīng)的低功耗狀態(tài)。本實施例中,在所述計算機系統(tǒng)還包括有其它客戶操作系統(tǒng)時,在一個客戶操作系統(tǒng)根據(jù)當前設(shè)置的第一電源管理策略,執(zhí)行相應(yīng)的CPU電源管理之后,還可以控制所述計算機系統(tǒng)中所述其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。例如,可以采用前端驅(qū)動、后端驅(qū)動的方式進行各個客戶操作系統(tǒng)之間電源管理的同步從以上所述可以看出,本實施例所述計算機系統(tǒng)中CPU電源管理的方法,通過預(yù)先配置客戶操作系統(tǒng)的VCPU支持的電源管理狀態(tài),使得客戶操作系統(tǒng)能夠支持相應(yīng)的電源管理操作;并且,通過攔截客戶操作系統(tǒng)的電源管理操作,將該電源管理操作在真實的物理CPU上執(zhí)行,使得客戶操作系統(tǒng)能夠真實地實現(xiàn)電源管理操作,方便了客戶操作系統(tǒng)的電源管理,改善了用戶使用虛擬機系統(tǒng)的體驗。<實施例2>本實施例中,客戶操作系統(tǒng)采用直接硬件訪問(DHA,DirectHardwareAccess)的方式,對物理CPU進行電源管理操作。請參照圖3,本實施例所述計算機系統(tǒng)中CPU電源管理的方法,包括以下步驟步驟31,在虛擬機啟動過程中,通過虛擬機管理器為客戶操作系統(tǒng)模擬虛擬中央處理器VCPU。這里,步驟31與實施例1的步驟21相類似。步驟32,根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為DHA模式。這里,可以根據(jù)預(yù)先確定的所述VCPU支持的第一低功耗狀態(tài),虛擬所述客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);和/或,根據(jù)預(yù)先確定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。本實施例配置所述第一硬件支持DHA模式,從而客戶操作系統(tǒng)能夠直接對第一硬件進行操作。所述第一硬件具體包括第一低功耗狀態(tài)(Cx狀態(tài))涉及的物理CPUI/O端口、mwait指令涉及的硬件、和第一性能狀態(tài)(Px狀態(tài))涉及的MSR。第一性能狀態(tài)是指第一性能管理功能對應(yīng)的性能狀態(tài)。步驟33,啟動所述客戶操作系統(tǒng),并在啟動過程中,所述客戶操作系統(tǒng)掃描獲取所述VCPU支持的電源管理狀態(tài)。這里,步驟33與實施例1的步驟23相類似。步驟34,在所述客戶操作系統(tǒng)的運行過程中,所述客戶操作系統(tǒng)根據(jù)當前設(shè)置的第一電源管理策略,通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行相應(yīng)的電源管理操作,控制所述物理CPU的當前電源狀態(tài)。這里,由于所述第一硬件配置了DHA訪問模式,因此客戶操作系統(tǒng)在對VCPU進行相應(yīng)的電源管理時,是通過DHA方式直接對所述第一硬件進行訪問,從而對物理CPU直接執(zhí)行相應(yīng)的電源管理操作。即,客戶操作系統(tǒng)可以直接對物理CPUI/O端口、相關(guān)MSR進行訪問,實現(xiàn)相應(yīng)的電源管理操作。本實施例中,在所述計算機系統(tǒng)還包括有其它客戶操作系統(tǒng)時,上述步驟34之后,進一步控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致,以使得計算機系統(tǒng)中的所有客戶操作系統(tǒng)顯示的電源管理狀態(tài)均相同?!磳嵤├?>基于上述各個實施例提供的計算機系統(tǒng)中CPU電源管理的方法,本實施例還相應(yīng)地提供了一種計算機系統(tǒng)。如圖4所示,該計算機系統(tǒng)包括硬件平臺,所述硬件平臺至少包括物理CPU;運行在所述硬件平臺上的虛擬機管理器;以及,運行在所述虛擬機管理器上的第一客戶操作系統(tǒng),當然,還可能包括有第二客戶操作系統(tǒng),或者更多的客戶操作系統(tǒng);所述計算機系統(tǒng)還包括模擬模塊,用于在所述虛擬機管理器啟動過程中,為所述第一客戶操作系統(tǒng)模擬虛擬中央處理器VCPU;狀態(tài)配置模塊,用于根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源;匯報模塊,用于在所述第一客戶操作系統(tǒng)啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài);電源管理模塊,用于在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。上述電源管理模塊既可以設(shè)置在第一客戶操作系統(tǒng)中,也可以設(shè)置在虛擬機管理器中。對應(yīng)于上述實施例1,本實施例所述的計算機系統(tǒng)中,所述狀態(tài)配置模塊包括第一配置模塊,用于配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同;第二配置模塊用于配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同。對應(yīng)于上述實施例2,本實施例所述的計算機系統(tǒng)中,所述狀態(tài)配置模塊包括第三配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一低功耗狀態(tài),虛擬所述第一客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和虛擬所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述第一客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);第四配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。對應(yīng)于上述實施例2,本實施例所述的計算機系統(tǒng)中,所述狀態(tài)配置模塊還包括訪問模式配置模塊,用于在啟動所述第一客戶操作系統(tǒng)之前,配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為直接硬件訪問DHA模式;所述電源管理模塊包括直接訪問模塊,用于通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行電源管理操作,控制所述物理CPU的當前電源狀態(tài)。對應(yīng)于上述實施例1,本實施例所述的計算機系統(tǒng)中,所述狀態(tài)配置模塊還包括注冊模塊,用于在啟動所述第一客戶操作系統(tǒng)之前,注冊所述電源管理狀態(tài)涉及的處理程序;所述電源管理模塊包括攔截模塊,用于攔截所述第一客戶操作系統(tǒng)針對所述VCPU的電源管理操作;調(diào)用模塊,用于調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,控制所述物理CPU的當前電源狀態(tài)。本實施例所述的計算機系統(tǒng)中,還包括除所述第一客戶操作系統(tǒng)外的其它客戶操作系統(tǒng);狀態(tài)同步模塊,用于控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。以上所述僅是本發(fā)明的實施方式,應(yīng)當指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。權(quán)利要求1.一種計算機系統(tǒng)中CPU電源管理的方法,其特征在于,包括為第一客戶操作系統(tǒng)模擬虛擬中央處理器VCPU;根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源;在所述第一客戶操作系統(tǒng)的啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài);在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),包括配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同;配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同。3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),包括根據(jù)預(yù)定的VCPU支持的第一低功耗狀態(tài),虛擬所述第一客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和虛擬所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述第一客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);根據(jù)預(yù)定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。4.如權(quán)利要求2或3所述的方法,其特征在于,所述對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)的相關(guān)處理資源,包括配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為直接硬件訪問DHA模式;所述執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源狀態(tài),包括根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行相應(yīng)的電源管理操作,控制所述物理CPU的當前電源狀態(tài)。5.如權(quán)利要求2或3所述的方法,其特征在于,所述對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)的相關(guān)處理資源,包括注冊所述電源管理狀態(tài)涉及的處理程序;所述執(zhí)行相應(yīng)的CPU電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源狀態(tài),包括攔截所述第一客戶操作系統(tǒng)針對所述VCPU的電源管理操作,并調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,控制所述物理CPU的當前電源狀態(tài)。6.如權(quán)利要求5所述的方法,其特征在于,所述注冊所述電源管理狀態(tài)涉及的處理程序,包括注冊所述第一低功耗狀態(tài)涉及的第一處理程序;和/或,注冊所述第一性能管理功能對應(yīng)的性能狀態(tài)涉及的第二處理程序。7.如權(quán)利要求1所述的方法,其特征在于,在所述執(zhí)行相應(yīng)的CPU電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)之后,所述方法還包括控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。8.一種計算機系統(tǒng),其特征在于,包括硬件平臺,所述硬件平臺至少包括物理CPU;運行在所述硬件平臺上的虛擬機管理器;以及,運行在所述虛擬機管理器上的第一客戶操作系統(tǒng);所述計算機系統(tǒng)還包括模擬模塊,用于為所述第一客戶操作系統(tǒng)模擬虛擬中央處理器VCPU;狀態(tài)配置模塊,用于根據(jù)預(yù)定的所述VCPU的電源管理需求,配置所述VCPU支持的電源管理狀態(tài),并對所述第一客戶操作系統(tǒng)開放所述電源管理狀態(tài)相關(guān)的處理資源;匯報模塊,用于在所述第一客戶操作系統(tǒng)啟動過程中,向所述第一客戶操作系統(tǒng)匯報所述VCPU支持的電源管理狀態(tài);電源管理模塊,用于在所述第一客戶操作系統(tǒng)的運行過程中,根據(jù)所述第一客戶操作系統(tǒng)當前設(shè)置的第一電源管理策略,通過對所述VCPU執(zhí)行相應(yīng)的電源管理,控制所述計算機系統(tǒng)的物理CPU的當前電源管理狀態(tài)。9.如權(quán)利要求8所述的計算機系統(tǒng),其特征在于,所述狀態(tài)配置模塊包括第一配置模塊,用于配置所述VCPU支持的第一低功耗狀態(tài),與所述計算機系統(tǒng)的物理CPU支持的第二低功耗狀態(tài)相同;第二配置模塊用于配置所述VCPU支持的第一性能管理功能,與所述物理CPU的CPUID匯報支持的第二性能管理功能相同。10.如權(quán)利要求8所述的計算機系統(tǒng),其特征在于,所述狀態(tài)配置模塊包括第三配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一低功耗狀態(tài),虛擬所述第一客戶操作系統(tǒng)的ACPI表中與低功耗狀態(tài)相關(guān)的表項和虛擬所述第一低功耗狀態(tài)的相關(guān)MSR,使得所述第一客戶操作系統(tǒng)的ACPI表和所述相關(guān)MSR指示所述VCPU支持所述第一低功耗狀態(tài);第四配置模塊,用于根據(jù)預(yù)定的VCPU支持的第一性能管理功能,修改VCPU的CPUID匯報,使得所述VCPU的CPUID匯報支持所述第一性能管理功能。11.如權(quán)利要求9或10所述的計算機系統(tǒng),其特征在于,所述狀態(tài)配置模塊還包括訪問模式配置模塊,用于在啟動所述第一客戶操作系統(tǒng)之前,配置所述電源管理狀態(tài)涉及的第一硬件的訪問模式為直接硬件訪問DHA模式;所述電源管理模塊包括直接訪問模塊,用于通過DHA方式直接對所述第一硬件進行訪問,對物理CPU執(zhí)行電源管理操作,控制所述物理CPU的當前電源狀態(tài)。12.如權(quán)利要求9或10所述的計算機系統(tǒng),其特征在于,所述狀態(tài)配置模塊還包括注冊模塊,用于注冊所述電源管理狀態(tài)涉及的處理程序;所述電源管理模塊包括攔截模塊,用于攔截所述第一客戶操作系統(tǒng)針對所述VCPU的電源管理操作;調(diào)用模塊,用于調(diào)用所述處理程序在物理CPU上執(zhí)行所述電源管理操作,控制所述物理CPU的當前電源狀態(tài)。13.如權(quán)利要求8所述的計算機系統(tǒng),其特征在于,還包括除所述第一客戶操作系統(tǒng)外的其它客戶操作系統(tǒng);狀態(tài)同步模塊,用于控制所述計算機系統(tǒng)中其它客戶操作系統(tǒng)顯示的電源管理策略,與所述第一電源管理策略相一致。全文摘要本發(fā)明提供了一種計算機系統(tǒng)及其中央處理器的電源管理的方法。本發(fā)明通過配置客戶操作系統(tǒng)的VCPU支持的電源管理狀態(tài),開放客戶操作系統(tǒng)下VCPU進行電源管理(Cx、Px)所使用的資源,從而在客戶操作系統(tǒng)運行過程中,能夠根據(jù)用戶設(shè)定的電源管理策略(最高性能、最長電池壽命),來對物理CPU進行電源管理操作,方便了客戶操作系統(tǒng)的電源管理,使得用戶使用虛擬機系統(tǒng)的體驗與使用非虛擬機系統(tǒng)的體驗相一致,從而改善了用戶使用虛擬機系統(tǒng)的體驗。文檔編號G06F1/32GK102117113SQ20091024444公開日2011年7月6日申請日期2009年12月31日優(yōu)先權(quán)日2009年12月31日發(fā)明者周振生,彭剛,河野誠一,邱雨申請人:聯(lián)想(北京)有限公司