的處理器205可在各個已知C狀態(tài)之間轉(zhuǎn)變。處 理器205的正常工作狀態(tài)或活動模式是C0狀態(tài),其中處理器活動地處理指令。在C0狀態(tài) 中,處理器205處于高頻模式(HFM),其中電壓/頻率設(shè)定可由最大電壓/頻率對來提供。
[0087] 例如,為了保存功率和/或減小熱負(fù)荷,處理器205可W每當(dāng)可能的時候就轉(zhuǎn)變到 更低功率狀態(tài)。例如,從C0狀態(tài),響應(yīng)于例如微碼等固件或者例如操作系統(tǒng)245等軟件或 者甚至某些情況下運(yùn)行HALT或MWMT指令(未示出)的ACPI軟件,處理器205可轉(zhuǎn)變到 C1或"自動暫停"狀態(tài)。在C1狀態(tài)中,可對處理器205電路的多個部分?jǐn)嚯?,并且可選通本 地時鐘。
[008引例如,在由I/O控制器225斷言STP化K#或類似信號時,處理器可轉(zhuǎn)變到C2狀態(tài), 還稱作停止準(zhǔn)許或"休眠"狀態(tài)。I/O控制器225可響應(yīng)于操作系統(tǒng)245確定可W或者應(yīng)當(dāng) 進(jìn)入更低功率模式并經(jīng)由ACPI軟件250指明該種情況而斷言STPCLK#信號。具體來說,一 個或多個ACPI寄存器(未示出)可包含在I/O控制器225中,并且ACPI軟件250可對該 些寄存器寫入,W控制狀態(tài)之間的至少一些轉(zhuǎn)變。在C2狀態(tài)中操作期間,可對處理器205 電路的多個部分?jǐn)嚯姡⑶铱蛇x通內(nèi)部和外部內(nèi)核時鐘。對于一些實(shí)施例,處理器可從C0 狀態(tài)直接轉(zhuǎn)變到C2狀態(tài)。
[0089] 類似地,處理器205可響應(yīng)于I/O控制器225或其它巧片組特征斷言CPUSLP#信 號然后斷言DPSLP#信號或其它類似信號而轉(zhuǎn)變到C3狀態(tài),還稱作"深休眠"狀態(tài)。在"深 休眠"狀態(tài)中,除了對內(nèi)部處理器電路斷電外,可禁用處理器205中的所有鎖相環(huán)(P化)。另 夕F,對于一些實(shí)施例,ST0P_CPU信號可由輸入/輸出控制器225斷言,并由時鐘發(fā)生器211 接收,W使時鐘發(fā)生器暫停提供給CPU205的時鐘信號CLK。
[0090] 在圖2的系統(tǒng)200中,例如,響應(yīng)于ACPI軟件250檢測到不存在未決的處理器中 斷而著手轉(zhuǎn)變到C4狀態(tài)或者轉(zhuǎn)變到零電壓休眠狀態(tài)。ACPI軟件可通過使ICH225斷言例 如示范"更深停止"值PRSTP#)信號和示范DPSLP#信號等一個或多個功率管理相關(guān)信號來 進(jìn)行該個操作。"更深停止"值PRSTP#)信號被直接從巧片組提供給處理器,并使處理器上 的時鐘/功率管理邏輯350發(fā)起低頻模式(LFM)。對于低頻模式,例如,處理器可轉(zhuǎn)變到最 小或者另一個低工作頻率。
[0091] 根據(jù)本發(fā)明的一些實(shí)施例,W下將會進(jìn)行描述,DPRSTP#信號的斷言還可使內(nèi)部 VID目標(biāo)設(shè)置為零電壓電平,引起電壓調(diào)節(jié)器212將零工作電壓施加到處理器205,使得處 理器轉(zhuǎn)變到具有極低功耗特性的極深休眠狀態(tài)。
[0092] 根據(jù)本發(fā)明的一個實(shí)施例,例如,集成電路如處理器205可發(fā)起到零電壓功率管 理狀態(tài)的轉(zhuǎn)變。在一個示例中,處理器205可W是中央處理單元(CPU)205。另外,零電壓 管理狀態(tài)例如可W是按照ACPI標(biāo)準(zhǔn)的更深休眠狀態(tài)。在該個轉(zhuǎn)變期間,可保存CPU205 的臨界狀態(tài)。例如,可將與CPU205關(guān)聯(lián)的臨界狀態(tài)變量保存在專用高速緩沖存儲器(如 SRAM) :340 中。
[0093] 隨后可將CPU205的工作電壓減小到零,使得CPU205處于具有極低功耗特性的 極深休眠狀態(tài)。具體來說,利用零電壓休眠狀態(tài)邏輯302的電壓調(diào)節(jié)器212可將工作電壓 240減小到零。如前面所述的,該可結(jié)合CPU205的時鐘/功率管理邏輯350的零電壓進(jìn)入 /退出邏輯354來進(jìn)行。
[0094] 在一個實(shí)施例中,該個零電壓功率管理狀態(tài)在與ACPI標(biāo)準(zhǔn)結(jié)合實(shí)現(xiàn)時,可稱作C6 狀態(tài)。
[0095] 隨后,響應(yīng)于接收到退出零電壓功率管理狀態(tài)的請求,CPU205W更高參考工作電 壓退出零電壓功率管理狀態(tài)。具體來說,在CPU205的零電壓進(jìn)入/退出邏輯354和電壓調(diào) 節(jié)器212的零電壓休眠邏輯302的控制下,如前面所述,電壓調(diào)節(jié)器212可將參考工作電壓 240升到適當(dāng)電平,使得CPU205可正確地工作。然后從專用高速緩沖存儲器340中恢復(fù) CPU205的臨界狀態(tài)變量。
[0096] 由此,功率管理方案允許CPU205保存其狀態(tài),關(guān)斷電源、然后在需要時喚醒,恢 復(fù)臨界狀態(tài),并在CPU停止的地方繼續(xù)進(jìn)行。在一些實(shí)施例中,該可在沒有來自操作系統(tǒng) 245的顯式支持下進(jìn)行,并且可用極其短的等待時段完成。
[0097] 更具體來說,在一個實(shí)施例中,在零電壓處理器休眠狀態(tài)(它按照ACPI標(biāo)準(zhǔn)可稱 作C6狀態(tài)),將CPU205的臨界狀態(tài)保存在專用休眠狀態(tài)SRAM高速緩存340中,該可在使 CPU205的內(nèi)核工作電壓240降到近似0伏時,使I/O電源(Vi/。) 349斷開。在該一點(diǎn)上, CPU205幾乎完全斷電,并且消耗極少的功率。
[009引在退出事件時,CPU205指示電壓調(diào)節(jié)器212將工作電壓240又斜線上升(例如 用VID代碼235),重新鎖定鎖相環(huán)(P化),并經(jīng)由時鐘/功率管理邏輯350和零電壓進(jìn)入/ 退出邏輯354又接通時鐘。另外,CPU205可執(zhí)行內(nèi)部"復(fù)位清除狀態(tài),然后可從專用休 眠狀態(tài)SRAM高速緩存340中恢復(fù)CPU205的狀態(tài),并且CPU205從它在執(zhí)行流中停止的地 方繼續(xù)。該些操作可在極小的時段(例如大約100微秒)在CPU205硬件中完成,使得它 對于操作系統(tǒng)245和現(xiàn)有功率管理軟件基礎(chǔ)設(shè)施是透明的。
[0099] 在一個實(shí)施例中,該種方法論特別適合于具有多個處理器內(nèi)核的CPU205。在該個 示例中,將作為一個示例論述內(nèi)核320(例如內(nèi)核#0)和內(nèi)核322(例如內(nèi)核#1)即雙內(nèi)核 CPU。然而,應(yīng)當(dāng)理解,可使用任何適當(dāng)數(shù)量的CPU內(nèi)核。在雙內(nèi)核結(jié)構(gòu)中,CPU內(nèi)核320和 322使用共享高速緩存330。例如,該個共享高速緩存330可W是由內(nèi)核320和322共享的 級2 (L2)高速緩存320。
[0100] 另外,各內(nèi)核320和322包括內(nèi)核ID321、微碼323、共享狀態(tài)324和專用狀態(tài)325。 內(nèi)核320和322的微碼323用于執(zhí)行CPU狀態(tài)的保存/恢復(fù)功能,W及用于結(jié)合CPU205 的時鐘/功率管理邏輯350的零電壓進(jìn)入/退出邏輯354來執(zhí)行零電壓處理器休眠狀態(tài)時 的各種數(shù)據(jù)流。另外,專用休眠狀態(tài)SRAM高速緩存340用于保存內(nèi)核的狀態(tài),下面將更詳 細(xì)地進(jìn)行描述。
[0101] 要理解,系統(tǒng)200和/或各種實(shí)施例的其它系統(tǒng)可包括圖2未示出的其它組件或 元件,和/或并非圖2所示的所有元件均存在于所有實(shí)施例的系統(tǒng)中。
[0102] 簡要地來看圖3,圖3是示出根據(jù)本發(fā)明的一個實(shí)施例的專用休眠狀態(tài)SRAM高速 緩存340和SRAM接口 364的一個示例的框圖。當(dāng)CPU205處于零電壓休眠狀態(tài)(例如C6 狀態(tài))時,專用休眠狀態(tài)SRAM高速緩存340可存儲與體系結(jié)構(gòu)、微體系結(jié)構(gòu)、調(diào)試狀態(tài)和微 碼補(bǔ)了關(guān)聯(lián)的狀態(tài)變量,如前面所述。
[0103] 在一個示例中,SRAM340的大小可W是每個CPU內(nèi)核8邸,并且可W是32位寬,W 及可由時鐘/功率管理邏輯350加時鐘。如前面所述,專用休眠狀態(tài)SRAM高速緩存340可 通過I/O電壓仇/。349)供電,使得在斷開CPU205的工作電壓時,可保留其內(nèi)容。
[0104] 專用休眠狀態(tài)SRAM340可構(gòu)造為各32位的2K個條目,并且可具有單個位檢錯和 糾錯的ECC保護(hù)。數(shù)據(jù)通路可W是32位,并支持到陣列中的2周期等待時間。如在圖3中 可看到的,SRAM接口 364可包括來自使用32位數(shù)據(jù)的數(shù)據(jù)緩沖器370的32位數(shù)據(jù)總線。
[0105] 在一個示例中,通過使用前端群集接口來降低對SRAM尋址的復(fù)雜度,控制寄存器 總線接口可用于W簡單方式與微碼接口。接口可使用2K個控制寄存器和兩級尋址方案???定義兩個寄存器來對SRAM尋址-第一個可W是SRAM基址寄存器,而第二個可W是SRAM數(shù) 據(jù)寄存器。微碼可在開始存取SRAM之前初始化基址寄存器。對于對數(shù)據(jù)寄存器的下一讀 /寫,基址寄存器的內(nèi)容可用作到SRAM的索引。在對數(shù)據(jù)寄存器的每次存取之后,到SRAM 的索引可自動遞增1。
[0106] 如圖3所示,在一個示例中,SRAM接口 364可包括數(shù)據(jù)緩沖器370,其根據(jù)來自地 址解碼器380的讀/寫使能信號來緩沖進(jìn)出SRAM340的32位數(shù)據(jù)。地址解碼器380還可 使能對基址寄存器382的寫使能W及復(fù)位指針?;芳拇嫫?82可用來遞增寄存器384,其 通過12位指針和2位讀/寫使能來對SRAM340進(jìn)行操作。對于對數(shù)據(jù)寄存器的下一讀/ 寫,基址寄存器382的內(nèi)容可用作到SRAM的索引。在對數(shù)據(jù)寄存器的每一次存取之后,至U SRAM的索引可自動遞增1。另外,根據(jù)復(fù)位指針,寄存器384可復(fù)位SRAM。
[0107] 現(xiàn)在來看圖4,圖4是示出根據(jù)本發(fā)明的一個實(shí)施例可用于進(jìn)入零電壓處理器休 眠狀態(tài)的過程400的流程圖。在一個實(shí)施例中,可通過CPU205的CPU內(nèi)核320和322的 微碼323來指導(dǎo)W下操作系列。在闡述C6狀態(tài)的ACPI實(shí)施例中,可經(jīng)由MWAIT指令來發(fā) 起進(jìn)入零電壓處理器休眠狀態(tài),如前面所述。
[0108] 從軟件的角度來看,各CPU內(nèi)核320或322可獨(dú)立運(yùn)行MWAIT指令。然而,在一個 實(shí)施例中,CPU內(nèi)核320和322使用L2共享高速緩存330和相同的電壓平面。因此,在該 個實(shí)施例中,對于封裝級C狀態(tài)、特別是C6狀態(tài),需要CPU205中的硬件協(xié)調(diào)。
[0109] 在該個實(shí)施例中,各內(nèi)核320和322可運(yùn)行MWAIT指令,并且初始化CPU內(nèi)核進(jìn)入 等待狀態(tài)(例如CC6),并等待另一個內(nèi)核也進(jìn)入CC6狀態(tài),之后整個封裝(例如包括內(nèi)核 320和322兩者)可轉(zhuǎn)變到所說的封裝C6休眠狀態(tài)。
[0110] 具體來看圖4,提供了進(jìn)入零電壓處理器休眠狀態(tài)的圖示。如圖4所示,當(dāng)發(fā)起零 電壓處理器休眠狀態(tài)時,各內(nèi)核獨(dú)立地執(zhí)行狀態(tài)保存。具體來說,來看CPU內(nèi)核#0320,第一 CPU內(nèi)核#0是活動的(圓圈402),然后(例如經(jīng)由休眠或MWAIT指令)發(fā)起零