專利名稱:用于零電壓處理器休眠狀態(tài)的方法和設備的制作方法
技術領域:
本發(fā)明的實施例涉及電子系統(tǒng)和功率管理領域。更具體來說,本發(fā)明的實施例涉及用于零電壓處理器休眠狀態(tài)的方法和設備。
背景技術:
隨著向具有更多晶體管和更高頻率的高級微處理器如中央處理單元(CPU)發(fā)展的趨勢繼續(xù)增長,計算機設計者和制造商往往面臨功耗和能耗的相應增大。特別是在移動裝置中,增大的功耗可能導致過熱,這可負面地影響性能,并且可能極大地降低電池壽命。 由于電池通常具有有限的容量,因此,運行移動裝置的處理器大于必需的可能比預期更快地耗盡容量。因此,功耗仍舊是包括膝上型計算機、無線手機、個人數(shù)字助理等在內的移動裝置的重要問題。例如,在當今的移動裝置中,為了解決功率損耗有關問題,可根據(jù)減少的活動或需求使某些組件進入較低功率休眠狀態(tài)。對于一種方法,操作系統(tǒng)可支持內置功率管理軟件接口,例如高級配置和電源接口 (ACPI)(例如高級配置和電源接口,Ver. x285, 2004年6月)。ACPI描述一種功率管理策略,其中包括處理器和/或芯片組可支持的各種“C狀態(tài)”。對于這個策略,CO被定義為 “運行時間”狀態(tài),其中處理器工作在高電壓和高頻。Cl被定義為“自動暫?!睜顟B(tài),其中在內部停止內核時鐘。C2被定義為“停止時鐘”狀態(tài),其中在外部停止內核時鐘。C3被定義為“深休眠”狀態(tài),其中關閉所有處理器時鐘,以及C4被定義為“更深休眠”狀態(tài),其中停止所有處理器時鐘并將處理器電壓降到更低的數(shù)據(jù)保持點。還提出了各種附加的更深休眠功率狀態(tài)C5. . . Cn0這些附加功率狀態(tài)的特征在于Cl至C4功率狀態(tài)的等效語義,但具有不同的進入/退出等待時間和功率節(jié)省。在操作中,為了進入更深休眠狀態(tài),ACPI可檢測不存在對移動處理器的新或未決中斷的時隙。然后,ACPI策略使用輸入/輸出(I/O)控制器或其它芯片組特征使移動處理器進入更深休眠狀態(tài)。
一旦使處理器進入更深休眠狀態(tài),就可把來自操作系統(tǒng)或另一個源的中止事件或中斷發(fā)送給芯片組,然后芯片組將允許處理器退出更深休眠狀態(tài)。在包括更深休眠狀態(tài)在內的各種功率管理狀態(tài)之間進行轉變的能力可使功率損耗能夠減小并使電池壽命能夠增大。目前,通過在處理器電壓調節(jié)器電路中參考外部電壓參考,并且每當I/O控制器或其它集成電路斷言平臺“更深休眠”信號、如DPRSLPVR信號或其它類似信號時調節(jié)到這個參考電壓,來完成進入更深休眠狀態(tài)。然后,電壓調節(jié)器從第一電壓轉變到與更深休眠狀態(tài)關聯(lián)的第二較低電壓。在退出更深休眠狀態(tài)時,在另一方向的電壓轉變隨類似指定時間窗口發(fā)生。如前面所述,獲得低功率休眠狀態(tài)對于實現(xiàn)移動裝置中更好的電池壽命是重要的。移動裝置市場是激烈競爭的產品空間,并且這個空間的發(fā)展的關鍵領域之一是保持電池壽命的低功率解決方案。可惜,移動裝置中處理器的現(xiàn)有更深休眠狀態(tài)仍消耗大量功率,因為電壓仍需要施加到處理器,并且無法完全斷開。
發(fā)明內容
根據(jù)第一實施例,本發(fā)明提供了一種處理器,包括 多個內核,其中所述多個內核的每一個包括 一個或多個執(zhí)行單元, 多個高速緩存,以及功率管理邏輯部件,使所述處理器
進入低功率狀態(tài),在所述低功率狀態(tài)中,提供給所述一個或多個執(zhí)行單元的時鐘信號被選通,其中,所述功率管理邏輯部件進一步響應執(zhí)行功率節(jié)省指令而使提供給所述處理器的所述時鐘信號被選通,
響應確定將進入低功率狀態(tài)而進入休眠狀態(tài),在所述休眠狀態(tài)中,提供給所述一個或多個執(zhí)行單元的時鐘信號的頻率和電壓被減小。
根據(jù)優(yōu)選實施例,所述處理器在所述休眠狀態(tài)消耗的功率比在所述低功率狀態(tài)中消耗的功率更低。
根據(jù)優(yōu)選實施例,所述功率節(jié)省指令可包括MWAIT指令。 根據(jù)優(yōu)選實施例,所述多個內核的每一個可處理所述功率節(jié)省指令。 根據(jù)優(yōu)選實施例,提供給所述一個或多個執(zhí)行單元的所述電壓包括零電壓狀態(tài)。 根據(jù)優(yōu)選實施例,所述功率管理邏輯部件使所述處理器先進入所述低功率狀態(tài)而后進入所述休眠狀態(tài)。
根據(jù)優(yōu)選實施例,所述功率管理邏輯部件使所述處理器從活動狀態(tài)直接進入所述休眠狀態(tài)而不進入所述低功率狀態(tài)。
根據(jù)優(yōu)選實施例,所述功率管理邏輯部件使所述處理器響應操作系統(tǒng)處理所述功率節(jié)省指令而進入所述低功率狀態(tài)。
圖1是示出根據(jù)本發(fā)明的一個實施例轉變入和轉變出處理器的零電壓功率管理狀態(tài)的過程的流程圖。圖2是根據(jù)本發(fā)明的一個實施例可用于實現(xiàn)零電壓功率管理狀態(tài)方法的示范系統(tǒng)的框圖。圖3是示出根據(jù)本發(fā)明的一個實施例的專用休眠狀態(tài)SRAM高速緩存和SRAM接口的一個示例的框圖。圖4是示出根據(jù)本發(fā)明的一個實施例可用于進入零電壓處理器休眠狀態(tài)的過程的流程圖。圖5是示出根據(jù)本發(fā)明的一個實施例可用于退出零電壓處理器休眠狀態(tài)的過程的流程圖。
具體實施例方式在以下描述中將詳細描述本發(fā)明的各種實施例。然而,包含這些細節(jié)是為了便于理解本發(fā)明及描述使用本發(fā)明的示范實施例。這類細節(jié)不應用于將本發(fā)明限制于所述的具體實施例,因為其它變型和實施例是可能的,同時仍保持在本發(fā)明的范圍之內。而且,雖然闡述了許多細節(jié)以便提供對本發(fā)明實施例的透徹理解,但是本領域技術人員清楚,這些具體細節(jié)對于實施本發(fā)明的實施例不是必需的。在以下描述中,為了便于說明,描述了具體組件、電路、狀態(tài)圖、軟件模塊、系統(tǒng)、定時等。然而,要理解,其它實施例可適用于例如其它類型的組件、電路、狀態(tài)圖、軟件模塊、系統(tǒng)和/或定時。參照圖1,在一個實施例中,在框105,集成電路裝置如處理器例如發(fā)起到零電壓功率管理狀態(tài)的轉變。零電壓功率管理狀態(tài)例如可以是根據(jù)2002年3月31目的高級配置和電源接口(ACPI)規(guī)范修訂版2. Oa(并且由康柏計算機公司、英特爾公司、微軟公司、菲尼克斯技術有限公司和東芝公司發(fā)布)的“更深休眠”狀態(tài)。在這個轉變期間,保存處理器的臨界狀態(tài)(框110)。處理器的臨界狀態(tài)包括與體系結構、微體系結構、調試狀態(tài)關聯(lián)的狀態(tài)變量和/或與那個處理器關聯(lián)的類似狀態(tài)變量。隨后將處理器的工作電壓減小到近似零, 使得處理器處于具有極低功耗特性的極深休眠狀態(tài)(框1巧)。以下提到處理器或CPU的狀態(tài)或臨界狀態(tài)將表示包括與處理器或CPU關聯(lián)的狀態(tài)變量。隨后,響應于接收到退出零電壓功率管理狀態(tài)的請求,在框120,處理器以更高參考工作電壓退出零電壓功率管理。還恢復與處理器關聯(lián)的臨界狀態(tài)變量(框12 。應當注意,對于一些實施例,參考工作電壓例如可以是最小活動狀態(tài)工作電壓。在以下描述中提供這個及其它實施例的另外細節(jié)。本發(fā)明的實施例可通過硬件、固件和軟件其中之一或者它們的組合來實現(xiàn)。本發(fā)明的實施例還可完全或部分實現(xiàn)為存儲在機器可讀介質上的指令,所述指令可由至少一個處理器讀取和運行以便執(zhí)行本文所述的操作。機器可讀介質可包括用于存儲或傳輸機器 (如計算機)可讀形式的信息的任何機構。例如,機器可讀介質可包括只讀存儲器(ROM); 隨機存取存儲器(RAM);磁盤存儲介質;光存儲介質;閃存裝置;電、光、聲或其它形式的傳播信號(例如載波、紅外信號、數(shù)字信號等)等等。圖2是可實現(xiàn)一個或多個實施例的零電壓功率管理狀態(tài)轉變方法的示范系統(tǒng)200的框圖。應當注意,圖2分為圖2A和圖2B。系統(tǒng)200可以是筆記本或膝上型計算機系統(tǒng), 或者可以是例如移動裝置、個人數(shù)字助理、無線電話/手機等任何不同類型的移動電子系統(tǒng),或者甚至可以是例如臺式或企業(yè)計算系統(tǒng)等非移動系統(tǒng)。其它類型的電子系統(tǒng)也在各種實施例的范圍內。系統(tǒng)200包括處理器205、平臺級時鐘發(fā)生器211、耦合到處理器205的電壓調節(jié)器212、通過總線217耦合到處理器205的存儲器控制集線器215、可包括隨機存取存儲器 (RAM)、閃速存儲器和/或另一種類型存儲器中一個或多個的存儲器220、通過總線227耦合到存儲器控制集線器215的輸入/輸出(I/O)控制集線器225以及通過總線232耦合到 I/O控制集線器225的大容量存儲裝置230。雖然在一個實施例中系統(tǒng)200可以是具有所述子系統(tǒng)的移動裝置,但是應當理解,系統(tǒng)200可以是具有多于或少于所述子系統(tǒng)的不同類型的移動裝置或非移動裝置。在一個實施例中,處理器205可以是英特爾(gH本系結構微處理器,例如英特爾 Pentium M處理器的下一代處理器,其中包括一個或多個處理內核(例如320和322) 以及處理指令的至少一個執(zhí)行單元310。對于這類實施例,處理器205可包括英特爾
SpeedStep 技術或提供兩個或更多電壓/頻率工作點的另一種功率管理相關技術。關聯(lián)的時鐘/功率管理單元350可包含在處理器205中,以控制兩個或更多電壓/頻率對之間的轉變。在其它實施例中,處理器205可以是不同類型的處理器,例如數(shù)字信號處理器、嵌入處理器或者來自不同源的微處理器。另外,處理器205可包括專用高速緩沖存儲器340 (例如同步隨機存取存儲器 (SRAM)),其可用于在處理器進入零電壓休眠狀態(tài)時存儲處理器的臨界狀態(tài)變量,這將進行描述。高速緩沖存儲器可內置于處理器的芯片中,或者封裝在與處理器芯片相同的外殼中。在英特爾SpeedStep 技術或另一種類型功率管理技術包含在處理器205上的情況下,與該技術關聯(lián)的可用電壓/頻率對包括對應于與全功能工作模式的處理器205關聯(lián)的最小活動模式工作電壓和最小工作頻率的最小電壓/頻率對。這些在本文中可分別稱作最小工作電壓和最小工作頻率或者最小活動模式工作電壓和頻率。類似地,可定義最大工作電壓和頻率。其它可用電壓頻率對可稱作工作電壓/頻率對,或者簡單地稱作其它電壓 /頻率或頻率/電壓對。零電壓進入/退出邏輯3M還可包含在處理器205中功率管理邏輯350內或外, 以控制進入和退出零電壓休眠狀態(tài),本文中還稱作C6狀態(tài)。下面將更詳細地描述低功率零電壓處理器休眠狀態(tài)。可包括零電壓進入/退出邏輯邪4可存取的電壓標識(VID)存儲器352,以存儲電壓標識碼查找表。例如,VID存儲器可以是芯片上或芯片外寄存器或者另一種類型存儲器, 并且VID數(shù)據(jù)可經由軟件、基本輸入/輸出系統(tǒng)(BIOS)代碼278(它可存儲在固件集線器 279上或者另一個存儲器中)、操作系統(tǒng)、其它固件被加載到存儲器中,和/或可被硬編碼。 備選地,包含VID和相關數(shù)據(jù)的軟件查找表可以是邏輯350以其它方式可存取的。VID信息還可作為熔絲(例如可編程ROM(PROM))存儲在CPU上。模數(shù)轉換器(ADC) 356還可作為零電壓進入/退出邏輯350的一部分來提供,以監(jiān)控電源電壓電平,并提供關聯(lián)的數(shù)字輸出,下面更詳細地進行描述。
電壓調節(jié)器212向處理器205提供電源工作電壓,并且例如可按照英特爾移動電壓配置(IMVP)規(guī)范的一個版本如IMVP-6規(guī)范。對于這類實施例,電壓調節(jié)器212被耦合以通過總線235從處理器205接收VID信號,并響應于VID信號而通過信號線MO向處理器 205提供關聯(lián)的工作電壓。電壓調節(jié)器212可包括零電壓休眠邏輯302,其響應于一個或多個信號而將提供給處理器205的電壓240減小到零狀態(tài),然后在退出零電壓休眠狀態(tài)之后, 再次斜線上升回提供給處理器的電壓。對于其它實施例,可使用不同類型的電壓調節(jié)器,包括按照不同規(guī)范的電壓調節(jié)器。另外,對于一些實施例,電壓調節(jié)器可與包括處理器205在內的系統(tǒng)200的另一個組件集成。應當理解,電壓調節(jié)器可以與或可以不與CPU集成,取決于設計考慮因素。存儲器控制集線器215可包括圖形和存儲器控制能力,并且在本文中可備選地稱作圖形和存儲器控制集線器(G/MCH)或北橋。圖形和存儲器控制集線器215及I/O控制集線器225(它還可稱作南橋)可統(tǒng)稱為芯片組。對于其它實施例,芯片組特征可通過不同方式來劃分,和/或可使用不同數(shù)量的集成電路芯片來實現(xiàn)。例如,對于一些實施例,可使用分開的集成電路裝置來提供圖形和存儲器控制能力。一個實施例的I/O控制集線器225包括功率管理狀態(tài)控制邏輯M2、本文中備選地稱作C狀態(tài)控制邏輯。功率管理狀態(tài)控制邏輯242可自發(fā)地或者響應于操作系統(tǒng)或其它軟件或硬件事件,來控制與處理器205關聯(lián)的某些功率管理和/或正常工作狀態(tài)之間轉變的各方面。例如,對于至少支持稱作C0、C1、C2和C4的活動模式和功率管理狀態(tài)的英特爾 體系結構處理器,功率管理狀態(tài)控制邏輯242可使用停止時鐘(STPCLK#)、處理器休眠 (SLP#)、深休眠(DPSLP#)、更深停止(DPRSTP#)和/或停止處理器(STPCPU#)信號中的一個或多個來至少部分控制至少這些狀態(tài)子集之間的轉變,下面更詳細地進行描述。在一個實施例中,還可把來自I/O控制集線器225的電壓(VI/0 349)提供給處理器205,以便向專用高速緩沖存儲器340提供充分的功率,使得在通過將工作電壓240減小到零狀態(tài)來對處理器205的其余部分斷電時,它可存儲與處理器205關聯(lián)的臨界狀態(tài)變量。對于其它類型的體系結構和/或對于支持不同功率管理和/或正常工作狀態(tài)的處理器,功率管理狀態(tài)控制邏輯242可使用可與圖2所示信號相似或者不同的一個或多個信號來控制兩個或更多不同功率管理和/或正常工作狀態(tài)之間的轉變。大容量存儲裝置230可包括一個或多個光盤只讀存儲器(⑶-ROM)驅動器和關聯(lián)盤、一個或多個硬盤驅動器和關聯(lián)盤和/或計算系統(tǒng)200通過網(wǎng)絡可存取的一個或多個大容量存儲裝置。例如光驅動器和關聯(lián)介質等其它類型大容量存儲裝置在各種實施例的范圍內。對于一個實施例,大容量存儲裝置230存儲操作系統(tǒng)M5,它包括支持高級配置和電源接口(ACPI)規(guī)范的當前版本和/或下一代版本的代碼250。ACPI可用于控制功率管理的某些方面,下面更詳細地進行描述。操作系統(tǒng)245可以是可從華盛頓雷蒙德的微軟公司得到的WindowsTM或者另一種類型的操作系統(tǒng)。備選地,例如Linux操作系統(tǒng)等不同類型操作系統(tǒng)和/或基于不同類型操作系統(tǒng)的功率管理可用于其它實施例。另外,本文中描述為與ACPI關聯(lián)的功率管理功能和能力可由不同軟件或硬件提供。還應當理解,系統(tǒng)200可包括用于向用戶顯示信息的顯示裝置,例如陰極射線管 (CRT)或液晶顯示器(LCD)。另外,系統(tǒng)200可包括用于向處理器205傳遞信息和命令選擇的字母數(shù)字輸入裝置(例如鍵盤),包括字母數(shù)字和其它鍵。附加用戶輸入裝置可以是光標控制裝置,例如鼠標、跟蹤球、跟蹤墊、指示筆或光標方向鍵,用于向處理器205傳遞方向信息和命令選擇,并用于控制顯示裝置上的光標移動??砂谙到y(tǒng)中的另一個裝置是硬拷貝裝置,其可用于在例如紙張、膠片或相似類型的介質上打印指令、數(shù)據(jù)或其它信息。而且,聲音記錄和回放裝置如揚聲器和/或麥克風(未示出)可以可選地包含在系統(tǒng)200中用于音頻接口。在系統(tǒng)200是移動或便攜系統(tǒng)的情況下,可包含電池或電池連接器255,以便專門地或者在沒有另一種類型電源時提供電力以操作系統(tǒng)200。此外,對于一些實施例,天線 260可被包括并且經由例如無線局域網(wǎng)(WLAN)裝置261耦合到系統(tǒng)200,以為系統(tǒng)200提供無線連通性。(WLAN)裝置261可包括無線通信模塊,其可采用無線應用協(xié)議來建立無線通信信道。無線通信模塊可實現(xiàn)無線連網(wǎng)標準,例如電氣和電子工程師協(xié)會(IEEE)802. 11標準、 IEEE std. 802. 11-1999(1999 年發(fā)布的)。應當理解,在一個實施例中,圖2的處理器205可在各個已知C狀態(tài)之間轉變。處理器205的正常工作狀態(tài)或活動模式是CO狀態(tài),其中處理器活動地處理指令。在CO狀態(tài)中,處理器205處于高頻模式(HFM),其中電壓/頻率設定可由最大電壓/頻率對來提供。例如,為了保存功率和/或減小熱負荷,處理器205可以每當可能的時候就轉變到更低功率狀態(tài)。例如,從CO狀態(tài),響應于例如微碼等固件或者例如操作系統(tǒng)245等軟件或者甚至某些情況下運行HALT或MWAIT指令(未示出)的ACPI軟件,處理器205可轉變到 Cl或“自動暫停”狀態(tài)。在Cl狀態(tài)中,可對處理器205電路的多個部分斷電,并且可選通本地時鐘。例如,在由I/O控制器225斷言STPCLK#或類似信號時,處理器可轉變到C2狀態(tài), 還稱作停止準許或“休眠”狀態(tài)。I/O控制器225可響應于操作系統(tǒng)245確定可以或者應當進入更低功率模式并經由ACPI軟件250指明這種情況而斷言STPCLK#信號。具體來說,一個或多個ACPI寄存器(未示出)可包含在I/O控制器225中,并且ACPI軟件250可對這些寄存器寫入,以控制狀態(tài)之間的至少一些轉變。在C2狀態(tài)中操作期間,可對處理器205電路的多個部分斷電,并且可選通內部和外部內核時鐘。對于一些實施例,處理器可從CO狀態(tài)直接轉變到C2狀態(tài)。類似地,處理器205可響應于I/O控制器225或其它芯片組特征斷言CPUSLP#信號然后斷言DPSLP#信號或其它類似信號而轉變到C3狀態(tài),還稱作“深休眠”狀態(tài)。在“深休眠”狀態(tài)中,除了對內部處理器電路斷電外,可禁用處理器205中的所有鎖相環(huán)(PLL)。另外,對于一些實施例,ST0P_CPU信號可由輸入/輸出控制器225斷言,并由時鐘發(fā)生器211 接收,以使時鐘發(fā)生器暫停提供給CPU 205的時鐘信號CLK。在圖2的系統(tǒng)200中,例如,響應于ACPI軟件250檢測到不存在未決的處理器中斷而著手轉變到C4狀態(tài)或者轉變到零電壓休眠狀態(tài)。ACPI軟件可通過使ICH 225斷言例如示范“更深停止”(DPRSTP#)信號和示范DPSLP#信號等一個或多個功率管理相關信號來進行這個操作?!案钔V埂?DPRSTP#)信號被直接從芯片組提供給處理器,并使處理器上的時鐘/功率管理邏輯350發(fā)起低頻模式(LFM)。對于低頻模式,例如,處理器可轉變到最小或者另一個低工作頻率。
根據(jù)本發(fā)明的一些實施例,以下將會進行描述,DPRSTP#信號的斷言還可使內部 VID目標設置為零電壓電平,引起電壓調節(jié)器212將零工作電壓施加到處理器205,使得處理器轉變到具有極低功耗特性的極深休眠狀態(tài)。根據(jù)本發(fā)明的一個實施例,例如,集成電路如處理器205可發(fā)起到零電壓功率管理狀態(tài)的轉變。在一個示例中,處理器205可以是中央處理單元(CPU)205。另外,零電壓管理狀態(tài)例如可以是按照ACPI標準的更深休眠狀態(tài)。在這個轉變期間,可保存CPU 205 的臨界狀態(tài)。例如,可將與CPU 205關聯(lián)的臨界狀態(tài)變量保存在專用高速緩沖存儲器(如 SRAM) 340 中。隨后可將CPU 205的工作電壓減小到零,使得CPU 205處于具有極低功耗特性的極深休眠狀態(tài)。具體來說,利用零電壓休眠狀態(tài)邏輯302的電壓調節(jié)器212可將工作電壓 240減小到零。如前面所述的,這可結合CPU 205的時鐘/功率管理邏輯350的零電壓進入 /退出邏輯邪4來進行。在一個實施例中,這個零電壓功率管理狀態(tài)在與ACPI標準結合實現(xiàn)時,可稱作C6 狀態(tài)。隨后,響應于接收到退出零電壓功率管理狀態(tài)的請求,CPU 205以更高參考工作電壓退出零電壓功率管理狀態(tài)。具體來說,在CPU 205的零電壓進入/退出邏輯邪4和電壓調節(jié)器212的零電壓休眠邏輯302的控制下,如前面所述,電壓調節(jié)器212可將參考工作電壓240升到適當電平,使得CPU 205可正確地工作。然后從專用高速緩沖存儲器340中恢復CPU 205的臨界狀態(tài)變量。由此,功率管理方案允許CPU 205保存其狀態(tài),關斷電源、然后在需要時喚醒,恢復臨界狀態(tài),并在CPU停止的地方繼續(xù)進行。在一些實施例中,這可在沒有來自操作系統(tǒng) 245的顯式支持下進行,并且可用極其短的等待時段完成。更具體來說,在一個實施例中,在零電壓處理器休眠狀態(tài)(它按照ACPI標準可稱作C6狀態(tài)),將CPU 205的臨界狀態(tài)保存在專用休眠狀態(tài)SRAM高速緩存340中,這可在使 CPU 205的內核工作電壓240降到近似0伏時,使I/O電源(VI/Q) 349斷開。在這一點上, CPU 205幾乎完全斷電,并且消耗極少的功率。在退出事件時,CPU 205指示電壓調節(jié)器212將工作電壓240又斜線上升(例如用VID代碼235),重新鎖定鎖相環(huán)(PLL),并經由時鐘/功率管理邏輯350和零電壓進入/ 退出邏輯邪4又接通時鐘。另外,CPU 205可執(zhí)行內部“復位”以清除狀態(tài),然后可從專用休眠狀態(tài)SRAM高速緩存340中恢復CPU 205的狀態(tài),并且CPU 205從它在執(zhí)行流中停止的地方繼續(xù)。這些操作可在極小的時段(例如大約100微秒)在CPU 205硬件中完成,使得它對于操作系統(tǒng)245和現(xiàn)有功率管理軟件基礎設施是透明的。在一個實施例中,這種方法論特別適合于具有多個處理器內核的CPU 205。在這個示例中,將作為一個示例論述內核320(例如內核#0)和內核322(例如內核#1)即雙內核 CPU。然而,應當理解,可使用任何適當數(shù)量的CPU內核。在雙內核結構中,CPU內核320和 322使用共享高速緩存330。例如,這個共享高速緩存330可以是由內核320和322共享的級2(L2)高速緩存320。另外,各內核320和322包括內核ID 321、微碼323、共享狀態(tài)3 和專用狀態(tài)325。 內核320和322的微碼323用于執(zhí)行CPU狀態(tài)的保存/恢復功能,以及用于結合CPU 205的時鐘/功率管理邏輯350的零電壓進入/退出邏輯3M來執(zhí)行零電壓處理器休眠狀態(tài)時的各種數(shù)據(jù)流。另外,專用休眠狀態(tài)SRAM高速緩存340用于保存內核的狀態(tài),下面將更詳細地進行描述。要理解,系統(tǒng)200和/或各種實施例的其它系統(tǒng)可包括圖2未示出的其它組件或元件,和/或并非圖2所示的所有元件均存在于所有實施例的系統(tǒng)中。簡要地來看圖3,圖3是示出根據(jù)本發(fā)明的一個實施例的專用休眠狀態(tài)SRAM高速緩存340和SRAM接口 364的一個示例的框圖。當CPU 205處于零電壓休眠狀態(tài)(例如C6 狀態(tài))時,專用休眠狀態(tài)SRAM高速緩存340可存儲與體系結構、微體系結構、調試狀態(tài)和微碼補丁關聯(lián)的狀態(tài)變量,如前面所述。在一個示例中,SRAM 340的大小可以是每個CPU內核8KB,并且可以是32位寬,以及可由時鐘/功率管理邏輯350加時鐘。如前面所述,專用休眠狀態(tài)SRAM高速緩存340可通過I/O電壓(Vi/q349)供電,使得在斷開CPU 205的工作電壓時,可保留其內容。專用休眠狀態(tài)SRAM 340可構造為各32位的I個條目,并且可具有單個位檢錯和糾錯的ECC保護。數(shù)據(jù)通路可以是32位,并支持到陣列中的2周期等待時間。如在圖3中可看到的,SRAM接口 364可包括來自使用32位數(shù)據(jù)的數(shù)據(jù)緩沖器370的32位數(shù)據(jù)總線。在一個示例中,通過使用前端群集接口來降低對SRAM尋址的復雜度,控制寄存器總線接口可用于以簡單方式與微碼接口。接口可使用I個控制寄存器和兩級尋址方案。可定義兩個寄存器來對SRAM尋址-第一個可以是SRAM基址寄存器,而第二個可以是SRAM數(shù)據(jù)寄存器。微碼可在開始存取SRAM之前初始化基址寄存器。對于對數(shù)據(jù)寄存器的下一讀 /寫,基址寄存器的內容可用作到SRAM的索引。在對數(shù)據(jù)寄存器的每次存取之后,到SRAM 的索引可自動遞增1。如圖3所示,在一個示例中,SRAM接口 364可包括數(shù)據(jù)緩沖器370,其根據(jù)來自地址解碼器380的讀/寫使能信號來緩沖進出SRAM 340的32位數(shù)據(jù)。地址解碼器380還可使能對基址寄存器382的寫使能以及復位指針。基址寄存器382可用來遞增寄存器384,其通過12位指針和2位讀/寫使能來對SRAM 340進行操作。對于對數(shù)據(jù)寄存器的下一讀/ 寫,基址寄存器382的內容可用作到SRAM的索引。在對數(shù)據(jù)寄存器的每一次存取之后,到 SRAM的索引可自動遞增1。另外,根據(jù)復位指針,寄存器384可復位SRAM?,F(xiàn)在來看圖4,圖4是示出根據(jù)本發(fā)明的一個實施例可用于進入零電壓處理器休眠狀態(tài)的過程400的流程圖。在一個實施例中,可通過CPU 205的CPU內核320和322的微碼323來指導以下操作系列。在闡述C6狀態(tài)的ACPI實施例中,可經由MWAIT指令來發(fā)起進入零電壓處理器休眠狀態(tài),如前面所述。從軟件的角度來看,各CPU內核320或322可獨立運行MWAIT指令。然而,在一個實施例中,CPU內核320和322使用L2共享高速緩存330和相同的電壓平面。因此,在這個實施例中,對于封裝級C狀態(tài)、特別是C6狀態(tài),需要CPU 205中的硬件協(xié)調。在這個實施例中,各內核320和322可運行MWAIT指令,并且初始化CPU內核進入等待狀態(tài)(例如CC6),并等待另一個內核也進入CC6狀態(tài),之后整個封裝(例如包括內核 320和322兩者)可轉變到所說的封裝C6休眠狀態(tài)。具體來看圖4,提供了進入零電壓處理器休眠狀態(tài)的圖示。如圖4所示,當發(fā)起零電壓處理器休眠狀態(tài)時,各內核獨立地執(zhí)行狀態(tài)保存。具體來說,來看CPU內核#0320,第一CPU內核#0是活動的(圓圈402),然后(例如經由休眠或MWAIT指令)發(fā)起零電壓休眠狀態(tài)的命令(圓圈404)。對此進行響應,在圓圈406將CPU內核320的狀態(tài)保存到專用高速緩沖存儲器340中。這包括專用狀態(tài)325和共享狀態(tài)324。然后,在整個封裝可轉變到總封裝休眠狀態(tài)(例如C6)之前,CPU內核320進入第一休眠狀態(tài)408 (例如CC6),其中它等待另一個內核也進入CC6狀態(tài)。通過相同的方式,在圓圈414,另一個CPU內核(例如CPU內核#1322)同樣命令休眠指令(例如MWAIT),并且它的狀態(tài)(例如它的共享狀態(tài)3 和專用狀態(tài)325)也被存儲到專用高速緩沖存儲器340(圓圈418)。然而,在這種情況下,由于這是進入休眠狀態(tài)的最后一個內核,因此共享高速緩存330還被收縮并保存到專用高速緩沖存儲器340(圓圈416)。 然后,在圓圈420,第二 CPU內核322同樣進入休眠狀態(tài)(例如CC6)。應當注意,CPU內核320和322的微碼323 —般可能需要知道,對于零電壓處理器休眠狀態(tài),哪些控制寄存器需要被保存和恢復。寄存器的列表可以是CPU 205上的總寄存器的子集。例如,列表可作為位向量(例如IOM位長)保存。向量中的每個位可對應于控制寄存器地址庫中的一個控制寄存器。例如,微碼可將位位置轉換成控制寄存器地址,并且在位為“1”時保存/恢復寄存器,而在位為“0”時跳過。如果控制寄存器要求特殊處理,則向量中的保存/恢復位可設置為“0”,并且保存/恢復由主保存/恢復循環(huán)外的特殊微碼流來處理。在執(zhí)行了微碼操作之后,如前面所述,時鐘/功率管理邏輯350的零電壓進入/退出邏輯邪4接管數(shù)據(jù)流(例如C6流)。具體來說,這發(fā)生在微碼操作作為狀態(tài)保存006和 418)完成之后,以及各CPU內核320和322已達到各個休眠狀態(tài)408和420(例如CC6狀態(tài))之后。在這一點上,CPU 205的所有所需狀態(tài)已經被保存或者從CPU 205轉儲清除。然后,時鐘/功率管理邏輯350的零電壓進入/退出邏輯3M通過執(zhí)行從ICH 225的I/O寄存器讀取來發(fā)起外部平臺級進入序列(例如C6)序列。在一個實施例中,這可以是進入 CPU “C”狀態(tài)的ACPI定義的方法。自這一點從外部總線角度來看的事件序列如圖4所示??蓮腎CH 225/MCH 215發(fā)出I/O命令410。具體來說,在圓圈430可斷言停止時鐘信號(例如STPCLK#)。然后,可斷言休眠信號(圓圈431)(例如SLP#)。另外,在圓圈432,可斷言深休眠信號(DPSLP#)。以前面所述的順序發(fā)出這些命令,使得CPU 205通過關閉它的內部時鐘分發(fā)然后關閉PLL來進行響應。在圓圈435斷言更深停止信號(例如DPRSTP#)時,CPU205將其VID切換到零電壓電平,以便告知電壓調節(jié)器212去除電力,以及這么做是安全的。這可稱作C6 VID0這樣, 功率被去斷言。然而,應當理解,代替零伏,可選擇另外的極小量電壓作為VID。應當理解,代替精確的零電壓電平,電壓電平可設置為“近似零電壓電平”。這個近似零電壓電平可以是極低的電壓電平、如0. 3V或0. 5V。在一些實施例中,這樣一個極低的近似零電壓電平可分別優(yōu)化對休眠狀態(tài)的進入和退出等待時間。此外,應當理解,近似零電壓電平可在制造期間(例如在出帶之后)被選擇用于系統(tǒng)(例如在硅中),并且可在CPU的不同步進和修訂期間以不同方式編程。當來自電壓調節(jié)器212的工作電壓240達到零伏或者另一個標稱小電平時,在圓圈440,CPU內核(例如內核320和內核322)的封裝被看作處于封裝休眠狀態(tài)(C6)。應當注意,由于不存在下拉工作電壓的有源裝置,因此,在由于CPU 205泄漏而引起電荷漏出時,它只是緩慢下降。由此,CPU 205已經進入零電壓封裝休眠狀態(tài)(C6)。應當理解,前面所述的操作序列可按照各種不同的順序來實現(xiàn),并且前面所述的操作順序只是一個示例。現(xiàn)在來看圖5,圖5是示出用于從零電壓處理器休眠狀態(tài)的退出序列的過程500的一個示例的流程圖。通常,在芯片組檢測到需要喚醒CPU 205的事件-很可能是中斷事件時,開始退出零電壓處理器休眠狀態(tài)。然而,應當注意,在進行窺探時,芯片組可繼續(xù)進行對存儲器的主控存取,而沒有喚醒CPU。將參照圖5來論述從零電壓處理器休眠狀態(tài)退出期間,在芯片組與CPU 205之間發(fā)生的外部事件和握手序列。具體來說,這個序列可看作是在前面所述的進入階段期間所發(fā)生的反。在一個實施例中,從封裝休眠狀態(tài)(C6)(圓圈440),更深停止信號(DPRSTP#)被去斷言(圓圈502),這由CPU 205和時鐘/功率管理邏輯350的零電壓進入/退出邏輯3M 檢測,使得低頻模式(LFM)VID被發(fā)送給電壓調節(jié)器212。這指示電壓調節(jié)器212將內核工作電壓又驅動回所需的VID。在預定時間(例如由ICH 225中的定時器控制),斷言時鐘又接通的信號被斷言, 并且深休眠(DPSLP#)信號被去斷言(圓圈505),這發(fā)起時鐘/功率管理邏輯350的PLL。 此后,CPU 205發(fā)起內部“復位”(圓圈506)。在這個復位完成之后,CPU 205已經使電力和時鐘接通,并且準備恢復與CPU 205關聯(lián)的臨界狀態(tài)變量。作為一個示例,在ACPI實施例中,通常在C狀態(tài)退出事件期間,CPU 205等待到 STPCLK#去斷言以在CPU中內部進行任何操作。然而,根據(jù)本發(fā)明的實施例,在零電壓處理器休眠狀態(tài)(例如C6)中,由于恢復狀態(tài)的較長等待時間等,STPCLK#被忽略,并且電力和時鐘一可用,就開始CPU 205的相應內核320和322的狀態(tài)恢復(圓圈510和圓圈530), 以便準備C6退出。一旦恢復了內核320和322的狀態(tài),CPU 205就準備從它停止的地方繼續(xù)。分別復位來自CPU 205的內核320和322兩者的微碼323(圓圈512和532)。然而,CPU內核320和322都沒有分別變?yōu)榛顒?圓圈514和534)并運行指令, 直到休眠信號被去斷言(圓圈討0)并且停止時鐘信號(STPCLK#)被去斷言。然而,一旦停止時鐘被去斷言,并且休眠信號被去斷言,則CPU 205、內核320和322以及芯片組全被加電并且是可操作的,且兩個內核變?yōu)榛顒?圓圈514和圓圈534)。然后CPU205通常開始某些取代碼,因為它的高速緩存為空,然后將開始正常操作。更具體來說,兩個內核在CO狀態(tài)都被喚醒。操作系統(tǒng)可確定哪個CPU內核將處理事件,而另一個內核可在不久以后又進入休眠狀態(tài)。有利地,如前面所述,由于CPU 205通過硬件進行大部分C狀態(tài)協(xié)調,所以軟件可在各內核中獨立請求進入零電壓處理器休眠狀態(tài)(例如C6),而無需與另一個內核進行任何軟件協(xié)調。更具體來說,通過使用零電壓處理器休眠狀態(tài)(例如C6),CPU 205在休眠狀態(tài)所需的功率實際上被減小到零。而且在描述了 C6狀態(tài)的ACPI實施例中,還公開了使用內核ID字段321實現(xiàn)處理器205的內核320和322的共享狀態(tài)324的狀態(tài)保存及恢復的有效方法。這個方法用作內核退出到CO的同步。內核標識符321可經由熔絲硬連線到各內核320和322,并且可以總是對CPU 205的內核是可用的。
內核320和322兩者都可在進入時保存專用狀態(tài)325和共享狀態(tài)324。內核320 和322優(yōu)選地在狀態(tài)保存期間不使用任何排序方法(例如信號量)。在狀態(tài)保存結束時,各內核可在硬件狀態(tài)中記錄它的唯一內核標識符321。當?shù)诙群送瓿善錉顟B(tài)保存時,那個內核可在相同硬件狀態(tài)中寫入其唯一內核標識符321,有效地忽略第一內核的內核標識符。通過用“常通”電源對其供電,將在C6駐留期間保存包含內核標識符的這個硬件狀態(tài)。在C6退出時,如前面所述,當內核320和322執(zhí)行狀態(tài)恢復時,將允許與已存儲內核標識符匹配的內核標識符執(zhí)行共享狀態(tài)324的恢復。 內核320和322都可執(zhí)行專用狀態(tài)325的恢復。然后,內核將存取已存儲內核標識符321, 以便檢查它們是否需要執(zhí)行所存儲狀態(tài)的恢復。只需要允許一個內核執(zhí)行恢復。當在恢復共享狀態(tài)324時,其它內核可等待。當恢復完成時,兩個內核都進行CO狀態(tài)。在一個實施例中,內核320和322可使用硬件信號量“C6順序信號量”來確保在恢復期間對內核標識符321字段的獨占存取。下面提供使能共享狀態(tài)恢復的偽代碼的一個示例
首先講入CC6的內核恢復專用狀態(tài)抓取C6順序信號量讀取 C6wakeup. coreID 將C6wakeup. coreID與自己的coreID匹配不匹配,釋放C6順序信號量 Restore_Complete 等待讀取 C6wakeup. coreID
如果 coreID ! = 00 跳轉至Ij Restore—Complete
如果coreID = 0跳轉到mwait之后的指令
最后進入CC6的內核
恢復專用狀態(tài)
抓取C6順序信號量
讀取 C6wakeup. coreID
將C6wakeup. coreID與自己的coreID匹配
匹配,鎖定C6順序信號量
轉向共享狀態(tài)恢復要理解,雖然關于轉變進和轉變出與中央處理單元及電壓調節(jié)器關聯(lián)的更深休眠 C6狀態(tài)的零電壓處理器休眠狀態(tài)描述了示范實施例,但是各種實施例可適用于不同類型的功率管理配置和/或不同類型的集成電路。另外,雖然使用本文所述的示范實施例的VID 信號來實現(xiàn)電壓控制,但是提供電壓控制的其它方法也在各種實施例的范圍之內。由此,描述了零電壓處理器休眠狀態(tài)的方法和設備的各種實施例。在以上說明書中,參照本發(fā)明的具體示范實施例描述了本發(fā)明的實施例。但是要理解,可對其進行各種修改及改變,并不背離所附權利要求書闡述的本發(fā)明的更廣精神和范圍。由此,說明書和附圖于是應看作是說明性的,而不是限制意義。
1權利要求
1.一種處理器,包括多個內核,其中所述多個內核的每一個包括 一個或多個執(zhí)行單元, 多個高速緩存,以及功率管理邏輯部件,使所述處理器進入低功率狀態(tài),在所述低功率狀態(tài)中,提供給所述一個或多個執(zhí)行單元的時鐘信號被選通,其中,所述功率管理邏輯部件進一步響應執(zhí)行功率節(jié)省指令而使提供給所述處理器的所述時鐘信號被選通,響應確定將進入低功率狀態(tài)而進入休眠狀態(tài),在所述休眠狀態(tài)中,提供給所述一個或多個執(zhí)行單元的時鐘信號的頻率和電壓被減小。
2.如權利要求1所述的處理器,其中,所述處理器在所述休眠狀態(tài)消耗的功率比在所述低功率狀態(tài)中消耗的功率更低。
3.如權利要求1所述的處理器,其中,所述功率節(jié)省指令可包括MWAIT指令。
4.如權利要求1所述的處理器,其中,所述多個內核的每一個可處理所述功率節(jié)省指令。
5.如權利要求1所述的處理器,其中,提供給所述一個或多個執(zhí)行單元的所述電壓包括零電壓狀態(tài)。
6.如權利要求1所述的處理器,其中,所述功率管理邏輯部件使所述處理器先進入所述低功率狀態(tài)而后進入所述休眠狀態(tài)。
7.如權利要求1所述的處理器,其中,所述功率管理邏輯部件使所述處理器從活動狀態(tài)直接進入所述休眠狀態(tài)而不進入所述低功率狀態(tài)。
8.如權利要求1所述的處理器,其中,所述功率管理邏輯部件使所述處理器響應操作系統(tǒng)處理所述功率節(jié)省指令而進入所述低功率狀態(tài)。
全文摘要
本發(fā)明的名稱是“用于零電壓處理器休眠狀態(tài)的方法和設備”。本發(fā)明的實施例涉及用于零電壓處理器休眠狀態(tài)的方法和設備。處理器可包括專用高速緩沖存儲器。電壓調節(jié)器可耦合到處理器以向處理器提供工作電壓。在轉變到處理器的零電壓功率管理狀態(tài)期間,電壓調節(jié)器施加到處理器的工作電壓可減小到近似零,并且與處理器關聯(lián)的狀態(tài)變量可保存到專用高速緩沖存儲器。
文檔編號G06F1/32GK102306048SQ20111027421
公開日2012年1月4日 申請日期2006年12月18日 優(yōu)先權日2005年12月30日
發(fā)明者A·納維, J·B·康拉德, R·米爾斯特里, S·A·費希爾, S·賈哈吉爾達, V·喬治 申請人:英特爾公司