專利名稱:用于保存處理器狀態(tài)以在處理器功率狀態(tài)之間高效轉(zhuǎn)換的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
實(shí)施例一般涉及用于計(jì)算機(jī)平臺中的功率管理的技術(shù)。更具體地,某些實(shí)施例提供用于保存或恢復(fù)處理器狀態(tài)以支持計(jì)算機(jī)平臺在處理器功率狀態(tài)之間轉(zhuǎn)換的方法。
2.
背景技術(shù):
在集成電路(IC)制造和計(jì)算機(jī)設(shè)備制造的其他方面的改進(jìn)已允許更小和/或更密集的集成平臺架構(gòu)。在這樣的平臺中的電路一般傾向于對功率使用的低效日益敏感,和/或?qū)苄究臻g的低效使用日益敏感。因此,在功率效率、管芯尺寸和/或管芯利用方面的逐步改進(jìn)提供在這些平臺中日益增大的性能增益。在諸如手持設(shè)備(例如智能電話、平板電腦等)的平臺之類的小形狀因數(shù)平臺的情況下尤其是這樣?,F(xiàn)有計(jì)算機(jī)平臺以不同的方式包括一個或多個用于管理對這些平臺的處理器的功率分配或這些平臺的處理器的功率使用的特征。例如,這些特征可例如響應(yīng)于用戶發(fā)起的平臺掛起或休眠請求而以不同的方式實(shí)現(xiàn)處理器空閑狀態(tài)。為了支持諸如C6功率狀態(tài)之類的處理器空閑功率狀態(tài),平臺必須確保處理器的狀態(tài)信息在處理器處于該處理器空閑功率狀態(tài)期間不丟失。在現(xiàn)有技術(shù)中,處理器以不同的方式包括專用硬件,用于將處理器狀態(tài)卸載到芯片上的差別供電區(qū)域或用于在與處理器的另一通用功率域分開的專用功率域中連續(xù)保持處理器狀態(tài)。對用于實(shí)現(xiàn)處理器空閑功率狀態(tài)的這些技術(shù)的依賴已經(jīng)強(qiáng)加了如下要求:處理器的IC芯片上包括各種實(shí)現(xiàn)電路,例如寄存器、功率分配跡線、控制邏輯等中的一個或多個。這些要求到現(xiàn)在為止對減小處理器管芯空間和/或改善處理器管芯空間利用率的努力強(qiáng)加了一定限制。附圖簡述通過示例而非限制的方式在附圖中的各圖中示出了本發(fā)明的各個實(shí)施例,其中:
圖1示出了根據(jù)實(shí)施例的用于提供對處理器狀態(tài)信息的訪問的系統(tǒng)的選擇元件的框圖。圖2示出了根據(jù)實(shí)施例的用于提供對處理器狀態(tài)信息的訪問的系統(tǒng)的執(zhí)行操作系統(tǒng)和硬件的選擇元件的框圖。圖3示出了根據(jù)實(shí)施例的用于存儲處理器狀態(tài)信息的任務(wù)狀態(tài)段的選擇元件的框圖。圖4示出了根據(jù)實(shí)施例的用于提供對處理器狀態(tài)信息的訪問的算法的選擇元件的流程圖。
具體實(shí)施方式
諸實(shí)施例以不同的方式提供對處理器狀態(tài)的訪問,以實(shí)現(xiàn)使處理器在處理器功率狀態(tài)之間轉(zhuǎn)換的目的。各個實(shí)施例可在計(jì)算機(jī)平臺上實(shí)現(xiàn),例如,該計(jì)算機(jī)平臺利用平臺的處理器和存儲器來執(zhí)行操作系統(tǒng)(OS)。該平臺的處理器可能缺少能夠獨(dú)立維持部分或全部處理器狀態(tài)以供稍后恢復(fù)和/或使用(例如,用于當(dāng)處理器從處理器空閑返回到較高功率的運(yùn)行處理器狀態(tài)時)的專用電路。然而,各個實(shí)施例不限于此?!疤幚砥鳡顟B(tài)信息”或簡稱的“處理器狀態(tài)”指的是描述一個或多個處理器在特定時刻處理例如由處理器高速緩存或以其它方式存儲的數(shù)據(jù)、要執(zhí)行的當(dāng)前(或下一個)指令、堆棧的狀態(tài)、確定異常處理的參數(shù)、錯誤處理等的狀態(tài)的信息,或者以其它方式確定處理器在特定時間點(diǎn)正在如何執(zhí)行處理和/或?qū)⑷绾螆?zhí)行處理的信息。提供對處理器狀態(tài)的訪問可包括,例如,提供處理器狀態(tài)以存儲在處理器外部,例如,以備處理器轉(zhuǎn)換到處理器空閑狀態(tài)。替換地或附加地,提供對處理器狀態(tài)的訪問可包括使得處理器狀態(tài)可用于裝載到處理器中,例如,以備從處理器空閑狀態(tài)轉(zhuǎn)換到較高功率的運(yùn)行處理器狀態(tài)。在某些實(shí)施例中,OS可發(fā)起到(或從)處理器空閑功率狀態(tài)的轉(zhuǎn)換。通過說明而非限制的方式,響應(yīng)于檢測使處理器在處理器功率狀態(tài)之間轉(zhuǎn)換的機(jī)會,在該處理器上執(zhí)行的OS可觸發(fā)處理器以執(zhí)行任務(wù)切換。在某些實(shí)施例中,任務(wù)切換可將處理器的部分或全部狀態(tài)保存至任務(wù)切換儲存庫一例如,在OS的正常運(yùn)行時間執(zhí)行期間對OS的通用任務(wù)切換可用的存儲器中的數(shù)據(jù)結(jié)構(gòu)。雖然某些實(shí)施例不限于此,但是存儲器中任務(wù)切換儲存庫的位置、任務(wù)切換儲存庫中的數(shù)據(jù)的排列和/或由其他平臺數(shù)據(jù)對任務(wù)切換儲存庫的引用可與加利福尼亞州圣克拉拉市的英特爾公司的X86架構(gòu)的使用相兼容。例如,任務(wù)切換儲存庫可包括任務(wù)狀態(tài)段(TSS)。通過說明而非限制的方式,任務(wù)切換可將段寄存器狀態(tài)、控制寄存器狀態(tài)、EFLAG寄存器狀態(tài)、EIP寄存器狀態(tài)和段選擇器狀態(tài)中的一個或多個保存至TSS。雖然本文中描述了在訪問TSS方面的某些實(shí)施例的特征,但應(yīng)當(dāng)理解,這些特征可擴(kuò)展用于其他實(shí)施例以訪問各種附加或替代的任務(wù)切換儲存庫中的任何一個。在實(shí)施例中,任務(wù)切換可包括切換處理器以停止執(zhí)行在OS上運(yùn)行的應(yīng)用的任務(wù)。在這些情況下,例如,可在該應(yīng)用未接收任何需要停止功率狀態(tài)轉(zhuǎn)換的操作的指示的情況下執(zhí)行任務(wù)切換。替代或附加地,例如,發(fā)起用于處理器功率狀態(tài)轉(zhuǎn)換的任務(wù)切換的OS可包括將所述處理器從在OS上下文中執(zhí)行任務(wù)切換到在另一上下文中執(zhí)行功率管理任務(wù)。例如,處理器可切換至與OS上下文不同的上下文的任務(wù)。通過說明而非限制的方式,任務(wù)切換可包括將處理器切換至執(zhí)行單線程上下文或其他上下文,用于執(zhí)行不是OS的任何任務(wù)的功率管理任務(wù)。例如,這樣的功率管理任務(wù)可包括基本輸入/輸出系統(tǒng)(BIOS)或其他固件任務(wù)。圖1示出了根據(jù)某些示例性實(shí)施例的系統(tǒng)100的選擇元件。系統(tǒng)100可包括具有電源150的平臺105,該電源150用于以不同的方式為平臺105的其他部件供電。雖然各個實(shí)施例的范圍不限于此,但是平臺105可包括個人計(jì)算機(jī)(PC)、個人數(shù)字助理(PDA)、因特網(wǎng)設(shè)備、蜂窩電話、膝上計(jì)算機(jī)、平板設(shè)備、移動單元、無線通信設(shè)備和/或任何其他計(jì)算設(shè)備中的一個或多個。根據(jù)某些實(shí)施例,平臺105可包括直接或間接耦合至一個或多個其他部件(例如存儲器125和系統(tǒng)互連135)的處理單元110。附加或替代地,處理單元110可有權(quán)訪問基本輸入/輸出系統(tǒng)(BIOS)指令——例如存儲在存儲器125或獨(dú)立存儲器件(120)中的該指令。例如,處理單元110可按不同的方式經(jīng)由一個或多個地址和/或數(shù)據(jù)總線耦合至平臺105的部件。應(yīng)當(dāng)理解,與此類總線不同或除此類總線之外的互連可用于連接處理單元110。例如,一個或多個專用線路、交叉線等可用于將處理單元110連接至存儲器125.
如下所述,處理器110可包括一個或多個核115 (未示出)以執(zhí)行操作系統(tǒng)(OS)。在各個實(shí)施例中,執(zhí)行OS可實(shí)現(xiàn)一個或多個特征一例如,高級配置和電源接口(ACPI)和/或操作系統(tǒng)電源管理(OSPM)代碼——以提供平臺105上的功率分布和/或消耗的管理。此外,處理單元110可包括諸如例如靜態(tài)隨機(jī)存取存儲器(SRAM)之類的高速緩存存儲器(未示出),或多種類型的內(nèi)部集成存儲器中的任何一種。存儲器125可包括動態(tài)隨機(jī)存取存儲器(DRAM)、非易失性存儲器等等。在一個示例中,存儲器125可存儲可由處理單元110執(zhí)行的軟件程序?;ミB135可將平臺105的各種部件互連,用于數(shù)據(jù)和/或控制消息的各種交換。通過說明而非限制的方式,互連135可包括以太網(wǎng)接口、通用串行總線(USB)接口、外設(shè)部件互連接口等等中的一個或多個。附加或替代地,互連135可包括用于控制通過互連135而互連的各種部件的電路。例如,互連135可包括諸如I/O控制器中樞、平臺控制器中樞、存儲器控制器中樞等的一個或多個控制器中樞。為了說明某些實(shí)施例的各個特征,互連135被示為將處理單元110耦合至用于在平臺105處接收通信的輸入設(shè)備130、用于從平臺140發(fā)送通信的輸出設(shè)備140和用于在平臺105中存儲數(shù)據(jù)的存儲145。通過說明而非限制的方式,輸入設(shè)備130和輸出設(shè)備140中的其一或兩者可包括鍵盤、小鍵盤、鼠標(biāo)、觸摸屏、顯示器、生物識別設(shè)備等等中的一個或多個。存儲設(shè)備145可包括硬盤驅(qū)動器(HDD)、固態(tài)驅(qū)動器(SSD)、緊致盤(CD)驅(qū)動器、數(shù)字多功能盤驅(qū)動器(DVD)、和/或其他計(jì)算機(jī)介質(zhì)輸入/輸出(I/O)設(shè)備中的一個或多個。在一實(shí)施例中,輸入設(shè)備130、輸出設(shè)備140和存儲設(shè)備145中的一個或多個可以是外置的,并且耦合至平臺105—例如,作為平臺105外圍的各種設(shè)備。應(yīng)當(dāng)理解,根據(jù)各種實(shí)施例,平臺105的各種附加或替代的設(shè)備、電路塊等中的任
何一種可稱合至處理單元110。也應(yīng)當(dāng)理解,平臺105的特定架構(gòu)-例如,平臺105的設(shè)
備、電路塊等相對于處理單元110的相對配置一不限于某些實(shí)施例。根據(jù)某些實(shí)施例,系統(tǒng)100可經(jīng)由到網(wǎng)絡(luò)155的連接與其他設(shè)備交換數(shù)據(jù)——例如,使用平臺105的網(wǎng)絡(luò)接口卡、無線網(wǎng)絡(luò)接口、或天線(未示出)。該網(wǎng)絡(luò)連接可包括任何類型的網(wǎng)絡(luò)連接,諸如以太網(wǎng)連接、數(shù)字用戶線路(DSL)、電話線、同軸電纜等。網(wǎng)絡(luò)155可以是任何類型的網(wǎng)絡(luò),諸如因特網(wǎng)、電話網(wǎng)絡(luò)、電纜網(wǎng)絡(luò)、無線網(wǎng)絡(luò)(諸如例如符合IEEE標(biāo)準(zhǔn)802.ll(1999)、一f*SflEEE802.11相關(guān)標(biāo)準(zhǔn)、用于無線城域網(wǎng)的IEEE802.16標(biāo)準(zhǔn)之類的網(wǎng)絡(luò)),等等。根據(jù)一個實(shí)施例,處理單元110——例如,一個或多個核115的特定處理核——可按不同的方式以兩個或更多個處理器功率狀態(tài)運(yùn)行。如這里所使用的,功率狀態(tài)指的是被輸送到處于該功率狀態(tài)的設(shè)備或設(shè)備的組合或由該設(shè)備或設(shè)備的組合使用的功率的一個或多個特性一例如,電壓電平、電流電平、時鐘頻率等等。平臺105可提供硬件和/或執(zhí)行軟件以支持、發(fā)起或以其它方式實(shí)現(xiàn)處理器核在這些功率狀態(tài)之間的轉(zhuǎn)換。圖2示出了根據(jù)實(shí)施例的用于提供對處理器狀態(tài)信息的訪問的平臺200的選擇元件。例如,平臺200可包括平臺105的部分或全部特征。通過說明而非限制的方式,平臺200可包括用于執(zhí)行操作系統(tǒng)(OS) 250的處理器核205。為了說明一個實(shí)施例的某些特征,處理器核210被示為存在于平臺200的片上系統(tǒng)(SoC) 205中。應(yīng)當(dāng)理解,在替代的實(shí)施例中,處理器核210可存在于平臺的一個或任何SoC的外部——例如,在隔離的單核或多核CPU IC芯片中。處理器核210可按不同的方式耦合至平臺200的一個或多個其他部件——例如,包括存在于SoC 205之上或在SoC 205之外的部件。通過說明而非限制的方式,SoC 205可包括具有電路或其他邏輯以執(zhí)行渲染計(jì)算或圖形數(shù)據(jù)的其他處理的圖形模塊215。替代或附加地,SoC 205可包括具有用于向顯示器提供視頻信息的接口、驅(qū)動器或其他電路/邏輯的顯示模塊220。替代或附加地,SoC 205可包括存儲器控制器225,所述存儲器控制器225包括用于管理對平臺200的數(shù)據(jù)存儲部件的訪問的電路或其他邏輯。替代地或此外,SoC 205可包括功率管理單元(PMU)230,以按不同的方式檢測、確定或以其它方式提供與平臺200的一個或多個部件的功率管理相關(guān)的數(shù)據(jù)和/或控制消息。在各個實(shí)施例中,耦合至處理器核210的平臺200的部分或全部部件(在各個替代的實(shí)施例中)可以與平臺200的一個或任何SoC分離。同樣地,應(yīng)當(dāng)理解,平臺200的這些其他耦合部件的組合和/或配置僅僅是說明性的,并且該平臺200可根據(jù)不同的實(shí)施例包括耦合至處理器核210的一個或多個附加或替代的部件的多種組合中的任一種。OS 250可在處理器核210的一個或多個運(yùn)行(即非空閑)處理器功率狀態(tài)期間呈現(xiàn)基線運(yùn)行時間執(zhí)行。在這樣的標(biāo)準(zhǔn)運(yùn)行時間執(zhí)行期間,OS 250可執(zhí)行各種任務(wù)。當(dāng)處理器核210在執(zhí)行OS 250的指令時,例如,通過代表OS 250執(zhí)行任務(wù),處理器核210可以說在OS 250的上下文中運(yùn)行。在OS 250的上下文中所執(zhí)行的任務(wù)可包括,但是不限于用于執(zhí)行在OS 250上運(yùn)行的應(yīng)用的 操作的任務(wù)、用于OS 250實(shí)現(xiàn)中斷處理的任務(wù)、用于0S250實(shí)現(xiàn)異常處理的任務(wù),等等。在這樣的運(yùn)行時間執(zhí)行期間,OS 250可按不同的方式在這些任務(wù)之間切換,同時保持運(yùn)行處理器功率狀態(tài)。例如,OS 250可請求任務(wù)切換調(diào)用于保存處理器核210中的信息,該信息描述了當(dāng)前執(zhí)行任務(wù)的執(zhí)行狀態(tài),OS 250還將描述將要被切換至的下一任務(wù)(例如,開始或重新開始執(zhí)行的任務(wù))的執(zhí)行狀態(tài)的其他信息載入處理器核210。通過說明而非限制的方式,OS 250可信號通知一個或多個任務(wù)切換,使得處理器核210通過分別訪問存儲器235的任務(wù)狀態(tài)段(TSS) 240a、…、240η中對應(yīng)的一個來按不同的方式保存和/或加載各個任務(wù)的任務(wù)狀態(tài)。在一實(shí)施例中,OS 250可包括處理器管理器255——例如,來自一組執(zhí)行指令的功能,該執(zhí)行指令用于評估或以其它方式檢測處理器核210的一個或多個處理器空閑狀況。在一實(shí)施例中,處理器管理器255可包括Linux OS的CPWDLE管理器例程。替代地或此外,處理器管理器255可包括使用OS功率管理(OSPM)代理可得的一個或多個處理器空閑/負(fù)載檢測功能,諸如那些在高級配置和電源接口(ACPI)公開標(biāo)準(zhǔn)(諸如2010年4月5日發(fā)布的ACPI修訂4.0a版本)中可得的功能。雖然本文按照處理器管理器255來描述,但應(yīng)當(dāng)理解,根據(jù)本發(fā)明各個實(shí)施例,OS 250可包括或以其它方式提供用于檢測處理器空閑狀況的多種附加或替代的檢測邏輯中的任何一種。通過說明而非限制的方式,可執(zhí)行處理器管理器255以確定、接收當(dāng)前處理器空閑、處理器空閑改變的當(dāng)前速率、預(yù)期的將來處理器空閑、預(yù)期的處理器空閑改變的將來速率等的水平或類型的指示,或以其它方式檢測當(dāng)前處理器空閑、處理器空閑改變的當(dāng)前速率、預(yù)期的將來處理器空閑、預(yù)期的處理器空閑改變的將來速率等的水平或類型。應(yīng)當(dāng)理解,檢測處理器核210的空閑狀態(tài)可包括檢測處理器核210的相應(yīng)負(fù)載狀態(tài)。例如,OS 250可包括調(diào)度器(未示出)或以其它方式有權(quán)對其訪問,該調(diào)度器負(fù)責(zé)調(diào)度OS 250的下一個操作、線程等。處理器管理器255可檢測OS 250的調(diào)度器已確定不存在或預(yù)期不存在被安排以供OS 250來執(zhí)行的就緒操作或線程?;趯Ξ?dāng)前的或預(yù)期的未來處理器空閑情況的檢測,處理器管理器255可確定空閑情況表示將處理器核210轉(zhuǎn)換到處理器空閑狀態(tài)一例如,C6(或較低)功率狀態(tài)的機(jī)會。響應(yīng)于這樣的機(jī)會的識別,處理器管理器255可啟動這樣的功率狀態(tài)轉(zhuǎn)換。在一實(shí)施例中,啟動功率狀態(tài)轉(zhuǎn)換可包括處理器管理器255執(zhí)行對OS 250的任務(wù)切換邏輯260的調(diào)用。進(jìn)而,任務(wù)切換邏輯260可為處理器核210的硬件提供低階信號以執(zhí)行任務(wù)切換。在一實(shí)施例中,當(dāng)OS 250保持在一個或多個運(yùn)行功率狀態(tài)時,任務(wù)切換將處理器核210的狀態(tài)保存至TSS——例如可用于任務(wù)切換的存儲器235的TSS240a、...、240n中的一個。例如,處理器核210可切換至用于與OS 250上下文不同的上下文的任務(wù)。通過說明而非限制的方式,任務(wù)切換可包括將處理器切換至執(zhí)行單線程上下文或其他上下文,用于執(zhí)行不是OS 250的任何任務(wù)的功率管理任務(wù)。這樣的功率管理任務(wù)例如可包括功率管理固件245的任務(wù)——例如基本輸入/輸出系統(tǒng)(BIOS)任務(wù)。圖3示出根據(jù)一實(shí)施例被提供至(或來自)TSS 305的處理器狀態(tài)300的選擇元件,其中所述提供是用于支持處理器功率狀態(tài)轉(zhuǎn)換的任務(wù)切換。例如,TSS 305可包括TSS240a的部分或全部特征。在一實(shí)施例中,TSS 305還可用于處理器狀態(tài)的另一提供(例如存儲或卸載),其中該另一提供是用于任務(wù)切換,其中在整個該任務(wù)切換中,上述的處理器保持在相同的運(yùn)行處理器功率狀態(tài)。例如,用于一種或兩種類型的任務(wù)切換(即用于處理器功率狀態(tài)轉(zhuǎn)換或用于不變的運(yùn)行處理器功率狀態(tài))的TSS 305的可用性可由存儲器中的TSS 305的位置和/或TSS305內(nèi)的處理器狀態(tài)信息的排列而產(chǎn)生。替代地或此外,用于兩種類型的任務(wù)切換的TSS 305的可用性可由在TSS 305外部的且引用TSS 305的寄存器、表格、指針或其他平臺數(shù)據(jù)元件(未示出)而產(chǎn)生,例如指示TSS 305是一種處理器狀態(tài)儲存庫,該處理器狀態(tài)儲存庫在OS的正常運(yùn)行時間執(zhí)行期間能夠訪問以實(shí)現(xiàn)通用任務(wù)切換。通過說明而非限制的方式,平臺中TSS 305的位置、排列和/或?qū)SS305的引用可與具有加利福尼亞州圣克拉拉市英特爾公司的x86架構(gòu)的TSS305的使用相兼容。更具體地,TSS 305可包括用于存儲編碼段315的選擇器的CS寄存器310、用于存儲數(shù)據(jù)段325的選擇器的DS寄存器320以及用于存儲堆棧段335的選擇器的SS寄存器330中的一個或多個。選擇器CS寄存器310、DS寄存器320和SS寄存器330可容易地載入具有任務(wù)切換的處理器或從具有任務(wù)切換的處理器卸載,例如分別用于恢復(fù)或保存在將要執(zhí)行任務(wù)切換時的任務(wù)執(zhí)行的當(dāng)前狀態(tài)。例如,TSS 305可包括與由x86架構(gòu)處理器實(shí)現(xiàn)的任務(wù)切換相兼容的各種替代或附加的結(jié)構(gòu)。通過說明而非限制的方式,TSS 305可包括一個或多個附加的數(shù)據(jù)段寄存器——說明性地表示為可存儲附加的數(shù)據(jù)段345、355、365的各個選擇器的ES寄存器340、FS寄存器350和GS寄存器360。替代地或此外,TSS 305可存儲EFLAG寄存器370以存儲指示用于執(zhí)行與TSS 305相關(guān)聯(lián)的任務(wù)的處理器操作的模式(例如,單階模式、中斷處理模式、任務(wù)鏈模式等等)的各個標(biāo)志。替代地或此外,TSS 305可存儲EIP寄存器375以存儲指向用于執(zhí)行任務(wù)的當(dāng)前指令的指針。通過訪問具有x86架構(gòu)處理器的TSS來存儲和/或恢復(fù)處理器狀態(tài)的技術(shù)已得到充分的證實(shí),并不限于各種實(shí)施例,各種實(shí)施例擴(kuò)展這些和其他此類技術(shù)以應(yīng)用于支持處理器功率狀態(tài)轉(zhuǎn)換的任務(wù)切換。應(yīng)當(dāng)理解,在TSS 305中所顯示的結(jié)構(gòu)僅僅是說明性的,并且該TSS305可包括任何多個附加的或替代的結(jié)構(gòu)和/或信息以存儲處理器狀態(tài)。此外,此類結(jié)構(gòu)和/或信息可指示TSS 305對處理器的可用性,用于處理器訪問以實(shí)現(xiàn)與處理器的功率狀態(tài)轉(zhuǎn)換相關(guān)的任務(wù)切換(例如,轉(zhuǎn)換至空閑處理器功率狀態(tài)或從空閑處理器功率狀態(tài)轉(zhuǎn)換)和何時處理器將保持在單個運(yùn)行功率狀態(tài)的任務(wù)切換中的任一個。圖4示出根據(jù)實(shí)施例的用于提供處理器狀態(tài)的方法400的選擇元件。例如,可由執(zhí)行OS的平臺105的硬件來執(zhí)行方法400。在實(shí)施例中,在410處,方法400可包括OS檢測用于執(zhí)行OS的處理器轉(zhuǎn)換到第一功率狀態(tài)的機(jī)會。例如,OS可確定處理器空閑情況指示通過使處理器進(jìn)入空閑處理器功率狀態(tài)可獲得節(jié)能。響應(yīng)于檢測到該機(jī)會,在420處,OS可啟動功率狀態(tài)轉(zhuǎn)換。在實(shí)施例中,OS啟動轉(zhuǎn)換可包括OS觸發(fā)通過處理器的任務(wù)切換。所觸發(fā)的任務(wù)切換可將處理器的處理器狀態(tài)的至少一部分保存至平臺的任務(wù)切換儲存庫的至少一部分。在實(shí)施例中,平臺中的數(shù)據(jù)的一個或多個特征——例如,在任務(wù)切換儲存庫中的數(shù)據(jù)的排列、在平臺中的任務(wù)切換儲存庫的位置、在任務(wù)切換儲存庫外部的且引用任務(wù)切換儲存庫的數(shù)據(jù)一可指示任務(wù)切換儲存庫可供訪問以實(shí)現(xiàn)與處理器的功率狀態(tài)轉(zhuǎn)換相關(guān)聯(lián)的任務(wù)切換(例如,轉(zhuǎn)換到空閑處理器功率狀態(tài)或從空閑處理器功率狀態(tài)轉(zhuǎn)換)和用于何時處理器將保持在單個運(yùn)行功率狀態(tài)的任務(wù)切換這二者之一。本文描述了用于提供對處理器狀態(tài)的訪問的技術(shù)和架構(gòu)。在下面的描述中,出于說明目的闡述了眾多具體細(xì)節(jié)以便提供對某些實(shí)施例的全面理解。然而,對本領(lǐng)域技術(shù)人員將顯而易見的是,沒有這些具體細(xì)節(jié)也可實(shí)施某些實(shí)施例。在其他實(shí)例中,以框圖形式示出了結(jié)構(gòu)和設(shè)備以避免混淆描述。在本說明書中對“一個實(shí)施例”或“一實(shí)施例”的引用意味著結(jié)合該實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實(shí)施例中。在本說明書各處出現(xiàn)的短語“在一個實(shí)施例中”并不一定均指代同一實(shí)施例。本文中所詳細(xì)描述的某些部分是根據(jù)對在計(jì)算機(jī)存儲器中的數(shù)據(jù)位進(jìn)行運(yùn)算的算法和符號表示提出的。這些算法的描述和表達(dá)是計(jì)算領(lǐng)域的技術(shù)人員所使用的用于將他們工作的本質(zhì)最有效地傳達(dá)給本領(lǐng)域的其他技術(shù)人員的手段。這里的算法一般被認(rèn)為是導(dǎo)致預(yù)期結(jié)果的步驟的自相容序列。這些步驟是需要物理量的物理操縱的那些步驟。通常(盡管不是必須),這些量采取能夠被存儲、傳輸、組合、比較以及以其他方式操縱的電或磁的信號的形式。主要由于普遍使用的原因,已證明有時將這些信號稱為位、值、元素、符號、字符、術(shù)語、數(shù)字等等是方便的。
然而,應(yīng)該記住,所有這些以及類似的術(shù)語將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是應(yīng)用于這些量的方便的標(biāo)識。除非具體說明,否則如從以下討論所顯而易見的,應(yīng)理解貫穿說明書使用諸如“處理”、“計(jì)算”、“運(yùn)算”、“確定”、“顯示”等等之類術(shù)語的討論指的是計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算設(shè)備的動作和進(jìn)程,這些動作或進(jìn)程將計(jì)算機(jī)系統(tǒng)寄存器和存儲器內(nèi)表示為物理(例如,電子)量的數(shù)據(jù)操縱和/或變換成計(jì)算機(jī)系統(tǒng)存儲器、寄存器或其他這種信息存儲、傳輸或顯示設(shè)備內(nèi)類似地表示為物理量的其他數(shù)據(jù)。某些實(shí)施例也涉及用于執(zhí)行本文中的操作的裝置。該裝置可專門構(gòu)造成用于所需目的,或者它可包括由存儲在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)。這種計(jì)算機(jī)程序可存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,諸如但不限于包括軟盤、光盤、CD-ROM和磁-光盤的任意類型的盤、只讀存儲器(ROM)、諸如動態(tài)RAM (DRAM)之類的隨機(jī)存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電EPROM (EEPROM)、磁或光卡、或適用于存儲電子指令且各自耦合到計(jì)算機(jī)系統(tǒng)總線的任意類型的介質(zhì)。本文中出現(xiàn)的算法和顯示不固有地關(guān)聯(lián)于任何特定計(jì)算機(jī)或其它裝置。各種通用系統(tǒng)可根據(jù)本文的教導(dǎo)與程序一起使用,或者可證明構(gòu)造更為專用的裝置來執(zhí)行所需的方法步驟是方便的。用于多種這些系統(tǒng)的所需結(jié)構(gòu)將從以下的描述中出現(xiàn)。此外,某些實(shí)施例并不參照任何專用編程語言進(jìn)行描述。將理解,可將多種編程語言用于實(shí)現(xiàn)如本文所述的這些實(shí)施例的教導(dǎo)。除本文中描述的內(nèi)容之外,可對所公開的本發(fā)明的實(shí)施例和實(shí)現(xiàn)作出多種修改,而不背離它們的范圍。因此,本文中的說明和示例應(yīng)當(dāng)以說明而非限制性的意義來解釋。本發(fā)明的范圍應(yīng)當(dāng)僅參照所附權(quán)利要求來度量。
權(quán)利要求
1.一種方法,包括: 通過操作系統(tǒng)(OS)檢測用于將執(zhí)行所述OS的處理器轉(zhuǎn)換至第一功率狀態(tài)的機(jī)會;以及 響應(yīng)于所述機(jī)會的檢測,所述OS啟動轉(zhuǎn)換,包括所述OS觸發(fā)所述處理器的任務(wù)切換,所述任務(wù)切換將所述處理器的處理器狀態(tài)的至少一部分保存至任務(wù)切換儲存庫的至少一部分,其中所述任務(wù)切換儲存庫可被不支持所述處理器的功率狀態(tài)轉(zhuǎn)換的另一任務(wù)切換訪問。
2.按權(quán)利要求1所述的方法,其特征在于,所述第一功率狀態(tài)包括處理器空閑狀態(tài)。
3.按權(quán)利要求1所述的方法,其特征在于,所述任務(wù)切換包括將所述處理器從執(zhí)行OS上下文中的任務(wù)切換至執(zhí)行另一上下文中的功率管理任務(wù)。
4.按權(quán)利要求3所述的方法,其特征在于,所述另一上下文是單線程上下文。
5.按權(quán)利要求3所述的方法,其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行固件。
6.按權(quán)利要求5所述的方法,其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行基本輸入/輸出系統(tǒng)(BIOS)代碼。
7.按權(quán)利要求1所述的方法,其特征在于,所述任務(wù)切換包括將所述處理器從執(zhí)行在所述OS上運(yùn)行的應(yīng)用的任務(wù)切換,其中在不向所述應(yīng)用指示需要停止用于所述轉(zhuǎn)換的操作的情況下執(zhí)行所述任務(wù)切換。
8.按權(quán)利要求1所述的方法,其特征在于,將所述處理器的處理器狀態(tài)的至少一部分保存的任務(wù)切換包括將段寄 存器狀態(tài)、控制寄存器狀態(tài)、EFLAG寄存器狀態(tài)、EIP寄存器狀態(tài)和段選擇器狀態(tài)中的一個或多個保存至所述任務(wù)切換儲存庫的任務(wù)切換。
9.一種裝置,包括: 存儲器;以及 耦合至所述存儲器的處理器,所述處理器執(zhí)行操作系統(tǒng)(OS)以檢測用于將所述處理器轉(zhuǎn)換至第一功率狀態(tài)的機(jī)會,并且響應(yīng)于檢測所述機(jī)會以啟動所述轉(zhuǎn)換,包括所述OS觸發(fā)所述處理器的任務(wù)切換,所述任務(wù)切換將所述處理器的處理器狀態(tài)的至少一部分保存至任務(wù)切換儲存庫的至少一部分,其中所述任務(wù)切換儲存庫可被不支持所述處理器的功率狀態(tài)轉(zhuǎn)換的另一任務(wù)切換訪問。
10.按權(quán)利要求9所述的裝置,其特征在于,所述OS的處理器管理器用于檢測用于所述轉(zhuǎn)換的機(jī)會。
11.按權(quán)利要求9所述的裝置,其特征在于,所述第一功率狀態(tài)包括處理器空閑狀態(tài)。
12.按權(quán)利要求9所述的方法,其特征在于,所述任務(wù)切換包括所述OS將所述處理器從執(zhí)行OS上下文中的任務(wù)切換至執(zhí)行另一上下文中的功率管理任務(wù)。
13.按權(quán)利要求12所述的裝置,其特征在于,所述另一上下文是單線程上下文。
14.按權(quán)利要求12所述的裝置,其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行固件。
15.按權(quán)利要求9所述的裝置,其特征在于,所述任務(wù)切換包括所述OS將所述處理器從執(zhí)行在所述OS上運(yùn)行的應(yīng)用的任務(wù)切換,其中在不向所述應(yīng)用指示需要停止用于所述轉(zhuǎn)換的操作的情況下執(zhí)行所述任務(wù)切換。
16.按權(quán)利要求9所述的裝置,其特征在于,將所述處理器的處理器狀態(tài)的至少一部分保存的任務(wù)切換包括將段寄存器狀態(tài)、控制寄存器狀態(tài)、EFLAG寄存器狀態(tài)、EIP寄存器狀態(tài)和段選擇器狀態(tài)中的一個或多個保存至所述任務(wù)切換儲存庫的任務(wù)切換。
17.一種計(jì)算機(jī)可讀存儲介質(zhì),包括存儲在所述計(jì)算機(jī)可讀存儲介質(zhì)上的指令,所述指令在被一個或多個處理器執(zhí)行時執(zhí)行: 通過操作系統(tǒng)(OS)檢測用于將執(zhí)行所述OS的處理器轉(zhuǎn)換至第一功率狀態(tài)的機(jī)會;以及 響應(yīng)于所述機(jī)會的檢測,所述OS啟動轉(zhuǎn)換,包括所述OS觸發(fā)所述處理器的任務(wù)切換,所述任務(wù)切換將所述處理器的處理器狀態(tài)的至少一部分保存至任務(wù)切換儲存庫的至少一部分,其中所述任務(wù)切換儲存庫可被不支持所述處理器的功率狀態(tài)轉(zhuǎn)換的另一任務(wù)切換訪問。
18.按權(quán)利要求17所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述第一功率狀態(tài)包括處理器空閑狀態(tài)。
19.按權(quán)利要求17所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述任務(wù)切換包括將所述處理器從執(zhí)行OS上下文中的任務(wù)切換至執(zhí)行另一上下文中的功率管理任務(wù)。
20.按權(quán)利要求19所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述另一上下文是單線程上下文。
21.按權(quán)利要求19所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行固件。
22.按權(quán)利要求21所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行基本輸入/輸出系統(tǒng)(BIOS)代碼。
23.按權(quán)利要求17所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述任務(wù)切換包括將所述處理器從執(zhí)行在所述OS上運(yùn)行的應(yīng)用的任務(wù)切換,其中在不向所述應(yīng)用指示需要停止用于所述轉(zhuǎn)換的操作的情況下執(zhí)行所述任務(wù)切換。
24.按權(quán)利要求17所述的計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,將所述處理器的處理器狀態(tài)的至少一部分保存的任務(wù)切換包括將段寄存器狀態(tài)、控制寄存器狀態(tài)、EFLAG寄存器狀態(tài)、EIP寄存器狀態(tài)和段選擇器狀態(tài)中的一個或多個保存至所述任務(wù)切換儲存庫的任務(wù)切換。
25.一種系統(tǒng),包括: 存儲器; 耦合至所述存儲器的處理器,所述處理器執(zhí)行操作系統(tǒng)(OS)以檢測用于將所述處理器轉(zhuǎn)換至第一功率狀態(tài)的機(jī)會,并且響應(yīng)于檢測所述機(jī)會以啟動所述轉(zhuǎn)換,包括所述OS觸發(fā)所述處理器的任務(wù)切換,所述任務(wù)切換將所述處理器的處理器狀態(tài)的至少一部分保存至任務(wù)切換儲存庫的至少一部分,其中所述任務(wù)切換儲存庫可被不支持所述處理器的功率狀態(tài)轉(zhuǎn)換的另一任務(wù)切換訪問;以及 耦合至所述處理器的天線,所述天線將所述系統(tǒng)與無線網(wǎng)絡(luò)相耦合。
26.按權(quán)利要求25所述的系統(tǒng),其特征在于,所述OS的處理器管理器用于檢測用于所述轉(zhuǎn)換的機(jī)會。
27.按權(quán)利要求25所述的系統(tǒng),其特征在于,所述第一功率狀態(tài)包括處理器空閑狀態(tài)。
28.按權(quán)利要求25所述的方法,其特征在于,所述任務(wù)切換將所述處理器從執(zhí)行OS上下文中的任務(wù)切換至執(zhí)行另一上下文中的功率管理任務(wù)。
29.按權(quán)利要求28所述的系統(tǒng),其特征在于,執(zhí)行所述功率管理任務(wù)包括執(zhí)行固件。
30.按權(quán)利要求25所述的系統(tǒng),其特征在于,將所述處理器的處理器狀態(tài)的至少一部分保存的任務(wù)切換包括將段寄存器狀態(tài)、控制寄存器狀態(tài)、EFLAG寄存器狀態(tài)、EIP寄存器狀態(tài)和段選擇器狀態(tài)中的一 個或多個保存至所述任務(wù)切換儲存庫的任務(wù)切換。
全文摘要
本發(fā)明公開了提供處理器狀態(tài)以用于實(shí)現(xiàn)處理器的功率狀態(tài)轉(zhuǎn)換的技術(shù)。在一實(shí)施例中,在處理器上執(zhí)行的操作系統(tǒng)檢測將處理器轉(zhuǎn)換至空閑處理器功率狀態(tài)的機(jī)會。在特定實(shí)施例中,操作系統(tǒng)通過調(diào)用任務(wù)切換啟動轉(zhuǎn)換,其中描述處理器狀態(tài)的信息被保存至任務(wù)切換段。
文檔編號G06F9/22GK103098019SQ201180002799
公開日2013年5月8日 申請日期2011年12月6日 優(yōu)先權(quán)日2010年12月23日
發(fā)明者R·穆拉利達(dá), H·瑟沙德瑞, B·弗萊明, V·路德拉穆尼 申請人:英特爾公司